From 1f459ae447c4a103e44b641d127875dd7787172e Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Mon, 6 Jan 2025 14:46:57 -0500 Subject: [PATCH 01/13] scope creep time --- code/game/atoms/appearance.dm | 2 +- code/game/click/telekinesis.dm | 1 + code/game/gamemodes/technomancer/spells/illusion.dm | 1 + code/game/machinery/Sleeper.dm | 3 ++- code/game/machinery/adv_med.dm | 2 ++ code/game/machinery/ai_slipper.dm | 3 ++- code/game/machinery/atm_ret_field.dm | 6 +++--- code/game/machinery/atmo_control.dm | 3 ++- code/game/machinery/biogenerator.dm | 1 + code/game/machinery/bomb_tester.dm | 1 + code/game/machinery/camera/camera.dm | 3 ++- code/game/machinery/camera/camera_assembly.dm | 3 ++- code/game/machinery/cell_charger.dm | 10 ++-------- code/game/machinery/computer/computer.dm | 7 ++++--- code/game/machinery/computer/timeclock_vr.dm | 3 ++- code/game/machinery/cryo.dm | 1 + code/game/machinery/cryopod.dm | 1 + code/game/machinery/door_control.dm | 6 ++++-- code/game/machinery/doorbell_vr.dm | 4 +++- code/game/machinery/doors/airlock/airlock_control.dm | 7 ++++--- code/game/machinery/doors/door.dm | 3 ++- code/game/machinery/doors/firedoor.dm | 6 +++--- .../embedded_controller/airlock_controllers.dm | 4 ++-- .../embedded_controller/embedded_controller_base.dm | 3 ++- code/game/machinery/exonet_node.dm | 3 ++- code/game/machinery/floodlight.dm | 4 ++-- code/game/machinery/floor_light.dm | 1 + code/game/machinery/gear_painter.dm | 3 ++- code/game/machinery/holosign.dm | 3 ++- code/game/machinery/jukebox.dm | 1 + code/game/machinery/newscaster.dm | 6 +++--- code/game/machinery/pda_multicaster.dm | 3 ++- code/game/machinery/pointdefense.dm | 3 ++- code/game/machinery/recharger.dm | 3 ++- code/game/machinery/requests_console.dm | 3 ++- code/game/machinery/spaceheater.dm | 1 + code/game/machinery/suit_storage/suit_storage_unit.dm | 3 ++- 37 files changed, 74 insertions(+), 47 deletions(-) diff --git a/code/game/atoms/appearance.dm b/code/game/atoms/appearance.dm index 4078f0f1a768..86988110b08b 100644 --- a/code/game/atoms/appearance.dm +++ b/code/game/atoms/appearance.dm @@ -40,7 +40,7 @@ /// Updates the icon of the atom /atom/proc/update_icon(updates=ALL) SIGNAL_HANDLER - // SHOULD_CALL_PARENT(TRUE) + SHOULD_CALL_PARENT(TRUE) . = NONE updates &= ~SEND_SIGNAL(src, COMSIG_ATOM_UPDATE_ICON, updates) diff --git a/code/game/click/telekinesis.dm b/code/game/click/telekinesis.dm index 15aad96ce438..b9ec3b51eefd 100644 --- a/code/game/click/telekinesis.dm +++ b/code/game/click/telekinesis.dm @@ -153,5 +153,6 @@ var/const/tk_maxrange = 15 /obj/item/tk_grab/update_icon() cut_overlays() + . = ..() if(focus && focus.icon && focus.icon_state) add_overlay(image(focus.icon,focus.icon_state)) diff --git a/code/game/gamemodes/technomancer/spells/illusion.dm b/code/game/gamemodes/technomancer/spells/illusion.dm index 080262c9115d..38bd9c7837f5 100644 --- a/code/game/gamemodes/technomancer/spells/illusion.dm +++ b/code/game/gamemodes/technomancer/spells/illusion.dm @@ -65,6 +65,7 @@ // Makes a tiny overlay of the thing the player has copied, so they can easily tell what they currently have. /obj/item/spell/illusion/update_icon() cut_overlays() + . = ..() if(copied) var/image/temp_image = image(copied) var/matrix/M = matrix() diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm index 14d54e5a7a68..1fb7a028bb9a 100644 --- a/code/game/machinery/Sleeper.dm +++ b/code/game/machinery/Sleeper.dm @@ -275,8 +275,9 @@ else toggle_pump() -/obj/machinery/sleeper/update_icon() +/obj/machinery/sleeper/update_icon_state() icon_state = "sleeper_[occupant ? TRUE : FALSE]" + return ..() /obj/machinery/sleeper/attackby(var/obj/item/I, var/mob/user) if(istype(I, /obj/item/grab)) diff --git a/code/game/machinery/adv_med.dm b/code/game/machinery/adv_med.dm index ae3898fc44ea..580aa6c68a21 100644 --- a/code/game/machinery/adv_med.dm +++ b/code/game/machinery/adv_med.dm @@ -630,6 +630,7 @@ return incoming /obj/machinery/bodyscanner/update_icon() + . = ..() if(machine_stat & (NOPOWER|BROKEN)) icon_state = "scanner_off" set_light(0) @@ -657,6 +658,7 @@ console.update_icon(h_ratio) /obj/machinery/body_scanconsole/update_icon(var/h_ratio) + . = ..() if(machine_stat & (NOPOWER|BROKEN)) icon_state = "scanner_terminal_off" set_light(0) diff --git a/code/game/machinery/ai_slipper.dm b/code/game/machinery/ai_slipper.dm index d7b7a582f8dc..901d165d3971 100644 --- a/code/game/machinery/ai_slipper.dm +++ b/code/game/machinery/ai_slipper.dm @@ -22,11 +22,12 @@ ..() update_icon() -/obj/machinery/ai_slipper/update_icon() +/obj/machinery/ai_slipper/update_icon_state() if(machine_stat & (NOPOWER|BROKEN)) icon_state = "motion0" else icon_state = disabled ? "motion0" : "motion3" + return ..() /obj/machinery/ai_slipper/proc/setState(var/enabled, var/uses) disabled = disabled diff --git a/code/game/machinery/atm_ret_field.dm b/code/game/machinery/atm_ret_field.dm index 27790055b186..2d21a9dfbe2a 100644 --- a/code/game/machinery/atm_ret_field.dm +++ b/code/game/machinery/atm_ret_field.dm @@ -83,7 +83,7 @@ . = ..() generate_field() -/obj/machinery/atmospheric_field_generator/update_icon() +/obj/machinery/atmospheric_field_generator/update_icon_state() if(machine_stat & BROKEN) icon_state = "arfg_broken" else if(hatch_open && wires_intact) @@ -94,6 +94,7 @@ icon_state = "arfg_on" else icon_state = "arfg_off" + return ..() /obj/machinery/atmospheric_field_generator/power_change() var/oldstat @@ -192,6 +193,7 @@ /obj/structure/atmospheric_retention_field/update_icon() cut_overlays() + . = ..() var/list/dirs = list() for(var/obj/structure/atmospheric_retention_field/F in orange(src,1)) dirs += get_dir(src, F) @@ -203,8 +205,6 @@ var/image/I = image(icon, "[basestate][connections[i]]", dir = 1<<(i-1)) add_overlay(I) - return - /obj/structure/atmospheric_retention_field/Initialize(mapload) . = ..() update_nearby_tiles() //Force ZAS update diff --git a/code/game/machinery/atmo_control.dm b/code/game/machinery/atmo_control.dm index 5e548e8bb2ea..c054f4e03b50 100644 --- a/code/game/machinery/atmo_control.dm +++ b/code/game/machinery/atmo_control.dm @@ -20,8 +20,9 @@ var/datum/radio_frequency/radio_connection -/obj/machinery/air_sensor/update_icon() +/obj/machinery/air_sensor/update_icon_state() icon_state = "gsensor[on]" + return ..() /obj/machinery/air_sensor/process(delta_time) if(on) diff --git a/code/game/machinery/biogenerator.dm b/code/game/machinery/biogenerator.dm index 6f17edab6d3c..82999429c1fd 100644 --- a/code/game/machinery/biogenerator.dm +++ b/code/game/machinery/biogenerator.dm @@ -249,6 +249,7 @@ /obj/machinery/biogenerator/update_icon() cut_overlays() + . = ..() if(beaker) add_overlay("[base_icon_state]-standby") if(processing) diff --git a/code/game/machinery/bomb_tester.dm b/code/game/machinery/bomb_tester.dm index 935abaed349e..d84cf342e8f7 100644 --- a/code/game/machinery/bomb_tester.dm +++ b/code/game/machinery/bomb_tester.dm @@ -62,6 +62,7 @@ /obj/machinery/bomb_tester/update_icon() cut_overlays() + . = ..() var/list/overlays_to_add = list() if(tank1) overlays_to_add += image(icon, "[icon_name]-tank1") diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm index 673b3de996f2..956868ca2fb0 100644 --- a/code/game/machinery/camera/camera.dm +++ b/code/game/machinery/camera/camera.dm @@ -257,13 +257,14 @@ CREATE_WALL_MOUNTING_TYPES(/obj/machinery/camera) if(isXRay()) P.SetSight(SEE_TURFS | SEE_MOBS | SEE_OBJS) -/obj/machinery/camera/update_icon() +/obj/machinery/camera/update_icon_state() if (!status || (machine_stat & BROKEN)) icon_state = "[initial(icon_state)]1" else if (machine_stat & EMPED) icon_state = "[initial(icon_state)]emp" else icon_state = initial(icon_state) + return ..() /obj/machinery/camera/proc/triggerCameraAlarm(duration = 0) alarm_on = 1 diff --git a/code/game/machinery/camera/camera_assembly.dm b/code/game/machinery/camera/camera_assembly.dm index 2da823206971..4f7f6c71b52b 100644 --- a/code/game/machinery/camera/camera_assembly.dm +++ b/code/game/machinery/camera/camera_assembly.dm @@ -139,11 +139,12 @@ ..() -/obj/item/camera_assembly/update_icon() +/obj/item/camera_assembly/update_icon_state() if(anchored) icon_state = "camera1" else icon_state = "cameracase" + return ..() /obj/item/camera_assembly/attack_hand(mob/user, datum/event_args/actor/clickchain/e_args) if(!anchored) diff --git a/code/game/machinery/cell_charger.dm b/code/game/machinery/cell_charger.dm index f014be3d7768..feef4b5c3f14 100644 --- a/code/game/machinery/cell_charger.dm +++ b/code/game/machinery/cell_charger.dm @@ -17,21 +17,15 @@ circuit = /obj/item/circuitboard/cell_charger /obj/machinery/cell_charger/update_icon() + cut_overlays() icon_state = "ccharger[charging ? 1 : 0]" + . = ..() if(charging && !(machine_stat & (BROKEN|NOPOWER))) - var/newlevel = round(charging.percent() * 4.0 / 99) - //to_chat(world, "nl: [newlevel]") - if(chargelevel != newlevel) - - cut_overlays() add_overlay("ccharger-o[newlevel]") - chargelevel = newlevel - else - cut_overlays() /obj/machinery/cell_charger/examine(mob/user, dist) . = ..() diff --git a/code/game/machinery/computer/computer.dm b/code/game/machinery/computer/computer.dm index a99174ac3030..deb4d3f407d8 100644 --- a/code/game/machinery/computer/computer.dm +++ b/code/game/machinery/computer/computer.dm @@ -39,8 +39,9 @@ /obj/machinery/computer/update_icon() cut_overlays() + . = ..() - . = list() + var/list/to_add_overlays = list() // Connecty //TODO: Use TG Smoothing. if(initial(icon_state) == "computer") @@ -61,13 +62,13 @@ if(machine_stat & NOPOWER) playsound(src, 'sound/machines/terminal_off.ogg', 50, 1) return add_overlay("[icon_keyboard]_off") - . += icon_keyboard + to_add_overlays += icon_keyboard // This whole block lets screens ignore lighting and be visible even in the darkest room var/overlay_state = icon_screen if(machine_stat & BROKEN) overlay_state = "[icon_state]_broken" - . += overlay_state + to_add_overlays += overlay_state //. += emissive_appearance(icon, overlay_state) playsound(src, 'sound/machines/terminal_on.ogg', 50, 1) diff --git a/code/game/machinery/computer/timeclock_vr.dm b/code/game/machinery/computer/timeclock_vr.dm index 55f5bf30f726..b4b1ba61e866 100644 --- a/code/game/machinery/computer/timeclock_vr.dm +++ b/code/game/machinery/computer/timeclock_vr.dm @@ -34,13 +34,14 @@ card = null . = ..() -/obj/machinery/computer/timeclock/update_icon() +/obj/machinery/computer/timeclock/update_icon_state() if(inoperable()) icon_state = "[initial(icon_state)]_off" else if(card) icon_state = "[initial(icon_state)]_card" else icon_state = "[initial(icon_state)]" + return ..() /obj/machinery/computer/timeclock/power_change() var/old_stat = machine_stat diff --git a/code/game/machinery/cryo.dm b/code/game/machinery/cryo.dm index 54b0538f3537..34318abdebc9 100644 --- a/code/game/machinery/cryo.dm +++ b/code/game/machinery/cryo.dm @@ -214,6 +214,7 @@ put_mob(target) /obj/machinery/atmospherics/component/unary/cryo_cell/update_icon() + . = ..() cut_overlay(fluid) fluid.color = null fluid.alpha = max(255 - air_contents.temperature, 50) diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm index 4b803e871166..b543c2eaaf2c 100644 --- a/code/game/machinery/cryopod.dm +++ b/code/game/machinery/cryopod.dm @@ -737,6 +737,7 @@ /obj/machinery/cryopod/robot/door/gateway/update_icon() cut_overlays() + . = ..() if(occupant) var/image/I = image(icon, src, "[base_icon_state]_active_overlay") I.plane = ABOVE_LIGHTING_PLANE diff --git a/code/game/machinery/door_control.dm b/code/game/machinery/door_control.dm index 7280a965dcc8..5b67dc5b601c 100644 --- a/code/game/machinery/door_control.dm +++ b/code/game/machinery/door_control.dm @@ -60,11 +60,12 @@ ..() update_icon() -/obj/machinery/button/remote/update_icon() +/obj/machinery/button/remote/update_icon_state() if(machine_stat & NOPOWER) icon_state = "doorctrl-p" else icon_state = "doorctrl0" + return ..() /* Airlock remote control @@ -200,8 +201,9 @@ return -/obj/machinery/button/remote/driver/update_icon() +/obj/machinery/button/remote/driver/update_icon_state() if(!active || (machine_stat & NOPOWER)) icon_state = "launcherbtt" else icon_state = "launcheract" + return ..() diff --git a/code/game/machinery/doorbell_vr.dm b/code/game/machinery/doorbell_vr.dm index c2bd4e3c45ed..958655e768ab 100644 --- a/code/game/machinery/doorbell_vr.dm +++ b/code/game/machinery/doorbell_vr.dm @@ -34,6 +34,7 @@ /obj/machinery/doorbell_chime/update_icon() cut_overlays() + . = ..() if(panel_open) add_overlay("dbchime-open") if(inoperable()) @@ -105,11 +106,12 @@ ..() update_icon() -/obj/machinery/button/doorbell/update_icon() +/obj/machinery/button/doorbell/update_icon_state() if(machine_stat & (NOPOWER|BROKEN)) icon_state = "doorbell-off" else icon_state = "doorbell-standby" + return ..() /obj/machinery/button/doorbell/attack_hand(mob/user, datum/event_args/actor/clickchain/e_args) user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN) diff --git a/code/game/machinery/doors/airlock/airlock_control.dm b/code/game/machinery/doors/airlock/airlock_control.dm index 9fffbae73405..367614942f3c 100644 --- a/code/game/machinery/doors/airlock/airlock_control.dm +++ b/code/game/machinery/doors/airlock/airlock_control.dm @@ -168,7 +168,7 @@ var/previous_phoron var/previous_temperature -/obj/machinery/airlock_sensor/update_icon() +/obj/machinery/airlock_sensor/update_icon_state() if(on) if(alert) icon_state = "airlock_sensor_alert" @@ -176,6 +176,7 @@ icon_state = "airlock_sensor_standby" else icon_state = "airlock_sensor_off" + return ..() /obj/machinery/airlock_sensor/attack_hand(mob/user, datum/event_args/actor/clickchain/e_args) var/datum/signal/signal = new @@ -267,12 +268,12 @@ var/on = 1 - -/obj/machinery/access_button/update_icon() +/obj/machinery/access_button/update_icon_state() if(on) icon_state = "access_button_standby" else icon_state = "access_button_off" + return ..() /obj/machinery/access_button/attackby(obj/item/I as obj, mob/user as mob) //Swiping ID on the access button diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index 21071bb5c220..8d3b7b45d54e 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -290,11 +290,12 @@ open() ..() -/obj/machinery/door/update_icon() +/obj/machinery/door/update_icon_state() if(density) icon_state = "door1" else icon_state = "door0" + return ..() /obj/machinery/door/proc/do_animate(animation) switch(animation) diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm index 423e176d4d09..38fe78736cd2 100644 --- a/code/game/machinery/doors/firedoor.dm +++ b/code/game/machinery/doors/firedoor.dm @@ -475,9 +475,11 @@ GLOBAL_LIST_INIT(firelock_align_types, typecacheof(list( /obj/machinery/door/firedoor/update_icon() - var/image/lights_overlay cut_overlays() + . = ..() + set_light(0) + var/image/lights_overlay var/do_set_light = FALSE if(density) @@ -505,8 +507,6 @@ GLOBAL_LIST_INIT(firelock_align_types, typecacheof(list( if(do_set_light) set_light(2, 0.25, COLOR_SUN) - return - /obj/machinery/door/firedoor/border_only /* icon = 'icons/obj/doors/edge_Doorfire.dmi' diff --git a/code/game/machinery/embedded_controller/airlock_controllers.dm b/code/game/machinery/embedded_controller/airlock_controllers.dm index a02ebf8320f8..9d7085022ce3 100644 --- a/code/game/machinery/embedded_controller/airlock_controllers.dm +++ b/code/game/machinery/embedded_controller/airlock_controllers.dm @@ -73,8 +73,7 @@ valid_actions = list("cycle_ext", "cycle_int", "force_ext", "force_int") program = /datum/computer/file/embedded_program/airlock/access_controll - -/obj/machinery/embedded_controller/radio/airlock/access_controller/update_icon() +/obj/machinery/embedded_controller/radio/airlock/access_controller/update_icon_state() if(on && program) if(program.memory["processing"]) icon_state = "access_control_process" @@ -82,6 +81,7 @@ icon_state = "access_control_standby" else icon_state = "access_control_off" + return ..() /obj/machinery/embedded_controller/radio/airlock/access_controller/ui_data(mob/user, datum/tgui/ui) . = list( diff --git a/code/game/machinery/embedded_controller/embedded_controller_base.dm b/code/game/machinery/embedded_controller/embedded_controller_base.dm index 137e78cdbbbf..b0111938e2f6 100644 --- a/code/game/machinery/embedded_controller/embedded_controller_base.dm +++ b/code/game/machinery/embedded_controller/embedded_controller_base.dm @@ -86,7 +86,7 @@ radio_controller.remove_object(src,frequency) ..() -/obj/machinery/embedded_controller/radio/update_icon() +/obj/machinery/embedded_controller/radio/update_icon_state() if(on && program) if(program.memory["processing"]) icon_state = "airlock_control_process" @@ -94,6 +94,7 @@ icon_state = "airlock_control_standby" else icon_state = "airlock_control_off" + return ..() /obj/machinery/embedded_controller/radio/post_signal(datum/signal/signal, var/radio_filter = null) signal.transmission_method = TRANSMISSION_RADIO diff --git a/code/game/machinery/exonet_node.dm b/code/game/machinery/exonet_node.dm index ac1e50634956..7ad9a9ae07a5 100644 --- a/code/game/machinery/exonet_node.dm +++ b/code/game/machinery/exonet_node.dm @@ -40,7 +40,7 @@ GLOBAL_LIST_EMPTY(exonet_nodes) // Proc: update_icon() // Parameters: None // Description: Self explanatory. -/obj/machinery/exonet_node/update_icon() +/obj/machinery/exonet_node/update_icon_state() if(on) if(!allow_external_PDAs && !allow_external_communicators && !allow_external_newscasters) icon_state = "[initial(icon_state)]_idle" @@ -48,6 +48,7 @@ GLOBAL_LIST_EMPTY(exonet_nodes) icon_state = initial(icon_state) else icon_state = "[initial(icon_state)]_off" + return ..() // Proc: update_power() // Parameters: None diff --git a/code/game/machinery/floodlight.dm b/code/game/machinery/floodlight.dm index 8548bc99021d..f5021db0c227 100644 --- a/code/game/machinery/floodlight.dm +++ b/code/game/machinery/floodlight.dm @@ -15,9 +15,9 @@ . = ..() cell = new(src) -/obj/machinery/floodlight/update_icon() - cut_overlays() +/obj/machinery/floodlight/update_icon_state() icon_state = "flood[open ? "o" : ""][open && cell ? "b" : ""]0[on]" + return ..() /obj/machinery/floodlight/process(delta_time) if(!on) diff --git a/code/game/machinery/floor_light.dm b/code/game/machinery/floor_light.dm index 6975c0a4f182..a67cadc08d5c 100644 --- a/code/game/machinery/floor_light.dm +++ b/code/game/machinery/floor_light.dm @@ -122,6 +122,7 @@ var/list/floor_light_cache = list() /obj/machinery/floor_light/update_icon() cut_overlays() + = ..() if(use_power && !broken()) if(isnull(damaged)) var/cache_key = "floorlight-[default_light_colour]" diff --git a/code/game/machinery/gear_painter.dm b/code/game/machinery/gear_painter.dm index 8b23bdfd0507..f63dd55740aa 100644 --- a/code/game/machinery/gear_painter.dm +++ b/code/game/machinery/gear_painter.dm @@ -47,7 +47,7 @@ 0, 0, 0, ) -/obj/machinery/gear_painter/update_icon() +/obj/machinery/gear_painter/update_icon_state() if(panel_open) icon_state = "colormate_open" else if(inoperable()) @@ -56,6 +56,7 @@ icon_state = "colormate_active" else icon_state = "colormate" + return ..() /obj/machinery/gear_painter/Destroy() if(inserted) //please i beg you do not drop nulls diff --git a/code/game/machinery/holosign.dm b/code/game/machinery/holosign.dm index 7b28e9b6766d..2c447ee36534 100644 --- a/code/game/machinery/holosign.dm +++ b/code/game/machinery/holosign.dm @@ -21,11 +21,12 @@ update_use_power(lit ? USE_POWER_ACTIVE : USE_POWER_IDLE) update_icon() -/obj/machinery/holosign/update_icon() +/obj/machinery/holosign/update_icon_state() if(!lit) icon_state = off_icon else icon_state = on_icon + return ..() /obj/machinery/holosign/power_change() if(machine_stat & NOPOWER) diff --git a/code/game/machinery/jukebox.dm b/code/game/machinery/jukebox.dm index 0d687a25a999..3b4ecc114a77 100644 --- a/code/game/machinery/jukebox.dm +++ b/code/game/machinery/jukebox.dm @@ -144,6 +144,7 @@ /obj/machinery/media/jukebox/update_icon() cut_overlays() + . = ..() if(machine_stat & (NOPOWER|BROKEN) || !anchored) if(machine_stat & BROKEN) icon_state = "[state_base]-broken" diff --git a/code/game/machinery/newscaster.dm b/code/game/machinery/newscaster.dm index 44386e2dcd30..d8c7dfee3206 100644 --- a/code/game/machinery/newscaster.dm +++ b/code/game/machinery/newscaster.dm @@ -196,14 +196,15 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co return ..() /obj/machinery/newscaster/update_icon() + cut_overlays() + . = ..() + if(!ispowered || isbroken) icon_state = "newscaster_off" if(isbroken) //If the thing is smashed, add crack overlay on top of the unpowered sprite. set_overlays("crack3") return - cut_overlays() //reset overlays - if(news_network.wanted_issue) //wanted icon state, there can be no overlays on it as it's a priority message icon_state = "newscaster_wanted" return @@ -215,7 +216,6 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co add_overlay("crack[hitstaken]") icon_state = "newscaster_normal" - return /obj/machinery/newscaster/power_change() if(isbroken) //Broken shit can't be powered. diff --git a/code/game/machinery/pda_multicaster.dm b/code/game/machinery/pda_multicaster.dm index 7273710bbf41..16dcb4ad4f11 100644 --- a/code/game/machinery/pda_multicaster.dm +++ b/code/game/machinery/pda_multicaster.dm @@ -29,11 +29,12 @@ qdel(AM) return ..() -/obj/machinery/pda_multicaster/update_icon() +/obj/machinery/pda_multicaster/update_icon_state() if(on) icon_state = initial(icon_state) else icon_state = "[initial(icon_state)]-p" + return ..() /obj/machinery/pda_multicaster/attackby(obj/item/I, mob/user) if(I.is_screwdriver()) diff --git a/code/game/machinery/pointdefense.dm b/code/game/machinery/pointdefense.dm index 11371572ea8a..744cb132ba28 100644 --- a/code/game/machinery/pointdefense.dm +++ b/code/game/machinery/pointdefense.dm @@ -153,11 +153,12 @@ GLOBAL_LIST_BOILERPLATE(pointdefense_turrets, /obj/machinery/power/pointdefense) if(!id_tag) . += "[desc_panel_image("multitool", user)]to set ident tag and connect to a mainframe." -/obj/machinery/power/pointdefense/update_icon() +/obj/machinery/power/pointdefense/update_icon_state() if(!active || !id_tag || inoperable()) icon_state = "[initial(icon_state)]_off" else icon_state = initial(icon_state) + return ..() /obj/machinery/power/pointdefense/default_unfasten_wrench(var/mob/user, var/obj/item/W, var/time) if((. = ..())) diff --git a/code/game/machinery/recharger.dm b/code/game/machinery/recharger.dm index 5bddf8fc4db8..726a50222889 100644 --- a/code/game/machinery/recharger.dm +++ b/code/game/machinery/recharger.dm @@ -209,11 +209,12 @@ ..(severity) -/obj/machinery/recharger/update_icon() //we have an update_icon() in addition to the stuff in process to make it feel a tiny bit snappier. +/obj/machinery/recharger/update_icon_state() if(charging) icon_state = icon_state_charging else icon_state = icon_state_idle + return ..() /obj/machinery/recharger/RefreshParts() var/E = 0 diff --git a/code/game/machinery/requests_console.dm b/code/game/machinery/requests_console.dm index 3f7b01c32662..e6fed7097d64 100644 --- a/code/game/machinery/requests_console.dm +++ b/code/game/machinery/requests_console.dm @@ -78,13 +78,14 @@ var/list/obj/machinery/requests_console/allConsoles = list() ..() update_icon() -/obj/machinery/requests_console/update_icon() +/obj/machinery/requests_console/update_icon_state() if(machine_stat & NOPOWER) if(icon_state != "req_comp_off") icon_state = "req_comp_off" else if(icon_state == "req_comp_off") icon_state = "req_comp[newmessagepriority]" + return ..() /obj/machinery/requests_console/Initialize(mapload, newdir) . = ..() diff --git a/code/game/machinery/spaceheater.dm b/code/game/machinery/spaceheater.dm index 4f2fd5f44d85..5173ad5a9405 100644 --- a/code/game/machinery/spaceheater.dm +++ b/code/game/machinery/spaceheater.dm @@ -20,6 +20,7 @@ /obj/machinery/space_heater/update_icon() cut_overlays() + . = ..() icon_state = "sheater[on]" if(panel_open) add_overlay("sheater-open") diff --git a/code/game/machinery/suit_storage/suit_storage_unit.dm b/code/game/machinery/suit_storage/suit_storage_unit.dm index cb80c6ff01f4..572fb755b9a9 100644 --- a/code/game/machinery/suit_storage/suit_storage_unit.dm +++ b/code/game/machinery/suit_storage/suit_storage_unit.dm @@ -42,7 +42,7 @@ if(boots_stored_TYPE) boots_stored = new boots_stored_TYPE(src) -/obj/machinery/suit_storage_unit/update_icon() +/obj/machinery/suit_storage_unit/update_icon_state() var/hashelmet = 0 var/hassuit = 0 var/hashuman = 0 @@ -53,6 +53,7 @@ if(occupant) hashuman = 1 icon_state = "suitstorage[hashelmet][hassuit][hashuman][isopen][islocked][isUV][ispowered][isbroken][issuperUV]" + return ..() /obj/machinery/suit_storage_unit/power_change() ..() From 646a184497bb83f39bae9f06eb2c820cdd5050ff Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Mon, 6 Jan 2025 14:53:24 -0500 Subject: [PATCH 02/13] fix --- .../objects/items/stacks/marker_beacons.dm | 22 +++++-------------- code/game/objects/items/stacks/rods.dm | 3 ++- code/game/objects/items/stacks/sandbag.dm | 6 +++-- code/game/objects/items/stacks/stack.dm | 1 + code/game/objects/items/stacks/tickets.dm | 3 ++- .../items/storage/misc_legacy/fancy.dm | 18 +++++++++------ .../objects/items/storage/misc_legacy/misc.dm | 16 ++++++++------ code/game/objects/items/storage/wallets.dm | 1 + code/game/objects/items/tools/weldingtool.dm | 1 + code/game/objects/items/toys.dm | 10 ++++----- .../objects/items/weapons/barrier_tape.dm | 5 +++-- code/game/objects/items/weapons/candle.dm | 3 ++- 12 files changed, 45 insertions(+), 44 deletions(-) diff --git a/code/game/objects/items/stacks/marker_beacons.dm b/code/game/objects/items/stacks/marker_beacons.dm index 7c8297d4bd16..388380d3a893 100644 --- a/code/game/objects/items/stacks/marker_beacons.dm +++ b/code/game/objects/items/stacks/marker_beacons.dm @@ -47,8 +47,9 @@ var/list/marker_beacon_colors = list( . += "Use in-hand to place a [singular_name]." . += "Alt-click to select a color. Current color is [picked_color]." -/obj/item/stack/marker_beacon/update_icon() +/obj/item/stack/marker_beacon/update_icon_state() icon_state = "[initial(icon_state)][lowertext(picked_color)]" + return ..() /obj/item/stack/marker_beacon/attack_self(mob/user, datum/event_args/actor/actor) . = ..() @@ -94,6 +95,8 @@ var/list/marker_beacon_colors = list( /obj/structure/marker_beacon/Initialize(mapload, set_color) . = ..() picked_color = set_color + if(!picked_color || !marker_beacon_colors[picked_color]) + picked_color = pick(marker_beacon_colors) update_icon() /obj/structure/marker_beacon/examine(mob/user, dist) @@ -101,8 +104,7 @@ var/list/marker_beacon_colors = list( . += "Alt-click to select a color. Current color is [picked_color]." /obj/structure/marker_beacon/update_icon() - while(!picked_color || !marker_beacon_colors[picked_color]) - picked_color = pick(marker_beacon_colors) + . = ..() icon_state = "[initial(icon_state)][lowertext(picked_color)]-on" set_light(light_range, light_power, marker_beacon_colors[picked_color]) @@ -145,22 +147,8 @@ var/list/marker_beacon_colors = list( /obj/structure/marker_beacon/red picked_color = "Burgundy" -/obj/structure/marker_beacon/red/update_icon() - while(!picked_color || !marker_beacon_colors[picked_color]) - picked_color = "Burgundy" - icon_state = "[initial(icon_state)][lowertext(picked_color)]-on" - set_light(light_range, light_power, marker_beacon_colors[picked_color]) - /obj/structure/marker_beacon/yellow picked_color = "Yellow" -/obj/structure/marker_beacon/yellow/update_icon() - icon_state = "[initial(icon_state)][lowertext(picked_color)]-on" - set_light(light_range, light_power, marker_beacon_colors[picked_color]) - /obj/structure/marker_beacon/green picked_color = "Green" - -/obj/structure/marker_beacon/green/update_icon() - icon_state = "[initial(icon_state)][lowertext(picked_color)]-on" - set_light(light_range, light_power, marker_beacon_colors[picked_color]) diff --git a/code/game/objects/items/stacks/rods.dm b/code/game/objects/items/stacks/rods.dm index 13af5cc22f98..bbc8394bbec9 100644 --- a/code/game/objects/items/stacks/rods.dm +++ b/code/game/objects/items/stacks/rods.dm @@ -19,12 +19,13 @@ . += create_stack_recipe_datum(name = "grille", product = /obj/structure/grille, cost = 2, time = 1 SECONDS) . += create_stack_recipe_datum(name = "catwalk", product = /obj/structure/catwalk, cost = 2, time = 1 SECONDS) -/obj/item/stack/rods/update_icon() +/obj/item/stack/rods/update_icon_state() var/amount = get_amount() if((amount <= 5) && (amount > 0)) icon_state = "rods-[amount]" else icon_state = "rods" + return ..() /obj/item/stack/rods/attackby(obj/item/W as obj, mob/user as mob) if (istype(W, /obj/item/weldingtool)) diff --git a/code/game/objects/items/stacks/sandbag.dm b/code/game/objects/items/stacks/sandbag.dm index b7d9b67d49ab..a445097edec6 100644 --- a/code/game/objects/items/stacks/sandbag.dm +++ b/code/game/objects/items/stacks/sandbag.dm @@ -19,7 +19,7 @@ . = ..() update_icon() -/obj/item/stack/emptysandbag/update_icon() +/obj/item/stack/emptysandbag/update_icon_state() var/amount = get_amount() if((amount >= 35)) icon_state = "sandbag_empty_3" @@ -27,6 +27,7 @@ icon_state = "sandbag_empty_2" else icon_state = "sandbag_empty" + return ..() /obj/item/stack/emptysandbag/attackby(var/obj/item/W, var/mob/user) if(istype(W, /obj/item/stack/ore/glass) && !interact(user, src)) @@ -66,7 +67,7 @@ . = ..() update_icon() -/obj/item/stack/sandbags/update_icon() +/obj/item/stack/sandbags/update_icon_state() var/amount = get_amount() if((amount >= 35)) icon_state = "sandbags_3" @@ -74,6 +75,7 @@ icon_state = "sandbags_2" else icon_state = "sandbags" + return ..() /obj/item/stack/sandbags/generate_explicit_recipes() . = list() diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm index 4d4b4b511350..3641d43faf8c 100644 --- a/code/game/objects/items/stacks/stack.dm +++ b/code/game/objects/items/stacks/stack.dm @@ -80,6 +80,7 @@ update_icon() /obj/item/stack/update_icon() + . = ..() if(skip_legacy_icon_update) return if(no_variants) diff --git a/code/game/objects/items/stacks/tickets.dm b/code/game/objects/items/stacks/tickets.dm index a88abfc9fbb8..ae1ef53e8d13 100644 --- a/code/game/objects/items/stacks/tickets.dm +++ b/code/game/objects/items/stacks/tickets.dm @@ -11,7 +11,7 @@ . = ..() update_icon() -/obj/item/stack/arcadeticket/update_icon() +/obj/item/stack/arcadeticket/update_icon_state() var/amount = get_amount() switch(amount) if(12 to INFINITY) @@ -22,6 +22,7 @@ icon_state = "arcade-ticket_2" else icon_state = "arcade-ticket" + return ..() /obj/item/stack/arcadeticket/proc/pay_tickets() amount -= 2 diff --git a/code/game/objects/items/storage/misc_legacy/fancy.dm b/code/game/objects/items/storage/misc_legacy/fancy.dm index f90b8602fb9c..4a8aa3a8d47b 100644 --- a/code/game/objects/items/storage/misc_legacy/fancy.dm +++ b/code/game/objects/items/storage/misc_legacy/fancy.dm @@ -128,6 +128,7 @@ /obj/item/storage/fancy/crayons/update_icon() cut_overlays() + . = ..() for(var/obj/item/pen/crayon/crayon in contents) add_overlay(crayon.crayon_color_name) @@ -168,6 +169,7 @@ /obj/item/storage/fancy/markers/update_icon() cut_overlays() + . = ..() for(var/obj/item/pen/crayon/marker/marker in contents) add_overlay("m[marker.crayon_color_name]") @@ -205,6 +207,7 @@ /obj/item/storage/fancy/chalk/update_icon() cut_overlays() + . = ..() for(var/obj/item/pen/crayon/chalk/chalk in contents) add_overlay("c[chalk.crayon_color_name]") @@ -372,9 +375,9 @@ atom_flags |= NOREACT create_reagents(15 * max_items) -/obj/item/storage/fancy/cigar/update_icon() +/obj/item/storage/fancy/cigar/update_icon_state() icon_state = "[initial(icon_state)][contents.len]" - return + return ..() /obj/item/storage/fancy/cigar/Exited(atom/movable/AM, atom/newLoc) . = ..() @@ -436,11 +439,12 @@ update_icon() /obj/item/storage/lockbox/vials/update_icon(itemremoved = 0) + cut_overlays() + . = ..() + var/total_contents = contents.len - itemremoved icon_state = "vialbox[total_contents]" - cut_overlays() - var/list/overlays_to_add = list() if (!broken) overlays_to_add += image(icon, src, "led[locked]") @@ -486,6 +490,6 @@ . = ..() update_icon() -/obj/item/storage/fancy/heartbox/update_icon(var/itemremoved = 0) - if (contents.len == 0) - icon_state = "heartbox_empty" +/obj/item/storage/fancy/heartbox/update_icon_state() + icon_state = length(contents) ? "chocolate" : "heartbox_empty" + return ..() diff --git a/code/game/objects/items/storage/misc_legacy/misc.dm b/code/game/objects/items/storage/misc_legacy/misc.dm index 4a8c429dc18a..48f4ee9b52d1 100644 --- a/code/game/objects/items/storage/misc_legacy/misc.dm +++ b/code/game/objects/items/storage/misc_legacy/misc.dm @@ -21,10 +21,12 @@ /obj/item/storage/box/donut/update_icon() cut_overlays() + . = ..() var/i = 0 for(var/obj/item/reagent_containers/food/snacks/donut/D in contents) - add_overlay("[i][D.overlay_state]") - i++ + add_overlay("[i++][D.overlay_state]") + if(i >= 6) + break /obj/item/storage/box/donut/empty empty = TRUE @@ -50,9 +52,9 @@ . = ..() obj_storage.update_icon_on_item_change = TRUE -/obj/item/storage/box/wormcan/update_icon(var/itemremoved = 0) - if (contents.len == 0) - icon_state = "wormcan_empty" +/obj/item/storage/box/wormcan/update_icon_state() + icon_state = length(contents) ? "wormcan" : "wormcan_empty" + return ..() /obj/item/storage/box/wormcan/sickly icon_state = "wormcan_sickly" @@ -73,8 +75,8 @@ starts_with = list(/obj/item/reagent_containers/food/snacks/wormdeluxe = 6) /obj/item/storage/box/wormcan/deluxe/update_icon(var/itemremoved = 0) - if (contents.len == 0) - icon_state = "wormcan_empty_deluxe" + icon_state = length(contents) ? "wormcan_deluxe" : "wormcan_empty_deluxe" + return ..() //Snowflake Survival Knife Code /obj/item/storage/box/survival_knife diff --git a/code/game/objects/items/storage/wallets.dm b/code/game/objects/items/storage/wallets.dm index 07b417800323..b8ae16dde897 100644 --- a/code/game/objects/items/storage/wallets.dm +++ b/code/game/objects/items/storage/wallets.dm @@ -72,6 +72,7 @@ /obj/item/storage/wallet/update_icon() cut_overlays() + . = ..() if(front_id) var/tiny_state = "id-generic" if(("id-"+front_id.icon_state) in icon_states(icon)) diff --git a/code/game/objects/items/tools/weldingtool.dm b/code/game/objects/items/tools/weldingtool.dm index a2eced2bcc8e..be0ad32a794e 100644 --- a/code/game/objects/items/tools/weldingtool.dm +++ b/code/game/objects/items/tools/weldingtool.dm @@ -743,6 +743,7 @@ return /obj/item/weldingtool/electric/crystal/update_icon() + . = ..() icon_state = welding ? "crystal_welder_on" : "crystal_welder" item_state = welding ? "crystal_tool_lit" : "crystal_tool" update_worn_icon() diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index 069da682a19a..915f314f32cf 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -75,16 +75,14 @@ for(var/atom/A in get_turf(hit_atom)) src.reagents.touch(A) src.icon_state = "burst" - spawn(5) - if(src) - qdel(src) - return + QDEL_IN(src, 5) -/obj/item/toy/balloon/update_icon() - if(src.reagents.total_volume >= 1) +/obj/item/toy/balloon/update_icon_state() + if(reagents.total_volume) icon_state = "waterballoon" else icon_state = "waterballoon-e" + return ..() /obj/item/toy/syndicateballoon name = "criminal balloon" diff --git a/code/game/objects/items/weapons/barrier_tape.dm b/code/game/objects/items/weapons/barrier_tape.dm index c12379f28bec..e4f3cf655366 100644 --- a/code/game/objects/items/weapons/barrier_tape.dm +++ b/code/game/objects/items/weapons/barrier_tape.dm @@ -40,6 +40,7 @@ var/list/tape_roll_applications = list() var/icon_base = "tape" /obj/item/barrier_tape_segment/update_icon() + . = ..() //Possible directional bitflags: 0 (AIRLOCK), 1 (NORTH), 2 (SOUTH), 4 (EAST), 8 (WEST), 3 (VERTICAL), 12 (HORIZONTAL) switch (tape_dir) if(0) // AIRLOCK @@ -50,7 +51,7 @@ var/list/tape_roll_applications = list() icon_state = "[icon_base]_h_[crumpled]" else // END POINT (1|2|4|8) icon_state = "[icon_base]_dir_[crumpled]" - dir = tape_dir + setDir(tape_dir) /obj/item/barrier_tape_segment/Initialize(mapload) . = ..() @@ -115,6 +116,7 @@ var/list/tape_roll_applications = list() /obj/item/barrier_tape_roll/update_icon() cut_overlays() + . = ..() var/image/overlay = image(icon = src.icon) overlay.appearance_flags = RESET_COLOR if(ismob(loc)) @@ -124,7 +126,6 @@ var/list/tape_roll_applications = list() overlay.icon_state = "stop" add_overlay(overlay) - /obj/item/barrier_tape_roll/dropped(mob/user, flags, atom/newLoc) update_icon() return ..() diff --git a/code/game/objects/items/weapons/candle.dm b/code/game/objects/items/weapons/candle.dm index 733e0cac1d0c..ff782b211ee9 100644 --- a/code/game/objects/items/weapons/candle.dm +++ b/code/game/objects/items/weapons/candle.dm @@ -15,7 +15,7 @@ . = ..() wax -= rand(800, 1000) // Enough for 27-33 minutes. 30 minutes on average. -/obj/item/flame/candle/update_icon() +/obj/item/flame/candle/update_icon_state() var/i if(wax > 1500) i = 1 @@ -23,6 +23,7 @@ i = 2 else i = 3 icon_state = "[icon_type][i][lit ? "_lit" : ""]" + return ..() /obj/item/flame/candle/attackby(obj/item/W as obj, mob/user as mob) ..() From 9e10f206b92b59303cf8ff78cc8afb25e61f50b1 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Mon, 6 Jan 2025 14:59:18 -0500 Subject: [PATCH 03/13] icon updates --- code/game/objects/structures/railing.dm | 3 ++- code/game/objects/structures/safe.dm | 7 ++----- code/game/objects/structures/simple_doors.dm | 3 ++- .../structures/stool_bed_chair_nest/alien_nests.dm | 3 --- .../objects/structures/stool_bed_chair_nest/bed.dm | 13 ++++++------- .../structures/stool_bed_chair_nest/chairs_vr.dm | 1 + code/game/objects/structures/watercloset.dm | 4 +++- code/game/objects/structures/windoor_assembly.dm | 7 ++++--- .../game/rendering/legacy/ability_screen_objects.dm | 3 +++ code/game/rendering/screen_legacy.dm | 1 + code/game/turfs/simulated/wall_types/shuttle.dm | 1 + code/modules/assembly/holder.dm | 1 + 12 files changed, 26 insertions(+), 21 deletions(-) diff --git a/code/game/objects/structures/railing.dm b/code/game/objects/structures/railing.dm index e988470c54cd..6ce56654f822 100644 --- a/code/game/objects/structures/railing.dm +++ b/code/game/objects/structures/railing.dm @@ -93,10 +93,11 @@ R.update_icon(UpdateNeighbors = FALSE) /obj/structure/railing/update_icon(updates, UpdateNeighbors = TRUE) - NeighborsCheck(UpdateNeighbors) //layer = (dir == SOUTH) ? FLY_LAYER : initial(layer) // wtf does this even do cut_overlays() + . = ..() + NeighborsCheck(UpdateNeighbors) if (!check || !anchored)//|| !anchored icon_state = "railing0" else diff --git a/code/game/objects/structures/safe.dm b/code/game/objects/structures/safe.dm index 7f4641ea6de5..b1e99b3a065f 100644 --- a/code/game/objects/structures/safe.dm +++ b/code/game/objects/structures/safe.dm @@ -48,27 +48,24 @@ FLOOR SAFES return 1 return 0 - /obj/structure/safe/proc/decrement(num) num -= 1 if(num < 0) num = 71 return num - /obj/structure/safe/proc/increment(num) num += 1 if(num > 71) num = 0 return num - -/obj/structure/safe/update_icon() +/obj/structure/safe/update_icon_state() if(open) icon_state = "[initial(icon_state)]-open" else icon_state = initial(icon_state) - + return ..() /obj/structure/safe/attack_hand(mob/user, datum/event_args/actor/clickchain/e_args) user.set_machine(src) diff --git a/code/game/objects/structures/simple_doors.dm b/code/game/objects/structures/simple_doors.dm index 09824f2a6936..5fd867f87ef6 100644 --- a/code/game/objects/structures/simple_doors.dm +++ b/code/game/objects/structures/simple_doors.dm @@ -117,7 +117,7 @@ isSwitchingStates = 0 update_nearby_tiles() -/obj/structure/simple_door/update_icon() +/obj/structure/simple_door/update_icon_state() var/datum/prototype/material/material = get_primary_material() if(isnull(material)) icon_state = state? "open" : "closed" @@ -126,6 +126,7 @@ icon_state = "[material.door_icon_base]open" else icon_state = material.door_icon_base + return ..() /obj/structure/simple_door/attackby(obj/item/W as obj, mob/user as mob) if(user.a_intent == INTENT_HARM) diff --git a/code/game/objects/structures/stool_bed_chair_nest/alien_nests.dm b/code/game/objects/structures/stool_bed_chair_nest/alien_nests.dm index d9e4a6b18fd1..b93d37331691 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/alien_nests.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/alien_nests.dm @@ -10,9 +10,6 @@ integrity = 100 integrity_max = 100 -/obj/structure/bed/nest/update_icon() - return - /obj/structure/bed/nest/mob_resist_buckle(mob/M, semantic) . = ..() if(!.) diff --git a/code/game/objects/structures/stool_bed_chair_nest/bed.dm b/code/game/objects/structures/stool_bed_chair_nest/bed.dm index d5b3423d2234..0df1a1ac8978 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/bed.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/bed.dm @@ -19,6 +19,8 @@ pass_flags_self = ATOM_PASS_TABLE | ATOM_PASS_OVERHEAD_THROW buckle_dir = SOUTH buckle_lying = 90 + // todo: what a dumpster fire, unfuck / fully abstract this using new API, + // or get rid of it. wtf. var/datum/prototype/material/material var/datum/prototype/material/padding_material var/base_icon = "bed" @@ -40,9 +42,12 @@ // Reuse the cache/code from stools, todo maybe unify. /obj/structure/bed/update_icon() + if(!material) + return ..() + cut_overlays() + . = ..() // Prep icon. icon_state = "" - cut_overlays() var/list/overlays_to_add = list() // Base icon. var/cache_key = "[base_icon]-[material.name]" @@ -232,9 +237,6 @@ for(var/mob/M in old_buckled) buckle_mob(M, BUCKLE_OP_FORCE) -/obj/structure/bed/roller/update_icon() - return - /obj/structure/bed/roller/attackby(obj/item/W as obj, mob/user as mob) if(W.is_wrench() || istype(W,/obj/item/stack) || W.is_wirecutter()) return @@ -375,8 +377,5 @@ icon = 'icons/obj/abductor.dmi' icon_state = "bed" -/obj/structure/bed/alien/update_icon() - return // Doesn't care about material or anything else. - /obj/structure/bed/alien/attackby(obj/item/W, mob/user) return // No deconning. diff --git a/code/game/objects/structures/stool_bed_chair_nest/chairs_vr.dm b/code/game/objects/structures/stool_bed_chair_nest/chairs_vr.dm index 766492532319..30843bdca39f 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/chairs_vr.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/chairs_vr.dm @@ -42,6 +42,7 @@ // Baystation12 chairs with their larger update_icons proc /obj/structure/bed/chair/bay/update_icon() + // todo: this should call parent // Strings. desc = initial(desc) if(padding_material) diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm index e9574cada346..d22ccb6841c6 100644 --- a/code/game/objects/structures/watercloset.dm +++ b/code/game/objects/structures/watercloset.dm @@ -41,8 +41,9 @@ open = !open update_icon() -/obj/structure/toilet/update_icon() +/obj/structure/toilet/update_icon_state() icon_state = "toilet[open][cistern]" + return ..() /obj/structure/toilet/attackby(obj/item/I as obj, mob/living/user as mob) if(I.is_crowbar()) @@ -202,6 +203,7 @@ /obj/machinery/shower/update_icon() //this is terribly unreadable, but basically it makes the shower mist up cut_overlays() //once it's been on for a while, in addition to handling the water overlay. + . = ..() if(mymist) qdel(mymist) mymist = null diff --git a/code/game/objects/structures/windoor_assembly.dm b/code/game/objects/structures/windoor_assembly.dm index c5c1968e6ae9..9e55a20c5805 100644 --- a/code/game/objects/structures/windoor_assembly.dm +++ b/code/game/objects/structures/windoor_assembly.dm @@ -48,12 +48,13 @@ update_nearby_tiles() /obj/structure/windoor_assembly/Destroy() - density = 0 + set_density(FALSE) update_nearby_tiles() - ..() + return ..() -/obj/structure/windoor_assembly/update_icon() +/obj/structure/windoor_assembly/update_icon_state() icon_state = "[facing]_[secure]windoor_assembly[state]" + return ..() /obj/structure/windoor_assembly/CanAllowThrough(atom/movable/mover, turf/target) if(!(get_dir(loc, mover) & dir)) diff --git a/code/game/rendering/legacy/ability_screen_objects.dm b/code/game/rendering/legacy/ability_screen_objects.dm index f0ed59a261ee..29e4f52a0af0 100644 --- a/code/game/rendering/legacy/ability_screen_objects.dm +++ b/code/game/rendering/legacy/ability_screen_objects.dm @@ -104,7 +104,9 @@ ability.maptext = "[ability.index]" // Slot number i++ +// todo: what the fuck? /atom/movable/screen/movable/ability_master/update_icon() + . = ..() if(ability_objects.len) invisibility = 0 else @@ -249,6 +251,7 @@ // else // icon_state = "[spell_base]_spell_ready" cut_overlays() + . = ..() icon_state = "[background_base_state]_spell_base" add_overlay(ability_icon_state) diff --git a/code/game/rendering/screen_legacy.dm b/code/game/rendering/screen_legacy.dm index a73cce930e51..112f7981d4bb 100644 --- a/code/game/rendering/screen_legacy.dm +++ b/code/game/rendering/screen_legacy.dm @@ -118,6 +118,7 @@ /atom/movable/screen/zone_sel/update_icon() cut_overlays() + . = ..() add_overlay(image('icons/mob/zone_sel.dmi', "[selecting]")) /// The UI Button to open the TGUI Crafting Menu diff --git a/code/game/turfs/simulated/wall_types/shuttle.dm b/code/game/turfs/simulated/wall_types/shuttle.dm index 347ccd03924b..fe61b5b91e95 100644 --- a/code/game/turfs/simulated/wall_types/shuttle.dm +++ b/code/game/turfs/simulated/wall_types/shuttle.dm @@ -167,6 +167,7 @@ update_icon() /turf/simulated/shuttle/wall/voidcraft/update_icon() + . = ..() if(stripe_color) cut_overlays() var/image/I = image(icon = src.icon, icon_state = "o_[icon_state]") diff --git a/code/modules/assembly/holder.dm b/code/modules/assembly/holder.dm index 6cc9c57a6b7f..b8587accaec2 100644 --- a/code/modules/assembly/holder.dm +++ b/code/modules/assembly/holder.dm @@ -45,6 +45,7 @@ /obj/item/assembly_holder/update_icon() cut_overlays() + . = ..() if(a_left) add_overlay("[a_left.icon_state]_left") for(var/O in a_left.attached_overlays) From 8a5ca5e90bb1946c0ab567f7c5114b81af3721ea Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Tue, 7 Jan 2025 14:49:25 -0500 Subject: [PATCH 04/13] that --- .../machinery/components/binary_devices/pump.dm | 3 ++- .../machinery/components/binary_devices/valve.dm | 10 +++++----- .../components/binary_devices/volume_pump.dm | 3 ++- .../machinery/components/omni_devices/omni_base.dm | 1 + .../machinery/components/trinary_devices/mixer.dm | 3 ++- .../machinery/components/trinary_devices/tvalve.dm | 3 ++- .../machinery/components/unary/gas_freezer.dm | 4 ++-- .../machinery/components/unary/gas_heater.dm | 6 ++---- .../machinery/components/unary/generator_input.dm | 4 ++-- .../machinery/components/unary/heat_exchanger.dm | 3 ++- .../machinery/components/unary/outlet_injector.dm | 3 ++- .../machinery/components/unary/oxygen_generator.dm | 1 + .../components/unary/portables_connector.dm | 3 ++- .../machinery/components/unary/vent_pump.dm | 6 ++++-- .../machinery/components/unary/vent_scrubber.dm | 12 ++++++------ code/modules/atmospherics/machinery/pipes/cap.dm | 3 ++- .../modules/atmospherics/machinery/pipes/manifold.dm | 3 ++- .../atmospherics/machinery/pipes/manifold4w.dm | 3 ++- code/modules/atmospherics/machinery/pipes/simple.dm | 3 ++- code/modules/atmospherics/machinery/pipes/vent.dm | 1 + .../atmospherics/machinery/portable/canister.dm | 1 + code/modules/atmospherics/machinery/portable/pump.dm | 4 ++-- .../atmospherics/machinery/portable/scrubber.dm | 1 + code/modules/awaymissions/pamphlet.dm | 4 ---- code/modules/blob2/blobs/base_blob.dm | 1 + code/modules/blob2/blobs/core.dm | 1 + code/modules/blob2/blobs/node.dm | 1 + code/modules/clothing/glasses/_glasses.dm | 3 ++- code/modules/paperwork/paper/paper.dm | 9 ++++----- 29 files changed, 59 insertions(+), 44 deletions(-) diff --git a/code/modules/atmospherics/machinery/components/binary_devices/pump.dm b/code/modules/atmospherics/machinery/components/binary_devices/pump.dm index 2fb80cbb03af..687d758c207c 100644 --- a/code/modules/atmospherics/machinery/components/binary_devices/pump.dm +++ b/code/modules/atmospherics/machinery/components/binary_devices/pump.dm @@ -101,11 +101,12 @@ Thus, the two variables affect pump operation are set in New(): icon_state = "map_on-aux" use_power = 1 -/obj/machinery/atmospherics/component/binary/pump/update_icon() +/obj/machinery/atmospherics/component/binary/pump/update_icon_state() if(!powered()) icon_state = "[base_icon]-off" else icon_state = "[use_power ? "[base_icon]-on" : "[base_icon]-off"]" + return ..() /obj/machinery/atmospherics/component/binary/pump/update_underlays() if(..()) diff --git a/code/modules/atmospherics/machinery/components/binary_devices/valve.dm b/code/modules/atmospherics/machinery/components/binary_devices/valve.dm index be7fc2a85e66..679bcc91a75e 100644 --- a/code/modules/atmospherics/machinery/components/binary_devices/valve.dm +++ b/code/modules/atmospherics/machinery/components/binary_devices/valve.dm @@ -22,11 +22,11 @@ open = 1 icon_state = "map_valve1" -/obj/machinery/atmospherics/valve/update_icon(animation) - if(animation) - flick("valve[src.open][!src.open]",src) - else - icon_state = "valve[open]" +/obj/machinery/atmospherics/valve/update_icon_state() + // if(animation) + // flick("valve[src.open][!src.open]",src) + icon_state = "valve[open]" + return ..() /obj/machinery/atmospherics/valve/update_underlays() if(..()) diff --git a/code/modules/atmospherics/machinery/components/binary_devices/volume_pump.dm b/code/modules/atmospherics/machinery/components/binary_devices/volume_pump.dm index b5569a6e056f..1381d01cf4b5 100644 --- a/code/modules/atmospherics/machinery/components/binary_devices/volume_pump.dm +++ b/code/modules/atmospherics/machinery/components/binary_devices/volume_pump.dm @@ -13,8 +13,9 @@ use_power = USE_POWER_IDLE icon_state = "map_on" -/obj/machinery/atmospherics/component/binary/pump/high_power/update_icon() +/obj/machinery/atmospherics/component/binary/pump/high_power/update_icon_state() if(!powered()) icon_state = "off" else icon_state = "[use_power ? "on" : "off"]" + return ..() diff --git a/code/modules/atmospherics/machinery/components/omni_devices/omni_base.dm b/code/modules/atmospherics/machinery/components/omni_devices/omni_base.dm index 88d6a2837072..3402aca06c88 100644 --- a/code/modules/atmospherics/machinery/components/omni_devices/omni_base.dm +++ b/code/modules/atmospherics/machinery/components/omni_devices/omni_base.dm @@ -49,6 +49,7 @@ build_icons() /obj/machinery/atmospherics/component/quaternary/update_icon() + . = ..() if(machine_stat & NOPOWER) set_overlays(overlays_off.Copy()) else if(error_check()) diff --git a/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm b/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm index 1af33310211e..8cd2766430db 100644 --- a/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm +++ b/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm @@ -20,7 +20,8 @@ //node 3 is the outlet, nodes 1 & 2 are intakes -/obj/machinery/atmospherics/component/trinary/mixer/update_icon(var/safety = 0) +/obj/machinery/atmospherics/component/trinary/mixer/update_icon() + . = ..() if(tee) icon_state = "t" else if(mirrored) diff --git a/code/modules/atmospherics/machinery/components/trinary_devices/tvalve.dm b/code/modules/atmospherics/machinery/components/trinary_devices/tvalve.dm index 6df7bc5a6a39..f82149660609 100644 --- a/code/modules/atmospherics/machinery/components/trinary_devices/tvalve.dm +++ b/code/modules/atmospherics/machinery/components/trinary_devices/tvalve.dm @@ -27,8 +27,9 @@ icon_state = "map_tvalve1" state = 1 -/obj/machinery/atmospherics/tvalve/update_icon(animation) +/obj/machinery/atmospherics/tvalve/update_icon_state() icon_state = "tvalve[mirrored ? "m" : ""][state]" + return ..() /obj/machinery/atmospherics/tvalve/proc/animation() flick("tvalve[mirrored ? "m" : ""][src.state][!src.state]",src) diff --git a/code/modules/atmospherics/machinery/components/unary/gas_freezer.dm b/code/modules/atmospherics/machinery/components/unary/gas_freezer.dm index e7c576661f2c..4a3b8d4dd0ad 100644 --- a/code/modules/atmospherics/machinery/components/unary/gas_freezer.dm +++ b/code/modules/atmospherics/machinery/components/unary/gas_freezer.dm @@ -46,7 +46,7 @@ if(node) update_icon() -/obj/machinery/atmospherics/component/unary/freezer/update_icon() +/obj/machinery/atmospherics/component/unary/freezer/update_icon_state() if(node) if(use_power && cooling) icon_state = "freezer_1" @@ -54,7 +54,7 @@ icon_state = "freezer" else icon_state = "freezer_0" - return + return ..() /obj/machinery/atmospherics/component/unary/freezer/attack_ai(mob/user as mob) ui_interact(user) diff --git a/code/modules/atmospherics/machinery/components/unary/gas_heater.dm b/code/modules/atmospherics/machinery/components/unary/gas_heater.dm index 022f5157f20b..dbf37cc78662 100644 --- a/code/modules/atmospherics/machinery/components/unary/gas_heater.dm +++ b/code/modules/atmospherics/machinery/components/unary/gas_heater.dm @@ -37,8 +37,7 @@ if(node) update_icon() - -/obj/machinery/atmospherics/component/unary/heater/update_icon() +/obj/machinery/atmospherics/component/unary/heater/update_icon_state() if(node) if(use_power && heating) icon_state = "heater_1" @@ -46,8 +45,7 @@ icon_state = "heater" else icon_state = "heater_0" - return - + return ..() /obj/machinery/atmospherics/component/unary/heater/process(delta_time) ..() diff --git a/code/modules/atmospherics/machinery/components/unary/generator_input.dm b/code/modules/atmospherics/machinery/components/unary/generator_input.dm index f5b184e99dfe..d4fa86c80595 100644 --- a/code/modules/atmospherics/machinery/components/unary/generator_input.dm +++ b/code/modules/atmospherics/machinery/components/unary/generator_input.dm @@ -8,12 +8,12 @@ var/update_cycle -/obj/machinery/atmospherics/component/unary/generator_input/update_icon() +/obj/machinery/atmospherics/component/unary/generator_input/update_icon_state() if(node) icon_state = "intact" else icon_state = "exposed" - return + return ..() /obj/machinery/atmospherics/component/unary/generator_input/proc/return_exchange_air() return air_contents diff --git a/code/modules/atmospherics/machinery/components/unary/heat_exchanger.dm b/code/modules/atmospherics/machinery/components/unary/heat_exchanger.dm index 53a7aaf9d022..9a3279f6c2f1 100644 --- a/code/modules/atmospherics/machinery/components/unary/heat_exchanger.dm +++ b/code/modules/atmospherics/machinery/components/unary/heat_exchanger.dm @@ -16,11 +16,12 @@ /// * values above 1 currently do nothing var/thermal_conduction_power = 1 -/obj/machinery/atmospherics/component/unary/heat_exchanger/update_icon() +/obj/machinery/atmospherics/component/unary/heat_exchanger/update_icon_state() if(node) icon_state = "intact" else icon_state = "exposed" + return ..() /obj/machinery/atmospherics/component/unary/heat_exchanger/process() ..() diff --git a/code/modules/atmospherics/machinery/components/unary/outlet_injector.dm b/code/modules/atmospherics/machinery/components/unary/outlet_injector.dm index ca0498f07b66..77510a782b3f 100644 --- a/code/modules/atmospherics/machinery/components/unary/outlet_injector.dm +++ b/code/modules/atmospherics/machinery/components/unary/outlet_injector.dm @@ -31,11 +31,12 @@ unregister_radio(src, frequency) . = ..() -/obj/machinery/atmospherics/component/unary/outlet_injector/update_icon() +/obj/machinery/atmospherics/component/unary/outlet_injector/update_icon_state() if(!powered()) icon_state = "off" else icon_state = "[use_power ? "on" : "off"]" + return ..() /obj/machinery/atmospherics/component/unary/outlet_injector/update_underlays() if(..()) diff --git a/code/modules/atmospherics/machinery/components/unary/oxygen_generator.dm b/code/modules/atmospherics/machinery/components/unary/oxygen_generator.dm index d47883ae893d..fc787125d6e2 100644 --- a/code/modules/atmospherics/machinery/components/unary/oxygen_generator.dm +++ b/code/modules/atmospherics/machinery/components/unary/oxygen_generator.dm @@ -12,6 +12,7 @@ var/oxygen_content = 10 /obj/machinery/atmospherics/component/unary/oxygen_generator/update_icon() + . = ..() if(node) icon_state = "intact_[on?("on"):("off")]" else diff --git a/code/modules/atmospherics/machinery/components/unary/portables_connector.dm b/code/modules/atmospherics/machinery/components/unary/portables_connector.dm index 525aeffd03eb..6115334e3a77 100644 --- a/code/modules/atmospherics/machinery/components/unary/portables_connector.dm +++ b/code/modules/atmospherics/machinery/components/unary/portables_connector.dm @@ -38,8 +38,9 @@ /obj/machinery/atmospherics/portables_connector/init_dir() initialize_directions = dir -/obj/machinery/atmospherics/portables_connector/update_icon() +/obj/machinery/atmospherics/portables_connector/update_icon_state() icon_state = "connector" + return ..() /obj/machinery/atmospherics/portables_connector/update_underlays() if(..()) diff --git a/code/modules/atmospherics/machinery/components/unary/vent_pump.dm b/code/modules/atmospherics/machinery/components/unary/vent_pump.dm index 2acade7a05d3..51a6c780bd8c 100644 --- a/code/modules/atmospherics/machinery/components/unary/vent_pump.dm +++ b/code/modules/atmospherics/machinery/components/unary/vent_pump.dm @@ -88,11 +88,13 @@ //QDEL_NULL(soundloop) return ..() -/obj/machinery/atmospherics/component/unary/vent_pump/update_icon(safety = 0) +/obj/machinery/atmospherics/component/unary/vent_pump/update_icon() + cut_overlays() + . = ..() + if(!check_icon_cache()) return - cut_overlays() var/vent_icon = "vent" diff --git a/code/modules/atmospherics/machinery/components/unary/vent_scrubber.dm b/code/modules/atmospherics/machinery/components/unary/vent_scrubber.dm index 2aa0c4a19f58..e0018fac2e08 100644 --- a/code/modules/atmospherics/machinery/components/unary/vent_scrubber.dm +++ b/code/modules/atmospherics/machinery/components/unary/vent_scrubber.dm @@ -104,12 +104,12 @@ else if(isnum(key)) scrub_groups |= key -/obj/machinery/atmospherics/component/unary/vent_scrubber/update_icon(safety = 0) +/obj/machinery/atmospherics/component/unary/vent_scrubber/update_icon() + cut_overlays() + . = ..() if(!check_icon_cache()) return - cut_overlays() - var/scrubber_icon = "scrubber" var/turf/T = get_turf(src) @@ -428,12 +428,12 @@ /obj/machinery/atmospherics/component/unary/vent_scrubber/retro/on/welded welded = 1 -/obj/machinery/atmospherics/component/unary/vent_scrubber/retro/update_icon(safety = 0) +/obj/machinery/atmospherics/component/unary/vent_scrubber/retro/update_icon() + cut_overlays() + . = ..() if(!check_icon_cache()) return - cut_overlays() - var/scrubber_icon = "scrubber" var/turf/T = get_turf(src) diff --git a/code/modules/atmospherics/machinery/pipes/cap.dm b/code/modules/atmospherics/machinery/pipes/cap.dm index 4bb605aa5eef..5c7b5b1cc8cf 100644 --- a/code/modules/atmospherics/machinery/pipes/cap.dm +++ b/code/modules/atmospherics/machinery/pipes/cap.dm @@ -45,7 +45,8 @@ if(node) node.update_underlays() -/obj/machinery/atmospherics/pipe/cap/update_icon(safety = 0) +/obj/machinery/atmospherics/pipe/cap/update_icon() + . = ..() if(!check_icon_cache()) return diff --git a/code/modules/atmospherics/machinery/pipes/manifold.dm b/code/modules/atmospherics/machinery/pipes/manifold.dm index 81514c4bc765..f6999981c210 100644 --- a/code/modules/atmospherics/machinery/pipes/manifold.dm +++ b/code/modules/atmospherics/machinery/pipes/manifold.dm @@ -79,7 +79,8 @@ if(node3) node3.update_underlays() -/obj/machinery/atmospherics/pipe/manifold/update_icon(safety = 0) +/obj/machinery/atmospherics/pipe/manifold/update_icon() + . = ..() if(!check_icon_cache()) return diff --git a/code/modules/atmospherics/machinery/pipes/manifold4w.dm b/code/modules/atmospherics/machinery/pipes/manifold4w.dm index bf2b52ea8d87..bf4626778a04 100644 --- a/code/modules/atmospherics/machinery/pipes/manifold4w.dm +++ b/code/modules/atmospherics/machinery/pipes/manifold4w.dm @@ -79,7 +79,8 @@ if(node4) node4.update_underlays() -/obj/machinery/atmospherics/pipe/manifold4w/update_icon(safety = 0) +/obj/machinery/atmospherics/pipe/manifold4w/update_icon() + . = ..() if(!check_icon_cache()) return diff --git a/code/modules/atmospherics/machinery/pipes/simple.dm b/code/modules/atmospherics/machinery/pipes/simple.dm index 54e53ab5d648..f67ded35be67 100644 --- a/code/modules/atmospherics/machinery/pipes/simple.dm +++ b/code/modules/atmospherics/machinery/pipes/simple.dm @@ -98,7 +98,8 @@ if(node2) node2.update_underlays() -/obj/machinery/atmospherics/pipe/simple/update_icon(safety = 0) +/obj/machinery/atmospherics/pipe/simple/update_icon() + . = ..() if(!check_icon_cache()) return diff --git a/code/modules/atmospherics/machinery/pipes/vent.dm b/code/modules/atmospherics/machinery/pipes/vent.dm index 3510ddfb3d45..72600a4656a3 100644 --- a/code/modules/atmospherics/machinery/pipes/vent.dm +++ b/code/modules/atmospherics/machinery/pipes/vent.dm @@ -40,6 +40,7 @@ return list(node1) /obj/machinery/atmospherics/pipe/vent/update_icon() + . = ..() if(node1) if(is_hidden_underfloor()) icon_state = "hintact" diff --git a/code/modules/atmospherics/machinery/portable/canister.dm b/code/modules/atmospherics/machinery/portable/canister.dm index be7402f1ffa5..1ad9bb188669 100644 --- a/code/modules/atmospherics/machinery/portable/canister.dm +++ b/code/modules/atmospherics/machinery/portable/canister.dm @@ -194,6 +194,7 @@ return 0 /obj/machinery/portable_atmospherics/canister/update_icon() + . = ..() /* update_flag 1 = holding diff --git a/code/modules/atmospherics/machinery/portable/pump.dm b/code/modules/atmospherics/machinery/portable/pump.dm index 1e314a16cb8f..5073a2db087c 100644 --- a/code/modules/atmospherics/machinery/portable/pump.dm +++ b/code/modules/atmospherics/machinery/portable/pump.dm @@ -26,6 +26,7 @@ /obj/machinery/portable_atmospherics/powered/pump/update_icon() cut_overlays() + . = ..() var/list/overlays_to_add = list() if(on && cell && cell.charge) @@ -39,7 +40,6 @@ if(connected_port) overlays_to_add += "siphon-connector" add_overlay(overlays_to_add) - return /obj/machinery/portable_atmospherics/powered/pump/emp_act(severity) if(machine_stat & (BROKEN|NOPOWER)) @@ -207,7 +207,7 @@ /obj/machinery/portable_atmospherics/powered/pump/huge/update_icon() cut_overlays() - + . = ..() if(on && !(machine_stat & (NOPOWER|BROKEN))) icon_state = "siphon:1" else diff --git a/code/modules/atmospherics/machinery/portable/scrubber.dm b/code/modules/atmospherics/machinery/portable/scrubber.dm index 145bc59c2455..dd2f1c5f0243 100644 --- a/code/modules/atmospherics/machinery/portable/scrubber.dm +++ b/code/modules/atmospherics/machinery/portable/scrubber.dm @@ -139,6 +139,7 @@ /obj/machinery/portable_atmospherics/powered/scrubber/huge/update_icon() cut_overlays() + . = ..() if(on && !(machine_stat & (NOPOWER|BROKEN))) icon_state = "scrubber:1" diff --git a/code/modules/awaymissions/pamphlet.dm b/code/modules/awaymissions/pamphlet.dm index 3170b322f928..f623f704b219 100644 --- a/code/modules/awaymissions/pamphlet.dm +++ b/code/modules/awaymissions/pamphlet.dm @@ -33,10 +33,6 @@ Though complete safety is assured, participants are advised to prepare for inhospitable \ environs." -//we don't want the silly text overlay! -/obj/item/paper/pamphlet/update_icon() - return - /obj/item/paper/pamphlet/violent_video_games name = "pamphlet - \'Violent Video Games and You\'" desc = "A pamphlet encouraging the reader to maintain a balanced lifestyle and take care of their mental health, while still enjoying video games in a healthy way. You probably don't need this..." diff --git a/code/modules/blob2/blobs/base_blob.dm b/code/modules/blob2/blobs/base_blob.dm index 505d6c155dab..63164294cd35 100644 --- a/code/modules/blob2/blobs/base_blob.dm +++ b/code/modules/blob2/blobs/base_blob.dm @@ -37,6 +37,7 @@ var/list/blobs = list() return ..() /obj/structure/blob/update_icon() //Updates color based on overmind color if we have an overmind. + . = ..() if(overmind) name = "[overmind.blob_type.name] [base_name]" // This is in update_icon() because inert blobs can turn into other blobs with magic if another blob core claims it with pulsing. color = overmind.blob_type.color diff --git a/code/modules/blob2/blobs/core.dm b/code/modules/blob2/blobs/core.dm index 6a737206a128..8f799a5d1d8c 100644 --- a/code/modules/blob2/blobs/core.dm +++ b/code/modules/blob2/blobs/core.dm @@ -103,6 +103,7 @@ var/list/blob_cores = list() /obj/structure/blob/core/update_icon() cut_overlays() + . = ..() var/list/overlays_to_add = list() color = null var/mutable_appearance/blob_overlay = mutable_appearance('icons/mob/blob.dmi', "blob") diff --git a/code/modules/blob2/blobs/node.dm b/code/modules/blob2/blobs/node.dm index 7f39e3ad3afb..b4d4d8d45d72 100644 --- a/code/modules/blob2/blobs/node.dm +++ b/code/modules/blob2/blobs/node.dm @@ -22,6 +22,7 @@ var/list/blob_nodes = list() /obj/structure/blob/node/update_icon() cut_overlays() + . = ..() var/list/overlays_to_add = list() color = null var/mutable_appearance/blob_overlay = mutable_appearance('icons/mob/blob.dmi', "blob") diff --git a/code/modules/clothing/glasses/_glasses.dm b/code/modules/clothing/glasses/_glasses.dm index b44e788cc9d6..a3e5d4d52762 100644 --- a/code/modules/clothing/glasses/_glasses.dm +++ b/code/modules/clothing/glasses/_glasses.dm @@ -585,11 +585,12 @@ BLIND // can't see anything update_worn_icon() update_action_buttons() -/obj/item/clothing/glasses/sunglasses/sechud/aviator/update_icon() +/obj/item/clothing/glasses/sunglasses/sechud/aviator/update_icon_state() if(on) icon_state = initial(icon_state) else icon_state = inactive_icon_state + return ..() /obj/item/clothing/glasses/sunglasses/sechud/aviator/prescription name = "prescription security HUD aviators" diff --git a/code/modules/paperwork/paper/paper.dm b/code/modules/paperwork/paper/paper.dm index f4ea2a42f554..be64ad1bb817 100644 --- a/code/modules/paperwork/paper/paper.dm +++ b/code/modules/paperwork/paper/paper.dm @@ -74,12 +74,11 @@ updateinfolinks() /obj/item/paper/update_icon() - if(icon_state == "paper_talisman") - return + cut_overlays() + . = ..() if(info) - icon_state = "paper_words" - return - icon_state = "paper" + // todo: be like, `-content` or something not `_words` + add_overlay("[icon_state]_words") /obj/item/paper/proc/update_space(var/new_text) if(!new_text) From 9de1b340b03759689516297b83e9ba7c92a1a022 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Tue, 7 Jan 2025 15:07:04 -0500 Subject: [PATCH 05/13] what the hell --- code/modules/mining/mine_turfs.dm | 41 +++++-------------------------- 1 file changed, 6 insertions(+), 35 deletions(-) diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm index f0f201ae1238..2e96f06da075 100644 --- a/code/modules/mining/mine_turfs.dm +++ b/code/modules/mining/mine_turfs.dm @@ -193,7 +193,8 @@ CREATE_STANDARD_TURFS(/turf/simulated/mineral/icerock/floor/ignore_cavegen) return NULLTURF_BORDER return T.density? ADJ_FOUND : NO_ADJ_FOUND -/turf/simulated/mineral/update_appearance(updates) +/turf/simulated/mineral/update_icon() + cut_overlays() . = ..() //We are a wall (why does this system work like this??) @@ -207,39 +208,6 @@ CREATE_STANDARD_TURFS(/turf/simulated/mineral/icerock/floor/ignore_cavegen) icon = 'icons/turf/walls/natural.dmi' // icon_state = rock_icon_state - //We are a sand floor - else - name = "sand" - icon = sand_icon // So that way we can source from other files. - icon_state = sand_icon_state - -/turf/simulated/mineral/update_overlays() - . = ..() - - //We are a wall (why does this system work like this??) - // todo: refactor this shitheap because this is pants on fucking head awful - - if(density) - /* - // TODO: Replace these layers with defines. (I have some being added in another PR) @Zandario - var/mutable_appearance/appearance - if(!(smoothing_junction & NORTH_JUNCTION)) - appearance = mutable_appearance(icon, "[rock_side_icon_state]_s", layer = EDGE_LAYER) - appearance.pixel_y = 32 - . += appearance - if(!(smoothing_junction & SOUTH_JUNCTION)) - appearance = mutable_appearance(icon, "[rock_side_icon_state]_n", layer = EDGE_LAYER) - appearance.pixel_y = -32 - . += appearance - if(!(smoothing_junction & WEST_JUNCTION)) - appearance = mutable_appearance(icon, "[rock_side_icon_state]_e", layer = EDGE_LAYER) - appearance.pixel_x = -32 - . += appearance - if(!(smoothing_junction & EAST_JUNCTION)) - appearance = mutable_appearance(icon, "[rock_side_icon_state]_w", layer = EDGE_LAYER) - appearance.pixel_x = 32 - . += appearance - */ if(archaeo_overlay) . += mutable_appearance(arch_icon, archaeo_overlay) if(excav_overlay) @@ -247,12 +215,15 @@ CREATE_STANDARD_TURFS(/turf/simulated/mineral/icerock/floor/ignore_cavegen) //We are a sand floor else + name = "sand" + icon = sand_icon // So that way we can source from other files. + icon_state = sand_icon_state + if(sand_dug) . += mutable_appearance(icon, "dug_overlay") if(overlay_detail) . += mutable_appearance('icons/turf/flooring/decals.dmi', overlay_detail) - /turf/simulated/mineral/legacy_ex_act(severity) switch(severity) From 078e2b3c5be720c23609a35e4a00dd714ae6a7a4 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Tue, 7 Jan 2025 15:48:43 -0500 Subject: [PATCH 06/13] update more updatei cons --- code/game/atoms/appearance.dm | 9 +++++++-- code/game/machinery/doors/airlock/airlock.dm | 1 + code/game/machinery/doors/blast_door.dm | 1 + code/game/machinery/doors/firedoor_assembly.dm | 3 ++- code/game/machinery/doors/windowdoor.dm | 1 + code/game/machinery/fire_alarm.dm | 1 + code/game/machinery/floor_light.dm | 2 +- code/game/machinery/holoposter.dm | 1 + code/game/machinery/spaceheater.dm | 1 + code/game/machinery/telecomms/_telecomms.dm | 3 ++- code/game/machinery/teleporter/pad.dm | 1 + code/game/machinery/teleporter/projector.dm | 1 + code/game/machinery/turrets/turret.dm | 1 + .../machinery/virtual_reality/vr_console.dm | 3 ++- code/game/machinery/vitals_monitor.dm | 1 + code/game/machinery/washing_machine.dm | 3 ++- .../objects/effects/debris/cleanable/aliens.dm | 3 --- .../objects/effects/debris/cleanable/blood.dm | 4 +++- .../effects/debris/cleanable/blood_tracks.dm | 1 + .../objects/effects/debris/cleanable/robots.dm | 1 + code/game/objects/effects/traps.dm | 18 ++++++++++++------ code/game/objects/items/bodybag.dm | 4 ++-- code/game/objects/items/defib/defib_kit.dm | 2 +- code/game/objects/items/defib/shockpaddles.dm | 1 + .../game/objects/items/devices/advnifrepair.dm | 1 + code/game/objects/items/devices/ai_detector.dm | 1 + code/game/objects/items/devices/aicard.dm | 3 +++ code/game/objects/items/devices/flash.dm | 2 +- code/game/objects/items/devices/gps.dm | 1 + code/game/objects/items/devices/holowarrant.dm | 1 + .../objects/items/devices/lightreplacer.dm | 2 +- .../game/objects/items/devices/radio/beacon.dm | 1 + .../objects/items/devices/radio/intercom.dm | 1 + .../game/objects/items/devices/radio/jammer.dm | 11 +++++------ code/game/objects/items/devices/scanners_vr.dm | 3 +-- code/game/objects/items/devices/t_scanner.dm | 1 + code/game/objects/items/glassjar.dm | 1 + code/game/objects/items/id_cards/cards.dm | 1 + code/game/objects/items/stacks/medical.dm | 9 ++------- .../objects/items/storage/misc_legacy/misc.dm | 6 +++--- .../items/storage/misc_legacy/trinket_box.dm | 1 + code/game/objects/items/weapons/RCD.dm | 1 + code/game/objects/items/weapons/candle.dm | 1 + .../game/objects/items/weapons/flamethrower.dm | 3 +-- .../items/weapons/grenades/supermatter.dm | 1 + .../objects/items/weapons/material/ashtray.dm | 1 + .../objects/items/weapons/material/chainsaw.dm | 2 ++ .../items/weapons/material/twohanded.dm | 1 + code/game/objects/items/weapons/stunbaton.dm | 1 + code/game/objects/structures/bonfire.dm | 2 ++ code/game/objects/structures/coathanger.dm | 1 + code/game/objects/structures/fireaxe.dm | 1 + 52 files changed, 86 insertions(+), 42 deletions(-) diff --git a/code/game/atoms/appearance.dm b/code/game/atoms/appearance.dm index 86988110b08b..fc2a59df4cdb 100644 --- a/code/game/atoms/appearance.dm +++ b/code/game/atoms/appearance.dm @@ -1,4 +1,9 @@ -// todo: rethink everything about how to do signals for these. +// todo: rethink everything about how to do signals for these, and general proc hierarchy +// * update icon overrides are getting silly +// * update flag is also kinda weird; most of the time you can't predict how things will react to not updating states / overlays together +// * should name/desc really be their own proc?? +// * signals being able to block these things are also silly in most contexts, as a signal listener shouldn't have to know about +// the implementation details of the sender? /** * Updates the appearence of the icon @@ -40,7 +45,7 @@ /// Updates the icon of the atom /atom/proc/update_icon(updates=ALL) SIGNAL_HANDLER - SHOULD_CALL_PARENT(TRUE) + // SHOULD_CALL_PARENT(TRUE) . = NONE updates &= ~SEND_SIGNAL(src, COMSIG_ATOM_UPDATE_ICON, updates) diff --git a/code/game/machinery/doors/airlock/airlock.dm b/code/game/machinery/doors/airlock/airlock.dm index b18db9b23ca5..868259b075fa 100644 --- a/code/game/machinery/doors/airlock/airlock.dm +++ b/code/game/machinery/doors/airlock/airlock.dm @@ -500,6 +500,7 @@ About the new airlock wires panel: /obj/machinery/door/airlock/update_icon(var/doorstate) + . = ..() switch(doorstate) if(AIRLOCK_OPEN) icon_state = "open" diff --git a/code/game/machinery/doors/blast_door.dm b/code/game/machinery/doors/blast_door.dm index 9df2f78a99fd..5acf84f220d3 100644 --- a/code/game/machinery/doors/blast_door.dm +++ b/code/game/machinery/doors/blast_door.dm @@ -57,6 +57,7 @@ // Parameters: None // Description: Updates icon of this object. Uses icon state variables. /obj/machinery/door/blast/update_icon() + . = ..() if(density) icon_state = icon_state_closed else diff --git a/code/game/machinery/doors/firedoor_assembly.dm b/code/game/machinery/doors/firedoor_assembly.dm index e779c739be7b..b900a55de92e 100644 --- a/code/game/machinery/doors/firedoor_assembly.dm +++ b/code/game/machinery/doors/firedoor_assembly.dm @@ -8,11 +8,12 @@ density = 1 var/wired = 0 -/obj/structure/firedoor_assembly/update_icon() +/obj/structure/firedoor_assembly/update_icon_state() if(anchored) icon_state = "door_anchored" else icon_state = "door_construction" + return ..() /obj/structure/firedoor_assembly/attackby(obj/item/C, mob/user as mob) if(istype(C, /obj/item/stack/cable_coil) && !wired && anchored) diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm index bf8007ae0194..5a2b684d6efe 100644 --- a/code/game/machinery/doors/windowdoor.dm +++ b/code/game/machinery/doors/windowdoor.dm @@ -25,6 +25,7 @@ src.base_state = src.icon_state /obj/machinery/door/window/update_icon() + . = ..() if(density) icon_state = base_state else diff --git a/code/game/machinery/fire_alarm.dm b/code/game/machinery/fire_alarm.dm index 18e7b0188826..234cb0eac41b 100644 --- a/code/game/machinery/fire_alarm.dm +++ b/code/game/machinery/fire_alarm.dm @@ -53,6 +53,7 @@ CREATE_WALL_MOUNTING_TYPES_SHIFTED(/obj/machinery/fire_alarm/alarms_hidden, 21) /obj/machinery/fire_alarm/update_icon() cut_overlays() + . = ..() add_overlay("casing") if(panel_open) diff --git a/code/game/machinery/floor_light.dm b/code/game/machinery/floor_light.dm index a67cadc08d5c..a952e821814e 100644 --- a/code/game/machinery/floor_light.dm +++ b/code/game/machinery/floor_light.dm @@ -122,7 +122,7 @@ var/list/floor_light_cache = list() /obj/machinery/floor_light/update_icon() cut_overlays() - = ..() + . = ..() if(use_power && !broken()) if(isnull(damaged)) var/cache_key = "floorlight-[default_light_colour]" diff --git a/code/game/machinery/holoposter.dm b/code/game/machinery/holoposter.dm index c8033af25273..9a876fb3ffdb 100644 --- a/code/game/machinery/holoposter.dm +++ b/code/game/machinery/holoposter.dm @@ -42,6 +42,7 @@ GLOBAL_LIST_EMPTY(holoposters) . += examine_addon /obj/machinery/holoposter/update_icon() + . = ..() if(machine_stat & NOPOWER) icon_state = "off" examine_addon = "It appears to be powered off." diff --git a/code/game/machinery/spaceheater.dm b/code/game/machinery/spaceheater.dm index 5173ad5a9405..0a987fb6d337 100644 --- a/code/game/machinery/spaceheater.dm +++ b/code/game/machinery/spaceheater.dm @@ -288,6 +288,7 @@ /obj/machinery/power/thermoregulator/update_icon() cut_overlays() + . = ..() var/list/overlays_to_add = list() if(on) overlays_to_add += "lasergen-on" diff --git a/code/game/machinery/telecomms/_telecomms.dm b/code/game/machinery/telecomms/_telecomms.dm index 55cb28f8a702..dabe27fc8840 100644 --- a/code/game/machinery/telecomms/_telecomms.dm +++ b/code/game/machinery/telecomms/_telecomms.dm @@ -159,11 +159,12 @@ if(src != T) links |= T -/obj/machinery/telecomms/update_icon() +/obj/machinery/telecomms/update_icon_state() if(on) icon_state = initial(icon_state) else icon_state = "[initial(icon_state)]_off" + return ..() /obj/machinery/telecomms/proc/update_power() if(toggled) diff --git a/code/game/machinery/teleporter/pad.dm b/code/game/machinery/teleporter/pad.dm index 07aaac186824..ebc72dd6651c 100644 --- a/code/game/machinery/teleporter/pad.dm +++ b/code/game/machinery/teleporter/pad.dm @@ -21,6 +21,7 @@ /obj/machinery/tele_pad/update_icon() cut_overlays() + . = ..() if(com?.projector?.engaged) update_use_power(USE_POWER_ACTIVE) var/image/I = image(icon, src, "[initial(icon_state)]_active_overlay") diff --git a/code/game/machinery/teleporter/projector.dm b/code/game/machinery/teleporter/projector.dm index 594bf591400f..f989068a3b7d 100644 --- a/code/game/machinery/teleporter/projector.dm +++ b/code/game/machinery/teleporter/projector.dm @@ -77,6 +77,7 @@ /obj/machinery/tele_projector/update_icon() cut_overlays() + . = ..() if(engaged) var/image/I = image(icon, src, "[initial(icon_state)]_active_overlay") I.plane = ABOVE_LIGHTING_PLANE diff --git a/code/game/machinery/turrets/turret.dm b/code/game/machinery/turrets/turret.dm index a22964f65fd1..ef943140ac4c 100644 --- a/code/game/machinery/turrets/turret.dm +++ b/code/game/machinery/turrets/turret.dm @@ -190,6 +190,7 @@ return ..() /obj/machinery/porta_turret/update_icon() + . = ..() if(machine_stat & BROKEN) // Turret is dead. icon_state = "destroyed_target_prism_[turret_type]" diff --git a/code/game/machinery/virtual_reality/vr_console.dm b/code/game/machinery/virtual_reality/vr_console.dm index 92f25b7bb879..3e8e094da69f 100644 --- a/code/game/machinery/virtual_reality/vr_console.dm +++ b/code/game/machinery/virtual_reality/vr_console.dm @@ -50,8 +50,9 @@ visible_message("\The [src] sounds an alarm, swinging its hatch open.") go_out() -/obj/machinery/vr_sleeper/update_icon() +/obj/machinery/vr_sleeper/update_icon_state() icon_state = "[base_state][occupant ? "1" : "0"]" + return ..() /obj/machinery/vr_sleeper/Topic(href, href_list) if(..()) diff --git a/code/game/machinery/vitals_monitor.dm b/code/game/machinery/vitals_monitor.dm index e5f0c1197e9d..cc02115fcb6f 100644 --- a/code/game/machinery/vitals_monitor.dm +++ b/code/game/machinery/vitals_monitor.dm @@ -87,6 +87,7 @@ /obj/machinery/vitals_monitor/update_icon() cut_overlays() + . = ..() if(machine_stat & NOPOWER) return add_overlay("screen") diff --git a/code/game/machinery/washing_machine.dm b/code/game/machinery/washing_machine.dm index 7c0232aa5b14..e55b32f41d78 100644 --- a/code/game/machinery/washing_machine.dm +++ b/code/game/machinery/washing_machine.dm @@ -67,8 +67,9 @@ if(state in list(1,3,6)) usr.loc = src.loc -/obj/machinery/washing_machine/update_icon() +/obj/machinery/washing_machine/update_icon_state() icon_state = "wm_[state][panel_open]" + return ..() /obj/machinery/washing_machine/attackby(obj/item/W as obj, mob/user as mob) if(state == 2 && washing.len < 1) diff --git a/code/game/objects/effects/debris/cleanable/aliens.dm b/code/game/objects/effects/debris/cleanable/aliens.dm index 5f40bfce1878..9fcd03427f69 100644 --- a/code/game/objects/effects/debris/cleanable/aliens.dm +++ b/code/game/objects/effects/debris/cleanable/aliens.dm @@ -11,9 +11,6 @@ random_icon_states = list("xgib1", "xgib2", "xgib3", "xgib4", "xgib5", "xgib6") basecolor = "#05EE05" -/obj/effect/debris/cleanable/blood/gibs/xeno/update_icon() - color = "#FFFFFF" - /obj/effect/debris/cleanable/blood/gibs/xeno/up random_icon_states = list("xgib1", "xgib2", "xgib3", "xgib4", "xgib5", "xgib6","xgibup1","xgibup1","xgibup1") diff --git a/code/game/objects/effects/debris/cleanable/blood.dm b/code/game/objects/effects/debris/cleanable/blood.dm index 6a318e6d8d11..1ee02af143cf 100644 --- a/code/game/objects/effects/debris/cleanable/blood.dm +++ b/code/game/objects/effects/debris/cleanable/blood.dm @@ -68,6 +68,7 @@ var/global/list/image/splatter_cache=list() addtimer(CALLBACK(src, PROC_REF(dry)), BLOOD_DRYING_TIME * (amount + 1)) /obj/effect/debris/cleanable/blood/update_icon() + . = ..() if(basecolor == "rainbow") basecolor = "#[get_random_colour(1)]" add_atom_color(basecolor) @@ -206,6 +207,8 @@ var/global/list/image/splatter_cache=list() var/fleshcolor = "#FFFFFF" /obj/effect/debris/cleanable/blood/gibs/update_icon() + cut_overlays() + . = ..() var/image/giblets = new(base_icon, "[icon_state]_flesh", dir) if(!fleshcolor || fleshcolor == "rainbow") @@ -217,7 +220,6 @@ var/global/list/image/splatter_cache=list() blood.Blend(basecolor,ICON_MULTIPLY) icon = blood - cut_overlays() add_overlay(giblets) /obj/effect/debris/cleanable/blood/gibs/up diff --git a/code/game/objects/effects/debris/cleanable/blood_tracks.dm b/code/game/objects/effects/debris/cleanable/blood_tracks.dm index 570758172f0b..c2bff1d4fb24 100644 --- a/code/game/objects/effects/debris/cleanable/blood_tracks.dm +++ b/code/game/objects/effects/debris/cleanable/blood_tracks.dm @@ -125,6 +125,7 @@ /obj/effect/debris/cleanable/blood/tracks/update_icon() cut_overlays() + . = ..() color = "#FFFFFF" var/truedir=0 diff --git a/code/game/objects/effects/debris/cleanable/robots.dm b/code/game/objects/effects/debris/cleanable/robots.dm index 171b7a35f1e2..49c3ceb7a3cd 100644 --- a/code/game/objects/effects/debris/cleanable/robots.dm +++ b/code/game/objects/effects/debris/cleanable/robots.dm @@ -7,6 +7,7 @@ random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6", "gib7") /obj/effect/debris/cleanable/blood/gibs/robot/update_icon() + . = ..() color = "#FFFFFF" /obj/effect/debris/cleanable/blood/gibs/robot/dry() //pieces of robots do not dry up like diff --git a/code/game/objects/effects/traps.dm b/code/game/objects/effects/traps.dm index 6aa6397fc601..1d56f96417f3 100644 --- a/code/game/objects/effects/traps.dm +++ b/code/game/objects/effects/traps.dm @@ -106,11 +106,12 @@ Add those other swinging traps you mentioned above! . = ..() update_icon() -/obj/effect/trap/update_icon() +/obj/effect/trap/update_icon_state() if(!tripped) icon_state = "[initial(icon_state)]" else if (tripped) icon_state = "[initial(icon_state)]_visible" + return ..() ////////////////// /// Pit Traps @@ -396,13 +397,14 @@ Add those other swinging traps you mentioned above! else to_chat(user, "You can't pry this sculpture off of the wall.") -/obj/effect/trap/launcher/update_icon() +/obj/effect/trap/launcher/update_icon_state() if(!tripped) icon_state = "[initial(icon_state)]" else if (tripped && !(atom_flags & ATOM_BROKEN)) icon_state = "[initial(icon_state)]_visible" else if (tripped && (atom_flags & ATOM_BROKEN)) icon_state = "[initial(icon_state)]_jammed" + return ..() //Stake Launcher /obj/effect/trap/launcher/stake @@ -473,13 +475,14 @@ Add those other swinging traps you mentioned above! . = ..() visible_message(SPAN_DANGER("\The [src] breaks! It was a trap!")) -/obj/effect/trap/pop_up/update_icon() +/obj/effect/trap/pop_up/update_icon_state() if(!tripped) icon_state = "[initial(icon_state)]" else if(tripped && !(atom_flags & ATOM_BROKEN)) icon_state = "[initial(icon_state)]_visible" else if (tripped && (atom_flags & ATOM_BROKEN)) icon_state = "[initial(icon_state)]_broken" + return ..() //Spear Trap @@ -708,13 +711,14 @@ if (istype(AM, /mob/living)) name = "crooked tile" desc = "The edges of this tile are lifted slightly." -/obj/effect/trap/pop_up/thrower/update_icon() +/obj/effect/trap/pop_up/thrower/update_icon_state() if(!tripped) icon_state = "[initial(icon_state)]" else if (tripped && !(atom_flags & ATOM_BROKEN)) icon_state = "[initial(icon_state)]_visible" else if (tripped && (atom_flags & ATOM_BROKEN)) icon_state = "[initial(icon_state)]_jammed" + return ..() ////////////////// // Falling Traps @@ -743,13 +747,14 @@ if (istype(AM, /mob/living)) to_chat(user, "You cut the ropes suspending the [src], breaking it.") update_icon() -/obj/effect/trap/falling/update_icon() +/obj/effect/trap/falling/update_icon_state() if(!tripped) icon_state = "[initial(icon_state)]" else if (tripped && !(atom_flags & ATOM_BROKEN)) icon_state = "[initial(icon_state)]_visible" else if (tripped && (atom_flags & ATOM_BROKEN)) icon_state = "[initial(icon_state)]_jammed" + return ..() //Falling Log /obj/effect/trap/falling/log @@ -808,10 +813,11 @@ if (istype(AM, /mob/living)) desc = "There's something strange about the lighting around this tile." update_icon() -/obj/effect/trap/falling/log/update_icon() +/obj/effect/trap/falling/log/update_icon_state() if(!tripped) icon_state = "[initial(icon_state)]" else if (tripped && !(atom_flags & ATOM_BROKEN)) icon_state = "[initial(icon_state)]_visible" else if (tripped && (atom_flags & ATOM_BROKEN)) icon_state = "[initial(icon_state)]_jammed" + return ..() diff --git a/code/game/objects/items/bodybag.dm b/code/game/objects/items/bodybag.dm index 9e4845a365f0..115c23d1fa33 100644 --- a/code/game/objects/items/bodybag.dm +++ b/code/game/objects/items/bodybag.dm @@ -114,7 +114,7 @@ var/obj/structure/morgue/M = loc M.update(broadcast) -/obj/structure/closet/body_bag/update_icon() +/obj/structure/closet/body_bag/update_icon_state() if(opened) icon_state = icon_opened else @@ -122,7 +122,7 @@ icon_state = "bodybag_closed1" else icon_state = icon_closed - + return ..() /obj/item/bodybag/cryobag name = "stasis bag" diff --git a/code/game/objects/items/defib/defib_kit.dm b/code/game/objects/items/defib/defib_kit.dm index aecb0f11b6ed..5e279ac659a6 100644 --- a/code/game/objects/items/defib/defib_kit.dm +++ b/code/game/objects/items/defib/defib_kit.dm @@ -40,8 +40,8 @@ bcell = /obj/item/cell/apc /obj/item/defib_kit/update_icon() - cut_overlays() + . = ..() var/list/new_overlays = list() if(paddles && paddles.loc == src) //in case paddles got destroyed somehow. diff --git a/code/game/objects/items/defib/shockpaddles.dm b/code/game/objects/items/defib/shockpaddles.dm index 0d69c31f1ed8..57c2cbd2cb3f 100644 --- a/code/game/objects/items/defib/shockpaddles.dm +++ b/code/game/objects/items/defib/shockpaddles.dm @@ -47,6 +47,7 @@ ..() /obj/item/shockpaddles/update_icon() + . = ..() icon_state = "defibpaddles[wielded]" item_state = "defibpaddles[wielded]" if(cooldown) diff --git a/code/game/objects/items/devices/advnifrepair.dm b/code/game/objects/items/devices/advnifrepair.dm index ffde2c060629..a3454b36eba9 100644 --- a/code/game/objects/items/devices/advnifrepair.dm +++ b/code/game/objects/items/devices/advnifrepair.dm @@ -32,6 +32,7 @@ return /obj/item/nifrepairer/update_icon() + . = ..() if(supply.total_volume) icon_state = "[initial(icon_state)]2" else diff --git a/code/game/objects/items/devices/ai_detector.dm b/code/game/objects/items/devices/ai_detector.dm index ee6fd8ed2dd8..91ec58a41b5a 100644 --- a/code/game/objects/items/devices/ai_detector.dm +++ b/code/game/objects/items/devices/ai_detector.dm @@ -82,6 +82,7 @@ return PROXIMITY_NONE /obj/item/multitool/ai_detector/update_icon() + . = ..() icon_state = "[initial(icon_state)][detect_state]" /obj/item/multitool/ai_detector/proc/update_warning(var/old_state, var/new_state) diff --git a/code/game/objects/items/devices/aicard.dm b/code/game/objects/items/devices/aicard.dm index f16209aeb0f0..6202ccb61f78 100644 --- a/code/game/objects/items/devices/aicard.dm +++ b/code/game/objects/items/devices/aicard.dm @@ -90,6 +90,7 @@ /obj/item/aicard/update_icon() cut_overlays() + . = ..() if(carded_ai) if (!carded_ai.control_disabled) add_overlay("aicard-on") @@ -174,6 +175,7 @@ /obj/item/aicard/aitater/update_icon() cut_overlays() + . = ..() if(carded_ai) if (!carded_ai.control_disabled) add_overlay("aitater-on") @@ -191,6 +193,7 @@ /obj/item/aicard/aispook/update_icon() cut_overlays() + . = ..() if(carded_ai) if (!carded_ai.control_disabled) add_overlay("aispook-on") diff --git a/code/game/objects/items/devices/flash.dm b/code/game/objects/items/devices/flash.dm index 833e6837bdc1..3ac0a399fbf5 100644 --- a/code/game/objects/items/devices/flash.dm +++ b/code/game/objects/items/devices/flash.dm @@ -62,6 +62,7 @@ ..() /obj/item/flash/update_icon() + . = ..() var/obj/item/cell/battery = power_supply if(use_external_power) @@ -71,7 +72,6 @@ icon_state = "[base_icon]burnt" else icon_state = "[base_icon]" - return /obj/item/flash/get_cell(inducer) return power_supply diff --git a/code/game/objects/items/devices/gps.dm b/code/game/objects/items/devices/gps.dm index bcc0961b5634..c0a49b8d4da1 100644 --- a/code/game/objects/items/devices/gps.dm +++ b/code/game/objects/items/devices/gps.dm @@ -69,6 +69,7 @@ /obj/item/gps/update_icon() cut_overlays() + . = ..() if(emped) add_overlay("emp") else if(on) diff --git a/code/game/objects/items/devices/holowarrant.dm b/code/game/objects/items/devices/holowarrant.dm index 38c380ca2101..c59f50d59e0c 100644 --- a/code/game/objects/items/devices/holowarrant.dm +++ b/code/game/objects/items/devices/holowarrant.dm @@ -61,6 +61,7 @@ return CLICKCHAIN_DO_NOT_PROPAGATE /obj/item/holowarrant/update_icon() + . = ..() if(active) icon_state = "holowarrant_filled" else diff --git a/code/game/objects/items/devices/lightreplacer.dm b/code/game/objects/items/devices/lightreplacer.dm index e0cebf5059d3..d9a9bcfeb6f5 100644 --- a/code/game/objects/items/devices/lightreplacer.dm +++ b/code/game/objects/items/devices/lightreplacer.dm @@ -161,9 +161,9 @@ return new_bulbs /obj/item/lightreplacer/update_icon() + . = ..() icon_state = "lightreplacer[emagged]" - /obj/item/lightreplacer/proc/Use(var/mob/user) playsound(src.loc, 'sound/machines/click.ogg', 50, 1) diff --git a/code/game/objects/items/devices/radio/beacon.dm b/code/game/objects/items/devices/radio/beacon.dm index 8ad2c75ccaeb..0340c914df27 100644 --- a/code/game/objects/items/devices/radio/beacon.dm +++ b/code/game/objects/items/devices/radio/beacon.dm @@ -20,6 +20,7 @@ GLOBAL_LIST_BOILERPLATE(all_beacons, /obj/item/radio/beacon) /obj/item/radio/beacon/update_icon() cut_overlays() + . = ..() if(!functioning) add_overlay("[base_icon_state]_malfunction") else diff --git a/code/game/objects/items/devices/radio/intercom.dm b/code/game/objects/items/devices/radio/intercom.dm index ae475848b9bf..fa64ba2b9c35 100644 --- a/code/game/objects/items/devices/radio/intercom.dm +++ b/code/game/objects/items/devices/radio/intercom.dm @@ -33,6 +33,7 @@ CREATE_WALL_MOUNTING_TYPES_SHIFTED(/obj/item/radio/intercom, 28) /obj/item/radio/intercom/update_icon(updates) cut_overlays() + . = ..() if(!on) icon_state = "intercom-p" else diff --git a/code/game/objects/items/devices/radio/jammer.dm b/code/game/objects/items/devices/radio/jammer.dm index 825855051c91..e6592aa6e8ca 100644 --- a/code/game/objects/items/devices/radio/jammer.dm +++ b/code/game/objects/items/devices/radio/jammer.dm @@ -100,6 +100,8 @@ var/global/list/active_radio_jammers = list() to_chat(user,"You insert \the [power_source] into \the [src].") /obj/item/radio_jammer/update_icon() + cut_overlays() + . = ..() if(on) icon_state = active_state else @@ -111,12 +113,9 @@ var/global/list/active_radio_jammers = list() else overlay_percent = 0 - // Only Cut() if we need to. - if(overlay_percent != last_overlay_percent) - cut_overlays() - var/image/I = image(src.icon, src, "jammer_overlay_[overlay_percent]") - add_overlay(I) - last_overlay_percent = overlay_percent + var/image/I = image(src.icon, src, "jammer_overlay_[overlay_percent]") + add_overlay(I) + last_overlay_percent = overlay_percent //Unlimited use, unlimited range jammer for admins. Turn it on, drop it somewhere, it works. /obj/item/radio_jammer/admin diff --git a/code/game/objects/items/devices/scanners_vr.dm b/code/game/objects/items/devices/scanners_vr.dm index 30e29279ffac..1d3c0acd0eb1 100644 --- a/code/game/objects/items/devices/scanners_vr.dm +++ b/code/game/objects/items/devices/scanners_vr.dm @@ -265,9 +265,8 @@ var/global/mob/living/carbon/human/dummy/mannequin/sleevemate_mob return to_chat(usr,"Unable to find that mind in Soulcatcher!") - - /obj/item/sleevemate/update_icon() + . = ..() if(stored_mind) icon_state = "[initial(icon_state)]_on" else diff --git a/code/game/objects/items/devices/t_scanner.dm b/code/game/objects/items/devices/t_scanner.dm index 275015610825..fcd03f85ef30 100644 --- a/code/game/objects/items/devices/t_scanner.dm +++ b/code/game/objects/items/devices/t_scanner.dm @@ -21,6 +21,7 @@ var/global/list/overlay_cache = list() //cache recent overlays /obj/item/t_scanner/update_icon() + . = ..() icon_state = "t-ray[on]" /obj/item/t_scanner/AltClick() diff --git a/code/game/objects/items/glassjar.dm b/code/game/objects/items/glassjar.dm index f118af45063a..edd1fd158641 100644 --- a/code/game/objects/items/glassjar.dm +++ b/code/game/objects/items/glassjar.dm @@ -84,6 +84,7 @@ /obj/item/glass_jar/update_icon() // Also updates name and desc underlays.Cut() cut_overlays() + . = ..() switch(contains) if(0) name = initial(name) diff --git a/code/game/objects/items/id_cards/cards.dm b/code/game/objects/items/id_cards/cards.dm index 3b5d767cf5cc..c530e1f5549e 100644 --- a/code/game/objects/items/id_cards/cards.dm +++ b/code/game/objects/items/id_cards/cards.dm @@ -101,6 +101,7 @@ update_icon() /obj/item/card_fluff/update_icon() + . = ..() if(!sprite_stack || !istype(sprite_stack) || sprite_stack == list("")) icon = base_icon icon_state = initial(icon_state) diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm index 748b839080cb..3a57858b8877 100644 --- a/code/game/objects/items/stacks/medical.dm +++ b/code/game/objects/items/stacks/medical.dm @@ -432,12 +432,7 @@ icon_state = "primitive-splint" amount = 5 -// Begin Citadel Changes - New advanced kit sprites -/obj/item/stack/medical/advanced/Initialize(mapload) - . = ..() - update_icon() - -/obj/item/stack/medical/advanced/update_icon() +/obj/item/stack/medical/advanced/update_icon_state() switch(amount) if(1 to 2) icon_state = initial(icon_state) @@ -451,7 +446,7 @@ icon_state = "[initial(icon_state)]_9" else icon_state = "[initial(icon_state)]_10" -// End Citadel Changes + return ..() //Ashlander Poultices - They basically use the same stack system as ointment and bruise packs. Gotta dupe some of the code since bruise pack/ointment chat messages are too specific. /obj/item/stack/medical/poultice_brute diff --git a/code/game/objects/items/storage/misc_legacy/misc.dm b/code/game/objects/items/storage/misc_legacy/misc.dm index 48f4ee9b52d1..86652e3efac2 100644 --- a/code/game/objects/items/storage/misc_legacy/misc.dm +++ b/code/game/objects/items/storage/misc_legacy/misc.dm @@ -63,9 +63,9 @@ max_combined_volume = WEIGHT_VOLUME_TINY * 6 starts_with = list(/obj/item/reagent_containers/food/snacks/wormsickly = 6) -/obj/item/storage/box/wormcan/sickly/update_icon(var/itemremoved = 0) - if (contents.len == 0) - icon_state = "wormcan_empty_sickly" +/obj/item/storage/box/wormcan/sickly/update_icon_state() + icon_state = length(contents) ? "wormcan_empty_sickly" : "wormcan_sickly" + return ..() /obj/item/storage/box/wormcan/deluxe icon_state = "wormcan_deluxe" diff --git a/code/game/objects/items/storage/misc_legacy/trinket_box.dm b/code/game/objects/items/storage/misc_legacy/trinket_box.dm index ba2c70fc545a..5fd868b2fb25 100644 --- a/code/game/objects/items/storage/misc_legacy/trinket_box.dm +++ b/code/game/objects/items/storage/misc_legacy/trinket_box.dm @@ -18,6 +18,7 @@ /obj/item/storage/trinketbox/update_icon() cut_overlays() + . = ..() if(open) icon_state = open_state diff --git a/code/game/objects/items/weapons/RCD.dm b/code/game/objects/items/weapons/RCD.dm index f1d8b52b6086..12eff7e01ba9 100644 --- a/code/game/objects/items/weapons/RCD.dm +++ b/code/game/objects/items/weapons/RCD.dm @@ -473,6 +473,7 @@ update_icon() /obj/effect/constructing_effect/update_icon() + . = ..() icon_state = "rcd" if (delay < 10) icon_state += "_shortest" diff --git a/code/game/objects/items/weapons/candle.dm b/code/game/objects/items/weapons/candle.dm index ff782b211ee9..ae5bc7ee4456 100644 --- a/code/game/objects/items/weapons/candle.dm +++ b/code/game/objects/items/weapons/candle.dm @@ -104,6 +104,7 @@ wax = 20000 /obj/item/flame/candle/candelabra/update_icon() + . = ..() if(wax == 0) icon_state = "candelabra_melted" else diff --git a/code/game/objects/items/weapons/flamethrower.dm b/code/game/objects/items/weapons/flamethrower.dm index eaaaa9069fcd..9f649d070145 100644 --- a/code/game/objects/items/weapons/flamethrower.dm +++ b/code/game/objects/items/weapons/flamethrower.dm @@ -45,6 +45,7 @@ /obj/item/flamethrower/update_icon() cut_overlays() + . = ..() var/list/overlays_to_add = list() if(igniter) @@ -59,8 +60,6 @@ add_overlay(overlays_to_add) - return - /obj/item/flamethrower/afterattack(atom/target, mob/user, clickchain_flags, list/params) if(!(clickchain_flags & CLICKCHAIN_HAS_PROXIMITY)) return // Make sure our user is still holding us diff --git a/code/game/objects/items/weapons/grenades/supermatter.dm b/code/game/objects/items/weapons/grenades/supermatter.dm index d63c30e26a52..cc194536a677 100644 --- a/code/game/objects/items/weapons/grenades/supermatter.dm +++ b/code/game/objects/items/weapons/grenades/supermatter.dm @@ -20,6 +20,7 @@ /obj/item/grenade/supermatter/update_icon() cut_overlays() + . = ..() if(implode_at) add_overlay(image(icon = 'icons/rust.dmi', icon_state = "emfield_s1")) diff --git a/code/game/objects/items/weapons/material/ashtray.dm b/code/game/objects/items/weapons/material/ashtray.dm index 9c5552e072f8..01ddebf4bb40 100644 --- a/code/game/objects/items/weapons/material/ashtray.dm +++ b/code/game/objects/items/weapons/material/ashtray.dm @@ -20,6 +20,7 @@ var/global/list/ashtray_cache = list() color = null cut_overlays() + . = ..() var/datum/prototype/material/material = get_primary_material() var/list/overlays_to_add = list() diff --git a/code/game/objects/items/weapons/material/chainsaw.dm b/code/game/objects/items/weapons/material/chainsaw.dm index f59a85b91aa6..96403f333e51 100644 --- a/code/game/objects/items/weapons/material/chainsaw.dm +++ b/code/game/objects/items/weapons/material/chainsaw.dm @@ -107,6 +107,7 @@ return(BRUTELOSS) /obj/item/chainsaw/update_icon() + . = ..() if(on) icon_state = "chainsaw1" item_state = "chainsaw1" @@ -160,6 +161,7 @@ update_icon() /obj/item/chainsaw/chainsword/update_icon() + . = ..() if(on) icon_state = "chainsword1" item_state = "chainsword1" diff --git a/code/game/objects/items/weapons/material/twohanded.dm b/code/game/objects/items/weapons/material/twohanded.dm index 027a90f6b4d9..851f42171367 100644 --- a/code/game/objects/items/weapons/material/twohanded.dm +++ b/code/game/objects/items/weapons/material/twohanded.dm @@ -54,6 +54,7 @@ update_icon() /obj/item/material/twohanded/update_icon() + . = ..() icon_state = "[base_icon][wielded]" item_state = icon_state diff --git a/code/game/objects/items/weapons/stunbaton.dm b/code/game/objects/items/weapons/stunbaton.dm index 4a05db8d2370..6129f952413c 100644 --- a/code/game/objects/items/weapons/stunbaton.dm +++ b/code/game/objects/items/weapons/stunbaton.dm @@ -63,6 +63,7 @@ update_icon() /obj/item/melee/baton/update_icon() + . = ..() if(status) icon_state = "[initial(icon_state)]_active" else if(!bcell) diff --git a/code/game/objects/structures/bonfire.dm b/code/game/objects/structures/bonfire.dm index e014dc527dfc..76d39175bc39 100644 --- a/code/game/objects/structures/bonfire.dm +++ b/code/game/objects/structures/bonfire.dm @@ -200,6 +200,7 @@ /obj/structure/bonfire/update_icon() cut_overlays() + . = ..() var/list/overlays_to_add = list() if(burning) var/state @@ -373,6 +374,7 @@ /obj/structure/fireplace/update_icon() cut_overlays() + . = ..() if(burning) var/state switch(get_fuel_amount()) diff --git a/code/game/objects/structures/coathanger.dm b/code/game/objects/structures/coathanger.dm index 3c7e21c9f3a4..45a93625c590 100644 --- a/code/game/objects/structures/coathanger.dm +++ b/code/game/objects/structures/coathanger.dm @@ -46,6 +46,7 @@ /obj/structure/coatrack/update_icon() cut_overlays() + . = ..() var/list/overlays_to_add = list() if (istype(coat, /obj/item/clothing/suit/storage/toggle/labcoat)) diff --git a/code/game/objects/structures/fireaxe.dm b/code/game/objects/structures/fireaxe.dm index 994b2e183976..09a66d6890bd 100644 --- a/code/game/objects/structures/fireaxe.dm +++ b/code/game/objects/structures/fireaxe.dm @@ -180,6 +180,7 @@ return /obj/structure/fireaxecabinet/update_icon() //Template: fireaxe[has fireaxe][is opened][hits taken][is smashed]. If you want the opening or closing animations, add "opening" or "closing" right after the numbers + . = ..() hasaxe = 0 if(fireaxe) hasaxe = 1 From 46ba07c9357950ff0e72bc5075928b66b42b3581 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Thu, 9 Jan 2025 09:44:59 -0500 Subject: [PATCH 07/13] that --- citadel.dme | 1 - .../crates_lockers/closets/secure/cargo.dm | 2 +- .../mining/excavation/mineral_effect.dm | 31 ------------------- code/modules/mining/mine_turfs.dm | 1 + maps/sectors/surt/levels/surt_west.dmm | 4 +-- 5 files changed, 4 insertions(+), 35 deletions(-) delete mode 100644 code/modules/mining/excavation/mineral_effect.dm diff --git a/citadel.dme b/citadel.dme index 897ce810808c..43dc20466b84 100644 --- a/citadel.dme +++ b/citadel.dme @@ -3562,7 +3562,6 @@ #include "code\modules\mining\drilling\drill.dm" #include "code\modules\mining\drilling\scanner.dm" #include "code\modules\mining\excavation\mine_outcrops.dm" -#include "code\modules\mining\excavation\mineral_effect.dm" #include "code\modules\mining\machinery\machine_input_output_plates.dm" #include "code\modules\mining\machinery\machine_processing.dm" #include "code\modules\mining\machinery\machine_stacking.dm" diff --git a/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm b/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm index 230c31e311ca..e503fe23d88e 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm @@ -82,7 +82,7 @@ /obj/item/mining_scanner, /obj/item/gps/mining, /obj/item/survivalcapsule, - /obj/item/clothing/glasses/material, + /obj/item/clothing/glasses/meson, /obj/item/clothing/suit/storage/hooded/miner, /obj/item/clothing/suit/storage/hooded/wintercoat/miner, /obj/item/clothing/shoes/boots/winter/mining, diff --git a/code/modules/mining/excavation/mineral_effect.dm b/code/modules/mining/excavation/mineral_effect.dm deleted file mode 100644 index a39be6d0c3f5..000000000000 --- a/code/modules/mining/excavation/mineral_effect.dm +++ /dev/null @@ -1,31 +0,0 @@ -/obj/effect/mineral - name = "mineral vein" - icon = 'icons/obj/mining.dmi' - desc = "Shiny." - mouse_opacity = 0 - density = 0 - anchored = 1 - var/ore_key - var/image/scanner_image - -// taemp check -/obj/effect/mineral/New(loc, datum/ore/O) - . = ..() - ASSERT(O) - -/obj/effect/mineral/Initialize(mapload, datum/ore/M) - . = ..() - name = "[M.display_name] deposit" - ore_key = M.name - icon_state = "rock_[ore_key]" - var/turf/T = get_turf(src) - layer = T.layer+0.1 - -/obj/effect/mineral/proc/get_scan_overlay() - if(!scanner_image) - var/datum/ore/O = GLOB.ore_data[ore_key] - if(O) - scanner_image = image(icon, loc = get_turf(src), icon_state = (O.scan_icon ? O.scan_icon : icon_state)) - else - to_chat(world, "No ore data for [src]!") - return scanner_image diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm index 2e96f06da075..c1d905427a89 100644 --- a/code/modules/mining/mine_turfs.dm +++ b/code/modules/mining/mine_turfs.dm @@ -212,6 +212,7 @@ CREATE_STANDARD_TURFS(/turf/simulated/mineral/icerock/floor/ignore_cavegen) . += mutable_appearance(arch_icon, archaeo_overlay) if(excav_overlay) . += mutable_appearance(arch_icon, excav_overlay) + if(mineral) //We are a sand floor else diff --git a/maps/sectors/surt/levels/surt_west.dmm b/maps/sectors/surt/levels/surt_west.dmm index 2c7c480c7d07..b49cb8440f0f 100644 --- a/maps/sectors/surt/levels/surt_west.dmm +++ b/maps/sectors/surt/levels/surt_west.dmm @@ -1465,7 +1465,7 @@ req_one_access = list(48); name = "Mining Storage" }, -/obj/item/clothing/glasses/material, +/obj/item/clothing/glasses/meson, /turf/simulated/floor/tiled, /area/sector/surt/mining_base/common) "Hr" = ( @@ -2179,7 +2179,7 @@ req_one_access = list(48); name = "Mining Storage" }, -/obj/item/clothing/glasses/material, +/obj/item/clothing/glasses/meson, /turf/simulated/floor/tiled, /area/sector/surt/mining_base/common) "Wy" = ( From 7092d388afebb42746a384ad84bef2d22c5953aa Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Thu, 9 Jan 2025 19:47:19 +0000 Subject: [PATCH 08/13] that --- citadel.dme | 9 +++--- .../automata/{__automata.dm => automata.dm} | 0 .../modules/automata/{ => types}/explosion.dm | 0 code/modules/automata/{ => types}/sonar.dm | 0 .../automata/{_wave.dm => types/wave.dm} | 0 .../mining/excavation/mineral_effect.dm | 31 ------------------- code/modules/mining/mine_turfs.dm | 24 +++----------- code/modules/rogueminer_vr/zonemaster.dm | 13 ++++---- 8 files changed, 15 insertions(+), 62 deletions(-) rename code/modules/automata/{__automata.dm => automata.dm} (100%) rename code/modules/automata/{ => types}/explosion.dm (100%) rename code/modules/automata/{ => types}/sonar.dm (100%) rename code/modules/automata/{_wave.dm => types/wave.dm} (100%) delete mode 100644 code/modules/mining/excavation/mineral_effect.dm diff --git a/citadel.dme b/citadel.dme index 897ce810808c..22961be00249 100644 --- a/citadel.dme +++ b/citadel.dme @@ -2477,10 +2477,10 @@ #include "code\modules\atmospherics\machinery\portable\powered.dm" #include "code\modules\atmospherics\machinery\portable\pump.dm" #include "code\modules\atmospherics\machinery\portable\scrubber.dm" -#include "code\modules\automata\__automata.dm" -#include "code\modules\automata\_wave.dm" -#include "code\modules\automata\explosion.dm" -#include "code\modules\automata\sonar.dm" +#include "code\modules\automata\automata.dm" +#include "code\modules\automata\types\explosion.dm" +#include "code\modules\automata\types\sonar.dm" +#include "code\modules\automata\types\wave.dm" #include "code\modules\awaymissions\bluespaceartillery.dm" #include "code\modules\awaymissions\corpse.dm" #include "code\modules\awaymissions\exile.dm" @@ -3562,7 +3562,6 @@ #include "code\modules\mining\drilling\drill.dm" #include "code\modules\mining\drilling\scanner.dm" #include "code\modules\mining\excavation\mine_outcrops.dm" -#include "code\modules\mining\excavation\mineral_effect.dm" #include "code\modules\mining\machinery\machine_input_output_plates.dm" #include "code\modules\mining\machinery\machine_processing.dm" #include "code\modules\mining\machinery\machine_stacking.dm" diff --git a/code/modules/automata/__automata.dm b/code/modules/automata/automata.dm similarity index 100% rename from code/modules/automata/__automata.dm rename to code/modules/automata/automata.dm diff --git a/code/modules/automata/explosion.dm b/code/modules/automata/types/explosion.dm similarity index 100% rename from code/modules/automata/explosion.dm rename to code/modules/automata/types/explosion.dm diff --git a/code/modules/automata/sonar.dm b/code/modules/automata/types/sonar.dm similarity index 100% rename from code/modules/automata/sonar.dm rename to code/modules/automata/types/sonar.dm diff --git a/code/modules/automata/_wave.dm b/code/modules/automata/types/wave.dm similarity index 100% rename from code/modules/automata/_wave.dm rename to code/modules/automata/types/wave.dm diff --git a/code/modules/mining/excavation/mineral_effect.dm b/code/modules/mining/excavation/mineral_effect.dm deleted file mode 100644 index a39be6d0c3f5..000000000000 --- a/code/modules/mining/excavation/mineral_effect.dm +++ /dev/null @@ -1,31 +0,0 @@ -/obj/effect/mineral - name = "mineral vein" - icon = 'icons/obj/mining.dmi' - desc = "Shiny." - mouse_opacity = 0 - density = 0 - anchored = 1 - var/ore_key - var/image/scanner_image - -// taemp check -/obj/effect/mineral/New(loc, datum/ore/O) - . = ..() - ASSERT(O) - -/obj/effect/mineral/Initialize(mapload, datum/ore/M) - . = ..() - name = "[M.display_name] deposit" - ore_key = M.name - icon_state = "rock_[ore_key]" - var/turf/T = get_turf(src) - layer = T.layer+0.1 - -/obj/effect/mineral/proc/get_scan_overlay() - if(!scanner_image) - var/datum/ore/O = GLOB.ore_data[ore_key] - if(O) - scanner_image = image(icon, loc = get_turf(src), icon_state = (O.scan_icon ? O.scan_icon : icon_state)) - else - to_chat(world, "No ore data for [src]!") - return scanner_image diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm index 2e96f06da075..c70b559a816c 100644 --- a/code/modules/mining/mine_turfs.dm +++ b/code/modules/mining/mine_turfs.dm @@ -181,10 +181,9 @@ CREATE_STANDARD_TURFS(/turf/simulated/mineral/icerock/floor/ignore_cavegen) if(prob(20)) overlay_detail = "asteroid[rand(0,9)]" if(mineral) + update_icon() if(density) MineralSpread() - else - UpdateMineral() // this'll work because we're initialized /* custom smoothing code */ /turf/simulated/mineral/find_type_in_direction(direction) @@ -288,22 +287,15 @@ CREATE_STANDARD_TURFS(/turf/simulated/mineral/icerock/floor/ignore_cavegen) M.selected.action(src) /turf/simulated/mineral/proc/MineralSpread() - UpdateMineral() if(mineral && mineral.spread) for(var/trydir in GLOB.cardinal) if(prob(mineral.spread_chance)) var/turf/simulated/mineral/target_turf = get_step(src, trydir) if(istype(target_turf) && target_turf.density && !target_turf.mineral) target_turf.mineral = mineral + target_turf.update_icon() target_turf.MineralSpread() -/turf/simulated/mineral/proc/UpdateMineral(update_neighbors) - if(!(atom_flags & ATOM_INITIALIZED)) - return // /Initialize() will handle us - clear_ore_effects() - if(mineral && density) - new /obj/effect/mineral(src, mineral) - //Not even going to touch this pile of spaghetti /turf/simulated/mineral/attackby(obj/item/W as obj, mob/user as mob) @@ -571,15 +563,10 @@ CREATE_STANDARD_TURFS(/turf/simulated/mineral/icerock/floor/ignore_cavegen) if(updateIcon) update_appearance() -/turf/simulated/mineral/proc/clear_ore_effects() - for(var/obj/effect/mineral/M in contents) - qdel(M) - -/turf/simulated/mineral/proc/DropMineral(var/amount) +/turf/simulated/mineral/proc/DropMineral(amount) if(!mineral) return - clear_ore_effects() - var/obj/item/stack/ore/O = new mineral.ore(src,amount) + var/obj/item/stack/ore/O = new mineral.ore(src, amount) return O /turf/simulated/mineral/proc/excavate_turf() @@ -600,7 +587,6 @@ CREATE_STANDARD_TURFS(/turf/simulated/mineral/icerock/floor/ignore_cavegen) GetDrilled(0) else GetDrilled(1) - return /turf/simulated/mineral/proc/GetDrilled(var/artifact_fail = 0) @@ -712,4 +698,4 @@ CREATE_STANDARD_TURFS(/turf/simulated/mineral/icerock/floor/ignore_cavegen) if(mineral_name && (mineral_name in GLOB.ore_data)) mineral = GLOB.ore_data[mineral_name] if(atom_flags & ATOM_INITIALIZED) - UpdateMineral() + update_icon() diff --git a/code/modules/rogueminer_vr/zonemaster.dm b/code/modules/rogueminer_vr/zonemaster.dm index aa9d20d5cc82..9bc9942264ea 100644 --- a/code/modules/rogueminer_vr/zonemaster.dm +++ b/code/modules/rogueminer_vr/zonemaster.dm @@ -336,13 +336,12 @@ // Ore-bearing rocks that were mined for(var/turf/T in mineral_rocks) - var/has_minerals = 0 - for(var/atom/I in T.contents) - if(istype(I,/obj/effect/mineral)) - has_minerals++ - break - if(has_minerals == 0) - tally += RM_DIFF_VALUE_ORE + if(!istype(T, /turf/simulated/mineral)) + var/turf/simulated/mineral/mine_turf = T + if(mine_turf.mineral) + continue + // no mineral.. + tally += RM_DIFF_VALUE_ORE mineral_rocks.Cut() // For good measure, to prevent rescoring. From 4cbf7f940f6ccdcede2383272d8f6574bd87efb5 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Thu, 9 Jan 2025 21:17:54 +0000 Subject: [PATCH 09/13] that --- code/modules/mining/mine_turfs.dm | 13 +++++++++---- icons/modules/mining/ore_overlay.dmi | Bin 0 -> 9377 bytes icons/obj/mining.dmi | Bin 107983 -> 92043 bytes 3 files changed, 9 insertions(+), 4 deletions(-) create mode 100644 icons/modules/mining/ore_overlay.dmi diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm index e7558189e4e9..e16c7eece626 100644 --- a/code/modules/mining/mine_turfs.dm +++ b/code/modules/mining/mine_turfs.dm @@ -196,6 +196,7 @@ CREATE_STANDARD_TURFS(/turf/simulated/mineral/icerock/floor/ignore_cavegen) cut_overlays() . = ..() + var/list/to_add = list() //We are a wall (why does this system work like this??) // todo: refactor this shitheap because this is pants on fucking head awful if(density) @@ -208,10 +209,11 @@ CREATE_STANDARD_TURFS(/turf/simulated/mineral/icerock/floor/ignore_cavegen) // icon_state = rock_icon_state if(archaeo_overlay) - . += mutable_appearance(arch_icon, archaeo_overlay) + to_add += mutable_appearance(arch_icon, archaeo_overlay) if(excav_overlay) - . += mutable_appearance(arch_icon, excav_overlay) + to_add += mutable_appearance(arch_icon, excav_overlay) if(mineral) + to_add += image('icons/modules/mining/ore_overlay.dmi', "rock_[mineral.name]") //We are a sand floor else @@ -220,9 +222,12 @@ CREATE_STANDARD_TURFS(/turf/simulated/mineral/icerock/floor/ignore_cavegen) icon_state = sand_icon_state if(sand_dug) - . += mutable_appearance(icon, "dug_overlay") + to_add += mutable_appearance(icon, "dug_overlay") if(overlay_detail) - . += mutable_appearance('icons/turf/flooring/decals.dmi', overlay_detail) + to_add += mutable_appearance('icons/turf/flooring/decals.dmi', overlay_detail) + + if(length(to_add)) + add_overlay(to_add) /turf/simulated/mineral/legacy_ex_act(severity) diff --git a/icons/modules/mining/ore_overlay.dmi b/icons/modules/mining/ore_overlay.dmi new file mode 100644 index 0000000000000000000000000000000000000000..ab494eb8a3aee61941b7b2028c35fef1fc217253 GIT binary patch literal 9377 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 literal 0 HcmV?d00001 diff --git a/icons/obj/mining.dmi b/icons/obj/mining.dmi index 49db5abafc5b87c9bc61273f37d94754b399f90d..6b24c51d56a09e1c6d057f8b257cfb54ffe92f45 100644 GIT binary patch literal 92043 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%0DKwfderxolu(z{E`?cU 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 OyMEQ=$~!#=-2VXT`J?Ut literal 107983 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

