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_ = (CarManagerEditor)CarManagerEditor.Init(); hierarchy_.FocusAndSelect(node); window_.Repaint(); } GUILayout.EndHorizontal(); } }
//----------------------------------------------------------------------------------- void OnEnable() { if (CarManagerEditor.IsOpen) { CarManagerEditor window = CarManagerEditor.Instance; window.WantRepaint += Repaint; } }
//----------------------------------------------------------------------------------- public void UnselectSelected() { listSelectedIdx_.Clear(); CarManagerEditor window = CarManagerEditor.Instance; window.RepaintSubscribers(); }
//----------------------------------------------------------------------------------- void OnDisable() { if (CarManagerEditor.IsOpen) { CarManagerEditor window = CarManagerEditor.Instance; window.WantRepaint -= Repaint; } if (View != null) { View.Deinit(); } }
//----------------------------------------------------------------------------------- public void RenderFieldObjects(GUIContent labelContent, CNFieldController fieldController, bool enabled, bool showScope, CNFieldWindow.Type windowType) { if (objects_rect_width == 1) { CarManagerEditor.RepaintIfOpen(); } EditorGUI.BeginDisabledGroup(!enabled); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField(labelContent, GUILayout.MaxWidth(showScope ? short_label_width : EditorGUIUtility.labelWidth - 4f)); DrawObjectsFields(labelContent.text, fieldController, enabled, showScope, windowType); EditorGUILayout.EndHorizontal(); EditorGUI.EndDisabledGroup(); }
//----------------------------------------------------------------------------------- public void FilterAlreadySelectedNodes() { listCommandNodeCurrent_.Clear(); listCommandNodeCurrent_.AddRange(listCommandNodeAllowed_); foreach (CommandNode cNode in listCommandNodeAllowed_) { if (field_.ContainsNode(cNode)) { FilterChildrenAndMergeFieldWithParents(cNode); } } CarManagerEditor instance = CarManagerEditor.Instance; instance.RepaintSubscribers(); }
public override void OnInspectorGUI() { Rect rect = GUILayoutUtility.GetRect(80f, 80f); GUI.DrawTexture(rect, ic_logoCaronte_, ScaleMode.ScaleToFit); CarGUIUtils.Splitter(); EditorGUILayout.Space(); EditorGUILayout.Space(); GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); if (GUILayout.Button("Open in CaronteFX Editor", GUILayout.Height(30f))) { CarManagerEditor editor = (CarManagerEditor)CarManagerEditor.Init(); editor.Controller.SetFxDataActive(fxData_); } GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); EditorGUILayout.Space(); EditorGUILayout.Space(); }
//----------------------------------------------------------------------------------- private void ChangeToReplayingModeDone() { Int64 checksum = SimulationManager.CalculateChecksum(); CarDebug.Log(string.Format("Finished in {0:F3} secs. Checksum: " + Convert.ToString(checksum, 16), SimulationManager.GetSimulatingRealTime())); stopRequested_ = false; SimulationManager.ChangeToReplayingDone(); manager_.BuildBakerData(); manager_.BuildDisplayerVisibilityIntervals(); EditorApplication.update -= UpdateSimulating; EditorApplication.update += UpdateReplaying; SimulationManager.SetReplayingFrame((uint)frame_, true); playbackRangeMin_ = 0; playbackRangeMax_ = frame_; SceneView.RepaintAll(); CarManagerEditor.RepaintIfOpen(); }
public override void OnInspectorGUI() { serializedObject.Update(); bool isEditing = false; if (CarManagerEditor.IsOpen) { window_ = CarManagerEditor.Instance; window_.WantRepaint -= Repaint; window_.WantRepaint += Repaint; } if (CarManager.IsInitedStatic) { manager_ = CarManager.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 if (IsNotBodyMesh(bodyType)) { 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(); CarGUIUtils.Splitter(); if (!CarManagerEditor.IsOpen) { EditorGUILayout.Space(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.Space(); if (GUILayout.Button("Open CaronteFx Editor", GUILayout.Height(30f))) { window_ = (CarManagerEditor)CarManagerEditor.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(); } } CarManagerEditor instance = CarManagerEditor.Instance; instance.RepaintSubscribers(); }