protected void InspectorGuiPsaiStopMusic(PsaiTriggerBase trigger) { optionsStopSelectedIndex = trigger._keepSilentUntilNextTrigger ? 0 : 1; optionsStopSelectedIndex = GUILayout.SelectionGrid(optionsStopSelectedIndex, optionsStop, optionsStop.Length, EditorStyles.radioButton); if (optionsStopSelectedIndex == 1) { // override checkbox EditorGUI.indentLevel++; trigger._overrideDefaultRestTime = EditorGUILayout.Toggle("override default rest time", trigger._overrideDefaultRestTime); if (trigger._overrideDefaultRestTime) { EditorGUI.indentLevel++; trigger._overrideRestSecondsMin = EditorGUILayout.IntField("override rest seconds min", trigger._overrideRestSecondsMin); trigger._overrideRestSecondsMax = EditorGUILayout.IntField("override rest seconds max", trigger._overrideRestSecondsMax); if (trigger._overrideRestSecondsMax < trigger._overrideRestSecondsMin) { trigger._overrideRestSecondsMax = trigger._overrideRestSecondsMin; } EditorGUI.indentLevel--; } EditorGUI.indentLevel--; } trigger._keepSilentUntilNextTrigger = (optionsStopSelectedIndex == 0); InspectorGuiEndOrFade(trigger); InspectorGuiDontExecuteIfTriggersAreFiring(trigger); }
public void InspectorGuiDontExecuteIfTriggersAreFiring(PsaiTriggerBase trigger) { trigger._dontExecuteIfOtherTriggersAreFiring = EditorGUILayout.Toggle("don't execute if Triggers are currently firing", trigger._dontExecuteIfOtherTriggersAreFiring); if (trigger._dontExecuteIfOtherTriggersAreFiring) { EditorGUI.indentLevel++; trigger._restrictBlockToThisThemeType = (psai.net.ThemeType)EditorGUILayout.EnumPopup("...restricted to Triggers of this Type:", trigger._restrictBlockToThisThemeType); EditorGUI.indentLevel--; } }
public void InspectorGuiEndOrFade(PsaiTriggerBase trigger) { optionEndSelectedIndex = trigger._immediately ? 1 : 0; optionEndSelectedIndex = GUILayout.SelectionGrid(optionEndSelectedIndex, optionsEnd, optionsEnd.Length, EditorStyles.radioButton); trigger._immediately = (optionEndSelectedIndex == 1); if (optionEndSelectedIndex == 1) { EditorGUI.indentLevel++; trigger._fadeOutSeconds = EditorGUILayout.FloatField("Fade-out Seconds", trigger._fadeOutSeconds); EditorGUI.indentLevel--; } }
/* * public override void OnInspectorGUI() * { * PsaiTriggerBase trigger = target as PsaiTriggerBase; * * InspectorGuiThemeSelection(trigger); * } */ protected void InspectorGuiTriggerTypeBase(PsaiTriggerBase trigger) { _triggerTypeChoiceIndex = (int)trigger.TriggerType; _triggerTypeChoiceIndex = EditorGUILayout.Popup("Command: ", _triggerTypeChoiceIndex, _triggerTypeChoices); trigger.TriggerType = (PsaiTriggerBase.PsaiTriggerType)_triggerTypeChoiceIndex; if (trigger.TriggerType == PsaiTriggerBase.PsaiTriggerType.returnToLastBasicMood) { InspectorGuiReturnToLastBasicMood(trigger); } else if (trigger.TriggerType == PsaiTriggerBase.PsaiTriggerType.stopMusic) { InspectorGuiPsaiStopMusic(trigger); } else if (trigger.TriggerType == PsaiTriggerBase.PsaiTriggerType.triggerMusicTheme) { InspectorGuiThemeSelection(trigger); } }
private void CopyControlTriggerValuesToPlaybackCallFiringInThisTick(PsaiTriggerBase trigger) { switch (trigger.TriggerType) { case PsaiTriggerBase.PsaiTriggerType.returnToLastBasicMood: { this.playbackControlCallFiringInThisTick.playbackControlType = PlaybackControlType.ReturnToBasicMood; } break; case PsaiTriggerBase.PsaiTriggerType.stopMusic: { if (trigger._keepSilentUntilNextTrigger) { this.playbackControlCallFiringInThisTick.playbackControlType = PlaybackControlType.StopMusic; } else { this.playbackControlCallFiringInThisTick.playbackControlType = PlaybackControlType.GoToRest; } } break; } this.playbackControlCallFiringInThisTick.sendingBehaviour = trigger; this.playbackControlCallFiringInThisTick.immediately = trigger._immediately; this.playbackControlCallFiringInThisTick.fadeOutSeconds = trigger._fadeOutSeconds; this.playbackControlCallFiringInThisTick.dontExecuteIfOtherTriggersAreFiring = trigger._dontExecuteIfOtherTriggersAreFiring; this.playbackControlCallFiringInThisTick.restrictBlockToThisThemeType = trigger._restrictBlockToThisThemeType; this.playbackControlCallFiringInThisTick.keepSilentUntilNextTrigger = trigger._keepSilentUntilNextTrigger; if (trigger._overrideDefaultRestTime) { this.playbackControlCallFiringInThisTick.overrideRestSecondsMin = trigger._overrideRestSecondsMin; this.playbackControlCallFiringInThisTick.overrideRestSecondsMax = trigger._overrideRestSecondsMax; } else { this.playbackControlCallFiringInThisTick.overrideRestSecondsMin = -1; this.playbackControlCallFiringInThisTick.overrideRestSecondsMin = -1; } }
protected void InspectorGuiThemeSelection(PsaiTriggerBase trigger) { trigger.themeId = EditorGUILayout.IntField("ThemeId", trigger.themeId); if (trigger.themeId < 1) { trigger.themeId = 1; } if (PsaiCore.IsInstanceInitialized()) { Color defaultContentColor = GUI.contentColor; string themeInfoString = "THEME NOT FOUND"; GUI.contentColor = Color.red; if (ThemeInfos.ContainsKey(trigger.themeId)) { GUI.contentColor = new Color(0, 0.85f, 0); ThemeInfo themeInfo = ThemeInfos[trigger.themeId]; themeInfoString = themeInfo.name + " [" + psai.net.Theme.ThemeTypeToString(themeInfo.type) + "]"; } EditorGUILayout.LabelField(" ", themeInfoString); GUI.contentColor = defaultContentColor; } }
protected void InspectorGuiReturnToLastBasicMood(PsaiTriggerBase trigger) { InspectorGuiEndOrFade(trigger); InspectorGuiDontExecuteIfTriggersAreFiring(trigger); }
private void CopyControlTriggerValuesToPlaybackCallFiringInThisTick(PsaiTriggerBase trigger) { switch(trigger.TriggerType) { case PsaiTriggerBase.PsaiTriggerType.returnToLastBasicMood: { this.playbackControlCallFiringInThisTick.playbackControlType = PlaybackControlType.ReturnToBasicMood; } break; case PsaiTriggerBase.PsaiTriggerType.stopMusic: { if (trigger._keepSilentUntilNextTrigger) this.playbackControlCallFiringInThisTick.playbackControlType = PlaybackControlType.StopMusic; else this.playbackControlCallFiringInThisTick.playbackControlType = PlaybackControlType.GoToRest; } break; } this.playbackControlCallFiringInThisTick.sendingBehaviour = trigger; this.playbackControlCallFiringInThisTick.immediately = trigger._immediately; this.playbackControlCallFiringInThisTick.fadeOutSeconds = trigger._fadeOutSeconds; this.playbackControlCallFiringInThisTick.dontExecuteIfOtherTriggersAreFiring = trigger._dontExecuteIfOtherTriggersAreFiring; this.playbackControlCallFiringInThisTick.restrictBlockToThisThemeType = trigger._restrictBlockToThisThemeType; this.playbackControlCallFiringInThisTick.keepSilentUntilNextTrigger = trigger._keepSilentUntilNextTrigger; if (trigger._overrideDefaultRestTime) { this.playbackControlCallFiringInThisTick.overrideRestSecondsMin = trigger._overrideRestSecondsMin; this.playbackControlCallFiringInThisTick.overrideRestSecondsMax = trigger._overrideRestSecondsMax; } else { this.playbackControlCallFiringInThisTick.overrideRestSecondsMin = -1; this.playbackControlCallFiringInThisTick.overrideRestSecondsMin = -1; } }
/////////////////////////////////////////////////////////////////////////////////////////////////// // for some reason the sender Behaviour is null in the next Update loop after calling these Synchronized...methods, // so we fill a struct. public void RegisterSynchronizedOneShotPlaybackCommandForNextTick(PsaiTriggerBase trigger) { CopyControlTriggerValuesToPlaybackCallFiringInThisTick(trigger); }
/* public override void OnInspectorGUI() { PsaiTriggerBase trigger = target as PsaiTriggerBase; InspectorGuiThemeSelection(trigger); } */ protected void InspectorGuiTriggerTypeBase(PsaiTriggerBase trigger) { _triggerTypeChoiceIndex = (int)trigger.TriggerType; _triggerTypeChoiceIndex = EditorGUILayout.Popup("Command: ", _triggerTypeChoiceIndex, _triggerTypeChoices); trigger.TriggerType = (PsaiTriggerBase.PsaiTriggerType)_triggerTypeChoiceIndex; if (trigger.TriggerType == PsaiTriggerBase.PsaiTriggerType.returnToLastBasicMood) { InspectorGuiReturnToLastBasicMood(trigger); } else if (trigger.TriggerType == PsaiTriggerBase.PsaiTriggerType.stopMusic) { InspectorGuiPsaiStopMusic(trigger); } else if (trigger.TriggerType == PsaiTriggerBase.PsaiTriggerType.triggerMusicTheme) { InspectorGuiThemeSelection(trigger); } }