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;
84 virtual void Update(
double deltaTime) {};
86 #ifdef StevEngine_SHOW_WINDOW
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 Utilities::Stream Export(Utilities::StreamType stream) const
Serialize component to a stream.
Definition Component.cpp:43
virtual ~Component()
Clean up component resources.
Definition Component.cpp:29
virtual void Update(double deltaTime)
Update component logic.
Definition Component.hpp:84
virtual void Deactivate()
Clean up when component is deactivated.
Definition Component.hpp:78
Scene & GetScene() const
Get containing Scene.
Definition Component.cpp:26
GameObject & GetParent() const
Get parent GameObject.
Definition Component.cpp:23
Component()
Create new component.
Definition Component.cpp:11
virtual void Draw(const Utilities::Matrix4 &transform)
Draw component visuals.
Definition Component.hpp:91
std::vector< std::pair< Utilities::ID, std::string > > handlers
Event handler registrations.
Definition Component.hpp:105
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:36
Core game object class.
Definition GameObject.hpp:35
Container for game objects and scene state.
Definition Scene.hpp:23
UUID-based unique identifier.
Definition ID.hpp:13
static ID empty
Null/empty ID value.
Definition ID.hpp:80
4x4 matrix for 3D transformations
Definition Matrix4.hpp:12
Stream for serialization of data.
Definition Stream.hpp:22