extends Node2D @export var basketInvName:String var basketHoldingInvName var basketItem:Item func _ready(): basketHoldingInvName = basketInvName + "Basket" var basketHoldingInv = InventoryManager.get_inventory(basketInvName + "Basket") if basketHoldingInv.items.size() > 0: basketItem = basketHoldingInv.items[0] update_basket_display() func show_basket_changing_window(): %BasketPlacingWindow.popup_centered() %BasketPlacingWindow.opened() func show_basket_storage_window(): %BasketStorageWindow.popup_centered() %BasketStorageWindow.opened() func get_current_basket(): return basketItem func change_current_basket(basket:Item): if basketItem != null: InventoryManager.add_item_to_inventory(basketItem) InventoryManager.remove_item_from_inventory(basketItem, 1, basketHoldingInvName) if basket != null: InventoryManager.remove_item_from_inventory(basket) set_current_basket(basket) func set_current_basket(basket:Item): if basket != null: InventoryManager.add_item_to_inventory(basket, 1, basketHoldingInvName) basketItem = basket AchievementManager.hang_up_achievement_checks(basketItem) func update_basket_display(): if basketItem == null: $AnimatedSprite2D.visible = true %BasketSprite.visible = false else: $AnimatedSprite2D.visible = false %BasketSprite.visible = true %BasketSprite.texture = basketItem.get_sprite() func get_current_basket_space(): if basketItem == null: return 0 return BasketWeaving.get_basket_space(basketItem) func get_used_space(basketOverride:Item = null): var basketInv:Inventory = InventoryManager.get_inventory(basketInvName) if SaveManager.get_save_value("ambiQuestComplete", false): return infinite_space_item_count(basketInv, basketOverride) else: return basketInv.get_item_count() func infinite_space_item_count(inventory:Inventory, basketOverride:Item = null): var count = 0 for i in range(inventory.items.size()): var currentItem = inventory.items[i] if !infinite_check(currentItem, basketOverride): count += inventory.quantities[i] return count func infinite_check(item:Item, basketOverride:Item = null): var basketToCheckAgainst = basketItem if basketOverride != null: basketToCheckAgainst = basketOverride if basketToCheckAgainst == null: return false var basketName = BasketGenerator.generate_basket(item, true) if basketName == basketToCheckAgainst.get_name(false): return true return false func get_basket_space_left(): return get_current_basket_space() - get_used_space() func get_current_basket_name(): if basketItem == null: return "No Basket Placed" return basketItem.get_name() func get_current_basket_sprite(): if basketItem == null: return null return basketItem.get_sprite()