X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=core%2Fsrc%2Fru%2Fdeadsoftware%2Fcavecraft%2Fgame%2FWorldGen.java;h=32cb8f94a0f28db677a4045a177f3aec0cfbaf4a;hb=20c99e213303aee769c1bf6320881badb524384f;hp=faf98ed5e50e815b37863bd314f9922c6e83b8ef;hpb=a6ec412e508cfa8679dcf32e69600fbb939122af;p=cavedroid.git diff --git a/core/src/ru/deadsoftware/cavecraft/game/WorldGen.java b/core/src/ru/deadsoftware/cavecraft/game/WorldGen.java index faf98ed..32cb8f9 100644 --- a/core/src/ru/deadsoftware/cavecraft/game/WorldGen.java +++ b/core/src/ru/deadsoftware/cavecraft/game/WorldGen.java @@ -1,16 +1,93 @@ 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 { + private static RandomXS128 rand; + private static long seed; + private static int[][] foreMap, backMap; + private static int[] hMap; + + public static long getSeed() { + return seed; + } + + static int[] genLandscape(int width, int mid, int min, int max) { + int[] res = new int[width]; + int t; + res[0] = mid; + for (int i=1; imax) res[i] = max; + } + return res; + } + + private static void genOak(int x, int y) { + backMap[x][y] = 15; + backMap[x][y-1] = 15; + backMap[x][y-2] = 15; + backMap[x][y-3] = 15; + backMap[x][y-4] = 16; + backMap[x][y-5] = 16; + backMap[x-1][y-3] = 16; + backMap[x-1][y-4] = 16; + backMap[x+1][y-3] = 16; + backMap[x+1][y-4] = 16; + foreMap[x][y-3] = 16; + foreMap[x][y-4] = 16; + foreMap[x][y-5] = 16; + foreMap[x-1][y-3] = 16; + foreMap[x-1][y-4] = 16; + foreMap[x+1][y-3] = 16; + foreMap[x+1][y-4] = 16; + } static void genWorld(int width, int height) { + genWorld(width, height, TimeUtils.millis()); + } + + static void genWorld(int width, int height, long s) { + int dirtH; + seed = s; + rand = new RandomXS128(seed); foreMap = new int[width][height]; backMap = new int[width][height]; + hMap = genLandscape(width, height/4, height/8, height/2); for (int x=0; x2 && x