public AdvancedFeaturesWindowMacros(Rect aStartPos, GUIContent aContent, GUIStyle aStyle, params GUILayoutOption[] aOptions) : base(aStartPos, aContent, aStyle, aOptions) { macroList = new DataControlList() { RequestRepaint = Repaint, footerHeight = 25, elementHeight = 40, Columns = new System.Collections.Generic.List <ColumnList.Column>() { new ColumnList.Column() { Text = TC.get("MacrosList.ID"), SizeOptions = new GUILayoutOption[] { GUILayout.Width(150) } }, new ColumnList.Column() { Text = TC.get("Macro.Documentation"), SizeOptions = new GUILayoutOption[] { GUILayout.ExpandWidth(true) } }, new ColumnList.Column() { Text = TC.get("Element.Effects"), SizeOptions = new GUILayoutOption[] { GUILayout.Width(220) } } }, drawCell = (rect, index, column, isActive, isFocused) => { var macro = macroList.list[index] as MacroDataControl; switch (column) { case 0: EditorGUI.BeginChangeCheck(); var id = EditorGUI.DelayedTextField(rect, macro.getId()); if (EditorGUI.EndChangeCheck()) { macro.setId(id); } break; case 1: EditorGUI.BeginChangeCheck(); var documentation = EditorGUI.TextArea(rect, macro.getDocumentation() ?? string.Empty); if (EditorGUI.EndChangeCheck()) { macro.setDocumentation(documentation); } break; case 2: if (GUI.Button(rect, TC.get("GeneralText.EditEffects"))) { EffectEditorWindow window = ScriptableObject.CreateInstance <EffectEditorWindow>(); window.Init(macro.getController()); } break; } } }; }
public override void Draw(int aID) { var exit = Target as ExitDataControl; // Conditions GUILayout.Label(TC.get("Exit.EditConditions")); if (GUILayout.Button(exit.getConditions().getBlocksCount() > 0 ? conditionsTex : noConditionsTex)) { ConditionEditorWindow window = (ConditionEditorWindow)ScriptableObject.CreateInstance(typeof(ConditionEditorWindow)); window.Init(exit.getConditions()); } GUILayout.Label(TC.get("Exit.ConditionsActive")); // Effects if (GUILayout.Button(TC.get("GeneralText.EditEffects"))) { EffectEditorWindow window = ScriptableObject.CreateInstance <EffectEditorWindow>(); window.Init(exit.getEffects()); } // Post Effects if (GUILayout.Button(TC.get("Exit.EditPostEffects"))) { EffectEditorWindow window = ScriptableObject.CreateInstance <EffectEditorWindow>(); window.Init(exit.getPostEffects()); } GUILayout.Label(TC.get("Exit.ConditionsInactive")); // HasNotEffets EditorGUI.BeginChangeCheck(); var hasNotEffects = EditorGUILayout.BeginToggleGroup(TC.get("Exit.ActiveWhenConditionsArent"), exit.isHasNotEffects()); if (EditorGUI.EndChangeCheck()) { exit.setHasNotEffects(hasNotEffects); } // Not Effects if (GUILayout.Button(TC.get("Exit.EditNotEffects"))) { EffectEditorWindow window = ScriptableObject.CreateInstance <EffectEditorWindow>(); window.Init(exit.getNotEffects()); } EditorGUILayout.EndToggleGroup(); }
public void draw() { using (new GUILayout.VerticalScope()) { EditorGUILayout.HelpBox(TC.get("ConversationEditor.AtLeastOne"), MessageType.None); var min = linesList.headerHeight + linesList.footerHeight + linesList.elementHeight + 5; linesList.DoList(Mathf.Max(min, Mathf.Min(200, linesList.elementHeight * (linesList.count - 1) + min))); EditorGUILayout.HelpBox(TC.get("ConversationEditor.NodeOption"), MessageType.None); using (new GUILayout.HorizontalScope()) { using (new EditorGUI.DisabledGroupScope(myNode.getChildCount() > 0 || myNode.getAddableNodes().Length == 0)) { if (GUILayout.Button(TC.get("ConversationEditor.CreateChild"))) { var options = new List <GUIContent>(); foreach (var addable in Node.getAddableNodes()) { options.Add(new GUIContent("Create " + TC.get("Element.Name" + addable))); } EditorUtility.DisplayCustomMenu(new Rect(Event.current.mousePosition, Vector2.one), options.ToArray(), -1, (param, ops, selected) => { var option = Node.getAddableNodes()[selected]; parent.Content.addNode(myNode, option); }, Event.current.mousePosition); } } if (GUILayout.Button(TC.get("ConversationEditor.SetChild"))) { parent.StartSetChild(this.myNode, 0); } var hasEffects = myNode.getEffects().getEffects().Count > 0; if (GUILayout.Button(hasEffects ? effectTex : noEffectTex, noBackgroundSkin.button, GUILayout.Width(24), GUILayout.Height(24))) { EffectEditorWindow window = (EffectEditorWindow)ScriptableObject.CreateInstance(typeof(EffectEditorWindow)); window.Init(myNode.getEffects()); } } } }
public void draw() { if (closeStyle == null) { closeStyle = new GUIStyle(GUI.skin.button); closeStyle.padding = new RectOffset(0, 0, 0, 0); closeStyle.margin = new RectOffset(0, 5, 2, 0); closeStyle.normal.textColor = Color.red; closeStyle.focused.textColor = Color.red; closeStyle.active.textColor = Color.red; closeStyle.hover.textColor = Color.red; } if (buttonstyle == null) { buttonstyle = new GUIStyle(); buttonstyle.padding = new RectOffset(5, 5, 5, 5); } GUIStyle style = new GUIStyle(); style.padding = new RectOffset(5, 5, 5, 5); EditorGUILayout.BeginVertical(); EditorGUILayout.HelpBox(TC.get("ConversationEditor.AtLeastOne"), MessageType.None); bool infoShown = false; if (myNode.getLineCount() > 0) { bool isScrolling = false; if (myNode.getLineCount() > 10) { scroll = EditorGUILayout.BeginScrollView(scroll, GUILayout.MinWidth(360), GUILayout.Height(190)); isScrolling = true; } for (int i = 0; i < myNode.getLineCount(); i++) { EditorGUILayout.BeginHorizontal(); //myNode.getLine(i).IsEntityFragment = EditorGUILayout.Toggle("Is entity: ", frg.IsEntityFragment); bool showInfo = false; EditorGUIUtility.labelWidth = GUI.skin.label.CalcSize(new GUIContent(TC.get("ConversationEditor.Speaker"))).x; myNode.getLine(i).setName(npc[EditorGUILayout.Popup(TC.get("ConversationEditor.Speaker"), npc.IndexOf(myNode.getLine(i).getName()), npc.ToArray())]); EditorGUIUtility.labelWidth = GUI.skin.label.CalcSize(new GUIContent(TC.get("ConversationEditor.Line"))).x; myNode.getLine(i).setText(EditorGUILayout.TextField(TC.get("ConversationEditor.Line"), myNode.getLine(i).getText(), GUILayout.Width(200))); tmpTex = (myNode.getLine(i).getConditions().getConditionsList().Count > 0 ? conditionsTex : noConditionsTex); if (GUILayout.Button(tmpTex, noBackgroundSkin.button, GUILayout.Width(15), GUILayout.Height(15))) { ConditionEditorWindow window = (ConditionEditorWindow)ScriptableObject.CreateInstance(typeof(ConditionEditorWindow)); window.Init(myNode.getLine(i).getConditions()); } if (GUILayout.Button("X", closeStyle, GUILayout.Width(15), GUILayout.Height(15))) { myNode.removeLine(i); } ; EditorGUILayout.EndHorizontal(); } if (isScrolling) { EditorGUILayout.EndScrollView(); } } GUIContent bttext = new GUIContent(TC.get("ConversationLine.DefaultText")); Rect btrect = GUILayoutUtility.GetRect(bttext, style); if (GUI.Button(btrect, bttext)) { myNode.addLine(new ConversationLine(TC.get("ConversationLine.PlayerName"), "")); } ; EditorGUILayout.HelpBox(TC.get("ConversationEditor.NodeOption"), MessageType.None); EditorGUILayout.BeginHorizontal(); GUI.enabled = (myNode.getChildCount() == 0) || myNode.getType() == ConversationNodeViewEnum.OPTION; bttext = new GUIContent(TC.get("ConversationEditor.CreateChild")); btrect = GUILayoutUtility.GetRect(bttext, buttonstyle); if (GUI.Button(btrect, bttext)) { parent.addChild(myNode, new DialogueConversationNode()); } GUI.enabled = true; bttext = new GUIContent(TC.get("ConversationEditor.SetChild")); btrect = GUILayoutUtility.GetRect(bttext, buttonstyle); if (GUI.Button(btrect, bttext)) { parent.startSetChild(this.myNode, 0); } tmpTex = (myNode.getEffects().getEffects().Count > 0 ? effectTex : noEffectTex); if (GUILayout.Button(tmpTex, noBackgroundSkin.button, GUILayout.Width(24), GUILayout.Height(24))) { EffectEditorWindow window = (EffectEditorWindow)ScriptableObject.CreateInstance(typeof(EffectEditorWindow)); window.Init(myNode.getEffects()); } GUILayout.EndHorizontal(); EditorGUILayout.EndVertical(); }
public override void Draw(int aID) { var windowWidth = m_Rect.width; var windowHeight = m_Rect.height; macroTableRect = new Rect(0f, 0.1f * windowHeight, 0.9f * windowWidth, 0.5f * windowHeight); rightPanelRect = new Rect(0.9f * windowWidth, 0.1f * windowHeight, 0.08f * windowWidth, 0.5f * windowHeight); descriptionRect = new Rect(0f, 0.6f * windowHeight, 0.95f * windowWidth, 0.2f * windowHeight); effectsRect = new Rect(0f, 0.8f * windowHeight, windowWidth, windowHeight * 0.15f); GUILayout.BeginArea(macroTableRect); GUILayout.Box(TC.get("MacrosList.ID"), GUILayout.Width(0.85f * windowWidth)); scrollPosition = GUILayout.BeginScrollView(scrollPosition); for (int i = 0; i < Controller.getInstance().getSelectedChapterDataControl().getMacrosListDataControl().getMacros().Count; i++) { if (i != selectedMacro) { GUI.skin = noBackgroundSkin; if ( GUILayout.Button( Controller.getInstance().getSelectedChapterDataControl().getMacrosListDataControl().getMacros()[ i].getId(), GUILayout.Width(0.85f * windowWidth))) { OnSelectedMacroChanged(i); } } else { GUI.skin = selectedAreaSkin; macroName = GUILayout.TextField(macroName, GUILayout.Width(0.85f * windowWidth)); if (!macroName.Equals(macroNameLast)) { OnMacroNameChanged(macroName); } } GUI.skin = defaultSkin; } GUILayout.EndScrollView(); GUILayout.EndArea(); /* * Right panel */ GUILayout.BeginArea(rightPanelRect); GUI.skin = noBackgroundSkin; if (GUILayout.Button(addTex, GUILayout.MaxWidth(0.08f * windowWidth))) { Controller.getInstance().getSelectedChapterDataControl().getMacrosListDataControl() .addElement(Controller.MACRO, "Macro" + Random.Range(0, 10000).ToString()); } if (GUILayout.Button(duplicateTex, GUILayout.MaxWidth(0.08f * windowWidth))) { Controller.getInstance().getSelectedChapterDataControl().getMacrosListDataControl() .duplicateElement(Controller.getInstance().getSelectedChapterDataControl().getMacrosListDataControl().getMacros()[selectedMacro]); } if (GUILayout.Button(clearTex, GUILayout.MaxWidth(0.08f * windowWidth))) { Controller.getInstance().getSelectedChapterDataControl().getMacrosListDataControl() .deleteElement(Controller.getInstance().getSelectedChapterDataControl().getMacrosListDataControl().getMacros()[selectedMacro], false); selectedMacro = -1; } GUI.skin = defaultSkin; GUILayout.EndArea(); if (selectedMacro != -1) { GUILayout.Space(10); GUILayout.BeginArea(descriptionRect); GUILayout.Label(TC.get("Macro.Documentation")); GUILayout.Space(10); macroDocumentation = GUILayout.TextArea(macroDocumentation, GUILayout.MinHeight(0.15f * windowHeight)); if (!macroDocumentation.Equals(macroDocumentationLast)) { OnMacroDocumentationChanged(macroDocumentation); } GUILayout.EndArea(); GUILayout.BeginArea(effectsRect); if (GUILayout.Button(TC.get("Element.Effects"))) { EffectEditorWindow window = (EffectEditorWindow)ScriptableObject.CreateInstance(typeof(EffectEditorWindow)); window.Init(Controller.getInstance() .getSelectedChapterDataControl() .getMacrosListDataControl().getMacros()[selectedMacro].getController()); } GUILayout.EndArea(); } }
public override void Draw(int aID) { var workingTimerList = Controller.Instance.SelectedChapterDataControl.getTimersList(); timerList.SetData(workingTimerList, (data) => (data as TimersListDataControl).getTimers().Cast <DataControl>().ToList()); timerList.DoList(220); using (new EditorGUI.DisabledScope(timerList.index < 0 || timerList.index >= workingTimerList.getTimers().Count)) { var workingTimer = timerList.index >= 0 ? workingTimerList.getTimers()[timerList.index] : new TimerDataControl(new Timer()); // ################ // ### Time section // ################ EditorGUI.BeginChangeCheck(); var showTime = EditorGUILayout.BeginToggleGroup(TC.get("TimersList.Display"), workingTimer.isShowTime()); if (EditorGUI.EndChangeCheck()) { workingTimer.setShowTime(showTime); } { EditorGUI.indentLevel++; // Display name EditorGUI.BeginChangeCheck(); var id = EditorGUILayout.TextField(TC.get("Item.Name"), workingTimer.getDisplayName()); if (EditorGUI.EndChangeCheck()) { workingTimer.setDisplayName(id); } // CountDown EditorGUI.BeginChangeCheck(); var countDown = EditorGUILayout.ToggleLeft(TC.get("Timer.CountDown"), workingTimer.isCountDown()); if (EditorGUI.EndChangeCheck()) { workingTimer.setCountDown(countDown); } // Show when stopped EditorGUI.BeginChangeCheck(); var shownWhenStopped = EditorGUILayout.ToggleLeft(TC.get("Timer.ShowWhenStopped"), workingTimer.isShowWhenStopped()); if (EditorGUI.EndChangeCheck()) { workingTimer.setShowWhenStopped(shownWhenStopped); } EditorGUI.indentLevel--; } EditorGUILayout.EndToggleGroup(); // ################ // ### Loop Control // ################ GUILayout.Label(TC.get("Timer.LoopControl")); { EditorGUI.indentLevel++; // Show when stopped EditorGUI.BeginChangeCheck(); var multipleStarts = EditorGUILayout.ToggleLeft(TC.get("Timer.MultipleStarts"), workingTimer.isMultipleStarts()); if (EditorGUI.EndChangeCheck()) { workingTimer.setMultipleStarts(multipleStarts); } EditorGUILayout.HelpBox(TC.get("Timer.MultipleStartsDesc"), MessageType.Info); // Show when stopped EditorGUI.BeginChangeCheck(); var runsInLoop = EditorGUILayout.ToggleLeft(TC.get("Timer.RunsInLoop"), workingTimer.isRunsInLoop()); if (EditorGUI.EndChangeCheck()) { workingTimer.setRunsInLoop(runsInLoop); } EditorGUILayout.HelpBox(TC.get("Timer.RunsInLoopDesc"), MessageType.Info); EditorGUI.indentLevel--; } // ################ // ### Conditions // ################ // Init conditions GUILayout.Label(TC.get("Timer.InitConditions")); { EditorGUI.indentLevel++; if (GUILayout.Button(TC.get("GeneralText.EditInitConditions"))) { ConditionEditorWindow window = (ConditionEditorWindow)ScriptableObject.CreateInstance(typeof(ConditionEditorWindow)); window.Init(workingTimer.getInitConditions()); } EditorGUI.indentLevel--; } // End conditions GUILayout.Label(TC.get("Timer.EndConditions")); { EditorGUI.indentLevel++; EditorGUI.BeginChangeCheck(); var usesEndCondition = EditorGUILayout.BeginToggleGroup(TC.get("Timer.UsesEndConditionShort"), workingTimer.isUsesEndCondition()); if (EditorGUI.EndChangeCheck()) { workingTimer.setUsesEndCondition(usesEndCondition); } if (GUILayout.Button(TC.get("GeneralText.EditEndConditions"))) { ConditionEditorWindow window = (ConditionEditorWindow)ScriptableObject.CreateInstance(typeof(ConditionEditorWindow)); window.Init(workingTimer.getEndConditions()); } EditorGUILayout.EndToggleGroup(); EditorGUI.indentLevel--; } // ################ // ### Effects // ################ // Header GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); GUILayout.Label(TC.get("Timer.Effects")); GUILayout.FlexibleSpace(); GUILayout.Label(TC.get("Timer.PostEffects")); GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); // Buttons GUILayout.BeginHorizontal(); if (GUILayout.Button(TC.get("GeneralText.EditEffects"))) { EffectEditorWindow window = (EffectEditorWindow)ScriptableObject.CreateInstance(typeof(EffectEditorWindow)); window.Init(workingTimer.getEffects()); } if (GUILayout.Button(TC.get("GeneralText.EditPostEffects"))) { EffectEditorWindow window = (EffectEditorWindow)ScriptableObject.CreateInstance(typeof(EffectEditorWindow)); window.Init(workingTimer.getPostEffects()); } GUILayout.EndHorizontal(); GUILayout.Label(TC.get("Timer.Documentation")); EditorGUI.BeginChangeCheck(); var newDocumentation = GUILayout.TextArea(workingTimer.getDocumentation() ?? string.Empty, GUILayout.ExpandHeight(true)); if (EditorGUI.EndChangeCheck()) { workingTimer.setDocumentation(newDocumentation); } } }
public override void Draw(int aID) { var windowWidth = m_Rect.width; var windowHeight = m_Rect.height; timerTableRect = new Rect(0f, 0.1f * windowHeight, 0.9f * windowWidth, 0.2f * windowHeight); rightPanelRect = new Rect(0.9f * windowWidth, 0.1f * windowHeight, 0.08f * windowWidth, 0.2f * windowHeight); settingsTable = new Rect(0f, 0.3f * windowHeight, windowWidth, windowHeight * 0.65f); /* * Timer table */ GUILayout.BeginArea(timerTableRect); GUILayout.BeginHorizontal(); GUILayout.Box(TC.get("TimersList.Timer"), GUILayout.MaxWidth(windowWidth * 0.3f)); GUILayout.Box(TC.get("TimersList.Time"), GUILayout.MaxWidth(windowWidth * 0.3f)); GUILayout.Box(TC.get("TimersList.Display"), GUILayout.MaxWidth(windowWidth * 0.3f)); GUILayout.EndHorizontal(); scrollPosition = GUILayout.BeginScrollView(scrollPosition); for (int i = 0; i < Controller.getInstance().getSelectedChapterDataControl().getTimersList().getTimers().Count; i++) { if (i == selectedTimer) { GUI.skin = selectedAreaSkin; } else { GUI.skin = noBackgroundSkin; } GUILayout.BeginHorizontal(); if (i == selectedTimer) { if (GUILayout.Button("Timer #" + i, GUILayout.MaxWidth(windowWidth * 0.3f))) { OnTimerSelectedChange(i); } timerTime = GUILayout.TextField(timerTime, GUILayout.MaxWidth(windowWidth * 0.3f)); timerTime = (Regex.Match(timerTime, "^[0-9]{1,4}$").Success ? timerTime : timerTimeLast); if (timerTime != timerTimeLast) { OnTimerTime(timerTime); } Controller.getInstance().getSelectedChapterDataControl().getTimersList().getTimers()[i].setShowTime(GUILayout .Toggle( Controller.getInstance().getSelectedChapterDataControl().getTimersList().getTimers()[i] .isShowTime(), "", GUILayout.MaxWidth(windowWidth * 0.3f))); } else { if (GUILayout.Button("Timer #" + i, GUILayout.MaxWidth(windowWidth * 0.3f))) { OnTimerSelectedChange(i); } if ( GUILayout.Button( Controller.getInstance().getSelectedChapterDataControl().getTimersList().getTimers()[i].getTime() .ToString(), GUILayout.MaxWidth(windowWidth * 0.3f))) { OnTimerSelectedChange(i); } if ( GUILayout.Button( Controller.getInstance().getSelectedChapterDataControl().getTimersList().getTimers()[i].isShowTime().ToString(), GUILayout.MaxWidth(windowWidth * 0.3f))) { OnTimerSelectedChange(i); } } GUILayout.EndHorizontal(); GUI.skin = defaultSkin; } GUILayout.EndScrollView(); GUILayout.EndArea(); /* * Right panel */ GUILayout.BeginArea(rightPanelRect); GUI.skin = noBackgroundSkin; if (GUILayout.Button(addTex, GUILayout.MaxWidth(0.08f * windowWidth))) { Controller.getInstance().getSelectedChapterDataControl().getTimersList().addElement(Controller.TIMER, ""); } if (GUILayout.Button(duplicateTex, GUILayout.MaxWidth(0.08f * windowWidth))) { Controller.getInstance() .getSelectedChapterDataControl() .getTimersList() .duplicateElement( Controller.getInstance().getSelectedChapterDataControl().getTimersList().getTimers()[selectedTimer]); } if (GUILayout.Button(clearTex, GUILayout.MaxWidth(0.08f * windowWidth))) { Controller.getInstance() .getSelectedChapterDataControl() .getTimersList() .deleteElement( Controller.getInstance().getSelectedChapterDataControl().getTimersList().getTimers()[selectedTimer], false); } GUI.skin = defaultSkin; GUILayout.EndArea(); /* * Properties panel */ if (selectedTimer != -1 && Controller.getInstance().getSelectedChapterDataControl().getTimersList().getTimers()[selectedTimer] != null) { GUILayout.BeginArea(settingsTable); GUILayout.Label(TC.get("Timer.Documentation")); fullTimerDescription = GUILayout.TextArea(fullTimerDescription, GUILayout.MinHeight(0.1f * windowHeight)); if (fullTimerDescription != fullTimerDescriptionLast) { OnTimerDocumentationChanged(fullTimerDescription); } GUILayout.FlexibleSpace(); GUILayout.Label(TC.get("TimersList.Time")); GUILayout.BeginHorizontal(); if ( !Controller.getInstance().getSelectedChapterDataControl().getTimersList().getTimers()[selectedTimer] .isShowTime()) { GUI.enabled = false; } GUILayout.Label(TC.get("Timer.DisplayName")); displayName = GUILayout.TextField(displayName); if (displayName != displayNameLast) { OnTimerDisplayNameChanged(displayName); } Controller.getInstance() .getSelectedChapterDataControl() .getTimersList().getTimers()[selectedTimer].setCountDown(GUILayout.Toggle(Controller.getInstance() .getSelectedChapterDataControl() .getTimersList().getTimers()[selectedTimer].isCountDown(), TC.get("Timer.CountDown"))); Controller.getInstance() .getSelectedChapterDataControl() .getTimersList().getTimers()[selectedTimer].setShowWhenStopped(GUILayout.Toggle(Controller.getInstance() .getSelectedChapterDataControl() .getTimersList().getTimers()[selectedTimer].isShowWhenStopped(), TC.get("Timer.ShowWhenStopped"))); GUI.enabled = true; GUILayout.EndHorizontal(); GUILayout.FlexibleSpace(); GUILayout.Label(TC.get("Timer.LoopControl")); Controller.getInstance() .getSelectedChapterDataControl() .getTimersList().getTimers()[selectedTimer].setMultipleStarts(GUILayout.Toggle(Controller.getInstance() .getSelectedChapterDataControl() .getTimersList().getTimers()[selectedTimer].isMultipleStarts(), TC.get("Timer.MultipleStarts"))); GUILayout.Label(TC.get("Timer.MultipleStartsDesc"), smallFontStyle); Controller.getInstance() .getSelectedChapterDataControl() .getTimersList().getTimers()[selectedTimer].setRunsInLoop(GUILayout.Toggle(Controller.getInstance() .getSelectedChapterDataControl() .getTimersList().getTimers()[selectedTimer].isRunsInLoop(), TC.get("Timer.RunsInLoop"))); GUILayout.Label( TC.get("Timer.RunsInLoopDesc"), smallFontStyle); GUILayout.FlexibleSpace(); GUILayout.Label(TC.get("Timer.InitConditions")); if (GUILayout.Button(TC.get("GeneralText.EditInitConditions"))) { ConditionEditorWindow window = (ConditionEditorWindow)ScriptableObject.CreateInstance(typeof(ConditionEditorWindow)); window.Init(Controller.getInstance() .getSelectedChapterDataControl() .getTimersList().getTimers()[selectedTimer].getInitConditions()); } GUILayout.FlexibleSpace(); GUILayout.Label(TC.get("Timer.EndConditions")); Controller.getInstance() .getSelectedChapterDataControl() .getTimersList().getTimers()[selectedTimer].setUsesEndCondition( GUILayout.Toggle(Controller.getInstance() .getSelectedChapterDataControl() .getTimersList().getTimers()[selectedTimer].isUsesEndCondition(), TC.get("Timer.UsesEndConditionShort"))); if ( !Controller.getInstance().getSelectedChapterDataControl().getTimersList().getTimers()[selectedTimer] .isUsesEndCondition()) { GUI.enabled = false; } if (GUILayout.Button(TC.get("GeneralText.EditEndConditions"))) { ConditionEditorWindow window = (ConditionEditorWindow)ScriptableObject.CreateInstance(typeof(ConditionEditorWindow)); window.Init(Controller.getInstance() .getSelectedChapterDataControl() .getTimersList().getTimers()[selectedTimer].getEndConditions()); } GUI.enabled = true; GUILayout.FlexibleSpace(); GUILayout.BeginHorizontal(); GUILayout.Label(TC.get("Timer.Effects"), GUILayout.Width(0.45f * windowWidth)); GUILayout.Label(TC.get("Timer.PostEffects"), GUILayout.Width(0.45f * windowWidth)); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); if (GUILayout.Button(TC.get("GeneralText.EditEffects"), GUILayout.Width(0.45f * windowWidth))) { EffectEditorWindow window = (EffectEditorWindow)ScriptableObject.CreateInstance(typeof(EffectEditorWindow)); window.Init(Controller.getInstance() .getSelectedChapterDataControl() .getTimersList().getTimers()[selectedTimer].getEffects()); } if (GUILayout.Button(TC.get("GeneralText.EditPostEffects"), GUILayout.Width(0.45f * windowWidth))) { EffectEditorWindow window = (EffectEditorWindow)ScriptableObject.CreateInstance(typeof(EffectEditorWindow)); window.Init(Controller.getInstance() .getSelectedChapterDataControl() .getTimersList().getTimers()[selectedTimer].getPostEffects()); } GUILayout.EndHorizontal(); GUILayout.EndArea(); } }
public void draw() { using (new GUILayout.VerticalScope()) { // Options configuration using (new GUILayout.HorizontalScope()) { // KeepShowing questionContent.tooltip = TC.get("Conversation.KeepShowing"); EditorGUI.BeginChangeCheck(); var keepShowing = GUILayout.Toggle(myNode.KeepShowing, questionContent, "Button"); if (EditorGUI.EndChangeCheck()) { myNode.KeepShowing = keepShowing; } // KeepShowing shuffleContent.tooltip = TC.get("Conversation.OptionRandomly"); EditorGUI.BeginChangeCheck(); var random = GUILayout.Toggle(myNode.Random, shuffleContent, "Button"); if (EditorGUI.EndChangeCheck()) { myNode.Random = random; } // Show User Option answerContent.tooltip = TC.get("Conversation.ShowUserOption"); EditorGUI.BeginChangeCheck(); var showUserOption = GUILayout.Toggle(myNode.ShowUserOption, answerContent, "Button"); if (EditorGUI.EndChangeCheck()) { myNode.ShowUserOption = showUserOption; } } EditorGUILayout.HelpBox(TC.get("ConversationEditor.AtLeastOne"), MessageType.None); using (new GUILayout.HorizontalScope()) { GUILayout.Label("Question ID: "); EditorGUI.BeginChangeCheck(); var newXApiQuestion = EditorGUILayout.TextField(myNode.getXApiQuestion()); if (EditorGUI.EndChangeCheck()) { myNode.setXApiQuestion(newXApiQuestion); } if (myNode.getXApiQuestion() == "") { var lastRect = GUILayoutUtility.GetLastRect(); var guistyle = new GUIStyle(GUI.skin.label); guistyle.normal.textColor = Color.gray; GUI.Label(lastRect, " Required for analytics", guistyle); } } var min = linesList.headerHeight + linesList.footerHeight + linesList.elementHeight + 5; linesList.DoList(Mathf.Max(min, Mathf.Min(150, linesList.elementHeight * (linesList.count - 1) + min))); // Timer using (new GUILayout.HorizontalScope()) { if (EditorGUILayout.Toggle("Timeout: ", myNode.Timeout >= 0)) { myNode.Timeout = Mathf.Clamp(EditorGUILayout.FloatField(myNode.Timeout), 0.1f, float.MaxValue); GUILayout.Space(5); DoConditionsEditor(GUILayoutUtility.GetRect(15, 15), myNode.TimeoutConditions); DoChildEditor(GUILayoutUtility.GetRect(15, 15), myNode.getChildCount() - 1); } else { myNode.Timeout = -1f; } } using (new GUILayout.HorizontalScope()) { var hasEffects = myNode.getEffects().getEffects().Count > 0; if (GUILayout.Button(hasEffects ? effectTex : noEffectTex, noBackgroundSkin.button, GUILayout.Width(24), GUILayout.Height(24))) { EffectEditorWindow window = (EffectEditorWindow)ScriptableObject.CreateInstance(typeof(EffectEditorWindow)); window.Init(myNode.getEffects()); } } } }
public void draw() { if (closeStyle == null) { closeStyle = new GUIStyle(GUI.skin.button); closeStyle.padding = new RectOffset(0, 0, 0, 0); closeStyle.margin = new RectOffset(0, 5, 2, 0); closeStyle.normal.textColor = Color.red; closeStyle.focused.textColor = Color.red; closeStyle.active.textColor = Color.red; closeStyle.hover.textColor = Color.red; } GUIStyle style = new GUIStyle(); style.padding = new RectOffset(5, 5, 5, 5); EditorGUILayout.BeginVertical(); EditorGUILayout.HelpBox(TC.get("ConversationEditor.AtLeastOne"), MessageType.None); GUILayout.BeginHorizontal(); GUILayout.Label("Question ID: "); //Controller.getInstance ().getIdentifierSummary ().add myNode.setXApiQuestion(EditorGUILayout.TextField(myNode.getXApiQuestion())); if (myNode.getXApiQuestion() == "") { var lastRect = GUILayoutUtility.GetLastRect(); var guistyle = new GUIStyle(GUI.skin.label); guistyle.normal.textColor = Color.gray; GUI.Label(lastRect, " Required for analytics", guistyle); } GUILayout.EndHorizontal(); bool infoShown = false; if (myNode.getLineCount() > 0) { bool isScrolling = false; if (myNode.getLineCount() > 10) { scroll = EditorGUILayout.BeginScrollView(scroll, GUILayout.MinWidth(360), GUILayout.Height(190)); isScrolling = true; } for (int i = 0; i < myNode.getLineCount(); i++) { EditorGUILayout.BeginHorizontal(); bool showInfo = false; EditorGUIUtility.labelWidth = GUI.skin.label.CalcSize(new GUIContent((i + 1) + ": ")).x; myNode.getLine(i).setText(EditorGUILayout.TextField((i + 1) + ": ", myNode.getLine(i).getText(), GUILayout.Width(200))); myNode.getLine(i).setXApiCorrect(EditorGUILayout.Toggle(myNode.getLine(i).getXApiCorrect())); GUILayout.Space(5); tmpTex = (myNode.getLine(i).getConditions().getConditionsList().Count > 0 ? conditionsTex : noConditionsTex); if (GUILayout.Button(tmpTex, noBackgroundSkin.button, GUILayout.Width(15), GUILayout.Height(15))) { ConditionEditorWindow window = (ConditionEditorWindow)ScriptableObject.CreateInstance(typeof(ConditionEditorWindow)); window.Init(myNode.getLine(i).getConditions()); } if (GUILayout.Button(linkTex, noBackgroundSkin.button, GUILayout.Width(15), GUILayout.Height(15))) { parent.startSetChild(this.myNode, i); } if (GUILayout.Button("X", closeStyle, GUILayout.Width(15), GUILayout.Height(15))) { myNode.removeLine(i); myNode.removeChild(i); } ; EditorGUILayout.EndHorizontal(); } if (isScrolling) { EditorGUILayout.EndScrollView(); } } EditorGUILayout.BeginHorizontal(); GUIContent bttext = new GUIContent(TC.get("ConversationEditor.AddOptionChild")); Rect btrect = GUILayoutUtility.GetRect(bttext, style); if (GUI.Button(btrect, bttext)) { myNode.addLine(new ConversationLine("Player", "")); parent.addChild(this.myNode, new DialogueConversationNode()); } ; tmpTex = (myNode.getEffects().getEffects().Count > 0 ? effectTex : noEffectTex); if (GUILayout.Button(tmpTex, noBackgroundSkin.button, GUILayout.Width(24), GUILayout.Height(24))) { EffectEditorWindow window = (EffectEditorWindow)ScriptableObject.CreateInstance(typeof(EffectEditorWindow)); window.Init(myNode.getEffects()); } EditorGUILayout.EndHorizontal(); EditorGUILayout.EndVertical(); }
public override void Draw(int aID) { var windowWidth = m_Rect.width; var windowHeight = m_Rect.height; actionTableRect = new Rect(0f, 0.1f * windowHeight, 0.9f * windowWidth, 0.5f * windowHeight); rightPanelRect = new Rect(0.9f * windowWidth, 0.1f * windowHeight, 0.08f * windowWidth, 0.5f * windowHeight); descriptionRect = new Rect(0f, 0.6f * windowHeight, 0.95f * windowWidth, 0.2f * windowHeight); effectsRect = new Rect(0f, 0.8f * windowHeight, windowWidth, windowHeight * 0.15f); GUILayout.BeginArea(actionTableRect); GUILayout.BeginHorizontal(); GUILayout.Box(TC.get("Element.Action"), GUILayout.Width(windowWidth * 0.39f)); GUILayout.Box(TC.get("ActionsList.NeedsGoTo"), GUILayout.Width(windowWidth * 0.39f)); GUILayout.Box(TC.get("Conditions.Title"), GUILayout.Width(windowWidth * 0.1f)); GUILayout.EndHorizontal(); scrollPosition = GUILayout.BeginScrollView(scrollPosition, GUILayout.ExpandWidth(false)); // Action table for (int i = 0; i < Controller.getInstance().getSelectedChapterDataControl().getItemsList().getItems()[ GameRources.GetInstance().selectedItemIndex].getActionsList().getActions().Count; i++) { if (i == selectedAction) { GUI.skin = selectedAreaSkin; } else { GUI.skin = noBackgroundSkin; } tmpTex = (Controller.getInstance().getSelectedChapterDataControl().getItemsList().getItems()[ GameRources.GetInstance().selectedItemIndex].getActionsList().getActions()[i].getConditions() .getBlocksCount() > 0 ? conditionsTex : noConditionsTex); GUILayout.BeginHorizontal(); if (i == selectedAction) { int t = Controller.getInstance().getSelectedChapterDataControl().getItemsList().getItems()[ GameRources.GetInstance().selectedItemIndex].getActionsList().getActions()[i].getType(); if (t == Controller.ACTION_USE_WITH || t == Controller.ACTION_GIVE_TO || t == Controller.ACTION_DRAG_TO) { selectedTarget = EditorGUILayout.Popup( Controller.getInstance().getSelectedChapterDataControl().getItemsList().getItems()[ GameRources.GetInstance().selectedItemIndex].getActionsList().getActions()[i] .getTypeName(), selectedTarget, joinedNamesList, GUILayout.Width(windowWidth * 0.39f)); if (selectedTarget != selectedTargetLast) { ChangeActionTarget(selectedTarget); } } else { GUILayout.Label( Controller.getInstance().getSelectedChapterDataControl().getItemsList().getItems()[ GameRources.GetInstance().selectedItemIndex].getActionsList().getActions()[i].getTypeName(), GUILayout.Width(windowWidth * 0.39f)); } if (Controller.getInstance().playerMode() == Controller.FILE_ADVENTURE_1STPERSON_PLAYER) { if (GUILayout.Button(TC.get("ActionsList.NotRelevant"), GUILayout.Width(windowWidth * 0.39f))) { OnActionSelectionChange(i); } } else { GUILayout.BeginHorizontal(GUILayout.Width(windowWidth * 0.39f)); Controller.getInstance().getSelectedChapterDataControl().getItemsList().getItems()[ GameRources.GetInstance().selectedItemIndex].getActionsList().getActions()[i].setNeedsGoTo( GUILayout.Toggle( Controller.getInstance().getSelectedChapterDataControl().getItemsList().getItems()[ GameRources.GetInstance().selectedItemIndex].getActionsList().getActions()[i] .getNeedsGoTo(), "")); Controller.getInstance().getSelectedChapterDataControl().getItemsList().getItems()[ GameRources.GetInstance().selectedItemIndex].getActionsList().getActions()[i].setKeepDistance( EditorGUILayout.IntField( Controller.getInstance().getSelectedChapterDataControl().getItemsList().getItems()[ GameRources.GetInstance().selectedItemIndex].getActionsList().getActions()[i] .getKeepDistance())); GUILayout.EndHorizontal(); } if (GUILayout.Button(tmpTex, GUILayout.Width(windowWidth * 0.1f))) { ConditionEditorWindow window = (ConditionEditorWindow)ScriptableObject.CreateInstance(typeof(ConditionEditorWindow)); window.Init(Controller.getInstance().getSelectedChapterDataControl().getItemsList().getItems()[ GameRources.GetInstance().selectedItemIndex].getActionsList().getActions()[i].getConditions()); } } else { if (GUILayout.Button(Controller.getInstance().getSelectedChapterDataControl().getItemsList().getItems()[ GameRources.GetInstance().selectedItemIndex].getActionsList().getActions()[i].getTypeName(), GUILayout.Width(windowWidth * 0.39f))) { OnActionSelectionChange(i); } if (Controller.getInstance().playerMode() == Controller.FILE_ADVENTURE_1STPERSON_PLAYER) { if (GUILayout.Button(TC.get("ActionsList.NotRelevant"), GUILayout.Width(windowWidth * 0.39f))) { OnActionSelectionChange(i); } } else { if ( GUILayout.Button( Controller.getInstance().getSelectedChapterDataControl().getItemsList().getItems()[ GameRources.GetInstance().selectedItemIndex].getActionsList().getActions()[i] .getNeedsGoTo().ToString(), GUILayout.Width(windowWidth * 0.39f))) { OnActionSelectionChange(i); } } if (GUILayout.Button(tmpTex, GUILayout.Width(windowWidth * 0.1f))) { OnActionSelectionChange(i); } } GUILayout.EndHorizontal(); GUI.skin = defaultSkin; } GUILayout.EndScrollView(); GUILayout.EndArea(); /* * Right panel */ GUILayout.BeginArea(rightPanelRect); GUI.skin = noBackgroundSkin; if (GUILayout.Button(addTex, GUILayout.MaxWidth(0.08f * windowWidth))) { addMenu.menu.ShowAsContext(); } if (GUILayout.Button(duplicateTex, GUILayout.MaxWidth(0.08f * windowWidth))) { Controller.getInstance().getSelectedChapterDataControl().getItemsList().getItems()[ GameRources.GetInstance().selectedItemIndex].getActionsList() .duplicateElement(Controller.getInstance().getSelectedChapterDataControl().getItemsList().getItems()[ GameRources.GetInstance().selectedItemIndex].getActionsList().getActions()[selectedAction]); } //if (GUILayout.Button(moveUp, GUILayout.MaxWidth(0.08f * windowWidth))) //{ // Controller.getInstance().getSelectedChapterDataControl().getItemsList().getItems()[ // GameRources.GetInstance().selectedItemIndex].getActionsList().moveElementUp(Controller.getInstance().getSelectedChapterDataControl().getItemsList().getItems()[ // GameRources.GetInstance().selectedItemIndex].getActionsList().getActions()[selectedAction]); //} //if (GUILayout.Button(moveDown, GUILayout.MaxWidth(0.08f * windowWidth))) //{ // Controller.getInstance().getSelectedChapterDataControl().getItemsList().getItems()[ // GameRources.GetInstance().selectedItemIndex].getActionsList().moveElementDown(Controller.getInstance().getSelectedChapterDataControl().getItemsList().getItems()[ // GameRources.GetInstance().selectedItemIndex].getActionsList().getActions()[selectedAction]); //} if (GUILayout.Button(clearTex, GUILayout.MaxWidth(0.08f * windowWidth))) { Controller.getInstance().getSelectedChapterDataControl().getItemsList().getItems()[ GameRources.GetInstance().selectedItemIndex].getActionsList() .deleteElement(Controller.getInstance().getSelectedChapterDataControl().getItemsList().getItems()[ GameRources.GetInstance().selectedItemIndex].getActionsList().getActions()[selectedAction], false); if (selectedAction >= 0) { selectedAction--; } } GUI.skin = defaultSkin; GUILayout.EndArea(); GUILayout.BeginArea(descriptionRect); GUILayout.Label(TC.get("Action.Documentation")); GUILayout.Space(20); documentation = GUILayout.TextArea(documentation); if (!documentation.Equals(documentationLast)) { OnDocumentationChanged(documentation); } GUILayout.EndArea(); GUILayout.BeginArea(effectsRect); if (selectedAction < 0) { GUI.enabled = false; } if (GUILayout.Button(TC.get("Element.Effects"))) { EffectEditorWindow window = (EffectEditorWindow)ScriptableObject.CreateInstance(typeof(EffectEditorWindow)); window.Init(Controller.getInstance().getSelectedChapterDataControl().getItemsList().getItems()[ GameRources.GetInstance().selectedItemIndex].getActionsList().getActions()[selectedAction].getEffects()); } GUI.enabled = true; GUILayout.EndArea(); }
public override void Draw(int aID) { var windowWidth = m_Rect.width; var windowHeight = m_Rect.height; selectorRect = new Rect(0f, 0.2f * windowHeight, 0.9f * windowWidth, 0.2f * windowHeight); goesToNewSceneRect = new Rect(0.2f * windowWidth, 0.35f * windowHeight, 0.6f * windowWidth, 0.35f * windowHeight); GUILayout.Label(TC.get("Cutscene.CutsceneEndReached")); GUILayout.Space(20); GUILayout.BeginArea(selectorRect); selectedOption = GUILayout.SelectionGrid(selectedOption, possibleOptions, 3, GUILayout.Width(0.9f * windowWidth)); if (selectedOption != selectedOptionLast) { ChangeSelectedOption(selectedOption); } GUILayout.EndArea(); GUILayout.BeginArea(goesToNewSceneRect); if (selectedOption == 2) { GUILayout.BeginHorizontal(); GUILayout.Label(TC.get("NextScene.Title")); selectedSceneNext = EditorGUILayout.Popup(selectedSceneNext, joinedNextScenesList); if (selectedSceneNext != selectedSceneNextLast) { ChangeSelectedNextScene(selectedSceneNext); } if (GUILayout.Button(TC.get("GeneralText.EditEffects"))) { EffectEditorWindow window = (EffectEditorWindow)ScriptableObject.CreateInstance(typeof(EffectEditorWindow)); window.Init(Controller.getInstance().getSelectedChapterDataControl().getCutscenesList().getCutscenes()[ GameRources.GetInstance().selectedCutsceneIndex].getEffects()); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label(TC.get("NextScene.Transition")); selectedTransitionType = EditorGUILayout.Popup(selectedTransitionType, transitionTypes); if (selectedTransitionType != selectedTransitionTypeLast) { ChangeSelectedTransitionType(selectedTransitionType); } GUILayout.Label(TC.get("NextScene.TransitionTime")); timeString = GUILayout.TextField(timeString, 3); timeString = Regex.Replace(timeString, @"[^0-9 ]", ""); if (!timeString.Equals(timeStringLast)) { ChangeSelectedTransitionTime(timeString); } GUILayout.EndHorizontal(); } GUILayout.EndArea(); }
public override void Draw(int aID) { var windowWidth = m_Rect.width; var windowHeight = m_Rect.height; tableRect = new Rect(0f, 0.1f * windowHeight, 0.9f * windowWidth, windowHeight * 0.33f); rightPanelRect = new Rect(0.9f * windowWidth, 0.1f * windowHeight, 0.08f * windowWidth, 0.33f * windowHeight); infoPreviewRect = new Rect(0f, 0.45f * windowHeight, windowWidth, windowHeight * 0.05f); previewRect = new Rect(0f, 0.5f * windowHeight, windowWidth, windowHeight * 0.45f); GUILayout.BeginArea(tableRect); GUILayout.BeginHorizontal(); GUILayout.Box(TC.get("ExitsList.NextScene"), GUILayout.Width(windowWidth * 0.24f)); GUILayout.Box(TC.get("ExitsList.Transition"), GUILayout.Width(windowWidth * 0.14f)); GUILayout.Box(TC.get("ExitsList.Appearance"), GUILayout.Width(windowWidth * 0.34f)); GUILayout.Box(TC.get("ExitsList.ConditionsAndEffects"), GUILayout.Width(windowWidth * 0.14f)); GUILayout.EndHorizontal(); scrollPosition = GUILayout.BeginScrollView(scrollPosition); for (int i = 0; i < Controller.getInstance().getSelectedChapterDataControl().getScenesList().getScenes()[ GameRources.GetInstance().selectedSceneIndex].getExitsList().getExitsList().Count; i++) { if (i == selectedExit) { GUI.skin = selectedAreaSkin; } else { GUI.skin = noBackgroundSkin; } GUILayout.BeginHorizontal(); if (GUILayout.Button(Controller.getInstance().getSelectedChapterDataControl().getScenesList().getScenes()[ GameRources.GetInstance().selectedSceneIndex].getExitsList().getExitsList()[i].getNextSceneId(), GUILayout.Width(windowWidth * 0.24f))) { ChangeExitSelection(i); } // When is selected - show transition menu if (selectedExit == i) { GUILayout.BeginVertical(); selectedTransitionType = EditorGUILayout.Popup(selectedTransitionType, transitionTypes, GUILayout.Width(windowWidth * 0.12f), GUILayout.MaxWidth(windowWidth * 0.12f)); if (selectedTransitionType != selectedTransitionTypeLast) { ChangeSelectedTransitionType(selectedTransitionType); } transitionTimeString = GUILayout.TextField(transitionTimeString, 3, GUILayout.Width(windowWidth * 0.12f), GUILayout.MaxWidth(windowWidth * 0.12f)); transitionTimeString = Regex.Replace(transitionTimeString, @"[^0-9 ]", ""); if (!transitionTimeString.Equals(transitionTimeStringLast)) { ChangeSelectedTransitionTime(transitionTimeString); } GUILayout.EndVertical(); } // When is not selected - show normal text else { if (GUILayout.Button(TC.get("GeneralText.Edit"), GUILayout.Width(windowWidth * 0.14f))) { ChangeExitSelection(i); } } if (GUILayout.Button(TC.get("GeneralText.Edit"), GUILayout.Width(windowWidth * 0.34f))) { ChangeExitSelection(i); ExitsAppearance window = (ExitsAppearance)ScriptableObject.CreateInstance(typeof(ExitsAppearance)); window.Init(this, "", selectedExit); } if (selectedExit == i) { GUILayout.BeginVertical(); if (GUILayout.Button(TC.get("Exit.EditConditions"), GUILayout.Width(windowWidth * 0.14f))) { ConditionEditorWindow window = (ConditionEditorWindow)ScriptableObject.CreateInstance(typeof(ConditionEditorWindow)); window.Init(Controller.getInstance().getSelectedChapterDataControl().getScenesList().getScenes()[ GameRources.GetInstance().selectedSceneIndex].getExitsList().getExitsList()[i].getConditions()); } if (GUILayout.Button(TC.get("GeneralText.EditEffects"), GUILayout.Width(windowWidth * 0.14f))) { EffectEditorWindow window = (EffectEditorWindow)ScriptableObject.CreateInstance(typeof(EffectEditorWindow)); window.Init(Controller.getInstance().getSelectedChapterDataControl().getScenesList().getScenes()[ GameRources.GetInstance().selectedSceneIndex].getExitsList().getExitsList()[i].getEffects()); } if (GUILayout.Button(TC.get("Exit.EditPostEffects"), GUILayout.Width(windowWidth * 0.14f))) { EffectEditorWindow window = (EffectEditorWindow)ScriptableObject.CreateInstance(typeof(EffectEditorWindow)); window.Init(Controller.getInstance().getSelectedChapterDataControl().getScenesList().getScenes()[ GameRources.GetInstance().selectedSceneIndex].getExitsList().getExitsList()[i].getPostEffects()); } if (GUILayout.Button(TC.get("Exit.EditNotEffects"), GUILayout.Width(windowWidth * 0.14f))) { EffectEditorWindow window = (EffectEditorWindow)ScriptableObject.CreateInstance(typeof(EffectEditorWindow)); window.Init(Controller.getInstance().getSelectedChapterDataControl().getScenesList().getScenes()[ GameRources.GetInstance().selectedSceneIndex].getExitsList().getExitsList()[i].getNotEffects()); } GUILayout.EndVertical(); } else { if (GUILayout.Button(TC.get("GeneralText.Edit"), GUILayout.Width(windowWidth * 0.14f))) { ChangeExitSelection(i); } } GUILayout.EndHorizontal(); GUI.skin = defaultSkin; } GUILayout.EndScrollView(); GUILayout.EndArea(); /* * Right panel */ GUILayout.BeginArea(rightPanelRect); GUI.skin = noBackgroundSkin; if (GUILayout.Button(addTexture, GUILayout.MaxWidth(0.08f * windowWidth))) { ExitNewLinkTo window = (ExitNewLinkTo)ScriptableObject.CreateInstance(typeof(ExitNewLinkTo)); window.Init(this); } if (GUILayout.Button(duplicateImg, GUILayout.MaxWidth(0.08f * windowWidth))) { Controller.getInstance().getSelectedChapterDataControl().getScenesList().getScenes()[ GameRources.GetInstance().selectedSceneIndex].getExitsList() .duplicateElement(Controller.getInstance().getSelectedChapterDataControl().getScenesList().getScenes()[ GameRources.GetInstance().selectedSceneIndex].getExitsList().getExits()[selectedExit]); } if (GUILayout.Button(moveUp, GUILayout.MaxWidth(0.08f * windowWidth))) { Controller.getInstance().getSelectedChapterDataControl().getScenesList().getScenes()[ GameRources.GetInstance().selectedSceneIndex].getExitsList() .moveElementUp(Controller.getInstance().getSelectedChapterDataControl().getScenesList().getScenes()[ GameRources.GetInstance().selectedSceneIndex].getExitsList().getExits()[selectedExit]); } if (GUILayout.Button(moveDown, GUILayout.MaxWidth(0.08f * windowWidth))) { Controller.getInstance().getSelectedChapterDataControl().getScenesList().getScenes()[ GameRources.GetInstance().selectedSceneIndex].getExitsList() .moveElementDown(Controller.getInstance().getSelectedChapterDataControl().getScenesList().getScenes()[ GameRources.GetInstance().selectedSceneIndex].getExitsList().getExits()[selectedExit]); } if (GUILayout.Button(clearImg, GUILayout.MaxWidth(0.08f * windowWidth))) { Controller.getInstance().getSelectedChapterDataControl().getScenesList().getScenes()[ GameRources.GetInstance().selectedSceneIndex].getExitsList() .deleteElement(Controller.getInstance().getSelectedChapterDataControl().getScenesList().getScenes()[ GameRources.GetInstance().selectedSceneIndex].getExitsList().getExits()[selectedExit], false); } GUI.skin = defaultSkin; GUILayout.EndArea(); if (backgroundPath != "") { GUILayout.BeginArea(infoPreviewRect); // Show preview dialog if (GUILayout.Button(TC.get("DefaultClickAction.ShowDetails") + "/" + TC.get("GeneralText.Edit"))) { ExitsEditor window = (ExitsEditor)ScriptableObject.CreateInstance(typeof(ExitsEditor)); window.Init(this, Controller.getInstance().getSelectedChapterDataControl().getScenesList().getScenes()[ GameRources.GetInstance().selectedSceneIndex], selectedExit); } GUILayout.EndArea(); GUI.DrawTexture(previewRect, backgroundPreviewTex, ScaleMode.ScaleToFit); } else { GUILayout.BeginArea(infoPreviewRect); GUILayout.Button("No background!"); GUILayout.EndArea(); } }
public override void Draw(int aID) { var windowWidth = m_Rect.width; var windowHeight = m_Rect.height; tableRect = new Rect(0f, 0.1f * windowHeight, 0.9f * windowWidth, windowHeight * 0.33f); rightPanelRect = new Rect(0.9f * windowWidth, 0.1f * windowHeight, 0.08f * windowWidth, 0.33f * windowHeight); infoPreviewRect = new Rect(0f, 0.65f * windowHeight, windowWidth, windowHeight * 0.05f); previewRect = new Rect(0f, 0.7f * windowHeight, windowWidth, windowHeight * 0.25f); actionRect = new Rect(0f, 0.45f * windowHeight, 0.9f * windowWidth, windowHeight * 0.2f); actionRightPanelRect = new Rect(0.9f * windowWidth, 0.45f * windowHeight, 0.1f * windowWidth, windowHeight * 0.2f); GUILayout.BeginArea(tableRect); GUILayout.BeginHorizontal(); GUILayout.Box(TC.get("ActiveAreasList.Id"), GUILayout.Width(windowWidth * 0.54f)); GUILayout.Box(TC.get("Conditions.Title"), GUILayout.Width(windowWidth * 0.14f)); GUILayout.Box(TC.get("ActiveAreasList.Documentation"), GUILayout.Width(windowWidth * 0.18f)); GUILayout.EndHorizontal(); scrollPosition = GUILayout.BeginScrollView(scrollPosition); for (int i = 0; i < Controller.getInstance().getSelectedChapterDataControl().getScenesList().getScenes()[ GameRources.GetInstance().selectedSceneIndex].getActiveAreasList().getActiveAreasList().Count; i++) { if (i == selectedArea) { GUI.skin = selectedAreaSkin; } GUILayout.BeginHorizontal(); if (GUILayout.Button(Controller.getInstance().getSelectedChapterDataControl().getScenesList().getScenes()[ GameRources.GetInstance().selectedSceneIndex].getActiveAreasList().getActiveAreasList()[i].getId(), GUILayout.Width(windowWidth * 0.54f))) { OnSelectionChanged(i); } if (GUILayout.Button(conditionTex, GUILayout.Width(windowWidth * 0.14f))) { OnSelectionChanged(i); ConditionEditorWindow window = (ConditionEditorWindow)ScriptableObject.CreateInstance(typeof(ConditionEditorWindow)); window.Init(Controller.getInstance().getSelectedChapterDataControl().getScenesList().getScenes()[ GameRources.GetInstance().selectedSceneIndex].getActiveAreasList().getActiveAreasList()[i] .getConditions()); } if (GUILayout.Button(TC.get("GeneralText.EditDocumentation"), GUILayout.Width(windowWidth * 0.18f))) { OnSelectionChanged(i); } GUILayout.EndHorizontal(); GUI.skin = defaultSkin; } GUILayout.EndScrollView(); GUILayout.EndArea(); /* * Right panel */ GUILayout.BeginArea(rightPanelRect); GUI.skin = noBackgroundSkin; if (GUILayout.Button(addTexture, GUILayout.MaxWidth(0.08f * windowWidth))) { ActiveAreaNewName window = (ActiveAreaNewName)ScriptableObject.CreateInstance(typeof(ActiveAreaNewName)); window.Init(this, "IdObject"); } if (GUILayout.Button(duplicateImg, GUILayout.MaxWidth(0.08f * windowWidth))) { Controller.getInstance().getSelectedChapterDataControl().getScenesList().getScenes()[ GameRources.GetInstance().selectedSceneIndex].getActiveAreasList() .duplicateElement(Controller.getInstance().getSelectedChapterDataControl().getScenesList().getScenes()[ GameRources.GetInstance().selectedSceneIndex].getActiveAreasList().getActiveAreas()[selectedArea]); } if (GUILayout.Button(moveUp, GUILayout.MaxWidth(0.08f * windowWidth))) { Controller.getInstance().getSelectedChapterDataControl().getScenesList().getScenes()[ GameRources.GetInstance().selectedSceneIndex].getActiveAreasList() .moveElementUp(Controller.getInstance().getSelectedChapterDataControl().getScenesList().getScenes()[ GameRources.GetInstance().selectedSceneIndex].getActiveAreasList().getActiveAreas()[selectedArea]); } if (GUILayout.Button(moveDown, GUILayout.MaxWidth(0.08f * windowWidth))) { Controller.getInstance().getSelectedChapterDataControl().getScenesList().getScenes()[ GameRources.GetInstance().selectedSceneIndex].getActiveAreasList() .moveElementDown(Controller.getInstance().getSelectedChapterDataControl().getScenesList().getScenes()[ GameRources.GetInstance().selectedSceneIndex].getActiveAreasList().getActiveAreas()[selectedArea]); } if (GUILayout.Button(clearImg, GUILayout.MaxWidth(0.08f * windowWidth))) { Controller.getInstance().getSelectedChapterDataControl().getScenesList().getScenes()[ GameRources.GetInstance().selectedSceneIndex].getActiveAreasList() .deleteElement(Controller.getInstance().getSelectedChapterDataControl().getScenesList().getScenes()[ GameRources.GetInstance().selectedSceneIndex].getActiveAreasList().getActiveAreas()[selectedArea], false); if (selectedArea >= 0) { selectedArea--; } if (selectedAction >= 0) { selectedAction--; } } GUI.skin = defaultSkin; GUILayout.EndArea(); /** * ACTION EDITOR */ GUILayout.BeginArea(actionRect); GUILayout.BeginHorizontal(); GUILayout.Box(TC.get("Element.Action"), GUILayout.Width(windowWidth * 0.39f)); GUILayout.Box(TC.get("ActionsList.NeedsGoTo"), GUILayout.Width(windowWidth * 0.39f)); GUILayout.Box(TC.get("Element.Effects") + "/" + TC.get("SmallAction.Conditions"), GUILayout.Width(windowWidth * 0.1f)); GUILayout.EndHorizontal(); scrollPositionAction = GUILayout.BeginScrollView(scrollPositionAction, GUILayout.ExpandWidth(false)); if (selectedArea >= 0) { // Action table for (int i = 0; i < Controller.getInstance().getSelectedChapterDataControl().getScenesList().getScenes()[ GameRources.GetInstance().selectedSceneIndex].getActiveAreasList().getActiveAreas()[selectedArea] .getActionsList().getActions().Count; i++) { if (i == selectedAction) { GUI.skin = selectedAreaSkin; } else { GUI.skin = noBackgroundSkin; } GUILayout.BeginHorizontal(); if (i == selectedAction) { GUILayout.Label( Controller.getInstance().getSelectedChapterDataControl().getScenesList().getScenes()[ GameRources.GetInstance().selectedSceneIndex].getActiveAreasList().getActiveAreas()[ selectedArea ].getActionsList().getActions()[i].getTypeName(), GUILayout.Width(windowWidth * 0.39f)); if (Controller.getInstance().playerMode() == Controller.FILE_ADVENTURE_1STPERSON_PLAYER) { if (GUILayout.Button(TC.get("ActionsList.NotRelevant"), GUILayout.Width(windowWidth * 0.39f))) { selectedAction = i; } } else { GUILayout.BeginHorizontal(GUILayout.Width(windowWidth * 0.39f)); Controller.getInstance().getSelectedChapterDataControl().getScenesList().getScenes()[ GameRources.GetInstance().selectedSceneIndex].getActiveAreasList().getActiveAreas()[ selectedArea].getActionsList().getActions()[i].setNeedsGoTo( GUILayout.Toggle( Controller.getInstance() .getSelectedChapterDataControl() .getScenesList() .getScenes()[ GameRources.GetInstance().selectedSceneIndex].getActiveAreasList() .getActiveAreas()[selectedArea].getActionsList().getActions()[i] .getNeedsGoTo(), "")); Controller.getInstance().getSelectedChapterDataControl().getScenesList().getScenes()[ GameRources.GetInstance().selectedSceneIndex].getActiveAreasList().getActiveAreas()[ selectedArea].getActionsList().getActions()[i].setKeepDistance( EditorGUILayout.IntField( Controller.getInstance() .getSelectedChapterDataControl() .getScenesList() .getScenes()[ GameRources.GetInstance().selectedSceneIndex].getActiveAreasList() .getActiveAreas()[selectedArea].getActionsList().getActions()[i] .getKeepDistance())); GUILayout.EndHorizontal(); } GUILayout.BeginVertical(); if (GUILayout.Button(TC.get("ActiveAreasList.Conditions"), GUILayout.Width(windowWidth * 0.1f))) { ConditionEditorWindow window = (ConditionEditorWindow)ScriptableObject.CreateInstance(typeof(ConditionEditorWindow)); window.Init( Controller.getInstance().getSelectedChapterDataControl().getScenesList().getScenes()[ GameRources.GetInstance().selectedSceneIndex].getActiveAreasList().getActiveAreas()[ selectedArea ].getActionsList().getActions()[i].getConditions()); } if (GUILayout.Button(TC.get("Element.Effects"), GUILayout.Width(windowWidth * 0.1f))) { EffectEditorWindow window = (EffectEditorWindow)ScriptableObject.CreateInstance(typeof(EffectEditorWindow)); window.Init( Controller.getInstance().getSelectedChapterDataControl().getScenesList().getScenes()[ GameRources.GetInstance().selectedSceneIndex].getActiveAreasList().getActiveAreas()[ selectedArea ].getActionsList().getActions()[i].getEffects()); } if (GUILayout.Button(TC.get("SmallAction.EditNotEffects"), GUILayout.Width(windowWidth * 0.1f))) { EffectEditorWindow window = (EffectEditorWindow)ScriptableObject.CreateInstance(typeof(EffectEditorWindow)); window.Init( Controller.getInstance().getSelectedChapterDataControl().getScenesList().getScenes()[ GameRources.GetInstance().selectedSceneIndex].getActiveAreasList().getActiveAreas()[ selectedArea ].getActionsList().getActions()[i].getNotEffectsController()); } GUILayout.EndVertical(); } else { if ( GUILayout.Button( Controller.getInstance().getSelectedChapterDataControl().getScenesList().getScenes()[ GameRources.GetInstance().selectedSceneIndex].getActiveAreasList().getActiveAreas()[ selectedArea].getActionsList().getActions()[i].getTypeName(), GUILayout.Width(windowWidth * 0.39f))) { selectedAction = i; } if (Controller.getInstance().playerMode() == Controller.FILE_ADVENTURE_1STPERSON_PLAYER) { if (GUILayout.Button(TC.get("ActionsList.NotRelevant"), GUILayout.Width(windowWidth * 0.39f))) { selectedAction = i; } } else { if ( GUILayout.Button( Controller.getInstance().getSelectedChapterDataControl().getScenesList().getScenes()[ GameRources.GetInstance().selectedSceneIndex].getActiveAreasList().getActiveAreas()[ selectedArea].getActionsList().getActions()[i].getNeedsGoTo().ToString(), GUILayout.Width(windowWidth * 0.39f))) { selectedAction = i; } } } GUILayout.EndHorizontal(); GUI.skin = defaultSkin; } } GUILayout.EndScrollView(); GUILayout.EndArea(); /* * Right action panel */ GUILayout.BeginArea(actionRightPanelRect); GUI.skin = noBackgroundSkin; if (GUILayout.Button(addTexture, GUILayout.MaxWidth(0.08f * windowWidth))) { addMenu.menu.ShowAsContext(); } if (GUILayout.Button(duplicateImg, GUILayout.MaxWidth(0.08f * windowWidth))) { Controller.getInstance().getSelectedChapterDataControl().getScenesList().getScenes()[ GameRources.GetInstance().selectedSceneIndex].getActiveAreasList().getActiveAreas()[selectedArea] .getActionsList() .duplicateElement(Controller.getInstance().getSelectedChapterDataControl().getScenesList().getScenes()[ GameRources.GetInstance().selectedSceneIndex].getActiveAreasList().getActiveAreas()[selectedArea] .getActionsList().getActions()[selectedAction]); } if (GUILayout.Button(clearImg, GUILayout.MaxWidth(0.08f * windowWidth))) { Controller.getInstance().getSelectedChapterDataControl().getScenesList().getScenes()[ GameRources.GetInstance().selectedSceneIndex].getActiveAreasList().getActiveAreas()[selectedArea] .getActionsList() .deleteElement(Controller.getInstance().getSelectedChapterDataControl().getScenesList().getScenes()[ GameRources.GetInstance().selectedSceneIndex].getActiveAreasList().getActiveAreas()[selectedArea] .getActionsList().getActions()[selectedAction], false); if (selectedAction >= 0) { selectedAction--; } } GUI.skin = defaultSkin; GUILayout.EndArea(); if (backgroundPath != "") { GUILayout.BeginArea(infoPreviewRect); // Show preview dialog if (GUILayout.Button(TC.get("DefaultClickAction.ShowDetails") + "/" + TC.get("GeneralText.Edit"))) { ActiveAreasEditor window = (ActiveAreasEditor)ScriptableObject.CreateInstance(typeof(ActiveAreasEditor)); window.Init(this, Controller.getInstance().getSelectedChapterDataControl().getScenesList().getScenes()[ GameRources.GetInstance().selectedSceneIndex], selectedArea); } GUILayout.EndArea(); GUI.DrawTexture(previewRect, backgroundPreviewTex, ScaleMode.ScaleToFit); } else { GUILayout.BeginArea(infoPreviewRect); GUILayout.Button("No background!"); GUILayout.EndArea(); } }