2#include "utilities/ID.hpp"
3#include "utilities/Matrix4.hpp"
4#include "utilities/Stream.hpp"
8#include <unordered_map>
31 static const bool unique =
false;
79 virtual void Deactivate() {};
85 virtual void Update(
double deltaTime) {};
87 #ifdef StevEngine_SHOW_WINDOW
92 virtual void Draw(
const Utilities::Matrix4& transform) {};
100 void SetObject(GameObject&
object, std::string scene);
105 std::vector<std::pair<Utilities::ID, std::string>>
handlers;
134 if(factories.contains(type))
return false;
Base class for all game object components.
Definition Component.hpp:20
virtual std::string GetType() const =0
Get component type.
virtual void Start()
Initialize component after creation.
Definition Component.hpp:73
virtual ~Component()
Clean up component resources.
Definition Component.cpp:28
Scene & GetScene() const
Get containing Scene.
Definition Component.cpp:25
GameObject & GetParent() const
Get parent GameObject.
Definition Component.cpp:22
Component()
Create new component.
Definition Component.cpp:10
std::vector< std::pair< Utilities::ID, std::string > > handlers
Event handler registrations.
Definition Component.hpp:105
virtual Utilities::Stream Export(Utilities::StreamType stream) const =0
Serialize component to a stream.
Factory system for creating components from serialized data.
Definition Component.hpp:114
static bool RegisterComponentType(std::string type)
Register a component type for creation.
Definition Component.hpp:133
static Component * Create(const std::string &type, Utilities::Stream &stream)
Create component from serialized data.
Definition Component.cpp:35
Core game object class.
Definition GameObject.hpp:35
Container for game objects and scene state.
Definition Scene.hpp:21
UUID-based unique identifier.
Definition ID.hpp:13
static ID empty
Null/empty ID value.
Definition ID.hpp:80
Stream for serialization of data.
Definition Stream.hpp:20