mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-24 21:40:55 +01:00
Cross-Z Lighting (#2281)
This PR edits the lighting engine's turf selection algorithm to also include turfs below openturf tiles, allowing for cross-Z lighting. changes: Lights now will now shine down Z-levels when they light up an open turf. Commented-out openturf starlight pending making it not pummel SSlighting. Openspace overlays are now only queued if they are not already in the queue. Lighting overlays will now also update their associated openturf overlay on update if they have one. Removed an old unused message from the asteroid generation subsystem.
This commit is contained in:
@@ -49,7 +49,7 @@
|
||||
return
|
||||
|
||||
// check_existence returns TRUE if the overlay is valid.
|
||||
if (bound_overlay.check_existence())
|
||||
if (bound_overlay.check_existence() && !bound_overlay.queued)
|
||||
SSopenturf.queued_overlays += bound_overlay
|
||||
|
||||
/atom/movable/proc/get_above_oo()
|
||||
@@ -105,4 +105,47 @@
|
||||
|
||||
return ..()
|
||||
|
||||
// /atom/movable/openspace/overlay is in openspace_overlay.dm
|
||||
// The visual representation of an atom under an openspace turf.
|
||||
/atom/movable/openspace/overlay
|
||||
plane = OPENTURF_MAX_PLANE
|
||||
var/atom/movable/associated_atom
|
||||
var/depth
|
||||
var/queued = FALSE
|
||||
|
||||
/atom/movable/openspace/overlay/New()
|
||||
SSopenturf.openspace_overlays += src
|
||||
|
||||
/atom/movable/openspace/overlay/Destroy()
|
||||
SSopenturf.openspace_overlays -= src
|
||||
|
||||
if (associated_atom)
|
||||
associated_atom.bound_overlay = null
|
||||
associated_atom = null
|
||||
|
||||
return ..()
|
||||
|
||||
/atom/movable/openspace/overlay/attackby(obj/item/W, mob/user)
|
||||
user << span("notice", "\The [src] is too far away.")
|
||||
|
||||
/atom/movable/openspace/overlay/attack_hand(mob/user as mob)
|
||||
user << span("notice", "You cannot reach \the [src] from here.")
|
||||
|
||||
/atom/movable/openspace/overlay/attack_generic(mob/user as mob)
|
||||
user << span("notice", "You cannot reach \the [src] from here.")
|
||||
|
||||
/atom/movable/openspace/overlay/forceMove(atom/dest)
|
||||
. = ..()
|
||||
check_existence()
|
||||
|
||||
/atom/movable/openspace/overlay/Move()
|
||||
. = ..()
|
||||
check_existence()
|
||||
|
||||
// Checks if we've moved off of an openturf.
|
||||
// Returns TRUE if we're continuing to exist, FALSE if we're deleting ourselves.
|
||||
/atom/movable/openspace/overlay/proc/check_existence()
|
||||
if (!istype(loc, /turf/simulated/open))
|
||||
qdel(src)
|
||||
return FALSE
|
||||
else
|
||||
return TRUE
|
||||
|
||||
@@ -1,43 +0,0 @@
|
||||
// The visual representation of an atom under an openspace turf.
|
||||
/atom/movable/openspace/overlay
|
||||
plane = OPENTURF_MAX_PLANE
|
||||
var/atom/movable/associated_atom
|
||||
var/depth
|
||||
|
||||
/atom/movable/openspace/overlay/New()
|
||||
SSopenturf.openspace_overlays += src
|
||||
|
||||
/atom/movable/openspace/overlay/Destroy()
|
||||
SSopenturf.openspace_overlays -= src
|
||||
|
||||
if (associated_atom)
|
||||
associated_atom.bound_overlay = null
|
||||
associated_atom = null
|
||||
|
||||
return ..()
|
||||
|
||||
/atom/movable/openspace/overlay/attackby(obj/item/W, mob/user)
|
||||
user << span("notice", "\The [src] is too far away.")
|
||||
|
||||
/atom/movable/openspace/overlay/attack_hand(mob/user as mob)
|
||||
user << span("notice", "You cannot reach \the [src] from here.")
|
||||
|
||||
/atom/movable/openspace/overlay/attack_generic(mob/user as mob)
|
||||
user << span("notice", "You cannot reach \the [src] from here.")
|
||||
|
||||
/atom/movable/openspace/overlay/forceMove(atom/dest)
|
||||
. = ..()
|
||||
check_existence()
|
||||
|
||||
/atom/movable/openspace/overlay/Move()
|
||||
. = ..()
|
||||
check_existence()
|
||||
|
||||
// Checks if we've moved off of an openturf.
|
||||
// Returns TRUE if we're continuing to exist, FALSE if we're deleting ourselves.
|
||||
/atom/movable/openspace/overlay/proc/check_existence()
|
||||
if (!istype(loc, /turf/simulated/open))
|
||||
qdel(src)
|
||||
return FALSE
|
||||
else
|
||||
return TRUE
|
||||
Reference in New Issue
Block a user