示例#1
0
    new void reset()
    {
        if (level == null)
        {
            level = GameObject.Find("LevelController").GetComponent <LevelControllerScript> ();
        }

        if (player == null)
        {
            player = GameObject.Find("Player").GetComponent <PlayerScript> ();
        }

        if (dark)
        {
            timeToCompletion = darkMeditationTime;
        }
        else
        {
            timeToCompletion = meditationTime;                  // 40 seconds //(float)Random.Range (minMeditationDuration, maxMeditationDuration);
        }
        breather = GameObject.Find("Breather").GetComponent <UIBreather> ();

        meditationState = MeditationState.idle;
        fruit.reset();
    }
示例#2
0
    new void Update()
    {
        /*if (meditationStatus == MeditationStatus.meditating)
         * {
         *      elapsedTime += Time.deltaTime;
         *      if (tParam > 1.0f)
         *              meditationStatus = MeditationStatus.meditated;
         *      player.ascend ();
         * }*/

        if (meditationState == MeditationState.waitingForChispa)
        {
            if (dark)
            {
                player.meditate();
                level.musicFadeOut(5.0f);
                meditationState = MeditationState.meditating;
                fruit._wa_grow(this, timeToCompletion);
            }
            else
            {
                if (effectProgram != null)
                {
                    if (effectProgram.isProgramRunning [0])                     // wait for chispa
                    {
                        return;
                    }
                }

                fruit._wa_grow(this, timeToCompletion);
                breather.activate();
                player.meditate();
                level.musicFadeOut(10.0f);
                meditationState = MeditationState.meditating;
            }
        }

        if (meditationState == MeditationState.meditating)
        {
            if (isWaitingForActionToComplete)
            {
                return;
            }

            player.ascend();
            level.musicFadeIn();
            meditationState = MeditationState.meditated;
        }

        if (meditationState == MeditationState.meditated)
        {
        }
    }
示例#3
0
 public LightManager(DMX dmx)
 {
     PreviousMediationState = MeditationState.IDLE;
     CurrentMediationState  = MeditationState.IDLE;
     PreviousColor          = Color.Blue;
     CurrentColor           = Color.Aqua;
     CurrentSecondaryColor  = Color.LightSlateGray;
     CurrentTertiaryColor   = Color.HotPink;
     CurrentHeartRate       = 50;
     LightDMX = dmx;
     BuildGradientTransition();
     // 25 FPS timer to update LEDs
     heartRatePulseTimer = new Timer(PulseTimer_Tick, null, Timeout.Infinite, Timeout.Infinite);
 }
示例#4
0
    /*void OnTriggerEnter(Collider other) {
     *
     *      if (other.tag == "Player") {
     *              meditationStatus = MeditationStatus.meditating;
     *              player = other.gameObject.GetComponent<PlayerScript> ();
     *              player.meditate ();
     *      }
     *
     * }*/

    override public void effect()
    {
        meditationState = MeditationState.waitingForChispa;
        player.blockControls();
        player.setOrientation(0);

        if (!dark)
        {
            if (effectProgram != null)
            {
                effectProgram.startProgram(0);
            }
        }
        else
        {
            player.meditate();
        }
    }
