Refactored movement observable away (#20083)

Refactored movement observable away, use only the signal.
Some tweaks to the signal.
This commit is contained in:
Fluffy
2024-10-26 15:53:07 +00:00
committed by GitHub
parent 3de4911dc8
commit d40d459d42
35 changed files with 532 additions and 434 deletions
+4 -4
View File
@@ -78,18 +78,18 @@ This is /obj/machinery level code to properly manage power usage from the area.
/obj/machinery/Initialize(mapload, d = 0, populate_components = TRUE, is_internal = FALSE)
internal = is_internal
REPORT_POWER_CONSUMPTION_CHANGE(0, get_power_usage())
GLOB.moved_event.register(src, src, PROC_REF(update_power_on_move))
RegisterSignal(src, COMSIG_MOVABLE_MOVED, PROC_REF(update_power_on_move))
power_init_complete = TRUE
. = ..()
// Or in Destroy at all, but especially after the ..().
/obj/machinery/Destroy()
GLOB.moved_event.unregister(src, src, PROC_REF(update_power_on_move))
UnregisterSignal(src, COMSIG_MOVABLE_MOVED)
REPORT_POWER_CONSUMPTION_CHANGE(get_power_usage(), 0)
. = ..()
/obj/machinery/proc/update_power_on_move(atom/movable/mover, atom/old_loc, atom/new_loc)
area_changed(get_area(old_loc), get_area(new_loc))
/obj/machinery/proc/update_power_on_move(atom/movable/mover, atom/old_loc, dir, forced, list/old_locs)
area_changed(get_area(old_loc), get_area(src))
/obj/machinery/proc/area_changed(area/old_area, area/new_area)
if(old_area == new_area)
-7
View File
@@ -31,9 +31,6 @@
/obj/singularity/energy_ball/Destroy()
walk(src, 0) // Stop walking
if(orbiting && istype(orbiting.orbiting, /obj/singularity/energy_ball))
var/obj/singularity/energy_ball/EB = orbiting.orbiting
EB.orbiting_balls -= src
for(var/ball in orbiting_balls)
var/obj/singularity/energy_ball/EB = ball
@@ -257,10 +254,6 @@
. = ..()
/obj/singularity/energy_ball/stop_orbit()
if (orbiting && istype(orbiting.orbiting, /obj/singularity/energy_ball))
var/obj/singularity/energy_ball/orbitingball = orbiting.orbiting
orbitingball.orbiting_balls -= src
orbitingball.dissipate_strength = orbitingball.orbiting_balls.len
. = ..()
if (!loc && !QDELETED(src))
qdel(src)