From 10e39a564e4da9f39b06f8d6e28e7449561daae0 Mon Sep 17 00:00:00 2001 From: west3436 <66280799+west3436@users.noreply.github.com> Date: Mon, 20 May 2024 19:54:46 -0400 Subject: [PATCH] Ash visuals removal (#36554) --- __DEFINES/_macros.dm | 2 +- code/ZAS/Fire.dm | 81 +-------------------- code/game/atoms.dm | 4 - code/game/objects/items/devices/scanners.dm | 2 - code/game/objects/items/trader.dm | 6 -- code/game/objects/objs.dm | 29 -------- code/game/turfs/turf.dm | 2 - 7 files changed, 2 insertions(+), 124 deletions(-) diff --git a/__DEFINES/_macros.dm b/__DEFINES/_macros.dm index 2d9ae93e89a..654c819289e 100644 --- a/__DEFINES/_macros.dm +++ b/__DEFINES/_macros.dm @@ -222,7 +222,7 @@ #define isrealobject(A) (istype(A, /obj/item) || istype(A, /obj/structure) || istype(A, /obj/machinery) || istype(A, /obj/mecha)) -#define iscleanaway(A) (istype(A,/obj/effect/decal/cleanable) || (istype(A,/obj/effect/overlay) && !istype(A,/obj/effect/overlay/puddle) && !istype(A, /obj/effect/overlay/hologram)) || istype(A,/obj/effect/rune_legacy) || (A.ErasableRune()) || istype(A,/obj/effect/ash)) +#define iscleanaway(A) (istype(A,/obj/effect/decal/cleanable) || (istype(A,/obj/effect/overlay) && !istype(A,/obj/effect/overlay/puddle) && !istype(A, /obj/effect/overlay/hologram)) || istype(A,/obj/effect/rune_legacy) || (A.ErasableRune())) #define ismatrix(A) (istype(A, /matrix)) diff --git a/code/ZAS/Fire.dm b/code/ZAS/Fire.dm index 3cdc543bbcb..9dc6c722189 100644 --- a/code/ZAS/Fire.dm +++ b/code/ZAS/Fire.dm @@ -94,9 +94,6 @@ var/ZAS_fuel_energy_release_rate = zas_settings.Get(/datum/ZAS_Setting/fire_fuel var/fire_sprite = "fire" var/fire_overlay = null - var/image/charred_overlay = null - var/last_char = 0 - var/atom/movable/firelightdummy/firelightdummy /atom/movable/New() @@ -163,76 +160,6 @@ var/ZAS_fuel_energy_release_rate = zas_settings.Get(/datum/ZAS_Setting/fire_fuel if(reagents?.total_volume) return TRUE -//charred overlay procs taken from Deity's food temperature overlays system (see food.dm) -var/global/list/image/charred_overlays = list() - -/atom/proc/set_charred_overlay() - return - -/atom/proc/update_charred_overlay(var/char_alpha) - return - -/atom/proc/process_charred_overlay() - return - -/obj/set_charred_overlay() - if(update_charred_overlay()) - return - - var/icon/I = new /icon(icon, icon_state) - I.Blend(rgb(255,255,255),ICON_ADD) - I.Blend(new /icon('icons/effects/effects.dmi', "char"),ICON_MULTIPLY) - - var/image/img = image(I) - img.name = "charred_overlay" - charred_overlays["[type][icon_state]"] = img - update_charred_overlay() - -/obj/update_charred_overlay(var/char_alpha = 96) - if(charred_overlays["[type][icon_state]"]) - if (charred_overlay) - overlays -= charred_overlay - charred_overlay = mutable_appearance(charred_overlays["[type][icon_state]"]) - charred_overlay.appearance_flags = RESET_COLOR|RESET_ALPHA|KEEP_TOGETHER - charred_overlay.alpha = char_alpha - overlays += charred_overlay - return 1 - -/obj/process_charred_overlay() - if(thermal_mass) - var/c_alpha = 96 + clamp((64*(1-(thermal_mass/initial_thermal_mass))),0,64) - if(!charred_overlays["[type][icon_state]"]) - set_charred_overlay() - else - update_charred_overlay(c_alpha) - last_char = world.time - else - if(prob(10)) //10% chance each tick of item getting charred - set_charred_overlay() - -/obj/effect/process_charred_overlay() - return - -/turf/process_charred_overlay() - if(locate(/obj/effect/ash) in src) - var/obj/effect/ash/A = locate(/obj/effect/ash) in src - if(flammable) - A.alpha = clamp((80*(1-(thermal_mass/initial_thermal_mass))),0,80) //turf's char overlays aren't as harsh as objects' - else - A.alpha = 40 - else - new /obj/effect/ash(src) - -/obj/effect/ash - name = "ash" - icon_state = "char" - alpha = 0 - anchored = 1 - mouse_opacity = 0 - -/obj/effect/ash/clean_act(var/cleanliness) - if(cleanliness >= CLEANLINESS_WATER) - qdel(src) /** * Burns solid objects and produces heat. * @@ -282,9 +209,6 @@ var/global/list/image/charred_overlays = list() useThermalMass(delta_m) genSmoke(oxy_ratio,temperature,T) - if(world.time - last_char >= 10 SECONDS) - process_charred_overlay() - //Change in internal energy = energy produced by combustion (assuming perfect combustion). heat_out = material.heating_value * delta_m @@ -419,15 +343,12 @@ var/global/list/image/charred_overlays = list() if(flammable && !on_fire) ignite() return 1 - else - process_charred_overlay() - return 0 /atom/proc/checkburn() if(on_fire) return if(!flammable) - return + CRASH("[src] was added to burnableatoms despite not being flammable!") //if an object is not on fire, is flammable, and is in an environment with temperature above its autoignition temp & sufficient oxygen, ignite it if(thermal_mass <= 0) ashify() diff --git a/code/game/atoms.dm b/code/game/atoms.dm index c791ae02899..a35cd3fd1df 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -467,8 +467,6 @@ its easier to just keep the beam vertical. if(on_fire) user.simple_message("OH SHIT! IT'S ON FIRE!",\ "It's on fire, man.") - if(charred_overlay) - to_chat(user, "It's covered in ash.") if(min_harm_label && harm_labeled) if(harm_labeled < min_harm_label) to_chat(user, harm_label_examine[1]) @@ -551,8 +549,6 @@ its easier to just keep the beam vertical. /atom/proc/clean_act(var/cleanliness)//1 = contact with water (splashed with water, removes glue from objs), 2 = space cleaner or efficient cleaning (showers, sink, soap), 3 = bleach if (cleanliness >= CLEANLINESS_SPACECLEANER) clean_blood() - if(charred_overlay) - overlays -= charred_overlay if (cleanliness >= CLEANLINESS_BLEACH) color = "" if (cleanliness >= CLEANLINESS_WATER)//I mean, not sure why we'd ever add a rank below water but, futur-proofing and all that jazz diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index 198ad7e2a28..27817fc8982 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -53,8 +53,6 @@ BREATHALYZER if(istype(A,/obj/)) var/obj/O = A O.t_scanner_expose() - else if(istype(A,/obj/effect/ash)) - continue else if(istype(A,/mob/living/carbon)) var/mob/living/carbon/C = A if(C.alpha < OPAQUE || (C.invisibility > 0 && C.invisibility < INVISIBILITY_OBSERVER) || length(C.body_alphas)) diff --git a/code/game/objects/items/trader.dm b/code/game/objects/items/trader.dm index e7d20c963dc..82183648913 100644 --- a/code/game/objects/items/trader.dm +++ b/code/game/objects/items/trader.dm @@ -200,12 +200,6 @@ else if(P.wet == TURF_WET_WATER) reagents.add_reagent(WATER,1) qdel(P) - for(var/obj/effect/ash/A in T) - if(reagents.is_full()) - visible_message("\The [src] sputters, wet tank full!") - break - reagents.add_reagent(CARBON,1) - qdel(A) T.clean_blood() for(var/obj/item/trash/R in T) if(trash.len >= max_trash) diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index 719d958ccf4..0bcb6f50090 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -59,9 +59,6 @@ var/global/list/reagents_to_log = list(FUEL, PLASMA, PACID, SACID, AMUTATIONTOXI var/is_cooktop //If true, the object can be used in conjunction with a cooking vessel, eg. a frying pan, to cook food. var/obj/item/weapon/reagent_containers/pan/cookvessel //The vessel being used to cook food in. If generalized out to other types of vessels, make sure to also generalize the frying pan's cook_start(), etc. as well. - //Is the object covered in ash? - var/ash_covered = FALSE - /obj/New() ..() if(breakable_flags) @@ -292,7 +289,6 @@ var/global/list/reagents_to_log = list(FUEL, PLASMA, PACID, SACID, AMUTATIONTOXI ..() if (cleanliness >= CLEANLINESS_WATER) unglue() - ash_covered = FALSE /obj/proc/cultify() qdel(src) @@ -425,28 +421,6 @@ var/global/list/reagents_to_log = list(FUEL, PLASMA, PACID, SACID, AMUTATIONTOXI /obj/ignite() if(!istype(loc, /turf)) //Prevent things from burning if worn, held, or inside something else. Storage containers will eject their contents when ignited, allowing for burning of the contents. return - . = ..() - ash_covered = TRUE - remove_particles(PS_SMOKE) - -/obj/item/checkburn() - if(!flammable) - burnableatoms -= src - CRASH("[src] was added to burnableatoms despite not being flammable!") - if(on_fire) - return - var/datum/gas_mixture/G = return_air() - if(!G) - return - if(G.temperature >= (autoignition_temperature * 0.75)) - if(!smoking) - add_particles(PS_SMOKE) - smoking = TRUE - var/rate = clamp(lerp(G.temperature,autoignition_temperature * 0.75,autoignition_temperature,0.1,1),0.1,1) - adjust_particles(PVAR_SPAWNING,rate,PS_SMOKE) - else - remove_particles(PS_SMOKE) - smoking = FALSE ..() /obj/singularity_act() @@ -586,9 +560,6 @@ a { onclose(user, "mtcomputer") /obj/update_icon() - if(ash_covered) - overlays -= charred_overlay - process_charred_overlay() return /mob/proc/unset_machine() diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 5f38229c1ba..16b64e42bd5 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -79,8 +79,6 @@ ..() if(bullet_marks) to_chat(user, "It has [bullet_marks > 1 ? "some holes" : "a hole"] in it.") - if(locate(/obj/effect/ash) in src) - to_chat(user, "It is covered in ashes.") /turf/proc/process() set waitfor = FALSE