/// <summary> /// Test conditionals are placed here. /// </summary> /// <param name="state"></param> /// <returns>true or false depending if transition conditions are met.</returns> public override string UpdateConditionalTest(baseState state) { string strOut = null; editorRefactorState theState = (editorRefactorState)state; if (theState.ActionCancelled || theState.ActionConfirmed) { strOut = m_ChangeStateName; } return(strOut); }
/// <summary> /// Draws the "Display" window of this window. Everything is active. /// </summary> /// <param name="id"></param> void DrawNodeWindow(int id) { const float kTopMagin = 5; const float kSpaceBetweenLabelAndText = -15; const float kSpaceBetweenTextAndButton = 10; const float kButtonSideMagins = 30; const float kButtonCenterSpace = 80; const float kMinusSpaceLabelHack = -20; var TextStyle = new GUIStyle(); TextStyle.normal.textColor = Color.blue; TextStyle.fontSize = 12; Color backroundColor = new Color(1, 1, 1, 0.8f); Rect rect = new Rect(1, 17, WinRect.width - 2, WinRect.height - 19); EditorGUI.DrawRect(rect, backroundColor); GUILayout.Space(kTopMagin); GUILayout.BeginHorizontal(""); GUILayout.Space(kButtonSideMagins); GUILayout.Label("This will rename this state's class and refactor", TextStyle); GUILayout.Space(kButtonSideMagins); GUILayout.EndHorizontal(); GUILayout.Space(kMinusSpaceLabelHack); GUILayout.BeginHorizontal(""); GUILayout.Space(kButtonSideMagins); GUILayout.Label("all linked C# statemachines, states, and ", TextStyle); GUILayout.Space(kButtonSideMagins); GUILayout.EndHorizontal(); GUILayout.Space(kMinusSpaceLabelHack); GUILayout.BeginHorizontal(""); GUILayout.Space(kButtonSideMagins); GUILayout.Label("state conditions.", TextStyle); GUILayout.Space(kButtonSideMagins); GUILayout.EndHorizontal(); GUILayout.Space(kSpaceBetweenLabelAndText); m_ChangeName = EditorGUILayout.TextField("Refactor Name: ", m_ChangeName); GUILayout.Space(kSpaceBetweenTextAndButton); GUILayout.BeginHorizontal(""); GUILayout.Space(kButtonSideMagins); if (GUILayout.Button("Refactor")) { editorRefactorState refactorState = (editorRefactorState)m_CurrentState; utlDataAndFile.RefactorAllAssets(stateEditorUtils.SelectedNode.ClassName, m_ChangeName, Application.dataPath, true); stateEditorUtils.SelectedNode.ClassName = m_ChangeName; //stateEditorUtils.SelectedNode.SaveMetaData(); refactorState.ActionConfirmed = true; AssetDatabase.Refresh(); } GUILayout.Space(kButtonCenterSpace); if (GUILayout.Button("Cancel")) { editorRefactorState refactorState = (editorRefactorState)m_CurrentState; refactorState.ActionCancelled = true; } GUILayout.Space(kButtonSideMagins); GUILayout.EndHorizontal(); //GUI.DragWindow(); }