diff --git a/entity_enums.cpp b/entity_enums.cpp index 2d50986..a34e99f 100644 --- a/entity_enums.cpp +++ b/entity_enums.cpp @@ -1,7 +1,10 @@ #include "entity_enums.h" const String EntityEnums::BINDING_STRING_PLAYER_RESOURCE_TYPES = "None,Rage,Mana,Energy,Time Anomaly"; -const String EntityEnums::BINDING_STRING_ENTITY_TYPES = "None,Player,AI,Mob"; + +const String EntityEnums::BINDING_STRING_ENTITY_TYPES = "None,Creature,Totem,Idol,Humanoid,Mechanical,Beast,Dragonkin,Elemental,Ghost,Energy,Anomaly,Demon,Object"; +const String EntityEnums::BINDING_STRING_ENTITY_CONTOLLER = "None,Player,AI,Mob"; +const String EntityEnums::BINDING_STRING_ENTITY_FLAGS = "Untargetable,Hidden,Interactable,Hostile"; const String EntityEnums::BINDING_STRING_ENTITY_STATE_TYPES = "None,Stun,Root,Frozen,Silenced,Disoriented,Feared,Burning,Cold,Cursed,Pacified"; const String EntityEnums::BINDING_STRING_CHARCATER_SKELETON_POINTS = "Root,Pelvis,Spine,Spine 1,Spine 2,Neck,Head,Left Clavicle,Left upper Arm,Left Forearm,Left Hand,Left Thumb Base,Left Thumb End,Left Fingers Base,Left Fingers End,Right Clavicle,Right upper Arm,Right Forearm,Right Hand,Right Thumb Base,Right Thumb End,Right Fingers Base,Right Fingers End,Left Thigh,Left Calf,Left Foot,Right Thigh,Right Calf,Right Foot"; const String EntityEnums::BINDING_STRING_AI_STATES = "Off,Rest,Patrol,Follow Path,Regenerate,Attack"; @@ -20,9 +23,32 @@ void EntityEnums::_bind_methods() { 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(ENITIY_TYPE_CREATURE); + BIND_ENUM_CONSTANT(ENITIY_TYPE_TOTEM); + BIND_ENUM_CONSTANT(ENITIY_TYPE_IDOL); + BIND_ENUM_CONSTANT(ENITIY_TYPE_HUMANOID); + BIND_ENUM_CONSTANT(ENITIY_TYPE_MECHANICAL); + BIND_ENUM_CONSTANT(ENITIY_TYPE_BEAST); + BIND_ENUM_CONSTANT(ENITIY_TYPE_DRAGONKIN); + BIND_ENUM_CONSTANT(ENITIY_TYPE_ELEMENTAL); + BIND_ENUM_CONSTANT(ENITIY_TYPE_GHOST); + BIND_ENUM_CONSTANT(ENITIY_TYPE_ENERGY); + BIND_ENUM_CONSTANT(ENITIY_TYPE_ANOMALY); + BIND_ENUM_CONSTANT(ENITIY_TYPE_DEMON); + BIND_ENUM_CONSTANT(ENITIY_TYPE_OBJECT); + + + BIND_ENUM_CONSTANT(ENITIY_CONTROLLER_NONE); + BIND_ENUM_CONSTANT(ENITIY_CONTROLLER_PLAYER); + BIND_ENUM_CONSTANT(ENITIY_CONTROLLER_AI); + BIND_ENUM_CONSTANT(ENITIY_CONTROLLER_MOB); + + + BIND_ENUM_CONSTANT(ENITIY_FLAGS_NONE); + BIND_ENUM_CONSTANT(ENTITY_FLAGS_UNTARGETALBE); + BIND_ENUM_CONSTANT(ENTITY_FLAGS_HIDDEN); + BIND_ENUM_CONSTANT(ENTITY_FLAGS_INTERACTABLE); + BIND_ENUM_CONSTANT(ENTITY_FLAGS_HOSTILE); BIND_ENUM_CONSTANT(ENTITY_STATE_TYPE_FLAG_NONE); diff --git a/entity_enums.h b/entity_enums.h index 1fee078..0b725d0 100644 --- a/entity_enums.h +++ b/entity_enums.h @@ -9,7 +9,10 @@ class EntityEnums : public Object { public: static const String BINDING_STRING_PLAYER_RESOURCE_TYPES; + static const String BINDING_STRING_ENTITY_TYPES; + static const String BINDING_STRING_ENTITY_CONTOLLER; + static const String BINDING_STRING_ENTITY_FLAGS; static const String BINDING_STRING_ENTITY_STATE_TYPES; static const String BINDING_STRING_CHARCATER_SKELETON_POINTS; static const String BINDING_STRING_AI_STATES; @@ -22,9 +25,35 @@ public: enum EntityType { ENITIY_TYPE_NONE, - ENITIY_TYPE_PLAYER, - ENITIY_TYPE_AI, - ENITIY_TYPE_MOB + ENITIY_TYPE_CREATURE, + ENITIY_TYPE_TOTEM, + ENITIY_TYPE_IDOL, + ENITIY_TYPE_HUMANOID, + ENITIY_TYPE_MECHANICAL, + ENITIY_TYPE_BEAST, + ENITIY_TYPE_DRAGONKIN, + ENITIY_TYPE_ELEMENTAL, + ENITIY_TYPE_GHOST, + ENITIY_TYPE_ENERGY, + ENITIY_TYPE_ANOMALY, + ENITIY_TYPE_DEMON, + ENITIY_TYPE_OBJECT, + }; + + enum EntityController { + ENITIY_CONTROLLER_NONE, + ENITIY_CONTROLLER_PLAYER, + ENITIY_CONTROLLER_AI, + ENITIY_CONTROLLER_MOB + }; + + enum EntityFlags { + ENITIY_FLAGS_NONE = 0, + + ENTITY_FLAGS_UNTARGETALBE = 1 << 0, + ENTITY_FLAGS_HIDDEN = 1 << 1, + ENTITY_FLAGS_INTERACTABLE = 1 << 2, + ENTITY_FLAGS_HOSTILE = 1 << 3, }; enum EntityStateTypeFlags { @@ -176,6 +205,8 @@ protected: }; VARIANT_ENUM_CAST(EntityEnums::EntityType); +VARIANT_ENUM_CAST(EntityEnums::EntityController); +VARIANT_ENUM_CAST(EntityEnums::EntityFlags); VARIANT_ENUM_CAST(EntityEnums::EntityStateTypeFlags); VARIANT_ENUM_CAST(EntityEnums::EntityStateTypeIndexes); VARIANT_ENUM_CAST(EntityEnums::CharacterSkeletonPoints);