mirror of
https://github.com/Relintai/entity_spell_system.git
synced 2025-04-19 21:33:15 +02:00
Restored EquipmentDataEntry.
This commit is contained in:
parent
be520eb184
commit
82893c5a61
@ -1,14 +1,11 @@
|
||||
#include "equipment_data.h"
|
||||
|
||||
#include "item_template.h"
|
||||
#include "item_instance.h"
|
||||
|
||||
Ref<ItemTemplate> EquipmentData::get_slot(int index) {
|
||||
ERR_FAIL_INDEX_V(index, ItemEnums::EQUIP_SLOT_EQUIP_SLOT_MAX, Ref<ItemTemplate>());
|
||||
Ref<EquipmentDataEntry> EquipmentData::get_slot(int index) {
|
||||
ERR_FAIL_INDEX_V(index, ItemEnums::EQUIP_SLOT_EQUIP_SLOT_MAX, Ref<EquipmentDataEntry>());
|
||||
|
||||
return _entries[index];
|
||||
}
|
||||
void EquipmentData::set_slot(int index, Ref<ItemTemplate> entry) {
|
||||
void EquipmentData::set_slot(int index, Ref<EquipmentDataEntry> entry) {
|
||||
ERR_FAIL_INDEX(index, ItemEnums::EQUIP_SLOT_EQUIP_SLOT_MAX);
|
||||
|
||||
_entries[index] = entry;
|
||||
@ -17,12 +14,12 @@ void EquipmentData::set_slot(int index, Ref<ItemTemplate> entry) {
|
||||
Ref<ItemInstance> EquipmentData::get_item(int index) {
|
||||
ERR_FAIL_INDEX_V(index, ItemEnums::EQUIP_SLOT_EQUIP_SLOT_MAX, Ref<ItemInstance>());
|
||||
|
||||
Ref<ItemTemplate> ede = _entries[index];
|
||||
Ref<EquipmentDataEntry> ede = _entries[index];
|
||||
|
||||
if (!ede.is_valid())
|
||||
return Ref<ItemInstance>();
|
||||
|
||||
return ede->create_item_instance();
|
||||
return ede->get_item();
|
||||
}
|
||||
|
||||
EquipmentData::EquipmentData() {
|
||||
@ -39,6 +36,6 @@ void EquipmentData::_bind_methods() {
|
||||
|
||||
ADD_GROUP("Slots", "slot");
|
||||
for (int i = 0; i < ItemEnums::EQUIP_SLOT_EQUIP_SLOT_MAX; ++i) {
|
||||
ADD_PROPERTYI(PropertyInfo(Variant::OBJECT, "slot_" + ItemEnums::get_equip_slot_string(i), PROPERTY_HINT_RESOURCE_TYPE, "ItemTemplate"), "set_slot", "get_slot", i);
|
||||
ADD_PROPERTYI(PropertyInfo(Variant::OBJECT, "slot_" + ItemEnums::get_equip_slot_string(i), PROPERTY_HINT_RESOURCE_TYPE, "EquipmentDataEntry"), "set_slot", "get_slot", i);
|
||||
}
|
||||
}
|
||||
|
@ -4,16 +4,14 @@
|
||||
#include "core/resource.h"
|
||||
|
||||
#include "../item_enums.h"
|
||||
|
||||
class ItemTemplate;
|
||||
class ItemInstance;
|
||||
#include "equipment_data_entry.h"
|
||||
|
||||
class EquipmentData : public Resource {
|
||||
GDCLASS(EquipmentData, Resource);
|
||||
|
||||
public:
|
||||
Ref<ItemTemplate> get_slot(int index);
|
||||
void set_slot(int index, Ref<ItemTemplate> entry);
|
||||
Ref<EquipmentDataEntry> get_slot(int index);
|
||||
void set_slot(int index, Ref<EquipmentDataEntry> entry);
|
||||
|
||||
Ref<ItemInstance> get_item(int index);
|
||||
|
||||
@ -24,7 +22,7 @@ protected:
|
||||
static void _bind_methods();
|
||||
|
||||
private:
|
||||
Ref<ItemTemplate> _entries[ItemEnums::EQUIP_SLOT_EQUIP_SLOT_MAX];
|
||||
Ref<EquipmentDataEntry> _entries[ItemEnums::EQUIP_SLOT_EQUIP_SLOT_MAX];
|
||||
};
|
||||
|
||||
#endif
|
||||
|
23
data/equipment_data_entry.cpp
Normal file
23
data/equipment_data_entry.cpp
Normal file
@ -0,0 +1,23 @@
|
||||
#include "equipment_data_entry.h"
|
||||
|
||||
|
||||
|
||||
Ref<ItemInstance> EquipmentDataEntry::get_item() {
|
||||
if (has_method("_get_item")) {
|
||||
return call("_get_item");
|
||||
}
|
||||
|
||||
return Ref<ItemInstance>();
|
||||
}
|
||||
|
||||
EquipmentDataEntry::EquipmentDataEntry() {
|
||||
}
|
||||
|
||||
EquipmentDataEntry::~EquipmentDataEntry() {
|
||||
}
|
||||
|
||||
void EquipmentDataEntry::_bind_methods() {
|
||||
BIND_VMETHOD(MethodInfo(PropertyInfo(Variant::OBJECT, "item", PROPERTY_HINT_RESOURCE_TYPE, "ItemInstance"), "_get_item"));
|
||||
|
||||
ClassDB::bind_method(D_METHOD("get_item"), &EquipmentDataEntry::get_item);
|
||||
}
|
25
data/equipment_data_entry.h
Normal file
25
data/equipment_data_entry.h
Normal file
@ -0,0 +1,25 @@
|
||||
#ifndef EQUIPMENT_DATA_ENTRY_H
|
||||
#define EQUIPMENT_DATA_ENTRY_H
|
||||
|
||||
#include "core/resource.h"
|
||||
|
||||
#include "item_instance.h"
|
||||
|
||||
class ItemInstance;
|
||||
|
||||
class EquipmentDataEntry : public Resource {
|
||||
GDCLASS(EquipmentDataEntry, Resource);
|
||||
|
||||
public:
|
||||
Ref<ItemInstance> get_item();
|
||||
|
||||
EquipmentDataEntry();
|
||||
~EquipmentDataEntry();
|
||||
|
||||
protected:
|
||||
static void _bind_methods();
|
||||
|
||||
//private:
|
||||
};
|
||||
|
||||
#endif
|
@ -11,6 +11,7 @@
|
||||
#include "data/item_template_stat_modifier.h"
|
||||
#include "data/spell_cooldown_manipulation_data.h"
|
||||
#include "data/equipment_data.h"
|
||||
#include "data/equipment_data_entry.h"
|
||||
|
||||
#include "entities/data/entity_data.h"
|
||||
#include "entities/data/entity_class_data.h"
|
||||
@ -151,6 +152,7 @@ void register_entity_spell_system_types() {
|
||||
ClassDB::register_class<TalentRowData>();
|
||||
|
||||
ClassDB::register_class<EquipmentData>();
|
||||
ClassDB::register_class<EquipmentDataEntry>();
|
||||
|
||||
ClassDB::register_class<EntitySkill>();
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user