Exemple #1
0
 void OnDestroy()
 {
     UiManager.Unregister(this);
 }
Exemple #2
0
 void Awake()
 {
     box = GetComponent <SelectionBox>();
     SetSelectables(UiManager.GetSelectables());
 }
Exemple #3
0
        public void Fill()
        {
            List <CircuitNode> nodes = RRCSManager.Instance.circuitManager.Nodes;

            graph = new StorageNode[nodes.Count];
            for (int i = 0; i < graph.Length; i++)
            {
                CircuitNode node = nodes[i];
                DebugUtils.Assert(node.RingEvaluationPriority == i);

                StorageNode storageNode = new StorageNode();
                NodeUi      ui          = UiManager.GetUi(node);
                storageNode.uiType     = ui.GetType().FullName;
                storageNode.typeParams = ui.GetParams();
                storageNode.position   = ui.transform.position;
                storageNode.settings   = new NodeSettingContainer[node.settings.Length];
                for (int j = 0; j < storageNode.settings.Length; j++)
                {
                    NodeSetting setting = node.settings[j];
                    storageNode.settings[j] = new NodeSettingContainer
                    {
                        type  = setting.type,
                        value = setting.currentValue.ToString()
                    };
                }

                graph[i] = storageNode;
            }

            for (int nodeIndex = 0; nodeIndex < graph.Length; nodeIndex++)
            {
                CircuitNode node        = nodes[nodeIndex];
                StorageNode storageNode = graph[nodeIndex];
                storageNode.connections = new NodeConnection[node.inputPorts.Length];
                for (int portIndex = 0; portIndex < node.inputPorts.Length; portIndex++)
                {
                    InputPort port = node.inputPorts[portIndex];
                    if (port.IsConnected)
                    {
                        NodeConnection connection    = new NodeConnection();
                        OutputPort     connectedPort = ((DataConnection)port.connections[0]).SourceDataPort;
                        connection.nodeIndex = connectedPort.RingEvaluationPriority;
                        connection.portIndex = Array.IndexOf(connectedPort.Node.outputPorts, connectedPort);
                        storageNode.connections[portIndex] = connection;
                    }
                }
            }

            for (int nodeIndex = 0; nodeIndex < graph.Length; nodeIndex++)
            {
                CircuitNode node        = nodes[nodeIndex];
                StorageNode storageNode = graph[nodeIndex];

                if (node.statePort != null)
                {
                    List <StateMachineTransition> outgoingTransitions = node.statePort.GetOutgoingTransitions().ToList();
                    storageNode.transitions = new NodeTransition[outgoingTransitions.Count];

                    for (int transitionIndex = 0; transitionIndex < storageNode.transitions.Length; transitionIndex++)
                    {
                        StateMachineTransition outgoingTransition = outgoingTransitions[transitionIndex];
                        NodeTransition         transition         = new NodeTransition
                        {
                            sourceNodeIndex = outgoingTransition.SourceStatePort.RingEvaluationPriority,
                            targetNodeIndex = outgoingTransition.TargetStatePort.RingEvaluationPriority
                        };

                        if (outgoingTransition.TransitionEnabledPort != null && outgoingTransition.TransitionEnabledPort.IsConnected)
                        {
                            OutputPort     connectedPort = ((DataConnection)outgoingTransition.TransitionEnabledPort.connections[0]).SourceDataPort;
                            NodeConnection connection    = new NodeConnection
                            {
                                nodeIndex = connectedPort.RingEvaluationPriority,
                                portIndex = Array.IndexOf(connectedPort.Node.outputPorts, connectedPort)
                            };
                            transition.transitionEnabledConnection = connection;
                        }
                        storageNode.transitions[transitionIndex] = transition;
                    }
                }
                else
                {
                    storageNode.transitions = new NodeTransition[0];
                }
            }
        }
Exemple #4
0
 public void ResetGizmos()
 {
     UiManager.ResetGizmos();
 }