mirror of
https://github.com/KabKebab/GS13.git
synced 2026-07-18 11:30:50 +01:00
SSD indicators and Status Indicator frame work
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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 |
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user