SSair performance improvements (#28271)

This commit is contained in:
Charlie Nolan
2025-02-12 22:39:09 +00:00
committed by GitHub
parent 2e2a778a71
commit 194e851b8f
32 changed files with 149 additions and 69 deletions
@@ -10,6 +10,7 @@
gender = PLURAL
layer = OBJ_LAYER + 0.9
animate_movement = NO_STEPS
cares_about_temperature = TRUE
/// How many times this one bit of foam can spread around itself
var/spread_amount = 3
/// How long it takes this to initially start spreading after being dispersed
@@ -121,7 +122,7 @@
/obj/effect/particle_effect/foam/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume, global_overlay = TRUE) //Don't heat the reagents inside
return
/obj/effect/particle_effect/foam/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) // overriden to prevent weird behaviors with heating reagents inside
/obj/effect/particle_effect/foam/temperature_expose(exposed_temperature, exposed_volume) // overriden to prevent weird behaviors with heating reagents inside
if(prob(max(0, exposed_temperature - 475)))
flick("[icon_state]-disolve", src)
QDEL_IN(src, 0.5 SECONDS)
@@ -155,7 +156,7 @@
M.metal = metal_kind
M.update_state()
/obj/effect/particle_effect/foam/metal/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
/obj/effect/particle_effect/foam/metal/temperature_expose(exposed_temperature, exposed_volume)
return
/obj/effect/particle_effect/foam/metal/on_atom_entered(datum/source, atom/movable/entered)
+2 -1
View File
@@ -11,6 +11,7 @@
base_icon_state = "glowshroom" //replaced in New
layer = ABOVE_NORMAL_TURF_LAYER
max_integrity = 30
cares_about_temperature = TRUE
var/floor = 0
var/obj/item/seeds/myseed = /obj/item/seeds/glowshroom
@@ -107,7 +108,7 @@
if(damage_type == BURN && damage_amount)
playsound(src.loc, 'sound/items/welder.ogg', 100, TRUE)
/obj/structure/glowshroom/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
/obj/structure/glowshroom/temperature_expose(exposed_temperature, exposed_volume)
..()
if(exposed_temperature > 300)
take_damage(5, BURN, 0, 0)
+2 -1
View File
@@ -6,6 +6,7 @@
anchored = TRUE
density = FALSE
max_integrity = 15
cares_about_temperature = TRUE
var/mob/living/carbon/human/master_commander = null
/obj/structure/spider/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0)
@@ -26,7 +27,7 @@
master_commander = null
return ..()
/obj/structure/spider/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
/obj/structure/spider/temperature_expose(exposed_temperature, exposed_volume)
..()
if(exposed_temperature > 300)
take_damage(5, BURN, 0, 0)
+2 -1
View File
@@ -8,6 +8,7 @@
w_class = WEIGHT_CLASS_TINY
throw_speed = 1
throw_range = 7
cares_about_temperature = TRUE
var/state
var/datum/gas_mixture/air_contents = null
@@ -52,7 +53,7 @@
burst()
return ..()
/obj/item/latexballon/temperature_expose(datum/gas_mixture/air, temperature, volume)
/obj/item/latexballon/temperature_expose(temperature, volume)
..()
if(temperature > T0C+100)
burst()
@@ -125,6 +125,7 @@ GLOBAL_LIST_INIT(xeno_recipes, list (
icon_state = "sheet-wetleather"
item_state = "sheet-leather"
origin_tech = ""
cares_about_temperature = TRUE
var/wetness = 30 //Reduced when exposed to high temperautres
var/drying_threshold_temperature = 500 //Kelvin to start drying
@@ -327,7 +328,7 @@ GLOBAL_LIST_INIT(sinew_recipes, list (
qdel(src)
//Step three - drying
/obj/item/stack/sheet/wetleather/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
/obj/item/stack/sheet/wetleather/temperature_expose(exposed_temperature, exposed_volume)
..()
if(exposed_temperature >= drying_threshold_temperature)
wetness--
+3 -2
View File
@@ -14,6 +14,7 @@
/obj/structure/alien
icon = 'icons/mob/alien.dmi'
max_integrity = 100
cares_about_temperature = TRUE
/obj/structure/alien/run_obj_armor(damage_amount, damage_type, damage_flag = 0, attack_dir)
if(damage_flag == MELEE)
@@ -355,7 +356,7 @@
new /obj/structure/alien/weeds(T, linked_node)
check_surroundings()
/obj/structure/alien/weeds/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
/obj/structure/alien/weeds/temperature_expose(exposed_temperature, exposed_volume)
..()
if(exposed_temperature > 300)
take_damage(5, BURN, 0, 0)
@@ -545,7 +546,7 @@
if(status != BURST)
burst(kill = TRUE)
/obj/structure/alien/egg/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
/obj/structure/alien/egg/temperature_expose(exposed_temperature, exposed_volume)
..()
if(exposed_temperature > 500)
take_damage(5, BURN, 0, 0)
@@ -5,6 +5,7 @@
anchored = FALSE
density = TRUE
max_integrity = 200
cares_about_temperature = TRUE
var/overlays_file = 'icons/obj/doors/airlocks/station/overlays.dmi'
var/state = AIRLOCK_ASSEMBLY_NEEDS_WIRES
/// String value. Used in user chat messages
@@ -309,7 +310,7 @@
new /obj/item/shard(T)
qdel(src)
/obj/structure/door_assembly/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
/obj/structure/door_assembly/temperature_expose(exposed_temperature, exposed_volume)
..()
if(exposed_temperature > (T0C + heat_resistance))
take_damage(round(exposed_volume / 100), BURN, 0, 0)
@@ -287,6 +287,7 @@
smoothing_flags = SMOOTH_BITMASK
smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_PLASMA_WALLS)
canSmoothWith = list(SMOOTH_GROUP_PLASMA_WALLS)
cares_about_temperature = TRUE
/obj/structure/falsewall/plasma/attackby__legacy__attackchain(obj/item/W, mob/user, params)
if(W.get_heat() > 300)
+2 -1
View File
@@ -7,6 +7,7 @@
layer = BELOW_OBJ_LAYER
flags_2 = RAD_PROTECT_CONTENTS_2 | RAD_NO_CONTAMINATE_2
rad_insulation = RAD_VERY_LIGHT_INSULATION
cares_about_temperature = TRUE
var/state = GIRDER_NORMAL
var/girderpasschance = 20 // percentage chance that a projectile passes through the girder.
max_integrity = 200
@@ -40,7 +41,7 @@
for(var/i=0;i < metalAmount;i++)
new metal_type(get_turf(src))
/obj/structure/girder/temperature_expose(datum/gas_mixture/air, exposed_temperature)
/obj/structure/girder/temperature_expose(exposed_temperature)
..()
var/temp_check = exposed_temperature
if(temp_check >= GIRDER_MELTING_TEMP)
+2 -1
View File
@@ -13,6 +13,7 @@
armor = list(MELEE = 50, BULLET = 70, LASER = 70, ENERGY = 100, BOMB = 10, RAD = 100, FIRE = 0, ACID = 0)
max_integrity = 50
integrity_failure = 20
cares_about_temperature = TRUE
var/rods_type = /obj/item/stack/rods
var/rods_amount = 2
var/rods_broken = 1
@@ -228,7 +229,7 @@
return FALSE
return FALSE
/obj/structure/grille/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
/obj/structure/grille/temperature_expose(exposed_temperature, exposed_volume)
..()
if(!broken)
if(exposed_temperature > T0C + 1500)
@@ -180,6 +180,7 @@
name = "plasma door"
icon_state = "plasma"
sheetType = /obj/item/stack/sheet/mineral/plasma
cares_about_temperature = TRUE
/obj/structure/mineral_door/transparent/plasma/attackby__legacy__attackchain(obj/item/W, mob/user)
if(W.get_heat())
@@ -190,7 +191,7 @@
else
return ..()
/obj/structure/mineral_door/transparent/plasma/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
/obj/structure/mineral_door/transparent/plasma/temperature_expose(exposed_temperature, exposed_volume)
..()
if(exposed_temperature > 300)
TemperatureAct(exposed_temperature)
+2 -1
View File
@@ -95,6 +95,7 @@
max_integrity = 200
material_drop_type = /obj/item/stack/sheet/mineral/plasma
desc = "This statue is suitably made from plasma."
cares_about_temperature = TRUE
/obj/structure/statue/plasma/scientist
name = "statue of a scientist"
@@ -104,7 +105,7 @@
name = "statue of a xenomorph"
icon_state = "xeno"
/obj/structure/statue/plasma/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
/obj/structure/statue/plasma/temperature_expose(exposed_temperature, exposed_volume)
..()
if(exposed_temperature > 300)
PlasmaBurn(exposed_temperature)
+2 -1
View File
@@ -15,6 +15,7 @@
resistance_flags = ACID_PROOF
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, RAD = 0, FIRE = 80, ACID = 100)
rad_insulation = RAD_VERY_LIGHT_INSULATION
cares_about_temperature = TRUE
var/ini_dir = null
var/state = WINDOW_OUT_OF_FRAME
var/reinf = FALSE
@@ -474,7 +475,7 @@
..()
update_icon(UPDATE_OVERLAYS)
/obj/structure/window/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
/obj/structure/window/temperature_expose(exposed_temperature, exposed_volume)
..()
if(exposed_temperature > (T0C + heat_resistance))
take_damage(round(exposed_volume / 100), BURN, 0, 0)