示例#5
0
        /// <summary>
        /// Establishes all bus subscriptions to RabbitMQ
        /// </summary>
        public void HitchToTheBus()
        {
            if (hitched_to_bus)
            {
                return;
            }
            var bus = RabbitHutch.CreateBus("host=localhost;port=5672;username=guest;password=guest").Advanced;

            try
            {
                var heartrate_queue = bus.QueueDeclare("MindMurmur.Domain.Messages.HeartRateCommand, MindMurmur.Domain", durable: false);
                bus.Consume <HeartRateCommand>(heartrate_queue, (cmd, msg) =>
                {
                    if (CurrentHeartRate != cmd.Body.HeartRate)
                    {
                        Console.WriteLine($"Heart.Rx {cmd.Body.CommandId} [{cmd.Body.HeartRate}]");
                        CurrentHeartRate = cmd.Body.HeartRate / 2;//cutting the heart rate in half
                        bpmSubject.OnNext(cmd.Body.HeartRate);
                    }
                });

                var dimmer_queue = bus.QueueDeclare("MindMurmur.Domain.Messages.DimmerControlCommand, MindMurmur.Domain", durable: false);
                bus.Consume <DimmerControlCommand>(dimmer_queue, (cmd, msg) =>
                {
                    if (Config.DimmerValue != cmd.Body.DimmerValue)
                    {
                        Console.WriteLine($"Dimmer.Rx {cmd.Body.CommandId} [{cmd.Body.DimmerValue}]");
                        Config.DimmerValue = cmd.Body.DimmerValue;
                        foreach (LightStrip strip in Config.VerticesLightStrips)
                        {
                            strip.Dimmer = Config.DimmerValue;
                        }
                        foreach (var k in Config.ChandelierLightStrips.Keys)
                        {
                            Config.ChandelierLightStrips[k].Dimmer = Config.DimmerValue;
                        }
                        dimmerSubject.OnNext(cmd.Body.DimmerValue);
                    }
                });

                var color_queue = bus.QueueDeclare("MindMurmur.Domain.Messages.ColorControlCommand, MindMurmur.Domain", durable: false);
                bus.Consume <ColorControlCommand>(color_queue, (cmd, msg) =>
                {
                    Color cmdColor = Color.FromArgb(cmd.Body.ColorRed, cmd.Body.ColorGreen, cmd.Body.ColorBlue);
                    if (CurrentColor != cmdColor)
                    {
                        Console.WriteLine($"Color.Rx {cmd.Body.CommandId} [{cmd.Body.ColorRed},{cmd.Body.ColorGreen},{cmd.Body.ColorBlue}]");
                        CurrentColor = cmdColor;
                        colorSubject.OnNext(cmdColor);
                    }
                });

                var meditation_state_queue = bus.QueueDeclare("MindMurmur.Domain.Messages.MeditationStateCommand, MindMurmur.Domain", durable: false);
                bus.Consume <MeditationStateCommand>(meditation_state_queue, (cmd, msg) =>
                {
                    if ((int)PreviousMediationState == cmd.Body.State)
                    {
                        return;
                    }

                    Console.WriteLine($"MeditationState.Rx {cmd.Body.CommandId} [{cmd.Body.State}]");
                    var thisState   = (MeditationState)cmd.Body.State;
                    lastStateChange = DateTime.UtcNow;
                    //Set previous values
                    PreviousMediationState = thisState;
                    PreviousColor          = CurrentColor;
                    PreviousSecondaryColor = CurrentSecondaryColor;
                    PreviousTertiaryColor  = CurrentTertiaryColor;
                    //set new colors
                    CurrentColor          = Config.MeditationColors[thisState].Item1; //sets the primary color from the meditation state
                    CurrentSecondaryColor = Config.MeditationColors[thisState].Item2; //sets the secondary color from the meditation state
                    CurrentTertiaryColor  = Config.MeditationColors[thisState].Item3; //sets the tertiary color from the meditation state
                    CurrentMediationState = thisState;                                //record the current state

                    meditationSubject.OnNext(thisState);
                    // meditationSubject.Subscribe(state => { });
                    StartChandelierCycle(15, 3);

                    BuildGradientTransition();//build the bitmap so we can get the color for transitioning
                });

                hitched_to_bus = true;
            }
            catch (Exception ex)
            {
                hitched_to_bus = false;
                throw ex;
            }
        }
