DEADSOFTWARE

Move items to JSON
authorfred-boy <fred-boy@protonmail.com>
Mon, 4 Mar 2019 18:13:33 +0000 (01:13 +0700)
committerfred-boy <fredboy@protonmail.com>
Sun, 29 Sep 2019 04:39:17 +0000 (11:39 +0700)
Split textures
Misc improvements

97 files changed:
android/assets/game_items.json [new file with mode: 0644]
android/assets/textures/bed_l.png [new file with mode: 0644]
android/assets/textures/bed_r.png [new file with mode: 0644]
android/assets/textures/bedrock.png [new file with mode: 0644]
android/assets/textures/bookshelf.png [new file with mode: 0644]
android/assets/textures/brick_slab.png [new file with mode: 0644]
android/assets/textures/bricks.png [new file with mode: 0644]
android/assets/textures/cactus.png [new file with mode: 0644]
android/assets/textures/cake.png [new file with mode: 0644]
android/assets/textures/clay.png [new file with mode: 0644]
android/assets/textures/coal_block.png [new file with mode: 0644]
android/assets/textures/coal_ore.png [new file with mode: 0644]
android/assets/textures/cobblestone.png [new file with mode: 0644]
android/assets/textures/cobblestone_mossy.png [new file with mode: 0644]
android/assets/textures/cobblestone_slab.png [new file with mode: 0644]
android/assets/textures/crafting_table.png [new file with mode: 0644]
android/assets/textures/dandelion.png [new file with mode: 0644]
android/assets/textures/deadbush.png [new file with mode: 0644]
android/assets/textures/diamond_block.png [new file with mode: 0644]
android/assets/textures/diamond_ore.png [new file with mode: 0644]
android/assets/textures/dirt.png [new file with mode: 0644]
android/assets/textures/double_stone_slab.png [new file with mode: 0644]
android/assets/textures/furnace_off.png [new file with mode: 0644]
android/assets/textures/furnace_on.png [new file with mode: 0644]
android/assets/textures/glass.png [new file with mode: 0644]
android/assets/textures/gold_block.png [new file with mode: 0644]
android/assets/textures/gold_ore.png [new file with mode: 0644]
android/assets/textures/grass.png [new file with mode: 0644]
android/assets/textures/gravel.png [new file with mode: 0644]
android/assets/textures/iron_bars.png [new file with mode: 0644]
android/assets/textures/iron_block.png [new file with mode: 0644]
android/assets/textures/iron_ore.png [new file with mode: 0644]
android/assets/textures/ladder.png [new file with mode: 0644]
android/assets/textures/lapis_block.png [new file with mode: 0644]
android/assets/textures/lapis_ore.png [new file with mode: 0644]
android/assets/textures/lava.png [new file with mode: 0644]
android/assets/textures/lava_12.png [new file with mode: 0644]
android/assets/textures/lava_16.png [new file with mode: 0644]
android/assets/textures/lava_4.png [new file with mode: 0644]
android/assets/textures/lava_8.png [new file with mode: 0644]
android/assets/textures/leaves.png [new file with mode: 0644]
android/assets/textures/log.png [new file with mode: 0644]
android/assets/textures/mushroom_brown.png [new file with mode: 0644]
android/assets/textures/mushroom_red.png [new file with mode: 0644]
android/assets/textures/noteblock.png [new file with mode: 0644]
android/assets/textures/obsidian.png [new file with mode: 0644]
android/assets/textures/planks.png [new file with mode: 0644]
android/assets/textures/rose.png [new file with mode: 0644]
android/assets/textures/sand.png [new file with mode: 0644]
android/assets/textures/sandstone.png [new file with mode: 0644]
android/assets/textures/sandstone_slab.png [new file with mode: 0644]
android/assets/textures/sapling.png [new file with mode: 0644]
android/assets/textures/sponge.png [new file with mode: 0644]
android/assets/textures/sponge_wet.png [new file with mode: 0644]
android/assets/textures/stone.png [new file with mode: 0644]
android/assets/textures/stone_slab.png [new file with mode: 0644]
android/assets/textures/stonebrick.png [new file with mode: 0644]
android/assets/textures/stonebrick_slab.png [new file with mode: 0644]
android/assets/textures/tallgrass.png [new file with mode: 0644]
android/assets/textures/water.png [new file with mode: 0644]
android/assets/textures/water_12.png [new file with mode: 0644]
android/assets/textures/water_16.png [new file with mode: 0644]
android/assets/textures/water_4.png [new file with mode: 0644]
android/assets/textures/water_8.png [new file with mode: 0644]
android/assets/textures/web.png [new file with mode: 0644]
android/assets/textures/wooden_slab.png [new file with mode: 0644]
android/assets/textures/wool.png [new file with mode: 0644]
android/assets/textures/wool_black.png [new file with mode: 0644]
android/assets/textures/wool_blue.png [new file with mode: 0644]
android/assets/textures/wool_brown.png [new file with mode: 0644]
android/assets/textures/wool_cyan.png [new file with mode: 0644]
android/assets/textures/wool_gray.png [new file with mode: 0644]
android/assets/textures/wool_green.png [new file with mode: 0644]
android/assets/textures/wool_lightblue.png [new file with mode: 0644]
android/assets/textures/wool_lightgray.png [new file with mode: 0644]
android/assets/textures/wool_lime.png [new file with mode: 0644]
android/assets/textures/wool_magenta.png [new file with mode: 0644]
android/assets/textures/wool_orange.png [new file with mode: 0644]
android/assets/textures/wool_pink.png [new file with mode: 0644]
android/assets/textures/wool_purple.png [new file with mode: 0644]
android/assets/textures/wool_red.png [new file with mode: 0644]
android/assets/textures/wool_yellow.png [new file with mode: 0644]
android/build.gradle
core/src/ru/deadsoftware/cavedroid/GameScreen.java
core/src/ru/deadsoftware/cavedroid/game/GameItems.java
core/src/ru/deadsoftware/cavedroid/game/GamePhysics.java
core/src/ru/deadsoftware/cavedroid/game/GameProc.java
core/src/ru/deadsoftware/cavedroid/game/GameRenderer.java
core/src/ru/deadsoftware/cavedroid/game/GameWorld.java
core/src/ru/deadsoftware/cavedroid/game/mobs/FallingGravel.java
core/src/ru/deadsoftware/cavedroid/game/mobs/FallingSand.java
core/src/ru/deadsoftware/cavedroid/game/objects/Block.java
core/src/ru/deadsoftware/cavedroid/game/objects/Item.java
core/src/ru/deadsoftware/cavedroid/game/objects/Player.java
core/src/ru/deadsoftware/cavedroid/menu/MenuRenderer.java
core/src/ru/deadsoftware/cavedroid/misc/Assets.java
desktop/src/ru/deadsoftware/cavedroid/desktop/DesktopLauncher.java

