#ifndef ENTITY_ENUMS_H #define ENTITY_ENUMS_H #include "core/object.h" #include "core/ustring.h" class EntityEnums : public Object { GDCLASS(EntityEnums, Object); public: static const String BINDING_STRING_PLAYER_RESOURCE_TYPES; static const String BINDING_STRING_ENTITY_TYPES; static const String BINDING_STRING_ENTITY_STATE_TYPES; static const String BINDING_STRING_CHARCATER_SKELETON_POINTS; enum PlayerResourceTypes { PLAYER_RESOURCE_TYPES_NONE, PLAYER_RESOURCE_TYPES_RAGE, PLAYER_RESOURCE_TYPES_MANA, PLAYER_RESOURCE_TYPES_ENERGY, PLAYER_RESOURCE_TYPES_TIME_ANOMALY, }; enum EntityType { ENITIY_TYPE_NONE, ENITIY_TYPE_PLAYER, ENITIY_TYPE_AI, ENITIY_TYPE_MOB }; enum EntityStateTypeFlags { ENTITY_STATE_TYPE_FLAG_NONE = 0, ENTITY_STATE_TYPE_FLAG_STUN = 1 << 0, ENTITY_STATE_TYPE_FLAG_ROOT = 1 << 1, ENTITY_STATE_TYPE_FLAG_FROZEN = 1 << 2, ENTITY_STATE_TYPE_FLAG_SILENCED = 1 << 3, ENTITY_STATE_TYPE_FLAG_DISORIENTED = 1 << 4, ENTITY_STATE_TYPE_FLAG_FEARED = 1 << 5, ENTITY_STATE_TYPE_FLAG_BURNING = 1 << 6, ENTITY_STATE_TYPE_FLAG_COLD = 1 << 7, ENTITY_STATE_TYPE_FLAG_CURSED = 1 << 8, ENTITY_STATE_TYPE_FLAG_PACIFIED = 1 << 9, }; enum EntityStateTypeIndexes { ENTITY_STATE_TYPE_INDEX_NONE = 0, ENTITY_STATE_TYPE_INDEX_STUN = 1, ENTITY_STATE_TYPE_INDEX_ROOT = 2, ENTITY_STATE_TYPE_INDEX_FROZEN = 3, ENTITY_STATE_TYPE_INDEX_SILENCED = 4, ENTITY_STATE_TYPE_INDEX_DISORIENTED = 5, ENTITY_STATE_TYPE_INDEX_FEARED = 6, ENTITY_STATE_TYPE_INDEX_BURNING = 7, ENTITY_STATE_TYPE_INDEX_COLD = 8, ENTITY_STATE_TYPE_INDEX_CURSED = 9, ENTITY_STATE_TYPE_INDEX_PACIFIED = 10, ENTITY_STATE_TYPE_INDEX_MAX = 11, }; static EntityStateTypeFlags get_state_flag_for_index(int index) { switch (index) { case ENTITY_STATE_TYPE_INDEX_STUN: return ENTITY_STATE_TYPE_FLAG_STUN; case ENTITY_STATE_TYPE_INDEX_ROOT: return ENTITY_STATE_TYPE_FLAG_ROOT; case ENTITY_STATE_TYPE_INDEX_FROZEN: return ENTITY_STATE_TYPE_FLAG_FROZEN; case ENTITY_STATE_TYPE_INDEX_SILENCED: return ENTITY_STATE_TYPE_FLAG_SILENCED; case ENTITY_STATE_TYPE_INDEX_DISORIENTED: return ENTITY_STATE_TYPE_FLAG_DISORIENTED; case ENTITY_STATE_TYPE_INDEX_FEARED: return ENTITY_STATE_TYPE_FLAG_FEARED; case ENTITY_STATE_TYPE_INDEX_BURNING: return ENTITY_STATE_TYPE_FLAG_BURNING; case ENTITY_STATE_TYPE_INDEX_COLD: return ENTITY_STATE_TYPE_FLAG_COLD; case ENTITY_STATE_TYPE_INDEX_CURSED: return ENTITY_STATE_TYPE_FLAG_CURSED; case ENTITY_STATE_TYPE_INDEX_PACIFIED: return ENTITY_STATE_TYPE_FLAG_PACIFIED; } return ENTITY_STATE_TYPE_FLAG_NONE; } enum CharacterSkeletonPoints { SKELETON_POINT_HIP = 0, SKELETON_POINT_LEFT_HAND = 1, SKELETON_POINT_RIGHT_HAND = 2, SKELETON_POINT_WEAPON = 3, SKELETON_POINT_BASE = 4, SKELETON_POINT_BODY = 5, SKELETON_POINT_HEAD = 6, SKELETON_POINT_RIGHT_EYE = 7, SKELETON_POINT_LEFT_EYE = 8, SKELETON_POINTS_MAX = 9, }; EntityEnums() {} protected: static void _bind_methods() { BIND_ENUM_CONSTANT(PLAYER_RESOURCE_TYPES_NONE); BIND_ENUM_CONSTANT(PLAYER_RESOURCE_TYPES_RAGE); BIND_ENUM_CONSTANT(PLAYER_RESOURCE_TYPES_MANA); BIND_ENUM_CONSTANT(PLAYER_RESOURCE_TYPES_ENERGY); BIND_ENUM_CONSTANT(PLAYER_RESOURCE_TYPES_TIME_ANOMALY); BIND_ENUM_CONSTANT(ENITIY_TYPE_NONE); BIND_ENUM_CONSTANT(ENITIY_TYPE_PLAYER); BIND_ENUM_CONSTANT(ENITIY_TYPE_AI); BIND_ENUM_CONSTANT(ENITIY_TYPE_MOB); BIND_ENUM_CONSTANT(ENTITY_STATE_TYPE_FLAG_NONE); BIND_ENUM_CONSTANT(ENTITY_STATE_TYPE_FLAG_STUN); BIND_ENUM_CONSTANT(ENTITY_STATE_TYPE_FLAG_ROOT); BIND_ENUM_CONSTANT(ENTITY_STATE_TYPE_FLAG_FROZEN); BIND_ENUM_CONSTANT(ENTITY_STATE_TYPE_FLAG_SILENCED); BIND_ENUM_CONSTANT(ENTITY_STATE_TYPE_FLAG_DISORIENTED); BIND_ENUM_CONSTANT(ENTITY_STATE_TYPE_FLAG_FEARED); BIND_ENUM_CONSTANT(ENTITY_STATE_TYPE_FLAG_BURNING); BIND_ENUM_CONSTANT(ENTITY_STATE_TYPE_FLAG_COLD); BIND_ENUM_CONSTANT(ENTITY_STATE_TYPE_FLAG_CURSED); BIND_ENUM_CONSTANT(ENTITY_STATE_TYPE_FLAG_PACIFIED); BIND_ENUM_CONSTANT(ENTITY_STATE_TYPE_INDEX_NONE); BIND_ENUM_CONSTANT(ENTITY_STATE_TYPE_INDEX_STUN); BIND_ENUM_CONSTANT(ENTITY_STATE_TYPE_INDEX_ROOT); BIND_ENUM_CONSTANT(ENTITY_STATE_TYPE_INDEX_FROZEN); BIND_ENUM_CONSTANT(ENTITY_STATE_TYPE_INDEX_SILENCED); BIND_ENUM_CONSTANT(ENTITY_STATE_TYPE_INDEX_DISORIENTED); BIND_ENUM_CONSTANT(ENTITY_STATE_TYPE_INDEX_FEARED); BIND_ENUM_CONSTANT(ENTITY_STATE_TYPE_INDEX_BURNING); BIND_ENUM_CONSTANT(ENTITY_STATE_TYPE_INDEX_COLD); BIND_ENUM_CONSTANT(ENTITY_STATE_TYPE_INDEX_CURSED); BIND_ENUM_CONSTANT(ENTITY_STATE_TYPE_INDEX_PACIFIED); BIND_ENUM_CONSTANT(ENTITY_STATE_TYPE_INDEX_MAX); BIND_ENUM_CONSTANT(SKELETON_POINT_HIP); BIND_ENUM_CONSTANT(SKELETON_POINT_LEFT_HAND); BIND_ENUM_CONSTANT(SKELETON_POINT_RIGHT_HAND); BIND_ENUM_CONSTANT(SKELETON_POINT_WEAPON); BIND_ENUM_CONSTANT(SKELETON_POINT_BASE); BIND_ENUM_CONSTANT(SKELETON_POINT_BODY); BIND_ENUM_CONSTANT(SKELETON_POINT_HEAD); BIND_ENUM_CONSTANT(SKELETON_POINT_RIGHT_EYE); BIND_ENUM_CONSTANT(SKELETON_POINT_LEFT_EYE); BIND_ENUM_CONSTANT(SKELETON_POINTS_MAX); } }; VARIANT_ENUM_CAST(EntityEnums::EntityType); VARIANT_ENUM_CAST(EntityEnums::PlayerResourceTypes); VARIANT_ENUM_CAST(EntityEnums::EntityStateTypeFlags); VARIANT_ENUM_CAST(EntityEnums::EntityStateTypeIndexes); VARIANT_ENUM_CAST(EntityEnums::CharacterSkeletonPoints); #endif