diff --git a/core/src/ru/deadsoftware/cavedroid/game/world/GameWorld.java b/core/src/ru/deadsoftware/cavedroid/game/world/GameWorld.java
index 8c31da7f22aaae2eb0b17678cb787f7ad1eb1fdf..686f1c946c81f55fb90ef5d4578538a6d85e3c2f 100644 (file)
private final Block[][] mForeMap;
private final Block[][] mBackMap;
- private final WorldGeneratorConfig mWorldConfig = WorldGeneratorConfig.Companion.getDefault();
+ private final WorldGeneratorConfig mWorldConfig = WorldGeneratorConfig.Companion.getDefault();
@Inject
public GameWorld(DropController dropController,
private Block getMap(int x, int y, int layer) {
Block map = mGameItemsHolder.getFallbackBlock();
- try {
- x = transformX(x);
- map = (layer == 0) ? mForeMap[x][y] : mBackMap[x][y];
- } catch (ArrayIndexOutOfBoundsException ignored) {
+
+ if (y < 0 || y >= getHeight()) {
+ return map;
+ }
+
+ x = transformX(x);
+
+ if (x < 0 || x >= getWidth()) {
+ return map;
}
+
+ map = (layer == 0) ? mForeMap[x][y] : mBackMap[x][y];
+
return map;
}
private void setMap(int x, int y, int layer, Block value) {
- try {
- x = transformX(x);
- if (layer == 0) {
- mForeMap[x][y] = value;
- } else {
- mBackMap[x][y] = value;
- }
- } catch (ArrayIndexOutOfBoundsException ignored) {
+ if (y < 0 || y >= getHeight()) {
+ return;
+ }
+
+ x = transformX(x);
+
+ if (x < 0 || x >= getWidth()) {
+ return;
+ }
+
+ if (layer == 0) {
+ mForeMap[x][y] = value;
+ } else {
+ mBackMap[x][y] = value;
}
}
private boolean shouldDrop(Block block) {
final Item item = mMobsController.getPlayer().inventory.getActiveItem().getItem();
- int toolLevel = item.isTool() ? ((Item.Tool)item).getLevel() : 0;
+ int toolLevel = item.isTool() ? ((Item.Tool) item).getLevel() : 0;
if (item.isTool() && block.getParams().getToolType() != item.getClass()) {
toolLevel = 0;
}