X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=core%2Fsrc%2Fru%2Fdeadsoftware%2Fcavecraft%2Fgame%2FWorldGen.java;h=8c0f4ca7eec7cd7ae6d038ce688fb32872d9fc74;hb=c938382b1332c47e7119f742711960c7cc4c75ca;hp=954bdffd799366b314056582e8043d4949d9de3a;hpb=fe86b2fc3788c58fb134415780b312b4c7ef5c97;p=cavedroid.git diff --git a/core/src/ru/deadsoftware/cavecraft/game/WorldGen.java b/core/src/ru/deadsoftware/cavecraft/game/WorldGen.java index 954bdff..8c0f4ca 100644 --- a/core/src/ru/deadsoftware/cavecraft/game/WorldGen.java +++ b/core/src/ru/deadsoftware/cavecraft/game/WorldGen.java @@ -2,7 +2,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 { @@ -12,6 +11,7 @@ public class WorldGen { private static int[][] foreMap, backMap; private static int[] hMap; + private static int[] bMap; //biomes, 0-plains, 1-desert public static long getSeed() { return seed; @@ -19,10 +19,17 @@ public class WorldGen { static int[] genLandscape(int width, int mid, int min, int max) { int[] res = new int[width]; + bMap = new int[width]; int t; res[0] = mid; for (int i=1; i-3 && t<3) t=0; else t/=Math.abs(t); + if (i>width-(max-min)) { + if (res[i-1]+tres[0]) t=-Math.abs(t); + } res[i] = res[i-1] + t; if (res[i]max) res[i] = max; @@ -30,6 +37,12 @@ public class WorldGen { return res; } + private static void genCactus(int x, int y) { + foreMap[x][y] = 59; + foreMap[x][y-1] = 59; + foreMap[x][y-2] = 59; + } + private static void genOak(int x, int y) { backMap[x][y] = 15; backMap[x][y-1] = 15; @@ -60,26 +73,47 @@ 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; x2 && x