feat: allow game registering of components
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
#include <components/GameComponentRegistry.h>
|
||||
|
||||
#include <destrum/Serialization/ComponentFactory.h>
|
||||
|
||||
#include <components/GameComponentList.h>
|
||||
|
||||
void RegisterGameComponents()
|
||||
{
|
||||
static bool registered = false;
|
||||
if (registered) {
|
||||
return;
|
||||
}
|
||||
|
||||
registered = true;
|
||||
|
||||
#define LIGHTKEEPER_REGISTER_COMPONENT(ComponentType) \
|
||||
ComponentFactory::Register<ComponentType>(#ComponentType);
|
||||
LIGHTKEEPER_GAME_COMPONENTS(LIGHTKEEPER_REGISTER_COMPONENT)
|
||||
#undef LIGHTKEEPER_REGISTER_COMPONENT
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
#include <components/PrintComponent.h>
|
||||
|
||||
#include "spdlog/spdlog.h"
|
||||
|
||||
PrintComponent::PrintComponent(GameObject& parent) : Component(parent, "PrintComponent")
|
||||
{
|
||||
}
|
||||
|
||||
void PrintComponent::Start()
|
||||
{
|
||||
}
|
||||
|
||||
void PrintComponent::Update(float dt)
|
||||
{
|
||||
spdlog::debug(m_message);
|
||||
}
|
||||
|
||||
void PrintComponent::ImGuiInspector()
|
||||
{
|
||||
Component::ImGuiInspector();
|
||||
}
|
||||
|
||||
nlohmann::json PrintComponent::Serialize() const
|
||||
{
|
||||
return {"message", m_message};
|
||||
}
|
||||
|
||||
void PrintComponent::Deserialize(const nlohmann::json& basic_jsons)
|
||||
{
|
||||
if (basic_jsons.contains("message"))
|
||||
{
|
||||
m_message = basic_jsons.at("message").get<std::string>();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user