[MIRROR] Atmos QOL + Small Sprite Fix [MDB IGNORE] (#20243)

* Atmos QOL + Small Sprite Fix (#74251)

## About The Pull Request
Added screentips and balloon alerts to many atmos machines/pipes
Volume pump overclocking overlay is much slower and less seizure
inducing
RPD screentips for right clicking pipes to copy settings
Removed (RPD) from the RPD's name since having an abbreviation in the
name is ugly
Crystallizer and electrolyzer use ctrl+click and alt-click to turn on
On examine electrolyzer tells you about anchoring to drain from APC
instead of cell
## Why It's Good For The Game
QOL for atmos stuff, user friendliness and better experience
## Changelog
🆑
fix: Volume pump overclocking animation is much slower, no more
headaches
qol: Added screentips to the RPD; screentips and balloon alerts to many
atmos machines and devices
🆑

* Atmos QOL + Small Sprite Fix

---------

Co-authored-by: 13spacemen <46101244+13spacemen@users.noreply.github.com>
This commit is contained in:
SkyratBot
2023-04-01 21:12:18 +01:00
committed by GitHub
co-authored by 13spacemen
parent babba7339d
commit 7a64573c8b
16 changed files with 218 additions and 45 deletions
+10 -6
View File
@@ -1,8 +1,3 @@
/*
CONTAINS:
RPD
*/
#define ATMOS_CATEGORY 0
#define DISPOSALS_CATEGORY 1
#define TRANSIT_CATEGORY 2
@@ -210,7 +205,7 @@ GLOBAL_LIST_INIT(transit_tube_recipes, list(
icon_state = "[icon_state]_preview"
/obj/item/pipe_dispenser
name = "Rapid Pipe Dispenser (RPD)"
name = "Rapid Pipe Dispenser"
desc = "A device used to rapidly pipe things."
icon = 'icons/obj/tools.dmi'
icon_state = "rpd"
@@ -283,6 +278,7 @@ GLOBAL_LIST_INIT(transit_tube_recipes, list(
first_transit = GLOB.transit_tube_recipes[GLOB.transit_tube_recipes[1]][1]
recipe = first_atmos
register_item_context()
/obj/item/pipe_dispenser/Destroy()
qdel(spark_system)
@@ -339,6 +335,14 @@ GLOBAL_LIST_INIT(transit_tube_recipes, list(
return TRUE
return ..()
/obj/item/pipe_dispenser/add_item_context(obj/item/source, list/context, atom/target, mob/living/user)
. = ..()
if(istype(target, /obj/machinery/atmospherics))
var/obj/machinery/atmospherics/atmos_target = target
if(atmos_target.pipe_color && atmos_target.piping_layer)
context[SCREENTIP_CONTEXT_RMB] = "Copy piping color and layer"
return CONTEXTUAL_SCREENTIP_SET
/**
* Installs an upgrade into the RPD
*
@@ -20,9 +20,20 @@ Passive gate is similar to the regular pump except:
///Set the target pressure the component should arrive to
var/target_pressure = ONE_ATMOSPHERE
/obj/machinery/atmospherics/components/binary/passive_gate/Initialize(mapload)
. = ..()
register_context()
/obj/machinery/atmospherics/components/binary/passive_gate/add_context(atom/source, list/context, obj/item/held_item, mob/user)
. = ..()
context[SCREENTIP_CONTEXT_CTRL_LMB] = "Turn [on ? "off" : "on"]"
context[SCREENTIP_CONTEXT_ALT_LMB] = "Maximize target pressure"
return CONTEXTUAL_SCREENTIP_SET
/obj/machinery/atmospherics/components/binary/passive_gate/CtrlClick(mob/user)
if(can_interact(user))
on = !on
balloon_alert(user, "turned [on ? "on" : "off"]")
investigate_log("was turned [on ? "on" : "off"] by [key_name(user)]", INVESTIGATE_ATMOS)
update_appearance()
return ..()
@@ -12,9 +12,20 @@
///Check if the gas is moving from one pipenet to the other
var/is_gas_flowing = FALSE
/obj/machinery/atmospherics/components/binary/pressure_valve/Initialize(mapload)
. = ..()
register_context()
/obj/machinery/atmospherics/components/binary/pressure_valve/add_context(atom/source, list/context, obj/item/held_item, mob/user)
. = ..()
context[SCREENTIP_CONTEXT_CTRL_LMB] = "Turn [on ? "off" : "on"]"
context[SCREENTIP_CONTEXT_ALT_LMB] = "Maximize target pressure"
return CONTEXTUAL_SCREENTIP_SET
/obj/machinery/atmospherics/components/binary/pressure_valve/CtrlClick(mob/user)
if(can_interact(user))
on = !on
balloon_alert(user, "turned [on ? "on" : "off"]")
investigate_log("was turned [on ? "on" : "off"] by [key_name(user)]", INVESTIGATE_ATMOS)
update_appearance()
return ..()
@@ -27,10 +27,18 @@
AddComponent(/datum/component/usb_port, list(
/obj/item/circuit_component/atmos_pump,
))
register_context()
/obj/machinery/atmospherics/components/binary/pump/add_context(atom/source, list/context, obj/item/held_item, mob/user)
. = ..()
context[SCREENTIP_CONTEXT_CTRL_LMB] = "Turn [on ? "off" : "on"]"
context[SCREENTIP_CONTEXT_ALT_LMB] = "Maximize target pressure"
return CONTEXTUAL_SCREENTIP_SET
/obj/machinery/atmospherics/components/binary/pump/CtrlClick(mob/user)
if(can_interact(user))
set_on(!on)
balloon_alert(user, "turned [on ? "on" : "off"]")
investigate_log("was turned [on ? "on" : "off"] by [key_name(user)]", INVESTIGATE_ATMOS)
update_appearance()
return ..()
@@ -17,9 +17,20 @@
///Check if the gas is moving from one pipenet to the other
var/is_gas_flowing = FALSE
/obj/machinery/atmospherics/components/binary/temperature_gate/Initialize(mapload)
. = ..()
register_context()
/obj/machinery/atmospherics/components/binary/temperature_gate/add_context(atom/source, list/context, obj/item/held_item, mob/user)
. = ..()
context[SCREENTIP_CONTEXT_CTRL_LMB] = "Turn [on ? "off" : "on"]"
context[SCREENTIP_CONTEXT_ALT_LMB] = "Maximize target temperature"
return CONTEXTUAL_SCREENTIP_SET
/obj/machinery/atmospherics/components/binary/temperature_gate/CtrlClick(mob/user)
if(can_interact(user))
on = !on
balloon_alert(user, "turned [on ? "on" : "off"]")
investigate_log("was turned [on ? "on" : "off"] by [key_name(user)]", INVESTIGATE_ATMOS)
update_appearance()
return ..()
@@ -12,9 +12,20 @@
///Maximum allowed transfer percentage
var/max_heat_transfer_rate = 100
/obj/machinery/atmospherics/components/binary/temperature_pump/Initialize(mapload)
. = ..()
register_context()
/obj/machinery/atmospherics/components/binary/temperature_pump/add_context(atom/source, list/context, obj/item/held_item, mob/user)
. = ..()
context[SCREENTIP_CONTEXT_CTRL_LMB] = "Turn [on ? "off" : "on"]"
context[SCREENTIP_CONTEXT_ALT_LMB] = "Maximize transfer rate"
return CONTEXTUAL_SCREENTIP_SET
/obj/machinery/atmospherics/components/binary/temperature_pump/CtrlClick(mob/user)
if(can_interact(user))
on = !on
balloon_alert(user, "turned [on ? "on" : "off"]")
investigate_log("was turned [on ? "on" : "off"] by [key_name(user)]", INVESTIGATE_ATMOS)
update_appearance()
return ..()
@@ -36,6 +36,7 @@
/obj/machinery/atmospherics/components/binary/volume_pump/CtrlClick(mob/user)
if(can_interact(user))
set_on(!on)
balloon_alert(user, "turned [on ? "on" : "off"]")
investigate_log("was turned [on ? "on" : "off"] by [key_name(user)]", INVESTIGATE_ATMOS)
update_appearance()
return ..()
@@ -103,9 +104,11 @@
/obj/machinery/atmospherics/components/binary/volume_pump/add_context(atom/source, list/context, obj/item/held_item, mob/user)
. = ..()
context[SCREENTIP_CONTEXT_CTRL_LMB] = "Turn [on ? "off" : "on"]"
context[SCREENTIP_CONTEXT_ALT_LMB] = "Maximize transfer rate"
if(held_item && held_item.tool_behaviour == TOOL_MULTITOOL)
context[SCREENTIP_CONTEXT_LMB] = "[overclocked ? "En" : "Dis"]able pressure limits"
return CONTEXTUAL_SCREENTIP_SET
return CONTEXTUAL_SCREENTIP_SET
/obj/machinery/atmospherics/components/binary/volume_pump/ui_interact(mob/user, datum/tgui/ui)
ui = SStgui.try_update_ui(user, src, ui)
@@ -38,22 +38,19 @@
cell = new cell(src)
SSair.start_processing_machine(src)
update_appearance()
register_context()
AddElement( \
/datum/element/contextual_screentip_bare_hands, \
rmb_text = "Toggle power", \
)
var/static/list/tool_behaviors = list(
TOOL_SCREWDRIVER = list(
SCREENTIP_CONTEXT_LMB = "Open hatch",
),
TOOL_WRENCH = list(
SCREENTIP_CONTEXT_LMB = "Anchor",
),
)
AddElement(/datum/element/contextual_screentip_tools, tool_behaviors)
/obj/machinery/electrolyzer/add_context(atom/source, list/context, obj/item/held_item, mob/user)
. = ..()
context[SCREENTIP_CONTEXT_ALT_LMB] = "Turn [on ? "off" : "on"]"
if(!held_item)
return CONTEXTUAL_SCREENTIP_SET
switch(held_item.tool_behaviour)
if(TOOL_SCREWDRIVER)
context[SCREENTIP_CONTEXT_LMB] = "[panel_open ? "Close" : "Open"] panel"
if(TOOL_WRENCH)
context[SCREENTIP_CONTEXT_LMB] = "[anchored ? "Unan" : "An"]chor"
return CONTEXTUAL_SCREENTIP_SET
/obj/machinery/electrolyzer/Destroy()
if(cell)
@@ -68,14 +65,15 @@
/obj/machinery/electrolyzer/examine(mob/user)
. = ..()
. += "\The [src] is [on ? "on" : "off"], and the hatch is [panel_open ? "open" : "closed"]."
. += "\The [src] is [on ? "on" : "off"], and the panel is [panel_open ? "open" : "closed"]."
if(cell)
. += "The charge meter reads [cell ? round(cell.percent(), 1) : 0]%."
else
. += "There is no power cell installed."
if(in_range(user, src) || isobserver(user))
. += span_notice("<b>Right-click</b> to toggle [on ? "off" : "on"].")
. += span_notice("<b>Alt-click</b> to toggle [on ? "off" : "on"].")
. += span_notice("<b>Anchor</b> to drain power from APC instead of cell")
. += span_notice("It will drain power from the [anchored ? "area's APC" : "internal power cell"].")
@@ -158,7 +156,7 @@
/obj/machinery/electrolyzer/screwdriver_act(mob/living/user, obj/item/tool)
tool.play_tool_sound(src, 50)
toggle_panel_open()
user.visible_message(span_notice("\The [user] [panel_open ? "opens" : "closes"] the hatch on \the [src]."), span_notice("You [panel_open ? "open" : "close"] the hatch on \the [src]."))
balloon_alert(user, "[panel_open ? "opened" : "closed"] panel")
update_appearance()
return TRUE
@@ -174,34 +172,38 @@
add_fingerprint(user)
if(istype(I, /obj/item/stock_parts/cell))
if(!panel_open)
to_chat(user, span_warning("The hatch must be open to insert a power cell!"))
balloon_alert(user, "open panel!")
return
if(cell)
to_chat(user, span_warning("There is already a power cell inside!"))
balloon_alert(user, "cell inside!")
return
if(!user.transferItemToLoc(I, src))
return
cell = I
I.add_fingerprint(usr)
user.visible_message(span_notice("\The [user] inserts a power cell into \the [src]."), span_notice("You insert the power cell into \the [src]."))
balloon_alert(user, "inserted cell")
SStgui.update_uis(src)
return
return ..()
/obj/machinery/electrolyzer/attack_hand_secondary(mob/user, list/modifiers)
/obj/machinery/electrolyzer/AltClick(mob/user)
. = ..()
if(panel_open)
balloon_alert(user, "close panel!")
return
if(!can_interact(user))
return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN
return
toggle_power(user)
return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN
/obj/machinery/electrolyzer/proc/toggle_power(user)
if(!anchored && !cell)
balloon_alert(user, "insert cell or anchor!")
return
on = !on
mode = ELECTROLYZER_MODE_STANDBY
if(!isnull(user))
balloon_alert(user, "turned [on ? "on" : "off"]")
update_appearance()
balloon_alert(user, "turned [on ? "on" : "off"]")
if(on)
SSair.start_processing_machine(src)
@@ -39,6 +39,19 @@
/obj/machinery/atmospherics/components/binary/crystallizer/Initialize(mapload)
. = ..()
internal = new
register_context()
/obj/machinery/atmospherics/components/binary/crystallizer/add_context(atom/source, list/context, obj/item/held_item, mob/user)
. = ..()
context[SCREENTIP_CONTEXT_CTRL_LMB] = "Turn [on ? "off" : "on"]"
if(!held_item)
return CONTEXTUAL_SCREENTIP_SET
switch(held_item.tool_behaviour)
if(TOOL_SCREWDRIVER)
context[SCREENTIP_CONTEXT_LMB] = "[panel_open ? "Close" : "Open"] panel"
if(TOOL_WRENCH)
context[SCREENTIP_CONTEXT_LMB] = "Rotate"
return CONTEXTUAL_SCREENTIP_SET
/obj/machinery/atmospherics/components/binary/crystallizer/attackby(obj/item/I, mob/user, params)
if(!on)
@@ -102,13 +115,18 @@
else
icon_state = "[base_icon_state]-off"
/obj/machinery/atmospherics/components/binary/crystallizer/attackby_secondary(obj/item/tool, mob/user, params)
/obj/machinery/atmospherics/components/binary/crystallizer/CtrlClick(mob/living/user)
if(!can_interact(user))
return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN
return
if(panel_open)
balloon_alert(user, "close panel!")
return
on = !on
balloon_alert(user, "turned [on ? "on" : "off"]")
investigate_log("was turned [on ? "on" : "off"] by [key_name(user)]", INVESTIGATE_ATMOS)
update_icon()
return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN
return ..()
///Checks if the reaction temperature is inside the range of temperature + a little deviation
/obj/machinery/atmospherics/components/binary/crystallizer/proc/check_temp_requirements()
if(internal.temperature >= selected_recipe.min_temp * MIN_DEVIATION_RATE && internal.temperature <= selected_recipe.max_temp * MAX_DEVIATION_RATE)
@@ -14,9 +14,20 @@
///What gases are we filtering, by typepath
var/list/filter_type = list()
/obj/machinery/atmospherics/components/trinary/filter/Initialize(mapload)
. = ..()
register_context()
/obj/machinery/atmospherics/components/trinary/filter/add_context(atom/source, list/context, obj/item/held_item, mob/user)
. = ..()
context[SCREENTIP_CONTEXT_CTRL_LMB] = "Turn [on ? "off" : "on"]"
context[SCREENTIP_CONTEXT_ALT_LMB] = "Maximize transfer rate"
return CONTEXTUAL_SCREENTIP_SET
/obj/machinery/atmospherics/components/trinary/filter/CtrlClick(mob/user)
if(can_interact(user))
on = !on
balloon_alert(user, "turned [on ? "on" : "off"]")
investigate_log("was turned [on ? "on" : "off"] by [key_name(user)]", INVESTIGATE_ATMOS)
update_appearance()
return ..()
@@ -164,7 +175,7 @@
/obj/machinery/atmospherics/components/trinary/filter/can_unwrench(mob/user)
. = ..()
if(. && on && is_operational)
to_chat(user, span_warning("You cannot unwrench [src], turn it off first!"))
balloon_alert(user, "turn off!")
return FALSE
// mapping
@@ -17,9 +17,20 @@
var/node2_concentration = 0.5
//node 3 is the outlet, nodes 1 & 2 are intakes
/obj/machinery/atmospherics/components/trinary/mixer/Initialize(mapload)
. = ..()
register_context()
/obj/machinery/atmospherics/components/trinary/mixer/add_context(atom/source, list/context, obj/item/held_item, mob/user)
. = ..()
context[SCREENTIP_CONTEXT_CTRL_LMB] = "Turn [on ? "off" : "on"]"
context[SCREENTIP_CONTEXT_ALT_LMB] = "Maximize target pressure"
return CONTEXTUAL_SCREENTIP_SET
/obj/machinery/atmospherics/components/trinary/mixer/CtrlClick(mob/user)
if(can_interact(user))
on = !on
balloon_alert(user, "turned [on ? "on" : "off"]")
investigate_log("was turned [on ? "on" : "off"] by [key_name(user)]", INVESTIGATE_ATMOS)
update_appearance()
return ..()
@@ -46,6 +46,7 @@ GLOBAL_LIST_EMPTY_TYPED(bluespace_senders, /obj/machinery/atmospherics/component
GLOB.bluespace_senders += src
update_appearance()
register_context()
/obj/machinery/atmospherics/components/unary/bluespace_sender/Destroy()
if(bluespace_network.total_moles())
@@ -56,6 +57,24 @@ GLOBAL_LIST_EMPTY_TYPED(bluespace_senders, /obj/machinery/atmospherics/component
return ..()
/obj/machinery/atmospherics/components/unary/bluespace_sender/examine(mob/user)
. = ..()
. += span_notice("With the panel open:")
. += span_notice(" -Use a wrench with left-click to rotate [src] and right-click to unanchor it.")
/obj/machinery/atmospherics/components/unary/bluespace_sender/add_context(atom/source, list/context, obj/item/held_item, mob/user)
. = ..()
context[SCREENTIP_CONTEXT_CTRL_LMB] = "Turn [on ? "off" : "on"]"
if(!held_item)
return CONTEXTUAL_SCREENTIP_SET
switch(held_item.tool_behaviour)
if(TOOL_SCREWDRIVER)
context[SCREENTIP_CONTEXT_LMB] = "[panel_open ? "Close" : "Open"] panel"
if(TOOL_WRENCH)
context[SCREENTIP_CONTEXT_LMB] = "Rotate"
context[SCREENTIP_CONTEXT_RMB] = "[anchored ? "Unan" : "An"]chor"
return CONTEXTUAL_SCREENTIP_SET
/obj/machinery/atmospherics/components/unary/bluespace_sender/update_icon_state()
if(panel_open)
icon_state = "[base_icon_state]_open"
@@ -84,10 +103,10 @@ GLOBAL_LIST_EMPTY_TYPED(bluespace_senders, /obj/machinery/atmospherics/component
/obj/machinery/atmospherics/components/unary/bluespace_sender/screwdriver_act(mob/living/user, obj/item/tool)
if(on)
to_chat(user, span_notice("You can't open [src] while it's on!"))
balloon_alert(user, "turn off!")
return TOOL_ACT_TOOLTYPE_SUCCESS
if(!anchored)
to_chat(user, span_notice("Anchor [src] first!"))
balloon_alert(user, "anchor!")
return TOOL_ACT_TOOLTYPE_SUCCESS
if(default_deconstruction_screwdriver(user, "[base_icon_state]_open", "[base_icon_state]", tool))
change_pipe_connection(panel_open)
@@ -112,6 +131,7 @@ GLOBAL_LIST_EMPTY_TYPED(bluespace_senders, /obj/machinery/atmospherics/component
/obj/machinery/atmospherics/components/unary/bluespace_sender/wrench_act_secondary(mob/living/user, obj/item/tool)
if(!panel_open)
balloon_alert(user, "open panel!")
return
if(default_unfasten_wrench(user, tool))
return TOOL_ACT_TOOLTYPE_SUCCESS
@@ -129,6 +149,7 @@ GLOBAL_LIST_EMPTY_TYPED(bluespace_senders, /obj/machinery/atmospherics/component
if(!can_interact(user))
return
on = !on
balloon_alert(user, "turned [on ? "on" : "off"]")
investigate_log("was turned [on ? "on" : "off"] by [key_name(user)]", INVESTIGATE_ATMOS)
update_appearance()
return
@@ -134,6 +134,7 @@
vis_contents += occupant_vis
if(airs[1])
airs[1].volume = CELL_VOLUME * 0.5
register_context()
/obj/machinery/atmospherics/components/unary/cryo_cell/on_changed_z_level(turf/old_turf, turf/new_turf, same_z_layer, notify_contents)
. = ..()
@@ -165,6 +166,20 @@
if(in_range(user, src) || isobserver(user))
. += span_notice("The status display reads: Efficiency at <b>[efficiency*100]%</b>.")
/obj/machinery/atmospherics/components/unary/cryo_cell/add_context(atom/source, list/context, obj/item/held_item, mob/user)
. = ..()
context[SCREENTIP_CONTEXT_CTRL_LMB] = "Turn [on ? "off" : "on"]"
context[SCREENTIP_CONTEXT_ALT_LMB] = "[state_open ? "Close" : "Open"] door"
if(!held_item)
return CONTEXTUAL_SCREENTIP_SET
switch(held_item.tool_behaviour)
if(TOOL_SCREWDRIVER)
context[SCREENTIP_CONTEXT_LMB] = "[panel_open ? "Close" : "Open"] panel"
if(TOOL_WRENCH)
context[SCREENTIP_CONTEXT_LMB] = "Rotate"
return CONTEXTUAL_SCREENTIP_SET
/obj/machinery/atmospherics/components/unary/cryo_cell/Destroy()
vis_contents.Cut()
@@ -534,11 +549,13 @@
/obj/machinery/atmospherics/components/unary/cryo_cell/CtrlClick(mob/user)
if(can_interact(user) && !state_open)
set_on(!on)
if(set_on(!on))
balloon_alert(user, "turned [on ? "on" : "off"]")
return ..()
/obj/machinery/atmospherics/components/unary/cryo_cell/AltClick(mob/user)
if(can_interact(user))
balloon_alert(user, "[state_open ? "closing" : "opening"] door")
if(state_open)
close_machine()
else
@@ -28,6 +28,13 @@
)
)
AddElement(/datum/element/contextual_screentip_tools, tool_screentips)
register_context()
/obj/machinery/atmospherics/components/unary/outlet_injector/add_context(atom/source, list/context, obj/item/held_item, mob/user)
. = ..()
context[SCREENTIP_CONTEXT_CTRL_LMB] = "Turn [on ? "off" : "on"]"
context[SCREENTIP_CONTEXT_ALT_LMB] = "Maximize transfer rate"
return CONTEXTUAL_SCREENTIP_SET
/obj/machinery/atmospherics/components/unary/outlet_injector/examine(mob/user)
. = ..()
@@ -60,6 +67,7 @@
/obj/machinery/atmospherics/components/unary/outlet_injector/CtrlClick(mob/user)
if(can_interact(user))
on = !on
balloon_alert(user, "turned [on ? "on" : "off"]")
investigate_log("was turned [on ? "on" : "off"] by [key_name(user)]", INVESTIGATE_ATMOS)
update_appearance()
return ..()
@@ -43,6 +43,24 @@
. = ..()
RefreshParts()
update_appearance()
register_context()
/obj/machinery/atmospherics/components/unary/thermomachine/add_context(atom/source, list/context, obj/item/held_item, mob/user)
. = ..()
context[SCREENTIP_CONTEXT_CTRL_LMB] = "Turn [on ? "off" : "on"]"
context[SCREENTIP_CONTEXT_ALT_LMB] = "Reset temperature"
if(!held_item)
return CONTEXTUAL_SCREENTIP_SET
switch(held_item.tool_behaviour)
if(TOOL_SCREWDRIVER)
context[SCREENTIP_CONTEXT_LMB] = "[panel_open ? "Close" : "Open"] panel"
if(TOOL_WRENCH)
context[SCREENTIP_CONTEXT_LMB] = "Rotate"
context[SCREENTIP_CONTEXT_RMB] = "[anchored ? "Unan" : "An"]chor"
if(TOOL_MULTITOOL)
context[SCREENTIP_CONTEXT_LMB] = "Change piping layer"
context[SCREENTIP_CONTEXT_RMB] = "Change piping color"
return CONTEXTUAL_SCREENTIP_SET
/obj/machinery/atmospherics/components/unary/thermomachine/is_connectable()
if(!anchored || panel_open)
@@ -126,6 +144,9 @@
. += span_notice("Temperature range <b>[min_temperature]K - [max_temperature]K ([(T0C-min_temperature)*-1]C - [(T0C-max_temperature)*-1]C)</b>.")
/obj/machinery/atmospherics/components/unary/thermomachine/AltClick(mob/living/user)
if(panel_open)
balloon_alert(user, "close panel!")
return
if(!can_interact(user))
return
target_temperature = T20C
@@ -172,10 +193,10 @@
/obj/machinery/atmospherics/components/unary/thermomachine/screwdriver_act(mob/living/user, obj/item/tool)
if(on)
to_chat(user, span_notice("You can't open [src] while it's on!"))
balloon_alert(user, "turn off!")
return TOOL_ACT_TOOLTYPE_SUCCESS
if(!anchored)
to_chat(user, span_notice("Anchor [src] first!"))
balloon_alert(user, "anchor!")
return TOOL_ACT_TOOLTYPE_SUCCESS
if(default_deconstruction_screwdriver(user, "thermo-open", "thermo-0", tool))
change_pipe_connection(panel_open)
@@ -189,7 +210,8 @@
/obj/machinery/atmospherics/components/unary/thermomachine/multitool_act(mob/living/user, obj/item/multitool/multitool)
if(!panel_open)
return
balloon_alert(user, "open panel!")
return TOOL_ACT_TOOLTYPE_SUCCESS
piping_layer = (piping_layer >= PIPING_LAYER_MAX) ? PIPING_LAYER_MIN : (piping_layer + 1)
to_chat(user, span_notice("You change the circuitboard to layer [piping_layer]."))
update_appearance()
@@ -204,7 +226,8 @@
/obj/machinery/atmospherics/components/unary/thermomachine/multitool_act_secondary(mob/living/user, obj/item/tool)
if(!panel_open)
return
balloon_alert(user, "open panel!")
return TOOL_ACT_TOOLTYPE_SUCCESS
color_index = (color_index >= GLOB.pipe_paint_colors.len) ? (color_index = 1) : (color_index = 1 + color_index)
set_pipe_color(GLOB.pipe_paint_colors[GLOB.pipe_paint_colors[color_index]])
visible_message(span_notice("[user] set [src]'s pipe color to [GLOB.pipe_color_name[pipe_color]]."), ignored_mobs = user)
@@ -286,6 +309,9 @@
update_appearance()
/obj/machinery/atmospherics/components/unary/thermomachine/CtrlClick(mob/living/user)
if(panel_open)
balloon_alert(user, "close panel!")
return
if(!panel_open)
if(!can_interact(user))
return
Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

After

Width:  |  Height:  |  Size: 74 KiB