public void Unsubscribe(ManagerEvents managerEvent, Subscription <TManager> subscription, Priority priority = Priority.Medium) { switch (priority) { default: if (_mediumSubscriptions.ContainsKey(managerEvent)) { _mediumSubscriptions[managerEvent].Remove(subscription); _mediumSubscriptionsCache[managerEvent] = _mediumSubscriptions[managerEvent].ToArray(); } break; case Priority.Low: if (_lowSubscriptions.ContainsKey(managerEvent)) { _lowSubscriptions[managerEvent].Remove(subscription); _lowSubscriptionsCache[managerEvent] = _lowSubscriptions[managerEvent].ToArray(); } break; case Priority.High: if (_highSubscriptions.ContainsKey(managerEvent)) { _highSubscriptions[managerEvent].Remove(subscription); _highSubscriptionsCache[managerEvent] = _highSubscriptions[managerEvent].ToArray(); } break; } CoreManager.Log(LogLevel.Info, $"{subscription.Target} Unsubscribed! ManagerEvent: \"{ managerEvent}\" Priority: {priority.ToString()}"); }
private void _Publish(ManagerEvents managerEvent, object[] arguments) { if (_highSubscriptionsCache.ContainsKey(managerEvent)) { Subscription <TManager>[] array = _highSubscriptionsCache[managerEvent]; foreach (Subscription <TManager> subscription in array) { subscription(arguments); } } if (_mediumSubscriptionsCache.ContainsKey(managerEvent)) { Subscription <TManager>[] array2 = _mediumSubscriptionsCache[managerEvent]; foreach (Subscription <TManager> subscription2 in array2) { subscription2(arguments); } } if (_lowSubscriptionsCache.ContainsKey(managerEvent)) { Subscription <TManager>[] array3 = _lowSubscriptionsCache[managerEvent]; foreach (Subscription <TManager> subscription3 in array3) { subscription3(arguments); } } CoreManager.Log(LogLevel.Info, $"Published! ManagerEvent: \"{managerEvent}\"", arguments); }
public override void Update(double gameTime) { if (ManagerEvents.Active) { return; } _counter += gameTime; if (_counter < _cooldown) { return; } var ownerSprite = GetComponent <Sprite>(ComponentType.Sprite); if (ownerSprite == null) { return; } foreach (var baseObject in _targetList) { var sprite = baseObject.GetComponent <Sprite>(ComponentType.Sprite); if (sprite != null) { if (ManagerFunction.Distance(ownerSprite.Position, sprite.Position) < _distance) { ManagerEvents.AddEvents(_gameEvent); _counter = 0; } } } }
protected bool Push(ManagerEvents managerEvent, params object[] arguments) { TManager manager = Manager; bool published = manager._OnPull(this, managerEvent, arguments); CoreManager.Log(LogLevel.Info, $"Push status: {published} , ManagerEvent: \"{managerEvent}\"", arguments); return(published); }
public ScreenWorld(ManagerScreen managerScreen) : base(managerScreen) { _managerCamera = new ManagerCamera(); _managerMap = new ManagerMap("newmap", _managerCamera); _entities = new Entities(); _managerEvents = new ManagerEvents(); _managerPlayer = new ManagerPlayer(); //uglyyyyyyy FactoryDeathAnimation.Initailize(_managerCamera); }
private void Awake() { if (instance != null) { Destroy(this.gameObject); } else { instance = this; } }
public void StartEvent() { if (!ManagerEvents.Active) { var keys = _gameEvents.Keys; var biggest = -1; foreach (int key in keys) { if (key > biggest && ManagerLists.GetEventSwitchValue(key)) { biggest = key; } } if (biggest != -1) { ManagerEvents.AddEvents(_gameEvents[biggest]); } } }
internal bool _OnPull(Actor <TManager> actor, ManagerEvents managerEvent, object[] arguments) { return(OnPull(actor, managerEvent, arguments)); }
protected virtual bool OnPull(Actor <TManager> actor, ManagerEvents managerEvent, object[] arguments) { _Publish(managerEvent, arguments); return(true); }
protected void Publish(ManagerEvents managerEvent, params object[] arguments) { _Publish(managerEvent, arguments); }