extends Window @onready var inventoryItemDisplayer = %Inventory var itemTransitionScene = preload("res://UI/Sugaring/ItemFadeTransition.tscn") var dryingAnimPositions = [] var dryingAnimPosIndex = 0 var playerInventory:Inventory func _ready(): dryingAnimPositions.append(Vector2(380, 325)) dryingAnimPositions.append(Vector2(515, 335)) dryingAnimPositions.append(Vector2(450, 345)) inventoryItemDisplayer.fiveButtons = true inventoryItemDisplayer.allButtons = true inventoryItemDisplayer.buttonPressed.connect(dry_item) inventoryItemDisplayer.fiveButtonPressed.connect(dry_item.bind(5)) inventoryItemDisplayer.allButtonPressed.connect(dry_item.bind(999999)) inventoryItemDisplayer.set_title("Wet Items") func opened(): get_tree().paused = true playerInventory = InventoryManager.get_inventory() inventoryItemDisplayer.inventory = filter_inventory(playerInventory) inventoryItemDisplayer.update_display() func dry_item(item, quantity:int = 1): var itemsInInv = InventoryManager.get_item_count(item) if itemsInInv < quantity: quantity = itemsInInv InventoryManager.remove_item_from_inventory(item, quantity) var dryItem = ItemDrying.sun_dry_item(item) InventoryManager.add_item_to_inventory(dryItem, quantity) spawn_item_transition(item, dryItem) inventoryItemDisplayer.inventory = filter_inventory(playerInventory) inventoryItemDisplayer.update_display() func spawn_item_transition(startItem, driedItem): var itemTransition = itemTransitionScene.instantiate() itemTransition.start_transition(startItem.get_sprite(), driedItem.get_sprite()) if Item.modifications.Concentrated in driedItem.itemModifications: itemTransition.transDuration = 0.2 itemTransition.finalMomentsDuration = 2 else: itemTransition.finalMomentsDuration = 1 add_child(itemTransition) itemTransition.scale = Vector2(2, 2) itemTransition.position = dryingAnimPositions[dryingAnimPosIndex] dryingAnimPosIndex += 1 if dryingAnimPosIndex >= dryingAnimPositions.size(): dryingAnimPosIndex = 0 func filter_inventory(inventory): var filteredInv:Inventory = inventory.duplicate() var i = filteredInv.items.size() - 1 while i >= 0: var currentItem = filteredInv.items[i] var keepItem = false if Item.modifications.Wet in currentItem.itemModifications: keepItem = true elif Item.types.Juice in currentItem.itemTypes: if not Item.modifications.Concentrated in currentItem.itemModifications: keepItem = true elif currentItem.get_name(false) == "Grape": keepItem = true if !keepItem: filteredInv.remove_item(currentItem, filteredInv.quantities[i]) i -= 1 return filteredInv func _on_leave_button_pressed(): get_tree().paused = false hide()