51 lines
1.3 KiB
C++
51 lines
1.3 KiB
C++
#include "TestWorld.h"
|
|
|
|
#include "Game/GameInstance.hpp"
|
|
#include "Game/SaveMap/SaveMap.hpp"
|
|
#include "Log/Log.hpp"
|
|
|
|
TestWorld::TestWorld(GameInstance& game_instance) : World(game_instance)
|
|
{}
|
|
|
|
void TestWorld::BeginPlay()
|
|
{
|
|
World::BeginPlay();
|
|
std::vector<UType::object_ptr<Actor>> meshes = GetActorsByClass<Actor>();
|
|
for (const auto& i : meshes)
|
|
Loging::Log("Load actor: " + i->GetName());
|
|
}
|
|
|
|
void TestWorld::Tick(double delta_time)
|
|
{
|
|
World::Tick(delta_time);
|
|
|
|
time += delta_time;
|
|
if (time >= 10.0)
|
|
{
|
|
std::vector<UType::object_ptr<Mesh>> meshes = GetActorsByClass<Mesh>();
|
|
if (!meshes.empty())
|
|
{
|
|
Loging::Message("TestWorld destroy: " + meshes[0]->GetName());
|
|
DestroyActor(static_cast<UType::object_ptr<Actor>>(meshes[0]));
|
|
time = 7.0;
|
|
return;
|
|
}
|
|
Loging::Message("TestWorld: Time out");
|
|
GetGameInstance().quit();
|
|
}
|
|
}
|
|
|
|
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);
|
|
return my_save;
|
|
}
|
|
|
|
void TestWorld::load(std::shared_ptr<SaveMap> save)
|
|
{
|
|
World::load(save->getParent());
|
|
time = save->GetDouble("time");
|
|
}
|