//----------------------------------------------------------------------------------- void OnEnable() { if (CRManagerEditor.IsOpen) { CRManagerEditor window = CRManagerEditor.Instance; window.WantRepaint += Repaint; } }
//----------------------------------------------------------------------------------- public void UnselectSelected() { listSelectedIdx_.Clear(); CRManagerEditor window = CRManagerEditor.Instance; window.RepaintSubscribers(); }
//----------------------------------------------------------------------------------- public void RenderFieldObjects(string labelText, CNFieldController fieldController, bool enabled, bool showScope, CNFieldWindow.Type windowType) { if (objects_rect_width == 1) { CRManagerEditor.RepaintIfOpen(); } EditorGUI.BeginDisabledGroup(!enabled); Event ev = Event.current; EventType evType = ev.type; EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField(labelText, GUILayout.MaxWidth(showScope ? short_label_width : long_label_width)); GUILayout.Label("", EditorStyles.objectField); Rect objectsRect = GUILayoutUtility.GetLastRect(); if (evType == EventType.Repaint) { objects_rect_width = objectsRect.width; } fieldController.DrawFieldItems(objectsRect, tex_icon_size); if (evType == EventType.MouseDown && ev.button == 0 && objectsRect.Contains(ev.mousePosition)) { if (windowType == CNFieldWindow.Type.normal) { CNFieldWindowSmall.ShowWindow <CNFieldWindowSmall>(labelText, fieldController, this); } else if (windowType == CNFieldWindow.Type.extended) { CNFieldWindowBig.ShowWindow <CNFieldWindowBig>(labelText, fieldController, this); } } if (showScope) { GUILayout.Space(10f); EditorGUILayout.LabelField("Scope", GUILayout.Width(40f)); CNField.ScopeFlag auxScope = fieldController.GetScopeType(); EditorGUI.BeginChangeCheck(); auxScope = (CNField.ScopeFlag)EditorGUILayout.EnumPopup(auxScope, GUILayout.Width(70f)); if (EditorGUI.EndChangeCheck()) { fieldController.SetScopeType(auxScope); cnHierarchy.RecalculateFieldsDueToUserAction(); EditorUtility.SetDirty(Data); } } ProccesEvents(ev, evType, fieldController, objectsRect); EditorGUILayout.EndHorizontal(); EditorGUI.EndDisabledGroup(); }
//----------------------------------------------------------------------------------- void OnDisable() { if (CRManagerEditor.IsOpen) { CRManagerEditor window = CRManagerEditor.Instance; window.WantRepaint -= Repaint; } if (View != null) { View.Deinit(); } }
//----------------------------------------------------------------------------------- private void ChangeToReplayingModeDone() { stopRequested_ = false; SimulationManager.ChangeToReplayingDone(); manager_.BuildBakerData(); EditorApplication.update -= UpdateSimulating; EditorApplication.update += UpdateReplaying; SimulationManager.SetReplayingFrame((uint)frame_, false); SceneView.RepaintAll(); CRManagerEditor.RepaintIfOpen(); }
//----------------------------------------------------------------------------------- public void FilterAlreadySelectedNodes() { listCommandNodeCurrent_.Clear(); listCommandNodeCurrent_.AddRange(listCommandNodeAllowed_); foreach (CommandNode cNode in listCommandNodeAllowed_) { if (field_.ContainsNode(cNode)) { FilterChildrenAndMergeFieldWithParents(cNode); } } CRManagerEditor instance = CRManagerEditor.Instance; instance.RepaintSubscribers(); }
public override void OnInspectorGUI() { Caronte_Fx fxData = target as Caronte_Fx; EditorGUILayout.Space(); EditorGUILayout.Space(); GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); if (GUILayout.Button("Open in CaronteFX Editor", GUILayout.Height(30f))) { CRManagerEditor window = (CRManagerEditor)CRManagerEditor.Init(); window.Controller.SetFxDataActive(fxData); } GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); EditorGUILayout.Space(); EditorGUILayout.Space(); }
private void DrawNodeGUI(HashSet <CommandNode> setNode) { if (setNode.Count == 0) { GUILayout.Label("-"); } foreach (CommandNode node in setNode) { GUILayout.BeginHorizontal(); Rect boxRect = GUILayoutUtility.GetRect(new GUIContent(""), EditorStyles.textField, GUILayout.ExpandWidth(true)); Rect labelRect = new Rect(boxRect.xMin + 5, boxRect.yMin, boxRect.width * 0.75f - 5, boxRect.height); GUI.Box(labelRect, ""); GUI.Label(labelRect, node.Name); Rect buttonRect = new Rect(labelRect.xMax + 10, boxRect.yMin, boxRect.width * 0.25f - 15, boxRect.height); if (GUI.Button(buttonRect, "Select", EditorStyles.miniButton)) { window_ = (CRManagerEditor)CRManagerEditor.Init(); hierarchy_.FocusAndSelect(node); } GUILayout.EndHorizontal(); } }
public override void OnInspectorGUI() { serializedObject.Update(); bool isEditing = false; if (CRManagerEditor.IsOpen) { window_ = CRManagerEditor.Instance; window_.WantRepaint -= Repaint; window_.WantRepaint += Repaint; } if (CNManager.IsInitedStatic) { manager_ = CNManager.Instance; hierarchy_ = manager_.Hierarchy; manager_.GetBodiesData(listBodyData_); isEditing = manager_.Player.IsEditing; } else { listBodyData_.Clear(); } CRBodyData bdData = null; uint idBody = uint.MaxValue; int nBodyData = listBodyData_.Count; BodyType bodyType; string bodyTypeText; string bodyIdText; if (nBodyData == 0) { bodyType = BodyType.None; bodyTypeText = "-"; bodyIdText = "-"; } else { bdData = listBodyData_[0]; bodyType = bdData.bodyType_; bodyTypeText = GetBodyTypeString(bdData.bodyType_); idBody = bdData.idBody_; for (int i = 1; i < nBodyData; i++) { bdData = listBodyData_[i]; if (bdData.bodyType_ != bodyType) { bodyType = BodyType.None; bodyTypeText = "-"; bodyIdText = "-"; break; } } if (idBody == uint.MaxValue || nBodyData > 1) { bodyIdText = "-"; } else { bodyIdText = idBody.ToString(); } } HashSet <CommandNode> setBodyDefinition = new HashSet <CommandNode>(); HashSet <CommandNode> setBodyReference = new HashSet <CommandNode>(); for (int i = 0; i < nBodyData; i++) { bdData = listBodyData_[i]; List <CommandNode> bdDataNodes = bdData.listNode_; int nDataNodes = bdDataNodes.Count; for (int j = 0; j < nDataNodes; j++) { CommandNode node = bdDataNodes[j]; if (j == 0) { setBodyDefinition.Add(node); } else { setBodyReference.Add(node); } } } EditorGUILayout.Space(); EditorGUILayout.LabelField("Body type: ", bodyTypeText); EditorGUILayout.LabelField("Body id:", bodyIdText); EditorGUILayout.Space(); if (bodyType == BodyType.None) { DrawFullBodySection(); } else if (bodyType == BodyType.Ropebody) { DrawRopeColliderSection(isEditing); } else { DrawBodyColliderSection(); } EditorGUILayout.Space(); EditorGUILayout.LabelField("Body Definition: "); scrollVecDefinition_ = GUILayout.BeginScrollView(scrollVecDefinition_, GUILayout.ExpandHeight(false)); DrawNodeGUI(setBodyDefinition); GUILayout.EndScrollView(); EditorGUILayout.Space(); EditorGUILayout.LabelField("Referenced in: "); scrollVecReferenced_ = GUILayout.BeginScrollView(scrollVecReferenced_, GUILayout.ExpandHeight(false)); DrawNodeGUI(setBodyReference); GUILayout.EndScrollView(); CRGUIUtils.Splitter(); if (!CRManagerEditor.IsOpen) { EditorGUILayout.Space(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.Space(); if (GUILayout.Button("Open CaronteFx Editor", GUILayout.Height(30f))) { window_ = (CRManagerEditor)CRManagerEditor.Init(); } EditorGUILayout.Space(); EditorGUILayout.EndHorizontal(); EditorGUILayout.Space(); } serializedObject.ApplyModifiedProperties(); }
//----------------------------------------------------------------------------------- public void OnClickItem(int itemIdx, bool ctrlPressed, bool shiftPressed, bool altPressed, bool isUpClick) { int prevIdx = lastSelectedIdx_; lastSelectedIdx_ = itemIdx; if (!isUpClick) { if (shiftPressed) { if (prevIdx != -1) { int range = itemIdx - prevIdx; int increment = (range > 0) ? 1 : -1; while (prevIdx != itemIdx) { int currentIdx = prevIdx + increment; if (listSelectedIdx_.Contains(currentIdx)) { listSelectedIdx_.Remove(currentIdx); } else { listSelectedIdx_.Add(currentIdx); } prevIdx += increment; } SceneSelection(); } } else if (ctrlPressed) { if (listSelectedIdx_.Contains(itemIdx)) { listSelectedIdx_.Remove(itemIdx); } else { listSelectedIdx_.Add(itemIdx); } } else if (!listSelectedIdx_.Contains(itemIdx)) { listSelectedIdx_.Clear(); listSelectedIdx_.Add(itemIdx); SceneSelection(); } else { return; } } else { if (!ctrlPressed && !shiftPressed) { listSelectedIdx_.Clear(); listSelectedIdx_.Add(itemIdx); lastSelectedIdx_ = itemIdx; SceneSelection(); } } CRManagerEditor instance = CRManagerEditor.Instance; instance.RepaintSubscribers(); }