From 18ab9035cccabc3908215e9cdf21b86955c77053 Mon Sep 17 00:00:00 2001 From: DreamySkrell <107256943+DreamySkrell@users.noreply.github.com> Date: Thu, 13 Aug 2026 16:20:57 +0000 Subject: [PATCH] Door paint markers (#23045) changes: - rscadd: "Door paint markers." --------- Co-authored-by: DreamySkrell <> --- aurorastation.dme | 1 + .../structures/machinery/doors/airlock.dm | 2 - .../effects/map_effects/marker/door_paint.dm | 172 ++++++++++++++++++ .../DreamySkrell-door-paint-marker.yml | 58 ++++++ icons/effects/map_effects.dmi | Bin 30211 -> 30322 bytes 5 files changed, 231 insertions(+), 2 deletions(-) create mode 100644 code/modules/effects/map_effects/marker/door_paint.dm create mode 100644 html/changelogs/DreamySkrell-door-paint-marker.yml diff --git a/aurorastation.dme b/aurorastation.dme index 84cfb892b73..87320edaab9 100644 --- a/aurorastation.dme +++ b/aurorastation.dme @@ -2340,6 +2340,7 @@ #include "code\modules\effects\map_effects\marker\airlock_docking.dm" #include "code\modules\effects\map_effects\marker\airlock_helper.dm" #include "code\modules\effects\map_effects\marker\airlock_shuttle.dm" +#include "code\modules\effects\map_effects\marker\door_paint.dm" #include "code\modules\effects\map_effects\marker\large_tank.dm" #include "code\modules\effects\map_effects\marker\mapmanip.dm" #include "code\modules\effects\maze_generation\maze_generator.dm" diff --git a/code/game/objects/structures/machinery/doors/airlock.dm b/code/game/objects/structures/machinery/doors/airlock.dm index 5d6afcd57e2..1bfe35140dd 100644 --- a/code/game/objects/structures/machinery/doors/airlock.dm +++ b/code/game/objects/structures/machinery/doors/airlock.dm @@ -118,8 +118,6 @@ var/door_frame_color = COLOR_GRAY20 /// Color. The color of the stripe detail. var/stripe_color = null - /// Color. The color of the symbol detail. - var/symbol_color = null /// Color. The color of the window. var/window_color = null /// String (One of `MATERIAL_*`). The material used for the door's window if `glass` is set. Used to set `window_material` during init. diff --git a/code/modules/effects/map_effects/marker/door_paint.dm b/code/modules/effects/map_effects/marker/door_paint.dm new file mode 100644 index 00000000000..6fade44d595 --- /dev/null +++ b/code/modules/effects/map_effects/marker/door_paint.dm @@ -0,0 +1,172 @@ + +// ----------------------------------- main defs + +/// +/obj/effect/map_effect/marker/door_paint + var/fill_color = null + var/stripe_color = null + var/frame_color = null + +/obj/effect/map_effect/marker/door_paint/Initialize(mapload, ...) + ..() + return INITIALIZE_HINT_LATELOAD + +/obj/effect/map_effect/marker/door_paint/LateInitialize() + for(var/thing in loc) + var/obj/structure/machinery/door/airlock/door = thing + if(!istype(door)) + continue + door.paintable = AIRLOCK_PAINTABLE_MAIN | AIRLOCK_PAINTABLE_STRIPE + if(fill_color) + door.door_color = fill_color + if(stripe_color) + door.stripe_color = stripe_color + if(frame_color) + door.door_frame_color = frame_color + door.update_icon() + +// ----------------------------------- main defs + +/obj/effect/map_effect/marker/door_paint/fill + icon_state = "marker_door_paint_fill" + +/obj/effect/map_effect/marker/door_paint/fill/LateInitialize() + fill_color = color + . = ..() + +/obj/effect/map_effect/marker/door_paint/stripe + icon_state = "marker_door_paint_stripe" + +/obj/effect/map_effect/marker/door_paint/stripe/LateInitialize() + stripe_color = color + . = ..() + +/obj/effect/map_effect/marker/door_paint/frame + icon_state = "marker_door_paint_frame" + +/obj/effect/map_effect/marker/door_paint/frame/LateInitialize() + frame_color = color + . = ..() + +// ----------------------------------- department subtypes + +// to be filled with department color defines, if they were ever to be decided + +// ----------------------------------- color fill subtypes + +/obj/effect/map_effect/marker/door_paint/fill/black + color = COLOR_GRAY20 + +/obj/effect/map_effect/marker/door_paint/fill/blue + color = COLOR_BLUE_GRAY + +/obj/effect/map_effect/marker/door_paint/fill/paleblue + color = COLOR_PALE_BLUE_GRAY + +/obj/effect/map_effect/marker/door_paint/fill/dark_blue + color = COLOR_DARK_BLUE_GRAY + +/obj/effect/map_effect/marker/door_paint/fill/dark_green + color = COLOR_DARK_GREEN_GRAY + +/obj/effect/map_effect/marker/door_paint/fill/green + color = COLOR_GREEN_GRAY + +/obj/effect/map_effect/marker/door_paint/fill/lime + color = COLOR_PALE_GREEN_GRAY + +/obj/effect/map_effect/marker/door_paint/fill/yellow + color = COLOR_BROWN + +/obj/effect/map_effect/marker/door_paint/fill/beige + color = COLOR_BEIGE + +/obj/effect/map_effect/marker/door_paint/fill/red + color = COLOR_RED_GRAY + +/obj/effect/map_effect/marker/door_paint/fill/pink + color = COLOR_PALE_RED_GRAY + +/obj/effect/map_effect/marker/door_paint/fill/purple + color = COLOR_PURPLE_GRAY + +/obj/effect/map_effect/marker/door_paint/fill/mauve + color = COLOR_PALE_PURPLE_GRAY + +/obj/effect/map_effect/marker/door_paint/fill/orange + color = COLOR_DARK_ORANGE + +/obj/effect/map_effect/marker/door_paint/fill/brown + color = COLOR_DARK_BROWN + +/obj/effect/map_effect/marker/door_paint/fill/white + color = COLOR_GRAY70 + +/obj/effect/map_effect/marker/door_paint/fill/grey + color = COLOR_GRAY + +// ----------------------------------- color stripe subtypes + +/obj/effect/map_effect/marker/door_paint/stripe/gold + color = COLOR_GOLD + +/obj/effect/map_effect/marker/door_paint/stripe/black + color = COLOR_GRAY20 + +/obj/effect/map_effect/marker/door_paint/stripe/blue + color = COLOR_BLUE_GRAY + +/obj/effect/map_effect/marker/door_paint/stripe/paleblue + color = COLOR_PALE_BLUE_GRAY + +/obj/effect/map_effect/marker/door_paint/stripe/dark_blue + color = COLOR_DARK_BLUE_GRAY + +/obj/effect/map_effect/marker/door_paint/stripe/dark_green + color = COLOR_DARK_GREEN_GRAY + +/obj/effect/map_effect/marker/door_paint/stripe/green + color = COLOR_GREEN_GRAY + +/obj/effect/map_effect/marker/door_paint/stripe/lime + color = COLOR_PALE_GREEN_GRAY + +/obj/effect/map_effect/marker/door_paint/stripe/yellow + color = COLOR_BROWN + +/obj/effect/map_effect/marker/door_paint/stripe/beige + color = COLOR_BEIGE + +/obj/effect/map_effect/marker/door_paint/stripe/red + color = COLOR_RED_GRAY + +/obj/effect/map_effect/marker/door_paint/stripe/pink + color = COLOR_PALE_RED_GRAY + +/obj/effect/map_effect/marker/door_paint/stripe/purple + color = COLOR_PURPLE_GRAY + +/obj/effect/map_effect/marker/door_paint/stripe/mauve + color = COLOR_PALE_PURPLE_GRAY + +/obj/effect/map_effect/marker/door_paint/stripe/orange + color = COLOR_DARK_ORANGE + +/obj/effect/map_effect/marker/door_paint/stripe/brown + color = COLOR_DARK_BROWN + +/obj/effect/map_effect/marker/door_paint/stripe/white + color = COLOR_GRAY70 + +/obj/effect/map_effect/marker/door_paint/stripe/grey + color = COLOR_GRAY + +// ----------------------------------- color frame subtypes + +/obj/effect/map_effect/marker/door_paint/frame/scc + color = /turf/simulated/wall/shuttle/scc::color + +/obj/effect/map_effect/marker/door_paint/frame/brown + color = /turf/simulated/wall/shuttle/brown::color + +// ----------------------------------- fin diff --git a/html/changelogs/DreamySkrell-door-paint-marker.yml b/html/changelogs/DreamySkrell-door-paint-marker.yml new file mode 100644 index 00000000000..2c3ba5b18ee --- /dev/null +++ b/html/changelogs/DreamySkrell-door-paint-marker.yml @@ -0,0 +1,58 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# - (fixes bugs) +# wip +# - (work in progress) +# qol +# - (quality of life) +# soundadd +# - (adds a sound) +# sounddel +# - (removes a sound) +# rscadd +# - (adds a feature) +# rscdel +# - (removes a feature) +# imageadd +# - (adds an image or sprite) +# imagedel +# - (removes an image or sprite) +# spellcheck +# - (fixes spelling or grammar) +# experiment +# - (experimental change) +# balance +# - (balance changes) +# code_imp +# - (misc internal code change) +# refactor +# - (refactors code) +# config +# - (makes a change to the config files) +# admin +# - (makes changes to administrator tools) +# server +# - (miscellaneous changes to server) +################################# + +# Your name. +author: DreamySkrell + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, this gets changed to [] after reading. Just remove the brackets when you add new shit. +# Please surround your changes in double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "Door paint markers." diff --git a/icons/effects/map_effects.dmi b/icons/effects/map_effects.dmi index 5a3ff46925bacb177d7d12ca7cb532cdee490965..35948b19781ebb621f2ddbf272280be7166d2d14 100644 GIT binary patch delta 12529 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 delta 12351 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