Example #1
0
 public void RemoveNode(NodeData node, ConstellationScriptData constellationScript)
 {
     foreach (var constellationRule in constellationRules)
     {
         constellationRule.RemoveNode(node, constellationScript);
     }
 }
Example #2
0
        public bool AddLink(InputData _input, OutputData _output, ConstellationScriptData constellationScript, ConstellationEditorRules.LinkValid linkIsValid, ConstellationEditorRules.LinkAdded linkCreated)
        {
            var newLink = new LinkData(_input, _output);

            if (_output == null || _input == null)
            {
                return(false);
            }

            foreach (var constellationRule in constellationRules)
            {
                if (constellationRule.IsLinkValid(_input, _output))
                {
                    if (!IsLinkValid(newLink, constellationScript))
                    {
                        return(false);
                    }
                }
                else if (_input != null && _output != null)
                {
                    return(false);
                }
            }
            linkIsValid();
            constellationScript.AddLink(newLink);
            linkCreated(newLink.GUID);
            return(true);
        }
Example #3
0
 public void UpdateGenericNodeByLinkGUID(ConstellationScriptData constellationScript, NodesFactory nodesFactory, string guid, IConstellationFileParser constellationParser)
 {
     foreach (var constellationRule in constellationRules)
     {
         constellationRule.LinkAdded(constellationScript, nodesFactory, guid, constellationParser);
     }
 }
Example #4
0
 public void UpdateGenericNodeByLinkGUID(ConstellationScriptData constellationScript, NodesFactory nodesFactory, string guid)
 {
     foreach (var constellationRule in constellationRules)
     {
         constellationRule.UpdateGenericNodeByLinkGUID(constellationScript, nodesFactory, guid);
     }
 }
Example #5
0
 public Constellation(ConstellationScriptData constellationScriptData,
                      NodesFactory nodesFactory,
                      NodeAdded onNodeAdded = null)
 {
     NodesFactory = nodesFactory;
     SetNodes(constellationScriptData.GetNodes(), onNodeAdded);
     SetLinks(constellationScriptData.GetLinks());
 }
Example #6
0
 public void SetConstellation(ConstellationScriptData constellationScriptData)
 {
     ConstellationData            = ScriptableObject.CreateInstance <ConstellationScript>();
     ConstellationData.script     = constellationScriptData;
     ConstellationData.IsInstance = true;
     Initialize();
     this.enabled = true;
 }
Example #7
0
 public bool IsLinkValid(LinkData _link, ConstellationScriptData _constellationScriptData)
 {
     foreach (LinkData link in _constellationScriptData.Links)
     {
         if (_link.Input.Guid == link.Input.Guid && _link.Output.Guid == link.Output.Guid)
         {
             return(false);
         }
     }
     return(true);
 }
Example #8
0
 public void RemoveNode(NodeData node, ConstellationScriptData constellationScript)
 {
     foreach (var constellationRule in constellationRules)
     {
         if (!constellationRule.CanRemoveNode(node, constellationScript))
         {
             return;
         }
     }
     constellationScript.RemoveNode(node.Guid);
 }
 public ConstellationScriptData Set(ConstellationScriptData script)
 {
     Nodes = null;
     Links = null;
     foreach (var node in script.Nodes)
     {
         AddNode(node);
     }
     foreach (var link in script.Links)
     {
         AddLink(link);
     }
     return(this);
 }
Example #10
0
        public ConstellationScript Set(ConstellationScriptData _script)
        {
            script.Nodes = new List <NodeData>();
            script.Links = new List <LinkData>();

            if (_script.Nodes != null)
            {
                foreach (var node in _script.Nodes)
                {
                    AddNode(node);
                }
            }

            if (_script.Links != null)
            {
                foreach (var link in _script.Links)
                {
                    AddLink(link);
                }
            }
            return(this);
        }
Example #11
0
        public Constellation(ConstellationScriptData constellationScriptData,
                             NodesFactory nodesFactory,
                             NodeAdded onNodeAdded = null)
        {
            isConstellationInitialized = false;
            NodesFactory = nodesFactory;
            var newAssembly = new List <ConstellationScriptData>();

            if (nodesFactory.GetStaticScripts() == null)
            {
                foreach (var node in constellationScriptData.Nodes)
                {
                    if (node.Namespace == ConstellationNodes.NameSpace.NAME)
                    {
                        newAssembly.Add(UnityEngine.JsonUtility.FromJson <ConstellationScriptData>(node.DiscreteParametersData[1].Value.GetString()));
                    }
                }
                nodesFactory.UpdateConstellationScripts(newAssembly.ToArray());
            }
            SetNodes(constellationScriptData.GetNodes(), onNodeAdded);
            SetLinks(constellationScriptData.GetLinks());
            isConstellationInitialized = true;
        }
