Adds a brand-new HUD: The Trasen-Knox HUD! (#70474)

Hello everyone! Today I bring to you all a fancy new HUD for you lot to enjoy: The Trasen-Knox HUD! Lovingly based off of the Common Core lore maintained by EOBGames!

Well, what is it?


Its a HUD with a special theming based on the old 1970's CRT screens that were commonplace at the time, including the iconic neon green and the beige plastic casing!

This PR also includes a new behavior so that its possible for each active hand icon to be unique, instead of it being a sole highlighted icon as it was before.
image

And for those wondering, it does indeed account for multiple limbs!
image

Finally, as seen in the first screenshot, this PR adds the behavior to hide the HUD icon when you insert a piece of equipment into the slot. Thank you for adding the behavior, Fikou!

This is all as a step for upgrading and changing how the HUDs we interact with on a daily basis can be upgraded in the future to be more appealing visually! That, and it is simply gorgeous :)

PositiveEntropy, Fikou
add: Adds a new HUD: The Trasen-Knox HUD! With a theming based on classic 1970s CRT screen computers!
code: Added behavior for unique icons for active hands.
code: Added behavior that makes it so when you equip an item, the icon behind it defaults to the blank template type.
This commit is contained in:
Imaginos16
2022-10-18 23:32:21 +00:00
committed by GitHub
parent 56530fa8f0
commit 5a3c1d63cb
17 changed files with 42 additions and 17 deletions
+1
View File
@@ -153,6 +153,7 @@
#define COLOR_THEME_OPERATIVE "#B8221F"
#define COLOR_THEME_GLASS "#75A4C4"
#define COLOR_THEME_CLOCKWORK "#CFBA47"
#define COLOR_THEME_TRASENKNOX "#3ce375"
///Colors for eigenstates
#define COLOR_PERIWINKLEE "#9999FF"
+2 -1
View File
@@ -12,7 +12,8 @@ GLOBAL_LIST_INIT(available_ui_styles, list(
"Slimecore" = 'icons/hud/screen_slimecore.dmi',
"Operative" = 'icons/hud/screen_operative.dmi',
"Clockwork" = 'icons/hud/screen_clockwork.dmi',
"Glass" = 'icons/hud/screen_glass.dmi'
"Glass" = 'icons/hud/screen_glass.dmi',
"Trasen-Knox" = 'icons/hud/screen_trasenknox.dmi'
))
/proc/ui_style2icon(ui_style)
+33 -10
View File
@@ -98,6 +98,7 @@
inv_box.icon = ui_style
inv_box.slot_id = ITEM_SLOT_ICLOTHING
inv_box.icon_state = "uniform"
inv_box.icon_full = "template"
inv_box.screen_loc = ui_iclothing
inv_box.hud = src
toggleable_inventory += inv_box
@@ -107,6 +108,7 @@
inv_box.icon = ui_style
inv_box.slot_id = ITEM_SLOT_OCLOTHING
inv_box.icon_state = "suit"
inv_box.icon_full = "template"
inv_box.screen_loc = ui_oclothing
inv_box.hud = src
toggleable_inventory += inv_box
@@ -131,6 +133,7 @@
inv_box.name = "id"
inv_box.icon = ui_style
inv_box.icon_state = "id"
inv_box.icon_full = "template_small"
inv_box.screen_loc = ui_id
inv_box.slot_id = ITEM_SLOT_ID
inv_box.hud = src
@@ -140,6 +143,7 @@
inv_box.name = "mask"
inv_box.icon = ui_style
inv_box.icon_state = "mask"
inv_box.icon_full = "template"
inv_box.screen_loc = ui_mask
inv_box.slot_id = ITEM_SLOT_MASK
inv_box.hud = src
@@ -149,6 +153,7 @@
inv_box.name = "neck"
inv_box.icon = ui_style
inv_box.icon_state = "neck"
inv_box.icon_full = "template"
inv_box.screen_loc = ui_neck
inv_box.slot_id = ITEM_SLOT_NECK
inv_box.hud = src
@@ -158,6 +163,7 @@
inv_box.name = "back"
inv_box.icon = ui_style
inv_box.icon_state = "back"
inv_box.icon_full = "template_small"
inv_box.screen_loc = ui_back
inv_box.slot_id = ITEM_SLOT_BACK
inv_box.hud = src
@@ -167,6 +173,7 @@
inv_box.name = "left pocket"
inv_box.icon = ui_style
inv_box.icon_state = "pocket"
inv_box.icon_full = "template_small"
inv_box.screen_loc = ui_storage1
inv_box.slot_id = ITEM_SLOT_LPOCKET
inv_box.hud = src
@@ -176,6 +183,7 @@
inv_box.name = "right pocket"
inv_box.icon = ui_style
inv_box.icon_state = "pocket"
inv_box.icon_full = "template_small"
inv_box.screen_loc = ui_storage2
inv_box.slot_id = ITEM_SLOT_RPOCKET
inv_box.hud = src
@@ -185,6 +193,7 @@
inv_box.name = "suit storage"
inv_box.icon = ui_style
inv_box.icon_state = "suit_storage"
inv_box.icon_full = "template"
inv_box.screen_loc = ui_sstore1
inv_box.slot_id = ITEM_SLOT_SUITSTORE
inv_box.hud = src
@@ -212,6 +221,7 @@
inv_box.name = "gloves"
inv_box.icon = ui_style
inv_box.icon_state = "gloves"
inv_box.icon_full = "template"
inv_box.screen_loc = ui_gloves
inv_box.slot_id = ITEM_SLOT_GLOVES
inv_box.hud = src
@@ -221,6 +231,7 @@
inv_box.name = "eyes"
inv_box.icon = ui_style
inv_box.icon_state = "glasses"
inv_box.icon_full = "template"
inv_box.screen_loc = ui_glasses
inv_box.slot_id = ITEM_SLOT_EYES
inv_box.hud = src
@@ -230,6 +241,7 @@
inv_box.name = "ears"
inv_box.icon = ui_style
inv_box.icon_state = "ears"
inv_box.icon_full = "template"
inv_box.screen_loc = ui_ears
inv_box.slot_id = ITEM_SLOT_EARS
inv_box.hud = src
@@ -239,6 +251,7 @@
inv_box.name = "head"
inv_box.icon = ui_style
inv_box.icon_state = "head"
inv_box.icon_full = "template"
inv_box.screen_loc = ui_head
inv_box.slot_id = ITEM_SLOT_HEAD
inv_box.hud = src
@@ -248,6 +261,7 @@
inv_box.name = "shoes"
inv_box.icon = ui_style
inv_box.icon_state = "shoes"
inv_box.icon_full = "template"
inv_box.screen_loc = ui_shoes
inv_box.slot_id = ITEM_SLOT_FEET
inv_box.hud = src
@@ -257,7 +271,7 @@
inv_box.name = "belt"
inv_box.icon = ui_style
inv_box.icon_state = "belt"
// inv_box.icon_full = "template_small"
inv_box.icon_full = "template_small"
inv_box.screen_loc = ui_belt
inv_box.slot_id = ITEM_SLOT_BELT
inv_box.hud = src
@@ -365,15 +379,24 @@
H.head.screen_loc = ui_head
screenmob.client.screen += H.head
else
if(H.shoes) screenmob.client.screen -= H.shoes
if(H.gloves) screenmob.client.screen -= H.gloves
if(H.ears) screenmob.client.screen -= H.ears
if(H.glasses) screenmob.client.screen -= H.glasses
if(H.w_uniform) screenmob.client.screen -= H.w_uniform
if(H.wear_suit) screenmob.client.screen -= H.wear_suit
if(H.wear_mask) screenmob.client.screen -= H.wear_mask
if(H.wear_neck) screenmob.client.screen -= H.wear_neck
if(H.head) screenmob.client.screen -= H.head
if(H.shoes)
screenmob.client.screen -= H.shoes
if(H.gloves)
screenmob.client.screen -= H.gloves
if(H.ears)
screenmob.client.screen -= H.ears
if(H.glasses)
screenmob.client.screen -= H.glasses
if(H.w_uniform)
screenmob.client.screen -= H.w_uniform
if(H.wear_suit)
screenmob.client.screen -= H.wear_suit
if(H.wear_mask)
screenmob.client.screen -= H.wear_mask
if(H.wear_neck)
screenmob.client.screen -= H.wear_neck
if(H.head)
screenmob.client.screen -= H.head
+3 -5
View File
@@ -161,9 +161,8 @@
if(!icon_empty)
icon_empty = icon_state
if(!hud?.mymob || !slot_id || !icon_full)
return ..()
icon_state = hud.mymob.get_item_by_slot(slot_id) ? icon_full : icon_empty
if(hud?.mymob && slot_id && icon_full)
icon_state = hud.mymob.get_item_by_slot(slot_id) ? icon_full : icon_empty
return ..()
/atom/movable/screen/inventory/proc/add_overlays()
@@ -214,8 +213,7 @@
. += blocked_overlay
if(held_index == hud.mymob.active_hand_index)
. += "hand_active"
. += (held_index % 2) ? "lhandactive" : "rhandactive"
/atom/movable/screen/inventory/hand/Click(location, control, params)
// At this point in client Click() code we have passed the 1/10 sec check and little else
@@ -452,8 +452,8 @@ There are several things that need to be remembered:
var/atom/movable/screen/inventory/inv
inv = hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_LPOCKET) + 1]
inv.update_icon()
inv = hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_RPOCKET) + 1]
inv.update_icon()
if(l_store)
+2
View File
@@ -80,6 +80,8 @@
.operative .wrap {border-color: #1E0101;}
.operative .content {color: #FFFFFF; border-color: #750000; background-color: #350000;}
.trasen-knox .wrap {border-color: #998e81;}
.trasen-knox .content {color: #3ce375; border-color: #998e81; background-color: #1e1d21;}
</style>
</head>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB