2019-10-13 15:21:28 +02:00
|
|
|
#include "equipment_data.h"
|
|
|
|
|
2019-10-24 22:25:25 +02:00
|
|
|
Ref<EquipmentDataEntry> EquipmentData::get_slot(int index) {
|
|
|
|
ERR_FAIL_INDEX_V(index, ItemEnums::EQUIP_SLOT_EQUIP_SLOT_MAX, Ref<EquipmentDataEntry>());
|
2019-10-13 15:21:28 +02:00
|
|
|
|
|
|
|
return _entries[index];
|
|
|
|
}
|
2019-10-24 22:25:25 +02:00
|
|
|
void EquipmentData::set_slot(int index, Ref<EquipmentDataEntry> entry) {
|
2019-10-13 15:21:28 +02:00
|
|
|
ERR_FAIL_INDEX(index, ItemEnums::EQUIP_SLOT_EQUIP_SLOT_MAX);
|
|
|
|
|
|
|
|
_entries[index] = entry;
|
|
|
|
}
|
|
|
|
|
2019-10-13 20:05:03 +02:00
|
|
|
Ref<ItemInstance> EquipmentData::get_item(int index) {
|
|
|
|
ERR_FAIL_INDEX_V(index, ItemEnums::EQUIP_SLOT_EQUIP_SLOT_MAX, Ref<ItemInstance>());
|
|
|
|
|
2019-10-24 22:25:25 +02:00
|
|
|
Ref<EquipmentDataEntry> ede = _entries[index];
|
2019-10-13 20:05:03 +02:00
|
|
|
|
|
|
|
if (!ede.is_valid())
|
|
|
|
return Ref<ItemInstance>();
|
|
|
|
|
2019-10-24 22:25:25 +02:00
|
|
|
return ede->get_item();
|
2019-10-13 20:05:03 +02:00
|
|
|
}
|
|
|
|
|
2019-10-13 19:39:11 +02:00
|
|
|
EquipmentData::EquipmentData() {
|
2019-10-13 15:21:28 +02:00
|
|
|
}
|
|
|
|
|
2019-10-13 19:39:11 +02:00
|
|
|
EquipmentData::~EquipmentData() {
|
2019-10-13 15:21:28 +02:00
|
|
|
for (int i = 0; i < ItemEnums::EQUIP_SLOT_EQUIP_SLOT_MAX; ++i)
|
|
|
|
_entries[i].unref();
|
|
|
|
}
|
|
|
|
|
2019-10-13 19:39:11 +02:00
|
|
|
void EquipmentData::_bind_methods() {
|
|
|
|
ClassDB::bind_method(D_METHOD("get_slot", "index"), &EquipmentData::get_slot);
|
|
|
|
ClassDB::bind_method(D_METHOD("set_slot", "index", "entry"), &EquipmentData::set_slot);
|
2019-10-13 15:21:28 +02:00
|
|
|
|
|
|
|
ADD_GROUP("Slots", "slot");
|
|
|
|
for (int i = 0; i < ItemEnums::EQUIP_SLOT_EQUIP_SLOT_MAX; ++i) {
|
2019-10-24 22:25:25 +02:00
|
|
|
ADD_PROPERTYI(PropertyInfo(Variant::OBJECT, "slot_" + ItemEnums::get_equip_slot_string(i), PROPERTY_HINT_RESOURCE_TYPE, "EquipmentDataEntry"), "set_slot", "get_slot", i);
|
2019-10-13 15:21:28 +02:00
|
|
|
}
|
|
|
|
}
|