mirror of
https://github.com/Relintai/entity_spell_system.git
synced 2025-02-20 17:14:44 +01:00
TextureLayers are now customizable.
This commit is contained in:
parent
2d5d4c0a97
commit
740f3e1c99
@ -22,10 +22,12 @@ SOFTWARE.
|
||||
|
||||
#include "model_visual.h"
|
||||
|
||||
ItemEnums::EntityTextureLayers ModelVisual::get_layer() {
|
||||
#include "../../singletons/ess.h"
|
||||
|
||||
int ModelVisual::get_layer() {
|
||||
return _layer;
|
||||
}
|
||||
void ModelVisual::set_layer(ItemEnums::EntityTextureLayers layer) {
|
||||
void ModelVisual::set_layer(int layer) {
|
||||
_layer = layer;
|
||||
}
|
||||
|
||||
@ -75,17 +77,25 @@ void ModelVisual::set_visual_entries(const Vector<Variant> &visual_entries) {
|
||||
}
|
||||
|
||||
ModelVisual::ModelVisual() {
|
||||
_layer = ItemEnums::ENTITY_TEXTURE_LAYER_NONE;
|
||||
_layer = 0;
|
||||
}
|
||||
|
||||
ModelVisual::~ModelVisual() {
|
||||
_visual_entries.clear();
|
||||
}
|
||||
|
||||
void ModelVisual::_validate_property(PropertyInfo &property) const {
|
||||
String name = property.name;
|
||||
|
||||
if (name == "layer") {
|
||||
property.hint_string = ESS::get_instance()->texture_layers_get();
|
||||
}
|
||||
}
|
||||
|
||||
void ModelVisual::_bind_methods() {
|
||||
ClassDB::bind_method(D_METHOD("get_layer"), &ModelVisual::get_layer);
|
||||
ClassDB::bind_method(D_METHOD("set_layer", "layer"), &ModelVisual::set_layer);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "layer", PROPERTY_HINT_ENUM, ItemEnums::BINDING_STRING_ENTITY_TEXTURE_LAYERS), "set_layer", "get_layer");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "layer", PROPERTY_HINT_ENUM, ""), "set_layer", "get_layer");
|
||||
|
||||
//ModelVisualEntry
|
||||
ClassDB::bind_method(D_METHOD("get_visual_entry", "index"), &ModelVisual::get_visual_entry);
|
||||
|
@ -32,8 +32,8 @@ class ModelVisual : public Resource {
|
||||
GDCLASS(ModelVisual, Resource);
|
||||
|
||||
public:
|
||||
ItemEnums::EntityTextureLayers get_layer();
|
||||
void set_layer(ItemEnums::EntityTextureLayers layer);
|
||||
int get_layer();
|
||||
void set_layer(int layer);
|
||||
|
||||
//ModelVisualEntry
|
||||
Ref<ModelVisualEntry> get_visual_entry(const int index) const;
|
||||
@ -50,10 +50,11 @@ public:
|
||||
~ModelVisual();
|
||||
|
||||
protected:
|
||||
void _validate_property(PropertyInfo &property) const;
|
||||
static void _bind_methods();
|
||||
|
||||
private:
|
||||
ItemEnums::EntityTextureLayers _layer;
|
||||
int _layer;
|
||||
|
||||
Vector<Ref<ModelVisualEntry> > _visual_entries;
|
||||
};
|
||||
|
@ -24,10 +24,10 @@ SOFTWARE.
|
||||
|
||||
#include "../../singletons/ess.h"
|
||||
|
||||
ItemEnums::EntityTextureLayers ModelVisualEntry::get_override_layer() const {
|
||||
int ModelVisualEntry::get_override_layer() const {
|
||||
return _override_layer;
|
||||
}
|
||||
void ModelVisualEntry::set_override_layer(const ItemEnums::EntityTextureLayers layer) {
|
||||
void ModelVisualEntry::set_override_layer(const int layer) {
|
||||
_override_layer = layer;
|
||||
}
|
||||
|
||||
@ -116,7 +116,7 @@ void ModelVisualEntry::set_size(const int value) {
|
||||
}
|
||||
|
||||
ModelVisualEntry::ModelVisualEntry() {
|
||||
_override_layer = ItemEnums::ENTITY_TEXTURE_LAYER_NONE;
|
||||
_override_layer = 0;
|
||||
|
||||
_entity_type = 0;
|
||||
_bone = 0;
|
||||
@ -232,13 +232,15 @@ void ModelVisualEntry::_validate_property(PropertyInfo &property) const {
|
||||
}
|
||||
} else if (name == "entity_type") {
|
||||
property.hint_string = ESS::get_instance()->entity_types_get();
|
||||
} else if (name == "override_layer") {
|
||||
property.hint_string = ESS::get_instance()->texture_layers_get();
|
||||
}
|
||||
}
|
||||
|
||||
void ModelVisualEntry::_bind_methods() {
|
||||
ClassDB::bind_method(D_METHOD("get_override_layer"), &ModelVisualEntry::get_override_layer);
|
||||
ClassDB::bind_method(D_METHOD("set_override_layer", "value"), &ModelVisualEntry::set_override_layer);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "override_layer", PROPERTY_HINT_ENUM, ItemEnums::BINDING_STRING_ENTITY_TEXTURE_LAYERS), "set_override_layer", "get_override_layer");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "override_layer", PROPERTY_HINT_ENUM, ""), "set_override_layer", "get_override_layer");
|
||||
|
||||
ClassDB::bind_method(D_METHOD("get_entity_type"), &ModelVisualEntry::get_entity_type);
|
||||
ClassDB::bind_method(D_METHOD("set_entity_type", "value"), &ModelVisualEntry::set_entity_type);
|
||||
|
@ -42,8 +42,8 @@ class ModelVisualEntry : public Resource {
|
||||
GDCLASS(ModelVisualEntry, Resource);
|
||||
|
||||
public:
|
||||
ItemEnums::EntityTextureLayers get_override_layer() const;
|
||||
void set_override_layer(const ItemEnums::EntityTextureLayers layer);
|
||||
int get_override_layer() const;
|
||||
void set_override_layer(const int layer);
|
||||
|
||||
int get_entity_type() const;
|
||||
void set_entity_type(const int value);
|
||||
@ -109,7 +109,7 @@ protected:
|
||||
static void _bind_methods();
|
||||
|
||||
private:
|
||||
ItemEnums::EntityTextureLayers _override_layer;
|
||||
int _override_layer;
|
||||
|
||||
int _entity_type;
|
||||
int _bone;
|
||||
|
@ -29,7 +29,6 @@ const String ItemEnums::BINDING_STRING_ITEM_TYPE_FLAGS = "Equipment,Potion,Herb,
|
||||
const String ItemEnums::BINDING_STRING_ITEM_SUB_TYPE = "None,Sword,Axe,Mace,Dagger,Bow,Crossbow,Gun,Wand,Quest Item";
|
||||
const String ItemEnums::BINDING_STRING_ITEM_SUB_SUB_TYPE = "None,Two Hand,One Hand,Left Hand,Right Hand";
|
||||
const String ItemEnums::BINDING_STRING_ARMOR_TYPE = "None,Cloth,Leather,Mail,Plate";
|
||||
const String ItemEnums::BINDING_STRING_ENTITY_TEXTURE_LAYERS = "None,Skin,Underwear,Shirt,Clothes Base,Clothes 1,Clothes 2,Clothes 3,Clothes 4,Clothes 5,Belt,Tabard,Overlay";
|
||||
|
||||
String ItemEnums::get_armor_type_string(int type) {
|
||||
switch (type) {
|
||||
|
32
item_enums.h
32
item_enums.h
@ -37,7 +37,6 @@ public:
|
||||
static const String BINDING_STRING_ITEM_SUB_TYPE;
|
||||
static const String BINDING_STRING_ITEM_SUB_SUB_TYPE;
|
||||
static const String BINDING_STRING_ARMOR_TYPE;
|
||||
static const String BINDING_STRING_ENTITY_TEXTURE_LAYERS;
|
||||
|
||||
enum ItemRarity {
|
||||
ITEM_RARITY_NONE = 0,
|
||||
@ -106,22 +105,6 @@ public:
|
||||
ARMOR_TYPE_MAX = 5,
|
||||
};
|
||||
|
||||
enum EntityTextureLayers {
|
||||
ENTITY_TEXTURE_LAYER_NONE = 0,
|
||||
ENTITY_TEXTURE_LAYER_SKIN = 1,
|
||||
ENTITY_TEXTURE_LAYER_UNDERWEAR = 2,
|
||||
ENTITY_TEXTURE_LAYER_SHIRT = 3,
|
||||
ENTITY_TEXTURE_LAYER_CLOTHES_BASE = 4,
|
||||
ENTITY_TEXTURE_LAYER_CLOTHES_1 = 5,
|
||||
ENTITY_TEXTURE_LAYER_CLOTHES_2 = 6,
|
||||
ENTITY_TEXTURE_LAYER_CLOTHES_3 = 7,
|
||||
ENTITY_TEXTURE_LAYER_CLOTHES_4 = 8,
|
||||
ENTITY_TEXTURE_LAYER_CLOTHES_5 = 9,
|
||||
ENTITY_TEXTURE_LAYER_BELT = 10,
|
||||
ENTITY_TEXTURE_LAYER_TABARD = 11,
|
||||
ENTITY_TEXTURE_LAYER_OVERLAY = 12
|
||||
};
|
||||
|
||||
static String get_equip_slot_string(int slot);
|
||||
static String get_armor_type_string(int type);
|
||||
|
||||
@ -183,20 +166,6 @@ protected:
|
||||
BIND_ENUM_CONSTANT(ARMOR_TYPE_MAIL);
|
||||
BIND_ENUM_CONSTANT(ARMOR_TYPE_PLATE);
|
||||
BIND_ENUM_CONSTANT(ARMOR_TYPE_MAX);
|
||||
|
||||
BIND_ENUM_CONSTANT(ENTITY_TEXTURE_LAYER_NONE);
|
||||
BIND_ENUM_CONSTANT(ENTITY_TEXTURE_LAYER_SKIN);
|
||||
BIND_ENUM_CONSTANT(ENTITY_TEXTURE_LAYER_UNDERWEAR);
|
||||
BIND_ENUM_CONSTANT(ENTITY_TEXTURE_LAYER_SHIRT);
|
||||
BIND_ENUM_CONSTANT(ENTITY_TEXTURE_LAYER_CLOTHES_BASE);
|
||||
BIND_ENUM_CONSTANT(ENTITY_TEXTURE_LAYER_CLOTHES_1);
|
||||
BIND_ENUM_CONSTANT(ENTITY_TEXTURE_LAYER_CLOTHES_2);
|
||||
BIND_ENUM_CONSTANT(ENTITY_TEXTURE_LAYER_CLOTHES_3);
|
||||
BIND_ENUM_CONSTANT(ENTITY_TEXTURE_LAYER_CLOTHES_4);
|
||||
BIND_ENUM_CONSTANT(ENTITY_TEXTURE_LAYER_CLOTHES_5);
|
||||
BIND_ENUM_CONSTANT(ENTITY_TEXTURE_LAYER_BELT);
|
||||
BIND_ENUM_CONSTANT(ENTITY_TEXTURE_LAYER_TABARD);
|
||||
BIND_ENUM_CONSTANT(ENTITY_TEXTURE_LAYER_OVERLAY);
|
||||
}
|
||||
};
|
||||
|
||||
@ -206,6 +175,5 @@ VARIANT_ENUM_CAST(ItemEnums::ItemType);
|
||||
VARIANT_ENUM_CAST(ItemEnums::ItemSubtype);
|
||||
VARIANT_ENUM_CAST(ItemEnums::ItemSubSubtype);
|
||||
VARIANT_ENUM_CAST(ItemEnums::ArmorType);
|
||||
VARIANT_ENUM_CAST(ItemEnums::EntityTextureLayers);
|
||||
|
||||
#endif
|
||||
|
@ -438,7 +438,7 @@ void ESS::skeletons_bones_set(const PoolStringArray &value) {
|
||||
_skeletons_bones = value;
|
||||
}
|
||||
|
||||
//ModelVisualGroups
|
||||
//Other
|
||||
String ESS::model_visual_groups_get() const {
|
||||
return _model_visual_groups;
|
||||
}
|
||||
@ -446,6 +446,13 @@ void ESS::model_visual_groups_set(const String &value) {
|
||||
_model_visual_groups = value;
|
||||
}
|
||||
|
||||
String ESS::texture_layers_get() const {
|
||||
return _texture_layers;
|
||||
}
|
||||
void ESS::texture_layers_set(const String &value) {
|
||||
_texture_layers = value;
|
||||
}
|
||||
|
||||
void ESS::_bind_methods() {
|
||||
ClassDB::bind_method(D_METHOD("get_use_spell_points"), &ESS::get_use_spell_points);
|
||||
ClassDB::bind_method(D_METHOD("set_use_spell_points", "value"), &ESS::set_use_spell_points);
|
||||
@ -568,10 +575,14 @@ void ESS::_bind_methods() {
|
||||
ClassDB::bind_method(D_METHOD("skeletons_bones_set", "value"), &ESS::skeletons_bones_set);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::POOL_STRING_ARRAY, "skeletons_bones"), "skeletons_bones_set", "skeletons_bones_get");
|
||||
|
||||
//ModelVisualGroups
|
||||
//Other
|
||||
ClassDB::bind_method(D_METHOD("model_visual_groups_get"), &ESS::model_visual_groups_get);
|
||||
ClassDB::bind_method(D_METHOD("model_visual_groups_set", "value"), &ESS::model_visual_groups_set);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::STRING, "model_visual_groups"), "model_visual_groups_set", "model_visual_groups_get");
|
||||
|
||||
ClassDB::bind_method(D_METHOD("texture_layers_get"), &ESS::texture_layers_get);
|
||||
ClassDB::bind_method(D_METHOD("texture_layers_set", "value"), &ESS::texture_layers_set);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::STRING, "texture_layers"), "texture_layers_set", "texture_layers_get");
|
||||
}
|
||||
|
||||
ESS::ESS() {
|
||||
@ -604,6 +615,8 @@ ESS::ESS() {
|
||||
|
||||
_model_visual_groups = GLOBAL_DEF("ess/enums/model_visual_groups", "None,Bodypart,Alt Bodypart,Attachment");
|
||||
|
||||
_texture_layers = GLOBAL_DEF("ess/enums/texture_layers", "None,Skin,Underwear,Shirt,Clothes Base,Clothes 1,Clothes 2,Clothes 3,Clothes 4,Clothes 5,Belt,Tabard,Overlay");
|
||||
|
||||
if (!Engine::get_singleton()->is_editor_hint() && _automatic_load) {
|
||||
call_deferred("load_all");
|
||||
}
|
||||
|
@ -152,10 +152,13 @@ public:
|
||||
PoolStringArray skeletons_bones_get() const;
|
||||
void skeletons_bones_set(const PoolStringArray &value);
|
||||
|
||||
//ModelVisualGroups
|
||||
//Other
|
||||
String model_visual_groups_get() const;
|
||||
void model_visual_groups_set(const String &value);
|
||||
|
||||
String texture_layers_get() const;
|
||||
void texture_layers_set(const String &value);
|
||||
|
||||
ESS();
|
||||
~ESS();
|
||||
|
||||
@ -206,8 +209,9 @@ private:
|
||||
String _entity_types;
|
||||
PoolStringArray _skeletons_bones;
|
||||
|
||||
//ModelVisualGroups
|
||||
//Other
|
||||
String _model_visual_groups;
|
||||
String _texture_layers;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user