private static void HandleCheckFocus(NodeInputInfo inputInfo) { NodeEditorState state = inputInfo.EdState; state.FocusNode = inputInfo.Graph.CheckFocus(inputInfo.InputPos); state.FocusKnob = inputInfo.Graph.CheckFocusKnob(inputInfo.InputPos); state.MousePos = inputInfo.InputPos; }
private static void SelectedPanelMouseDrag(NodeInputInfo inputInfo) { NodeEditorState state = inputInfo.EdState; if (inputInfo.InputEvent.modifiers == EventModifiers.Alt) { state.selectedPanelNodesEndPos = inputInfo.InputPos; } }
public static void Load(string path) { #if UNITY_EDITOR var graph = AssetDatabase.LoadAssetAtPath <NodeGraph>(path); curNodeEditorState = graph.curNodeState; curNodeGraph = graph; CurNodeInputInfo = new NodeInputInfo("Two", curNodeGraph); #endif }
private static void HandleKnobMouseDrag(NodeInputInfo inputInfo) { NodeEditorState state = inputInfo.EdState; if (inputInfo.InputPos.x < 0 || inputInfo.InputPos.y < 0 || state.SelectedKnob == null) { return; } }
private static void SelectedPanelMouseDragCheck(NodeInputInfo inputInfo) { NodeEditorState state = inputInfo.EdState; if (inputInfo.InputEvent.modifiers != EventModifiers.Alt) { state.IsSelectedPanelNodes = false; } }
private static void HandleWindowPineUp(NodeInputInfo inputInfo) { if (inputInfo.InputPos.x < 0 || inputInfo.InputPos.y < 0) { return; } NodeEditorState state = inputInfo.EdState; state.IsPineSetting = false; }
private static void HandleKnobMouseDown(NodeInputInfo inputInfo) { NodeEditorState state = inputInfo.EdState; if (inputInfo.InputEvent.button == 0 && state.FocusKnob != null) { state.SelectedKnob = state.FocusKnob; state.IsLinkSetting = true; } }
private static void SelectedPanelMouseDown(NodeInputInfo inputInfo) { NodeEditorState state = inputInfo.EdState; if (inputInfo.InputEvent.modifiers == EventModifiers.Alt) { state.IsSelectedPanelNodes = true; state.SelectedNodes.Clear(); state.selectedPanelNodesStartPos = inputInfo.InputPos; } }
public static void CreateNew() { #if UNITY_EDITOR string path = EditorUtility.SaveFilePanel("Save graph", Application.dataPath + "/EffectL/Output", "defeault", "asset"); path = Regex.Replace(path, @"^.+/Assets", "Assets"); var graph = ScriptableObject.CreateInstance <NodeGraph>(); AssetDatabase.CreateAsset(graph, path); graph.Name = Regex.Match(path, @"/.+?\.", RegexOptions.RightToLeft).Value.TrimStart('/').TrimEnd('.'); graph.Type = "Map"; curNodeGraph = graph; curNodeEditorState = graph.curNodeState; CurNodeInputInfo = new NodeInputInfo("One", curNodeGraph); EditorPrefs.SetString("LastMap", path); #endif }
public static void Load() { #if UNITY_EDITOR string path = EditorUtility.OpenFilePanel("Open graph", EditorDataMgr.RootPath, "asset"); path = Regex.Replace(path, @"^.+/Assets", "Assets"); var graph = AssetDatabase.LoadAssetAtPath <NodeGraph>(path); if (graph == null) { return; } curNodeEditorState = graph.curNodeState; curNodeGraph = graph; CurNodeInputInfo = new NodeInputInfo("Two", curNodeGraph); EditorPrefs.SetString("LastGraph", path); #endif }
private static void HandleNodePanelDrag(NodeInputInfo inputInfo) { NodeEditorState state = inputInfo.EdState; if (inputInfo.InputPos.x < 0 || inputInfo.InputPos.y < 0 || state.SelectedNode == null) { return; } if (state.IsPineSetting) { Vector2 panChangeDragOffset = state.DragOffset; state.DragOffset = inputInfo.InputPos - state.DragStart; panChangeDragOffset = (state.DragOffset - panChangeDragOffset); state.SelectedNode.rect.position += panChangeDragOffset / state.GraphZoom; } }
private static void SelectedPanelMouseUp(NodeInputInfo inputInfo) { NodeEditorState state = inputInfo.EdState; if (inputInfo.InputEvent.modifiers == EventModifiers.Alt) { state.selectedPanelNodesEndPos = inputInfo.InputPos; state.IsSelectedPanelNodes = false; // Rect rect=new Rect(state.selectedPanelNodesStartPos); for (int i = 0; i < NodeEditor.curNodeGraph.nodes.Count; i++) { //if( state.CurGraph.nodes[i].rect) state.SelectedNodes.Add(NodeEditor.curNodeGraph.nodes[i]); } } }
private static void HandleWindowPineDrag(NodeInputInfo inputInfo) { NodeEditorState state = inputInfo.EdState; if (inputInfo.InputPos.x < 0 || inputInfo.InputPos.y < 0 || state.SelectedNode != null || state.SelectedKnob != null) { return; } if (state.IsPineSetting) { Vector2 panChangeDragOffset = state.DragOffset; state.DragOffset = inputInfo.InputPos - state.DragStart; panChangeDragOffset = (state.DragOffset - panChangeDragOffset); state.PanOffset += (panChangeDragOffset * inputInfo.EdState.GraphZoom); } }
private static void HandleSettingMouseDown(NodeInputInfo inputInfo) { var state = inputInfo.EdState; if (inputInfo.InputEvent.button != 1) { return; } if (state.SelectedNode != null && state.FocusNode == state.SelectedNode) { inputInfo.Graph.DrawSelectedNodeMenu(); } else { inputInfo.Graph.NodeGenericMenu(); } }
internal static void DynamicInvoke(NodeInputInfo inputInfo) { if (_eventHandles == null) { return; } if (inputInfo.CheckEvent()) { foreach (var keyValuePair in _eventHandles) { if (keyValuePair.Key.eventType == inputInfo.InputEvent.type) { keyValuePair.Value.DynamicInvoke(inputInfo); } } } }
public static void CreateNew() { #if UNITY_EDITOR string path = EditorUtility.SaveFilePanel("Save graph", EditorDataMgr.RootPath, "defeault", "asset"); path = Regex.Replace(path, @"^.+/Assets", "Assets"); var graph = ScriptableObject.CreateInstance <NodeGraph>(); AssetDatabase.CreateAsset(graph, path); graph.Name = Regex.Match(path, @"/.+?\.", RegexOptions.RightToLeft).Value.TrimStart('/').TrimEnd('.'); graph.Type = "Logic"; curNodeGraph = graph; graph.AddNode("Start", new Vector2(50f, 50f)); graph.AddNode("Update", new Vector2(50f, 150f)); curNodeEditorState = graph.curNodeState; CurNodeInputInfo = new NodeInputInfo("One", curNodeGraph); EditorPrefs.SetString("LastGraph", path); #endif }
private static void HandleKnobMouseUp(NodeInputInfo inputInfo) { NodeEditorState state = inputInfo.EdState; state.IsLinkSetting = false; if (state.SelectedKnob == null || inputInfo.InputPos.x < 0 || inputInfo.InputPos.y < 0 || state.SelectedKnob == state.FocusKnob) { return; } if (state.FocusKnob != null) { state.SelectedKnob.Linking(state.FocusKnob); } else { state.SelectedKnob = null; } }
private static void HandleNodePanelDown(NodeInputInfo inputInfo) { NodeEditorState state = inputInfo.EdState; if (inputInfo.InputEvent.button == 0 && state.FocusNode != null) { state.SelectedNode = state.FocusNode; Selection.activeObject = state.FocusNode; if (!state.IsPineSetting) { state.IsPineSetting = true; state.DragStart = inputInfo.InputPos; state.DragOffset = Vector2.zero; } else { state.DragStart = inputInfo.InputPos; state.DragOffset = Vector2.zero; } } }
private static void HandleWindowScroll(NodeInputInfo inputInfo) { if (inputInfo.InputPos.x < 0 || inputInfo.InputPos.y < 0) { return; } NodeEditorState state = inputInfo.EdState; float Scale = 0.01f * inputInfo.InputEvent.delta.y; state.GraphZoom += Scale; if (state.GraphZoom <= 0.2f) { state.GraphZoom = 0.2f; } else if (state.GraphZoom >= 1.2f) { state.GraphZoom = 1.2f; } state.ZoomPos = state.CurGraphRect.size / 2; state.PanAdjust = EffectUtility.PanelScale(ref state.CurGraphRect, state.ZoomPos, state.GraphZoom); }
private static void HandleWindowPineDown(NodeInputInfo inputInfo) { NodeEditorState state = inputInfo.EdState; if (state.FocusNode != null && state.FocusKnob != null || inputInfo.InputEvent.button != 0) { return; } else { state.SelectedNode = null; } if (!state.IsPineSetting) { state.IsPineSetting = true; state.DragStart = inputInfo.InputPos; state.DragOffset = Vector2.zero; } else { state.DragStart = inputInfo.InputPos; state.DragOffset = Vector2.zero; } }