diff --git a/android/assets/game_items.json b/android/assets/game_items.json
new file mode 100644 (file)
index 0000000..0bc31cc
--- /dev/null
@@ -0,0 +1,555 @@
+{
+  "blocks": {
+    "none": {
+      "collision": false,
+      "transparent": true
+    },
+    "stone": {
+      "hp": 450,
+      "drop": "cobblestone"
+    },
+    "grass": {
+      "hp": 54,
+      "drop": "dirt"
+    },
+    "dirt": {
+      "hp": 45
+    },
+    "cobblestone": {
+      "hp": 600
+    },
+    "planks": {
+      "hp": 180
+    },
+    "sapling": {
+      "hp": 0,
+      "collision": false,
+      "background": false,
+      "transparent": true,
+      "block_required": true
+    },
+    "bedrock": {
+      "hp": -1
+    },
+    "water": {
+      "hp": -1,
+      "collision": false,
+      "background": false,
+      "transparent": true,
+      "fluid": true,
+      "meta": "water"
+    },
+    "lava": {
+      "hp": -1,
+      "collision": false,
+      "background": false,
+      "fluid": true,
+      "meta": "lava"
+    },
+    "sand": {
+      "hp": 45
+    },
+    "gravel": {
+      "hp": 54
+    },
+    "gold_ore": {
+      "hp": 900
+    },
+    "iron_ore": {
+      "hp": 900
+    },
+    "coal_ore":{
+      "hp": 900,
+      "drop": "coal"
+    },
+    "log": {
+      "hp": 180
+    },
+    "leaves": {
+      "hp": 21
+    },
+    "sponge": {
+      "hp": 54
+    },
+    "glass": {
+      "hp": 27,
+      "drop": "none",
+      "background": false,
+      "transparent": true
+    },
+    "lapis_ore": {
+      "hp": 900,
+      "drop": "lapis"
+    },
+    "lapis_block": {
+      "hp": 900
+    },
+    "sandstone": {
+      "hp": 240
+    },
+    "noteblock": {
+      "hp": 75
+    },
+    "bed_l": {
+      "hp": 21,
+      "drop": "none",
+      "collision": false,
+      "background": true,
+      "transparent": true
+    },
+    "bed_r": {
+      "hp": 21,
+      "drop": "none",
+      "collision": false,
+      "background": true,
+      "transparent": true
+    },
+    "web": {
+      "hp": 1200,
+      "collision": false,
+      "background": false,
+      "transparent": true
+    },
+    "tallgrass": {
+      "hp": 0,
+      "collision": false,
+      "background": false,
+      "transparent": true,
+      "block_required": true
+    },
+    "deadbush": {
+      "hp": 0,
+      "collision": false,
+      "background": false,
+      "transparent": true,
+      "block_required": true
+    },
+    "bricks": {
+      "hp": 600
+    },
+    "dandelion": {
+      "hp": 0,
+      "collision": false,
+      "background": false,
+      "transparent": true,
+      "block_required": true
+    },
+    "rose": {
+      "hp": 0,
+      "collision": false,
+      "background": false,
+      "transparent": true,
+      "block_required": true
+    },
+    "mushroom_brown": {
+      "hp": 0,
+      "collision": false,
+      "background": false,
+      "transparent": true,
+      "block_required": true
+    },
+    "mushroom_red": {
+      "hp": 0,
+      "collision": false,
+      "background": false,
+      "transparent": true,
+      "block_required": true
+    },
+    "wool": {
+      "hp": 75
+    },
+    "wool_orange": {
+      "hp": 75
+    },
+    "wool_magenta": {
+      "hp": 75
+    },
+    "wool_lightblue": {
+      "hp": 75
+    },
+    "wool_yellow": {
+      "hp": 75
+    },
+    "wool_lime": {
+      "hp": 75
+    },
+    "wool_pink": {
+      "hp": 75
+    },
+    "wool_gray": {
+      "hp": 75
+    },
+    "wool_lightgray": {
+      "hp": 75
+    },
+    "wool_cyan": {
+      "hp": 75
+    },
+    "wool_purple": {
+      "hp": 75
+    },
+    "wool_blue": {
+      "hp": 75
+    },
+    "wool_brown": {
+      "hp": 75
+    },
+    "wool_green": {
+      "hp": 75
+    },
+    "wool_red": {
+      "hp": 75
+    },
+    "wool_black": {
+      "hp": 75
+    },
+    "gold_block": {
+      "hp": 900
+    },
+    "iron_block": {
+      "hp": 1500
+    },
+    "stone_slab": {
+      "top": 8,
+      "hp": 600,
+      "transparent": true
+    },
+    "double_stone_slab": {
+      "hp": 600,
+      "drop": "stone_slab"
+    },
+    "sandstone_slab": {
+      "top": 8,
+      "hp": 600,
+      "transparent": true
+    },
+    "wooden_slab": {
+      "top": 8,
+      "hp": 180,
+      "transparent": true
+    },
+    "cobblestone_slab": {
+      "top": 8,
+      "hp": 600,
+      "transparent": true
+    },
+    "brick_slab": {
+      "top": 8,
+      "hp": 600,
+      "transparent": true
+    },
+    "stonebrick": {
+      "hp": 450
+    },
+    "stonebrick_slab": {
+      "top": 8,
+      "hp": 450,
+      "transparent": true
+    },
+    "cactus": {
+      "left": 1,
+      "right": 1,
+      "hp": 39,
+      "transparent": true,
+      "block_required": true
+    },
+    "water_16": {
+      "hp": -1,
+      "collision": false,
+      "background": false,
+      "transparent": true,
+      "texture": "water",
+      "fluid": true,
+      "meta": "water"
+    },
+    "water_12": {
+      "hp": -1,
+      "collision": false,
+      "background": false,
+      "transparent": true,
+      "fluid": true,
+      "meta": "water"
+    },
+    "water_8": {
+      "hp": -1,
+      "collision": false,
+      "background": false,
+      "transparent": true,
+      "fluid": true,
+      "meta": "water"
+    },
+    "water_4": {
+      "hp": -1,
+      "collision": false,
+      "background": false,
+      "transparent": true,
+      "fluid": true,
+      "meta": "water"
+    },
+    "lava_16": {
+      "hp": -1,
+      "collision": false,
+      "background": false,
+      "texture": "lava",
+      "fluid": true,
+      "meta": "lava"
+    },
+    "lava_12": {
+      "hp": -1,
+      "collision": false,
+      "background": false,
+      "fluid": true,
+      "meta": "lava"
+    },
+    "lava_8": {
+      "hp": -1,
+      "collision": false,
+      "background": false,
+      "fluid": true,
+      "meta": "lava"
+    },
+    "lava_4": {
+      "hp": -1,
+      "collision": false,
+      "background": false,
+      "fluid": true,
+      "meta": "lava"
+    },
+    "obsidian": {
+      "hp": 1500
+    }
+  },
+
+  "items": {
+    "none": {
+      "name": "",
+      "type": "block"
+    },
+    "stone": {
+      "name": "Stone",
+      "type": "block"
+    },
+    "grass": {
+      "name": "Grass",
+      "type": "block"
+    },
+    "dirt": {
+      "name": "Dirt",
+      "type": "block"
+    },
+    "cobblestone": {
+      "name": "Cobblestone",
+      "type": "block"
+    },
+    "planks": {
+      "name": "Planks",
+      "type": "block"
+    },
+    "sapling": {
+      "name": "Sapling",
+      "type": "block"
+    },
+    "bedrock": {
+      "name": "Bedrock",
+      "type": "block"
+    },
+    "water": {
+      "name": "Water",
+      "type": "block"
+    },
+    "lava": {
+      "name": "Lava",
+      "type": "block"
+    },
+    "sand": {
+      "name": "Sand",
+      "type": "block"
+    },
+    "gravel": {
+      "name": "Gravel",
+      "type": "block"
+    },
+    "gold_ore": {
+      "name": "Golden Ore",
+      "type": "block"
+    },
+    "iron_ore": {
+      "name": "Iron Ore",
+      "type": "block"
+    },
+    "coal_ore": {
+      "name": "Coal Ore",
+      "type": "block"
+    },
+    "log": {
+      "name": "Wood",
+      "type": "block"
+    },
+    "leaves": {
+      "name": "Leaves",
+      "type": "block"
+    },
+    "glass": {
+      "name": "Glass",
+      "type": "block"
+    },
+    "lapis_ore": {
+      "name": "Lapis Ore",
+      "type": "block"
+    },
+    "lapis_block": {
+      "name": "Lapis Block",
+      "type": "block"
+    },
+    "sandstone": {
+      "name": "Sandstone",
+      "type": "block"
+    },
+    "web": {
+      "name": "Cobweb",
+      "type": "block"
+    },
+    "tallgrass": {
+      "name": "Tall Grass",
+      "type": "block"
+    },
+    "deadbush": {
+      "name": "Dead Bush",
+      "type": "block"
+    },
+    "bricks": {
+      "name": "Bricks",
+      "type": "block"
+    },
+    "dandelion": {
+      "name": "Dandelion",
+      "type": "block"
+    },
+    "rose": {
+      "name": "Rose",
+      "type": "block"
+    },
+    "mushroom_brown": {
+      "name": "Mushroom",
+      "type": "block"
+    },
+    "mushroom_red": {
+      "name": "Mushroom",
+      "type": "block"
+    },
+    "wool": {
+      "name": "Wool",
+      "type": "block"
+    },
+    "wool_orange": {
+      "name": "Wool",
+      "type": "block"
+    },
+    "wool_magenta": {
+      "name": "Wool",
+      "type": "block"
+    },
+    "wool_lightblue": {
+      "name": "Wool",
+      "type": "block"
+    },
+    "wool_yellow": {
+      "name": "Wool",
+      "type": "block"
+    },
+    "wool_lime": {
+      "name": "Wool",
+      "type": "block"
+    },
+    "wool_pink": {
+      "name": "Wool",
+      "type": "block"
+    },
+    "wool_gray": {
+      "name": "Wool",
+      "type": "block"
+    },
+    "wool_lightgray": {
+      "name": "Wool",
+      "type": "block"
+    },
+    "wool_cyan": {
+      "name": "Wool",
+      "type": "block"
+    },
+    "wool_purple": {
+      "name": "Wool",
+      "type": "block"
+    },
+    "wool_blue": {
+      "name": "Wool",
+      "type": "block"
+    },
+    "wool_brown": {
+      "name": "Wool",
+      "type": "block"
+    },
+    "wool_green": {
+      "name": "Wool",
+      "type": "block"
+    },
+    "wool_red": {
+      "name": "Wool",
+      "type": "block"
+    },
+    "wool_black": {
+      "name": "Wool",
+      "type": "block"
+    },
+    "gold_block": {
+      "name": "Gold Block",
+      "type": "block"
+    },
+    "iron_block": {
+      "name": "Iron Block",
+      "type": "block"
+    },
+    "stone_slab": {
+      "name": "Stone Slab",
+      "type": "block",
+      "meta": "slab"
+    },
+    "sandstone_slab": {
+      "name": "Sandstone Slab",
+      "type": "block",
+      "meta": "slab"
+    },
+    "wooden_slab": {
+      "name": "Wooden Slab",
+      "type": "block",
+      "meta": "slab"
+    },
+    "cobblestone_slab": {
+      "name": "Cobblestone Slab",
+      "type": "block",
+      "meta": "slab"
+    },
+    "brick_slab": {
+      "name": "Brick Slab",
+      "type": "block",
+      "meta": "slab"
+    },
+    "stonebrick": {
+      "name": "Stone Brick",
+      "type": "block"
+    },
+    "stonebrick_slab": {
+      "name": "Stone Brick Slab",
+      "type": "block",
+      "meta": "slab"
+    },
+    "cactus": {
+      "name": "Cactus",
+      "type": "block"
+    },
+    "obsidian": {
+      "name": "Obsidian",
+      "type": "block"
+    }
+  }
+}
\ No newline at end of file
diff --git a/android/assets/textures/bed_l.png b/android/assets/textures/bed_l.png
new file mode 100644 (file)
index 0000000..005a87a
Binary files /dev/null and b/android/assets/textures/bed_l.png differ
diff --git a/android/assets/textures/bed_r.png b/android/assets/textures/bed_r.png
new file mode 100644 (file)
index 0000000..78f7285
Binary files /dev/null and b/android/assets/textures/bed_r.png differ
diff --git a/android/assets/textures/bedrock.png b/android/assets/textures/bedrock.png
new file mode 100644 (file)
index 0000000..1643c99
Binary files /dev/null and b/android/assets/textures/bedrock.png differ
diff --git a/android/assets/textures/bookshelf.png b/android/assets/textures/bookshelf.png
new file mode 100644 (file)
index 0000000..1c9a1e8
Binary files /dev/null and b/android/assets/textures/bookshelf.png differ
diff --git a/android/assets/textures/brick_slab.png b/android/assets/textures/brick_slab.png
new file mode 100644 (file)
index 0000000..560e8af
Binary files /dev/null and b/android/assets/textures/brick_slab.png differ
diff --git a/android/assets/textures/bricks.png b/android/assets/textures/bricks.png
new file mode 100644 (file)
index 0000000..3fc0832
Binary files /dev/null and b/android/assets/textures/bricks.png differ
diff --git a/android/assets/textures/cactus.png b/android/assets/textures/cactus.png
new file mode 100644 (file)
index 0000000..9ef970d
Binary files /dev/null and b/android/assets/textures/cactus.png differ
diff --git a/android/assets/textures/cake.png b/android/assets/textures/cake.png
new file mode 100644 (file)
index 0000000..b648028
Binary files /dev/null and b/android/assets/textures/cake.png differ
diff --git a/android/assets/textures/clay.png b/android/assets/textures/clay.png
new file mode 100644 (file)
index 0000000..1b673bb
Binary files /dev/null and b/android/assets/textures/clay.png differ
diff --git a/android/assets/textures/coal_block.png b/android/assets/textures/coal_block.png
new file mode 100644 (file)
index 0000000..6d29a6e
Binary files /dev/null and b/android/assets/textures/coal_block.png differ
diff --git a/android/assets/textures/coal_ore.png b/android/assets/textures/coal_ore.png
new file mode 100644 (file)
index 0000000..76d5741
Binary files /dev/null and b/android/assets/textures/coal_ore.png differ
diff --git a/android/assets/textures/cobblestone.png b/android/assets/textures/cobblestone.png
new file mode 100644 (file)
index 0000000..fd5f2f1
Binary files /dev/null and b/android/assets/textures/cobblestone.png differ
diff --git a/android/assets/textures/cobblestone_mossy.png b/android/assets/textures/cobblestone_mossy.png
new file mode 100644 (file)
index 0000000..f1403ea
Binary files /dev/null and b/android/assets/textures/cobblestone_mossy.png differ
diff --git a/android/assets/textures/cobblestone_slab.png b/android/assets/textures/cobblestone_slab.png
new file mode 100644 (file)
index 0000000..7d5cf2c
Binary files /dev/null and b/android/assets/textures/cobblestone_slab.png differ
diff --git a/android/assets/textures/crafting_table.png b/android/assets/textures/crafting_table.png
new file mode 100644 (file)
index 0000000..87c318f
Binary files /dev/null and b/android/assets/textures/crafting_table.png differ
diff --git a/android/assets/textures/dandelion.png b/android/assets/textures/dandelion.png
new file mode 100644 (file)
index 0000000..873e3f5
Binary files /dev/null and b/android/assets/textures/dandelion.png differ
diff --git a/android/assets/textures/deadbush.png b/android/assets/textures/deadbush.png
new file mode 100644 (file)
index 0000000..f545cfc
Binary files /dev/null and b/android/assets/textures/deadbush.png differ
diff --git a/android/assets/textures/diamond_block.png b/android/assets/textures/diamond_block.png
new file mode 100644 (file)
index 0000000..1dd69f8
Binary files /dev/null and b/android/assets/textures/diamond_block.png differ
diff --git a/android/assets/textures/diamond_ore.png b/android/assets/textures/diamond_ore.png
new file mode 100644 (file)
index 0000000..757e056
Binary files /dev/null and b/android/assets/textures/diamond_ore.png differ
diff --git a/android/assets/textures/dirt.png b/android/assets/textures/dirt.png
new file mode 100644 (file)
index 0000000..617d353
Binary files /dev/null and b/android/assets/textures/dirt.png differ
diff --git a/android/assets/textures/double_stone_slab.png b/android/assets/textures/double_stone_slab.png
new file mode 100644 (file)
index 0000000..1cf3e08
Binary files /dev/null and b/android/assets/textures/double_stone_slab.png differ
diff --git a/android/assets/textures/furnace_off.png b/android/assets/textures/furnace_off.png
new file mode 100644 (file)
index 0000000..c417a41
Binary files /dev/null and b/android/assets/textures/furnace_off.png differ
diff --git a/android/assets/textures/furnace_on.png b/android/assets/textures/furnace_on.png
new file mode 100644 (file)
index 0000000..e064201
Binary files /dev/null and b/android/assets/textures/furnace_on.png differ
diff --git a/android/assets/textures/glass.png b/android/assets/textures/glass.png
new file mode 100644 (file)
index 0000000..fad9138
Binary files /dev/null and b/android/assets/textures/glass.png differ
diff --git a/android/assets/textures/gold_block.png b/android/assets/textures/gold_block.png
new file mode 100644 (file)
index 0000000..61c5f15
Binary files /dev/null and b/android/assets/textures/gold_block.png differ
diff --git a/android/assets/textures/gold_ore.png b/android/assets/textures/gold_ore.png
new file mode 100644 (file)
index 0000000..2f5f22a
Binary files /dev/null and b/android/assets/textures/gold_ore.png differ
diff --git a/android/assets/textures/grass.png b/android/assets/textures/grass.png
new file mode 100644 (file)
index 0000000..a4975e5
Binary files /dev/null and b/android/assets/textures/grass.png differ
diff --git a/android/assets/textures/gravel.png b/android/assets/textures/gravel.png
new file mode 100644 (file)
index 0000000..09bdcef
Binary files /dev/null and b/android/assets/textures/gravel.png differ
diff --git a/android/assets/textures/iron_bars.png b/android/assets/textures/iron_bars.png
new file mode 100644 (file)
index 0000000..0aa0963
Binary files /dev/null and b/android/assets/textures/iron_bars.png differ
diff --git a/android/assets/textures/iron_block.png b/android/assets/textures/iron_block.png
new file mode 100644 (file)
index 0000000..2ac584b
Binary files /dev/null and b/android/assets/textures/iron_block.png differ
diff --git a/android/assets/textures/iron_ore.png b/android/assets/textures/iron_ore.png
new file mode 100644 (file)
index 0000000..1e55573
Binary files /dev/null and b/android/assets/textures/iron_ore.png differ
diff --git a/android/assets/textures/ladder.png b/android/assets/textures/ladder.png
new file mode 100644 (file)
index 0000000..ee80fbd
Binary files /dev/null and b/android/assets/textures/ladder.png differ
diff --git a/android/assets/textures/lapis_block.png b/android/assets/textures/lapis_block.png
new file mode 100644 (file)
index 0000000..7ecaee8
Binary files /dev/null and b/android/assets/textures/lapis_block.png differ
diff --git a/android/assets/textures/lapis_ore.png b/android/assets/textures/lapis_ore.png
new file mode 100644 (file)
index 0000000..04a4630
Binary files /dev/null and b/android/assets/textures/lapis_ore.png differ
diff --git a/android/assets/textures/lava.png b/android/assets/textures/lava.png
new file mode 100644 (file)
index 0000000..6585048
Binary files /dev/null and b/android/assets/textures/lava.png differ
diff --git a/android/assets/textures/lava_12.png b/android/assets/textures/lava_12.png
new file mode 100644 (file)
index 0000000..ca2bd32
Binary files /dev/null and b/android/assets/textures/lava_12.png differ
diff --git a/android/assets/textures/lava_16.png b/android/assets/textures/lava_16.png
new file mode 100644 (file)
index 0000000..6585048
Binary files /dev/null and b/android/assets/textures/lava_16.png differ
diff --git a/android/assets/textures/lava_4.png b/android/assets/textures/lava_4.png
new file mode 100644 (file)
index 0000000..1e46885
Binary files /dev/null and b/android/assets/textures/lava_4.png differ
diff --git a/android/assets/textures/lava_8.png b/android/assets/textures/lava_8.png
new file mode 100644 (file)
index 0000000..0b638e9
Binary files /dev/null and b/android/assets/textures/lava_8.png differ
diff --git a/android/assets/textures/leaves.png b/android/assets/textures/leaves.png
new file mode 100644 (file)
index 0000000..58c2104
Binary files /dev/null and b/android/assets/textures/leaves.png differ
diff --git a/android/assets/textures/log.png b/android/assets/textures/log.png
new file mode 100644 (file)
index 0000000..f4d1c3b
Binary files /dev/null and b/android/assets/textures/log.png differ
diff --git a/android/assets/textures/mushroom_brown.png b/android/assets/textures/mushroom_brown.png
new file mode 100644 (file)
index 0000000..61b81d1
Binary files /dev/null and b/android/assets/textures/mushroom_brown.png differ
diff --git a/android/assets/textures/mushroom_red.png b/android/assets/textures/mushroom_red.png
new file mode 100644 (file)
index 0000000..6b98399
Binary files /dev/null and b/android/assets/textures/mushroom_red.png differ
diff --git a/android/assets/textures/noteblock.png b/android/assets/textures/noteblock.png
new file mode 100644 (file)
index 0000000..831ad73
Binary files /dev/null and b/android/assets/textures/noteblock.png differ
diff --git a/android/assets/textures/obsidian.png b/android/assets/textures/obsidian.png
new file mode 100644 (file)
index 0000000..74db248
Binary files /dev/null and b/android/assets/textures/obsidian.png differ
diff --git a/android/assets/textures/planks.png b/android/assets/textures/planks.png
new file mode 100644 (file)
index 0000000..b845983
Binary files /dev/null and b/android/assets/textures/planks.png differ
diff --git a/android/assets/textures/rose.png b/android/assets/textures/rose.png
new file mode 100644 (file)
index 0000000..895d78f
Binary files /dev/null and b/android/assets/textures/rose.png differ
diff --git a/android/assets/textures/sand.png b/android/assets/textures/sand.png
new file mode 100644 (file)
index 0000000..a5d1cc1
Binary files /dev/null and b/android/assets/textures/sand.png differ
diff --git a/android/assets/textures/sandstone.png b/android/assets/textures/sandstone.png
new file mode 100644 (file)
index 0000000..f40d0ce
Binary files /dev/null and b/android/assets/textures/sandstone.png differ
diff --git a/android/assets/textures/sandstone_slab.png b/android/assets/textures/sandstone_slab.png
new file mode 100644 (file)
index 0000000..83e60fc
Binary files /dev/null and b/android/assets/textures/sandstone_slab.png differ
diff --git a/android/assets/textures/sapling.png b/android/assets/textures/sapling.png
new file mode 100644 (file)
index 0000000..17f69e1
Binary files /dev/null and b/android/assets/textures/sapling.png differ
diff --git a/android/assets/textures/sponge.png b/android/assets/textures/sponge.png
new file mode 100644 (file)
index 0000000..043b962
Binary files /dev/null and b/android/assets/textures/sponge.png differ
diff --git a/android/assets/textures/sponge_wet.png b/android/assets/textures/sponge_wet.png
new file mode 100644 (file)
index 0000000..ec79e06
Binary files /dev/null and b/android/assets/textures/sponge_wet.png differ
diff --git a/android/assets/textures/stone.png b/android/assets/textures/stone.png
new file mode 100644 (file)
index 0000000..5f12361
Binary files /dev/null and b/android/assets/textures/stone.png differ
diff --git a/android/assets/textures/stone_slab.png b/android/assets/textures/stone_slab.png
new file mode 100644 (file)
index 0000000..e970ecd
Binary files /dev/null and b/android/assets/textures/stone_slab.png differ
diff --git a/android/assets/textures/stonebrick.png b/android/assets/textures/stonebrick.png
new file mode 100644 (file)
index 0000000..3cf3520
Binary files /dev/null and b/android/assets/textures/stonebrick.png differ
diff --git a/android/assets/textures/stonebrick_slab.png b/android/assets/textures/stonebrick_slab.png
new file mode 100644 (file)
index 0000000..cda6747
Binary files /dev/null and b/android/assets/textures/stonebrick_slab.png differ
diff --git a/android/assets/textures/tallgrass.png b/android/assets/textures/tallgrass.png
new file mode 100644 (file)
index 0000000..8a8381c
Binary files /dev/null and b/android/assets/textures/tallgrass.png differ
diff --git a/android/assets/textures/water.png b/android/assets/textures/water.png
new file mode 100644 (file)
index 0000000..9fff324
Binary files /dev/null and b/android/assets/textures/water.png differ
diff --git a/android/assets/textures/water_12.png b/android/assets/textures/water_12.png
new file mode 100644 (file)
index 0000000..24f9187
Binary files /dev/null and b/android/assets/textures/water_12.png differ
diff --git a/android/assets/textures/water_16.png b/android/assets/textures/water_16.png
new file mode 100644 (file)
index 0000000..9fff324
Binary files /dev/null and b/android/assets/textures/water_16.png differ
diff --git a/android/assets/textures/water_4.png b/android/assets/textures/water_4.png
new file mode 100644 (file)
index 0000000..e6a9432
Binary files /dev/null and b/android/assets/textures/water_4.png differ
diff --git a/android/assets/textures/water_8.png b/android/assets/textures/water_8.png
new file mode 100644 (file)
index 0000000..4dc9f38
Binary files /dev/null and b/android/assets/textures/water_8.png differ
diff --git a/android/assets/textures/web.png b/android/assets/textures/web.png
new file mode 100644 (file)
index 0000000..d72a13c
Binary files /dev/null and b/android/assets/textures/web.png differ
diff --git a/android/assets/textures/wooden_slab.png b/android/assets/textures/wooden_slab.png
new file mode 100644 (file)
index 0000000..51d4452
Binary files /dev/null and b/android/assets/textures/wooden_slab.png differ
diff --git a/android/assets/textures/wool.png b/android/assets/textures/wool.png
new file mode 100644 (file)
index 0000000..fa2c56e
Binary files /dev/null and b/android/assets/textures/wool.png differ
diff --git a/android/assets/textures/wool_black.png b/android/assets/textures/wool_black.png
new file mode 100644 (file)
index 0000000..0e486b0
Binary files /dev/null and b/android/assets/textures/wool_black.png differ
diff --git a/android/assets/textures/wool_blue.png b/android/assets/textures/wool_blue.png
new file mode 100644 (file)
index 0000000..14c5d71
Binary files /dev/null and b/android/assets/textures/wool_blue.png differ
diff --git a/android/assets/textures/wool_brown.png b/android/assets/textures/wool_brown.png
new file mode 100644 (file)
index 0000000..ffaa750
Binary files /dev/null and b/android/assets/textures/wool_brown.png differ
diff --git a/android/assets/textures/wool_cyan.png b/android/assets/textures/wool_cyan.png
new file mode 100644 (file)
index 0000000..6545f38
Binary files /dev/null and b/android/assets/textures/wool_cyan.png differ
diff --git a/android/assets/textures/wool_gray.png b/android/assets/textures/wool_gray.png
new file mode 100644 (file)
index 0000000..1d12e2d
Binary files /dev/null and b/android/assets/textures/wool_gray.png differ
diff --git a/android/assets/textures/wool_green.png b/android/assets/textures/wool_green.png
new file mode 100644 (file)
index 0000000..f8bc1ef
Binary files /dev/null and b/android/assets/textures/wool_green.png differ
diff --git a/android/assets/textures/wool_lightblue.png b/android/assets/textures/wool_lightblue.png
new file mode 100644 (file)
index 0000000..529c92a
Binary files /dev/null and b/android/assets/textures/wool_lightblue.png differ
diff --git a/android/assets/textures/wool_lightgray.png b/android/assets/textures/wool_lightgray.png
new file mode 100644 (file)
index 0000000..f7f1353
Binary files /dev/null and b/android/assets/textures/wool_lightgray.png differ
diff --git a/android/assets/textures/wool_lime.png b/android/assets/textures/wool_lime.png
new file mode 100644 (file)
index 0000000..e106780
Binary files /dev/null and b/android/assets/textures/wool_lime.png differ
diff --git a/android/assets/textures/wool_magenta.png b/android/assets/textures/wool_magenta.png
new file mode 100644 (file)
index 0000000..b9700a8
Binary files /dev/null and b/android/assets/textures/wool_magenta.png differ
diff --git a/android/assets/textures/wool_orange.png b/android/assets/textures/wool_orange.png
new file mode 100644 (file)
index 0000000..61c1e4b
Binary files /dev/null and b/android/assets/textures/wool_orange.png differ
diff --git a/android/assets/textures/wool_pink.png b/android/assets/textures/wool_pink.png
new file mode 100644 (file)
index 0000000..17ef62b
Binary files /dev/null and b/android/assets/textures/wool_pink.png differ
diff --git a/android/assets/textures/wool_purple.png b/android/assets/textures/wool_purple.png
new file mode 100644 (file)
index 0000000..08d4ee0
Binary files /dev/null and b/android/assets/textures/wool_purple.png differ
diff --git a/android/assets/textures/wool_red.png b/android/assets/textures/wool_red.png
new file mode 100644 (file)
index 0000000..f11cbcc
Binary files /dev/null and b/android/assets/textures/wool_red.png differ
diff --git a/android/assets/textures/wool_yellow.png b/android/assets/textures/wool_yellow.png
new file mode 100644 (file)
index 0000000..fba2787
Binary files /dev/null and b/android/assets/textures/wool_yellow.png differ
index 70bf45521744cf0d2ea637707ccbe951587953b1..ef956e098bd8dd2c6dcdb6b317163b8960240a60 100644 (file)
@@ -33,6 +33,7 @@ android {
             applicationIdSuffix ".debug"
         }
     }
