Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Perlin noise gen
- void Gen()
- {
- range = Random.Range(0.1f, 20f);
- float x = 0;
- float y = 0;
- while (y < genHeight)
- {
- x = 0;
- while (x < genWidth)
- {
- float xCoord = xOrg + x / genWidth * scale;
- float yCoord = yOrg + y / genHeight * scale;
- float sample = Mathf.PerlinNoise(xCoord + range, yCoord + range);
- if (sample > 0.6f * distance_squared(x, y))
- {
- if (sample > 0.6f * distance_squared(x, y) && sample < 0.8 * distance_squared(x, y))
- {
- if(!PlayerScript.hasPlayerSpawned)
- {
- Instantiate(playerChest, new Vector3(x+15,y+15, 0), Quaternion.identity);
- player.transform.position = (new Vector3(x + 10, y + 10, 0));
- PlayerScript.hasPlayerSpawned = true;
- }
- maintmap.SetTile(new Vector3Int((int)x, (int)y, 0), sand);
- float range = Random.Range(0.01f, 50f);
- int foliagetype = Random.Range(0, sandFoliage.Length);
- if (range < 1)
- {
- GameObject newObj = Instantiate(sandFoliage[foliagetype], new Vector3(x+.5f, y+.5f, 0), Quaternion.identity);
- newObj.transform.parent = Spawns.transform;
- }
- }
- else
- {
- maintmap.SetTile(new Vector3Int((int)x, (int)y, 0), grass);
- float range = Random.Range(0.01f, 50f);
- float range2 = Random.Range(0.01f, 50f);
- int foliagetype = Random.Range(0, grassFoliage.Length);
- int treetype = Random.Range(0, grassTrees.Length);
- if (range < 1)
- {
- GameObject newObj = Instantiate(grassFoliage[foliagetype], new Vector3(x + .5f, y + .5f, 0), Quaternion.identity);
- newObj.transform.parent = Spawns.transform;
- }
- else if (range > 49.9)
- {
- GameObject newObj2 = Instantiate(grassTrees[treetype], new Vector3(x + .5f, y + .73f, 0), Quaternion.identity);
- newObj2.transform.parent = Spawns.transform;
- }
- }
- }
- else
- {
- watertmap.SetTile(new Vector3Int((int)x, (int)y, 0), water);
- }
- x++;
- }
- y++;
- }
- }
- //Function for squaring the perlin noise so it forms an island shape
- float distance_squared(float x, float y)
- {
- float dx = 2 * x / genWidth - 1;
- float dy = 2 * y / genHeight - 1;
- return dx * dx + dy * dy;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement