Turn hydroponics get and set_trait into defines (#21404)

Hydroponics tray processing is a massive chunk of machinery processing
for no good reason, I have a sneaking suspicion that this is due to proc
overhead on get_trait, as process can call it upwards of 30 times per
tick per tray.

Realistically most of the things that are traits should instead be
variables, but that's a refactor for someone with more time.
This commit is contained in:
Wildkins
2025-09-28 12:09:49 +00:00
committed by GitHub
parent 63fb270cfe
commit 290032afc7
39 changed files with 1349 additions and 1343 deletions
+6 -6
View File
@@ -328,11 +328,11 @@
adapt_animal(A)
/obj/effect/overmap/visitable/sector/exoplanet/proc/adapt_seed(var/datum/seed/S)
S.set_trait(TRAIT_IDEAL_HEAT, atmosphere.temperature + rand(-5,5),800,70)
S.set_trait(TRAIT_HEAT_TOLERANCE, S.get_trait(TRAIT_HEAT_TOLERANCE) + rand(-5,5),800,70)
S.set_trait(TRAIT_LOWKPA_TOLERANCE, atmosphere.return_pressure() + rand(-5,-50),80,0)
S.set_trait(TRAIT_HIGHKPA_TOLERANCE, atmosphere.return_pressure() + rand(5,50),500,110)
S.set_trait(TRAIT_SPREAD,0)
SET_SEED_TRAIT_BOUNDED(S, TRAIT_IDEAL_HEAT, atmosphere.temperature + rand(-5,5), 800, 70, null)
SET_SEED_TRAIT_BOUNDED(S, TRAIT_HEAT_TOLERANCE, GET_SEED_TRAIT(S, TRAIT_HEAT_TOLERANCE) + rand(-5,5), 800, 70, null)
SET_SEED_TRAIT_BOUNDED(S, TRAIT_LOWKPA_TOLERANCE, atmosphere.return_pressure() + rand(-5,-50), 80, 0, null)
SET_SEED_TRAIT_BOUNDED(S, TRAIT_HIGHKPA_TOLERANCE, atmosphere.return_pressure() + rand(5,50), 500, 110, null)
SET_SEED_TRAIT(S, TRAIT_SPREAD, 0)
if(S.exude_gasses)
S.exude_gasses -= badgas
if(atmosphere)
@@ -340,7 +340,7 @@
S.consume_gasses = list(pick(atmosphere.gas)) // ensure that if the plant consumes a gas, the atmosphere will have it
for(var/g in atmosphere.gas)
if(gas_data.flags[g] & XGM_GAS_CONTAMINANT)
S.set_trait(TRAIT_TOXINS_TOLERANCE, rand(10,15))
SET_SEED_TRAIT(S, TRAIT_TOXINS_TOLERANCE, rand(10,15))
/obj/effect/overmap/visitable/sector/exoplanet/proc/adapt_animal(var/mob/living/simple_animal/A)
if(species[A.type])
@@ -21,12 +21,12 @@
else
S.randomize()
var/plant_icon = "alien[rand(1,7)]"
S.set_trait(TRAIT_PRODUCT_ICON,plant_icon)
S.set_trait(TRAIT_PLANT_ICON, plant_icon)
SET_SEED_TRAIT(S, TRAIT_PRODUCT_ICON, plant_icon)
SET_SEED_TRAIT(S, TRAIT_PLANT_ICON, plant_icon)
var/color = pick(plant_colors)
if(color == "RANDOM")
color = get_random_colour(0,75,190)
S.set_trait(TRAIT_PLANT_COLOUR,color)
SET_SEED_TRAIT(S, TRAIT_PLANT_COLOUR, color)
adapt_seed(S)
S.update_growth_stages()
small_flora_seeds += S
@@ -36,15 +36,15 @@
for(var/i = 1 to tree_diversity)
var/datum/seed/S = new()
S.randomize()
S.set_trait(TRAIT_PRODUCT_ICON,"alien[rand(1,5)]")
S.set_trait(TRAIT_PLANT_ICON,"tree")
S.set_trait(TRAIT_SPREAD,0)
S.set_trait(TRAIT_HARVEST_REPEAT,1)
S.set_trait(TRAIT_LARGE,1)
SET_SEED_TRAIT(S, TRAIT_PRODUCT_ICON, "alien[rand(1,5)]")
SET_SEED_TRAIT(S, TRAIT_PLANT_ICON, "tree")
SET_SEED_TRAIT(S, TRAIT_SPREAD, 0)
SET_SEED_TRAIT(S, TRAIT_HARVEST_REPEAT, 1)
SET_SEED_TRAIT(S, TRAIT_LARGE, 1)
var/color = pick(plant_colors)
if (color == "RANDOM")
color = get_random_colour(0,75,190)
S.set_trait(TRAIT_LEAVES_COLOUR,color)
SET_SEED_TRAIT(S, TRAIT_LEAVES_COLOUR, color)
S.chems[/singleton/reagent/woodpulp] = list(1)
adapt_seed(S)
S.update_growth_stages()