mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 10:12:45 +00:00
TGUI APCs TGUI vending machines Fix AI default_tgui_interaction TGUI Airlocks Station & Atmospheric Alert TGUI + Misc NTOS-TGUI Fixes TGUI Air Alarms & Central Atmospheric Control Airlock TGUI TG... got rid of UI for fire alarm. í´· TGUI Gas Heating/Cooling System TGUI Gas Pump & Passive Gate + Fixes TGUI Omni Atmospherics TGUI Pipe Dispensers & RPD TGUI IntelliCore & Vending Fix TGUI Handheld Tanks TGUI Portable Pump & Scrubber TGUI Tank Dispenser & Canisters TGUI Radios TGUI SMES & Air Alarm adjustment Tweak vending machine interfaces a tad TGUI Algae Farm TGUI general_air_control - Distro & Waste Console - Riot Control Console - Atmos Intake Console - Engine Cooling Console TGUI Heavy Scrubber Control (and body scanner fix) TGUI trinary devices & shutoff monitor TGUI Telecomms Log Browser TGUI Telecomms Machine Browser TGUI Spaceheater Internal Panel TGUI Gravity Generator TGUI Id Cards & Fix ID Card Images TGUI Id Card Redesign TGUI Turbolift TGUI Suit Cycler & Suit Storage Unit & Vending Fixes TGUI Power Monitor TGUI Signalers TGUI Employment Records TGUI Drone Console TGUI RIGSuits TGUI PA & PACMAN, and Margin Fix TGUI Solar Panels & Fix Power Monitor Adjust TGUI modules & their interaction with NTOS TGUI RCON TGUI Message Monitor Bump TGUI line limit to 120 (ParadiseSS13/Paradise#14002) TGUI Exonet & NTNet Relay TGUI Telecomms Multitool Menu TGUI Shield Capacitor & Shield Generator TGUI Supermatter-everything & Refactors
134 lines
4.6 KiB
Plaintext
134 lines
4.6 KiB
Plaintext
//a docking port that uses a single door
|
|
/obj/machinery/embedded_controller/radio/simple_docking_controller
|
|
name = "docking hatch controller"
|
|
program = /datum/computer/file/embedded_program/docking/simple
|
|
var/tag_door
|
|
valid_actions = list("force_door", "toggle_override")
|
|
|
|
/obj/machinery/embedded_controller/radio/simple_docking_controller/tgui_data(mob/user)
|
|
var/datum/computer/file/embedded_program/docking/simple/docking_program = program // Cast to proper type
|
|
|
|
. = list(
|
|
"docking_status" = docking_program.get_docking_status(),
|
|
"override_enabled" = docking_program.override_enabled,
|
|
"exterior_status" = docking_program.memory["door_status"],
|
|
"internalTemplateName" = "DockingConsoleSimple",
|
|
)
|
|
|
|
//A docking controller program for a simple door based docking port
|
|
/datum/computer/file/embedded_program/docking/simple
|
|
var/tag_door
|
|
|
|
/datum/computer/file/embedded_program/docking/simple/New(var/obj/machinery/embedded_controller/M)
|
|
..(M)
|
|
memory["door_status"] = list(state = "closed", lock = "locked") //assume closed and locked in case the doors dont report in
|
|
|
|
if (istype(M, /obj/machinery/embedded_controller/radio/simple_docking_controller))
|
|
var/obj/machinery/embedded_controller/radio/simple_docking_controller/controller = M
|
|
|
|
tag_door = controller.tag_door? controller.tag_door : "[id_tag]_hatch"
|
|
|
|
spawn(10)
|
|
signal_door("update") //signals connected doors to update their status
|
|
|
|
|
|
/datum/computer/file/embedded_program/docking/simple/receive_signal(datum/signal/signal, receive_method, receive_param)
|
|
var/receive_tag = signal.data["tag"]
|
|
|
|
if(!receive_tag) return
|
|
|
|
if(receive_tag==tag_door)
|
|
memory["door_status"]["state"] = signal.data["door_status"]
|
|
memory["door_status"]["lock"] = signal.data["lock_status"]
|
|
|
|
..(signal, receive_method, receive_param)
|
|
|
|
/datum/computer/file/embedded_program/docking/simple/receive_user_command(command)
|
|
. = TRUE
|
|
switch(command)
|
|
if("force_door")
|
|
if (override_enabled)
|
|
if(memory["door_status"]["state"] == "open")
|
|
close_door()
|
|
else
|
|
open_door()
|
|
if("toggle_override")
|
|
if (override_enabled)
|
|
disable_override()
|
|
else
|
|
enable_override()
|
|
else
|
|
. = FALSE
|
|
|
|
/datum/computer/file/embedded_program/docking/simple/proc/signal_door(var/command)
|
|
var/datum/signal/signal = new
|
|
signal.data["tag"] = tag_door
|
|
signal.data["command"] = command
|
|
post_signal(signal)
|
|
|
|
///datum/computer/file/embedded_program/docking/simple/proc/signal_mech_sensor(var/command)
|
|
// signal_door(command)
|
|
// return
|
|
|
|
/datum/computer/file/embedded_program/docking/simple/proc/open_door()
|
|
if(memory["door_status"]["state"] == "closed")
|
|
//signal_mech_sensor("enable")
|
|
signal_door("secure_open")
|
|
else if(memory["door_status"]["lock"] == "unlocked")
|
|
signal_door("lock")
|
|
|
|
/datum/computer/file/embedded_program/docking/simple/proc/close_door()
|
|
if(memory["door_status"]["state"] == "open")
|
|
signal_door("secure_close")
|
|
//signal_mech_sensor("disable")
|
|
else if(memory["door_status"]["lock"] == "unlocked")
|
|
signal_door("lock")
|
|
|
|
//tell the docking port to start getting ready for docking - e.g. pressurize
|
|
/datum/computer/file/embedded_program/docking/simple/prepare_for_docking()
|
|
return //don't need to do anything
|
|
|
|
//are we ready for docking?
|
|
/datum/computer/file/embedded_program/docking/simple/ready_for_docking()
|
|
return 1 //don't need to do anything
|
|
|
|
//we are docked, open the doors or whatever.
|
|
/datum/computer/file/embedded_program/docking/simple/finish_docking()
|
|
open_door()
|
|
|
|
//tell the docking port to start getting ready for undocking - e.g. close those doors.
|
|
/datum/computer/file/embedded_program/docking/simple/prepare_for_undocking()
|
|
close_door()
|
|
|
|
//are we ready for undocking?
|
|
/datum/computer/file/embedded_program/docking/simple/ready_for_undocking()
|
|
return (memory["door_status"]["state"] == "closed" && memory["door_status"]["lock"] == "locked")
|
|
|
|
/*** DEBUG VERBS ***
|
|
|
|
/obj/machinery/embedded_controller/radio/simple_docking_controller/verb/view_state()
|
|
set category = "Debug"
|
|
set src in view(1)
|
|
src.program:print_state()
|
|
|
|
/obj/machinery/embedded_controller/radio/simple_docking_controller/verb/spoof_signal(var/command as text, var/sender as text)
|
|
set category = "Debug"
|
|
set src in view(1)
|
|
var/datum/signal/signal = new
|
|
signal.data["tag"] = sender
|
|
signal.data["command"] = command
|
|
signal.data["recipient"] = id_tag
|
|
|
|
src.program:receive_signal(signal)
|
|
|
|
/obj/machinery/embedded_controller/radio/simple_docking_controller/verb/debug_init_dock(var/target as text)
|
|
set category = "Debug"
|
|
set src in view(1)
|
|
src.program:initiate_docking(target)
|
|
|
|
/obj/machinery/embedded_controller/radio/simple_docking_controller/verb/debug_init_undock()
|
|
set category = "Debug"
|
|
set src in view(1)
|
|
src.program:initiate_undocking()
|
|
|
|
*/ |