public void BuildOutputModules() { //Create Modules outputModules = new List <SharpNoise.Modules.Module>(); foreach (Data.NodeData nodeData in noiseAsset.terrainOutput) { SharpNoise.Modules.Module module = NodeManager.Instance.InstantiateGenericModule(nodeData); module.SetData(nodeData); outputModules.Add(module); } //Set Source Modules foreach (SharpNoise.Modules.Module module in outputModules) { SharpNoise.Modules.Module[] sourceModules = new SharpNoise.Modules.Module[4]; foreach (Data.ConnectionData connectionData in noiseAsset.connections) { if (connectionData.inputNodeID == module.NodeId) { //Assign to index of connectorID foreach (SharpNoise.Modules.Module sourceModule in outputModules) { if (sourceModule.NodeId == connectionData.outputNodeID) { sourceModules[connectionData.inputConnectorID] = sourceModule; } } } } module.SetSourceModules(sourceModules); } }