Files
S.P.L.U.R.T-Station-13/code/modules/shuttle/shuttle_creation/shuttle_creator_overlay.dm
2020-06-28 04:51:02 +02:00

54 lines
1.3 KiB
Plaintext

/*
* Manages the overlays for the shuttle creator drone.
*/
/datum/shuttle_creator_overlay_holder
var/client/holder
var/list/images = list()
var/list/turfs = list()
/datum/shuttle_creator_overlay_holder/proc/add_client(client/C)
holder = C
holder.images += images
/datum/shuttle_creator_overlay_holder/proc/remove_client()
if(holder)
holder.images -= images
holder = null
/datum/shuttle_creator_overlay_holder/proc/clear_highlights()
if(holder)
holder.images -= images
images.Cut()
turfs.Cut()
/datum/shuttle_creator_overlay_holder/proc/create_hightlight(turf/T)
if(T in turfs)
return
var/image/I = image('icons/turf/overlays.dmi', T, "greenOverlay")
I.plane = ABOVE_LIGHTING_PLANE
images += I
holder.images += I
turfs += T
/datum/shuttle_creator_overlay_holder/proc/remove_hightlight(turf/T)
if(!(T in turfs))
return
turfs -= T
holder.images -= images
for(var/image/I in images)
if(get_turf(I) != T)
continue
images -= I
holder.images += images
/datum/shuttle_creator_overlay_holder/proc/highlight_area(list/turfs)
for(var/turf/T in turfs)
highlight_turf(T)
/datum/shuttle_creator_overlay_holder/proc/highlight_turf(turf/T)
create_hightlight(T)
/datum/shuttle_creator_overlay_holder/proc/unhighlight_turf(turf/T)
remove_hightlight(T)