+
 }
 
 
index 6b5382e0909261a4f0b49f3f92958f821084ca81..d30adba9f7d173279ef9021e1de08576ce9a3317 100644 (file)
@@ -11,7 +11,7 @@ import ru.deadsoftware.cavedroid.misc.*;
 public class GameScreen implements Screen {
 
     public static int FPS;
-    public static boolean SHOW_DEBUG = false;
+    public static boolean SHOW_DEBUG = true;
     public static int NEW_GAME_MODE = 0;
 
     public static GameProc GP;
@@ -92,8 +92,8 @@ public class GameScreen implements Screen {
     public void resize(int width, int height) {
         switch (CaveGame.STATE) {
             case MENU_MAIN:
-
                 menuRenderer = new MenuRenderer(CaveGame.TOUCH ? 320 : 480);
+                Gdx.input.setInputProcessor(new InputHandlerMenu(menuRenderer));
                 renderer = menuRenderer;
                 break;
             case GAME_PLAY:
index 6c511a4fb260de21abe7dd196226005b1f14ea3f..1bbb03cf1997384679f975411c7b958515b834e4 100644 (file)
@@ -1,42 +1,74 @@
 package ru.deadsoftware.cavedroid.game;
 
+import com.badlogic.gdx.Gdx;
+import com.badlogic.gdx.graphics.Texture;
+import com.badlogic.gdx.graphics.g2d.Sprite;
 import com.badlogic.gdx.utils.ArrayMap;
+import com.badlogic.gdx.utils.JsonReader;
+import com.badlogic.gdx.utils.JsonValue;
 import ru.deadsoftware.cavedroid.game.objects.Block;
 import ru.deadsoftware.cavedroid.game.objects.Item;
 
-import java.util.ArrayList;
+import java.util.HashMap;
 
 public class GameItems {
 
+    private static HashMap<String, Integer> blocksIds = new HashMap<String, Integer>();
+    private static HashMap<String, Integer> itemsIds = new HashMap<String, Integer>();
+
     private static ArrayMap<String, Block> blocks = new ArrayMap<String, Block>();
-    private static ArrayList<Item> items = new ArrayList<Item>();
+    private static ArrayMap<String, Item> items = new ArrayMap<String, Item>();
+
+    public static boolean isFluid(int id) {
+        return getBlock(id).isFluid();
+    }
+
+    public static boolean isWater(int id) {
+        return getBlock(id).getMeta().equals("water");
+    }
+
+    public static boolean isLava(int id) {
+        return getBlock(id).getMeta().equals("lava");
+    }
+
+    public static boolean isSlab(int id) {
+        return getBlock(id).getMeta().equals("slab");
+    }
+
+    public static Block getBlock(int id) {
+        return blocks.getValueAt(id);
+    }
+
+    public static Item getItem(int id) {
+        return items.getValueAt(id);
+    }
 
-    public static boolean isFluid(int bl) {
-        return isWater(bl) || isLava(bl);
+    public static Block getBlock(String key) {
+        return blocks.getValueAt(blocksIds.get(key));
     }
 
-    public static boolean isWater(int bl) {
-        return (bl == 8 || bl == 60 || bl == 61 || bl == 62 || bl == 63);
+    public static Item getItem(String key) {
+        return items.getValueAt(itemsIds.get(key));
     }
 
-    public static boolean isLava(int bl) {
-        return (bl == 9 || bl == 64 || bl == 65 || bl == 66 || bl == 67);
+    public static int getBlockId(String key) {
+        return blocksIds.get(key);
     }
 
-    public static boolean isSlab(int bl) {
-        return (bl == 51 || bl == 53 || bl == 54 || bl == 55 || bl == 56 || bl == 58);
+    public static int getItemId(String key) {
+        return itemsIds.get(key);
     }
 
     public static String getBlockKey(int id) {
         return blocks.getKeyAt(id);
     }
 
-    public static Block getBlock(int id) {
-        return blocks.getValueAt(id);
+    public static String getItemKey(int id) {
+        return items.getKeyAt(id);
     }
 
-    public static Item getItem(int id) {
-        return items.get(id);
+    public static int getBlockIdByItemId(int id) {
+        return getBlockId(items.getKeyAt(id));
     }
 
     public static int getBlocksSize() {
@@ -44,291 +76,54 @@ public class GameItems {
     }
 
     public static int getItemsSize() {
-        return items.size();
+        return items.size;
     }
 
-    public static void loadItems() {
-        //0
-        items.add(null);
-        //1
-        items.add(new Item("Stone", 0, 0, 1));
-        //2
-        items.add(new Item("Grass", 1, 0, 2));
-        //3
-        items.add(new Item("Dirt", 2, 0, 3));
-        //4
-        items.add(new Item("Cobblestone", 3, 0, 4));
-        //5
-        items.add(new Item("Planks", 4, 0, 5));
-        //6
-        items.add(new Item("Sapling", 5, 0, 6));
-        //7
-        items.add(new Item("Bedrock", 6, 0, 7));
-        //8
-        items.add(new Item("Sand", 9, 0, 10));
-        //9
-        items.add(new Item("Gravel", 10, 0, 11));
-        //10
-        items.add(new Item("Golden Ore", 11, 0, 12));
-        //11
-        items.add(new Item("Iron Ore", 12, 0, 13));
-        //12
-        items.add(new Item("Coal Ore", 13, 0, 14));
-        //13
-        items.add(new Item("Wood", 14, 0, 15));
-        //14
-        items.add(new Item("Leaves", 15, 0, 16));
-        //15
-        items.add(new Item("Glass", 17, 0, 18));
-        //16
-        items.add(new Item("Lapis Ore", 18, 0, 19));
-        //17
-        items.add(new Item("Lapis Block", 19, 0, 20));
-        //18
-        items.add(new Item("Sandstone", 20, 0, 21));
-        //19
-        items.add(new Item("Cobweb", 24, 0, 25));
-        //20
-        items.add(new Item("Tall Grass", 25, 0, 26));
-        //21
-        items.add(new Item("Dead Bush", 26, 0, 27));
-        //22
-        items.add(new Item("Bricks", 27, 0, 28));
-        //23
-        items.add(new Item("Dandelion", 28, 0, 29));
-        //24
-        items.add(new Item("Rose", 29, 0, 30));
-        //25
-        items.add(new Item("Mushroom", 30, 0, 31));
-        //26
-        items.add(new Item("Mushroom", 31, 0, 32));
-        //27
-        items.add(new Item("White Wool", 32, 0, 33));
-        //28
-        items.add(new Item("Orange Wool", 33, 0, 34));
-        //29
-        items.add(new Item("Magenta Wool", 34, 0, 35));
-        //30
-        items.add(new Item("Light Blue Wool", 35, 0, 36));
-        //31
-        items.add(new Item("Yellow Wool", 36, 0, 37));
-        //32
-        items.add(new Item("Lime Wool", 37, 0, 38));
-        //33
-        items.add(new Item("Pink Wool", 38, 0, 39));
-        //34
-        items.add(new Item("Gray Wool", 39, 0, 40));
-        //35
-        items.add(new Item("Light Gray Wool", 40, 0, 41));
-        //36
-        items.add(new Item("Cyan Wool", 41, 0, 42));
-        //37
-        items.add(new Item("Purple Wool", 42, 0, 43));
-        //38
-        items.add(new Item("Blue Wool", 43, 0, 44));
-        //39
-        items.add(new Item("Brown Wool", 44, 0, 45));
-        //40
-        items.add(new Item("Green Wool", 45, 0, 46));
-        //41
-        items.add(new Item("Red Wool", 46, 0, 47));
-        //42
-        items.add(new Item("Black Wool", 47, 0, 48));
-        //43
-        items.add(new Item("Golden Block", 48, 0, 49));
-        //44
-        items.add(new Item("Iron Block", 49, 0, 50));
-        //45
-        items.add(new Item("Stone Slab", 50, 0, 51));
-        //46
-        items.add(new Item("Sandstone Slab", 52, 0, 53));
-        //47
-        items.add(new Item("Wooden Slab", 53, 0, 54));
-        //48
-        items.add(new Item("Cobblestone Slab", 54, 0, 55));
-        //49
-        items.add(new Item("Brick Slab", 55, 0, 56));
-        //50
-        items.add(new Item("Stone Brick", 64, 0, 57));
-        //51
-        items.add(new Item("Stone Brick Slab", 56, 0, 58));
-        //52
-        items.add(new Item("Cactus", 57, 0, 59));
-        //53
-        items.add(new Item("Obsidian", 65, 0, 68));
-        //54
-        items.add(new Item("Wooden Sword", 0, 1));
-        //55
-        items.add(new Item("Stone Sword", 1, 1));
-        //56
-        items.add(new Item("Iron Sword", 2, 1));
-        //57
-        items.add(new Item("Diamond Sword", 3, 1));
-        //58
-        items.add(new Item("Golden Sword", 4, 1));
-        //59
-        items.add(new Item("Wooden Shovel", 5, 1));
-        //60
-        items.add(new Item("Stone Shovel", 6, 1));
-        //61
-        items.add(new Item("Iron Shovel", 7, 1));
-        //62
-        items.add(new Item("Diamond Shovel", 8, 1));
-        //63
-        items.add(new Item("Golden Shovel", 9, 1));
-        //64
-        items.add(new Item("Empty Bucket", 10, 2));
-        //65
-        items.add(new Item("Water Bucket", 11, 2));
-        //66
-        items.add(new Item("Lava Bucket", 12, 2));
-
+    public static Sprite getBlockTex(int id) {
+        return getBlock(id).getTex();
     }
 
-    public static void loadBlocks() {
-        //0
-        blocks.put("none", null);
-        //1
-        blocks.put("stone", new Block(0, 450, 4));
-        //2
-        blocks.put("grass", new Block(1, 54, 3));
-        //3
-        blocks.put("dirt", new Block(2, 45, 3));
-        //4
-        blocks.put("cobblestone", new Block(3, 600, 4));
-        //5
-        blocks.put("planks", new Block(4, 180, 5));
-        //6
-        blocks.put("sapling", new Block(5, 0, 6, false, false, true, true));
-        //7
-        blocks.put("bedrock", new Block(6, -1, 7));
-        //8
-        blocks.put("water", new Block(7, -1, 0, false, false, true));
-        //9
-        blocks.put("lava", new Block(8, -1, 0, false, false, false));
-        //10
-        blocks.put("sand", new Block(9, 45, 8));
-        //11
-        blocks.put("gravel", new Block(10, 54, 9));
-        //12
-        blocks.put("gold_ore", new Block(11, 900, 10));
-        //13
-        blocks.put("iron_ore", new Block(12, 900, 11));
-        //14
-        blocks.put("coal_ore", new Block(13, 900, 0));
-        //15
-        blocks.put("log", new Block(14, 180, 13));
-        //16
-        blocks.put("leaves", new Block(15, 21, 0));
-        //17
-        blocks.put("sponge", new Block(16, 54, 0));
-        //18
-        blocks.put("glass", new Block(17, 27, 0, true, false, true));
-        //19
-        blocks.put("lapis_ore", new Block(18, 900, 0));
-        //20
-        blocks.put("lapis_block", new Block(19, 900, 17));
-        //21
-        blocks.put("sandstone", new Block(20, 240, 18));
-        //22
-        blocks.put("noteblock", new Block(21, 75, 0));
-        //23
-        blocks.put("bed_l", new Block(22, 21, 0, false, true, true));
-        //24
-        blocks.put("bed_r", new Block(23, 21, 0, false, true, true));
-        //25
-        blocks.put("cobweb", new Block(24, 1200, 0, false, false, true));
-        //26
-        blocks.put("tallgrass", new Block(25, 0, 0, false, false, true, true));
-        //27
-        blocks.put("deadbush", new Block(26, 0, 0, false, false, true, true));
-        //28
-        blocks.put("brick_block", new Block(27, 600, 22));
-        //29
-        blocks.put("dandelion", new Block(28, 0, 23, false, false, true, true));
-        //30
-        blocks.put("rose", new Block(29, 0, 24, false, false, true, true));
-        //31
-        blocks.put("brown_mushroom", new Block(30, 0, 25, false, false, true, true));
-        //32
-        blocks.put("red_mushroom", new Block(31, 0, 26, false, false, true, true));
-        //33
-        blocks.put("wool_while", new Block(32, 75, 27, true, false, false));
-        //34
-        blocks.put("wool_orange", new Block(33, 75, 28, true, false, false));
-        //35
-        blocks.put("wool_magenta", new Block(34, 75, 29, true, false, false));
-        //36
-        blocks.put("wool_lightblue", new Block(35, 75, 30, true, false, false));
-        //37
-        blocks.put("wool_yellow", new Block(36, 75, 31, true, false, false));
-        //38
-        blocks.put("wool_lime", new Block(37, 75, 32, true, false, false));
-        //39
-        blocks.put("wool_pink", new Block(38, 75, 33, true, false, false));
-        //40
-        blocks.put("wool_gray", new Block(39, 75, 34, true, false, false));
-        //41
-        blocks.put("wool_lightgray", new Block(40, 75, 35, true, false, false));
-        //42
-        blocks.put("wool_cyan", new Block(41, 75, 36, true, false, false));
-        //43
-        blocks.put("wool_purple", new Block(42, 75, 37, true, false, false));
-        //44
-        blocks.put("wool_blue", new Block(43, 75, 38, true, false, false));
-        //45
-        blocks.put("wool_brown", new Block(44, 75, 39, true, false, false));
-        //46
-        blocks.put("wool_green", new Block(45, 75, 40, true, false, false));
-        //47
-        blocks.put("wool_red", new Block(46, 75, 41, true, false, false));
-        //48
-        blocks.put("wool_black", new Block(47, 75, 42, true, false, false));
-        //49
-        blocks.put("gold_block", new Block(48, 900, 43));
-        //50
-        blocks.put("iron_block", new Block(49, 1500, 44));
-        //51
-        blocks.put("stone_slab", new Block(0, 8, 16, 8, 50, 600, 45, true, false, true));
-        //52
-        blocks.put("double_stone_slab", new Block(51, 600, 45));
-        //53
-        blocks.put("sandstone_slab", new Block(0, 8, 16, 8, 52, 600, 46, true, false, true));
-        //54
-        blocks.put("wooden_slab", new Block(0, 8, 16, 8, 53, 180, 47, true, false, true));
-        //55
-        blocks.put("cobblestone_slab", new Block(0, 8, 16, 8, 54, 600, 48, true, false, true));
-        //56
-        blocks.put("brick_slab", new Block(0, 8, 16, 8, 55, 600, 49, true, false, true));
-        //57
-        blocks.put("stonebrick", new Block(64, 450, 50));
-        //58
-        blocks.put("stone_brick_slab", new Block(0, 8, 16, 8, 56, 450, 51, true, false, true));
-        //59
-        blocks.put("cactus", new Block(1, 0, 14, 16, 57, 39, 52, true, false, true, true));
-        //60
-        blocks.put("water_16", new Block(7, -1, 0, false, false, true));
-        //61
-        blocks.put("water_12", new Block(58, -1, 0, false, false, true));
-        //62
-        blocks.put("water_8", new Block(59, -1, 0, false, false, true));
-        //63
-        blocks.put("water_4", new Block(60, -1, 0, false, false, true));
-        //64
-        blocks.put("lava_16", new Block(8, -1, 0, false, false, true));
-        //65
-        blocks.put("lava_12", new Block(61, -1, 0, false, false, true));
-        //66
-        blocks.put("lava_8", new Block(62, -1, 0, false, false, true));
-        //67
-        blocks.put("lava_4", new Block(63, -1, 0, false, false, true));
-        //68
-        blocks.put("obsidian", new Block(65, 1500, 53));
+    public static Sprite getItemTex(int id) {
+        if (items.getValueAt(id).getType().equals("block")) return getBlockTex(id);
+        else return getItem(id).getTex();
     }
 
     public static void load() {
-        loadBlocks();
-        loadItems();
+        JsonValue json = new JsonReader().parse(Gdx.files.internal("game_items.json"));
+        JsonValue block = json.child.child;
+        JsonValue item = json.child.next.child;
+        while (block != null) {
+            String key = block.name;
+            int left = (block.has("left") ? block.getInt("left") : 0);
+            int right = (block.has("right") ? block.getInt("right") : 0);
+            int top = (block.has("top") ? block.getInt("top") : 0);
+            int bottom = (block.has("bottom") ? block.getInt("bottom") : 0);
+            int hp = (block.has("hp") ? block.getInt("hp") : -1);
+            String drop = (block.has("drop") ? block.getString("drop") : key);
+            boolean collision = (!block.has("collision") || block.getBoolean("collision"));
+            boolean background = (block.has("background") && block.getBoolean("background"));
+            boolean transparent = !(!block.has("collision") || block.getBoolean("collision"));
+            boolean blockRequired = (block.has("block_required") && block.getBoolean("block_required"));
+            boolean fluid = (block.has("fluid") && block.getBoolean("fluid"));
+            String meta = (block.has("meta") ? block.getString("meta") : "");
+            String texture = (block.has("texture") ? block.getString("texture") : key);
+            blocksIds.put(key, blocks.size);
+            blocks.put(key, new Block(left, top, right, bottom, hp, drop, collision,
+                    background, transparent, blockRequired, fluid, meta,
+                    key.equals("none") ? null :
+                            new Sprite(new Texture(Gdx.files.internal("textures/" + texture + ".png")))));
+            block = block.next();
+        }
+        while (item != null) {
+            String key = item.name;
+            String name = (item.has("name") ? item.getString("name") : key);
+            String type = (item.has("type") ? item.getString("type") : "item");
+            String texture = (item.has("texture") ? item.getString("texture") : key);
+            itemsIds.put(key, items.size);
+            items.put(key, new Item(name, type, type.equals("block") ? null :
+                    new Sprite(new Texture(Gdx.files.internal("textures/" + texture + ".png")))));
+            item = item.next();
+        }
     }
 
-}
+}
\ No newline at end of file
index fb0d6ed911e155e1d65d23186164d01e42640cc4..86784046014616b1c0d7b1cbbbb4189a9ad343a8 100644 (file)
@@ -135,7 +135,7 @@ class GamePhysics {
             if (!pl.flyMode && pl.mov.y < 18) pl.mov.add(gravity);
         }
 
-        pl.pos.x += pl.mov.x;
+        pl.pos.x += pl.mov.x * (pl.flyMode ? 1.5f : 1) * (GameItems.isFluid(getBlock(pl.getRect())) && !pl.flyMode ? .8f : 1);
         mobXColl(pl);
 
         if (CaveGame.TOUCH && checkJump(pl.getRect(), pl.getDir()) && !pl.flyMode && pl.canJump && pl.mov.x != 0) {
index aa11931410fd72428ff93927d73f2b834e1b24b6..cd957a0842583ebc6f8fc5ec87bc353a60a6abfa 100644 (file)
@@ -58,6 +58,14 @@ public class GameProc implements Serializable {
                     480 * ((float) GameScreen.getHeight() / GameScreen.getWidth()));
         }
         maxCreativeScroll = GameItems.getItemsSize() / 8;
+
+        new Thread(new Runnable() {
+            @Override
+            public void run() {
+                while (true) fluidUpdater();
+            }
+        }).start();
+
         GameSaver.save(this);
     }
 
@@ -362,7 +370,7 @@ public class GameProc implements Serializable {
 
         if (world.getForeMap(x, y) > 0 && GameItems.getBlock(world.getForeMap(x, y)).requiresBlock()) {
             if (world.getForeMap(x, y + 1) == 0 || !GameItems.getBlock(world.getForeMap(x, y + 1)).hasCollision()) {
-                world.destroyForeMap(x, y, this);
+                world.destroyForeMap(x, y);
                 updateBlock(x, y - 1);
             }
         }
@@ -375,14 +383,20 @@ public class GameProc implements Serializable {
         }
     }
 
+    private void fluidUpdater() {
+        for (int y = 0; y < world.getHeight(); y++) {
+            for (int x = (int) renderer.getCamX() / 16 - 1; x < (int) (renderer.getCamX() + renderer.getWidth()) / 16 + 1; x++) {
+                updateFluids(x, y);
+            }
+        }
+    }
+
     void useItem(int x, int y, int id, boolean bg) {
         if (id > 0) {
-            switch (GameItems.getItem(id).getType()) {
-                case 0:
-                    if (!bg) world.placeToForeground(x, y, GameItems.getItem(id).getBlock());
-                    else world.placeToBackground(x, y, GameItems.getItem(id).getBlock());
-                    break;
-                case 2:
+            if (GameItems.getItem(id).isBlock()) {
+                if (!bg) world.placeToForeground(x, y, GameItems.getBlockIdByItemId(id));
+                else world.placeToBackground(x, y, GameItems.getBlockIdByItemId(id));
+            } else {
                     switch (id) {
                         case 65:
                             world.placeToForeground(x, y, 8);
@@ -393,7 +407,6 @@ public class GameProc implements Serializable {
                             player.inv[player.invSlot] = 64;
                             break;
                     }
-                    break;
             }
         }
     }
@@ -407,12 +420,6 @@ public class GameProc implements Serializable {
             DO_UPD = false;
         }
 
-        for (int y = 0; y < world.getHeight(); y++) {
-            for (int x = (int) renderer.getCamX() / 16 - 1; x < (int) (renderer.getCamX() + renderer.getWidth()) / 16 + 1; x++) {
-                updateFluids(x, y);
-            }
-        }
-
         physics.update(delta);
         moveCursor();
         checkCursorBounds();
@@ -426,12 +433,12 @@ public class GameProc implements Serializable {
                     blockDmg++;
                     if (world.getForeMap(curX, curY) > 0) {
                         if (blockDmg >= GameItems.getBlock(world.getForeMap(curX, curY)).getHp()) {
-                            world.destroyForeMap(curX, curY, this);
+                            world.destroyForeMap(curX, curY);
                             blockDmg = 0;
                         }
                     } else if (world.getBackMap(curX, curY) > 0) {
                         if (blockDmg >= GameItems.getBlock(world.getBackMap(curX, curY)).getHp()) {
-                            world.destroyBackMap(curX, curY, this);
+                            world.destroyBackMap(curX, curY);
                             blockDmg = 0;
                         }
                     }
index 1229fcb1e04ad68973c76726774598fc553e1313..a34f0c871e5ba786f71d25598998cf6de00d5d6d 100644 (file)
@@ -41,17 +41,13 @@ public class GameRenderer extends Renderer {
         if (drawBG) {
             if ((GP.world.getForeMap(x, y) == 0 || GameItems.getBlock(GP.world.getForeMap(x, y)).isTransparent())
                     && GP.world.getBackMap(x, y) > 0) {
-                spriter.draw(
-                        Assets.blockTex[GameItems.getBlock(GP.world.getBackMap(x, y)).getTex()],
-                        drawX(x), drawY(y));
+                spriter.draw(GameItems.getBlock(GP.world.getBackMap(x, y)).getTex(), drawX(x), drawY(y));
                 if (GP.world.getForeMap(x, y) == 0 && x == GP.curX && y == GP.curY)
                     drawWreck(GP.world.getBackMap(GP.curX, GP.curY));
             }
         }
         if (GP.world.getForeMap(x, y) > 0 && GameItems.getBlock(GP.world.getForeMap(x, y)).isBackground() == drawBG) {
-            spriter.draw(
-                    Assets.blockTex[GameItems.getBlock(GP.world.getForeMap(x, y)).getTex()],
-                    drawX(x), drawY(y));
+            spriter.draw(GameItems.getBlock(GP.world.getForeMap(x, y)).getTex(), drawX(x), drawY(y));
             if (x == GP.curX && y == GP.curY)
                 drawWreck(GP.world.getForeMap(GP.curX, GP.curY));
         }
@@ -102,21 +98,6 @@ public class GameRenderer extends Renderer {
     }
 
     private void drawDrop(Drop drop) {
-        switch (GameItems.getItem(drop.getId()).getType()) {
-            case 0:
-                Assets.blockTex[GameItems.getItem(drop.getId()).getTex()].setPosition(
-                        drop.pos.x - getCamX() - GP.world.getWidthPx(),
-                        drop.pos.y - getCamY());
-                Assets.blockTex[GameItems.getItem(drop.getId()).getTex()].draw(spriter);
-                Assets.blockTex[GameItems.getItem(drop.getId()).getTex()].setPosition(
-                        drop.pos.x - getCamX(),
-                        drop.pos.y - getCamY());
-                Assets.blockTex[GameItems.getItem(drop.getId()).getTex()].draw(spriter);
-                Assets.blockTex[GameItems.getItem(drop.getId()).getTex()].setPosition(
-                        drop.pos.x - getCamX() + GP.world.getWidthPx(),
-                        drop.pos.y - getCamY());
-                Assets.blockTex[GameItems.getItem(drop.getId()).getTex()].draw(spriter);
-        }
     }
 
     @SuppressWarnings("IntegerDivisionInFloatingPointContext")
@@ -128,34 +109,27 @@ public class GameRenderer extends Renderer {
                 y + 18 + (GP.creativeScroll * (72f / GP.maxCreativeScroll)));
         for (int i = GP.creativeScroll * 8; i < GP.creativeScroll * 8 + 40; i++) {
             if (i > 0 && i < GameItems.getItemsSize())
-                switch (GameItems.getItem(i).getType()) {
-                    case 0:
-                        spriter.draw(Assets.blockTex[GameItems.getItem(i).getTex()],
-                                x + 8 + ((i - GP.creativeScroll * 8) % 8) * 18,
-                                y + 18 + ((i - GP.creativeScroll * 8) / 8) * 18);
-                        break;
-                    case 1:
-                    case 2:
-                        spriter.draw(Assets.itemTex[GameItems.getItem(i).getTex()],
-                                x + 8 + ((i - GP.creativeScroll * 8) % 8) * 18,
-                                y + 18 + ((i - GP.creativeScroll * 8) / 8) * 18);
-                        break;
+                if (GameItems.getItem(i).isBlock()) {
+                    spriter.draw(GameItems.getBlock(GameItems.getBlockIdByItemId(i)).getTex(),
+                            x + 8 + ((i - GP.creativeScroll * 8) % 8) * 18,
+                            y + 18 + ((i - GP.creativeScroll * 8) / 8) * 18);
+                } else {
+                    spriter.draw(GameItems.getItem(i).getTex(),
+                            x + 8 + ((i - GP.creativeScroll * 8) % 8) * 18,
+                            y + 18 + ((i - GP.creativeScroll * 8) / 8) * 18);
                 }
         }
         for (int i = 0; i < 9; i++) {
             if (GP.player.inv[i] > 0)
-                switch (GameItems.getItem(GP.player.inv[i]).getType()) {
-                    case 0:
-                        spriter.draw(Assets.blockTex[GameItems.getItem(GP.player.inv[i]).getTex()],
-                                x + 8 + i * 18, y + Assets.creativeInv.getRegionHeight() - 24);
-                        break;
-                    case 1:
-                    case 2:
-                        spriter.draw(Assets.itemTex[GameItems.getItem(GP.player.inv[i]).getTex()],
-                                x + 8 + i * 18, y + Assets.creativeInv.getRegionHeight() - 24);
-                        break;
+                if (GameItems.getItem(GP.player.inv[i]).isBlock()) {
+                    spriter.draw(GameItems.getBlock(GameItems.getBlockIdByItemId(GP.player.inv[i])).getTex(),
+                            x + 8 + i * 18, y + Assets.creativeInv.getRegionHeight() - 24);
+                } else {
+                    spriter.draw(GameItems.getItem(GP.player.inv[i]).getTex(),
+                            x + 8 + i * 18, y + Assets.creativeInv.getRegionHeight() - 24);
                 }
         }
+
     }
 
     private void drawGUI() {
@@ -169,18 +143,14 @@ public class GameRenderer extends Renderer {
         spriter.draw(Assets.invBar, getWidth() / 2 - (float) Assets.invBar.getRegionWidth() / 2, 0);
         for (int i = 0; i < 9; i++) {
             if (GP.player.inv[i] > 0) {
-                switch (GameItems.getItem(GP.player.inv[i]).getType()) {
-                    case 0:
-                        spriter.draw(Assets.blockTex[GameItems.getItem(GP.player.inv[i]).getTex()],
-                                getWidth() / 2 - (float) Assets.invBar.getRegionWidth() / 2 + 3 + i * 20,
-                                3);
-                        break;
-                    case 1:
-                    case 2:
-                        spriter.draw(Assets.itemTex[GameItems.getItem(GP.player.inv[i]).getTex()],
-                                getWidth() / 2 - (float) Assets.invBar.getRegionWidth() / 2 + 3 + i * 20,
-                                3);
-                        break;
+                if (GameItems.getItem(GP.player.inv[i]).isBlock()) {
+                    spriter.draw(GameItems.getBlock(GameItems.getBlockIdByItemId(GP.player.inv[i])).getTex(),
+                            getWidth() / 2 - (float) Assets.invBar.getRegionWidth() / 2 + 3 + i * 20,
+                            3);
+                } else {
+                    spriter.draw(GameItems.getItem(GP.player.inv[i]).getTex(),
+                            getWidth() / 2 - (float) Assets.invBar.getRegionWidth() / 2 + 3 + i * 20,
+                            3);
                 }
             }
         }
@@ -198,8 +168,7 @@ public class GameRenderer extends Renderer {
         spriter.draw(Assets.touchRMB, getWidth() - 26, getHeight() - 26);
         spriter.draw(Assets.touchMode, 78, getHeight() - 26);
         if (GP.ctrlMode == 1) {
-            Assets.shade.setPosition(83, getHeight() - 21);
-            Assets.shade.draw(spriter);
+            spriter.draw(Assets.shade, 83, getHeight() - 21);
         }
     }
 
index 6aefd8945b760f3b25f8c92f56fa7904122712fc..89c458523c1a0c53df3f1f3cdf97138c5dbcc3b5 100644 (file)
@@ -1,7 +1,10 @@
 package ru.deadsoftware.cavedroid.game;
 
+import ru.deadsoftware.cavedroid.game.objects.Block;
 import ru.deadsoftware.cavedroid.game.objects.Drop;
 
+import static ru.deadsoftware.cavedroid.GameScreen.GP;
+
 public class GameWorld {
 
     private int WIDTH, HEIGHT;
@@ -43,7 +46,7 @@ public class GameWorld {
         try {
             x = transformX(x);
             map = (layer == 0) ? foreMap[x][y] : backMap[x][y];
-        } catch (ArrayIndexOutOfBoundsException e) {
+        } catch (ArrayIndexOutOfBoundsException ignored) {
         }
         return map;
     }
@@ -53,24 +56,36 @@ public class GameWorld {
             x = transformX(x);
             if (layer == 0) foreMap[x][y] = value;
             else backMap[x][y] = value;
-        } catch (ArrayIndexOutOfBoundsException e) {
+        } catch (ArrayIndexOutOfBoundsException ignored) {
         }
     }
 
+    public boolean hasBlockAt(int x, int y) {
+        return getMap(x, y, 0) != 0;
+    }
+
     public int getForeMap(int x, int y) {
         return getMap(x, y, 0);
     }
 
-    public void setForeMap(int x, int y, int value) {
-        setMap(x, y, 0, value);
+    public Block getForeMapBlock(int x, int y) {
+        return GameItems.getBlock(getMap(x, y, 0));
+    }
+
+    public void setForeMap(int x, int y, int id) {
+        setMap(x, y, 0, id);
     }
 
     public int getBackMap(int x, int y) {
         return getMap(x, y, 1);
     }
 
-    public void setBackMap(int x, int y, int value) {
-        setMap(x, y, 1, value);
+    public Block getBackMapBlock(int x, int y) {
+        return GameItems.getBlock(getMap(x, y, 1));
+    }
+
+    public void setBackMap(int x, int y, int id) {
+        setMap(x, y, 1, id);
     }
 
     private void placeSlab(int x, int y, int value) {
@@ -97,7 +112,7 @@ public class GameWorld {
     }
 
     public void placeToForeground(int x, int y, int value) {
-        if (getForeMap(x, y) == 0 || value == 0 || !GameItems.getBlock(getForeMap(x, y)).hasCollision()) {
+        if (!hasBlockAt(x, y) || value == 0 || !GameItems.getBlock(getForeMap(x, y)).hasCollision()) {
             setForeMap(x, y, value);
         } else if (GameItems.isSlab(value) && getForeMap(x, y) == value) {
             placeSlab(x, y, value);
@@ -114,15 +129,17 @@ public class GameWorld {
         }
     }
 
-    public void destroyForeMap(int x, int y, GameProc gp) {
-        if (GameItems.getBlock(getForeMap(x, y)).getDrop() > 0)
-            gp.drops.add(new Drop(transformX(x) * 16 + 4, y * 16 + 4, GameItems.getBlock(getForeMap(x, y)).getDrop()));
+    public void destroyForeMap(int x, int y) {
+        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, GameProc gp) {
-        if (GameItems.getBlock(getBackMap(x, y)).getDrop() > 0)
-            gp.drops.add(new Drop(transformX(x) * 16 + 4, y * 16 + 4, GameItems.getBlock(getBackMap(x, y)).getDrop()));
+    public void destroyBackMap(int x, int y) {
+        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);
     }
 
@@ -135,11 +152,11 @@ public class GameWorld {
         WorldGen.clear();
     }
 
-    public void setMaps(int[][] foreMap, int[][] backMap) {
+    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
index f30faefb4375e55715f921332f74d2bada5c19d9..93d0b6f9d25c12227a99577a19f9b9244c4a7cf1 100644 (file)
@@ -22,7 +22,7 @@ public class FallingGravel extends Mob {
 
     @Override
     public void draw(SpriteBatch spriteBatch, float x, float y) {
-        spriteBatch.draw(Assets.blockTex[GameItems.getBlock(11).getTex()], x, y);
+        spriteBatch.draw(GameItems.getBlock("gravel").getTex(), x, y);
     }
 
     @Override
index 6194e4e93f1143c6edb108d6662e2f654f7975bf..cfd5f9b9cfecafdb7868e5ddbe7f8883612d7c7a 100644 (file)
@@ -22,7 +22,7 @@ public class FallingSand extends Mob {
 
     @Override
     public void draw(SpriteBatch spriteBatch, float x, float y) {
-        spriteBatch.draw(Assets.blockTex[GameItems.getBlock(10).getTex()], x, y);
+        spriteBatch.draw(GameItems.getBlock("sand").getTex(), x, y);
     }
 
     @Override
index defbd3b3dcc920bbbfe5d5851d2978637ed45d57..2a4491610caae37ea8207e1e46e2205c3fd49740 100644 (file)
@@ -1,44 +1,34 @@
 package ru.deadsoftware.cavedroid.game.objects;
 
+import com.badlogic.gdx.graphics.g2d.Sprite;
 import com.badlogic.gdx.math.Rectangle;
 
 public class Block {
 
     private int x, y, w, h;
-    private int tex;
-    private int hp, drop;
+    private int hp;
+    private String drop, meta;
+    private Sprite tex;
 
     //coll - collision, bg - background, tp - transparent, rb - requires block under it
-    private boolean coll, bg, tp, rb;
-
-    public Block(int tex, int hp, int drop) {
-        this(0, 0, 16, 16, tex, hp, drop, true, false, false, false);
-    }
-
-    public Block(int tex, int hp, int drop, boolean coll, boolean bg, boolean tp) {
-        this(0, 0, 16, 16, tex, hp, drop, coll, bg, tp, false);
-    }
-
-    public Block(int tex, int hp, int drop, boolean coll, boolean bg, boolean tp, boolean rb) {
-        this(0, 0, 16, 16, tex, hp, drop, coll, bg, tp, rb);
-    }
-
-    public Block(int x, int y, int w, int h, int tex, int hp, int drop, boolean coll, boolean bg, boolean tp) {
-        this(x, y, w, h, tex, hp, drop, coll, bg, tp, false);
-    }
-
-    public Block(int x, int y, int w, int h, int tex, int hp, int drop, boolean coll, boolean bg, boolean tp, boolean rb) {
-        this.x = x;
-        this.y = y;
-        this.w = w;
-        this.h = h;
-        this.tex = tex;
+    private boolean coll, bg, tp, rb, fluid;
+
+    public Block(int left, int top, int right, int bottom, int hp,
+                 String drop, boolean coll, boolean bg, boolean tp, boolean rb, boolean fluid, String meta, Sprite tex) {
+        this.x = left;
+        this.y = top;
+        this.w = 16 - right - left;
+        this.h = 16 - top - bottom;
         this.hp = hp;
         this.drop = drop;
         this.coll = coll;
         this.bg = bg;
         this.tp = tp;
         this.rb = rb;
+        this.fluid = fluid;
+        this.meta = meta;
+        this.tex = tex;
+        if (this.tex != null) this.tex.flip(false, true);
     }
 
     public boolean hasCollision() {
@@ -57,26 +47,38 @@ public class Block {
         return rb;
     }
 
-    public int getTex() {
-        return tex;
-    }
-
     public int getHp() {
         return hp;
     }
 
-    public int getDrop() {
+    public String getDrop() {
         return drop;
     }
 
+    public boolean hasDrop() {
+        return !drop.equals("none");
+    }
+
+    public Sprite getTex() {
+        return tex;
+    }
+
     public Rectangle getRect(int x, int y) {
         x *= 16;
         y *= 16;
         return new Rectangle(x + this.x, y + this.y, w, h);
     }
 
+    public boolean isFluid() {
+        return fluid;
+    }
+
+    public String getMeta() {
+        return meta;
+    }
+
     public boolean toJump() {
         return (y < 8 && coll);
     }
 
-}
+}
\ No newline at end of file
index 3d082bf4d8ef46b3232d1ec61eb68633113e6a3f..a619a1babfdcfd94e3c76a2fb86261d88f00055d 100644 (file)
@@ -1,37 +1,33 @@
 package ru.deadsoftware.cavedroid.game.objects;
 
-public class Item {
+import com.badlogic.gdx.graphics.g2d.Sprite;
 
-    private int tex;
-    private int type; // 0 - block, 1 - tool, 2 - other
-    private int block;
-    private String name;
+public class Item {
 
-    public Item(String name, int tex, int type) {
-        this(name, tex, type, -1);
-    }
+    private String name, type;
+    private Sprite tex;
 
-    public Item(String name, int tex, int type, int block) {
+    public Item(String name, String type, Sprite tex) {
         this.name = name;
-        this.tex = tex;
         this.type = type;
-        this.block = block;
+        this.tex = tex;
+        if (this.tex != null) this.tex.flip(false, true);
     }
 
-    public int getTex() {
+    public Sprite getTex() {
         return tex;
     }
 
-    public int getType() {
+    public String getType() {
         return type;
     }
 
-    public int getBlock() {
-        return block;
+    public boolean isBlock() {
+        return type.equals("block");
     }
 
     public String getName() {
         return name;
     }
 
-}
+}
\ No newline at end of file
index 5fd04f902f2a99feee334803aad4c338849dd067..14595062ebfee1618bcbcebdb5cd35dc6ce13b2d 100644 (file)
@@ -86,28 +86,6 @@ public class Player extends Mob implements Serializable {
         spriteBatch.draw(Assets.plSprite[getDir()][0], x - 2, y - 2);
         //body
         spriteBatch.draw(Assets.plSprite[getDir()][1], x - 2, y + 8);
-        //item in hand
-        if (inv[invSlot] > 0) {
-            float handRotation = MathUtils.degRad * Assets.plSprite[0][2].getRotation();
-            switch (GameItems.getItem(inv[invSlot]).getType()) {
-                case 0:
-                    Assets.blockTex[GameItems.getItem(inv[invSlot]).getTex()].setPosition(
-                            x - 8 * MathUtils.sin(handRotation),
-                            y + 6 + 8 * MathUtils.cos(handRotation));
-                    Assets.blockTex[GameItems.getItem(inv[invSlot]).getTex()].draw(spriteBatch);
-                    break;
-                default:
-                    Assets.itemTex[GameItems.getItem(inv[invSlot]).getTex()].flip((getDir() == 0), false);
-                    Assets.itemTex[GameItems.getItem(inv[invSlot]).getTex()].setRotation(
-                            -45 + getDir() * 90 + Assets.plSprite[0][2].getRotation());
-                    Assets.itemTex[GameItems.getItem(inv[invSlot]).getTex()].setPosition(
-                            x - 10 + (12 * getDir()) - 8 * MathUtils.sin(handRotation),
-                            y + 2 + 8 * MathUtils.cos(handRotation));
-                    Assets.itemTex[GameItems.getItem(inv[invSlot]).getTex()].draw(spriteBatch);
-                    Assets.itemTex[GameItems.getItem(inv[invSlot]).getTex()].flip((getDir() == 0), false);
-                    break;
-            }
-        }
         //front hand
         Assets.plSprite[0][2].setPosition(x - 6, y);
         Assets.plSprite[0][2].draw(spriteBatch);
index 212003e74f59938f4c4cfd1288d439a84cd4f12b..28da58e783551f08a5f9d00461685252b01a4fa2 100644 (file)
@@ -79,11 +79,11 @@ public class MenuRenderer extends Renderer {
         spriter.begin();
         for (int x = 0; x <= getWidth() / 16; x++) {
             for (int y = 0; y <= getHeight() / 16; y++) {
-                spriter.draw(Assets.blockTex[GameItems.getBlock(3).getTex()], x * 16, y * 16);
+                spriter.draw(GameItems.getBlock(3).getTex(), x * 16, y * 16);
                 spriter.draw(Assets.shade, x * 16, y * 16);
             }
         }
-        spriter.draw(Assets.gameLogo, getWidth() / 2 - Assets.gameLogo.getWidth() / 2, 8);
+        spriter.draw(Assets.gameLogo, getWidth() / 2 - (float) Assets.gameLogo.getWidth() / 2, 8);
 
         switch (CaveGame.STATE) {
             case MENU_MAIN:
index 6eb0e60dc03b64f55c91eb00cf1921506283f1ec..109b0a1fa3830caadf0e21caaef18f97fb461da0 100644 (file)
@@ -10,14 +10,11 @@ import ru.deadsoftware.cavedroid.CaveGame;
 
 public class Assets {
 
-    public static final int BLOCK_TEXTURES = 66;
-    public static final int ITEM_TEXTURES = 13;
-
     private static GlyphLayout layout;
 
     public static BitmapFont mcFont;
 
-    public static Sprite gameLogo;
+    public static Texture gameLogo;
 
     public static Texture menuBtnTex;
     public static TextureRegion[] menuBtn = new TextureRegion[3];
@@ -28,13 +25,7 @@ public class Assets {
     public static Texture pigTex;
     public static Sprite[][] pigSprite = new Sprite[2][2];
 
-    public static Sprite shade;
-
-    public static Texture terrain;
-    public static Sprite[] blockTex = new Sprite[BLOCK_TEXTURES];
-
-    public static Texture items;
-    public static Sprite[] itemTex = new Sprite[ITEM_TEXTURES];
+    public static Texture shade;
 
     public static Texture gui;
     public static TextureRegion invBar;
@@ -102,8 +93,7 @@ public class Assets {
 
         layout = new GlyphLayout();
 
-        gameLogo = new Sprite(new Texture(Gdx.files.internal("gamelogo.png")));
-        gameLogo.flip(false, true);
+        gameLogo = new Texture(Gdx.files.internal("gamelogo.png"));
 
         menuBtnTex = new Texture(Gdx.files.internal("buttons.png"));
         for (int i = 0; i < 3; i++) {
@@ -114,7 +104,7 @@ public class Assets {
         loadPlayer();
         loadPig();
 
-        shade = new Sprite(new Texture(Gdx.files.internal("shade.png")));
+        shade = new Texture(Gdx.files.internal("shade.png"));
 
         gui = new Texture(Gdx.files.internal("gui.png"));
         guiCur = new TextureRegion(gui, 0, 0, 16, 16);
@@ -148,22 +138,6 @@ public class Assets {
             touchSpace.flip(false, true);
         }
 
-        terrain = new Texture(Gdx.files.internal("terrain.png"));
-        for (int i = 0; i < BLOCK_TEXTURES; i++) {
-            blockTex[i] = new Sprite(terrain,
-                    (i % 16) * 16, (i / 16) * 16, 16, 16);
-            blockTex[i].flip(false, true);
-            blockTex[i].setSize(8, 8);
-        }
-        terrain = null;
-
-        items = new Texture(Gdx.files.internal("items.png"));
-        for (int i = 0; i < ITEM_TEXTURES; i++) {
-            itemTex[i] = new Sprite(items,
-                    (i % 16) * 16, (i / 16) * 16, 16, 16);
-            itemTex[i].flip(false, true);
-        }
-        items = null;
     }
 
     public static int getStringWidth(String s) {
index bdfdd7783b364bf16b91aee3f1d1d194c22f8619..b3f09bffb5f3affe74de1ba44110366e2a199eb7 100644 (file)
@@ -10,7 +10,7 @@ public class DesktopLauncher {
                LwjglApplicationConfiguration config = new LwjglApplicationConfiguration();
                config.addIcon("icons/icon256.png", Files.FileType.Internal);
                config.addIcon("icons/icon128.png", Files.FileType.Internal);
-               config.foregroundFPS = 60;
+               config.foregroundFPS = 144;
         config.title = "CaveDroid";
                config.width = 960;
                config.height = 540;