mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-13 03:33:21 +00:00
Add a few more features to airlock helpers
This commit is contained in:
@@ -10,12 +10,11 @@ Any frequency works, it's self-setting, but it seems like people have decided 13
|
|||||||
name = "use a subtype!"
|
name = "use a subtype!"
|
||||||
icon = 'icons/misc/map_helpers.dmi'
|
icon = 'icons/misc/map_helpers.dmi'
|
||||||
plane = 20 //I dunno just high.
|
plane = 20 //I dunno just high.
|
||||||
alpha = 200
|
alpha = 170
|
||||||
|
|
||||||
var/area/my_area
|
|
||||||
//The controller we're wanting our device to use
|
//The controller we're wanting our device to use
|
||||||
var/obj/machinery/embedded_controller/radio/my_controller
|
var/obj/machinery/embedded_controller/radio/my_controller
|
||||||
var/my_controller_type = /obj/machinery/embedded_controller/radio/airlock/
|
var/my_controller_type = /obj/machinery/embedded_controller/radio/airlock
|
||||||
//The device we're setting up
|
//The device we're setting up
|
||||||
var/my_device
|
var/my_device
|
||||||
var/my_device_type
|
var/my_device_type
|
||||||
@@ -24,8 +23,7 @@ Any frequency works, it's self-setting, but it seems like people have decided 13
|
|||||||
|
|
||||||
/obj/effect/map_helper/airlock/Initialize()
|
/obj/effect/map_helper/airlock/Initialize()
|
||||||
..()
|
..()
|
||||||
my_area = get_area(src)
|
my_controller = get_controller(get_area(src))
|
||||||
my_controller = locate() in my_area
|
|
||||||
my_device = locate(my_device_type) in get_turf(src)
|
my_device = locate(my_device_type) in get_turf(src)
|
||||||
if(!my_device)
|
if(!my_device)
|
||||||
to_world("<b><font color='red'>WARNING:</font><font color='black'>Airlock helper '[name]' couldn't find what it wanted at: X:[x] Y:[y] Z:[z]</font></b>")
|
to_world("<b><font color='red'>WARNING:</font><font color='black'>Airlock helper '[name]' couldn't find what it wanted at: X:[x] Y:[y] Z:[z]</font></b>")
|
||||||
@@ -39,10 +37,40 @@ Any frequency works, it's self-setting, but it seems like people have decided 13
|
|||||||
|
|
||||||
/obj/effect/map_helper/airlock/Destroy()
|
/obj/effect/map_helper/airlock/Destroy()
|
||||||
my_controller = null
|
my_controller = null
|
||||||
my_area = null
|
|
||||||
my_device = null
|
my_device = null
|
||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
|
/obj/effect/map_helper/airlock/proc/get_controller(var/area/A)
|
||||||
|
if(!A)
|
||||||
|
return null
|
||||||
|
|
||||||
|
var/list/potentials = list()
|
||||||
|
for(var/obj/O in A)
|
||||||
|
if(istype(O, my_controller_type))
|
||||||
|
potentials += O
|
||||||
|
|
||||||
|
//Couldn't find one
|
||||||
|
if(!potentials.len)
|
||||||
|
return null
|
||||||
|
|
||||||
|
//Only found one
|
||||||
|
if(potentials.len == 1)
|
||||||
|
return potentials[1]
|
||||||
|
|
||||||
|
//Gotta find closest
|
||||||
|
var/closest = potentials[potentials.len]
|
||||||
|
var/closest_dist = get_dist(src, closest)
|
||||||
|
potentials.len--
|
||||||
|
while(potentials.len)
|
||||||
|
var/C = potentials[potentials.len]
|
||||||
|
potentials.len--
|
||||||
|
var/dist = get_dist(src, C)
|
||||||
|
if(dist < closest_dist)
|
||||||
|
closest_dist = dist
|
||||||
|
closest = C
|
||||||
|
|
||||||
|
return closest
|
||||||
|
|
||||||
/obj/effect/map_helper/airlock/proc/setup()
|
/obj/effect/map_helper/airlock/proc/setup()
|
||||||
return //Stub for subtypes
|
return //Stub for subtypes
|
||||||
|
|
||||||
@@ -57,9 +85,8 @@ Any frequency works, it's self-setting, but it seems like people have decided 13
|
|||||||
/obj/effect/map_helper/airlock/door/setup()
|
/obj/effect/map_helper/airlock/door/setup()
|
||||||
var/obj/machinery/door/airlock/my_airlock = my_device
|
var/obj/machinery/door/airlock/my_airlock = my_device
|
||||||
my_airlock.lock()
|
my_airlock.lock()
|
||||||
my_airlock.frequency = my_controller.frequency
|
|
||||||
my_airlock.id_tag = my_controller.id_tag + tag_addon
|
my_airlock.id_tag = my_controller.id_tag + tag_addon
|
||||||
if(my_airlock.radio_connection) //Initialized before us
|
my_airlock.frequency = my_controller.frequency
|
||||||
my_airlock.set_frequency(my_controller.frequency)
|
my_airlock.set_frequency(my_controller.frequency)
|
||||||
|
|
||||||
/obj/effect/map_helper/airlock/door/ext_door
|
/obj/effect/map_helper/airlock/door/ext_door
|
||||||
@@ -96,6 +123,16 @@ Any frequency works, it's self-setting, but it seems like people have decided 13
|
|||||||
icon_state = "pump"
|
icon_state = "pump"
|
||||||
tag_addon = "_pump"
|
tag_addon = "_pump"
|
||||||
|
|
||||||
|
/obj/effect/map_helper/airlock/atmos/pump_out_internal
|
||||||
|
name = "air dump intake"
|
||||||
|
icon_state = "pumpdin"
|
||||||
|
tag_addon = "_pump_out_internal"
|
||||||
|
|
||||||
|
/obj/effect/map_helper/airlock/atmos/pump_out_external
|
||||||
|
name = "air dump output"
|
||||||
|
icon_state = "pumpdout"
|
||||||
|
tag_addon = "_pump_out_external"
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Sensors - did you know they function as buttons? You don't also need a button.
|
Sensors - did you know they function as buttons? You don't also need a button.
|
||||||
@@ -109,7 +146,6 @@ Any frequency works, it's self-setting, but it seems like people have decided 13
|
|||||||
var/obj/machinery/airlock_sensor/my_sensor = my_device
|
var/obj/machinery/airlock_sensor/my_sensor = my_device
|
||||||
my_sensor.id_tag = my_controller.id_tag + tag_addon
|
my_sensor.id_tag = my_controller.id_tag + tag_addon
|
||||||
my_sensor.frequency = my_controller.frequency
|
my_sensor.frequency = my_controller.frequency
|
||||||
if(my_sensor.radio_connection) //Initialized before us
|
|
||||||
my_sensor.set_frequency(my_controller.frequency)
|
my_sensor.set_frequency(my_controller.frequency)
|
||||||
if(command)
|
if(command)
|
||||||
my_sensor.command = command
|
my_sensor.command = command
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 766 B After Width: | Height: | Size: 840 B |
Reference in New Issue
Block a user