mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-26 22:50:26 +01:00
[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:
@@ -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 |
Reference in New Issue
Block a user