X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=core%2Fsrc%2Fru%2Fdeadsoftware%2Fcavedroid%2Fgame%2FGameWorld.java;h=c5e7d46ecd99eb7b33f9b07eb0c762d6fdda914b;hb=59d48c1b28c570755327a8fb0827fa57e7fd3914;hp=9c71cfc306a32ff9aa92dd3b8d318dd3096f9803;hpb=d575b0a559319f8c569ab0177e56c2388a37f270;p=cavedroid.git diff --git a/core/src/ru/deadsoftware/cavedroid/game/GameWorld.java b/core/src/ru/deadsoftware/cavedroid/game/GameWorld.java index 9c71cfc..c5e7d46 100644 --- a/core/src/ru/deadsoftware/cavedroid/game/GameWorld.java +++ b/core/src/ru/deadsoftware/cavedroid/game/GameWorld.java @@ -5,11 +5,29 @@ import ru.deadsoftware.cavedroid.game.objects.Drop; import static ru.deadsoftware.cavedroid.GameScreen.GP; +@SuppressWarnings("WeakerAccess") public class GameWorld { - private int WIDTH, HEIGHT; - private int[][] foreMap; - private int[][] backMap; + private final int WIDTH; + private final int HEIGHT; + private final int[][] foreMap; + private final int[][] backMap; + + GameWorld(int width, int height) { + WIDTH = width; + HEIGHT = height; + WorldGen.genWorld(WIDTH, HEIGHT); + foreMap = WorldGen.getForeMap(); + backMap = WorldGen.getBackMap(); + WorldGen.clear(); + } + + GameWorld(int[][] foreMap, int[][] backMap) { + this.foreMap = foreMap.clone(); + this.backMap = backMap.clone(); + WIDTH = foreMap.length; + HEIGHT = foreMap[0].length; + } public int getWidth() { return WIDTH; @@ -37,7 +55,9 @@ public class GameWorld { private int transformX(int x) { x = x % getWidth(); - if (x < 0) x = getWidth() - Math.abs(x); + if (x < 0) { + x = getWidth() - Math.abs(x); + } return x; } @@ -54,8 +74,11 @@ public class GameWorld { private void setMap(int x, int y, int layer, int value) { try { x = transformX(x); - if (layer == 0) foreMap[x][y] = value; - else backMap[x][y] = value; + if (layer == 0) { + foreMap[x][y] = value; + } else { + backMap[x][y] = value; + } } catch (ArrayIndexOutOfBoundsException ignored) { } } @@ -134,33 +157,19 @@ public class GameWorld { } public void destroyForeMap(int x, int y) { - if (GameItems.getBlock(getForeMap(x, y)).hasDrop()) + if (GameItems.getBlock(getForeMap(x, y)).hasDrop()) { GP.drops.add(new Drop(transformX(x) * 16 + 4, y * 16 + 4, GameItems.getItemId(GameItems.getBlock(getForeMap(x, y)).getDrop()))); + } placeToForeground(x, y, 0); } public void destroyBackMap(int x, int y) { - if (GameItems.getBlock(getBackMap(x, y)).hasDrop()) + if (GameItems.getBlock(getBackMap(x, y)).hasDrop()) { GP.drops.add(new Drop(transformX(x) * 16 + 4, y * 16 + 4, GameItems.getItemId(GameItems.getBlock(getBackMap(x, y)).getDrop()))); + } placeToBackground(x, y, 0); } - public void generate(int w, int h) { - WIDTH = w; - HEIGHT = h; - WorldGen.genWorld(WIDTH, HEIGHT); - foreMap = WorldGen.getForeMap(); - backMap = WorldGen.getBackMap(); - WorldGen.clear(); - } - - void setMaps(int[][] foreMap, int[][] backMap) { - this.foreMap = foreMap.clone(); - this.backMap = backMap.clone(); - WIDTH = foreMap.length; - HEIGHT = foreMap[0].length; - } - } \ No newline at end of file