extends Window @onready var inventoryItemDisplayer = %Inventory var itemTransitionScene = preload("res://UI/Sugaring/ItemFadeTransition.tscn") var playerInventory:Inventory func _ready(): inventoryItemDisplayer.fiveButtons = true inventoryItemDisplayer.allButtons = true inventoryItemDisplayer.buttonPressed.connect(clean_item) inventoryItemDisplayer.fiveButtonPressed.connect(clean_item.bind(5)) inventoryItemDisplayer.allButtonPressed.connect(clean_item.bind(999999)) inventoryItemDisplayer.set_title("Modified Items") func opened(): get_tree().paused = true playerInventory = InventoryManager.get_inventory() inventoryItemDisplayer.inventory = filter_inventory(playerInventory) inventoryItemDisplayer.update_display() func clean_item(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 cleanedItem:Item = item.duplicate() cleanedItem.itemModifications = [] InventoryManager.add_item_to_inventory(cleanedItem, quantity) spawn_item_transition(item, cleanedItem) inventoryItemDisplayer.inventory = filter_inventory(playerInventory) inventoryItemDisplayer.update_display() func spawn_item_transition(startItem, cleanedItem): var itemTransition = itemTransitionScene.instantiate() itemTransition.start_transition(startItem.get_sprite(), cleanedItem.get_sprite()) if Item.modifications.Concentrated in cleanedItem.itemModifications: itemTransition.transDuration = 0.2 itemTransition.finalMomentsDuration = 2 else: itemTransition.finalMomentsDuration = 1 var antsLeaving = preload("res://UI/Cleaning/AntsLeaving.tscn").instantiate() antsLeaving.emitting = true add_child(antsLeaving) add_child(itemTransition) itemTransition.scale = Vector2(2, 2) itemTransition.position = Vector2(440, 380) 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 currentItem.itemModifications.size() > 0: 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()