Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/entity.h')
-rw-r--r--src/core/entity.h53
1 files changed, 53 insertions, 0 deletions
diff --git a/src/core/entity.h b/src/core/entity.h
new file mode 100644
index 0000000..ef9168b
--- /dev/null
+++ b/src/core/entity.h
@@ -0,0 +1,53 @@
+/*
+ core/entity.h
+ This file is part of the Osirion project and is distributed under
+ the terms of the GNU General Public License version 2.
+*/
+
+#ifndef __INCLUDED_CORE_ENTITY_H__
+#define __INCLUDED_CORE_ENTITY_H__
+
+#include "math/mathlib.h"
+#include <vector>
+
+namespace core
+{
+
+/// The base world entity. All gameworld entities must derive from this class.
+class Entity {
+public:
+ /// create a new entity and add it to the registry
+ Entity(unsigned int entity_type, unsigned int entity_flags=0);
+ virtual ~Entity();
+
+ /// core id of the entity
+ unsigned int id;
+
+ /// location of the entity
+ math::Vector3f location;
+
+ /// flags
+ unsigned int flags;
+
+ /// type
+ unsigned int type;
+};
+
+namespace entity {
+
+ /// the entity registry
+ extern std::vector<Entity*> registry;
+
+ /// add an entity to the registry
+ void add(Entity *ent);
+
+ /// clear the entity registry
+ void clear();
+
+ /// list the entity registry
+ void list();
+}
+
+}
+
+#endif // __INCLUDED_CORE_ENTITY_H__