extends RefCounted class_name BasketGenerator static func generate_basket(item:Item, justGetName:bool = false): var tentativeItemOverride = check_for_overrides(item) if tentativeItemOverride != null: return tentativeItemOverride var baseCheckedItem = ItemGenerationUtils.base_item_check(item) baseCheckedItem.itemModifications = item.itemModifications.duplicate(true) if Item.modifications.Knotted in baseCheckedItem.itemModifications: baseCheckedItem.itemModifications.erase(Item.modifications.Knotted) return generate_standard_basket_item(baseCheckedItem, justGetName) static func check_for_overrides(item): var newItem = null if item.get_name(false) == "Worm on a String": newItem = load("res://Items/Toys/WormOnAString/BasketOnAString.gd").new() if item.get_name(false) == "Basket on a String": newItem = load("res://Items/Toys/WormOnAString/WormOnAString.gd").new() if newItem != null: newItem.itemModifications = item.itemModifications.duplicate(true) if Item.modifications.Knotted in newItem.itemModifications: newItem.itemModifications.erase(Item.modifications.Knotted) return newItem static func generate_standard_basket_item(item, returnName:bool = false): if returnName: return item.get_name(false) + " Basket" var basketItem = Item.new() basketItem.itemName = item.get_name(false) + " Basket" basketItem.itemDescription = "A basket made from a " + item.get_name(false) + "." basketItem.value = item.value + 3 basketItem.weight = item.weight basketItem.hardness = item.hardness basketItem.edibility = item.edibility - 5 basketItem.basketPower = item.basketPower basketItem.basketabilityDifficulty = 99 basketItem.flammability = item.flammability basketItem.itemTypes.append(Item.types.Basket) basketItem.itemModifications = item.itemModifications.duplicate(true) var itemSprite = item.get_sprite(false) var averageColor = SpriteGeneration.get_average_color(itemSprite.get_image()) var defaultBasketSprite = load("res://Items/Basket/BaseItem/Basket.png") var basketImage = SpriteGeneration.color_multipy_image(defaultBasketSprite.get_image(), averageColor) var basketSprite = ImageTexture.new() basketSprite = ImageTexture.create_from_image(basketImage) basketItem.itemSprite = basketSprite return basketItem