示例#6
0
        /// <summary>
        /// Establishes all bus subscriptions to RabbitMQ
        /// </summary>
        public void HitchToTheBus()
        {
            if (hitched_to_bus)
            {
                return;
            }
            var bus = RabbitHutch.CreateBus("host=localhost").Advanced;

            try
            {
                var heartRateExchange = bus.ExchangeDeclare("MindMurmur.Domain.Messages.HeartRateCommand, MindMurmur.Domain", ExchangeType.Fanout, durable: true);
                var heartRateQueue    = bus.QueueDeclare("heartRateQueue", exclusive: true);
                bus.Bind(heartRateExchange, heartRateQueue, "");
                bus.Consume <HeartRateCommand>(heartRateQueue, (msg, info) =>
                {
                    if (CurrentHeartRate != msg.Body.HeartRate)
                    {
                        Console.WriteLine($"Heart.Rx {msg.Body.CommandId} [{msg.Body.HeartRate}]");
                        CurrentHeartRate = msg.Body.HeartRate / 2; // cutting the heart rate in half
                        bpmSubject.OnNext(msg.Body.HeartRate);
                    }
                });

                var dimmerControlExchange = bus.ExchangeDeclare("MindMurmur.Domain.Messages.DimmerControlCommand, MindMurmur.Domain", ExchangeType.Fanout, durable: true);
                var dimmerControlQueue    = bus.QueueDeclare("dimmerControlQueue", exclusive: true);
                bus.Bind(dimmerControlExchange, dimmerControlQueue, "");
                bus.Consume <DimmerControlCommand>(dimmerControlQueue, (msg, info) =>
                {
                    if (Config.DimmerValue != msg.Body.DimmerValue)
                    {
                        Console.WriteLine($"Dimmer.Rx {msg.Body.CommandId} [{msg.Body.DimmerValue}]");
                        Config.DimmerValue = msg.Body.DimmerValue;
                        foreach (LightStrip strip in Config.VerticesLightStrips)
                        {
                            strip.Dimmer = Config.DimmerValue;
                        }
                        foreach (var k in Config.ChandelierLightStrips.Keys)
                        {
                            Config.ChandelierLightStrips[k].Dimmer = Config.DimmerValue;
                        }
                        dimmerSubject.OnNext(msg.Body.DimmerValue);
                    }
                });

                var colorControlExchange = bus.ExchangeDeclare("MindMurmur.Domain.Messages.ColorControlCommand, MindMurmur.Domain", ExchangeType.Fanout, durable: true);
                var colorControlQueue    = bus.QueueDeclare("colorControlQueue", exclusive: true);
                bus.Bind(colorControlExchange, colorControlQueue, "");
                bus.Consume <ColorControlCommand>(colorControlQueue, (msg, info) =>
                {
                    Color cmdColor = Color.FromArgb(msg.Body.ColorRed, msg.Body.ColorGreen, msg.Body.ColorBlue);
                    if (CurrentColor != cmdColor)
                    {
                        Console.WriteLine($"Color.Rx {msg.Body.CommandId} [{msg.Body.ColorRed},{msg.Body.ColorGreen},{msg.Body.ColorBlue}]");
                        CurrentColor = cmdColor;
                        colorSubject.OnNext(cmdColor);
                    }
                });

                var meditationStateExchange = bus.ExchangeDeclare("MindMurmur.Domain.Messages.MeditationStateCommand, MindMurmur.Domain", ExchangeType.Fanout, durable: true);
                var meditationStateQueue    = bus.QueueDeclare("meditationStateQueue", exclusive: true);
                bus.Bind(meditationStateExchange, meditationStateQueue, "");
                bus.Consume <MeditationStateCommand>(meditationStateQueue, (msg, info) =>
                {
                    Console.WriteLine($"MeditationState.Rx {msg.Body.CommandId} [{msg.Body.State}]");
                    if ((int)PreviousMediationState == msg.Body.State)
                    {
                        return;
                    }

                    var thisState   = (MeditationState)msg.Body.State;
                    lastStateChange = DateTime.UtcNow;
                    //Set previous values
                    PreviousMediationState = thisState;
                    PreviousColor          = CurrentColor;
                    PreviousSecondaryColor = CurrentSecondaryColor;
                    PreviousTertiaryColor  = CurrentTertiaryColor;
                    //set new colors
                    CurrentColor          = Config.MeditationColors[thisState].Item1; //sets the primary color from the meditation state
                    CurrentSecondaryColor = Config.MeditationColors[thisState].Item2; //sets the secondary color from the meditation state
                    CurrentTertiaryColor  = Config.MeditationColors[thisState].Item3; //sets the tertiary color from the meditation state
                    CurrentMediationState = thisState;                                //record the current state

                    meditationSubject.OnNext(thisState);
                    // meditationSubject.Subscribe(state => { });
                    StartChandelierCycle(15, 3);

                    BuildGradientTransition();//build the bitmap so we can get the color for transitioning
                });

                var eegDataExchange = bus.ExchangeDeclare("MindMurmur.Domain.Messages.EEGDataCommand, MindMurmur.Domain", ExchangeType.Fanout, durable: true);
                var eegDataQueue    = bus.QueueDeclare("eegDataQueue", exclusive: true);
                bus.Bind(eegDataExchange, eegDataQueue, "");
                bus.Consume <EEGDataCommand>(eegDataQueue, (msg, info) =>
                {
                    Console.WriteLine($"EEGData.Rx {msg.Body.CommandId} [{string.Join(", ", msg.Body.Values)}]");
                });

                hitched_to_bus = true;

                Console.WriteLine("[ ] Hitched to the bus");
            }
            catch (Exception ex)
            {
                hitched_to_bus = false;
                throw ex;
            }
        }