[MIRROR] Silicon airlock hotkey screen tips [MDB IGNORE] (#11706)

* Silicon airlock hotkey screen tips  (#64991)

* Silicon airlock hotkey screen tips

Co-authored-by: cacogen <25089914+cacogen@users.noreply.github.com>
This commit is contained in:
SkyratBot
2022-02-24 06:49:11 -05:00
committed by GitHub
co-authored by cacogen
parent d086bb8c9d
commit 5e70bf3d6b
4 changed files with 48 additions and 4 deletions
+6
View File
@@ -4,12 +4,18 @@
/// Context applied to RMB actions
#define SCREENTIP_CONTEXT_RMB "RMB"
/// Context applied to Shift-LMB actions
#define SCREENTIP_CONTEXT_SHIFT_LMB "Shift-LMB"
/// Context applied to Ctrl-LMB actions
#define SCREENTIP_CONTEXT_CTRL_LMB "Ctrl-LMB"
/// Context applied to Alt-LMB actions
#define SCREENTIP_CONTEXT_ALT_LMB "Alt-LMB"
/// Context applied to Ctrl-Shift-LMB actions
#define SCREENTIP_CONTEXT_CTRL_SHIFT_LMB "Ctrl-Shift-LMB"
/// Screentips are always disabled
#define SCREENTIP_PREFERENCE_DISABLED "Disabled"
+23 -2
View File
@@ -2131,11 +2131,14 @@
if(screentips_enabled == SCREENTIP_PREFERENCE_DISABLED || (flags_1 & NO_SCREENTIPS_1))
active_hud.screentip_text.maptext = ""
else
active_hud.screentip_text.maptext_y = 0
var/lmb_rmb_line = ""
var/ctrl_lmb_alt_lmb_line = ""
var/shift_lmb_ctrl_shift_lmb_line = ""
var/extra_lines = 0
var/extra_context = ""
if (isliving(user) || isovermind(user))
if (isliving(user) || isovermind(user) || isaicamera(user))
var/obj/item/held_item = user.get_active_held_item()
if ((flags_1 & HAS_CONTEXTUAL_SCREENTIPS_1) || (held_item?.item_flags & ITEM_HAS_CONTEXTUAL_SCREENTIPS))
@@ -2160,6 +2163,7 @@
// Ctrl-LMB, Alt-LMB on one line...
if (lmb_rmb_line != "")
lmb_rmb_line += "<br>"
extra_lines++
if (SCREENTIP_CONTEXT_CTRL_LMB in context)
ctrl_lmb_alt_lmb_line += "[SCREENTIP_CONTEXT_CTRL_LMB]: [context[SCREENTIP_CONTEXT_CTRL_LMB]]"
if (SCREENTIP_CONTEXT_ALT_LMB in context)
@@ -2167,7 +2171,24 @@
ctrl_lmb_alt_lmb_line += " | "
ctrl_lmb_alt_lmb_line += "[SCREENTIP_CONTEXT_ALT_LMB]: [context[SCREENTIP_CONTEXT_ALT_LMB]]"
extra_context = "<br><span style='font-size: 7px'>[lmb_rmb_line][ctrl_lmb_alt_lmb_line]</span>"
// Shift-LMB, Ctrl-Shift-LMB on one line...
if (ctrl_lmb_alt_lmb_line != "")
ctrl_lmb_alt_lmb_line += "<br>"
extra_lines++
if (SCREENTIP_CONTEXT_SHIFT_LMB in context)
shift_lmb_ctrl_shift_lmb_line += "[SCREENTIP_CONTEXT_SHIFT_LMB]: [context[SCREENTIP_CONTEXT_SHIFT_LMB]]"
if (SCREENTIP_CONTEXT_CTRL_SHIFT_LMB in context)
if (shift_lmb_ctrl_shift_lmb_line != "")
shift_lmb_ctrl_shift_lmb_line += " | "
shift_lmb_ctrl_shift_lmb_line += "[SCREENTIP_CONTEXT_CTRL_SHIFT_LMB]: [context[SCREENTIP_CONTEXT_CTRL_SHIFT_LMB]]"
if (shift_lmb_ctrl_shift_lmb_line != "")
extra_lines++
if(extra_lines)
extra_context = "<br><span style='font-size: 7px'>[lmb_rmb_line][ctrl_lmb_alt_lmb_line][shift_lmb_ctrl_shift_lmb_line]</span>"
//first extra line pushes atom name line up 10px, subsequent lines push it up 9px, this offsets that and keeps the first line in the same place
active_hud.screentip_text.maptext_y = -10 + (extra_lines - 1) * -9
if (screentips_enabled == SCREENTIP_PREFERENCE_CONTEXT_ONLY && extra_context == "")
active_hud.screentip_text.maptext = ""
+17
View File
@@ -651,10 +651,27 @@
/obj/machinery/door/airlock/add_context(atom/source, list/context, obj/item/held_item, mob/user)
. = ..()
if(isAI(user) || iscyborg(user))
if(!(machine_stat & BROKEN))
var/ui = SStgui.try_update_ui(user, src)
if(!ui && !held_item)
context[SCREENTIP_CONTEXT_LMB] = "Open UI"
context[SCREENTIP_CONTEXT_SHIFT_LMB] = density ? "Open" : "Close"
context[SCREENTIP_CONTEXT_CTRL_LMB] = locked ? "Unbolt" : "Bolt"
context[SCREENTIP_CONTEXT_ALT_LMB] = isElectrified() ? "Unelectrify" : "Electrify"
context[SCREENTIP_CONTEXT_CTRL_SHIFT_LMB] = emergency ? "Unset emergency access" : "Set emergency access"
. = CONTEXTUAL_SCREENTIP_SET
if(!isliving(user))
return .
if(!Adjacent(user))
return .
switch (held_item?.tool_behaviour)
if (TOOL_SCREWDRIVER)
context[SCREENTIP_CONTEXT_LMB] = panel_open ? "Close panel" : "Open panel"
return CONTEXTUAL_SCREENTIP_SET
if (TOOL_CROWBAR)
if (panel_open)
if (security_level == AIRLOCK_SECURITY_PLASTEEL_O_S || security_level == AIRLOCK_SECURITY_PLASTEEL_I_S)
+2 -2
View File
@@ -55,10 +55,10 @@
/obj/machinery/door/add_context(atom/source, list/context, obj/item/held_item, mob/user)
. = ..()
if(!isliving(user))
if(isaicamera(user) || issilicon(user))
return .
if (isnull(held_item))
if (isnull(held_item) && Adjacent(user))
context[SCREENTIP_CONTEXT_LMB] = "Open"
return CONTEXTUAL_SCREENTIP_SET