Example #12
0
        public Constellation(ConstellationScriptData constellationScriptData, NodesFactory nodesFactory, IConstellationFileParser constellationFileParser, NodeAdded onNodeAdded = null)
        {
            fileParser = constellationFileParser;
            isConstellationInitialized = false;
            NodesFactory = nodesFactory;
            var newAssembly = new List <ConstellationScriptData>();

            if (nodesFactory.GetStaticScripts() == null || nodesFactory.GetIsLocalScope())
            {
                foreach (var node in constellationScriptData.Nodes)
                {
                    if (node.Namespace == ConstellationNodes.NameSpace.NAME)
                    {
                        newAssembly.Add(constellationFileParser.ParseConstellationScript(node.DiscreteParametersData[1].Value.GetString()));
                    }
                }
                nodesFactory.UpdateConstellationScripts(newAssembly.ToArray());
                nodesFactory.SetLocalScope();
            }
            SetNodes(constellationScriptData.GetNodes(), onNodeAdded);
            SetLinks(constellationScriptData.GetLinks());
            isConstellationInitialized = true;
        }
Example #13
0
        public bool AddLink(InputData _input, OutputData _output, ConstellationScriptData constellationScript, ConstellationEditorRules.LinkValid linkIsValid, ConstellationEditorRules.LinkAdded linkCreated)
        {
            var newLink = new LinkData(_input, _output);

            foreach (var constellationRule in constellationRules)
            {
                if (_output != null && _output.Type == UNDEFINED && _input != null && _input.Type != UNDEFINED)
                {
                    return(false);
                }

                if (constellationRule.IsTypeValid(_input, _output))
                {
                    if (constellationRule.IsLinkValid(newLink, constellationScript))
                    {
                        linkIsValid();
                        constellationScript.AddLink(newLink);
                        linkCreated(newLink.GUID);
                        return(true);
                    }
                }
            }
            return(false);
        }
Example #14
0
 public void InitializeData(ConstellationScriptData constellationScriptData)
 {
     script = constellationScriptData;
     Set(script);
 }
Example #15
0
 public void InitializeData()
 {
     script = new ConstellationScriptData();
     Set(script);
 }
Example #16
0
        public void UpdateScriptNodes(ConstellationScriptData script, ConstellationScriptData[] constellationScripts, IConstellationFileParser constellationFileParser)
        {
            List <NodeData> nodesToRemove = new List <NodeData>();

            NodesFactory = new NodesFactory(constellationScripts);
            foreach (var node in script.Nodes)
            {
                var nodeObject = NodesFactory.GetNodeSafeMode(node, constellationFileParser);
                foreach (var parsingRule in parsingRules)
                {
                    if (!parsingRule.isNodeValid(node, nodeObject, NodesFactory))
                    {
                        nodesToRemove.Add(node);
                        break;
                    }
                }
            }

            foreach (var node in nodesToRemove)
            {
                script.RemoveNode(node.Guid);
                var replacementNode = NodesFactory.GetNode(node.Name, node.Namespace, new UnityConstellationParser());
                if (replacementNode != null)
                {
                    replacementNode.XPosition = node.XPosition;
                    replacementNode.YPosition = node.YPosition;
                    replacementNode.XSize     = node.SizeX;
                    replacementNode.YSize     = node.SizeY;

                    if (node.ParametersData != null && replacementNode.NodeParameters != null)
                    {
                        if (node.ParametersData.Count == replacementNode.NodeParameters.Count)
                        {
                            for (var i = 0; i < replacementNode.NodeParameters.Count; i++)
                            {
                                replacementNode.NodeParameters[i].Value = new Ray(node.ParametersData[i].Value);
                            }
                        }
                    }


                    if (node.Inputs != null && replacementNode.Inputs != null)
                    {
                        if (node.Inputs.Count >= replacementNode.Inputs.Count)
                        {
                            for (var i = 0; i < replacementNode.Inputs.Count; i++)
                            {
                                replacementNode.Inputs[i].Guid = node.Inputs[i].Guid;
                            }
                        }
                        else
                        {
                            for (var i = 0; i < node.Inputs.Count; i++)
                            {
                                replacementNode.Inputs[i].Guid = node.Inputs[i].Guid;
                            }
                        }
                    }

                    if (node.Outputs != null && replacementNode.Outputs != null)
                    {
                        if (node.Outputs.Count >= replacementNode.Outputs.Count)
                        {
                            for (var i = 0; i < replacementNode.Outputs.Count; i++)
                            {
                                replacementNode.Outputs[i].Guid = node.Outputs[i].Guid;
                            }
                        }
                        else
                        {
                            for (var i = 0; i < node.Outputs.Count; i++)
                            {
                                replacementNode.Outputs[i].Guid = node.Outputs[i].Guid;
                            }
                        }
                    }
                    script.AddNode(new NodeData(replacementNode));
                }
                else
                {
                    script.RemoveNode(node.Guid);
                }
            }

            foreach (var link in script.Links)
            {
                //if()
            }
        }
Example #17
0
        public NodeData AddNode(NodesFactory nodesFactory, string nodeName, string nameSpace, ConstellationScriptData constellationScript)
        {
            var newNode  = nodesFactory.GetNode(nodeName, nameSpace, new UnityConstellationParser());
            var nodeData = new NodeData(newNode);

            foreach (var constellationRule in constellationRules)
            {
                nodeData = constellationRule.NodeAdded(nodeData, newNode, constellationScript);
            }

            nodeData           = constellationScript.AddNode(nodeData);
            nodeData.XPosition = 0;
            nodeData.YPosition = 0;

            return(nodeData);
        }