From 748dff84e4620fbcef2bef143775f952902e7ff3 Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Wed, 4 Aug 2021 17:16:38 -0400 Subject: [PATCH] More helpers and a smol fix --- code/datums/elements/turf_transparency.dm | 6 ++++-- code/game/turfs/flooring/flooring_decals.dm | 17 ++++++++++++----- .../overmap/ships/engines/ion_thruster.dm | 10 ++++++---- icons/turf/shuttle_parts_vr.dmi | Bin 1128 -> 3410 bytes 4 files changed, 22 insertions(+), 11 deletions(-) diff --git a/code/datums/elements/turf_transparency.dm b/code/datums/elements/turf_transparency.dm index e8808c58a0..073f076659 100644 --- a/code/datums/elements/turf_transparency.dm +++ b/code/datums/elements/turf_transparency.dm @@ -34,6 +34,8 @@ if(!show_bottom_level(our_turf) && prune_on_fail) //If we cant show whats below, and we prune on fail, change the turf to plating as a fallback our_turf.ChangeTurf(/turf/simulated/floor/plating) return FALSE + else + return TRUE if(init) below_turf?.update_icon() // So the 'ceiling-less' overlay gets added. our_turf.vis_contents += below_turf @@ -67,11 +69,11 @@ /datum/element/turf_z_transparency/proc/show_bottom_level(turf/our_turf) if(!show_bottom_level) return FALSE - var/turf/path = get_base_turf(our_turf.z) || /turf/space + var/turf/path = get_base_turf_by_area(our_turf) || /turf/space if(!ispath(path)) path = text2path(path) if(!ispath(path)) - warning("Z-level [our_turf.z] has invalid baseturf '[get_base_turf(our_turf.z)]'") + warning("Z-level [our_turf] has invalid baseturf '[get_base_turf_by_area(our_turf)]' in area '[get_area(our_turf)]'") path = /turf/space var/do_plane = ispath(path, /turf/space) ? SPACE_PLANE : null diff --git a/code/game/turfs/flooring/flooring_decals.dm b/code/game/turfs/flooring/flooring_decals.dm index 5d5f4ebff3..b420e9e73e 100644 --- a/code/game/turfs/flooring/flooring_decals.dm +++ b/code/game/turfs/flooring/flooring_decals.dm @@ -30,18 +30,25 @@ var/list/floor_decals = list() set_dir(supplied_dir) // TODO - Why can't this line be done in initialize/New()? var/turf/T = get_turf(src) if(istype(T, /turf/simulated/floor) || istype(T, /turf/unsimulated/floor) || istype(T, /turf/simulated/shuttle/floor)) - var/cache_key = "[alpha]-[color]-[dir]-[icon_state]-[T.layer]" + var/cache_key = get_cache_key(T) var/image/I = floor_decals[cache_key] if(!I) - I = image(icon = icon, icon_state = icon_state, dir = dir) - I.layer = MAPPER_DECAL_LAYER - I.color = color - I.alpha = alpha + I = make_decal_image() floor_decals[cache_key] = I LAZYADD(T.decals, I) // Add to its decals list (so it remembers to re-apply after it cuts overlays) T.add_overlay(I) // Add to its current overlays too. return T +/obj/effect/floor_decal/proc/make_decal_image() + var/image/I = image(icon = icon, icon_state = icon_state, dir = dir) + I.layer = MAPPER_DECAL_LAYER + I.color = color + I.alpha = alpha + return I + +/obj/effect/floor_decal/proc/get_cache_key(var/turf/T) + return "[alpha]-[color]-[dir]-[icon_state]-[T.layer]" + /obj/effect/floor_decal/reset name = "reset marker" diff --git a/code/modules/overmap/ships/engines/ion_thruster.dm b/code/modules/overmap/ships/engines/ion_thruster.dm index 3c84790e12..21a4f9ea3a 100644 --- a/code/modules/overmap/ships/engines/ion_thruster.dm +++ b/code/modules/overmap/ships/engines/ion_thruster.dm @@ -52,15 +52,17 @@ /obj/machinery/ion_engine/Initialize() . = ..() controller = new(src) - - var/image/i = image('icons/turf/shuttle_parts_vr.dmi', "ion_overlay") // VOREStation Edit - i.plane = PLANE_LIGHTING_ABOVE // VOREStation Edit - add_overlay(i) // VOREStation Edit + add_glow() /obj/machinery/ion_engine/Destroy() QDEL_NULL(controller) . = ..() +/obj/machinery/ion_engine/proc/add_glow() + var/image/i = image('icons/turf/shuttle_parts_vr.dmi', "ion_overlay") // VOREStation Edit + i.plane = PLANE_LIGHTING_ABOVE // VOREStation Edit + add_overlay(i) // VOREStation Edit + /obj/machinery/ion_engine/proc/get_status() . = list() .+= "Location: [get_area(src)]." diff --git a/icons/turf/shuttle_parts_vr.dmi b/icons/turf/shuttle_parts_vr.dmi index 740688a502db11d82cf6281fe4e3db884c9cb360..6f138b26cc38ec1bc9aacf2119da4aa0b4f18841 100644 GIT binary patch delta 3352 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 Z`Un0Nv9H_b+p+)v002ovPDHLkV1m$A|J48h