Cow_Life_Sim_RPG/ItemGeneration/AshGenerator.gd

73 lines
2.4 KiB
GDScript

extends RefCounted
class_name AshGenerator
static func generate_ash(item:Item):
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_ash_item(baseCheckedItem)
static func check_for_overrides(item):
var newItem = null
if item.get_name(false) == "Sugar":
newItem = load("res://Items/Foods/Snack/Caramel.gd").new()
if item.get_name(false) == "Ketchup":
newItem = load("res://Items/Foods/Condiments/BBQSauce.gd").new()
if item.get_name(false) == "Old Ketchup":
newItem = load("res://Items/Foods/Condiments/OldBBQSauce.gd").new()
if item.get_name(false) == "Corn":
newItem = load("res://Items/Foods/Snack/Popcorn.gd").new()
if item.get_name(false) == "Sand":
newItem = load("res://Items/Glass/Glass.gd").new()
if item.get_name(false) == "Worm on a String":
newItem = item
if item.get_name(false) == "Basket on a String":
newItem = item
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_ash_item(item):
var ashItem = Item.new()
ashItem.itemName = item.get_name(false) + " Ash"
ashItem.itemDescription = "The ashes of a " + item.get_name(false) + "."
ashItem.value = 1
ashItem.weight = 0.01
ashItem.hardness = 2
ashItem.edibility = item.edibility - 60
if ashItem.edibility < 0:
ashItem.edibility = 0
ashItem.basketPower = 1
ashItem.basketabilityDifficulty = 99
ashItem.flammability = 2
ashItem.itemTypes.append(Item.types.Ash)
ashItem.itemModifications = item.itemModifications.duplicate(true)
var itemSprite = item.get_sprite(false)
var averageColor = SpriteGeneration.get_average_color(itemSprite.get_image())
var defaultAshSprite = load("res://Items/Ash/Ash.png")
var ashImage = SpriteGeneration.color_multipy_image(defaultAshSprite.get_image(), averageColor)
var ashSprite = ImageTexture.new()
ashSprite = ImageTexture.create_from_image(ashImage)
ashItem.itemSprite = ashSprite
return ashItem