Убрал паттерн Builder из SaveMap из-за неправильной работы

This commit is contained in:
Jiga228
2026-06-28 14:16:58 +07:00
parent 5886c7acc6
commit 8253b81ab1
13 changed files with 207 additions and 148 deletions
+121 -91
View File
@@ -1,93 +1,123 @@
{
"Class name": "TestWorld",
"dtime": 5.000000,
"Parent parameters": {
"Class name":"World",
"vsActorsIDs": ["MainCamera", "TestMesh1","TestMesh2"],
"loActors": [
{
"Class name": "Camera",
"Parent parameters": {
"Class name":"Actor",
"oloc": {
"Class name":"Vector3D",
"dx":2.0,
"dy":2.0,
"dz":2.0
},
"orot": {
"Class name":"Vector3D",
"dx":-2.335,
"dy":-0.785,
"dz":0.0
},
"oscale": {
"Class name": "Vector3D",
"dx": 1.0,
"dy": 1.0,
"dz": 1.0
},
"tags":[]
}
},
{
"Class name": "StaticMesh",
"Parent parameters": {
"Class name": "Mesh",
"smodel_name_": "TestModel",
"Parent parameters": {
"Class name":"Actor",
"oloc": {
"Class name":"Vector3D",
"dx":1.0,
"dy":-1.0,
"dz":1.0
},
"orot": {
"Class name":"Vector3D",
"dx":0.0,
"dy":0.0,
"dz":0.0
},
"oscale": {
"Class name": "Vector3D",
"dx": 1.0,
"dy": 1.0,
"dz": 1.0
},
"tags":[]
}
}
},
{
"Class name": "StaticMesh",
"Parent parameters": {
"Class name": "Mesh",
"smodel_name_": "TestModel",
"Parent parameters": {
"Class name":"Actor",
"oloc": {
"Class name":"Vector3D",
"dx":0.0,
"dy":-1.0,
"dz":1.0
},
"orot": {
"Class name":"Vector3D",
"dx":0.0,
"dy":0.0,
"dz":0.0
},
"oscale": {
"Class name": "Vector3D",
"dx": 1.0,
"dy": 1.0,
"dz": 1.0
},
"tags":[]
}
}
}
]
}
"Class name": "TestWorld",
"dtime": 5,
"Parent parameters": {
"Class name": "World",
"vsActorsIDs": [
"TestMesh1",
"MainCamera",
"TestMesh2",
"TestActor1"
],
"loActors": [
{
"Class name": "StaticMesh",
"Parent parameters": {
"Class name": "Mesh",
"smodel_name_": "TestModel",
"Parent parameters": {
"Class name": "Actor",
"oloc": {
"Class name": "Vector3D",
"dx": 1,
"dy": -1,
"dz": 1
},
"orot": {
"Class name": "Vector3D",
"dx": 0,
"dy": 0,
"dz": 0
},
"oscale": {
"Class name": "Vector3D",
"dx": 1,
"dy": 1,
"dz": 1
},
"lstags": []
}
}
},
{
"Class name": "Camera",
"Parent parameters": {
"Class name": "Actor",
"oloc": {
"Class name": "Vector3D",
"dx": 2,
"dy": 2,
"dz": 2
},
"orot": {
"Class name": "Vector3D",
"dx": -2.335,
"dy": -0.785,
"dz": 0
},
"oscale": {
"Class name": "Vector3D",
"dx": 1,
"dy": 1,
"dz": 1
},
"lstags": []
}
},
{
"Class name": "StaticMesh",
"Parent parameters": {
"Class name": "Mesh",
"smodel_name_": "TestModel",
"Parent parameters": {
"Class name": "Actor",
"oloc": {
"Class name": "Vector3D",
"dx": 0,
"dy": -1,
"dz": 1
},
"orot": {
"Class name": "Vector3D",
"dx": 0,
"dy": 0,
"dz": 0
},
"oscale": {
"Class name": "Vector3D",
"dx": 1,
"dy": 1,
"dz": 1
},
"lstags": []
}
}
},
{
"Class name": "TestActor",
"Parent parameters": {
"Class name": "Actor",
"oloc": {
"Class name": "Vector3D",
"dx": 0,
"dy": 0,
"dz": 0
},
"orot": {
"Class name": "Vector3D",
"dx": 0,
"dy": 0,
"dz": 0
},
"oscale": {
"Class name": "Vector3D",
"dx": 0,
"dy": 0,
"dz": 0
},
"lstags": []
}
}
]
}
}
+14 -1
View File
@@ -1,9 +1,22 @@
#include "TestActor.h"
#include "Game/SaveMap/SaveMap.hpp"
#include "Log/Log.hpp"
void TestActor::BeginPlay()
{
Actor::BeginPlay();
Loging::Log("TestActor::BeginPlay");
}
}
std::shared_ptr<SaveMap> TestActor::save()
{
std::shared_ptr<SaveMap> save = std::make_shared<SaveMap>("TestActor");
save->connect_to(Actor::save());
return save;
}
void TestActor::load(std::shared_ptr<SaveMap> save)
{
Actor::load(save->getParent());
}
+3
View File
@@ -7,4 +7,7 @@ class TestActor final : public Actor
{
public:
void BeginPlay() override;
std::shared_ptr<SaveMap> save() override;
void load(std::shared_ptr<SaveMap> save) override;
};
+6 -1
View File
@@ -3,6 +3,7 @@
#include <glm/glm.hpp>
#include <glm/ext/scalar_constants.hpp>
#include "../Actors/TestActor.h"
#include "Game/GameInstance.hpp"
#include "Game/Actors/Camera.hpp"
#include "Game/SaveMap/SaveMap.hpp"
@@ -22,6 +23,9 @@ void TestWorld::BeginPlay()
}
GetActorsByClass<Camera>()[0].lock()->SetActive();
//SpawnActorFormClass<TestActor>("TestActor1");
//std::shared_ptr<SaveMap> save_world = save();
//Loging::Log(save_world->serialize());
}
void TestWorld::Tick(double delta_time)
@@ -56,7 +60,8 @@ std::shared_ptr<SaveMap> TestWorld::save()
{
std::shared_ptr<SaveMap> save = World::save();
std::shared_ptr<SaveMap> my_save = std::make_shared<SaveMap>("TestWorld");
my_save->SaveDouble("time", time)->connect_to(save);
my_save->SaveDouble("time", time);
my_save->connect_to(save);
return my_save;
}