protected override void OnExit() { screen.AnimateOut(screen.Dispose); RubiksCube.AnimateOut(RubiksCube.Dispose); MessengerHub.Publish(new DisableCameraControlMessage(this)); MessengerHub.Publish(new ResetCameraMessage(this)); }
protected override void OnEnter() { MessengerHub.Publish(new CameraOrbitRequestMessage(this, times: 3, onComplete: () => { screen.Build(); screen.AnimateIn(); })); }
private void OnDragEnd(DragEndMessage message) { if (!RubiksCube.AcceptDragInput(message, out var command)) { return; } DisableInput(); MessengerHub.Publish(new EnqueueCommandMessage(this, command)); }
public void MessengerTest() { var hub = new MessengerHub(); for (int i = 0; i < count; i++) { hub.Subscribe<TestMessage>(_ => { //do nothing }); } for (int i = 0; i < count; i++) { hub.Publish (new TestMessage(this)); } }
private void CloseOptionsScreen() { optionsScreen.AnimateOut(() => { MessengerHub.Publish(new EnableCameraControlMessage(this)); EnableInput(); timer.Start(); optionsScreen.Dispose(); }); }
private void RotateRandomSlice() { var position = Random.rotationUniform * Vector3.right * Random.Range(-randomPointVariance, randomPointVariance); var axis = Random.Range(0, sliceFinders.Count - 1); var slice = sliceFinders[axis](position); var command = new RotateSliceCommand(slice, Random.value > 0.5f); MessengerHub.Publish(new EnqueueCommandMessage(this, command, transient: true)); }
private void OnOptionsRequested(OptionsRequestedMessage message) { DisableInput(); MessengerHub.Publish(new DisableCameraControlMessage(this)); timer.Stop(); optionsScreen = new OptionsScreen(this, inGameScreen.TimerIsVisible); optionsScreen.Build(); optionsScreen.AnimateIn(); }
protected override void OnExit() { cmdCompleteSubscriptionToken.Dispose(); optionsRequestedSubscriptionToken.Dispose(); MessengerHub.Publish(new DisableCameraControlMessage(this)); MessengerHub.Publish(new ResetCameraMessage(this)); timer.Stop(); DisableInput(); inGameScreen.AnimateOut(inGameScreen.Dispose); }
protected override void OnEnter() { cmdCompleteSubscriptionToken = MessengerHub.Subscribe <CommandCompleteMessage>(OnCommandCompleted); optionsRequestedSubscriptionToken = MessengerHub.Subscribe <OptionsRequestedMessage>(OnOptionsRequested); MessengerHub.Publish(new EnableCameraControlMessage(this)); EnableInput(); timer.Start(); inGameScreen.AnimateIn(); }
public void OnStayRequested() { screen.AnimateOut(() => { screen.Dispose(); MessengerHub.Publish(new EnableCameraControlMessage(this)); screen = new FreeViewScreen(this); screen.Build(); screen.AnimateIn(); }); }
protected override void OnEnter() { remainingRandomMoveCount = Random.Range(RandomMoveCountMin, RandomMoveCountMax); commandFinishedSubscriptionToken = MessengerHub.Subscribe <CommandCompleteMessage>(OnCommandFinished); MessengerHub.Publish(new EnableCameraControlMessage(this)); RubiksCube.AnimateIn(() => { lightLevelController.TurnOff(delay: 1f); RotateRandomSlice(); }); }
public void SubscribeAndPublishAllowsMessageToBeReceived() { var messenger = new MessengerHub(); var message = new TestMessage(this); var messageReceived = false; messenger.Subscribe<TestMessage>(m => { Assert.That(m, Is.EqualTo(message)); Assert.That(m.Sender, Is.EqualTo(this)); messageReceived = true; }); messenger.Publish(message); Assert.IsTrue(messageReceived); }
public void MultipleSubscribeAndPublishAllowsMessageToBeReceived() { var messenger = new MessengerHub(); var message = new TestMessage(this); var otherMessage = new OtherTestMessage(this); var messageReceived = 0; messenger.Subscribe<TestMessage>(m => { Assert.That(m, Is.EqualTo(message)); Assert.That(m.Sender, Is.EqualTo(this)); messageReceived++; }); var otherMessageReceived = 0; messenger.Subscribe<OtherTestMessage>(m => { Assert.That(m, Is.EqualTo(otherMessage)); Assert.That(m.Sender, Is.EqualTo(this)); otherMessageReceived++; }); messenger.Publish(otherMessage); Assert.AreEqual(0, messageReceived); Assert.AreEqual(1, otherMessageReceived); messenger.Publish(message); Assert.AreEqual(1, messageReceived); Assert.AreEqual(1, otherMessageReceived); messenger.Publish(message); Assert.AreEqual(2, messageReceived); Assert.AreEqual(1, otherMessageReceived); messenger.Publish(message); Assert.AreEqual(3, messageReceived); Assert.AreEqual(1, otherMessageReceived); messenger.Publish(otherMessage); Assert.AreEqual(3, messageReceived); Assert.AreEqual(2, otherMessageReceived); }
public void NullPublishCausesException() { var messenger = new MessengerHub(); messenger.Publish<TestMessage>(null); }
public void UnsubscribePreventsMessagesBeingReceived() { var messenger = new MessengerHub(); Action<TestMessage> action = _ => Assert.That(false, "This event should not fire!"); var id = messenger.Subscribe(action); messenger.Unsubscribe<TestMessage>(id); messenger.Publish(new TestMessage(this)); }