DEADSOFTWARE

Less hills
[cavedroid.git] / core / src / ru / deadsoftware / cavecraft / game / WorldGen.java
index 954bdffd799366b314056582e8043d4949d9de3a..b8e9aee59b953e9742366f1300b27d7b64414da4 100644 (file)
@@ -1,8 +1,6 @@
 package ru.deadsoftware.cavecraft.game;
 
-import com.badlogic.gdx.Gdx;
 import com.badlogic.gdx.math.RandomXS128;
-import com.badlogic.gdx.utils.ArrayMap;
 import com.badlogic.gdx.utils.TimeUtils;
 
 public class WorldGen {
@@ -22,7 +20,12 @@ public class WorldGen {
         int t;
         res[0] = mid;
         for (int i=1; i<width; i++) {
-            t = rand.nextInt(3)-1;
+            t = rand.nextInt(7)-3;
+            if (t>-3 && t<3) t=0; else t/=Math.abs(t);
+            if (i>width-(max-min)) {
+                if (res[i-1]+t<res[0]) t=Math.abs(t);
+                    else if (res[i-1]+t>res[0]) t=-Math.abs(t);
+            }
             res[i] = res[i-1] + t;
             if (res[i]<min) res[i] = min;
             if (res[i]>max) res[i] = max;
@@ -60,7 +63,7 @@ public class WorldGen {
         rand = new RandomXS128(seed);
         foreMap = new int[width][height];
         backMap = new int[width][height];
-        hMap = genLandscape(width, height/4, height/8, height/2);
+        hMap = genLandscape(width, height/8*3, height/8, height/2);
         for (int x=0; x<width; x++) {
             dirtH = 4+rand.nextInt(2);
             for (int y = height- hMap[x]; y<height; y++) {
@@ -88,7 +91,9 @@ public class WorldGen {
                 }
             }
             if (x>2 && x<width-2 && rand.nextInt(100)<5){
-                if (foreMap[x][height-hMap[x]]-1==0) genOak(x,height-hMap[x]-1);
+                if (foreMap[x][height-hMap[x]-1]==0) {
+                    genOak(x,height-hMap[x]-1);
+                }
             }
         }
     }