void Start() { _messenger = Game.Container.Resolve <IMessenger>(); _slappedToken = _messenger?.Subscribe <WasSlappedMessage>((message) => { _slappedSource?.PlayOneShot(_slappedSource.clip); }); _missToken = _messenger?.Subscribe <SlapMessage>((message) => { _missSource?.PlayOneShot(_missSource.clip); }); _jumpToken = _messenger?.Subscribe <JumpMessage>((message) => { _jumpSource?.PlayOneShot(_jumpSounds[message.PlayerNumber % _jumpSounds.Count]); }); _dashToken = _messenger?.Subscribe <DashAnimationMessage>((message) => { _dashSource?.PlayOneShot(_dashSource.clip); }); _deathToken = _messenger?.Subscribe <DeathMessage>((message) => { _deathSource?.PlayOneShot(_deathSource.clip); }); }
private void Init(IComponentUniqueId mathUniqueId, IComponentUniqueId limitsUniqueId) { this.MathUniqueID = mathUniqueId; this.LimitsUniqueID = limitsUniqueId; _gameEngineRelocationSubscription = ServiceLocator.GetInstance <IPubSubMediator>() .Subscribe <ComponentRelocatedEventData <Folders.EngineFolder> >(GameEngineRelocatedEventHandler); }
public void Unsubscribe(ISubscriptionToken token, Type payloadType) { foreach (var subscription in GetSubscriptionForPayLoad(payloadType).Where(s => s.Token.Equals(token)).ToArray()) { _subscriptions[payloadType].Remove(subscription); } }
private void Start() { _startTime = Time.time; _audioSource = GetComponent <AudioSource>(); Core.Loggers.ILoggerFactory loggerFactory = Game.Container.Resolve <Core.Loggers.ILoggerFactory>(); _logger = loggerFactory.Create(this); _messenger = Game.Container.Resolve <IMessenger>(); _playerEnteredGoalMessageToken = _messenger.Subscribe((PlayerEnteredGoalMessage playerEnteredGoalMessage) => { StartCoroutine(DelayedScreenSwitch()); }); _playerCrashedMessageToken = _messenger.Subscribe((PlayerCrashedMessage playerCrashedMessage) => { ShowCrashMenu(); _audioSource.Stop(); }); StartCoroutine(CountdownToLiftof()); StartCoroutine(Countdown()); }
public void Unsubscribe(ISubscriptionToken token) { lock (_subscriptionTokens) { _subscriptionTokens.Remove(token); } }
public void Should_unsubscribe_on_dispose_then_publish_event_to_subscribers() { //Arrange Messenger unit = GetUnit(); UnitTestMessage unityTestMessage = new UnitTestMessage(); //Act UnitTestMessage message1 = null; ISubscriptionToken subscriptionToken = unit.Subscribe((UnitTestMessage message) => { message1 = message; }); UnitTestMessage message2 = null; unit.Subscribe((UnitTestMessage message) => { message2 = message; }); subscriptionToken.Dispose(); unit.Publish(unityTestMessage); //Assert Assert.Null(message1); Assert.AreEqual(unityTestMessage, message2); }
public void Unsubscribe <TMessage>(ISubscriptionToken token) where TMessage : BaseMessage { lock (_locker) { var subscriptions = GetSubscriptionsFor <TMessage>(); subscriptions.Remove(token.Id); } }
protected ISubscriptionToken AddSubscriber(ISubscriptionToken token) { lock (_subscriptionTokens) { _subscriptionTokens.Add(token); return(token); } }
private SubscriptionToken ExtractTokenFromWrapper(ISubscriptionToken subscriptionToken) { var tokenWrapper = subscriptionToken as SubscriptionTokenWrapper <SubscriptionToken>; if (tokenWrapper == null) { throw new ArgumentException($"{nameof(subscriptionToken)} must be of type {typeof(SubscriptionTokenWrapper<SubscriptionToken>).FullName}"); } return(tokenWrapper.Token); }
public void Subscribe_Should_add_subscription_and_generate_a_subscription_token() { //Arrange Messenger unit = GetUnit(); //Act ISubscriptionToken subscriptionToken = unit.Subscribe((UnitTestMessage message) => { }); //Assert Assert.NotNull(subscriptionToken); }
public override void SetValue(object newValue, ILifetimeContainer container = null) { if (HttpContext.Current == null) { throw new InvalidOperationException("HttpContext not available"); } HttpContext.Current.Items[_key] = newValue; if (newValue as IDisposable != null) { _disposeToken = HttpContext.Current.DisposeOnPipelineCompleted(newValue as IDisposable); } }
void Start() { _body = GetComponent <Rigidbody2D>(); _logger = Game.Container.Resolve <ILoggerFactory>().Create(this); _messenger = Game.Container.Resolve <IMessenger>(); _slapMessageToken = _messenger.Subscribe <SlapMessage>((message) => { HandleSlapped(message); }); }
public override void RemoveValue(ILifetimeContainer container = null) { if (HttpContext.Current != null) { HttpContext.Current.Items.Remove(key); if (disposeToken != null) { disposeToken.Unsubscribe(); disposeToken = null; } } }
public override void SetValue(object newValue, ILifetimeContainer container = null) { if (HttpContext.Current != null) { HttpContext.Current.Items[key] = newValue; } if (newValue as IDisposable != null) { disposeToken = HttpContext.Current.DisposeOnPipelineCompleted(newValue as IDisposable); } }
public void Unsubscribe_Should_unsubscribe_token() { //Arrange Messenger unit = GetUnit(); ISubscriptionToken subscriptionToken = unit.Subscribe((UnitTestMessage message) => { }); //Act unit.Unsubscribe(subscriptionToken); //Assert }
// Start is called before the first frame update void Start() { _animator = _playerSkin.GetComponent <Animator>(); _playerController = this.GetComponent <PlayerController>(); _rigidbody = this.GetComponent <Rigidbody2D>(); _messenger = Game.Container.Resolve <IMessenger>(); _logger = Game.Container.Resolve <ILoggerFactory>().Create(this); _changeDirectionToken = _messenger.Subscribe <ChangeDirectionMessage>((message) => { if (message.PlayerNumber == _playerController.playerNumber) { _logger.Log($"Player {message.PlayerNumber} changed direction."); _playerSkin.transform.localScale = new Vector3(_playerSkin.transform.localScale.x * -1f, _playerSkin.transform.localScale.z, _playerSkin.transform.localScale.z); } }); _dashAnimationToken = _messenger.Subscribe <DashAnimationMessage>((message) => { if (message.PlayerNumber == _playerController.playerNumber && _dashParticlePrefab != null) { if (_playerSkin != null) { var particles = GameObject.Instantiate(_dashParticlePrefab); particles.transform.SetParent(_playerSkin.transform); particles.transform.localScale = Vector3.one; particles.transform.localPosition = Vector3.zero; } } }); _slappedAnimationToken = _messenger.Subscribe <WasSlappedMessage>((message) => { if (message.PlayerNumber == _playerController.playerNumber && _slapParticlePrefab != null) { if (_playerSkin != null) { var particles = GameObject.Instantiate(_slapParticlePrefab); particles.transform.SetParent(_playerSkin.transform); particles.transform.localScale = Vector3.one; particles.transform.localPosition = Vector3.zero; } } }); }
private void Start() { Core.Loggers.ILoggerFactory loggerFactory = Game.Container.Resolve <Core.Loggers.ILoggerFactory>(); _logger = loggerFactory.Create(this); _audioSource = GetComponent <AudioSource>(); _messenger = Game.Container.Resolve <IMessenger>(); _liftoffToken = _messenger.Subscribe((LiftoffMessage liftoffMessage) => { _audioSource.Play(); isStarted = true; _startTime = Time.time; }); _playerEnteredGoalMessageToken = _messenger.Subscribe((PlayerEnteredGoalMessage playerEnteredGoalMessage) => { isFinished = true; _verticalSpeed = 3f; }); _playerCrashedMessageToken = _messenger.Subscribe((PlayerCrashedMessage playerCrashedMessage) => { if (playerCrashedMessage.Sender != this) { _isAlive = false; _audioSource.Stop(); } }); _rigidbody2D = GetComponent <Rigidbody2D>(); _transform = GetComponent <Transform>(); _startTime = Time.time; }
private void Start() { _transform = GetComponent <Transform>(); Core.Loggers.ILoggerFactory loggerFactory = Game.Container.Resolve <Core.Loggers.ILoggerFactory>(); _logger = loggerFactory.Create(this); if (_target == null) { _logger.Error("No target found"); } _messenger = Game.Container.Resolve <IMessenger>(); _liftofToken = _messenger.Subscribe((LiftoffMessage liftoffMessage) => { isStarted = true; _startTime = Time.time; }); _playerEnteredGoalMessageToken = _messenger.Subscribe((PlayerEnteredGoalMessage playerEnteredGoalMessage) => { isFinished = true; }); _playerCrashedMessageToken = _messenger.Subscribe((PlayerCrashedMessage playerCrashedMessage) => { isCrashed = true; }); _sceneStartTime = Time.time; //_transform.position = new Vector3(transform.position.x, _target.position.y + _offset, transform.position.z); _offset = _transform.position.y - _target.position.y; _cameraStartPosition = transform.position; }
public void Unsubscribe <TPayload>(ISubscriptionToken subscriptionToken) { Unsubscribe(subscriptionToken, typeof(TPayload)); }
/// <summary> /// This handles the Unregistering of Message Subscribers when this VM is destroyed. /// </summary> /// <param name="subscriptionToken">The ISubscriptionToken to unregister</param> protected void HandleSubscriptionOnDispose(ISubscriptionToken subscriptionToken) { _subscriptionTokens.Add(subscriptionToken); }
public void Unsubscribe(ISubscriptionToken subscriptionToken) { Unsubscribe(subscriptionToken.Id, subscriptionToken.MessageType); }
public void Unsubscribe <TPayload>(ISubscriptionToken subscriptionToken) { _eventAggregator.GetEvent <PubSubEvent <TPayload> >().Unsubscribe(ExtractTokenFromWrapper(subscriptionToken)); }
public void Unsubscribe(ISubscriptionToken subscriptionToken, Type payloadType) { GetEvent(payloadType).Unsubscribe(ExtractTokenFromWrapper(subscriptionToken)); }