Files
SyncIt21 468b351b86 Axes grind & juice vars into procs (#94592)
## About The Pull Request
Inspired by #94233. `grind_results`(list) & `juice_typepath`(typepath)
are only used when grinding & juicing after which the atom is deleted.
This means if that object is not processed these vars occupy memory &
don't do anything.

Now these values are only generated on demand by calling their
respective procs. Considering how these vars are on the obj level the
memory savings are quite significant

## Changelog
🆑
refactor: grinding & juicing have been refactored to occupy low memory.
Report bugs on github
code: improved grinding & juicing code
/🆑
2025-12-25 20:40:35 +01:00

160 lines
5.1 KiB
Plaintext

// Citrus - base type
/obj/item/food/grown/citrus
name = "citrus"
desc = "It's so sour, your face will twist."
icon_state = "lime"
abstract_type = /obj/item/food/grown/citrus
foodtypes = FRUIT
wine_power = 30
seed = /obj/item/seeds/lime
// Lime
/obj/item/seeds/lime
name = "lime seed pack"
desc = "These are very sour seeds."
icon_state = "seed-lime"
species = "lime"
plantname = "Lime Tree"
product = /obj/item/food/grown/citrus/lime
lifespan = 55
endurance = 50
yield = 4
potency = 15
growing_icon = 'icons/obj/service/hydroponics/growing_fruits.dmi'
genes = list(/datum/plant_gene/trait/repeated_harvest)
mutatelist = list(/obj/item/seeds/orange)
reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.05)
/obj/item/food/grown/citrus/lime
seed = /obj/item/seeds/lime
name = "lime"
desc = "It's so sour, your face will twist."
icon_state = "lime"
/obj/item/food/grown/citrus/lime/juice_typepath()
return /datum/reagent/consumable/limejuice
// Orange
/obj/item/seeds/orange
name = "orange seed pack"
desc = "Sour seeds."
icon_state = "seed-orange"
species = "orange"
plantname = "Orange Tree"
product = /obj/item/food/grown/citrus/orange
lifespan = 60
endurance = 50
yield = 5
potency = 20
growing_icon = 'icons/obj/service/hydroponics/growing_fruits.dmi'
icon_grow = "lime-grow"
icon_dead = "lime-dead"
genes = list(/datum/plant_gene/trait/repeated_harvest)
mutatelist = list(/obj/item/seeds/lime, /obj/item/seeds/orange_3d)
reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.05)
/obj/item/food/grown/citrus/orange
seed = /obj/item/seeds/orange
name = "orange"
desc = "It's a tangy fruit."
icon_state = "orange"
foodtypes = ORANGES | FRUIT
distill_reagent = /datum/reagent/consumable/ethanol/triple_sec
/obj/item/food/grown/citrus/orange/juice_typepath()
return /datum/reagent/consumable/orangejuice
// Lemon
/obj/item/seeds/lemon
name = "lemon seed pack"
desc = "These are sour seeds."
icon_state = "seed-lemon"
species = "lemon"
plantname = "Lemon Tree"
product = /obj/item/food/grown/citrus/lemon
lifespan = 55
endurance = 45
yield = 4
growing_icon = 'icons/obj/service/hydroponics/growing_fruits.dmi'
icon_grow = "lime-grow"
icon_dead = "lime-dead"
genes = list(/datum/plant_gene/trait/repeated_harvest)
mutatelist = list(/obj/item/seeds/firelemon)
reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.05)
/obj/item/food/grown/citrus/lemon
seed = /obj/item/seeds/lemon
name = "lemon"
desc = "When life gives you lemons, make lemonade."
icon_state = "lemon"
/obj/item/food/grown/citrus/lemon/juice_typepath()
return /datum/reagent/consumable/lemonjuice
// Combustible lemon
/obj/item/seeds/firelemon //combustible lemon is too long so firelemon
name = "combustible lemon seed pack"
desc = "When life gives you lemons, don't make lemonade. Make life take the lemons back! Get mad! I don't want your damn lemons!"
icon_state = "seed-firelemon"
species = "firelemon"
plantname = "Combustible Lemon Tree"
product = /obj/item/food/grown/firelemon
growing_icon = 'icons/obj/service/hydroponics/growing_fruits.dmi'
icon_grow = "lime-grow"
icon_dead = "lime-dead"
genes = list(/datum/plant_gene/trait/repeated_harvest, /datum/plant_gene/trait/bomb_plant/potency_based)
lifespan = 55
endurance = 45
yield = 4
reagents_add = list(/datum/reagent/consumable/nutriment = 0.05, /datum/reagent/fuel = 0.05)
/obj/item/food/grown/firelemon
seed = /obj/item/seeds/firelemon
name = "Combustible Lemon"
desc = "Made for burning houses down."
icon_state = "firelemon"
alt_icon = "firelemon_active"
foodtypes = FRUIT
wine_power = 70
//3D Orange
/obj/item/seeds/orange_3d
name = "extradimensional orange seed pack"
desc = "Polygonal seeds."
icon_state = "seed-orange"
species = "orange"
plantname = "Extradimensional Orange Tree"
product = /obj/item/food/grown/citrus/orange_3d
lifespan = 60
endurance = 50
yield = 5
potency = 20
instability = 64
growing_icon = 'icons/obj/service/hydroponics/growing_fruits.dmi'
icon_grow = "lime-grow"
icon_dead = "lime-dead"
genes = list(/datum/plant_gene/trait/repeated_harvest)
reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.05, /datum/reagent/medicine/haloperidol = 0.15) //insert joke about the effects of haloperidol and our glorious headcoder here
/obj/item/food/grown/citrus/orange_3d
seed = /obj/item/seeds/orange_3d
name = "extradimensional orange"
desc = "You can hardly wrap your head around this thing."
icon_state = "orang"
foodtypes = ORANGES
alt_icon = "orange"
bite_consumption_mod = 2
distill_reagent = /datum/reagent/toxin/mindbreaker
tastes = list("polygons" = 1, "bluespace" = 1, "the true nature of reality" = 1)
/obj/item/food/grown/citrus/orange_3d/juice_typepath()
return /datum/reagent/consumable/orangejuice
/obj/item/food/grown/citrus/orange_3d/pickup(mob/user)
. = ..()
icon_state = alt_icon
/obj/item/food/grown/citrus/orange_3d/dropped(mob/user)
. = ..()
icon_state = initial(icon_state)