public void FifthTest() { Generator gen = new Generator(); BiomeObject biomeObject = new BiomeObject(); gen.biomeObjects.Add(biomeObject); Assert.That(gen.biomeObjects != null, Is.EqualTo(true)); }
public void SixthTest() { Generator gen = new Generator(); BiomeObject biomeObject = new BiomeObject(); biomeObject.name = "test"; Assert.That(biomeObject.name, Is.EqualTo("test")); }
public GameObject GetDecoration(string biomeName) { if (Random.value < trainStationChance) { currentGeneratedItemsCount[biomeName] += 1; return(trainStation.prefab); } for (int i = 0; i < generationMatrix.Count; i++) { if (biomeName == generationMatrix[i].name) { currentBiome = i; } } if (currentGeneratedItemsCount.ContainsKey(biomeName) && currentGeneratedItemsCount[biomeName] > minObjectsToSwitch) { if (Random.value <= .5) { //change biome currentGeneratedItemsCount[biomeName] = 0; int prevBiome = currentBiome; currentBiome = Random.Range(0, generationMatrix.Count); if (prevBiome == currentBiome) { currentBiome = (prevBiome + 1) % generationMatrix.Count; } } } BiomeObject biome = generationMatrix[currentBiome]; if (lastGeneratedItemIndex >= biome.decorations.Count) { lastGeneratedItemIndex = 0; } BiomeDecoration lastDecoration = biome.decorations[lastGeneratedItemIndex]; float value = Random.value; for (int i = 0; i < lastDecoration.chanceArray.Count; i++) { if (value < lastDecoration.chanceArray[i]) { lastGeneratedItemIndex = i; break; } value -= lastDecoration.chanceArray[i]; } currentGeneratedItemsCount[biome.name] += 1; return(biome.decorations[lastGeneratedItemIndex].prefab); }
public void Generate(TerrainGenerator terrain, Vector2 blockLowerLeft, Vector3 blockUpperRight, float strength) { if (objects.Length == 0) { return; } // preselect this block's objects foreach (var obj in objects) { if (obj.selectConsistent) { obj.selectedIndex = RandomUtil.RandomInt(0, obj.objects.Length); } } // generate choices list float[] choices = objects.Select(o => o.probability).ToArray(); //generate items int itemsToGenerate = Mathf.Clamp(Mathf.FloorToInt(strength * RandomUtil.RandomNormal(meanObjectsPerBlock, stdDevObjectsPerBlock)), 0, 2 * (int)meanObjectsPerBlock); for (int i = 0; i < itemsToGenerate; i++) { // select an item at random int biomeObjectChoice = RandomUtil.RandomChoice(choices); BiomeObject biomeObject = objects[biomeObjectChoice]; // select a location at random float x = RandomUtil.RandomFloat(blockLowerLeft.x, blockUpperRight.x); float y = RandomUtil.RandomFloat(blockLowerLeft.y, blockUpperRight.y); // select object from list int objectIndex = biomeObject.selectConsistent ? biomeObject.selectedIndex : RandomUtil.RandomInt(0, biomeObject.objects.Length); GameObject template = biomeObject.objects[objectIndex]; // scale object float scale = RandomUtil.RandomNormal(biomeObject.meanScale, biomeObject.stdDevScale); GameObject obj = terrain.PlaceObjectAt(template, x, y, 0.0f); obj.transform.localScale = new Vector3(scale, scale, scale); } }
public void FourthTest() { Generator gen = new Generator(); float[,] noise = Noise.GenerateNoiseMap(gen.seed, gen.worldWidth, gen.worldHeight, gen.noiseScale, gen.octaves, gen.persistance, gen.lacunarity, gen.offset, gen.terrainMask, gen.terrainMaskStrenght); TerrainHeight terrainHeight = new TerrainHeight(); gen.heightRules.Add(terrainHeight); BiomeObject biomeObject = ScriptableObject.CreateInstance <BiomeObject>(); gen.biomeObjects.Add(biomeObject); TerrainTemp terrainTemp = new TerrainTemp(); gen.temperatureRules.Add(terrainTemp); gen.GenerateTerrain(); Assert.That(gen.biomeLayer != null, Is.EqualTo(true)); }