Merge pull request #8800 from Sishen1542/freeza
Adds click interactions to atmos heater/freezer
This commit is contained in:
@@ -1,18 +1,22 @@
|
||||
/obj/machinery/atmospherics/components/unary/thermomachine
|
||||
name = "thermomachine"
|
||||
desc = "Heats or cools gas in connected pipes."
|
||||
icon = 'icons/obj/atmospherics/components/thermomachine.dmi'
|
||||
icon_state = "freezer"
|
||||
var/icon_state_off = "freezer"
|
||||
var/icon_state_on = "freezer_1"
|
||||
var/icon_state_open = "freezer-o"
|
||||
|
||||
name = "thermomachine"
|
||||
desc = "Heats or cools gas in connected pipes."
|
||||
|
||||
density = TRUE
|
||||
max_integrity = 300
|
||||
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 100, "bomb" = 0, "bio" = 100, "rad" = 100, "fire" = 80, "acid" = 30)
|
||||
layer = OBJ_LAYER
|
||||
circuit = /obj/item/circuitboard/machine/thermomachine
|
||||
|
||||
pipe_flags = PIPING_ONE_PER_TURF | PIPING_DEFAULT_LAYER_ONLY
|
||||
|
||||
var/icon_state_off = "freezer"
|
||||
var/icon_state_on = "freezer_1"
|
||||
var/icon_state_open = "freezer-o"
|
||||
|
||||
var/min_temperature = 0
|
||||
var/max_temperature = 0
|
||||
var/target_temperature = T20C
|
||||
@@ -45,6 +49,13 @@
|
||||
if(showpipe)
|
||||
add_overlay(getpipeimage(icon, "scrub_cap", initialize_directions))
|
||||
|
||||
/obj/machinery/atmospherics/components/unary/thermomachine/examine(mob/user)
|
||||
. = ..()
|
||||
. += "<span class='notice'>The thermostat is set to [target_temperature]K ([(T0C-target_temperature)*-1]C).</span>"
|
||||
if(in_range(user, src) || isobserver(user))
|
||||
. += "<span class='notice'>The status display reads: Efficiency <b>[(heat_capacity/5000)*100]%</b>.</span>"
|
||||
. += "<span class='notice'>Temperature range <b>[min_temperature]K - [max_temperature]K ([(T0C-min_temperature)*-1]C - [(T0C-max_temperature)*-1]C)</b>.</span>"
|
||||
|
||||
/obj/machinery/atmospherics/components/unary/thermomachine/process_atmos()
|
||||
..()
|
||||
if(!on || !nodes[1])
|
||||
@@ -155,6 +166,16 @@
|
||||
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/atmospherics/components/unary/thermomachine/CtrlClick(mob/living/user)
|
||||
var/area/A = get_area(src)
|
||||
var/turf/T = get_turf(src)
|
||||
if(!istype(user) || !user.canUseTopic(src, BE_CLOSE))
|
||||
return
|
||||
on = !on
|
||||
update_icon()
|
||||
investigate_log("was turned [on ? "on" : "off"] by [key_name(usr)]", INVESTIGATE_ATMOS)
|
||||
message_admins("[src.name] was turned [on ? "on" : "off"] [ADMIN_LOOKUPFLW(usr)] at [ADMIN_COORDJMP(T)], [A]")
|
||||
|
||||
/obj/machinery/atmospherics/components/unary/thermomachine/freezer
|
||||
name = "freezer"
|
||||
icon_state = "freezer"
|
||||
@@ -174,6 +195,13 @@
|
||||
if(target_temperature == initial(target_temperature))
|
||||
target_temperature = min_temperature
|
||||
|
||||
/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on/coldroom
|
||||
name = "cold room freezer"
|
||||
|
||||
/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on/coldroom/Initialize()
|
||||
. = ..()
|
||||
target_temperature = T0C-80
|
||||
|
||||
/obj/machinery/atmospherics/components/unary/thermomachine/freezer/RefreshParts()
|
||||
..()
|
||||
var/L
|
||||
@@ -181,6 +209,15 @@
|
||||
L += M.rating
|
||||
min_temperature = max(T0C - (initial(min_temperature) + L * 15), TCMB) //73.15K with T1 stock parts
|
||||
|
||||
/obj/machinery/atmospherics/components/unary/thermomachine/freezer/AltClick(mob/living/user)
|
||||
var/area/A = get_area(src)
|
||||
var/turf/T = get_turf(src)
|
||||
if(!istype(user) || !user.canUseTopic(src, BE_CLOSE))
|
||||
return
|
||||
target_temperature = min_temperature
|
||||
investigate_log("was set to [target_temperature] K by [key_name(usr)]", INVESTIGATE_ATMOS)
|
||||
message_admins("[src.name] was minimized by [ADMIN_LOOKUPFLW(usr)] at [ADMIN_COORDJMP(T)], [A]")
|
||||
|
||||
/obj/machinery/atmospherics/components/unary/thermomachine/heater
|
||||
name = "heater"
|
||||
icon_state = "heater"
|
||||
@@ -201,3 +238,12 @@
|
||||
for(var/obj/item/stock_parts/micro_laser/M in component_parts)
|
||||
L += M.rating
|
||||
max_temperature = T20C + (initial(max_temperature) * L) //573.15K with T1 stock parts
|
||||
|
||||
/obj/machinery/atmospherics/components/unary/thermomachine/heater/AltClick(mob/living/user)
|
||||
var/area/A = get_area(src)
|
||||
var/turf/T = get_turf(src)
|
||||
if(!istype(user) || !user.canUseTopic(src, BE_CLOSE))
|
||||
return
|
||||
target_temperature = max_temperature
|
||||
investigate_log("was set to [target_temperature] K by [key_name(usr)]", INVESTIGATE_ATMOS)
|
||||
message_admins("[src.name] was maximized by [ADMIN_LOOKUPFLW(usr)] at [ADMIN_COORDJMP(T)], [A]")
|
||||
|
||||
Reference in New Issue
Block a user