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);
            }
        }