FB|(FO#F@*n%?=UDb^^vtS&m0p3A-_*&Ht2 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

8vYKkh`Mm4Tq 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 From cc813f80cb48d9dbf9a3e101452fea933152f7e4 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Thu, 9 Jan 2025 21:18:14 +0000 Subject: [PATCH 10/13] nameless state just in case --- icons/modules/mining/ore_overlay.dmi | Bin 9377 -> 9502 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/modules/mining/ore_overlay.dmi b/icons/modules/mining/ore_overlay.dmi index ab494eb8a3aee61941b7b2028c35fef1fc217253..0ed15d3898024b8da84066eacf8f0ebc5b96330d 100644 GIT binary patch literal 9502 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 literal 9377 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 From 29285ad5af28ddde28c3d60ed3d427c68e133351 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Fri, 10 Jan 2025 10:17:47 -0500 Subject: [PATCH 11/13] Fixes --- citadel.dme | 2 +- code/__DEFINES/icon_smoothing.dm | 1 - code/game/atoms/{atom_vv.dm => atom-vv.dm} | 8 ++++++++ code/game/machinery/computer/aifixer.dm | 13 +++++++------ code/game/machinery/computer/computer.dm | 4 +++- code/game/objects/structures/tables/defense.dm | 4 ++-- code/modules/mining/mine_turfs.dm | 7 +++++-- code/modules/rogueminer_vr/zonemaster.dm | 1 + 8 files changed, 27 insertions(+), 13 deletions(-) rename code/game/atoms/{atom_vv.dm => atom-vv.dm} (98%) diff --git a/citadel.dme b/citadel.dme index 22961be00249..8c89a700a216 100644 --- a/citadel.dme +++ b/citadel.dme @@ -1066,7 +1066,7 @@ #include "code\game\atoms\atom-defense.dm" #include "code\game\atoms\atom-examine.dm" #include "code\game\atoms\atom-logging.dm" -#include "code\game\atoms\atom_vv.dm" +#include "code\game\atoms\atom-vv.dm" #include "code\game\atoms\atoms_initializing_EXPENSIVE.dm" #include "code\game\atoms\buckling.dm" #include "code\game\atoms\defense_old.dm" diff --git a/code/__DEFINES/icon_smoothing.dm b/code/__DEFINES/icon_smoothing.dm index 69c30a577fb1..559c60888efc 100644 --- a/code/__DEFINES/icon_smoothing.dm +++ b/code/__DEFINES/icon_smoothing.dm @@ -26,7 +26,6 @@ DEFINE_BITFIELD(smoothing_flags, list( #define QUEUE_SMOOTH(thing_to_queue) if(IS_SMOOTH(thing_to_queue)) {SSicon_smooth.add_to_queue(thing_to_queue)} #define QUEUE_SMOOTH_NEIGHBORS(thing_to_queue) for(var/neighbor in orange(1, thing_to_queue)) {var/atom/atom_neighbor = neighbor; QUEUE_SMOOTH(atom_neighbor)} - //! Smoothing Internals #define NORTH_JUNCTION (1<<0) // NORTH diff --git a/code/game/atoms/atom_vv.dm b/code/game/atoms/atom-vv.dm similarity index 98% rename from code/game/atoms/atom_vv.dm rename to code/game/atoms/atom-vv.dm index d056489f6dd9..1ec689354fe9 100644 --- a/code/game/atoms/atom_vv.dm +++ b/code/game/atoms/atom-vv.dm @@ -245,3 +245,11 @@ else return debug_variable(NAMEOF(src, base_layer), base_layer, 0, src) return ..() + +/** + * VV wrapper, do not use. + */ +/atom/proc/vv_queue_smooth() + PRIVATE_PROC(TRUE) + QUEUE_SMOOTH(src) + QUEUE_SMOOTH_NEIGHBORS(src) diff --git a/code/game/machinery/computer/aifixer.dm b/code/game/machinery/computer/aifixer.dm index 43b425dfcfa8..eb7237046fac 100644 --- a/code/game/machinery/computer/aifixer.dm +++ b/code/game/machinery/computer/aifixer.dm @@ -115,18 +115,19 @@ if(oldstat != occupier.stat) update_icon() -/obj/machinery/computer/aifixer/update_icon() - . = ..() +/obj/machinery/computer/aifixer/make_legacy_overlays() + var/list/to_add_overlays = list() if(machine_stat & (NOPOWER|BROKEN)) return if(restoring) - . += "ai-fixer-on" + to_add_overlays += "ai-fixer-on" if (occupier) switch (occupier.stat) if (CONSCIOUS) - . += "ai-fixer-full" + to_add_overlays += "ai-fixer-full" if (UNCONSCIOUS) - . += "ai-fixer-404" + to_add_overlays += "ai-fixer-404" else - . += "ai-fixer-empty" + to_add_overlays += "ai-fixer-empty" + add_overlay(to_add_overlays) diff --git a/code/game/machinery/computer/computer.dm b/code/game/machinery/computer/computer.dm index deb4d3f407d8..583df96c81fb 100644 --- a/code/game/machinery/computer/computer.dm +++ b/code/game/machinery/computer/computer.dm @@ -40,7 +40,9 @@ /obj/machinery/computer/update_icon() cut_overlays() . = ..() + make_legacy_overlays() +/obj/machinery/computer/proc/make_legacy_overlays() var/list/to_add_overlays = list() // Connecty //TODO: Use TG Smoothing. @@ -72,7 +74,7 @@ //. += emissive_appearance(icon, overlay_state) playsound(src, 'sound/machines/terminal_on.ogg', 50, 1) - add_overlay(.) + add_overlay(to_add_overlays) /obj/machinery/computer/power_change() ..() diff --git a/code/game/objects/structures/tables/defense.dm b/code/game/objects/structures/tables/defense.dm index 856ffe96aece..4c02505208ed 100644 --- a/code/game/objects/structures/tables/defense.dm +++ b/code/game/objects/structures/tables/defense.dm @@ -9,11 +9,11 @@ new carpeted_type(where) else if(prob(20)) - material_reinforcing.place_sheet(where, 1) + material_reinforcing?.place_sheet(where, 1) else material_reinforcing?.place_shard(where) if(prob(20)) - material_base.place_sheet(where, 1) + material_base?.place_sheet(where, 1) else material_base?.place_shard(where) new /obj/item/stack/rods(where, 2) diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm index e16c7eece626..028ee8e5a6b6 100644 --- a/code/modules/mining/mine_turfs.dm +++ b/code/modules/mining/mine_turfs.dm @@ -12,8 +12,8 @@ CREATE_STANDARD_TURFS(/turf/simulated/mineral) color = COLOR_ASTEROID_ROCK smoothing_flags = SMOOTH_BITMASK - smoothing_groups = (SMOOTH_GROUP_WALLS+SMOOTH_GROUP_MINERAL_WALLS) - canSmoothWith = (SMOOTH_GROUP_WALLS + SMOOTH_GROUP_CLOSED_TURFS+SMOOTH_GROUP_MINERAL_WALLS) + smoothing_groups = (SMOOTH_GROUP_WALLS + SMOOTH_GROUP_MINERAL_WALLS) + canSmoothWith = (SMOOTH_GROUP_WALLS + SMOOTH_GROUP_CLOSED_TURFS + SMOOTH_GROUP_MINERAL_WALLS) var/sand_icon = 'icons/turf/flooring/asteroid.dmi' var/rock_side_icon_state = "rock_side" @@ -151,6 +151,7 @@ CREATE_STANDARD_TURFS(/turf/simulated/mineral/icerock/floor/ignore_cavegen) queue_zone_update() QUEUE_SMOOTH(src) QUEUE_SMOOTH_NEIGHBORS(src) + update_icon() /turf/simulated/mineral/proc/make_wall() if(density && opacity) @@ -166,6 +167,7 @@ CREATE_STANDARD_TURFS(/turf/simulated/mineral/icerock/floor/ignore_cavegen) queue_zone_update() QUEUE_SMOOTH(src) QUEUE_SMOOTH_NEIGHBORS(src) + update_icon() /turf/simulated/mineral/Entered(atom/movable/M as mob|obj) ..() @@ -606,6 +608,7 @@ CREATE_STANDARD_TURFS(/turf/simulated/mineral/icerock/floor/ignore_cavegen) if (mineral && mineral.result_amount) //if the turf has already been excavated, some of it's ore has been removed DropMineral(mineral.result_amount - mined_ore) + mineral = null //destroyed artifacts have weird, unpleasant effects //make sure to destroy them before changing the turf though diff --git a/code/modules/rogueminer_vr/zonemaster.dm b/code/modules/rogueminer_vr/zonemaster.dm index 9bc9942264ea..298646947306 100644 --- a/code/modules/rogueminer_vr/zonemaster.dm +++ b/code/modules/rogueminer_vr/zonemaster.dm @@ -337,6 +337,7 @@ // Ore-bearing rocks that were mined for(var/turf/T in mineral_rocks) if(!istype(T, /turf/simulated/mineral)) + continue var/turf/simulated/mineral/mine_turf = T if(mine_turf.mineral) continue From edb17bb102d530ca8289a5580ae241a8a0d71249 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Fri, 10 Jan 2025 11:13:57 -0500 Subject: [PATCH 12/13] that --- code/modules/mining/mine_turfs.dm | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm index 028ee8e5a6b6..fbce90f22a2b 100644 --- a/code/modules/mining/mine_turfs.dm +++ b/code/modules/mining/mine_turfs.dm @@ -137,6 +137,7 @@ CREATE_STANDARD_TURFS(/turf/simulated/mineral/icerock/floor/ignore_cavegen) /turf/simulated/mineral/floor/icerock/airmix initial_gas_mix = GAS_STRING_STP +// todo: don't make this the same /turf path, it doesn't make semantic sense /turf/simulated/mineral/proc/make_floor() if(!density && !opacity) return @@ -149,10 +150,15 @@ CREATE_STANDARD_TURFS(/turf/simulated/mineral/icerock/floor/ignore_cavegen) can_build_into_floor = TRUE //SSplanets.addTurf(src) // Thank you Silicons, this was causing underground areas to have weather effects in them - Bloop queue_zone_update() - QUEUE_SMOOTH(src) - QUEUE_SMOOTH_NEIGHBORS(src) + smoothing_groups = null + canSmoothWith = null + if(atom_flags & ATOM_INITIALIZED) + SETUP_SMOOTHING() + QUEUE_SMOOTH(src) + QUEUE_SMOOTH_NEIGHBORS(src) update_icon() +// todo: don't make this the same /turf path, it doesn't make semantic sense /turf/simulated/mineral/proc/make_wall() if(density && opacity) return @@ -165,8 +171,12 @@ CREATE_STANDARD_TURFS(/turf/simulated/mineral/icerock/floor/ignore_cavegen) can_build_into_floor = FALSE //SSplanets.removeTurf(src) // Thank you Silicons, this was causing underground areas to have weather effects in them as well -Bloop queue_zone_update() - QUEUE_SMOOTH(src) - QUEUE_SMOOTH_NEIGHBORS(src) + smoothing_groups = (SMOOTH_GROUP_WALLS + SMOOTH_GROUP_MINERAL_WALLS) + canSmoothWith = (SMOOTH_GROUP_WALLS + SMOOTH_GROUP_CLOSED_TURFS + SMOOTH_GROUP_MINERAL_WALLS) + if(atom_flags & ATOM_INITIALIZED) + SETUP_SMOOTHING() + QUEUE_SMOOTH(src) + QUEUE_SMOOTH_NEIGHBORS(src) update_icon() /turf/simulated/mineral/Entered(atom/movable/M as mob|obj) From f2c49850bae95d9c2d7a81a636ce807ae97ff9ed Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Fri, 10 Jan 2025 15:01:05 -0500 Subject: [PATCH 13/13] Fix --- code/game/machinery/doors/airlock/airlock.dm | 37 ++++++++++++++++---- code/game/machinery/doors/door.dm | 4 +-- 2 files changed, 32 insertions(+), 9 deletions(-) diff --git a/code/game/machinery/doors/airlock/airlock.dm b/code/game/machinery/doors/airlock/airlock.dm index 868259b075fa..02249fca8ab7 100644 --- a/code/game/machinery/doors/airlock/airlock.dm +++ b/code/game/machinery/doors/airlock/airlock.dm @@ -499,9 +499,9 @@ About the new airlock wires panel: return 0 -/obj/machinery/door/airlock/update_icon(var/doorstate) +/obj/machinery/door/airlock/update_icon() . = ..() - switch(doorstate) + switch(state) if(AIRLOCK_OPEN) icon_state = "open" if(AIRLOCK_CLOSED) @@ -514,28 +514,43 @@ About the new airlock wires panel: /obj/machinery/door/airlock/custom_smooth() return //we only custom smooth because we don't need to do anything else. +// todo: Rework everything, fucks sakes /obj/machinery/door/airlock/do_animate(animation) switch(animation) if(DOOR_ANIMATION_OPEN) set_airlock_overlays(AIRLOCK_OPENING) flick("opening", src)//[stat ? "_stat":] - update_icon(AIRLOCK_OPEN) + state = AIRLOCK_OPENING + update_icon() if(DOOR_ANIMATION_CLOSE) set_airlock_overlays(AIRLOCK_CLOSING) flick("closing", src) - update_icon(AIRLOCK_CLOSED) + state = AIRLOCK_CLOSING + update_icon() if(DOOR_ANIMATION_DENY) set_airlock_overlays(AIRLOCK_DENY) if(density && arePowerSystemsOn()) flick("deny", src) if(speaker) playsound(loc, denied_sound, 50, 0) - update_icon(AIRLOCK_CLOSED) + var/old_state = state + state = AIRLOCK_DENY + update_icon() + state = old_state + spawn(3) + update_icon() if(DOOR_ANIMATION_EMAG) set_airlock_overlays(AIRLOCK_EMAG) if(density && arePowerSystemsOn()) flick("deny", src) + var/old_state = state + state = AIRLOCK_EMAG + update_icon() + state = old_state + spawn(3) + update_icon() else + state = AIRLOCK_EMAG update_icon() /obj/machinery/door/airlock/attack_ai(mob/user as mob) @@ -891,7 +906,11 @@ About the new airlock wires panel: if(src.closeOther != null && istype(src.closeOther, /obj/machinery/door/airlock/) && !src.closeOther.density) src.closeOther.close() - return ..() + . = ..() + if(!.) + return + state = AIRLOCK_OPEN + update_icon() /obj/machinery/door/airlock/close(var/forced=0) if(!can_close(forced)) @@ -922,7 +941,11 @@ About the new airlock wires panel: var/obj/structure/window/killthis = (locate(/obj/structure/window) in turf) if(killthis) LEGACY_EX_ACT(killthis, 2, null)//Smashin windows - return ..() + . = ..() + if(!.) + return + state = AIRLOCK_CLOSED + update_icon() /obj/machinery/door/airlock/set_opacity_on_close() if(visible) diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index 8d3b7b45d54e..70693a9aafa8 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -325,7 +325,7 @@ do_animate(DOOR_ANIMATION_OPEN) set_opacity(0) sleep(3) - src.density = 0 + set_density(FALSE) update_nearby_tiles() sleep(7) src.layer = open_layer @@ -351,7 +351,7 @@ close_door_at = 0 do_animate(DOOR_ANIMATION_CLOSE) sleep(3) - src.density = 1 + set_density(TRUE) explosion_resistance = initial(explosion_resistance) src.layer = closed_layer update_nearby_tiles()