diff --git a/core/assets-raw/sprites/block.png b/core/assets-raw/sprites/blocks/block.png similarity index 100% rename from core/assets-raw/sprites/block.png rename to core/assets-raw/sprites/blocks/block.png diff --git a/core/assets-raw/sprites/coal1.png b/core/assets-raw/sprites/blocks/coal1.png similarity index 100% rename from core/assets-raw/sprites/coal1.png rename to core/assets-raw/sprites/blocks/coal1.png diff --git a/core/assets-raw/sprites/coal2.png b/core/assets-raw/sprites/blocks/coal2.png similarity index 100% rename from core/assets-raw/sprites/coal2.png rename to core/assets-raw/sprites/blocks/coal2.png diff --git a/core/assets-raw/sprites/coal3.png b/core/assets-raw/sprites/blocks/coal3.png similarity index 100% rename from core/assets-raw/sprites/coal3.png rename to core/assets-raw/sprites/blocks/coal3.png diff --git a/core/assets-raw/sprites/coaldrill.png b/core/assets-raw/sprites/blocks/coaldrill.png similarity index 100% rename from core/assets-raw/sprites/coaldrill.png rename to core/assets-raw/sprites/blocks/coaldrill.png diff --git a/core/assets-raw/sprites/blocks/conduit.png b/core/assets-raw/sprites/blocks/conduit.png new file mode 100644 index 0000000000..cccbd3da93 Binary files /dev/null and b/core/assets-raw/sprites/blocks/conduit.png differ diff --git a/core/assets-raw/sprites/blocks/conduitbottom.png b/core/assets-raw/sprites/blocks/conduitbottom.png new file mode 100644 index 0000000000..a869a8cdae Binary files /dev/null and b/core/assets-raw/sprites/blocks/conduitbottom.png differ diff --git a/core/assets-raw/sprites/blocks/conduitliquid.png b/core/assets-raw/sprites/blocks/conduitliquid.png new file mode 100644 index 0000000000..d223f13561 Binary files /dev/null and b/core/assets-raw/sprites/blocks/conduitliquid.png differ diff --git a/core/assets-raw/sprites/blocks/conduittop.png b/core/assets-raw/sprites/blocks/conduittop.png new file mode 100644 index 0000000000..8a9894c8b5 Binary files /dev/null and b/core/assets-raw/sprites/blocks/conduittop.png differ diff --git a/core/assets-raw/sprites/conveyor.png b/core/assets-raw/sprites/blocks/conveyor.png similarity index 100% rename from core/assets-raw/sprites/conveyor.png rename to core/assets-raw/sprites/blocks/conveyor.png diff --git a/core/assets-raw/sprites/conveyormove.png b/core/assets-raw/sprites/blocks/conveyormove.png similarity index 100% rename from core/assets-raw/sprites/conveyormove.png rename to core/assets-raw/sprites/blocks/conveyormove.png diff --git a/core/assets-raw/sprites/core.png b/core/assets-raw/sprites/blocks/core.png similarity index 100% rename from core/assets-raw/sprites/core.png rename to core/assets-raw/sprites/blocks/core.png diff --git a/core/assets-raw/sprites/blocks/crucible.png b/core/assets-raw/sprites/blocks/crucible.png new file mode 100644 index 0000000000..42cb0367a3 Binary files /dev/null and b/core/assets-raw/sprites/blocks/crucible.png differ diff --git a/core/assets-raw/sprites/deepwater.png b/core/assets-raw/sprites/blocks/deepwater.png similarity index 100% rename from core/assets-raw/sprites/deepwater.png rename to core/assets-raw/sprites/blocks/deepwater.png diff --git a/core/assets-raw/sprites/dirt1.png b/core/assets-raw/sprites/blocks/dirt1.png similarity index 100% rename from core/assets-raw/sprites/dirt1.png rename to core/assets-raw/sprites/blocks/dirt1.png diff --git a/core/assets-raw/sprites/dirt2.png b/core/assets-raw/sprites/blocks/dirt2.png similarity index 100% rename from core/assets-raw/sprites/dirt2.png rename to core/assets-raw/sprites/blocks/dirt2.png diff --git a/core/assets-raw/sprites/dirt3.png b/core/assets-raw/sprites/blocks/dirt3.png similarity index 100% rename from core/assets-raw/sprites/dirt3.png rename to core/assets-raw/sprites/blocks/dirt3.png diff --git a/core/assets-raw/sprites/dirtblock.png b/core/assets-raw/sprites/blocks/dirtblock.png similarity index 100% rename from core/assets-raw/sprites/dirtblock.png rename to core/assets-raw/sprites/blocks/dirtblock.png diff --git a/core/assets-raw/sprites/dirtedge.png b/core/assets-raw/sprites/blocks/dirtedge.png similarity index 100% rename from core/assets-raw/sprites/dirtedge.png rename to core/assets-raw/sprites/blocks/dirtedge.png diff --git a/core/assets-raw/sprites/doubleturret.png b/core/assets-raw/sprites/blocks/doubleturret.png similarity index 79% rename from core/assets-raw/sprites/doubleturret.png rename to core/assets-raw/sprites/blocks/doubleturret.png index a028ea8fca..b31f837139 100644 Binary files a/core/assets-raw/sprites/doubleturret.png and b/core/assets-raw/sprites/blocks/doubleturret.png differ diff --git a/core/assets-raw/sprites/drill.png b/core/assets-raw/sprites/blocks/drill.png similarity index 100% rename from core/assets-raw/sprites/drill.png rename to core/assets-raw/sprites/blocks/drill.png diff --git a/core/assets-raw/sprites/flameturret.png b/core/assets-raw/sprites/blocks/flameturret.png similarity index 100% rename from core/assets-raw/sprites/flameturret.png rename to core/assets-raw/sprites/blocks/flameturret.png diff --git a/core/assets-raw/sprites/grass1.png b/core/assets-raw/sprites/blocks/grass1.png similarity index 100% rename from core/assets-raw/sprites/grass1.png rename to core/assets-raw/sprites/blocks/grass1.png diff --git a/core/assets-raw/sprites/grass2.png b/core/assets-raw/sprites/blocks/grass2.png similarity index 100% rename from core/assets-raw/sprites/grass2.png rename to core/assets-raw/sprites/blocks/grass2.png diff --git a/core/assets-raw/sprites/grass3.png b/core/assets-raw/sprites/blocks/grass3.png similarity index 100% rename from core/assets-raw/sprites/grass3.png rename to core/assets-raw/sprites/blocks/grass3.png diff --git a/core/assets-raw/sprites/grassblock.png b/core/assets-raw/sprites/blocks/grassblock.png similarity index 100% rename from core/assets-raw/sprites/grassblock.png rename to core/assets-raw/sprites/blocks/grassblock.png diff --git a/core/assets-raw/sprites/grassblock2.png b/core/assets-raw/sprites/blocks/grassblock2.png similarity index 100% rename from core/assets-raw/sprites/grassblock2.png rename to core/assets-raw/sprites/blocks/grassblock2.png diff --git a/core/assets-raw/sprites/grassedge.png b/core/assets-raw/sprites/blocks/grassedge.png similarity index 100% rename from core/assets-raw/sprites/grassedge.png rename to core/assets-raw/sprites/blocks/grassedge.png diff --git a/core/assets-raw/sprites/iron1.png b/core/assets-raw/sprites/blocks/iron1.png similarity index 100% rename from core/assets-raw/sprites/iron1.png rename to core/assets-raw/sprites/blocks/iron1.png diff --git a/core/assets-raw/sprites/iron2.png b/core/assets-raw/sprites/blocks/iron2.png similarity index 100% rename from core/assets-raw/sprites/iron2.png rename to core/assets-raw/sprites/blocks/iron2.png diff --git a/core/assets-raw/sprites/iron3.png b/core/assets-raw/sprites/blocks/iron3.png similarity index 100% rename from core/assets-raw/sprites/iron3.png rename to core/assets-raw/sprites/blocks/iron3.png diff --git a/core/assets-raw/sprites/irondrill.png b/core/assets-raw/sprites/blocks/irondrill.png similarity index 100% rename from core/assets-raw/sprites/irondrill.png rename to core/assets-raw/sprites/blocks/irondrill.png diff --git a/core/assets-raw/sprites/ironwall.png b/core/assets-raw/sprites/blocks/ironwall.png similarity index 100% rename from core/assets-raw/sprites/ironwall.png rename to core/assets-raw/sprites/blocks/ironwall.png diff --git a/core/assets-raw/sprites/junction.png b/core/assets-raw/sprites/blocks/junction.png similarity index 100% rename from core/assets-raw/sprites/junction.png rename to core/assets-raw/sprites/blocks/junction.png diff --git a/core/assets-raw/sprites/blocks/laserturret.png b/core/assets-raw/sprites/blocks/laserturret.png new file mode 100644 index 0000000000..7452832d41 Binary files /dev/null and b/core/assets-raw/sprites/blocks/laserturret.png differ diff --git a/core/assets-raw/sprites/machineturret.png b/core/assets-raw/sprites/blocks/machineturret.png similarity index 100% rename from core/assets-raw/sprites/machineturret.png rename to core/assets-raw/sprites/blocks/machineturret.png diff --git a/core/assets-raw/sprites/megarepairturret.png b/core/assets-raw/sprites/blocks/megarepairturret.png similarity index 100% rename from core/assets-raw/sprites/megarepairturret.png rename to core/assets-raw/sprites/blocks/megarepairturret.png diff --git a/core/assets-raw/sprites/blocks/mortarturret.png b/core/assets-raw/sprites/blocks/mortarturret.png new file mode 100644 index 0000000000..3435a9f0ca Binary files /dev/null and b/core/assets-raw/sprites/blocks/mortarturret.png differ diff --git a/core/assets-raw/sprites/mossblock.png b/core/assets-raw/sprites/blocks/mossblock.png similarity index 100% rename from core/assets-raw/sprites/mossblock.png rename to core/assets-raw/sprites/blocks/mossblock.png diff --git a/core/assets-raw/sprites/mossstone.png b/core/assets-raw/sprites/blocks/mossstone.png similarity index 100% rename from core/assets-raw/sprites/mossstone.png rename to core/assets-raw/sprites/blocks/mossstone.png diff --git a/core/assets-raw/sprites/blocks/omnidrill.png b/core/assets-raw/sprites/blocks/omnidrill.png new file mode 100644 index 0000000000..5ff4798aab Binary files /dev/null and b/core/assets-raw/sprites/blocks/omnidrill.png differ diff --git a/core/assets-raw/sprites/blocks/pump.png b/core/assets-raw/sprites/blocks/pump.png new file mode 100644 index 0000000000..8c81843452 Binary files /dev/null and b/core/assets-raw/sprites/blocks/pump.png differ diff --git a/core/assets-raw/sprites/repairturret.png b/core/assets-raw/sprites/blocks/repairturret.png similarity index 100% rename from core/assets-raw/sprites/repairturret.png rename to core/assets-raw/sprites/blocks/repairturret.png diff --git a/core/assets-raw/sprites/rock.png b/core/assets-raw/sprites/blocks/rock.png similarity index 100% rename from core/assets-raw/sprites/rock.png rename to core/assets-raw/sprites/blocks/rock.png diff --git a/core/assets-raw/sprites/rock2.png b/core/assets-raw/sprites/blocks/rock2.png similarity index 100% rename from core/assets-raw/sprites/rock2.png rename to core/assets-raw/sprites/blocks/rock2.png diff --git a/core/assets-raw/sprites/rock2shadow.png b/core/assets-raw/sprites/blocks/rock2shadow.png similarity index 100% rename from core/assets-raw/sprites/rock2shadow.png rename to core/assets-raw/sprites/blocks/rock2shadow.png diff --git a/core/assets-raw/sprites/rockshadow.png b/core/assets-raw/sprites/blocks/rockshadow.png similarity index 100% rename from core/assets-raw/sprites/rockshadow.png rename to core/assets-raw/sprites/blocks/rockshadow.png diff --git a/core/assets-raw/sprites/router.png b/core/assets-raw/sprites/blocks/router.png similarity index 100% rename from core/assets-raw/sprites/router.png rename to core/assets-raw/sprites/blocks/router.png diff --git a/core/assets-raw/sprites/shadow.png b/core/assets-raw/sprites/blocks/shadow.png similarity index 100% rename from core/assets-raw/sprites/shadow.png rename to core/assets-raw/sprites/blocks/shadow.png diff --git a/core/assets-raw/sprites/shotgunturret.png b/core/assets-raw/sprites/blocks/shotgunturret.png similarity index 100% rename from core/assets-raw/sprites/shotgunturret.png rename to core/assets-raw/sprites/blocks/shotgunturret.png diff --git a/core/assets-raw/sprites/shrub.png b/core/assets-raw/sprites/blocks/shrub.png similarity index 100% rename from core/assets-raw/sprites/shrub.png rename to core/assets-raw/sprites/blocks/shrub.png diff --git a/core/assets-raw/sprites/shrubshadow.png b/core/assets-raw/sprites/blocks/shrubshadow.png similarity index 100% rename from core/assets-raw/sprites/shrubshadow.png rename to core/assets-raw/sprites/blocks/shrubshadow.png diff --git a/core/assets-raw/sprites/smelter.png b/core/assets-raw/sprites/blocks/smelter.png similarity index 100% rename from core/assets-raw/sprites/smelter.png rename to core/assets-raw/sprites/blocks/smelter.png diff --git a/core/assets-raw/sprites/sniperturret.png b/core/assets-raw/sprites/blocks/sniperturret.png similarity index 100% rename from core/assets-raw/sprites/sniperturret.png rename to core/assets-raw/sprites/blocks/sniperturret.png diff --git a/core/assets-raw/sprites/steelconveyor.png b/core/assets-raw/sprites/blocks/steelconveyor.png similarity index 100% rename from core/assets-raw/sprites/steelconveyor.png rename to core/assets-raw/sprites/blocks/steelconveyor.png diff --git a/core/assets-raw/sprites/steelconveyormove.png b/core/assets-raw/sprites/blocks/steelconveyormove.png similarity index 100% rename from core/assets-raw/sprites/steelconveyormove.png rename to core/assets-raw/sprites/blocks/steelconveyormove.png diff --git a/core/assets-raw/sprites/steelwall.png b/core/assets-raw/sprites/blocks/steelwall.png similarity index 100% rename from core/assets-raw/sprites/steelwall.png rename to core/assets-raw/sprites/blocks/steelwall.png diff --git a/core/assets-raw/sprites/stone.png b/core/assets-raw/sprites/blocks/stone.png similarity index 100% rename from core/assets-raw/sprites/stone.png rename to core/assets-raw/sprites/blocks/stone.png diff --git a/core/assets-raw/sprites/stone1.png b/core/assets-raw/sprites/blocks/stone1.png similarity index 100% rename from core/assets-raw/sprites/stone1.png rename to core/assets-raw/sprites/blocks/stone1.png diff --git a/core/assets-raw/sprites/stone2.png b/core/assets-raw/sprites/blocks/stone2.png similarity index 100% rename from core/assets-raw/sprites/stone2.png rename to core/assets-raw/sprites/blocks/stone2.png diff --git a/core/assets-raw/sprites/stone3.png b/core/assets-raw/sprites/blocks/stone3.png similarity index 100% rename from core/assets-raw/sprites/stone3.png rename to core/assets-raw/sprites/blocks/stone3.png diff --git a/core/assets-raw/sprites/stoneblock.png b/core/assets-raw/sprites/blocks/stoneblock.png similarity index 100% rename from core/assets-raw/sprites/stoneblock.png rename to core/assets-raw/sprites/blocks/stoneblock.png diff --git a/core/assets-raw/sprites/stoneblock2.png b/core/assets-raw/sprites/blocks/stoneblock2.png similarity index 100% rename from core/assets-raw/sprites/stoneblock2.png rename to core/assets-raw/sprites/blocks/stoneblock2.png diff --git a/core/assets-raw/sprites/stoneblock3.png b/core/assets-raw/sprites/blocks/stoneblock3.png similarity index 100% rename from core/assets-raw/sprites/stoneblock3.png rename to core/assets-raw/sprites/blocks/stoneblock3.png diff --git a/core/assets-raw/sprites/stonedrill.png b/core/assets-raw/sprites/blocks/stonedrill.png similarity index 100% rename from core/assets-raw/sprites/stonedrill.png rename to core/assets-raw/sprites/blocks/stonedrill.png diff --git a/core/assets-raw/sprites/stoneedge.png b/core/assets-raw/sprites/blocks/stoneedge.png similarity index 100% rename from core/assets-raw/sprites/stoneedge.png rename to core/assets-raw/sprites/blocks/stoneedge.png diff --git a/core/assets-raw/sprites/stonewall.png b/core/assets-raw/sprites/blocks/stonewall.png similarity index 100% rename from core/assets-raw/sprites/stonewall.png rename to core/assets-raw/sprites/blocks/stonewall.png diff --git a/core/assets-raw/sprites/titanium1.png b/core/assets-raw/sprites/blocks/titanium1.png similarity index 100% rename from core/assets-raw/sprites/titanium1.png rename to core/assets-raw/sprites/blocks/titanium1.png diff --git a/core/assets-raw/sprites/titanium2.png b/core/assets-raw/sprites/blocks/titanium2.png similarity index 100% rename from core/assets-raw/sprites/titanium2.png rename to core/assets-raw/sprites/blocks/titanium2.png diff --git a/core/assets-raw/sprites/titanium3.png b/core/assets-raw/sprites/blocks/titanium3.png similarity index 100% rename from core/assets-raw/sprites/titanium3.png rename to core/assets-raw/sprites/blocks/titanium3.png diff --git a/core/assets-raw/sprites/titaniumdrill.png b/core/assets-raw/sprites/blocks/titaniumdrill.png similarity index 100% rename from core/assets-raw/sprites/titaniumdrill.png rename to core/assets-raw/sprites/blocks/titaniumdrill.png diff --git a/core/assets-raw/sprites/blocks/titaniumwall.png b/core/assets-raw/sprites/blocks/titaniumwall.png new file mode 100644 index 0000000000..7b322cd76e Binary files /dev/null and b/core/assets-raw/sprites/blocks/titaniumwall.png differ diff --git a/core/assets-raw/sprites/turret.png b/core/assets-raw/sprites/blocks/turret.png similarity index 79% rename from core/assets-raw/sprites/turret.png rename to core/assets-raw/sprites/blocks/turret.png index 696bd2ff8b..3edb816320 100644 Binary files a/core/assets-raw/sprites/turret.png and b/core/assets-raw/sprites/blocks/turret.png differ diff --git a/core/assets-raw/sprites/water.png b/core/assets-raw/sprites/blocks/water.png similarity index 100% rename from core/assets-raw/sprites/water.png rename to core/assets-raw/sprites/blocks/water.png diff --git a/core/assets-raw/sprites/wateredge.png b/core/assets-raw/sprites/blocks/wateredge.png similarity index 100% rename from core/assets-raw/sprites/wateredge.png rename to core/assets-raw/sprites/blocks/wateredge.png diff --git a/core/assets-raw/sprites/bossmech.png b/core/assets-raw/sprites/enemies/bossmech.png similarity index 100% rename from core/assets-raw/sprites/bossmech.png rename to core/assets-raw/sprites/enemies/bossmech.png diff --git a/core/assets-raw/sprites/fastmech.png b/core/assets-raw/sprites/enemies/fastmech.png similarity index 100% rename from core/assets-raw/sprites/fastmech.png rename to core/assets-raw/sprites/enemies/fastmech.png diff --git a/core/assets-raw/sprites/firemech.png b/core/assets-raw/sprites/enemies/firemech.png similarity index 100% rename from core/assets-raw/sprites/firemech.png rename to core/assets-raw/sprites/enemies/firemech.png diff --git a/core/assets-raw/sprites/mech1.png b/core/assets-raw/sprites/enemies/mech1.png similarity index 100% rename from core/assets-raw/sprites/mech1.png rename to core/assets-raw/sprites/enemies/mech1.png diff --git a/core/assets-raw/sprites/furnace.png b/core/assets-raw/sprites/furnace.png deleted file mode 100644 index 691c6b7df3..0000000000 Binary files a/core/assets-raw/sprites/furnace.png and /dev/null differ diff --git a/core/assets-raw/sprites/icon-titanium.png b/core/assets-raw/sprites/icon-titanium.png new file mode 100644 index 0000000000..01e75295de Binary files /dev/null and b/core/assets-raw/sprites/icon-titanium.png differ diff --git a/core/assets-raw/sprites/titaniumblock.png b/core/assets-raw/sprites/titaniumblock.png deleted file mode 100644 index fda7eeeb93..0000000000 Binary files a/core/assets-raw/sprites/titaniumblock.png and /dev/null differ diff --git a/core/assets/sprites/sprites.atlas b/core/assets/sprites/sprites.atlas index e3036194d2..41079ce257 100644 --- a/core/assets/sprites/sprites.atlas +++ b/core/assets/sprites/sprites.atlas @@ -4,23 +4,534 @@ size: 512,32 format: RGBA8888 filter: Nearest,Nearest repeat: none -block +blocks/block rotate: false - xy: 175, 23 + xy: 199, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 -bossmech +blocks/coal1 rotate: false - xy: 21, 17 - size: 14, 14 - orig: 14, 14 + xy: 219, 23 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/coal2 + rotate: false + xy: 229, 23 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/coal3 + rotate: false + xy: 239, 23 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/coaldrill + rotate: false + xy: 249, 23 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/conduit + rotate: false + xy: 259, 23 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/conduitbottom + rotate: false + xy: 269, 23 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/conduitliquid + rotate: false + xy: 279, 23 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/conduittop + rotate: false + xy: 289, 23 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/conveyor + rotate: false + xy: 299, 23 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/conveyormove + rotate: false + xy: 309, 23 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/core + rotate: false + xy: 319, 23 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/crucible + rotate: false + xy: 329, 23 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/deepwater + rotate: false + xy: 339, 23 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/dirt1 + rotate: false + xy: 349, 23 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/dirt2 + rotate: false + xy: 359, 23 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/dirt3 + rotate: false + xy: 369, 23 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/dirtblock + rotate: false + xy: 379, 23 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/dirtedge + rotate: false + xy: 37, 19 + size: 12, 12 + orig: 12, 12 + offset: 0, 0 + index: -1 +blocks/doubleturret + rotate: false + xy: 65, 7 + size: 10, 10 + orig: 10, 10 + offset: 0, 0 + index: -1 +blocks/drill + rotate: false + xy: 389, 23 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/flameturret + rotate: false + xy: 79, 21 + size: 10, 10 + orig: 10, 10 + offset: 0, 0 + index: -1 +blocks/grass1 + rotate: false + xy: 409, 23 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/grass2 + rotate: false + xy: 419, 23 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/grass3 + rotate: false + xy: 429, 23 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/grassblock + rotate: false + xy: 439, 23 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/grassblock2 + rotate: false + xy: 449, 23 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/grassedge + rotate: false + xy: 37, 5 + size: 12, 12 + orig: 12, 12 + offset: 0, 0 + index: -1 +blocks/iron1 + rotate: false + xy: 80, 11 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/iron2 + rotate: false + xy: 80, 1 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/iron3 + rotate: false + xy: 90, 11 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/irondrill + rotate: false + xy: 90, 1 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/ironwall + rotate: false + xy: 100, 11 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/junction + rotate: false + xy: 100, 1 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/laserturret + rotate: false + xy: 91, 21 + size: 10, 10 + orig: 10, 10 + offset: 0, 0 + index: -1 +blocks/machineturret + rotate: false + xy: 103, 21 + size: 10, 10 + orig: 10, 10 + offset: 0, 0 + index: -1 +blocks/megarepairturret + rotate: false + xy: 115, 21 + size: 10, 10 + orig: 10, 10 + offset: 0, 0 + index: -1 +blocks/mortarturret + rotate: false + xy: 127, 21 + size: 10, 10 + orig: 10, 10 + offset: 0, 0 + index: -1 +blocks/mossblock + rotate: false + xy: 110, 1 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/mossstone + rotate: false + xy: 110, 1 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/omnidrill + rotate: false + xy: 120, 11 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/pump + rotate: false + xy: 130, 11 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/repairturret + rotate: false + xy: 139, 21 + size: 10, 10 + orig: 10, 10 + offset: 0, 0 + index: -1 +blocks/rock + rotate: false + xy: 130, 1 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/rock2 + rotate: false + xy: 140, 11 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/rock2shadow + rotate: false + xy: 140, 1 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/rockshadow + rotate: false + xy: 150, 11 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/router + rotate: false + xy: 150, 1 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/shadow + rotate: false + xy: 151, 21 + size: 10, 10 + orig: 10, 10 + offset: 0, 0 + index: -1 +blocks/shotgunturret + rotate: false + xy: 163, 21 + size: 10, 10 + orig: 10, 10 + offset: 0, 0 + index: -1 +blocks/shrub + rotate: false + xy: 160, 11 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/shrubshadow + rotate: false + xy: 160, 1 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/smelter + rotate: false + xy: 170, 11 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/sniperturret + rotate: false + xy: 175, 21 + size: 10, 10 + orig: 10, 10 + offset: 0, 0 + index: -1 +blocks/steelconveyor + rotate: false + xy: 170, 1 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/steelconveyormove + rotate: false + xy: 180, 11 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/steelwall + rotate: false + xy: 180, 1 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/stone + rotate: false + xy: 51, 19 + size: 12, 12 + orig: 12, 12 + offset: 0, 0 + index: -1 +blocks/stone1 + rotate: false + xy: 190, 11 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/stone2 + rotate: false + xy: 190, 1 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/stone3 + rotate: false + xy: 200, 13 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/stoneblock + rotate: false + xy: 200, 3 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/stoneblock2 + rotate: false + xy: 210, 13 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/stoneblock3 + rotate: false + xy: 210, 3 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/stonedrill + rotate: false + xy: 220, 13 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/stoneedge + rotate: false + xy: 51, 5 + size: 12, 12 + orig: 12, 12 + offset: 0, 0 + index: -1 +blocks/stonewall + rotate: false + xy: 220, 3 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/titanium1 + rotate: false + xy: 230, 13 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/titanium2 + rotate: false + xy: 230, 3 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/titanium3 + rotate: false + xy: 240, 13 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/titaniumdrill + rotate: false + xy: 240, 3 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/titaniumwall + rotate: false + xy: 250, 13 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/turret + rotate: false + xy: 187, 21 + size: 10, 10 + orig: 10, 10 + offset: 0, 0 + index: -1 +blocks/water + rotate: false + xy: 250, 3 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/wateredge + rotate: false + xy: 65, 19 + size: 12, 12 + orig: 12, 12 offset: 0, 0 index: -1 bullet rotate: false - xy: 185, 23 + xy: 209, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -32,254 +543,65 @@ circle orig: 10, 10 offset: 0, 0 index: -1 -coal1 +enemies/bossmech rotate: false - xy: 195, 23 + xy: 21, 17 + size: 14, 14 + orig: 14, 14 + offset: 0, 0 + index: -1 +enemies/fastmech + rotate: false + xy: 399, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 -coal2 - rotate: false - xy: 205, 23 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -coal3 - rotate: false - xy: 215, 23 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -coaldrill - rotate: false - xy: 225, 23 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -conveyor - rotate: false - xy: 235, 23 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -conveyormove - rotate: false - xy: 245, 23 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -core - rotate: false - xy: 255, 23 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -deepwater - rotate: false - xy: 265, 23 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -dirt1 - rotate: false - xy: 275, 23 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -dirt2 - rotate: false - xy: 285, 23 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -dirt3 - rotate: false - xy: 295, 23 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -dirtblock - rotate: false - xy: 305, 23 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -dirtedge - rotate: false - xy: 37, 19 - size: 12, 12 - orig: 12, 12 - offset: 0, 0 - index: -1 -doubleturret - rotate: false - xy: 65, 7 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 -drill - rotate: false - xy: 315, 23 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -fastmech - rotate: false - xy: 325, 23 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -firemech +enemies/firemech rotate: false xy: 21, 1 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 -flameturret +enemies/mech1 rotate: false - xy: 79, 21 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 -furnace - rotate: false - xy: 335, 23 + xy: 110, 11 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 -smelter - rotate: false - xy: 335, 23 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -grass1 - rotate: false - xy: 345, 23 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -grass2 - rotate: false - xy: 355, 23 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -grass3 - rotate: false - xy: 365, 23 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -grassblock - rotate: false - xy: 375, 23 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -grassblock2 - rotate: false - xy: 385, 23 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -grassedge - rotate: false - xy: 37, 5 - size: 12, 12 - orig: 12, 12 - offset: 0, 0 - index: -1 icon-coal rotate: false - xy: 395, 23 + xy: 459, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 icon-iron rotate: false - xy: 405, 23 + xy: 469, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 icon-steel rotate: false - xy: 415, 23 + xy: 479, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 icon-stone rotate: false - xy: 425, 23 + xy: 489, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 -iron1 +icon-titanium rotate: false - xy: 435, 23 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -iron2 - rotate: false - xy: 445, 23 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -iron3 - rotate: false - xy: 455, 23 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -irondrill - rotate: false - xy: 465, 23 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -ironwall - rotate: false - xy: 475, 23 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -junction - rotate: false - xy: 485, 23 + xy: 499, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -298,296 +620,37 @@ laserend orig: 18, 18 offset: 0, 0 index: -1 -machineturret - rotate: false - xy: 91, 21 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 -mech1 - rotate: false - xy: 495, 23 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -megarepairturret - rotate: false - xy: 103, 21 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 -mossblock - rotate: false - xy: 80, 11 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -mossstone - rotate: false - xy: 80, 11 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 player - rotate: false - xy: 80, 1 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -repairturret - rotate: false - xy: 115, 21 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 -rock - rotate: false - xy: 90, 11 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -rock2 - rotate: false - xy: 90, 1 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -rock2shadow - rotate: false - xy: 100, 11 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -rockshadow - rotate: false - xy: 100, 1 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -router - rotate: false - xy: 110, 11 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -shadow - rotate: false - xy: 127, 21 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 -shotgunturret - rotate: false - xy: 139, 21 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 -shrub - rotate: false - xy: 110, 1 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -shrubshadow - rotate: false - xy: 120, 11 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -sniperturret - rotate: false - xy: 151, 21 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 -steelconveyor rotate: false xy: 120, 1 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 -steelconveyormove - rotate: false - xy: 130, 11 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -steelwall - rotate: false - xy: 130, 1 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -stone - rotate: false - xy: 51, 19 - size: 12, 12 - orig: 12, 12 - offset: 0, 0 - index: -1 -stone1 - rotate: false - xy: 140, 11 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -stone2 - rotate: false - xy: 140, 1 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -stone3 - rotate: false - xy: 150, 11 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -stoneblock - rotate: false - xy: 150, 1 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -stoneblock2 - rotate: false - xy: 160, 11 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -stoneblock3 - rotate: false - xy: 160, 1 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -stonedrill - rotate: false - xy: 170, 11 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -stoneedge - rotate: false - xy: 51, 5 - size: 12, 12 - orig: 12, 12 - offset: 0, 0 - index: -1 -stonewall - rotate: false - xy: 170, 1 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -titanium1 - rotate: false - xy: 180, 13 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -titanium2 - rotate: false - xy: 180, 3 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -titanium3 - rotate: false - xy: 190, 13 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -titaniumblock - rotate: false - xy: 190, 3 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -titaniumdrill - rotate: false - xy: 200, 13 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -turret - rotate: false - xy: 163, 21 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 -water - rotate: false - xy: 200, 3 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -wateredge - rotate: false - xy: 65, 19 - size: 12, 12 - orig: 12, 12 - offset: 0, 0 - index: -1 weapon-blaster rotate: false - xy: 210, 13 + xy: 260, 13 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 weapon-flamethrower rotate: false - xy: 210, 3 + xy: 260, 3 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 weapon-multigun rotate: false - xy: 220, 13 + xy: 270, 13 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 weapon-trishot rotate: false - xy: 220, 3 + xy: 270, 3 size: 8, 8 orig: 8, 8 offset: 0, 0 diff --git a/core/assets/sprites/sprites.png b/core/assets/sprites/sprites.png index 9a014490f5..fcf6901be2 100644 Binary files a/core/assets/sprites/sprites.png and b/core/assets/sprites/sprites.png differ diff --git a/core/src/io/anuke/mindustry/Control.java b/core/src/io/anuke/mindustry/Control.java index 01e41465f1..31125210a9 100644 --- a/core/src/io/anuke/mindustry/Control.java +++ b/core/src/io/anuke/mindustry/Control.java @@ -126,7 +126,7 @@ public class Control extends ControlModule{ Renderer.clearTiles(); player.x = World.core.worldx(); - player.y = World.core.worldy()-8; + player.y = World.core.worldy() - 8f - ((int)(Gdx.graphics.getWidth() / (float)Core.cameraScale * 2) % 2 == 0 ? 0.5f : 0); control.camera.position.set(player.x, player.y, 0); diff --git a/core/src/io/anuke/mindustry/Inventory.java b/core/src/io/anuke/mindustry/Inventory.java index a7c82e4364..2d3b287282 100644 --- a/core/src/io/anuke/mindustry/Inventory.java +++ b/core/src/io/anuke/mindustry/Inventory.java @@ -16,10 +16,11 @@ public class Inventory{ items.put(Item.stone, 40); if(debug){ - items.put(Item.stone, 2000); - items.put(Item.iron, 2000); - items.put(Item.steel, 2000); - items.put(Item.coal, 2000); + items.put(Item.stone, 2000000); + items.put(Item.iron, 2000000); + items.put(Item.steel, 2000000); + items.put(Item.coal, 2000000); + items.put(Item.titanium, 2000000); } } diff --git a/core/src/io/anuke/mindustry/UI.java b/core/src/io/anuke/mindustry/UI.java index bdbcda836a..06c436d0a8 100644 --- a/core/src/io/anuke/mindustry/UI.java +++ b/core/src/io/anuke/mindustry/UI.java @@ -3,6 +3,8 @@ package io.anuke.mindustry; import static io.anuke.mindustry.Vars.*; import static io.anuke.ucore.scene.actions.Actions.*; +import java.text.NumberFormat; + import com.badlogic.gdx.Application.ApplicationType; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.Color; @@ -62,6 +64,7 @@ public class UI extends SceneModule{ Colors.put("description", Color.WHITE); Colors.put("turretinfo", Color.ORANGE); Colors.put("missingitems", Color.SCARLET); + Colors.put("health", Color.YELLOW); } void drawBackground(){ @@ -187,7 +190,7 @@ public class UI extends SceneModule{ new table("button"){{ - int rows = 3; + int rows = 4; int maxcol = 0; float size = 46; @@ -218,6 +221,7 @@ public class UI extends SceneModule{ group.add(button); table.pad(4); + table.top(); int i = 0; @@ -231,7 +235,7 @@ public class UI extends SceneModule{ } }); - table.add(image).size(size+8).pad(4).units(Unit.dp); + table.add(image).size(size+8).pad(2).units(Unit.dp); image.getImageCell().size(size).units(Unit.dp); image.update(()->{ @@ -286,30 +290,32 @@ public class UI extends SceneModule{ atop(); aleft(); - defaults().size(66).units(Unit.dp); - - //TODO menu buttons! - new imagebutton("icon-menu", 40, ()->{ - showMenu(); - }); - - new imagebutton("icon-settings", 40, ()->{ - prefs.show(); - }); + new table(){{ + left(); + defaults().size(66).units(Unit.dp).left(); + + new imagebutton("icon-menu", 40, ()->{ + showMenu(); + }); + + new imagebutton("icon-settings", 40, ()->{ + prefs.show(); + }); - new imagebutton("icon-pause", 40, ()->{ - //TODO pause - }); + new imagebutton("icon-pause", 40, ()->{ + //TODO pause + }); + }}.end(); row(); - itemtable = new table("button").end().top().left().colspan(3).fillX().size(-1).get(); + itemtable = new table("button").end().top().left().fillX().size(-1).get(); get().setVisible(play); Label fps = new Label(()->(Settings.getBool("fps") ? (Gdx.graphics.getFramesPerSecond() + " FPS") : "")); row(); - add(fps).colspan(3).size(-1); + add(fps).size(-1); }}.end(); @@ -484,11 +490,16 @@ public class UI extends SceneModule{ desctable.left(); desctable.pad(12); - desctable.add(recipe.result.formalName); - desctable.row(); - desctable.addImage(Draw.region(recipe.result.name)).size(8*5).padTop(4); + Table header = new Table(); + + desctable.add(header).left(); + desctable.row(); + + header.addImage(Draw.region(recipe.result.name)).size(8*5).padTop(4); + header.add(recipe.result.formalName).padLeft(4); + desctable.add().pad(2); Table requirements = new Table(); @@ -518,11 +529,11 @@ public class UI extends SceneModule{ desctable.row(); - if(recipe.result.description() != null){ - Label label = new Label(recipe.result.description()); - label.setWrap(true); - desctable.add(label).width(170).padTop(4); - } + Label label = new Label("[health]health: " + recipe.result.health + (recipe.result.description() == null ? + "" : ("\n[]" + recipe.result.description()))); + label.setWrap(true); + desctable.add(label).width(200).padTop(4); + } public void updateWeapons(){ @@ -611,9 +622,9 @@ public class UI extends SceneModule{ for(Item stack : Inventory.getItemTypes()){ Image image = new Image(Draw.region("icon-" + stack.name())); - Label label = new Label("" + Inventory.getAmount(stack)); - label.setFontScale(fontscale*2f); - itemtable.add(image).size(32).units(Unit.dp); + Label label = new Label("" + NumberFormat.getIntegerInstance().format(Inventory.getAmount(stack))); + label.setFontScale(fontscale*1.5f); + itemtable.add(image).size(8*3).units(Unit.dp); itemtable.add(label).left(); itemtable.row(); } diff --git a/core/src/io/anuke/mindustry/World.java b/core/src/io/anuke/mindustry/World.java index ad4c85f0e4..6ebeddc6cb 100644 --- a/core/src/io/anuke/mindustry/World.java +++ b/core/src/io/anuke/mindustry/World.java @@ -169,7 +169,7 @@ public class World{ static void set(int x, int y, Block type, int rot){ tiles[x][y].setBlock(type); - tiles[x][y].rotation = rot; + tiles[x][y].rotation = (byte)rot; } public static int getSeed(){ @@ -195,10 +195,10 @@ public class World{ return false; } } + Tile tile = tile(x, y); - if(tile.block() != type && ((tile.block().name.contains("wall") && type.name.contains("wall")) || - (tile.block().name.contains("conveyor") && type.name.contains("conveyor")))){ + if(tile.block() != type && type.canReplace(tile.block())){ return true; } diff --git a/core/src/io/anuke/mindustry/input/AndroidInput.java b/core/src/io/anuke/mindustry/input/AndroidInput.java index ce7d4153f4..4f5ca0bdd2 100644 --- a/core/src/io/anuke/mindustry/input/AndroidInput.java +++ b/core/src/io/anuke/mindustry/input/AndroidInput.java @@ -78,7 +78,7 @@ public class AndroidInput extends InputAdapter{ return; //just in case tile.setBlock(player.recipe.result); - tile.rotation = player.rotation; + tile.rotation = (byte)player.rotation; Effects.effect("place", tilex*tilesize, tiley*tilesize); Effects.shake(2f, 2f); diff --git a/core/src/io/anuke/mindustry/input/Input.java b/core/src/io/anuke/mindustry/input/Input.java index c86e8b6c62..1fd1bfc918 100644 --- a/core/src/io/anuke/mindustry/input/Input.java +++ b/core/src/io/anuke/mindustry/input/Input.java @@ -53,7 +53,7 @@ public class Input{ return; //just in case tile.setBlock(player.recipe.result); - tile.rotation = player.rotation; + tile.rotation = (byte)player.rotation; Effects.effect("place", World.roundx(), World.roundy()); Effects.shake(2f, 2f); diff --git a/core/src/io/anuke/mindustry/io/SaveIO.java b/core/src/io/anuke/mindustry/io/SaveIO.java index 412da33aae..d509389702 100644 --- a/core/src/io/anuke/mindustry/io/SaveIO.java +++ b/core/src/io/anuke/mindustry/io/SaveIO.java @@ -356,7 +356,7 @@ public class SaveIO{ tile.setBlock(Block.getByID(blockid)); if(hasEntity){ - int rotation = stream.readByte(); + byte rotation = stream.readByte(); int health = stream.readInt(); int items = stream.readByte(); diff --git a/core/src/io/anuke/mindustry/resource/Liquid.java b/core/src/io/anuke/mindustry/resource/Liquid.java new file mode 100644 index 0000000000..427f169dc9 --- /dev/null +++ b/core/src/io/anuke/mindustry/resource/Liquid.java @@ -0,0 +1,13 @@ +package io.anuke.mindustry.resource; + +import com.badlogic.gdx.graphics.Color; + +public enum Liquid{ + water(Color.ROYAL); + + public final Color color; + + private Liquid(Color color){ + this.color = new Color(color); + } +} diff --git a/core/src/io/anuke/mindustry/resource/Recipe.java b/core/src/io/anuke/mindustry/resource/Recipe.java index 05c7d9ec9f..a99ba4f287 100644 --- a/core/src/io/anuke/mindustry/resource/Recipe.java +++ b/core/src/io/anuke/mindustry/resource/Recipe.java @@ -13,25 +13,34 @@ public enum Recipe{ stonewall(distribution, Blocks.stonewall, stack(Item.stone, 5)), ironwall(distribution, Blocks.ironwall, stack(Item.iron, 5)), steelwall(distribution, Blocks.steelwall, stack(Item.steel, 5)), + titaniumwall(distribution, Blocks.titaniumwall, stack(Item.titanium, 5)), conveyor(distribution, ProductionBlocks.conveyor, stack(Item.stone, 1)), fastconveyor(distribution, ProductionBlocks.steelconveyor, stack(Item.steel, 1)), router(distribution, ProductionBlocks.router, stack(Item.stone, 3)), junction(distribution, ProductionBlocks.junction, stack(Item.iron, 5)), + conduit(distribution, ProductionBlocks.conduit, stack(Item.steel, 1)), + pump(distribution, ProductionBlocks.pump, stack(Item.steel, 20)), + turret(defense, WeaponBlocks.turret, stack(Item.stone, 6)), dturret(defense, WeaponBlocks.doubleturret, stack(Item.stone, 12)), machineturret(defense, WeaponBlocks.machineturret, stack(Item.iron, 15), stack(Item.stone, 20)), shotgunturret(defense, WeaponBlocks.shotgunturret, stack(Item.iron, 18), stack(Item.stone, 20)), flameturret(defense, WeaponBlocks.flameturret, stack(Item.iron, 25), stack(Item.steel, 18)), sniperturret(defense, WeaponBlocks.sniperturret, stack(Item.iron, 30), stack(Item.steel, 20)), + laserturret(defense, WeaponBlocks.laserturret, stack(Item.steel, 20), stack(Item.titanium, 20)), + mortarturret(defense, WeaponBlocks.mortarturret, stack(Item.steel, 25), stack(Item.titanium, 25)), - healturret(defense, WeaponBlocks.repairturret, stack(Item.iron, 40)), + healturret(defense, WeaponBlocks.repairturret, stack(Item.iron, 45)), megahealturret(defense, WeaponBlocks.megarepairturret, stack(Item.iron, 30), stack(Item.steel, 40)), drill(production, ProductionBlocks.stonedrill, stack(Item.stone, 6)), irondrill(production, ProductionBlocks.irondrill, stack(Item.stone, 40)), coaldrill(production, ProductionBlocks.coaldrill, stack(Item.stone, 40), stack(Item.iron, 40)), - smelter(production, ProductionBlocks.smelter, stack(Item.stone, 80), stack(Item.iron, 80)); + titaniumdrill(production, ProductionBlocks.titaniumdrill, stack(Item.iron, 40), stack(Item.steel, 40)), + omnidrill(production, ProductionBlocks.omnidrill, stack(Item.steel, 50), stack(Item.titanium, 50)), + smelter(production, ProductionBlocks.smelter, stack(Item.stone, 80), stack(Item.iron, 80)), + crucible(production, ProductionBlocks.crucible, stack(Item.titanium, 80), stack(Item.steel, 80)); public Block result; public ItemStack[] requirements; diff --git a/core/src/io/anuke/mindustry/world/Block.java b/core/src/io/anuke/mindustry/world/Block.java index d71046d5ff..4b5bf8910a 100644 --- a/core/src/io/anuke/mindustry/world/Block.java +++ b/core/src/io/anuke/mindustry/world/Block.java @@ -59,6 +59,10 @@ public class Block{ public String errorMessage(Tile tile){ return null; } + + public boolean canReplace(Block other){ + return false; + } public void handleItem(Tile tile, Item item, Tile source){ tile.entity.addItem(item, 1); @@ -91,13 +95,13 @@ public class Block{ && !(other.block().rotate && (other.rotation + 2) % 4 == i)){ other.block().handleItem(other, item, tile); - tile.dump = (i+1)%4; + tile.dump = (byte)((i+1)%4); return; } i++; i %= 4; } - tile.dump = pdump; + tile.dump = (byte)pdump; handleItem(tile, item, tile); } @@ -127,7 +131,7 @@ public class Block{ !(other.block().rotate && (other.rotation + 2) % 4 == i)){ other.block().handleItem(other, item, tile); tile.entity.removeItem(item, 1); - tile.dump = (i+1)%4; + tile.dump = (byte)((i+1)%4); return true; } } diff --git a/core/src/io/anuke/mindustry/world/Tile.java b/core/src/io/anuke/mindustry/world/Tile.java index f13be0040f..eea6b52f27 100644 --- a/core/src/io/anuke/mindustry/world/Tile.java +++ b/core/src/io/anuke/mindustry/world/Tile.java @@ -11,7 +11,8 @@ public class Tile{ private Block floor = Blocks.air; private Block block = Blocks.air; public TileEntity entity; - public int x, y, rotation, dump; + public int x, y; + public byte rotation, dump; public Tile(int x, int y){ this.x = x; diff --git a/core/src/io/anuke/mindustry/world/blocks/Blocks.java b/core/src/io/anuke/mindustry/world/blocks/Blocks.java index 05d0e46c10..f2f4abebfc 100644 --- a/core/src/io/anuke/mindustry/world/blocks/Blocks.java +++ b/core/src/io/anuke/mindustry/world/blocks/Blocks.java @@ -4,6 +4,7 @@ import io.anuke.mindustry.resource.Item; import io.anuke.mindustry.resource.ItemStack; import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Tile; +import io.anuke.mindustry.world.blocks.types.Wall; public class Blocks{ public static final Block @@ -91,30 +92,22 @@ public class Blocks{ solid = true; }}, - stonewall = new Block("stonewall"){{ - solid = true; - update = true; + stonewall = new Wall("stonewall"){{ health = 50; formalName = "stone wall"; }}, - ironwall = new Block("ironwall"){{ - solid = true; - update = true; + ironwall = new Wall("ironwall"){{ health = 80; formalName = "iron wall"; }}, - steelwall = new Block("steelwall"){{ - solid = true; - update = true; + steelwall = new Wall("steelwall"){{ health = 110; formalName = "steel wall"; }}, - titaniumwall = new Block("titaniumwall"){{ - solid = true; - update = true; + titaniumwall = new Wall("titaniumwall"){{ health = 140; formalName = "titanium wall"; }}; diff --git a/core/src/io/anuke/mindustry/world/blocks/ProductionBlocks.java b/core/src/io/anuke/mindustry/world/blocks/ProductionBlocks.java index ef9dafee8d..d0a584c7b5 100644 --- a/core/src/io/anuke/mindustry/world/blocks/ProductionBlocks.java +++ b/core/src/io/anuke/mindustry/world/blocks/ProductionBlocks.java @@ -9,6 +9,7 @@ import io.anuke.mindustry.Vars; import io.anuke.mindustry.resource.Item; import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Tile; +import io.anuke.mindustry.world.blocks.types.*; import io.anuke.ucore.core.Effects; import io.anuke.ucore.core.Timers; @@ -33,12 +34,20 @@ public class ProductionBlocks{ } }, + conduit = new Conduit("conduit"){{ + + }}, + + pump = new Pump("pump"){{ + + }}, + conveyor = new Conveyor("conveyor"){{ - update = true; + }}, steelconveyor = new Conveyor("steelconveyor"){{ - update = true; + health = 55; speed = 0.04f; formalName = "steel conveyor"; }}, diff --git a/core/src/io/anuke/mindustry/world/blocks/WeaponBlocks.java b/core/src/io/anuke/mindustry/world/blocks/WeaponBlocks.java index 449b6edf5a..0514487d73 100644 --- a/core/src/io/anuke/mindustry/world/blocks/WeaponBlocks.java +++ b/core/src/io/anuke/mindustry/world/blocks/WeaponBlocks.java @@ -4,6 +4,8 @@ import io.anuke.mindustry.entities.BulletType; import io.anuke.mindustry.resource.Item; import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Tile; +import io.anuke.mindustry.world.blocks.types.RepairTurret; +import io.anuke.mindustry.world.blocks.types.Turret; import io.anuke.ucore.core.Timers; import io.anuke.ucore.util.Mathf; @@ -14,7 +16,7 @@ public class WeaponBlocks{ { formalName = "turret"; range = 50; - reload = 10f; + reload = 15f; bullet = BulletType.stone; ammo = Item.stone; } @@ -97,6 +99,30 @@ public class WeaponBlocks{ } }, + //TODO + mortarturret = new Turret("mortarturret"){ + { + formalName = "flak turret"; + range = 120; + reload = 120f; + bullet = BulletType.sniper; + ammo = Item.coal; + health = 110; + } + }, + + //TODO + laserturret = new Turret("laserturret"){ + { + formalName = "laser turret"; + range = 60; + reload = 40f; + bullet = BulletType.sniper; + ammo = Item.coal; + health = 110; + } + }, + repairturret = new RepairTurret("repairturret"){ { formalName = "heal turret"; diff --git a/core/src/io/anuke/mindustry/world/blocks/types/Conduit.java b/core/src/io/anuke/mindustry/world/blocks/types/Conduit.java new file mode 100644 index 0000000000..31b2611100 --- /dev/null +++ b/core/src/io/anuke/mindustry/world/blocks/types/Conduit.java @@ -0,0 +1,99 @@ +package io.anuke.mindustry.world.blocks.types; + +import io.anuke.mindustry.entities.TileEntity; +import io.anuke.mindustry.resource.Liquid; +import io.anuke.mindustry.world.Block; +import io.anuke.mindustry.world.Tile; +import io.anuke.ucore.core.Draw; +import io.anuke.ucore.core.Timers; + +public class Conduit extends Block{ + protected float capacity = 10f; + protected float flowfactor = 4f; + + public Conduit(String name) { + super(name); + rotate = true; + update = true; + } + + @Override + public void draw(Tile tile){ + ConduitEntity entity = tile.entity(); + + Draw.rect(name() + "bottom", tile.worldx(), tile.worldy(), tile.rotation * 90); + if(entity.liquid != null && entity.amount > 0.01f){ + Draw.color(entity.liquid.color); + Draw.alpha(entity.amount / capacity); + Draw.rect("conduitliquid", tile.worldx(), tile.worldy(), tile.rotation * 90); + Draw.color(); + } + Draw.rect(name() + "top", tile.worldx(), tile.worldy(), tile.rotation * 90); + + } + + @Override + public TileEntity getEntity(){ + return new ConduitEntity(); + } + + @Override + public void update(Tile tile){ + ConduitEntity entity = tile.entity(); + + if(entity.amount > 0.01f && Timers.get(entity, "flow", 3)){ + tryMoveLiquid(tile, tile.getNearby()[tile.rotation]); + + entity.flowtime = 0f; + } + + } + + public void tryDumpLiquid(Tile tile){ + ConduitEntity entity = tile.entity(); + + if(entity.amount > 0.01f){ + tryMoveLiquid(tile, tile.getNearby()[tile.dump]); + tile.dump ++; + tile.dump %= 4; + } + } + + public void tryMoveLiquid(Tile tile, Tile next){ + ConduitEntity entity = tile.entity(); + + Liquid liquid = entity.liquid; + + if(next != null && next.block() instanceof Conduit && entity.amount > 0.01f){ + Conduit other = (Conduit)next.block(); + ConduitEntity otherentity = next.entity(); + + float flow = Math.min(other.capacity - otherentity.amount - 0.001f, Math.min(entity.amount/flowfactor, entity.amount)); + + if(flow <= 0f || entity.amount < flow) return; + + if(other.accept(next, tile, liquid, flow)){ + other.addLiquid(next, tile, liquid, flow); + entity.amount -= flow; + } + } + } + + public boolean accept(Tile tile, Tile source, Liquid liquid, float amount){ + ConduitEntity entity = tile.entity(); + + return entity.amount + amount < capacity && (entity.liquid == liquid || entity.amount <= 0.01f); + } + + public void addLiquid(Tile tile, Tile source, Liquid liquid, float amount){ + ConduitEntity entity = tile.entity(); + entity.liquid = liquid; + entity.amount += amount; + } + + static class ConduitEntity extends TileEntity{ + Liquid liquid; + float amount; + float flowtime; + } +} diff --git a/core/src/io/anuke/mindustry/world/blocks/Conveyor.java b/core/src/io/anuke/mindustry/world/blocks/types/Conveyor.java similarity index 96% rename from core/src/io/anuke/mindustry/world/blocks/Conveyor.java rename to core/src/io/anuke/mindustry/world/blocks/types/Conveyor.java index 2eba10bff1..df3edb912c 100644 --- a/core/src/io/anuke/mindustry/world/blocks/Conveyor.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/Conveyor.java @@ -1,4 +1,4 @@ -package io.anuke.mindustry.world.blocks; +package io.anuke.mindustry.world.blocks.types; import static io.anuke.mindustry.Vars.tilesize; @@ -18,7 +18,7 @@ import io.anuke.ucore.core.Timers; import io.anuke.ucore.util.Mathf; public class Conveyor extends Block{ - float speed = 0.02f; + protected float speed = 0.02f; protected Conveyor(String name) { super(name); @@ -26,6 +26,10 @@ public class Conveyor extends Block{ update = true; } + public boolean canReplace(Block other){ + return other instanceof Conveyor; + } + @Override public void draw(Tile tile){ ConveyorEntity entity = tile.entity(); diff --git a/core/src/io/anuke/mindustry/world/blocks/Crafter.java b/core/src/io/anuke/mindustry/world/blocks/types/Crafter.java similarity index 94% rename from core/src/io/anuke/mindustry/world/blocks/Crafter.java rename to core/src/io/anuke/mindustry/world/blocks/types/Crafter.java index d0c82ed780..060e1dc0d9 100644 --- a/core/src/io/anuke/mindustry/world/blocks/Crafter.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/Crafter.java @@ -1,4 +1,4 @@ -package io.anuke.mindustry.world.blocks; +package io.anuke.mindustry.world.blocks.types; import io.anuke.mindustry.resource.Item; import io.anuke.mindustry.world.Block; diff --git a/core/src/io/anuke/mindustry/world/blocks/Drill.java b/core/src/io/anuke/mindustry/world/blocks/types/Drill.java similarity index 92% rename from core/src/io/anuke/mindustry/world/blocks/Drill.java rename to core/src/io/anuke/mindustry/world/blocks/types/Drill.java index 2adc7e69e3..1930c61156 100644 --- a/core/src/io/anuke/mindustry/world/blocks/Drill.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/Drill.java @@ -1,4 +1,4 @@ -package io.anuke.mindustry.world.blocks; +package io.anuke.mindustry.world.blocks.types; import static io.anuke.mindustry.Vars.tilesize; @@ -44,7 +44,7 @@ public class Drill extends Block{ @Override public void drawOverlay(Tile tile){ - if(tile.floor() != resource){ + if(tile.floor() != resource && resource != null){ Draw.tcolor(Color.SCARLET); Draw.tscl(1 / 8f); Draw.text("Not on " + resource.name + " block!", tile.worldx(), tile.worldy() + tilesize); diff --git a/core/src/io/anuke/mindustry/world/blocks/types/Pump.java b/core/src/io/anuke/mindustry/world/blocks/types/Pump.java new file mode 100644 index 0000000000..19bdbac5b3 --- /dev/null +++ b/core/src/io/anuke/mindustry/world/blocks/types/Pump.java @@ -0,0 +1,39 @@ +package io.anuke.mindustry.world.blocks.types; + +import io.anuke.mindustry.resource.Liquid; +import io.anuke.mindustry.world.Tile; +import io.anuke.ucore.core.Draw; +import io.anuke.ucore.core.Timers; + +public class Pump extends Conduit{ + + public Pump(String name) { + super(name); + rotate = false; + } + + @Override + public boolean accept(Tile tile, Tile source, Liquid liquid, float amount){ + return false; + } + + @Override + public void draw(Tile tile){ + Draw.rect(name(), tile.worldx(), tile.worldy()); + } + + @Override + public void update(Tile tile){ + ConduitEntity entity = tile.entity(); + + if(Timers.get(tile, "pump", 10) && entity.amount < capacity){ + entity.liquid = Liquid.water; + entity.amount += 10f; + } + + if(Timers.get(tile, "dump", 1)){ + tryDumpLiquid(tile); + } + } + +} diff --git a/core/src/io/anuke/mindustry/world/blocks/RepairTurret.java b/core/src/io/anuke/mindustry/world/blocks/types/RepairTurret.java similarity index 97% rename from core/src/io/anuke/mindustry/world/blocks/RepairTurret.java rename to core/src/io/anuke/mindustry/world/blocks/types/RepairTurret.java index 993d3c2099..034d566e34 100644 --- a/core/src/io/anuke/mindustry/world/blocks/RepairTurret.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/RepairTurret.java @@ -1,4 +1,4 @@ -package io.anuke.mindustry.world.blocks; +package io.anuke.mindustry.world.blocks.types; import com.badlogic.gdx.math.MathUtils; diff --git a/core/src/io/anuke/mindustry/world/blocks/Turret.java b/core/src/io/anuke/mindustry/world/blocks/types/Turret.java similarity index 98% rename from core/src/io/anuke/mindustry/world/blocks/Turret.java rename to core/src/io/anuke/mindustry/world/blocks/types/Turret.java index 9716824440..8cc771fe15 100644 --- a/core/src/io/anuke/mindustry/world/blocks/Turret.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/Turret.java @@ -1,4 +1,4 @@ -package io.anuke.mindustry.world.blocks; +package io.anuke.mindustry.world.blocks.types; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; diff --git a/core/src/io/anuke/mindustry/world/blocks/types/Wall.java b/core/src/io/anuke/mindustry/world/blocks/types/Wall.java new file mode 100644 index 0000000000..d6eaf1ba0f --- /dev/null +++ b/core/src/io/anuke/mindustry/world/blocks/types/Wall.java @@ -0,0 +1,17 @@ +package io.anuke.mindustry.world.blocks.types; + +import io.anuke.mindustry.world.Block; + +public class Wall extends Block{ + + public Wall(String name) { + super(name); + solid = true; + update = true; + } + + public boolean canReplace(Block other){ + return other instanceof Wall; + } + +} diff --git a/desktop/gifexport/recording1505704320.gif b/desktop/gifexport/recording1505704320.gif new file mode 100644 index 0000000000..6b90c59aec Binary files /dev/null and b/desktop/gifexport/recording1505704320.gif differ