#ifndef _ENTITYBASETYPES_H #define _ENTITYBASETYPES_H namespace Engine { struct EntityBase; struct EntityPhysicState; struct EntityControllerState; /** \brief Represents the different types of an entity from the Engines' perspective * * The different EntityBaseTypes define their basic behaviour when it comes to * events such as collisions between two Entities. * * Here is an overview how collisions are handled: * * * * * * * * * * * * * * * * * * * * * * * * * * *
EntityBaseTypeParticleEntityBaseTypeBlockEntityBaseTypeActor
EntityBaseTypeParticle-CC
EntityBaseTypeBlockCCC
EntityBaseTypeActorCCC
* * A 'C' means that Engine::Physics::CheckPossibleCollisionPair() will return * true (this results that the two types cannot penetrate each other). */ enum EntityBaseType { EntityBaseTypeNone = 0, /**< is the default type and does not collide with anything */ EntityBaseTypeBlock, /**< represents walls etc. that block Particles, Actors and other Blocks */ EntityBaseTypeParticle, /**< is used for projectiles or Entities that just move but are "dumb" apart from that */ EntityBaseTypeActor, /**< is the type for objects that interact with each other */ EntityBaseTypeLast /**< marks the maximum number of EntityBaseType */ }; } #endif // _ENTITYBASETYPES_H