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);
            }
        }
Пример #2
0
        public SharpNoise.Modules.Module InstantiateGenericModule(Data.NodeData nodeData)
        {
            //Create instance of selected node type
            SharpNoise.Modules.Module module = (SharpNoise.Modules.Module)Activator.CreateInstance(Type.GetType(nodeData.moduleType));
            module.SetData(nodeData);

            return(module);
        }