public void subscribe(AnimationSubscriber newSub) { if (!subList.Contains(newSub)) { subList.Add(newSub); } }
public EntitySubscriber(IEntity entity, Action <int> onLayerChanged) { _entity = entity; _onLayerChanged = onLayerChanged; entity.Bind <IDrawableInfoComponent>(c => _layer = c.RenderLayer?.Z ?? 0, _ => _layer = 0); var vBinding = bind <IVisibleComponent>(entity, onObjVisibleChanged); var tBinding = bind <ITranslateComponent>(entity, onObjTranslatePropertyChanged); var dBinding = bind <IDrawableInfoComponent>(entity, onObjDrawablePropertyChanged); AnimationSubscriber animSubscriber = new AnimationSubscriber(entity, onSomethingChanged); var aBinding = animSubscriber.Bind(); var trBinding = entity.Bind <IInObjectTreeComponent>(c => { _tree = c; c.TreeNode.OnParentChanged.Subscribe(onSomethingChanged); onSomethingChanged(); }, c => { _tree = null; c.TreeNode.OnParentChanged.Unsubscribe(onSomethingChanged); onSomethingChanged(); }); _bindings = new List <API.IComponentBinding> { vBinding, tBinding, dBinding, aBinding, trBinding }; }
private void subscribeObj(IObject obj) { if (obj == null) { return; } var vBinding = bind <IVisibleComponent>(obj, onObjVisibleChanged); var iBinding = bind <IImageComponent>(obj, onObjImagePropertyChanged); var tBinding = bind <ITranslateComponent>(obj, onObjTranslatePropertyChanged); var dBinding = bind <IDrawableInfoComponent>(obj, onObjDrawablePropertyChanged); AnimationSubscriber animSubscriber = new AnimationSubscriber(obj, onSomethingChanged); var aBinding = animSubscriber.Bind(); obj.TreeNode.OnParentChanged.Subscribe(onSomethingChanged); _bindings[obj.ID] = new List <API.IComponentBinding> { vBinding, iBinding, tBinding, dBinding, aBinding }; }
public EntitySubscriber(IEntity entity, Action <int> onLayerChanged) { _onLayerChanged = onLayerChanged; entity.Bind <IDrawableInfoComponent>(c => _drawable = c, _ => _drawable = null); var vBinding = bind <IVisibleComponent>(entity, onObjVisibleChanged); var tBinding = bind <ITranslateComponent>(entity, onObjTranslatePropertyChanged); var dBinding = bind <IDrawableInfoComponent>(entity, onObjDrawablePropertyChanged); var eBinding = bind <IAreaComponent>(entity, onAreaPropertyChanged); var bBinding = bind <IWalkBehindArea>(entity, onWalkBehindPropertyChanged); AnimationSubscriber animSubscriber = new AnimationSubscriber(entity, onSomethingChanged); var aBinding = animSubscriber.Bind(); var trBinding = entity.Bind <IInObjectTreeComponent>(c => { _tree = c; c.TreeNode.OnParentChanged.Subscribe(onSomethingChanged); onSomethingChanged(); }, c => { _tree = null; c.TreeNode.OnParentChanged.Unsubscribe(onSomethingChanged); onSomethingChanged(); }); _bindings = new List <IComponentBinding> { vBinding, tBinding, dBinding, aBinding, trBinding, eBinding, bBinding }; }
public void unsubscribe(AnimationSubscriber removeSub) { subList.Remove(removeSub); }