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(); }
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) { } }
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); }
/*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(); } }
/// <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; } }
/// <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; } }