#include "Actor.hpp" #include "Game/SaveMap/SaveMap.hpp" #include "Game/World/World.hpp" void Actor::OnDestroy() { } Actor::Actor() : loc_(new Vector3D), rot_(new Vector3D), scale_(new Vector3D) { SetType(Classes::Actor); } std::shared_ptr Actor::save() { std::shared_ptr save = std::make_shared("Actor"); save->SaveObject("loc", loc_); save->SaveObject("rot", rot_); save->SaveObject("scale", scale_); save->SaveListStrings("tags", std::move(tags)); return save; } void Actor::load(std::shared_ptr save) { loc_ = std::static_pointer_cast(save->GetObject("loc")); rot_ = std::static_pointer_cast(save->GetObject("rot")); scale_ = std::static_pointer_cast(save->GetObject("scale")); tags = std::move(save->GetListString("tags")); } void Actor::BeginPlay() { } void Actor::Tick(double delta_time) { } void Actor::SetActorLocate(const Vector3D& loc) noexcept { *this->loc_ = loc; OnSetActorLocate.call(loc); } void Actor::SetActorRotate(const Vector3D& rot) noexcept { *this->rot_ = rot; OnSetActorRotate.call(rot); } void Actor::AddTag(const std::string& tag) noexcept { tags.push_back(tag); } void Actor::RemoveTag(const std::string& tag) noexcept { tags.remove(tag); }