65 EntityBase(
const std::string& name = CLASS_TYPE);
74 virtual const std::string& GetType()
const override = 0;
116 virtual const bool& IsRegistered();
126 virtual void SetRegistration(
bool isRegistered);
153 virtual void RemoveInvokable(
const std::string &invokableName);
173 void GetInvokables(std::vector<trManager::Invokable*> &toFill);
182 void GetInvokables(std::vector<const trManager::Invokable*> &toFill)
const;
233 virtual bool RemoveAllChildren();
242 virtual std::vector<trBase::SmrtPtr<trManager::EntityBase>>* GetChildren();
251 virtual const std::vector<trBase::SmrtPtr<trManager::EntityBase>>* GetChildren()
const;
271 virtual int GetNumOfChildren();
289 virtual void ForgetParent();
337 virtual void Emancipate();
347 virtual bool RemoveFromHierarchy();
359 bool mIsRegistered =
false;
360 std::vector<trBase::SmrtPtr<trManager::EntityBase>>
mChildren;
static const trUtil::RefStr CLASS_TYPE
Adds an easy and swappable access to the base class.
static const trUtil::RefStr ON_TICK_REMOTE_INVOKABLE
Invokable for Tick messages.
This class creates a GUID, or a Unique ID that is used through out TR to identify and distinguish one...
virtual void OnRemovedFromSysMan()
Called by the System Manager after removing and Unregistering the EntityBase.
An Invokable is a queriable method interface that can be added to a trManager::ActorBase Invoking the...
A string wrapper that will make sure that all of the strings with the same value will point to the sa...
A class that specifies what kind of entity an object is in the Entity System.
trUtil::EnumerationPointer< const trManager::EntityType > mEntityType
System Manager class is a singleton that is responsible for all message routing and basic operations ...
static const trUtil::RefStr ON_TICK_INVOKABLE
Invokable for general messages.
This class is part of the internal garbage collection system.
This is a Base class that carries the Class name and Unique ID of all the derived classes...
static const trUtil::RefStr ON_MESSAGE_INVOKABLE
Holds the class type name for efficient comparisons.
trBase::ObsrvrPtr< trManager::SystemManager > mSysMan
trBase::SmrtPtr< trManager::EntityBase > mParent
trUtil::HashMap< std::string, trBase::SmrtPtr< trManager::Invokable > > mInvokables
std::vector< trBase::SmrtPtr< trManager::EntityBase > > mChildren
This serves as the base class for the Entity class and removes a circular dependency between Entity a...
This is the base class for all the messages in TR.
#define TR_MANAGER_EXPORT
virtual void OnAddedToSysMan()
Called by the System Manager when EntityBase Registration is complete.