public void RemoveNode(NodeData node, ConstellationScriptData constellationScript) { foreach (var constellationRule in constellationRules) { constellationRule.RemoveNode(node, constellationScript); } }
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); }
public void UpdateGenericNodeByLinkGUID(ConstellationScriptData constellationScript, NodesFactory nodesFactory, string guid, IConstellationFileParser constellationParser) { foreach (var constellationRule in constellationRules) { constellationRule.LinkAdded(constellationScript, nodesFactory, guid, constellationParser); } }
public void UpdateGenericNodeByLinkGUID(ConstellationScriptData constellationScript, NodesFactory nodesFactory, string guid) { foreach (var constellationRule in constellationRules) { constellationRule.UpdateGenericNodeByLinkGUID(constellationScript, nodesFactory, guid); } }
public Constellation(ConstellationScriptData constellationScriptData, NodesFactory nodesFactory, NodeAdded onNodeAdded = null) { NodesFactory = nodesFactory; SetNodes(constellationScriptData.GetNodes(), onNodeAdded); SetLinks(constellationScriptData.GetLinks()); }
public void SetConstellation(ConstellationScriptData constellationScriptData) { ConstellationData = ScriptableObject.CreateInstance <ConstellationScript>(); ConstellationData.script = constellationScriptData; ConstellationData.IsInstance = true; Initialize(); this.enabled = true; }
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); }
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); }
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); }
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; }
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; }
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); }
public void InitializeData(ConstellationScriptData constellationScriptData) { script = constellationScriptData; Set(script); }
public void InitializeData() { script = new ConstellationScriptData(); Set(script); }
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() } }
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); }