Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 0 additions & 30 deletions MultiplayerDemo.json

This file was deleted.

16 changes: 16 additions & 0 deletions assets/MultiplayerDemo.sfProj
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"name": "MultiplayerDemo",
"project-properties": {
"author": "Johnny Appleseed",
"version": [ 0, 0, 0, 0 ],
"editor-version": [ 0, 20, 12, 2 ]
},
"scenes": [
{"name": "erebor", "path": "Scenes/erebor.sfSce"}
],
"resources": [
{"name": "erebor", "type": "tiled-tilemap", "path": "Tilemaps/Erebor.tmx"},
{"name": "castle", "type": "prefab", "path": "Prefabs/castle.sfFab"},
{"name": "castleSprite", "type": "sprite", "path": "Sprites/castle.png"}
]
}
8 changes: 8 additions & 0 deletions assets/Prefabs/castle.sfFab
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"name": "castle",
"entityType": "castle",
"type": "prefab",
"properties": [
{"name": "sprite", "value": "castleSprite"}
]
}
32 changes: 32 additions & 0 deletions assets/Scenes/erebor.sfSce
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
{
"name": "erebor",
"entities": [
{"name": "erebor", "type": "tilemap", "properties": [
{"name": "position", "value": "0.0 0.0"}
]},
{"name": "castle1", "prefab": "castle", "properties": [
{"name": "position", "value": "736.0 736.0"}
]},
{"name": "castle2", "prefab": "castle", "properties": [
{"name": "position", "value": "1904.0 736.0"}
]},
{"name": "castle3", "prefab": "castle", "properties": [
{"name": "position", "value": "3088.0 736.0"}
]},
{"name": "castle4", "prefab": "castle", "properties": [
{"name": "position", "value": "736.0 1939.0"}
]},
{"name": "castle5", "prefab": "castle", "properties": [
{"name": "position", "value": "3088.0 1952.0"}
]},
{"name": "castle6", "prefab": "castle", "properties": [
{"name": "position", "value": "736.0 3149.0"}
]},
{"name": "castle7", "prefab": "castle", "properties": [
{"name": "position", "value": "1943.0 3152.0"}
]},
{"name": "castle7", "prefab": "castle", "properties": [
{"name": "position", "value": "3088.0 3148.0"}
]}
]
}
42 changes: 0 additions & 42 deletions assets/Tilemaps/Erebor.tmx
Original file line number Diff line number Diff line change
Expand Up @@ -672,46 +672,4 @@
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
</data>
</layer>
<objectgroup id="4" name="Objects">
<object id="1" x="736" y="736" width="335" height="275">
<properties>
<property name="prefab" value="castle"/>
</properties>
</object>
<object id="11" x="1904" y="736" width="335" height="275">
<properties>
<property name="prefab" value="castle"/>
</properties>
</object>
<object id="12" x="3088" y="736" width="335" height="275">
<properties>
<property name="prefab" value="castle"/>
</properties>
</object>
<object id="13" x="736" y="1939" width="335" height="275">
<properties>
<property name="prefab" value="castle"/>
</properties>
</object>
<object id="14" x="736" y="3149" width="335" height="275">
<properties>
<property name="prefab" value="castle"/>
</properties>
</object>
<object id="15" x="1943" y="3152" width="335" height="275">
<properties>
<property name="prefab" value="castle"/>
</properties>
</object>
<object id="16" x="3088" y="3148" width="335" height="275">
<properties>
<property name="prefab" value="castle"/>
</properties>
</object>
<object id="17" x="3088" y="1952" width="335" height="275">
<properties>
<property name="prefab" value="castle"/>
</properties>
</object>
</objectgroup>
</map>
8 changes: 7 additions & 1 deletion src/CastleEntity.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,10 @@
#include "Net/ReplicationManager.hpp"
#include "MessageHud.hpp"


void CastleEntity::OnAdded()
{
spriteComponent = AddComponent<SpriteComponent>("castle");
spriteComponent = AddComponent<SpriteComponent>("castleSprite");

Vector2 size{ 67 * 5, 55 * 5 };
SetDimensions(size);
Expand Down Expand Up @@ -103,3 +104,8 @@ void CastleEntity::ReceiveEvent(const IEntityEvent& ev)
}
}
}

void CastleEntity::DoSerialize(EntitySerializer& serializer)
{

}
2 changes: 2 additions & 0 deletions src/CastleEntity.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@

DEFINE_ENTITY(CastleEntity, "castle")
{
void DoSerialize(EntitySerializer& serializer) override;

void OnAdded() override;
void OnDestroyed() override;
void Update(float deltaTime) override;
Expand Down
34 changes: 24 additions & 10 deletions src/PlayerEntity.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,19 @@ void PlayerEntity::OnAdded()
outDecision.action = PlayerAction::Down;
};
}

{
static EntitySerializer serializer{
EntitySerializerMode::Read,
std::unordered_map<std::string, std::string>{
std::pair<std::string, std::string>("color", "115 221 131 255"),
std::pair<std::string, std::string>("teststr", "Hello World!"),
std::pair<std::string, std::string>("position", "100 100")
}
};

this->DoSerialize(serializer);
}
}

void PlayerEntity::ReceiveServerEvent(const IEntityEvent& ev)
Expand Down Expand Up @@ -118,15 +131,15 @@ void PlayerEntity::Render(Renderer* renderer)

// Render player
{
Color c[5] = {
Color::CornflowerBlue(),
Color::Green(),
Color::Orange(),
Color::HotPink(),
Color::Yellow()
};

auto color = c[net->ownerClientId];
// Color c[5] = {
// Color::CornflowerBlue(),
// Color::Green(),
// Color::Orange(),
// Color::HotPink(),
// Color::Yellow()
// };

// auto color = c[net->ownerClientId];
renderer->RenderRectangle(Rectangle(position - Dimensions() / 2, Dimensions()), _playerColor, -0.99);
}

Expand Down Expand Up @@ -196,5 +209,6 @@ void PlayerEntity::Attack(Entity* entity)

void PlayerEntity::DoSerialize(EntitySerializer& serializer)
{

serializer
.Add("color", _playerColor);
}
7 changes: 4 additions & 3 deletions src/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,14 +21,13 @@ struct Game : IGame
config
.SetDefaultScene("erebor"_sid)
.SetWindowCaption("Breakout")
.SetProjectFile(std::filesystem::current_path()/"../assets/MultiplayerDemo.sfProj")
.SetGameName("breakout")
.ExecuteUserConfig("user.cfg")
.EnableDevConsole("console-font");

auto resourceManager = ResourceManager::GetInstance();
resourceManager->SetBaseAssetPath("../assets");
resourceManager->LoadResourceFromFile("Sprites/castle.png", "castle");
resourceManager->LoadResourceFromFile("Tilemaps/Erebor.tmx", "erebor");
resourceManager->LoadResourceFromFile("Sprites/Spritesheets/font.png", "console-font", ".sfnt");
}

Expand All @@ -39,12 +38,14 @@ struct Game : IGame

void BuildScene(Scene* scene) override
{
if (scene->MapSegmentName() != "empty-map"_sid)
if (scene->SceneName() != "empty-map"_sid)
{
scene->AddService<InputService>();
scene->AddService<NetworkPhysics>(scene->isServer);
scene->AddService<MessageHud>();

scene->GetCameraFollower()->FollowMouse();

//scene->GetEngine()->GetConsole()->Execute("light 0");
}
}
Expand Down