Exemplo n.º 1
0
 //These two functions are only used so different threads don't base on the same data and fs up
 public Spawnable(Spawnable spawnable)
 {
     this._noiseMergeType      = spawnable._noiseMergeType;
     this._noiseSettingsData   = spawnable._noiseSettingsData;
     this._subSpawners         = spawnable._subSpawners;
     this._parentOnly          = spawnable._parentOnly;
     this._rotationAmount      = spawnable._rotationAmount;
     this._noiseStartPoint     = spawnable._noiseStartPoint;
     this._thickness           = spawnable._thickness;
     this._uniformSpreadAmount = spawnable._uniformSpreadAmount;
     this._randomSpread        = spawnable._randomSpread;
     this._offsetAmount        = spawnable._offsetAmount;
     this._spawnFixedHeight    = spawnable._spawnFixedHeight;
     this._size    = spawnable._size;
     this._spacing = spawnable._spacing;
     this._othersCanSpawnInside       = spawnable._othersCanSpawnInside;
     this._spawnDifferencial          = spawnable._spawnDifferencial;
     this._softMinAmount              = spawnable._softMinAmount;
     this._hardMinHeight              = spawnable._hardMinHeight;
     this._softMaxAmount              = spawnable._softMaxAmount;
     this._hardMaxHeight              = spawnable._hardMaxHeight;
     this._surfaceNormalAmount        = spawnable._surfaceNormalAmount;
     this._pointAlongNormalRandomness = spawnable._pointAlongNormalRandomness;
     this._softMinSlope = spawnable._softMinSlope;
     this._hardMinSlope = spawnable._hardMinSlope;
     this._softMaxSlope = spawnable._softMaxSlope;
     this._hardMaxSlope = spawnable._hardMaxSlope;
     this._noise        = spawnable._noise;
     this._offsetNoise  = spawnable._offsetNoise;
     this._spreadNoise  = spawnable._spreadNoise;
     this._prefabs      = spawnable._prefabs;
 }
Exemplo n.º 2
0
    public static float[,] Clamp(float[,] noise, NoiseSettingsData data)
    {
        for (int x = 0; x < noise.GetLength(0); x++)
        {
            for (int y = 0; y < noise.GetLength(1); y++)
            {
                noise[x, y] = Mathf.Clamp(noise[x, y], data.ClampMin, data.ClampMax);
            }
        }

        return(noise);
    }
Exemplo n.º 3
0
    public Biome(Biome biome)
    {
        this._highLODSpawnable           = biome.HighLODSpawnable;
        this._highLODSpawnable           = Spawnable.CopySpawnables(_highLODSpawnable);
        this._mediumLODSpawnable         = biome.MediumLODSpawnable;
        this._mediumLODSpawnable         = Spawnable.CopySpawnables(_mediumLODSpawnable);
        this._lowLODSpawnable            = biome.LowLODSpawnable;
        this._lowLODSpawnable            = Spawnable.CopySpawnables(_lowLODSpawnable);
        this._meshSettings               = biome._meshSettings;
        this._offsetNoiseSettings        = biome._offsetNoiseSettings;
        this._offsetVectorForOffsetNoise = biome._offsetVectorForOffsetNoise;

        this._waterChunk  = biome._waterChunk;
        this._waterHeight = biome._waterHeight;
    }
Exemplo n.º 4
0
    // Used to calculate all the different noises for every spawable
    public void Setup(float[,] parentNoise, int chunkSize, NoiseSettingsData offsetNoiseSettings, Vector2 center, Vector2 offsetNoiseOffset)
    {
        if (parentNoise != null)
        {
            _noise = Noise.MergeNoise(chunkSize, chunkSize, 1, _noiseSettingsData.NoiseSettingsDataMerge, parentNoise, _noiseMergeType, new Vector2(center.x, -center.y));
        }
        else
        {
            _noise = Noise.GenerateNoiseMap(chunkSize, chunkSize, 1, _noiseSettingsData.NoiseSettingsDataMerge, new Vector2(center.x, -center.y));
        }

        _noise = Noise.Clamp(_noise, _noiseSettingsData);

        _offsetNoise = Noise.GenerateNoiseMap(chunkSize, chunkSize, 1, offsetNoiseSettings.NoiseSettingsDataMerge, new Vector2(center.x, -center.y) + offsetNoiseOffset);
        _spreadNoise = Noise.GenerateNoiseMap(chunkSize, chunkSize, 1, offsetNoiseSettings.NoiseSettingsDataMerge, new Vector2(center.x, -center.y) + offsetNoiseOffset * 2);

        _prefabMaxProbability = SpawnablePrefab.GetMaxSize(_prefabs);

        for (int i = 0; i < _subSpawners.Length; i++)
        {
            _subSpawners[i].Setup(_noise, chunkSize, offsetNoiseSettings, new Vector2(center.x, -center.y), offsetNoiseOffset * 2);
        }
    }