Beispiel #1
0
    StructureSettings CreateStarStructure()
    {
        // stars are basically just spheres
        StructureSettings newStructureSettings = new StructureSettings();

        newStructureSettings.resolution  = randomSettings.defaultResolution;
        newStructureSettings.noiseLayers = new StructureSettings.NoiseLayer[1];

        StructureSettings.NoiseLayer newNoiseLayer = new StructureSettings.NoiseLayer();
        NoiseSettings newNoiseSettings             = new NoiseSettings();

        newNoiseSettings.filterType                   = (NoiseSettings.FilterType.Simple);
        newNoiseSettings.simpleNoiseSettings          = new NoiseSettings.SimpleNoiseSettings();
        newNoiseSettings.simpleNoiseSettings.strength = 0;
        newNoiseLayer.noiseSettings                   = newNoiseSettings;

        newStructureSettings.noiseLayers[0] = newNoiseLayer;

        return(newStructureSettings);
    }
Beispiel #2
0
    StructureSettings CreateRandomStructureSettings()
    {
        StructureSettings newStructureSettings = new StructureSettings();

        // set the resolution of the meshes created for each celestial body
        newStructureSettings.resolution = randomSettings.defaultResolution;

        int numNoiseLayers = (int)Lerp(randomSettings.randomNoiseSettings.minNumNoiseLayers, randomSettings.randomNoiseSettings.maxNumNoiseLayers + 1, UnityEngine.Random.value);

        StructureSettings.NoiseLayer[] newNoiseLayers = new StructureSettings.NoiseLayer[numNoiseLayers];

        for (int i = 0; i < numNoiseLayers; i++)
        {
            newNoiseLayers[i] = new StructureSettings.NoiseLayer();

            // create a new type of noise settings
            NoiseSettings newNoiseSettings = new NoiseSettings();
            newNoiseSettings.filterType = (NoiseSettings.FilterType)UnityEngine.Random.Range(0, Enum.GetNames(typeof(NoiseSettings.FilterType)).Length);
            if (i > 0)
            {
                newNoiseLayers[i].useFirstLayerAsMask = true;
            }
            // populate the settings depending on which type of noise it is
            if (newNoiseSettings.filterType == NoiseSettings.FilterType.Simple)
            {
                noiseSettingsGenerator.PopulateSimpleNoiseSettings(ref newNoiseSettings.simpleNoiseSettings, newNoiseLayers[i].useFirstLayerAsMask);
            }
            else if (newNoiseSettings.filterType == NoiseSettings.FilterType.Rigid)
            {
                noiseSettingsGenerator.PopulateRigidNoiseSettings(ref newNoiseSettings.rigidNoiseSettings, newNoiseLayers[i].useFirstLayerAsMask);
            }

            newNoiseLayers[i].noiseSettings = newNoiseSettings;
        }

        newStructureSettings.noiseLayers = newNoiseLayers;

        return(newStructureSettings);
    }