mirror of
https://github.com/Relintai/entity_spell_system.git
synced 2025-04-19 21:33:15 +02:00
Cleanups, and more missing stuff.
This commit is contained in:
parent
698e418d16
commit
65227db52c
@ -703,6 +703,17 @@ void Entity::_from_dict(const Dictionary &dict) {
|
||||
} else {
|
||||
_s_bag->from_dict(bagd);
|
||||
}
|
||||
/*
|
||||
if (!_c_bag.is_valid()) {
|
||||
Ref<Bag> bag;
|
||||
bag.instance();
|
||||
|
||||
bag->from_dict(bagd);
|
||||
|
||||
setc_bag(bag);
|
||||
} else {
|
||||
_c_bag->from_dict(bagd);
|
||||
}*/
|
||||
}
|
||||
|
||||
if (DataManager::get_instance() != NULL) {
|
||||
@ -1310,31 +1321,37 @@ void Entity::con_equip_fail(ItemEnums::EquipSlots equip_slot, Ref<ItemInstance>
|
||||
emit_signal("con_equip_fail", this, equip_slot, item, old_item, bag_slot);
|
||||
}
|
||||
|
||||
void Entity::crequest_equip(int equip_slot, int bag_slot) {
|
||||
void Entity::crequest_equip(ItemEnums::EquipSlots equip_slot, int bag_slot) {
|
||||
sequip(equip_slot, bag_slot);
|
||||
}
|
||||
void Entity::sequip(int equip_slot, int bag_slot) {
|
||||
void Entity::sequip(ItemEnums::EquipSlots equip_slot, int bag_slot) {
|
||||
call("_sequip", equip_slot, bag_slot);
|
||||
}
|
||||
void Entity::_sequip(int equip_slot, int bag_slot) {
|
||||
}
|
||||
void Entity::_sequip(ItemEnums::EquipSlots equip_slot, int bag_slot) {
|
||||
|
||||
void Entity::sequip_succeeded(ItemEnums::EquipSlots equip_slot, Ref<ItemInstance> item, Ref<ItemInstance> old_item, int bag_slot) {
|
||||
son_equip_success(equip_slot, item, old_item, bag_slot);
|
||||
|
||||
SEND_RPC(rpc("cequip_succeeded", equip_slot, item, old_item, bag_slot), cequip_succeeded(equip_slot, item, old_item, bag_slot));
|
||||
}
|
||||
void Entity::sequip_failed(ItemEnums::EquipSlots equip_slot, Ref<ItemInstance> item, Ref<ItemInstance> old_item, int bag_slot) {
|
||||
son_equip_fail(equip_slot, item, old_item, bag_slot);
|
||||
void Entity::cequip_success(ItemEnums::EquipSlots equip_slot, int bag_slot) {
|
||||
ERR_FAIL_INDEX(equip_slot, ItemEnums::EQUIP_SLOT_EQUIP_SLOT_MAX);
|
||||
ERR_FAIL_COND(!_c_bag.is_valid());
|
||||
|
||||
SEND_RPC(rpc("cequip_failed", equip_slot, item, old_item, bag_slot), cequip_failed(equip_slot, item, old_item, bag_slot));
|
||||
}
|
||||
Ref<ItemInstance> bag_item = _c_bag->get_item(bag_slot);
|
||||
Ref<ItemInstance> equipped_item = getc_equip_slot(equip_slot);
|
||||
|
||||
void Entity::cequip_succeeded(ItemEnums::EquipSlots equip_slot, Ref<ItemInstance> item, Ref<ItemInstance> old_item, int bag_slot) {
|
||||
con_equip_success(equip_slot, item, old_item, bag_slot);
|
||||
//Not Yet
|
||||
//setc_equip_slot(equip_slot, bag_item);
|
||||
//_c_bag->set_item(bag_slot, old_item);
|
||||
|
||||
con_equip_success(equip_slot, equipped_item, bag_item, bag_slot);
|
||||
}
|
||||
void Entity::cequip_failed(ItemEnums::EquipSlots equip_slot, Ref<ItemInstance> item, Ref<ItemInstance> old_item, int bag_slot) {
|
||||
con_equip_fail(equip_slot, item, old_item, bag_slot);
|
||||
void Entity::cequip_fail(ItemEnums::EquipSlots equip_slot, int bag_slot) {
|
||||
ERR_FAIL_INDEX(equip_slot, ItemEnums::EQUIP_SLOT_EQUIP_SLOT_MAX);
|
||||
ERR_FAIL_COND(!_c_bag.is_valid());
|
||||
|
||||
Ref<ItemInstance> bag_item = _c_bag->get_item(bag_slot);
|
||||
Ref<ItemInstance> equipped_item = getc_equip_slot(equip_slot);
|
||||
|
||||
con_equip_success(equip_slot, equipped_item, bag_item, bag_slot);
|
||||
}
|
||||
|
||||
Ref<ItemInstance> Entity::gets_equip_slot(int index) {
|
||||
@ -1342,12 +1359,22 @@ Ref<ItemInstance> Entity::gets_equip_slot(int index) {
|
||||
|
||||
return _s_equipment[index];
|
||||
}
|
||||
void Entity::sets_equip_slot(int index, Ref<ItemInstance> item) {
|
||||
ERR_FAIL_INDEX(index, ItemEnums::EQUIP_SLOT_EQUIP_SLOT_MAX);
|
||||
|
||||
_s_equipment[index] = item;
|
||||
}
|
||||
|
||||
Ref<ItemInstance> Entity::getc_equip_slot(int index) {
|
||||
ERR_FAIL_INDEX_V(index, ItemEnums::EQUIP_SLOT_EQUIP_SLOT_MAX, Ref<ItemInstance>());
|
||||
|
||||
return _c_equipment[index];
|
||||
}
|
||||
void Entity::setc_equip_slot(int index, Ref<ItemInstance> item) {
|
||||
ERR_FAIL_INDEX(index, ItemEnums::EQUIP_SLOT_EQUIP_SLOT_MAX);
|
||||
|
||||
_c_equipment[index] = item;
|
||||
}
|
||||
|
||||
void Entity::sapply_item_stats(Ref<ItemInstance> item) {
|
||||
call("_sapply_item_stats", item);
|
||||
@ -4733,10 +4760,8 @@ void Entity::_bind_methods() {
|
||||
ClassDB::bind_method(D_METHOD("sequip", "equip_slot", "bag_slot"), &Entity::sequip);
|
||||
ClassDB::bind_method(D_METHOD("_sequip", "equip_slot", "bag_slot"), &Entity::_sequip);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("sequip_succeeded", "equip_slot", "item", "old_item", "bag_slot"), &Entity::sequip_succeeded);
|
||||
ClassDB::bind_method(D_METHOD("sequip_failed", "equip_slot", "item", "old_item", "bag_slot"), &Entity::sequip_failed);
|
||||
ClassDB::bind_method(D_METHOD("cequip_succeeded", "equip_slot", "item", "old_item", "bag_slot"), &Entity::cequip_succeeded);
|
||||
ClassDB::bind_method(D_METHOD("cequip_failed", "equip_slot", "item", "old_item", "bag_slot"), &Entity::cequip_failed);
|
||||
ClassDB::bind_method(D_METHOD("cequip_success", "equip_slot", "bag_slot"), &Entity::cequip_success);
|
||||
ClassDB::bind_method(D_METHOD("cequip_fail", "equip_slot", "bag_slot"), &Entity::cequip_fail);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("gets_equip_slot", "index"), &Entity::gets_equip_slot);
|
||||
ClassDB::bind_method(D_METHOD("getc_equip_slot", "index"), &Entity::getc_equip_slot);
|
||||
|
@ -248,18 +248,18 @@ public:
|
||||
void con_equip_success(ItemEnums::EquipSlots equip_slot, Ref<ItemInstance> item, Ref<ItemInstance> old_item, int bag_slot);
|
||||
void con_equip_fail(ItemEnums::EquipSlots equip_slot, Ref<ItemInstance> item, Ref<ItemInstance> old_item, int bag_slot);
|
||||
|
||||
void crequest_equip(int equip_slot, int bag_slot);
|
||||
void sequip(int equip_slot, int bag_slot);
|
||||
void _sequip(int equip_slot, int bag_slot);
|
||||
void crequest_equip(ItemEnums::EquipSlots equip_slot, int bag_slot);
|
||||
void sequip(ItemEnums::EquipSlots equip_slot, int bag_slot);
|
||||
void _sequip(ItemEnums::EquipSlots equip_slot, int bag_slot);
|
||||
|
||||
void sequip_succeeded(ItemEnums::EquipSlots equip_slot, Ref<ItemInstance> item, Ref<ItemInstance> old_item, int bag_slot);
|
||||
void sequip_failed(ItemEnums::EquipSlots equip_slot, Ref<ItemInstance> item, Ref<ItemInstance> old_item, int bag_slot);
|
||||
|
||||
void cequip_succeeded(ItemEnums::EquipSlots equip_slot, Ref<ItemInstance> item, Ref<ItemInstance> old_item, int bag_slot);
|
||||
void cequip_failed(ItemEnums::EquipSlots equip_slot, Ref<ItemInstance> item, Ref<ItemInstance> old_item, int bag_slot);
|
||||
void cequip_success(ItemEnums::EquipSlots equip_slot, int bag_slot);
|
||||
void cequip_fail(ItemEnums::EquipSlots equip_slot, int bag_slot);
|
||||
|
||||
Ref<ItemInstance> gets_equip_slot(int index);
|
||||
void sets_equip_slot(int index, Ref<ItemInstance> item);
|
||||
|
||||
Ref<ItemInstance> getc_equip_slot(int index);
|
||||
void setc_equip_slot(int index, Ref<ItemInstance> item);
|
||||
|
||||
void sapply_item_stats(Ref<ItemInstance> item);
|
||||
void sdeapply_item_stats(Ref<ItemInstance> item);
|
||||
|
@ -75,6 +75,16 @@ bool Bag::add_item(Ref<ItemInstance> item) {
|
||||
return true;
|
||||
}
|
||||
|
||||
void Bag::set_item(int index, Ref<ItemInstance> item) {
|
||||
if (has_method("_set_item")) {
|
||||
call("_set_item", index, item);
|
||||
}
|
||||
|
||||
ERR_FAIL_INDEX(index, _items.size());
|
||||
|
||||
_items.set(index, item);
|
||||
}
|
||||
|
||||
Ref<ItemInstance> Bag::get_item(const int index) {
|
||||
if (has_method("_get_item")) {
|
||||
return call("_get_item", index);
|
||||
@ -261,6 +271,7 @@ Bag::~Bag() {
|
||||
|
||||
void Bag::_bind_methods() {
|
||||
BIND_VMETHOD(MethodInfo(PropertyInfo(Variant::BOOL, "could_add"), "_add_item", PropertyInfo(Variant::OBJECT, "item", PROPERTY_HINT_RESOURCE_TYPE, "ItemInstance")));
|
||||
BIND_VMETHOD(MethodInfo("_set_item", PropertyInfo(Variant::INT, "index") , PropertyInfo(Variant::OBJECT, "item", PROPERTY_HINT_RESOURCE_TYPE, "ItemInstance")));
|
||||
BIND_VMETHOD(MethodInfo(PropertyInfo(Variant::OBJECT, "item", PROPERTY_HINT_RESOURCE_TYPE, "ItemInstance"), "_get_item", PropertyInfo(Variant::INT, "index")));
|
||||
BIND_VMETHOD(MethodInfo(PropertyInfo(Variant::OBJECT, "item", PROPERTY_HINT_RESOURCE_TYPE, "ItemInstance"), "_remove_item", PropertyInfo(Variant::INT, "index")));
|
||||
BIND_VMETHOD(MethodInfo("_swap_items", PropertyInfo(Variant::INT, "item1_index"), PropertyInfo(Variant::INT, "item2_index")));
|
||||
@ -273,6 +284,7 @@ void Bag::_bind_methods() {
|
||||
BIND_VMETHOD(MethodInfo(PropertyInfo(Variant::BOOL, "overburdened"), "_is_overburdened"));
|
||||
|
||||
ADD_SIGNAL(MethodInfo("item_added", PropertyInfo(Variant::OBJECT, "bag", PROPERTY_HINT_RESOURCE_TYPE, "Bag"), PropertyInfo(Variant::OBJECT, "item", PROPERTY_HINT_RESOURCE_TYPE, "ItemInstance"), PropertyInfo(Variant::INT, "slot_id")));
|
||||
ADD_SIGNAL(MethodInfo("item_set", PropertyInfo(Variant::OBJECT, "bag", PROPERTY_HINT_RESOURCE_TYPE, "Bag"), PropertyInfo(Variant::OBJECT, "item", PROPERTY_HINT_RESOURCE_TYPE, "ItemInstance"), PropertyInfo(Variant::INT, "slot_id")));
|
||||
ADD_SIGNAL(MethodInfo("item_removed", PropertyInfo(Variant::OBJECT, "bag", PROPERTY_HINT_RESOURCE_TYPE, "Bag"), PropertyInfo(Variant::OBJECT, "item", PROPERTY_HINT_RESOURCE_TYPE, "ItemInstance"), PropertyInfo(Variant::INT, "slot_id")));
|
||||
ADD_SIGNAL(MethodInfo("item_swapped", PropertyInfo(Variant::OBJECT, "bag", PROPERTY_HINT_RESOURCE_TYPE, "Bag"), PropertyInfo(Variant::INT, "slot_id_1"), PropertyInfo(Variant::INT, "slot_id_2")));
|
||||
ADD_SIGNAL(MethodInfo("item_count_changed", PropertyInfo(Variant::OBJECT, "bag", PROPERTY_HINT_RESOURCE_TYPE, "Bag"), PropertyInfo(Variant::OBJECT, "item", PROPERTY_HINT_RESOURCE_TYPE, "ItemInstance"), PropertyInfo(Variant::INT, "slot_id")));
|
||||
@ -285,6 +297,7 @@ void Bag::_bind_methods() {
|
||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "allowed_item_types", PROPERTY_HINT_FLAGS, ItemEnums::BINDING_STRING_ITEM_TYPE_FLAGS), "set_allowed_item_types", "get_allowed_item_types");
|
||||
|
||||
ClassDB::bind_method(D_METHOD("add_item", "item"), &Bag::add_item);
|
||||
ClassDB::bind_method(D_METHOD("set_item", "index", "item"), &Bag::set_item);
|
||||
ClassDB::bind_method(D_METHOD("get_item", "index"), &Bag::get_item);
|
||||
ClassDB::bind_method(D_METHOD("remove_item", "index"), &Bag::remove_item);
|
||||
ClassDB::bind_method(D_METHOD("swap_items", "item1_index", "item2_index"), &Bag::swap_items);
|
||||
|
@ -17,6 +17,7 @@ public:
|
||||
void set_allowed_item_types(const int value);
|
||||
|
||||
bool add_item(Ref<ItemInstance> item);
|
||||
void set_item(int index, Ref<ItemInstance> item);
|
||||
Ref<ItemInstance> get_item(const int index);
|
||||
Ref<ItemInstance> remove_item(const int index);
|
||||
void swap_items(const int item1_index, const int item2_index);
|
||||
|
Loading…
Reference in New Issue
Block a user