34 SYSTEM_LOG <<
"ObjectFactory created and Initialized\n";
100 SYSTEM_LOG <<
"Error: ObjectFactory::CreateObject: Class '" <<
className <<
"' not found/registered in factory." << std::endl;
113 SYSTEM_LOG <<
"Error: Class ObjectFactory::AddComponent: '" <<
className <<
"' not found/registered in factory." << std::endl;
130 switch (
msg.msg_type)
165 if ((*it)->GetUID() ==
uid)
169 SYSTEM_LOG <<
"Factory destroyed object uid=" <<
uid <<
"\n";
192 SYSTEM_LOG <<
"Factory received Property_Remove for uid=" <<
msg.targetUid <<
" (not implemented)\n";
249#define REGISTER_OBJECT(ClassName) \
251 AutoRegister<ClassName> RegisterHelper_##ClassName(#ClassName); \
ComponentTypeID GetComponentTypeID_Static()
World and ECS Manager for Olympe Engine.
Classe utilitaire qui enregistre la classe T dans la fabrique lors de son initialisation statique.
AutoRegister(const std::string &className)
void Unregister(void *owner, EventType type)
void Register(void *owner, EventType type, Listener callback)
static EventManager & Get()
virtual void SetOwner(Object *_owner)
bool Register(const std::string &className, CreatorFunction creator)
Enregistre une fonction de cr�ation pour un nom de classe donn�.
virtual void OnEvent(const Message &msg) override
Object * FindObjectByUID(uint64_t uid)
std::function< Object *()> CreatorFunction
virtual ObjectType GetObjectType() const
static ObjectFactory & Get()
bool IsRegistered(const std::string &className) const
ObjectComponent * AddComponent(const std::string &className, Object *owner)
static std::vector< Object * > & GetWorldObjectList()
Object * CreateObject(const std::string &className)
Cr�e une nouvelle instance de l'objet sp�cifi� par son nom de classe.
std::map< std::string, CreatorFunction > m_registeredCreators
static ObjectFactory & GetInstance()
static World & Get()
Get singleton instance (short form)
@ Olympe_EventType_Property_Add
@ Olympe_EventType_Object_Destroy
@ Olympe_EventType_Property_Remove
@ Olympe_EventType_Object_Create