/*! \file world_entity.h \brief Definition of the basic WorldEntity */ #ifndef _WORLD_ENTITY_H #define _WORLD_ENTITY_H #include "p_node.h" #include "comincl.h" #include "resource_manager.h" #include "factory.h" #include "load_param.h" //class CollisionCluster; class CharacterAttributes; class Model; class SoundEngine; class SoundBuffer; class SoundSource; //! Basic class from which all interactive stuff in the world is derived from class WorldEntity : public PNode { friend class World; public: WorldEntity(const TiXmlElement* root = NULL); virtual ~WorldEntity (); void loadParams(const TiXmlElement* root); void loadModel(const char* fileName); //void setCollision (CollisionCluster* newhull); //void addAbility(Ability* ability); //void removeAbility(Ability* ability); void setDrawable (bool bDraw); void setCharacterAttributes(CharacterAttributes* charAttr); CharacterAttributes* getCharacterAttributes(); virtual void postSpawn (); virtual void leftWorld (); virtual void hit (WorldEntity* weapon, Vector* loc); virtual void collide (WorldEntity* other, Uint32 ownhitflags, Uint32 otherhitflags); virtual void command (Command* cmd); void processDraw (); virtual void draw (); virtual void tick (float time); protected: Model* model; //!< The model that should be loaded for this entity. CharacterAttributes* charAttr; //!< the character attributes of a world_entity private: bool bCollide; //!< If it should be considered for the collisiontest. bool bDraw; //!< If it should be visible. //CollisionCluster* collisioncluster; //!< The collision-Cluster of this entity. }; #endif /* _WORLD_ENTITY_H */