63 lines
2.2 KiB
GDScript
63 lines
2.2 KiB
GDScript
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
|