mirror of
https://github.com/Relintai/entity_spell_system.git
synced 2025-02-22 17:18:12 +01:00
TextureLayers are now customizable.
This commit is contained in:
parent
2d5d4c0a97
commit
740f3e1c99
@ -22,10 +22,12 @@ SOFTWARE.
|
|||||||
|
|
||||||
#include "model_visual.h"
|
#include "model_visual.h"
|
||||||
|
|
||||||
ItemEnums::EntityTextureLayers ModelVisual::get_layer() {
|
#include "../../singletons/ess.h"
|
||||||
|
|
||||||
|
int ModelVisual::get_layer() {
|
||||||
return _layer;
|
return _layer;
|
||||||
}
|
}
|
||||||
void ModelVisual::set_layer(ItemEnums::EntityTextureLayers layer) {
|
void ModelVisual::set_layer(int layer) {
|
||||||
_layer = layer;
|
_layer = layer;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -75,17 +77,25 @@ void ModelVisual::set_visual_entries(const Vector<Variant> &visual_entries) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ModelVisual::ModelVisual() {
|
ModelVisual::ModelVisual() {
|
||||||
_layer = ItemEnums::ENTITY_TEXTURE_LAYER_NONE;
|
_layer = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
ModelVisual::~ModelVisual() {
|
ModelVisual::~ModelVisual() {
|
||||||
_visual_entries.clear();
|
_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() {
|
void ModelVisual::_bind_methods() {
|
||||||
ClassDB::bind_method(D_METHOD("get_layer"), &ModelVisual::get_layer);
|
ClassDB::bind_method(D_METHOD("get_layer"), &ModelVisual::get_layer);
|
||||||
ClassDB::bind_method(D_METHOD("set_layer", "layer"), &ModelVisual::set_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
|
//ModelVisualEntry
|
||||||
ClassDB::bind_method(D_METHOD("get_visual_entry", "index"), &ModelVisual::get_visual_entry);
|
ClassDB::bind_method(D_METHOD("get_visual_entry", "index"), &ModelVisual::get_visual_entry);
|
||||||
|
@ -32,8 +32,8 @@ class ModelVisual : public Resource {
|
|||||||
GDCLASS(ModelVisual, Resource);
|
GDCLASS(ModelVisual, Resource);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
ItemEnums::EntityTextureLayers get_layer();
|
int get_layer();
|
||||||
void set_layer(ItemEnums::EntityTextureLayers layer);
|
void set_layer(int layer);
|
||||||
|
|
||||||
//ModelVisualEntry
|
//ModelVisualEntry
|
||||||
Ref<ModelVisualEntry> get_visual_entry(const int index) const;
|
Ref<ModelVisualEntry> get_visual_entry(const int index) const;
|
||||||
@ -50,10 +50,11 @@ public:
|
|||||||
~ModelVisual();
|
~ModelVisual();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
void _validate_property(PropertyInfo &property) const;
|
||||||
static void _bind_methods();
|
static void _bind_methods();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
ItemEnums::EntityTextureLayers _layer;
|
int _layer;
|
||||||
|
|
||||||
Vector<Ref<ModelVisualEntry> > _visual_entries;
|
Vector<Ref<ModelVisualEntry> > _visual_entries;
|
||||||
};
|
};
|
||||||
|
@ -24,10 +24,10 @@ SOFTWARE.
|
|||||||
|
|
||||||
#include "../../singletons/ess.h"
|
#include "../../singletons/ess.h"
|
||||||
|
|
||||||
ItemEnums::EntityTextureLayers ModelVisualEntry::get_override_layer() const {
|
int ModelVisualEntry::get_override_layer() const {
|
||||||
return _override_layer;
|
return _override_layer;
|
||||||
}
|
}
|
||||||
void ModelVisualEntry::set_override_layer(const ItemEnums::EntityTextureLayers layer) {
|
void ModelVisualEntry::set_override_layer(const int layer) {
|
||||||
_override_layer = layer;
|
_override_layer = layer;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -116,7 +116,7 @@ void ModelVisualEntry::set_size(const int value) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ModelVisualEntry::ModelVisualEntry() {
|
ModelVisualEntry::ModelVisualEntry() {
|
||||||
_override_layer = ItemEnums::ENTITY_TEXTURE_LAYER_NONE;
|
_override_layer = 0;
|
||||||
|
|
||||||
_entity_type = 0;
|
_entity_type = 0;
|
||||||
_bone = 0;
|
_bone = 0;
|
||||||
@ -232,13 +232,15 @@ void ModelVisualEntry::_validate_property(PropertyInfo &property) const {
|
|||||||
}
|
}
|
||||||
} else if (name == "entity_type") {
|
} else if (name == "entity_type") {
|
||||||
property.hint_string = ESS::get_instance()->entity_types_get();
|
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() {
|
void ModelVisualEntry::_bind_methods() {
|
||||||
ClassDB::bind_method(D_METHOD("get_override_layer"), &ModelVisualEntry::get_override_layer);
|
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);
|
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("get_entity_type"), &ModelVisualEntry::get_entity_type);
|
||||||
ClassDB::bind_method(D_METHOD("set_entity_type", "value"), &ModelVisualEntry::set_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);
|
GDCLASS(ModelVisualEntry, Resource);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
ItemEnums::EntityTextureLayers get_override_layer() const;
|
int get_override_layer() const;
|
||||||
void set_override_layer(const ItemEnums::EntityTextureLayers layer);
|
void set_override_layer(const int layer);
|
||||||
|
|
||||||
int get_entity_type() const;
|
int get_entity_type() const;
|
||||||
void set_entity_type(const int value);
|
void set_entity_type(const int value);
|
||||||
@ -109,7 +109,7 @@ protected:
|
|||||||
static void _bind_methods();
|
static void _bind_methods();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
ItemEnums::EntityTextureLayers _override_layer;
|
int _override_layer;
|
||||||
|
|
||||||
int _entity_type;
|
int _entity_type;
|
||||||
int _bone;
|
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_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_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_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) {
|
String ItemEnums::get_armor_type_string(int type) {
|
||||||
switch (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_TYPE;
|
||||||
static const String BINDING_STRING_ITEM_SUB_SUB_TYPE;
|
static const String BINDING_STRING_ITEM_SUB_SUB_TYPE;
|
||||||
static const String BINDING_STRING_ARMOR_TYPE;
|
static const String BINDING_STRING_ARMOR_TYPE;
|
||||||
static const String BINDING_STRING_ENTITY_TEXTURE_LAYERS;
|
|
||||||
|
|
||||||
enum ItemRarity {
|
enum ItemRarity {
|
||||||
ITEM_RARITY_NONE = 0,
|
ITEM_RARITY_NONE = 0,
|
||||||
@ -106,22 +105,6 @@ public:
|
|||||||
ARMOR_TYPE_MAX = 5,
|
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_equip_slot_string(int slot);
|
||||||
static String get_armor_type_string(int type);
|
static String get_armor_type_string(int type);
|
||||||
|
|
||||||
@ -183,20 +166,6 @@ protected:
|
|||||||
BIND_ENUM_CONSTANT(ARMOR_TYPE_MAIL);
|
BIND_ENUM_CONSTANT(ARMOR_TYPE_MAIL);
|
||||||
BIND_ENUM_CONSTANT(ARMOR_TYPE_PLATE);
|
BIND_ENUM_CONSTANT(ARMOR_TYPE_PLATE);
|
||||||
BIND_ENUM_CONSTANT(ARMOR_TYPE_MAX);
|
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::ItemSubtype);
|
||||||
VARIANT_ENUM_CAST(ItemEnums::ItemSubSubtype);
|
VARIANT_ENUM_CAST(ItemEnums::ItemSubSubtype);
|
||||||
VARIANT_ENUM_CAST(ItemEnums::ArmorType);
|
VARIANT_ENUM_CAST(ItemEnums::ArmorType);
|
||||||
VARIANT_ENUM_CAST(ItemEnums::EntityTextureLayers);
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -438,7 +438,7 @@ void ESS::skeletons_bones_set(const PoolStringArray &value) {
|
|||||||
_skeletons_bones = value;
|
_skeletons_bones = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
//ModelVisualGroups
|
//Other
|
||||||
String ESS::model_visual_groups_get() const {
|
String ESS::model_visual_groups_get() const {
|
||||||
return _model_visual_groups;
|
return _model_visual_groups;
|
||||||
}
|
}
|
||||||
@ -446,6 +446,13 @@ void ESS::model_visual_groups_set(const String &value) {
|
|||||||
_model_visual_groups = 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() {
|
void ESS::_bind_methods() {
|
||||||
ClassDB::bind_method(D_METHOD("get_use_spell_points"), &ESS::get_use_spell_points);
|
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);
|
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);
|
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");
|
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_get"), &ESS::model_visual_groups_get);
|
||||||
ClassDB::bind_method(D_METHOD("model_visual_groups_set", "value"), &ESS::model_visual_groups_set);
|
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");
|
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() {
|
ESS::ESS() {
|
||||||
@ -604,6 +615,8 @@ ESS::ESS() {
|
|||||||
|
|
||||||
_model_visual_groups = GLOBAL_DEF("ess/enums/model_visual_groups", "None,Bodypart,Alt Bodypart,Attachment");
|
_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) {
|
if (!Engine::get_singleton()->is_editor_hint() && _automatic_load) {
|
||||||
call_deferred("load_all");
|
call_deferred("load_all");
|
||||||
}
|
}
|
||||||
|
@ -152,10 +152,13 @@ public:
|
|||||||
PoolStringArray skeletons_bones_get() const;
|
PoolStringArray skeletons_bones_get() const;
|
||||||
void skeletons_bones_set(const PoolStringArray &value);
|
void skeletons_bones_set(const PoolStringArray &value);
|
||||||
|
|
||||||
//ModelVisualGroups
|
//Other
|
||||||
String model_visual_groups_get() const;
|
String model_visual_groups_get() const;
|
||||||
void model_visual_groups_set(const String &value);
|
void model_visual_groups_set(const String &value);
|
||||||
|
|
||||||
|
String texture_layers_get() const;
|
||||||
|
void texture_layers_set(const String &value);
|
||||||
|
|
||||||
ESS();
|
ESS();
|
||||||
~ESS();
|
~ESS();
|
||||||
|
|
||||||
@ -206,8 +209,9 @@ private:
|
|||||||
String _entity_types;
|
String _entity_types;
|
||||||
PoolStringArray _skeletons_bones;
|
PoolStringArray _skeletons_bones;
|
||||||
|
|
||||||
//ModelVisualGroups
|
//Other
|
||||||
String _model_visual_groups;
|
String _model_visual_groups;
|
||||||
|
String _texture_layers;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user