0741b1977f
* Don't initialize the atom_colours list on atoms until it's actually needed * Moved bloody_hands var to mob/living/carbon/human instead * Added COMSIG_COMPONENT_CLEAN_RADIATION signal to reduce moms spaghetti The shower and suit storage unit now calls this signal instead of either doing it manually or doing it via the washed proc * Cleaned up carbon washing, renamed washed to wash * The wash proc now doesn't take the washer as first arg because that wasn't used anywhere * The wash strength is no longer optional * Carbons now overrides the wash proc instead of using the signal * Properly check for obscuredness before washing any equipped items * Properly wash all items and bloody hands etc * Added clean_lips proc for humans for cleaning any lipstick * Cleaned up washing. Washy stuff now calls wash instead of calling the clean signal directly * Renamed is_cleanable to ismopable, gives this category a more fitting purpose. Many things beyond floor decals are cleanable. It is now also determined using the atom layer instead to make it more generic. * Properly utilize the is_cleanable define * Added wash override for turfs where they also wash any mopables on the same tile * Space cleaner and cleaning element etc now simply washes the mob instead of doing its own manual cleaning on ~some~ equipped items * Non-component washables now simply override wash instead of registering for the clean signal * Fixed some left over clean signal registers not returning true * Added clean_strength var to space cleaner * Moved human wash proc next to the other washing procs * Also wash glasses and mask if not obscured when washing face * Fixed attempting to "scoop up" cleanable decals using a rag * Fixed plasmaman spacehelm icon not updating when washed Also removed a duplicated worn_overlays proc * Fixed head icon not updating when washing lipstick * Moved radioactive clean signal register to where it should be * Added atom radiate VV verb for debugging * Redesigned the CLEAN constants into a more sensible flags setup This makes it more dynamic, cleaning apparatuses can clean more specific than just a cleaning strength. * CLEAN_TYPE_* flags indicate a specific cleanable, such as blood, fingerprints or disease * CLEAN_* consts consist of a combination of cleaning types to make cleaning apparatuses have a consistent behaviour on what they clean * Fixed broken rad removal logic in showers * Apply suggestions from code review Co-authored-by: Rohesie <rohesie@gmail.com> * Removed unneccesary bool from sink code * Fixed wrongly named variable in turf wash * Renamed bloody_hands to blood_in_hands Co-authored-by: Rohesie <rohesie@gmail.com>
49 lines
1.4 KiB
Plaintext
49 lines
1.4 KiB
Plaintext
/obj/effect/decal
|
|
name = "decal"
|
|
plane = FLOOR_PLANE
|
|
anchored = TRUE
|
|
resistance_flags = FIRE_PROOF | UNACIDABLE | ACID_PROOF
|
|
var/turf_loc_check = TRUE
|
|
|
|
/obj/effect/decal/Initialize()
|
|
. = ..()
|
|
if(turf_loc_check && (!isturf(loc) || NeverShouldHaveComeHere(loc)))
|
|
return INITIALIZE_HINT_QDEL
|
|
|
|
/obj/effect/decal/blob_act(obj/structure/blob/B)
|
|
if(B && B.loc == loc)
|
|
qdel(src)
|
|
|
|
/obj/effect/decal/proc/NeverShouldHaveComeHere(turf/T)
|
|
return isclosedturf(T) || isgroundlessturf(T)
|
|
|
|
/obj/effect/decal/ex_act(severity, target)
|
|
qdel(src)
|
|
|
|
/obj/effect/decal/fire_act(exposed_temperature, exposed_volume)
|
|
if(!(resistance_flags & FIRE_PROOF)) //non fire proof decal or being burned by lava
|
|
qdel(src)
|
|
|
|
/obj/effect/decal/HandleTurfChange(turf/T)
|
|
..()
|
|
if(T == loc && NeverShouldHaveComeHere(T))
|
|
qdel(src)
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
/obj/effect/turf_decal
|
|
icon = 'icons/turf/decals.dmi'
|
|
icon_state = "warningline"
|
|
layer = TURF_DECAL_LAYER
|
|
|
|
/obj/effect/turf_decal/Initialize()
|
|
..()
|
|
return INITIALIZE_HINT_QDEL
|
|
|
|
/obj/effect/turf_decal/ComponentInitialize()
|
|
. = ..()
|
|
var/turf/T = loc
|
|
if(!istype(T)) //you know this will happen somehow
|
|
CRASH("Turf decal initialized in an object/nullspace")
|
|
T.AddComponent(/datum/component/decal, icon, icon_state, dir, FALSE, color, null, null, alpha)
|