From 40fc27154fe754181934dc7ee31375e6bdfb33fc Mon Sep 17 00:00:00 2001 From: chai Date: Tue, 23 Oct 2018 12:23:58 +0800 Subject: *merge from minimal --- src/libjin/Game/je_entity.h | 75 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 src/libjin/Game/je_entity.h (limited to 'src/libjin/Game/je_entity.h') diff --git a/src/libjin/Game/je_entity.h b/src/libjin/Game/je_entity.h new file mode 100644 index 0000000..4a252da --- /dev/null +++ b/src/libjin/Game/je_entity.h @@ -0,0 +1,75 @@ +#ifndef __JE_GAME_OBJECT_H +#define __JE_GAME_OBJECT_H + +#include "../core/je_configuration.h" +#if defined(jin_game) + +#include +#include +#include + +#include "../common/je_object.h" +#include "../common/je_types.h" + +namespace JinEngine +{ + namespace Game + { + + /// + /// Game object base class. + /// + class Entity : public Object + { + public: + + /// + /// + /// + virtual ~Entity(); + + /// + /// + /// + void lifecycle(); + + /// + /// + /// + void setVisible(bool isVisible); + + /// + /// + /// + void setActive(bool isActive); + + protected: + virtual void onAlive(); + virtual void onUpdate(float dt); + virtual void onDraw(); + virtual void onDie(); + + uint32 layer; // layer where entity belongs + uint32 index; // render index in layer + uint64 tag; // tag of entity, 64 now + bool mIsVisible; // if the entity is visible or not + bool mIsActive; // if the entity is joined into the logic + + }; + + /// + /// Entity list. For quickly adding and removing entities. + /// + typedef std::list EntityList; + + /// + /// Entity set. For searching and keeps entities unique and sorted. + /// + typedef std::set EntitySet; + + } // namespace Game +} // namespace JinEngine + +#endif // jin_game + +#endif \ No newline at end of file -- cgit v1.1-26-g67d0