From 867855f6f74898f5b7bb57ce342eec8c90a56419 Mon Sep 17 00:00:00 2001
From: QuoteFox <49098813+quotefox@users.noreply.github.com>
Date: Thu, 21 Jan 2021 14:24:55 +0000
Subject: [PATCH] Fixes to doors and RCD now can print ANY door colour
Fixes to doors and RCD now can print ANY door colour
---
code/game/machinery/doors/airlock.dm | 10 ++-
code/game/machinery/doors/airlock_types.dm | 1 +
code/game/objects/items/RCD.dm | 81 ++++------------------
code/game/turfs/simulated/floor.dm | 4 +-
4 files changed, 24 insertions(+), 72 deletions(-)
diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm
index 1173bd6a..e1b1a900 100644
--- a/code/game/machinery/doors/airlock.dm
+++ b/code/game/machinery/doors/airlock.dm
@@ -91,7 +91,7 @@
//colours! modular wow!
var/basecolor = ""
- var/stripcolor = rgb(130,160,90)
+ var/stripcolor = ""
var/cyclelinkeddir = 0
var/obj/machinery/door/airlock/cyclelinkedairlock
@@ -128,7 +128,6 @@
for(var/datum/atom_hud/data/diagnostic/diag_hud in GLOB.huds)
diag_hud.add_to_hud(src)
diag_hud_set_electrified()
-
return INITIALIZE_HINT_LATELOAD
/obj/machinery/door/airlock/LateInitialize()
@@ -158,6 +157,13 @@
panel_open = TRUE
update_icon()
+
+/obj/machinery/door/airlock/proc/getrotation() //for auto rotating doors, because im sick of doing it
+ for(var/turf/O in get_step(src,SOUTH))
+ log_mapping("[src]: [O]")
+ if(O.density)
+ log_mapping("[src]: [O] is dense")
+
/obj/machinery/door/airlock/ComponentInitialize()
. = ..()
AddComponent(/datum/component/ntnet_interface)
diff --git a/code/game/machinery/doors/airlock_types.dm b/code/game/machinery/doors/airlock_types.dm
index 6a65cede..0d1ba583 100644
--- a/code/game/machinery/doors/airlock_types.dm
+++ b/code/game/machinery/doors/airlock_types.dm
@@ -34,6 +34,7 @@
name = "maintenance access"
assemblytype = /obj/structure/door_assembly/door_assembly_mai
normal_integrity = 250
+ stripcolor = rgb(130,160,90)
/obj/machinery/door/airlock/maintenance/abandoned
abandoned = TRUE
diff --git a/code/game/objects/items/RCD.dm b/code/game/objects/items/RCD.dm
index 3ec976cb..6abf34c7 100644
--- a/code/game/objects/items/RCD.dm
+++ b/code/game/objects/items/RCD.dm
@@ -168,7 +168,9 @@ RLD
var/list/conf_access = null
var/use_one_access = 0 //If the airlock should require ALL or only ONE of the listed accesses.
var/delay_mod = 1
- var/canRturf = FALSE //Variable for R walls to deconstruct them
+ var/canRturf = FALSE //Variable for R walls to deconstruct the
+ var/airlock_color_base = ""
+ var/airlock_color_strip = ""
/obj/item/construction/rcd/suicide_act(mob/user)
user.visible_message("[user] sets the RCD to 'Wall' and points it down [user.p_their()] throat! It looks like [user.p_theyre()] trying to commit suicide..")
@@ -331,36 +333,13 @@ RLD
var/list/solid_choices = list(
"Standard" = get_airlock_image(/obj/machinery/door/airlock),
- "Public" = get_airlock_image(/obj/machinery/door/airlock/public),
- "Engineering" = get_airlock_image(/obj/machinery/door/airlock/engineering),
- "Atmospherics" = get_airlock_image(/obj/machinery/door/airlock/atmos),
- "Security" = get_airlock_image(/obj/machinery/door/airlock/security),
- "Command" = get_airlock_image(/obj/machinery/door/airlock/command),
- "Medical" = get_airlock_image(/obj/machinery/door/airlock/medical),
- "Research" = get_airlock_image(/obj/machinery/door/airlock/research),
- "Freezer" = get_airlock_image(/obj/machinery/door/airlock/freezer),
- "Science" = get_airlock_image(/obj/machinery/door/airlock/science),
- "Virology" = get_airlock_image(/obj/machinery/door/airlock/virology),
- "Mining" = get_airlock_image(/obj/machinery/door/airlock/mining),
- "Maintenance" = get_airlock_image(/obj/machinery/door/airlock/maintenance),
"External" = get_airlock_image(/obj/machinery/door/airlock/external),
- "External Maintenance" = get_airlock_image(/obj/machinery/door/airlock/maintenance/external),
"Airtight Hatch" = get_airlock_image(/obj/machinery/door/airlock/hatch),
"Maintenance Hatch" = get_airlock_image(/obj/machinery/door/airlock/maintenance_hatch)
)
var/list/glass_choices = list(
"Standard" = get_airlock_image(/obj/machinery/door/airlock/glass),
- "Public" = get_airlock_image(/obj/machinery/door/airlock/public/glass),
- "Engineering" = get_airlock_image(/obj/machinery/door/airlock/engineering/glass),
- "Atmospherics" = get_airlock_image(/obj/machinery/door/airlock/atmos/glass),
- "Security" = get_airlock_image(/obj/machinery/door/airlock/security/glass),
- "Command" = get_airlock_image(/obj/machinery/door/airlock/command/glass),
- "Medical" = get_airlock_image(/obj/machinery/door/airlock/medical/glass),
- "Research" = get_airlock_image(/obj/machinery/door/airlock/research/glass),
- "Science" = get_airlock_image(/obj/machinery/door/airlock/science/glass),
- "Virology" = get_airlock_image(/obj/machinery/door/airlock/virology/glass),
- "Mining" = get_airlock_image(/obj/machinery/door/airlock/mining/glass),
"Maintenance" = get_airlock_image(/obj/machinery/door/airlock/maintenance/glass),
"External" = get_airlock_image(/obj/machinery/door/airlock/external/glass),
"External Maintenance" = get_airlock_image(/obj/machinery/door/airlock/maintenance/external/glass)
@@ -375,33 +354,13 @@ RLD
var/airlockpaint = show_radial_menu(user, src, solid_choices, radius = 42, custom_check = CALLBACK(src, .proc/check_menu, user), require_near = TRUE)
if(!check_menu(user))
return
+ airlock_color_base = ""
+ airlock_color_strip = ""
switch(airlockpaint)
- if("Standard")
+ if("Standard") // we only need one now, because you can customize the colours yourself
+ airlock_color_base = input(user, "Choose the airlocks base colour. Leave blank for none!", "Airlock Color", airlock_color_base) as color|null
+ airlock_color_strip = input(user, "Choose the airlocks strip colour. Leave blank for none!", "Airlock Color", airlock_color_base) as color|null
airlock_type = /obj/machinery/door/airlock
- if("Public")
- airlock_type = /obj/machinery/door/airlock/public
- if("Engineering")
- airlock_type = /obj/machinery/door/airlock/engineering
- if("Atmospherics")
- airlock_type = /obj/machinery/door/airlock/atmos
- if("Security")
- airlock_type = /obj/machinery/door/airlock/security
- if("Command")
- airlock_type = /obj/machinery/door/airlock/command
- if("Medical")
- airlock_type = /obj/machinery/door/airlock/medical
- if("Research")
- airlock_type = /obj/machinery/door/airlock/research
- if("Freezer")
- airlock_type = /obj/machinery/door/airlock/freezer
- if("Science")
- airlock_type = /obj/machinery/door/airlock/science
- if("Virology")
- airlock_type = /obj/machinery/door/airlock/virology
- if("Mining")
- airlock_type = /obj/machinery/door/airlock/mining
- if("Maintenance")
- airlock_type = /obj/machinery/door/airlock/maintenance
if("External")
airlock_type = /obj/machinery/door/airlock/external
if("External Maintenance")
@@ -420,29 +379,13 @@ RLD
var/airlockpaint = show_radial_menu(user, src , glass_choices, radius = 42, custom_check = CALLBACK(src, .proc/check_menu, user), require_near = TRUE)
if(!check_menu(user))
return
+ airlock_color_base = ""
+ airlock_color_strip = ""
switch(airlockpaint)
if("Standard")
+ airlock_color_base = input(user, "Choose the airlocks base colour. Leave blank for none!", "Airlock Color", airlock_color_base) as color|null
+ airlock_color_strip = input(user, "Choose the airlocks strip colour. Leave blank for none!", "Airlock Color", airlock_color_base) as color|null
airlock_type = /obj/machinery/door/airlock/glass
- if("Public")
- airlock_type = /obj/machinery/door/airlock/public/glass
- if("Engineering")
- airlock_type = /obj/machinery/door/airlock/engineering/glass
- if("Atmospherics")
- airlock_type = /obj/machinery/door/airlock/atmos/glass
- if("Security")
- airlock_type = /obj/machinery/door/airlock/security/glass
- if("Command")
- airlock_type = /obj/machinery/door/airlock/command/glass
- if("Medical")
- airlock_type = /obj/machinery/door/airlock/medical/glass
- if("Research")
- airlock_type = /obj/machinery/door/airlock/research/glass
- if("Science")
- airlock_type = /obj/machinery/door/airlock/science/glass
- if("Virology")
- airlock_type = /obj/machinery/door/airlock/virology/glass
- if("Mining")
- airlock_type = /obj/machinery/door/airlock/mining/glass
if("Maintenance")
airlock_type = /obj/machinery/door/airlock/maintenance/glass
if("External")
diff --git a/code/game/turfs/simulated/floor.dm b/code/game/turfs/simulated/floor.dm
index 1b260f24..2b0d57be 100644
--- a/code/game/turfs/simulated/floor.dm
+++ b/code/game/turfs/simulated/floor.dm
@@ -250,8 +250,10 @@
to_chat(user, "You build an airlock.")
var/obj/machinery/door/airlock/A = new the_rcd.airlock_type(src)
A.setDir(the_rcd.airlock_dir)
+ A.basecolor = the_rcd.airlock_color_base
+ A.stripcolor = the_rcd.airlock_color_strip
A.electronics = new/obj/item/electronics/airlock(A)
-
+ A.set_airlock_overlays(1) //need to update the overlays to update the colors
if(the_rcd.conf_access)
A.electronics.accesses = the_rcd.conf_access.Copy()
A.electronics.one_access = the_rcd.use_one_access