entity_spell_system/entity_enums.h
Relintai 9aaa5d1d5a -Renamed CharacterSkeletonBoneId to CharacterSkeletonPoints.
-Added rank to spells.
-Removed The Icon class, and the SpellManager.
-More cleanup.
-Removed more collection dynamic allocations.
2019-05-30 00:26:02 +02:00

162 lines
5.3 KiB
C++

#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