public static bool Go(NodeEvents evts, List <IQKnodeModule> modules) { foreach (IQKnodeModule curr in modules) { try { if (!curr.Init(evts)) { Debug.LogError(string.Format("模块 {0} 初始化失败!", curr.ModuleName)); return(false); } } catch (Exception ex) { Debug.LogError(string.Format("模块 {0} 初始化失败! {1}", curr.ModuleName, ex.ToString())); return(false); } } return(true); }
public static void PollEvents(Event e) { NodeEvents.PollEvents(e); }
public static void Release(object obj) { NodeEvents.Release(obj); }
public static void SetSelected(object obj) { NodeEvents.SetSelected(obj); }
void doNodeEvents(NodeEvents nodeEvent, Option <TimelineNode> timelineNodeOpt, float mousePositionSeconds) { var snappingEnabled = !Event.current.shift && snapping; //Cleaning up nodes list from nodes without element.element funNodes = funNodes.Where(funNode => funNode.element.element != null).ToList(); switch (nodeEvent) { case NodeEvents.RemoveSelected: removeoAllSelectedNodes(); selectedNodesList.Clear(); importTimeline(); break; case NodeEvents.SelectAll: selectedNodesList.Clear(); foreach (var node in funNodes) { selectedNodesList.Add(node); } break; case NodeEvents.ResizeStart: foreach (var timelineNode in timelineNodeOpt) { removeRootNodeIfHasNoElement(); manageSelectedNode(timelineNode, Event.current); rootSelectedNodeOpt = timelineNodeOpt; resizeNodeStart = true; } break; case NodeEvents.ResizeEnd: foreach (var timelineNode in timelineNodeOpt) { removeRootNodeIfHasNoElement(); manageSelectedNode(timelineNode, Event.current); rootSelectedNodeOpt = timelineNodeOpt; resizeNodeEnd = true; } break; case NodeEvents.NodeClicked_MB1: foreach (var timelineNode in timelineNodeOpt) { removeRootNodeIfHasNoElement(); timeClickOffset = timelineNode.startTime - mousePositionSeconds; dragNode = true; rootSelectedNodeOpt = timelineNodeOpt; manageSelectedNode(timelineNode, Event.current); } break; case NodeEvents.NodeClicked_MB2: foreach (var timelineNode in timelineNodeOpt) { removeRootNodeIfHasNoElement(); rootSelectedNodeOpt = timelineNodeOpt; manageSelectedNode(timelineNode, Event.current); var genericMenu = new GenericMenu(); genericMenu.AddItem(new GUIContent("Remove"), false, removeSelectedNode, timelineNode); genericMenu.AddItem(new GUIContent("Unselect"), false, deselect, timelineNode); genericMenu.ShowAsContext(); } break; case NodeEvents.Drag: if (rootSelectedNodeOpt.valueOut(out var rootSelected)) { if (resizeNodeStart) { var selectedNodeEnd = rootSelected.getEnd(); if (selectedNodeEnd < mousePositionSeconds) { break; } rootSelected.setStartTime(mousePositionSeconds); if (rootSelected.startTime > 0 && !isStartSnapped) { rootSelected.setDuration(selectedNodeEnd - rootSelected.startTime); } if (snappingEnabled) { snapStart(rootSelected, selectedNodeEnd); } foreach (var selected in selectedNodesList) { if (selected != rootSelected) { var nodeEnd = selected.getEnd(); selected.setStartTime(rootSelected.startTime); selected.setDuration(nodeEnd - selected.startTime); } } } if (resizeNodeEnd) { if (rootSelected.startTime > mousePositionSeconds) { break; } rootSelected.setDuration(mousePositionSeconds - rootSelected.startTime); if (snappingEnabled) { snapEnd(rootSelected); } foreach (var node in selectedNodesList) { if (node != rootSelected) { node.setDuration(rootSelected.duration - (node.startTime - rootSelected.startTime)); } updateLinkedNodeStartTimes(node); } timelineVisuals.recalculateTimelineWidth(funNodes); } //Draging the node if (dragNode && !resizeNodeStart && !resizeNodeEnd || resizeNodeEnd && resizeNodeStart) { foreach (var selected in selectedNodesList) { diffList.Add(selected.startTime - rootSelected.startTime); } var clampLimit = selectedNodesList.find(node => node.startTime <= 0).isSome ? rootSelected.startTime : 0; rootSelected.setStartTime(mousePositionSeconds + timeClickOffset, clampLimit); isEndSnapped = false; isStartSnapped = false; if (snappingEnabled) { snapDrag(rootSelected, selectedNodesList); } //setting multiselected nodes starttimes for (var i = 0; i < selectedNodesList.Count; i++) { var node = selectedNodesList[i]; node.setStartTime(rootSelected.startTime + diffList[i]); updateLinkedNodeStartTimes(node); } diffList.Clear(); if (Event.current.mousePosition.y > rootSelected.channel * 20 + 25) { foreach (var node in selectedNodesList) { updateLinkedNodeChannels(node, _ => _.increaseChannel()); if (node == rootSelected) { node.unlink(); } } } if (Event.current.mousePosition.y < rootSelected.channel * 20 - 5 && selectedNodesList.find(node => node.channel == 0).isNone) { foreach (var node in selectedNodesList) { updateLinkedNodeChannels(node, _ => _.decreaseChannel()); if (node == rootSelected) { node.unlink(); } } } void updateLinkedNodeChannels(TimelineNode node, Act <TimelineNode> changeChannel) { getLinkedRightNode(node, node).voidFold( () => { }, rightNode => { updateLinkedNodeChannels(rightNode, changeChannel); } ); changeChannel(node); } } } break; case NodeEvents.DeselectAll: if (!dragNode && !resizeNodeStart && !resizeNodeEnd) { selectedNodesList.Clear(); } break; case NodeEvents.Refresh: if (dragNode || resizeNodeEnd || resizeNodeStart) { exportTimelineToTweenManager(); importTimeline(); timelineVisuals.recalculateTimelineWidth(funNodes); } unlinkNodesWithBrokenLink(); isEndSnapped = false; isStartSnapped = false; dragNode = false; resizeNodeStart = false; resizeNodeEnd = false; nodeSnappedToOpt = F.none_; break; } }