Beispiel #1
0
        protected override void OnExit()
        {
            screen.AnimateOut(screen.Dispose);

            RubiksCube.AnimateOut(RubiksCube.Dispose);

            MessengerHub.Publish(new DisableCameraControlMessage(this));
            MessengerHub.Publish(new ResetCameraMessage(this));
        }
Beispiel #2
0
 protected override void OnEnter()
 {
     MessengerHub.Publish(new CameraOrbitRequestMessage(this,
                                                        times: 3,
                                                        onComplete: () =>
     {
         screen.Build();
         screen.AnimateIn();
     }));
 }
Beispiel #3
0
        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));
            }
        }
Beispiel #5
0
        private void CloseOptionsScreen()
        {
            optionsScreen.AnimateOut(() =>
            {
                MessengerHub.Publish(new EnableCameraControlMessage(this));

                EnableInput();

                timer.Start();

                optionsScreen.Dispose();
            });
        }
Beispiel #6
0
        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));
        }
Beispiel #7
0
        private void OnOptionsRequested(OptionsRequestedMessage message)
        {
            DisableInput();

            MessengerHub.Publish(new DisableCameraControlMessage(this));

            timer.Stop();

            optionsScreen = new OptionsScreen(this, inGameScreen.TimerIsVisible);

            optionsScreen.Build();

            optionsScreen.AnimateIn();
        }
Beispiel #8
0
        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);
        }
Beispiel #9
0
        protected override void OnEnter()
        {
            cmdCompleteSubscriptionToken = MessengerHub.Subscribe <CommandCompleteMessage>(OnCommandCompleted);

            optionsRequestedSubscriptionToken = MessengerHub.Subscribe <OptionsRequestedMessage>(OnOptionsRequested);

            MessengerHub.Publish(new EnableCameraControlMessage(this));

            EnableInput();

            timer.Start();

            inGameScreen.AnimateIn();
        }
Beispiel #10
0
        public void OnStayRequested()
        {
            screen.AnimateOut(() =>
            {
                screen.Dispose();

                MessengerHub.Publish(new EnableCameraControlMessage(this));

                screen = new FreeViewScreen(this);

                screen.Build();

                screen.AnimateIn();
            });
        }
Beispiel #11
0
        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();
            });
        }
Beispiel #12
0
        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);
        }
Beispiel #13
0
        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);
        }
Beispiel #14
0
 public void NullPublishCausesException()
 {
     var messenger = new MessengerHub();
     messenger.Publish<TestMessage>(null);
 }
Beispiel #15
0
        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));
        }