mirror of
https://github.com/Relintai/entity_spell_system.git
synced 2025-04-19 21:33:15 +02:00
Fixed sending item count changes to the client. Also added the stack_size_changed signal to ItemInstance.
This commit is contained in:
parent
2ba11eec77
commit
992d0672f9
@ -41,6 +41,8 @@ int ItemInstance::get_stack_size() {
|
||||
}
|
||||
void ItemInstance::set_stack_size(int value) {
|
||||
_stack_size = value;
|
||||
|
||||
emit_signal("stack_size_changed", Ref<ItemInstance>(this));
|
||||
}
|
||||
|
||||
Dictionary ItemInstance::to_dict() {
|
||||
@ -100,6 +102,7 @@ ItemInstance::~ItemInstance() {
|
||||
|
||||
|
||||
void ItemInstance::_bind_methods() {
|
||||
ADD_SIGNAL(MethodInfo("stack_size_changed", PropertyInfo(Variant::OBJECT, "item", PROPERTY_HINT_RESOURCE_TYPE, "ItemInstance")));
|
||||
|
||||
ClassDB::bind_method(D_METHOD("get_item_template"), &ItemInstance::get_item_template);
|
||||
ClassDB::bind_method(D_METHOD("set_item_template", "value"), &ItemInstance::set_item_template);
|
||||
|
@ -4455,11 +4455,7 @@ void Entity::ons_item_count_changed(Ref<Bag> bag, Ref<ItemInstance> item, int sl
|
||||
void Entity::cchange_item_count(int slot_id, int new_count) {
|
||||
ERR_FAIL_COND(!_c_bag.is_valid());
|
||||
|
||||
Ref<ItemInstance> ii = _c_bag->get_item(slot_id);
|
||||
|
||||
ERR_FAIL_COND(!ii.is_valid());
|
||||
|
||||
ii->set_stack_size(new_count);
|
||||
_c_bag->set_item_count(slot_id, new_count);
|
||||
}
|
||||
|
||||
void Entity::ons_overburdened(Ref<Bag> bag) {
|
||||
|
@ -157,6 +157,18 @@ void Bag::change_item_equip(int slot_id, Ref<ItemInstance> item) {
|
||||
emit_signal("change_item_equip", Ref<Bag>(this), slot_id, item);
|
||||
}
|
||||
|
||||
void Bag::set_item_count(int slot_id, int new_count) {
|
||||
ERR_FAIL_INDEX(slot_id, _items.size());
|
||||
|
||||
Ref<ItemInstance> ii = _items.get(slot_id);
|
||||
|
||||
ERR_FAIL_COND(!ii.is_valid());
|
||||
|
||||
ii->set_stack_size(new_count);
|
||||
|
||||
emit_signal("item_count_changed", Ref<Bag>(this), ii, slot_id);
|
||||
}
|
||||
|
||||
bool Bag::can_add_item(const Ref<ItemInstance> item) {
|
||||
if (has_method("_can_add_item")) {
|
||||
return call("_can_add_item", item);
|
||||
|
@ -22,6 +22,7 @@ public:
|
||||
Ref<ItemInstance> remove_item(const int index);
|
||||
void swap_items(const int item1_index, const int item2_index);
|
||||
void change_item_equip(int slot_id, Ref<ItemInstance> item);
|
||||
void set_item_count(int slot_id, int new_count);
|
||||
|
||||
bool can_add_item(Ref<ItemInstance> item);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user