mirror of
https://github.com/KabKebab/GS13.git
synced 2026-07-11 16:08:32 +01:00
Merge remote-tracking branch 'upstream/master' into RBMK_Branch_Simple
This commit is contained in:
@@ -1,5 +1,3 @@
|
||||
//Archie was here
|
||||
|
||||
/obj/item/clothing/glasses/polychromic
|
||||
name = "polychromic glasses template"
|
||||
desc = "You shouldn't be seeing this. Report it if you do."
|
||||
|
||||
@@ -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)
|
||||
Reference in New Issue
Block a user