public override void OnAddedToScene() { base.OnAddedToScene(); _layers.Clear(); _bendyController = MySession.Static.Components.Get <BendyController>(); foreach (var kv in _bendyController.Layers) { OnLayerAdded(kv.Key, kv.Value); } _bendyController.LayerAdded += OnLayerAdded; if (Definition.AllowDynamic) { Entity.PositionComp.OnPositionChanged += OnPositionChanged; } FlagAnimationWarp(); _dirty = false; MarkDirty(); }
public override void OnRemovedFromScene() { if (Entity != null) { Entity.PositionComp.OnPositionChanged -= OnPositionChanged; } foreach (var l in _layers) { l.NodeCreated -= OnNodeMoved; l.NodeMoved -= OnNodeMoved; l.NodeRemoved -= OnNodeRemoved; } _bendyController.LayerAdded -= OnLayerAdded; _layers.Clear(); _bendyController = null; BindController(null); base.OnRemovedFromScene(); }