mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-23 13:10:02 +01:00
Orbits are now a subsystem (#20632)
* Sleepless perfect orbits #MOGA We bind to Moved() and use datums and lists to track the orbits, no more sleeps, no more delay. * Adds some null checks to orbit checks * Forget to set orbiting. Also sets orbiters before orbiting, to avoid edge cases of deleting a list then recreating it. * Improves orbit, adds subsystem for orbits. Most orbit loc changes will happen on move, subsystem runs every 2 ticks to make up for when that isn't the case.
This commit is contained in:
committed by
oranges
parent
fa5c08442d
commit
f71dc2c9a3
@@ -43,10 +43,9 @@ var/list/blacklisted_tesla_types = typecacheof(list(/obj/machinery/atmospherics,
|
||||
return
|
||||
|
||||
/obj/singularity/energy_ball/Destroy()
|
||||
if(orbiting && istype(orbiting, /obj/singularity/energy_ball))
|
||||
var/obj/singularity/energy_ball/EB = orbiting
|
||||
if(orbiting && istype(orbiting.orbiting, /obj/singularity/energy_ball))
|
||||
var/obj/singularity/energy_ball/EB = orbiting.orbiting
|
||||
EB.orbiting_balls -= src
|
||||
orbiting = null
|
||||
|
||||
for(var/ball in orbiting_balls)
|
||||
var/obj/singularity/energy_ball/EB = ball
|
||||
@@ -140,13 +139,16 @@ var/list/blacklisted_tesla_types = typecacheof(list(/obj/machinery/atmospherics,
|
||||
target.dissipate_strength = target.orbiting_balls.len
|
||||
|
||||
. = ..()
|
||||
|
||||
if (istype(target))
|
||||
target.orbiting_balls -= src
|
||||
target.dissipate_strength = target.orbiting_balls.len
|
||||
/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)
|
||||
qdel(src)
|
||||
|
||||
|
||||
/obj/singularity/energy_ball/proc/dust_mobs(atom/A)
|
||||
if(istype(A, /mob/living/carbon))
|
||||
var/mob/living/carbon/C = A
|
||||
|
||||
Reference in New Issue
Block a user