diff --git a/common/inventory/scripts/inventory.gd b/common/inventory/scripts/inventory.gd index b61b89f..892f42c 100644 --- a/common/inventory/scripts/inventory.gd +++ b/common/inventory/scripts/inventory.gd @@ -86,8 +86,7 @@ func pop_item(ind: int = current_item_ind) -> Item: emit_signal("inventory_changed", self) return item_removed -func swap_items(item_to_add: Item, ind_to_get: int = current_item_ind) -> Item: - var item_to_get := items[ind_to_get] - items[ind_to_get] = item_to_add - emit_signal("inventory_changed", self) - return item_to_get +func is_full(): + for i in items: + if i == null : return false + return true \ No newline at end of file diff --git a/entities/interactables/item_object/script/item_object.gd b/entities/interactables/item_object/script/item_object.gd index bedcc81..8a401f9 100644 --- a/entities/interactables/item_object/script/item_object.gd +++ b/entities/interactables/item_object/script/item_object.gd @@ -24,7 +24,7 @@ func _ready(): object_sprite.apply_texture_to_sprite(item.icon, ITEM_SPRITE_SIZE) object_sprite.generate_particles(item.get_particles()) -func pointer_text(): +func pointer_text() -> String: var name_suffix = "" if item is Seed: @@ -41,12 +41,9 @@ func inspector_info() -> Inspector.Info: return item.inspector_info() func interact(player : Player) -> bool: - var swapped_item = player.pick_item(item) + player.pick_item(item) - if swapped_item: - item = swapped_item - else : - pickup_animation(player) + pickup_animation(player) return true diff --git a/entities/player/scripts/player.gd b/entities/player/scripts/player.gd index a91adda..dc2d511 100644 --- a/entities/player/scripts/player.gd +++ b/entities/player/scripts/player.gd @@ -127,6 +127,9 @@ func try_move(move_to : Vector2): func pick_item(item : Item) -> Item: play_sfx("pick") + if inventory.is_full(): + drop_item() + var available_slot_ind = inventory.get_best_available_slot_ind() if available_slot_ind == inventory.current_item_ind && inventory.items[available_slot_ind] != null: var current_item : Item = inventory.get_item()