Advertisement
Guest User

Untitled

a guest
May 19th, 2019
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.08 KB | None | 0 0
  1. //Perlin noise gen
  2. void Gen()
  3. {
  4. range = Random.Range(0.1f, 20f);
  5. float x = 0;
  6. float y = 0;
  7. while (y < genHeight)
  8. {
  9. x = 0;
  10. while (x < genWidth)
  11. {
  12. float xCoord = xOrg + x / genWidth * scale;
  13. float yCoord = yOrg + y / genHeight * scale;
  14. float sample = Mathf.PerlinNoise(xCoord + range, yCoord + range);
  15. if (sample > 0.6f * distance_squared(x, y))
  16. {
  17. if (sample > 0.6f * distance_squared(x, y) && sample < 0.8 * distance_squared(x, y))
  18. {
  19. if(!PlayerScript.hasPlayerSpawned)
  20. {
  21. Instantiate(playerChest, new Vector3(x+15,y+15, 0), Quaternion.identity);
  22. player.transform.position = (new Vector3(x + 10, y + 10, 0));
  23. PlayerScript.hasPlayerSpawned = true;
  24. }
  25. maintmap.SetTile(new Vector3Int((int)x, (int)y, 0), sand);
  26. float range = Random.Range(0.01f, 50f);
  27. int foliagetype = Random.Range(0, sandFoliage.Length);
  28. if (range < 1)
  29. {
  30. GameObject newObj = Instantiate(sandFoliage[foliagetype], new Vector3(x+.5f, y+.5f, 0), Quaternion.identity);
  31. newObj.transform.parent = Spawns.transform;
  32. }
  33. }
  34. else
  35. {
  36. maintmap.SetTile(new Vector3Int((int)x, (int)y, 0), grass);
  37. float range = Random.Range(0.01f, 50f);
  38. float range2 = Random.Range(0.01f, 50f);
  39. int foliagetype = Random.Range(0, grassFoliage.Length);
  40. int treetype = Random.Range(0, grassTrees.Length);
  41. if (range < 1)
  42. {
  43. GameObject newObj = Instantiate(grassFoliage[foliagetype], new Vector3(x + .5f, y + .5f, 0), Quaternion.identity);
  44. newObj.transform.parent = Spawns.transform;
  45. }
  46. else if (range > 49.9)
  47. {
  48. GameObject newObj2 = Instantiate(grassTrees[treetype], new Vector3(x + .5f, y + .73f, 0), Quaternion.identity);
  49. newObj2.transform.parent = Spawns.transform;
  50. }
  51. }
  52. }
  53. else
  54. {
  55. watertmap.SetTile(new Vector3Int((int)x, (int)y, 0), water);
  56. }
  57. x++;
  58. }
  59. y++;
  60. }
  61. }
  62.  
  63. //Function for squaring the perlin noise so it forms an island shape
  64. float distance_squared(float x, float y)
  65. {
  66. float dx = 2 * x / genWidth - 1;
  67. float dy = 2 * y / genHeight - 1;
  68. return dx * dx + dy * dy;
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement