public void Open() { mAmbientSound.Stop(); mDoor.Open(); }
/// <summary> /// Function that handles tasks that trigger when a key is pressed. /// </summary> /// <param name="e">Data passed by the event handler that calls the function.</param> /// <returns></returns> public bool KeyPressed(MOIS.KeyEvent e) { switch (e.key) { case MOIS.KeyCode.KC_LEFT: case MOIS.KeyCode.KC_A: position--; if (position < -1) { position = -1; } break; case MOIS.KeyCode.KC_RIGHT: case MOIS.KeyCode.KC_D: position++; if (position > 1) { position = 1; } break; case MOIS.KeyCode.KC_SPACE: switch (position) { case -1: running = false; break; case 0: if (soundEntity != null) { if (soundEntity.IsPlaying()) { soundEntity.Stop(); } else { soundEntity.Play(); } break; } soundEntity = smgr.CreateSoundEntity("Assets/Sounds/DrumMono.ogg", mgr.GetSceneNode("Drum"), "Drum", false, false); soundEntity.SetReferenceDistance(.5f); soundEntity.SetMaxDistance(5); soundEntity.Play(); break; case 1: if (ambientSound != null) { if (ambientSound.IsPlaying()) { ambientSound.Stop(); } else { ambientSound.Play(); } break; } ambientSound = smgr.CreateAmbientSound("Assets/Sounds/Tune.ogg", "Tune", false, false); ambientSound.Play(); break; } break; case MOIS.KeyCode.KC_ESCAPE: running = false; break; } return(true); }
private void InitStates() { _stateIdle = new State("Idle") { KeyRadio = async() => { await SetState(_stateRadio); }, KeyAlarm = () => { _alarmEnabled = !_alarmEnabled; }, ClockTick = async(time) => { if (time.Hours == _config.Alarm.Hours && time.Minutes == _config.Alarm.Minutes) { if (!_alarmSkip) { _alarmSkip = true; await SetState(_stateAmbient); } } else { _alarmSkip = false; } } }; _stateAmbient = new State("Ambient") { StateEnter = async() => { _ambientEnd = _timeService.Now + _config.AmbientDuration; await _ambientSound.Play(); }, StateLeave = async() => { await _ambientSound.Stop(); }, KeyAlarm = async() => { await SetState(_stateIdle); }, KeyRadio = async() => { await SetState(_stateRadio); }, ClockTick = async(time) => { if (time >= _ambientEnd) { await SetState(_stateRadio); } } }; _stateRadio = new State("Radio") { StateEnter = async() => { await _internetRadio.Play(); }, StateLeave = async() => { await _internetRadio.Stop(); }, KeyRadio = async() => { await SetState(_stateIdle); }, KeyAlarm = async() => { await SetState(_stateIdle); }, KeySnooze = async() => { await SetState(_stateSnooze); } }; _stateSnooze = new State("Snooze") { StateEnter = async() => { //_snoozeAlarm = DateTime.Now.TimeOfDay + _config.SnoozeDuration; _snoozeEnd = _timeService.Now + _config.SnoozeDuration; }, KeyRadio = async() => { await SetState(_stateRadio); }, KeyAlarm = async() => { await SetState(_stateIdle); }, ClockTick = async(time) => { if (time >= _snoozeEnd) { await SetState(_stateRadio); } } }; SetState(_stateIdle); }