Commit Graph

7 Commits

Author SHA1 Message Date
PsiOmegaDelta
759031be74 The moved event again returns the correct result from parent.
Fixes #12072.
Fixes #12075.
Fixes #12076.
Fixes #12078.
Fixes #12096.
2016-02-03 21:54:30 +01:00
PsiOmegaDelta
6089ccccea Makes events global.
Greatly decreases the number of objects that need to be created (currently 3 event handlers in total vs basically 3 per datum)
The price is a slower lookup of listeners but on a per round basis it should still be much less than the current startup time penalty.
2016-01-26 13:12:37 +01:00
PsiOmegaDelta
cc09a86601 Optimizes moved registrations.
Now limits moved registrations to when strictly necessary. That is:
* When entering a movable atom, the entering object only registers to its moved event if it has moved listeners on its own.
* Instead, when registering to a moved event, registrations occur recursively until a non-/atom/movable is encountered or a prior movement registration from the same object is reached.
2016-01-20 11:11:27 +01:00
PsiOmegaDelta
1210a6e42f Adds the moved event.
Allows movable atoms to follow other movable atoms, as quickly as BYOND allows. Also supports following atoms inside other atoms.
However, this only works fully when Move() or forceMove() is utilized. Setting loc directly will not raise the moved event.
2016-01-18 20:16:48 +01:00
PsiOmegaDelta
95d73b8b71 Makes the floor wetness proc use the scheduler instead of sleeping. 2016-01-13 10:37:31 +01:00
PsiOmegaDelta
a4545f8ded Scheduler, observation, and New() tweaks.
Corrects a number of places where New() did not call ..(), and implements similar changes to attempt to ensure New()/initialize() complete running before qdel() runs.
Cuts down on the number of created items during server start.
2015-12-27 17:44:53 +01:00
PsiOmegaDelta
7d7aa4b50b Turns events into vars instead of a list, to greatly simplify qdel() cleanup. 2015-12-14 13:44:05 +01:00