SSD indicators and Status Indicator frame work

This commit is contained in:
QuoteFox
2021-05-04 13:57:39 +01:00
parent 91ff4e99d1
commit 38b2903260
5 changed files with 58 additions and 0 deletions
+5
View File
@@ -556,6 +556,11 @@ GLOBAL_LIST_INIT(ballmer_windows_me_msg, list("Yo man, what if, we like, uh, put
var/restingpwr = 1 + 4 * resting
if(!client)
add_status_indicator("ssd")
else
remove_status_indicator("ssd")
//Dizziness
if(dizziness)
var/client/C = client
+1
View File
@@ -52,5 +52,6 @@ GLOBAL_LIST_EMPTY(typing_indicator_overlays)
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
icon = 'icons/mob/talk.dmi'
icon_state = "normal_typing"
appearance_flags = RESET_COLOR | TILE_BOUND | PIXEL_SCALE
layer = ABOVE_FLY_LAYER
@@ -0,0 +1,51 @@
//Ported from virgo, with some touch ups to make it work with our code.
/mob/living
var/list/status_indicators = null // Will become a list as needed.
/mob/living/proc/add_status_indicator(mutable_appearance/thing)
if(get_status_indicator(thing))
return
if(!istype(thing, /mutable_appearance))
thing = mutable_appearance('hyperstation/icons/mob/status_indicators.dmi', icon_state = thing)
LAZYADD(status_indicators, thing)
handle_status_indicators()
/mob/living/proc/remove_status_indicator(mutable_appearance/thing)
thing = get_status_indicator(thing)
cut_overlay(thing)
LAZYREMOVE(status_indicators, thing)
handle_status_indicators()
/mob/living/proc/get_status_indicator(mutable_appearance/thing)
if(!istype(thing, /mutable_appearance))
for(var/mutable_appearance/I in status_indicators)
if(I.icon_state == thing)
return I
return LAZYACCESS(status_indicators, LAZYFIND(status_indicators, thing))
/mob/living/proc/handle_status_indicators()
// First, get rid of all the overlays.
for(var/thing in status_indicators)
cut_overlay(thing)
if(!LAZYLEN(status_indicators))
return
if(stat == DEAD)
return
// Now the indicator row can actually be built.
for(var/thing in status_indicators)
var/mutable_appearance/I = thing
I.appearance_flags = PIXEL_SCALE|KEEP_APART
I.mouse_opacity = MOUSE_OPACITY_TRANSPARENT
I.plane = HUD_PLANE
I.layer = ABOVE_FLY_LAYER
I.pixel_y = 18
I.pixel_x = 18
add_overlay(I)
Binary file not shown.

After

Width:  |  Height:  |  Size: 885 B

+1
View File
@@ -3086,6 +3086,7 @@
#include "hyperstation\code\modules\economy\account.dm"
#include "hyperstation\code\modules\integrated_electronics\input.dm"
#include "hyperstation\code\modules\mob\mob_helpers.dm"
#include "hyperstation\code\modules\mob\living\status_indicators.dm"
#include "hyperstation\code\modules\patreon\patreon.dm"
#include "hyperstation\code\modules\reagents\chemistry\reagents\food_reagents.dm"
#include "hyperstation\code\modules\reagents\chemistry\reagents\hydroponics_reactions.dm"