Assert that node is equal to component node.
Use one if-statement instead of two.
Use didSet for node and enable flag to add/remove observers
Remove weakSelf from observer callbacks
use didSet for node to for enabling/disabling it.
Remove sample for now.
add willSet to removing to Node
add didSet to adding to Node and dealing with observers.
isEnabled is false until added as a component.
-_didAddNodeToScene no longer calls addObserver()
-_didRemoveNodeFromScene no longer sets self.isEnabled = false
Do not call remove or add observer unless necessary.
Create a ObserverCollection to keep the observers inside a struct.
preparing to change isEnabled & node
isEnabled controlls Observers
node controlls _didRemoveFromNode and _didAddToNode that controlls isEnabled by proxy.
Setting isEnabled via .node = .
Look more into this... dude seriously don't forget about this like you did last time.. asshat.
Yeah I called you asshat.... Should have gone to sleep... should have slept. But nope... up all night.. and now you gotta go to work.