diff --git a/core/assets/maps/maze.png b/core/assets/maps/maze.png index 774cff12c5..eda20911bd 100644 Binary files a/core/assets/maps/maze.png and b/core/assets/maps/maze.png differ diff --git a/core/assets/maps/test.png b/core/assets/maps/test.png index 6677621317..2f49a602e1 100644 Binary files a/core/assets/maps/test.png and b/core/assets/maps/test.png differ diff --git a/core/assets/sprites/mindustry.atlas b/core/assets/sprites/mindustry.atlas index 2612cc4c24..aaf18f5303 100644 --- a/core/assets/sprites/mindustry.atlas +++ b/core/assets/sprites/mindustry.atlas @@ -1,12 +1,12 @@ mindustry.png -size: 256,32 +size: 512,32 format: RGBA8888 filter: Nearest,Nearest repeat: none block rotate: false - xy: 85, 11 + xy: 161, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -20,7 +20,7 @@ bossmech index: -1 bullet rotate: false - xy: 85, 1 + xy: 171, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -34,98 +34,98 @@ circle index: -1 coal1 rotate: false - xy: 97, 23 + xy: 181, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 coal2 rotate: false - xy: 107, 23 + xy: 191, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 coal3 rotate: false - xy: 117, 23 + xy: 201, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 coaldrill rotate: false - xy: 127, 23 + xy: 211, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 conveyor rotate: false - xy: 137, 23 + xy: 221, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 conveyormove rotate: false - xy: 147, 23 + xy: 231, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 core rotate: false - xy: 157, 23 + xy: 241, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 dirt1 rotate: false - xy: 167, 23 + xy: 251, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 dirt2 rotate: false - xy: 177, 23 + xy: 261, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 dirt3 rotate: false - xy: 187, 23 + xy: 271, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 dirtblock rotate: false - xy: 197, 23 + xy: 281, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 doubleturret rotate: false - xy: 37, 21 + xy: 51, 7 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 drill rotate: false - xy: 207, 23 + xy: 291, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 fastmech rotate: false - xy: 217, 23 + xy: 301, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -139,105 +139,126 @@ firemech index: -1 flameturret rotate: false - xy: 37, 9 + xy: 65, 21 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 furnace rotate: false - xy: 227, 23 + xy: 311, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 smelter rotate: false - xy: 227, 23 + xy: 311, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 -grass +grass1 rotate: false - xy: 237, 23 + xy: 321, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 +grass2 + rotate: false + xy: 331, 23 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +grass3 + rotate: false + xy: 341, 23 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +grassedge + rotate: false + xy: 37, 19 + size: 12, 12 + orig: 12, 12 + offset: 0, 0 + index: -1 icon-coal rotate: false - xy: 247, 23 + xy: 351, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 icon-iron rotate: false - xy: 98, 13 + xy: 361, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 icon-steel rotate: false - xy: 108, 13 + xy: 371, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 icon-stone rotate: false - xy: 118, 13 + xy: 381, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 iron1 rotate: false - xy: 128, 13 + xy: 391, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 iron2 rotate: false - xy: 138, 13 + xy: 401, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 iron3 rotate: false - xy: 148, 13 + xy: 411, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 irondrill rotate: false - xy: 158, 13 + xy: 421, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 ironwall rotate: false - xy: 168, 13 + xy: 431, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 junction rotate: false - xy: 178, 13 + xy: 441, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 laser rotate: false - xy: 95, 7 + xy: 63, 5 size: 1, 12 orig: 1, 12 offset: 0, 0 @@ -251,175 +272,238 @@ laserend index: -1 machineturret rotate: false - xy: 49, 21 + xy: 77, 21 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 mech1 rotate: false - xy: 188, 13 + xy: 451, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 megarepairturret rotate: false - xy: 49, 9 + xy: 89, 21 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 player rotate: false - xy: 198, 13 + xy: 461, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 repairturret rotate: false - xy: 61, 21 + xy: 101, 21 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 +rock + rotate: false + xy: 471, 23 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +rock2 + rotate: false + xy: 481, 23 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +rock2shadow + rotate: false + xy: 491, 23 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +rockshadow + rotate: false + xy: 501, 23 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 router rotate: false - xy: 208, 13 + xy: 66, 11 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 shadow rotate: false - xy: 61, 9 + xy: 113, 21 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 shotgunturret rotate: false - xy: 73, 21 + xy: 125, 21 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 sniperturret rotate: false - xy: 73, 9 + xy: 137, 21 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 steelconveyor rotate: false - xy: 218, 13 + xy: 66, 1 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 steelconveyormove rotate: false - xy: 228, 13 + xy: 76, 11 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 steelwall rotate: false - xy: 238, 13 + xy: 76, 1 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stone rotate: false - xy: 98, 3 - size: 8, 8 - orig: 8, 8 + xy: 37, 5 + size: 12, 12 + orig: 12, 12 + offset: 0, 0 + index: -1 +stoneedge + rotate: false + xy: 37, 5 + size: 12, 12 + orig: 12, 12 offset: 0, 0 index: -1 stone1 rotate: false - xy: 108, 3 + xy: 86, 11 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stone2 rotate: false - xy: 118, 3 + xy: 86, 1 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stone3 rotate: false - xy: 128, 3 + xy: 96, 11 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stoneblock rotate: false - xy: 138, 3 + xy: 96, 1 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +stoneblock2 + rotate: false + xy: 106, 11 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +stoneblock3 + rotate: false + xy: 106, 1 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stonedrill rotate: false - xy: 148, 3 + xy: 116, 11 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stonedrillhead rotate: false - xy: 148, 3 + xy: 116, 11 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stonewall rotate: false - xy: 158, 3 + xy: 116, 1 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 turret rotate: false - xy: 85, 21 + xy: 149, 21 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 +water + rotate: false + xy: 126, 11 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +wateredge + rotate: false + xy: 51, 19 + size: 12, 12 + orig: 12, 12 + offset: 0, 0 + index: -1 weapon-blaster rotate: false - xy: 168, 3 + xy: 126, 1 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 weapon-flamethrower rotate: false - xy: 178, 3 + xy: 136, 11 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 weapon-multigun rotate: false - xy: 188, 3 + xy: 136, 1 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 weapon-trishot rotate: false - xy: 198, 3 + xy: 146, 11 size: 8, 8 orig: 8, 8 offset: 0, 0 diff --git a/core/assets/sprites/mindustry.png b/core/assets/sprites/mindustry.png index 4a8fe94621..701b9ddd61 100644 Binary files a/core/assets/sprites/mindustry.png and b/core/assets/sprites/mindustry.png differ diff --git a/core/assets/ui/out/icon-arrow-down.png b/core/assets/ui/out/icon-arrow-down.png deleted file mode 100644 index f2d8a31be4..0000000000 Binary files a/core/assets/ui/out/icon-arrow-down.png and /dev/null differ diff --git a/core/assets/ui/out/icon-arrow-left.png b/core/assets/ui/out/icon-arrow-left.png deleted file mode 100644 index 6b09154e22..0000000000 Binary files a/core/assets/ui/out/icon-arrow-left.png and /dev/null differ diff --git a/core/assets/ui/out/icon-arrow-right.png b/core/assets/ui/out/icon-arrow-right.png deleted file mode 100644 index cd82e8422f..0000000000 Binary files a/core/assets/ui/out/icon-arrow-right.png and /dev/null differ diff --git a/core/assets/ui/out/icon-arrow-up.png b/core/assets/ui/out/icon-arrow-up.png deleted file mode 100644 index a87cf43249..0000000000 Binary files a/core/assets/ui/out/icon-arrow-up.png and /dev/null differ diff --git a/core/assets/ui/out/icon-copy.png b/core/assets/ui/out/icon-copy.png deleted file mode 100644 index a3fa5cdeb3..0000000000 Binary files a/core/assets/ui/out/icon-copy.png and /dev/null differ diff --git a/core/assets/ui/out/icon-cursor.png b/core/assets/ui/out/icon-cursor.png deleted file mode 100644 index 19d494f22e..0000000000 Binary files a/core/assets/ui/out/icon-cursor.png and /dev/null differ diff --git a/core/assets/ui/out/icon-defense.png b/core/assets/ui/out/icon-defense.png index eee954f186..d879ca6c44 100644 Binary files a/core/assets/ui/out/icon-defense.png and b/core/assets/ui/out/icon-defense.png differ diff --git a/core/assets/ui/out/icon-dots-down.png b/core/assets/ui/out/icon-dots-down.png deleted file mode 100644 index 3aeebb694a..0000000000 Binary files a/core/assets/ui/out/icon-dots-down.png and /dev/null differ diff --git a/core/assets/ui/out/icon-dots.png b/core/assets/ui/out/icon-dots.png deleted file mode 100644 index 84c19e8d40..0000000000 Binary files a/core/assets/ui/out/icon-dots.png and /dev/null differ diff --git a/core/assets/ui/out/icon-down.png b/core/assets/ui/out/icon-down.png deleted file mode 100644 index fffbf7e3a1..0000000000 Binary files a/core/assets/ui/out/icon-down.png and /dev/null differ diff --git a/core/assets/ui/out/icon-drive.png b/core/assets/ui/out/icon-drive.png deleted file mode 100644 index 06ad6dd8cf..0000000000 Binary files a/core/assets/ui/out/icon-drive.png and /dev/null differ diff --git a/core/assets/ui/out/icon-eraser.png b/core/assets/ui/out/icon-eraser.png deleted file mode 100644 index 6e3fec3e95..0000000000 Binary files a/core/assets/ui/out/icon-eraser.png and /dev/null differ diff --git a/core/assets/ui/out/icon-file-audio.png b/core/assets/ui/out/icon-file-audio.png deleted file mode 100644 index 8abc2e6c5a..0000000000 Binary files a/core/assets/ui/out/icon-file-audio.png and /dev/null differ diff --git a/core/assets/ui/out/icon-file-image.png b/core/assets/ui/out/icon-file-image.png deleted file mode 100644 index f543b4b093..0000000000 Binary files a/core/assets/ui/out/icon-file-image.png and /dev/null differ diff --git a/core/assets/ui/out/icon-file-pdf.png b/core/assets/ui/out/icon-file-pdf.png deleted file mode 100644 index 428b09acaa..0000000000 Binary files a/core/assets/ui/out/icon-file-pdf.png and /dev/null differ diff --git a/core/assets/ui/out/icon-file-text.png b/core/assets/ui/out/icon-file-text.png deleted file mode 100644 index d4730f545e..0000000000 Binary files a/core/assets/ui/out/icon-file-text.png and /dev/null differ diff --git a/core/assets/ui/out/icon-fill.png b/core/assets/ui/out/icon-fill.png deleted file mode 100644 index 7a9152b19f..0000000000 Binary files a/core/assets/ui/out/icon-fill.png and /dev/null differ diff --git a/core/assets/ui/out/icon-folder-new.png b/core/assets/ui/out/icon-folder-new.png deleted file mode 100644 index eac3222a98..0000000000 Binary files a/core/assets/ui/out/icon-folder-new.png and /dev/null differ diff --git a/core/assets/ui/out/icon-folder-parent.png b/core/assets/ui/out/icon-folder-parent.png deleted file mode 100644 index 36aa4ca1d6..0000000000 Binary files a/core/assets/ui/out/icon-folder-parent.png and /dev/null differ diff --git a/core/assets/ui/out/icon-folder-star.png b/core/assets/ui/out/icon-folder-star.png deleted file mode 100644 index 23673b8397..0000000000 Binary files a/core/assets/ui/out/icon-folder-star.png and /dev/null differ diff --git a/core/assets/ui/out/icon-folder.png b/core/assets/ui/out/icon-folder.png deleted file mode 100644 index 1aa5459864..0000000000 Binary files a/core/assets/ui/out/icon-folder.png and /dev/null differ diff --git a/core/assets/ui/out/icon-grid.png b/core/assets/ui/out/icon-grid.png deleted file mode 100644 index fb9cc50508..0000000000 Binary files a/core/assets/ui/out/icon-grid.png and /dev/null differ diff --git a/core/assets/ui/out/icon-home.png b/core/assets/ui/out/icon-home.png deleted file mode 100644 index d3d41816b2..0000000000 Binary files a/core/assets/ui/out/icon-home.png and /dev/null differ diff --git a/core/assets/ui/out/icon-list-settings.png b/core/assets/ui/out/icon-list-settings.png deleted file mode 100644 index 7265428155..0000000000 Binary files a/core/assets/ui/out/icon-list-settings.png and /dev/null differ diff --git a/core/assets/ui/out/icon-load-1.png b/core/assets/ui/out/icon-load-1.png deleted file mode 100644 index 13ca6f50c8..0000000000 Binary files a/core/assets/ui/out/icon-load-1.png and /dev/null differ diff --git a/core/assets/ui/out/icon-load-2.png b/core/assets/ui/out/icon-load-2.png deleted file mode 100644 index 22896d7007..0000000000 Binary files a/core/assets/ui/out/icon-load-2.png and /dev/null differ diff --git a/core/assets/ui/out/icon-load-3.png b/core/assets/ui/out/icon-load-3.png deleted file mode 100644 index fe5ec601a8..0000000000 Binary files a/core/assets/ui/out/icon-load-3.png and /dev/null differ diff --git a/core/assets/ui/out/icon-lock-open.png b/core/assets/ui/out/icon-lock-open.png deleted file mode 100644 index 144858d4d8..0000000000 Binary files a/core/assets/ui/out/icon-lock-open.png and /dev/null differ diff --git a/core/assets/ui/out/icon-lock.png b/core/assets/ui/out/icon-lock.png deleted file mode 100644 index 1fdda4f864..0000000000 Binary files a/core/assets/ui/out/icon-lock.png and /dev/null differ diff --git a/core/assets/ui/out/icon-minus.png b/core/assets/ui/out/icon-minus.png deleted file mode 100644 index 1c705fe896..0000000000 Binary files a/core/assets/ui/out/icon-minus.png and /dev/null differ diff --git a/core/assets/ui/out/icon-open-gray.png b/core/assets/ui/out/icon-open-gray.png deleted file mode 100644 index d2d1df62d6..0000000000 Binary files a/core/assets/ui/out/icon-open-gray.png and /dev/null differ diff --git a/core/assets/ui/out/icon-open.png b/core/assets/ui/out/icon-open.png deleted file mode 100644 index 4215ba24fd..0000000000 Binary files a/core/assets/ui/out/icon-open.png and /dev/null differ diff --git a/core/assets/ui/out/icon-pencil.png b/core/assets/ui/out/icon-pencil.png deleted file mode 100644 index 90b393ea97..0000000000 Binary files a/core/assets/ui/out/icon-pencil.png and /dev/null differ diff --git a/core/assets/ui/out/icon-pick.png b/core/assets/ui/out/icon-pick.png deleted file mode 100644 index 32c35af2f2..0000000000 Binary files a/core/assets/ui/out/icon-pick.png and /dev/null differ diff --git a/core/assets/ui/out/icon-plus.png b/core/assets/ui/out/icon-plus.png deleted file mode 100644 index 381dd1ae4f..0000000000 Binary files a/core/assets/ui/out/icon-plus.png and /dev/null differ diff --git a/core/assets/ui/out/icon-redo.png b/core/assets/ui/out/icon-redo.png deleted file mode 100644 index dbe1a32276..0000000000 Binary files a/core/assets/ui/out/icon-redo.png and /dev/null differ diff --git a/core/assets/ui/out/icon-refresh.png b/core/assets/ui/out/icon-refresh.png deleted file mode 100644 index eac6745c4e..0000000000 Binary files a/core/assets/ui/out/icon-refresh.png and /dev/null differ diff --git a/core/assets/ui/out/icon-rename.png b/core/assets/ui/out/icon-rename.png deleted file mode 100644 index 5c5cce3777..0000000000 Binary files a/core/assets/ui/out/icon-rename.png and /dev/null differ diff --git a/core/assets/ui/out/icon-star-outline.png b/core/assets/ui/out/icon-star-outline.png deleted file mode 100644 index 5ac6d6670e..0000000000 Binary files a/core/assets/ui/out/icon-star-outline.png and /dev/null differ diff --git a/core/assets/ui/out/icon-star.png b/core/assets/ui/out/icon-star.png deleted file mode 100644 index 882eeaa5eb..0000000000 Binary files a/core/assets/ui/out/icon-star.png and /dev/null differ diff --git a/core/assets/ui/out/icon-tap.png b/core/assets/ui/out/icon-tap.png deleted file mode 100644 index da623aa393..0000000000 Binary files a/core/assets/ui/out/icon-tap.png and /dev/null differ diff --git a/core/assets/ui/out/icon-trash.png b/core/assets/ui/out/icon-trash.png deleted file mode 100644 index cdf603b8ce..0000000000 Binary files a/core/assets/ui/out/icon-trash.png and /dev/null differ diff --git a/core/assets/ui/out/icon-undo.png b/core/assets/ui/out/icon-undo.png deleted file mode 100644 index dc056917f4..0000000000 Binary files a/core/assets/ui/out/icon-undo.png and /dev/null differ diff --git a/core/assets/ui/out/icon-up.png b/core/assets/ui/out/icon-up.png deleted file mode 100644 index 8f8d40ac06..0000000000 Binary files a/core/assets/ui/out/icon-up.png and /dev/null differ diff --git a/core/assets/ui/out/icon-zoom.png b/core/assets/ui/out/icon-zoom.png deleted file mode 100644 index 538b0b08f4..0000000000 Binary files a/core/assets/ui/out/icon-zoom.png and /dev/null differ diff --git a/core/assets/ui/uiskin.atlas b/core/assets/ui/uiskin.atlas index c88288f61f..e041fb39c8 100644 --- a/core/assets/ui/uiskin.atlas +++ b/core/assets/ui/uiskin.atlas @@ -1,19 +1,19 @@ uiskin.png -size: 1024,128 +size: 512,128 format: RGBA8888 filter: Nearest,Nearest repeat: none blank rotate: false - xy: 898, 76 + xy: 116, 2 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 border rotate: false - xy: 134, 2 + xy: 90, 3 size: 12, 12 split: 4, 4, 4, 4 orig: 12, 12 @@ -21,21 +21,21 @@ border index: -1 border-circle rotate: false - xy: 498, 64 + xy: 136, 12 size: 28, 28 orig: 28, 28 offset: 0, 0 index: -1 border-circle-error rotate: false - xy: 528, 64 + xy: 166, 10 size: 28, 28 orig: 28, 28 offset: 0, 0 index: -1 border-dark-blue rotate: false - xy: 648, 87 + xy: 84, 12 size: 3, 3 split: 1, 1, 1, 1 orig: 3, 3 @@ -43,7 +43,7 @@ border-dark-blue index: -1 border-error rotate: false - xy: 241, 41 + xy: 76, 54 size: 3, 3 split: 1, 1, 1, 1 orig: 3, 3 @@ -51,7 +51,7 @@ border-error index: -1 border-white rotate: false - xy: 120, 2 + xy: 367, 6 size: 12, 12 split: 4, 4, 4, 4 orig: 12, 12 @@ -67,7 +67,7 @@ bump index: -1 button rotate: false - xy: 991, 86 + xy: 327, 14 size: 24, 40 split: 10, 10, 8, 8 orig: 24, 40 @@ -75,7 +75,7 @@ button index: -1 button-blue rotate: false - xy: 705, 86 + xy: 223, 44 size: 24, 40 split: 10, 10, 10, 8 pad: 8, 8, 2, 2 @@ -84,7 +84,7 @@ button-blue index: -1 button-blue-down rotate: false - xy: 653, 86 + xy: 171, 40 size: 24, 40 split: 10, 10, 10, 8 pad: 8, 8, 2, 2 @@ -93,7 +93,7 @@ button-blue-down index: -1 button-blue-over rotate: false - xy: 679, 86 + xy: 197, 40 size: 24, 40 split: 10, 10, 10, 8 pad: 8, 8, 2, 2 @@ -102,7 +102,7 @@ button-blue-over index: -1 button-down rotate: false - xy: 731, 86 + xy: 249, 44 size: 24, 40 split: 10, 10, 8, 8 orig: 24, 40 @@ -110,7 +110,7 @@ button-down index: -1 button-gray rotate: false - xy: 783, 86 + xy: 301, 44 size: 24, 40 split: 10, 10, 10, 8 pad: 8, 8, 2, 2 @@ -119,7 +119,7 @@ button-gray index: -1 button-gray-over rotate: false - xy: 757, 86 + xy: 275, 44 size: 24, 40 split: 10, 10, 10, 8 pad: 8, 8, 2, 2 @@ -128,7 +128,7 @@ button-gray-over index: -1 button-map rotate: false - xy: 861, 86 + xy: 110, 20 size: 24, 40 split: 10, 10, 8, 8 orig: 24, 40 @@ -136,7 +136,7 @@ button-map index: -1 button-map-down rotate: false - xy: 809, 86 + xy: 58, 12 size: 24, 40 split: 10, 10, 8, 8 orig: 24, 40 @@ -144,7 +144,7 @@ button-map-down index: -1 button-map-over rotate: false - xy: 835, 86 + xy: 84, 20 size: 24, 40 split: 10, 10, 8, 8 orig: 24, 40 @@ -152,7 +152,7 @@ button-map-over index: -1 button-over rotate: false - xy: 887, 86 + xy: 223, 2 size: 24, 40 split: 10, 10, 8, 8 orig: 24, 40 @@ -160,7 +160,7 @@ button-over index: -1 button-red rotate: false - xy: 913, 86 + xy: 249, 2 size: 24, 40 split: 10, 10, 10, 8 pad: 8, 8, 2, 2 @@ -169,7 +169,7 @@ button-red index: -1 button-select rotate: false - xy: 138, 16 + xy: 196, 14 size: 24, 24 split: 4, 4, 4, 4 orig: 24, 24 @@ -177,7 +177,7 @@ button-select index: -1 button-window-bg rotate: false - xy: 939, 86 + xy: 275, 2 size: 24, 40 split: 10, 10, 10, 8 pad: 8, 8, 2, 2 @@ -186,7 +186,7 @@ button-window-bg index: -1 button-window-over rotate: false - xy: 965, 86 + xy: 301, 2 size: 24, 40 split: 10, 10, 10, 8 pad: 8, 8, 2, 2 @@ -195,77 +195,77 @@ button-window-over index: -1 check-off rotate: false - xy: 503, 94 + xy: 353, 31 size: 28, 32 orig: 28, 32 offset: 0, 0 index: -1 check-on rotate: false - xy: 533, 94 + xy: 383, 31 size: 28, 32 orig: 28, 32 offset: 0, 0 index: -1 check-over rotate: false - xy: 563, 94 + xy: 413, 31 size: 28, 32 orig: 28, 32 offset: 0, 0 index: -1 clear rotate: false - xy: 634, 62 + xy: 327, 2 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 color-picker-bar-selector rotate: false - xy: 618, 60 + xy: 327, 56 size: 14, 28 orig: 14, 28 offset: 0, 0 index: -1 color-picker-cross rotate: false - xy: 648, 74 + xy: 339, 2 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 color-picker-selector-horizontal rotate: false - xy: 335, 83 + xy: 76, 59 size: 6, 1 orig: 6, 1 offset: 0, 0 index: -1 color-picker-selector-vertical rotate: false - xy: 1017, 86 + xy: 220, 6 size: 1, 6 orig: 1, 6 offset: 0, 0 index: -1 cursor rotate: false - xy: 76, 56 + xy: 136, 56 size: 4, 4 orig: 4, 4 offset: 0, 0 index: -1 cursor-normal rotate: false - xy: 646, 62 + xy: 196, 2 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 default-pane rotate: false - xy: 164, 37 + xy: 466, 77 size: 5, 3 split: 1, 1, 1, 1 orig: 5, 3 @@ -273,7 +273,7 @@ default-pane index: -1 default-pane-no-border rotate: false - xy: 498, 94 + xy: 118, 17 size: 1, 1 split: 0, 0, 0, 0 orig: 1, 1 @@ -289,7 +289,7 @@ default-select index: -1 default-select-selection rotate: false - xy: 898, 71 + xy: 116, 12 size: 3, 3 split: 1, 1, 1, 1 orig: 3, 3 @@ -297,46 +297,18 @@ default-select-selection index: -1 grey rotate: false - xy: 340, 80 + xy: 509, 23 size: 1, 1 orig: 1, 1 offset: 0, 0 index: -1 menu-bg rotate: false - xy: 340, 80 + xy: 509, 23 size: 1, 1 orig: 1, 1 offset: 0, 0 index: -1 -icon-arrow-down - rotate: false - xy: 660, 74 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 -icon-arrow-left - rotate: false - xy: 658, 62 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 -icon-arrow-right - rotate: false - xy: 672, 74 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 -icon-arrow-up - rotate: false - xy: 670, 62 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 icon-close rotate: false xy: 217, 86 @@ -358,317 +330,37 @@ icon-close-over orig: 40, 40 offset: 0, 0 index: -1 -icon-copy - rotate: false - xy: 684, 74 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 -icon-cursor - rotate: false - xy: 682, 62 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 icon-defense rotate: false - xy: 696, 74 + xy: 208, 2 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-distribution rotate: false - xy: 694, 62 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 -icon-dots - rotate: false - xy: 708, 74 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 -icon-dots-down - rotate: false - xy: 706, 62 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 -icon-down - rotate: false - xy: 720, 74 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 -icon-drive - rotate: false - xy: 82, 4 - size: 36, 10 - orig: 36, 10 - offset: 0, 0 - index: -1 -icon-eraser - rotate: false - xy: 718, 62 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 -icon-file-audio - rotate: false - xy: 593, 90 - size: 28, 36 - orig: 28, 36 - offset: 0, 0 - index: -1 -icon-file-image - rotate: false - xy: 219, 54 - size: 26, 30 - orig: 26, 30 - offset: 0, 0 - index: -1 -icon-file-pdf - rotate: false - xy: 623, 92 - size: 28, 34 - orig: 28, 34 - offset: 0, 0 - index: -1 -icon-file-text - rotate: false - xy: 732, 74 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 -icon-fill - rotate: false - xy: 730, 62 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 -icon-folder - rotate: false - xy: 744, 74 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 -icon-folder-new - rotate: false - xy: 466, 97 - size: 35, 29 - orig: 35, 29 - offset: 0, 0 - index: -1 -icon-folder-parent - rotate: false - xy: 742, 62 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 -icon-folder-star - rotate: false - xy: 430, 66 - size: 34, 26 - orig: 34, 26 - offset: 0, 0 - index: -1 -icon-grid - rotate: false - xy: 756, 74 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 -icon-home - rotate: false - xy: 754, 62 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 -icon-list-settings - rotate: false - xy: 171, 46 - size: 38, 34 - orig: 38, 34 - offset: 0, 0 - index: -1 -icon-load-1 - rotate: false - xy: 768, 74 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 -icon-load-2 - rotate: false - xy: 766, 62 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 -icon-load-3 - rotate: false - xy: 780, 74 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 -icon-lock - rotate: false - xy: 778, 62 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 -icon-lock-open - rotate: false - xy: 792, 74 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 -icon-minus - rotate: false - xy: 790, 62 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 -icon-open - rotate: false - xy: 804, 74 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 -icon-open-gray - rotate: false - xy: 802, 62 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 -icon-pencil - rotate: false - xy: 816, 74 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 -icon-pick - rotate: false - xy: 814, 62 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 -icon-plus - rotate: false - xy: 828, 74 + xy: 104, 5 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-production rotate: false - xy: 826, 62 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 -icon-redo - rotate: false - xy: 840, 74 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 -icon-refresh - rotate: false - xy: 247, 54 - size: 26, 30 - orig: 26, 30 - offset: 0, 0 - index: -1 -icon-rename - rotate: false - xy: 838, 62 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 -icon-star - rotate: false - xy: 466, 67 - size: 30, 28 - orig: 30, 28 - offset: 0, 0 - index: -1 -icon-star-outline - rotate: false - xy: 430, 94 - size: 34, 32 - orig: 34, 32 - offset: 0, 0 - index: -1 -icon-tap - rotate: false - xy: 852, 74 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 -icon-trash - rotate: false - xy: 850, 62 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 -icon-undo - rotate: false - xy: 864, 74 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 -icon-up - rotate: false - xy: 862, 62 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 -icon-zoom - rotate: false - xy: 876, 74 + xy: 389, 19 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 list-selection rotate: false - xy: 78, 2 + xy: 220, 3 size: 1, 1 orig: 1, 1 offset: 0, 0 index: -1 padded-list-selection rotate: false - xy: 58, 5 + xy: 104, 2 size: 10, 1 split: 4, 4, 0, 1 orig: 10, 1 @@ -676,49 +368,49 @@ padded-list-selection index: -1 progressbar rotate: false - xy: 1017, 94 + xy: 503, 22 size: 1, 32 orig: 1, 32 offset: 0, 0 index: -1 progressbar-filled rotate: false - xy: 1020, 94 + xy: 506, 22 size: 1, 32 orig: 1, 32 offset: 0, 0 index: -1 progressbar-filled-vertical rotate: false - xy: 207, 43 + xy: 84, 17 size: 32, 1 orig: 32, 1 offset: 0, 0 index: -1 progressbar-vertical rotate: false - xy: 207, 40 + xy: 353, 20 size: 32, 1 orig: 32, 1 offset: 0, 0 index: -1 radio-off rotate: false - xy: 558, 64 + xy: 443, 44 size: 28, 28 orig: 28, 28 offset: 0, 0 index: -1 radio-on rotate: false - xy: 588, 60 + xy: 473, 52 size: 28, 28 orig: 28, 28 offset: 0, 0 index: -1 scroll rotate: false - xy: 171, 38 + xy: 430, 74 size: 34, 6 split: 4, 4, 2, 2 orig: 34, 6 @@ -726,7 +418,7 @@ scroll index: -1 scroll-horizontal rotate: false - xy: 130, 26 + xy: 502, 92 size: 6, 34 split: 2, 2, 0, 34 pad: 0, 5, 5, 4 @@ -735,7 +427,7 @@ scroll-horizontal index: -1 scroll-knob-horizontal rotate: false - xy: 211, 46 + xy: 503, 56 size: 6, 34 split: 2, 2, 0, 34 pad: 0, 5, 13, 12 @@ -744,7 +436,7 @@ scroll-knob-horizontal index: -1 scroll-knob-vertical rotate: false - xy: 219, 46 + xy: 353, 23 size: 34, 6 split: 12, 12, 2, 2 orig: 34, 6 @@ -752,98 +444,98 @@ scroll-knob-vertical index: -1 select-box-list-bg rotate: false - xy: 340, 77 + xy: 466, 74 size: 1, 1 orig: 1, 1 offset: 0, 0 index: -1 window-bg rotate: false - xy: 340, 77 + xy: 466, 74 size: 1, 1 orig: 1, 1 offset: 0, 0 index: -1 select-down rotate: false - xy: 148, 6 + xy: 58, 2 size: 14, 8 orig: 14, 8 offset: 0, 0 index: -1 select-up rotate: false - xy: 255, 44 + xy: 74, 2 size: 14, 8 orig: 14, 8 offset: 0, 0 index: -1 selection rotate: false - xy: 588, 91 + xy: 81, 56 size: 1, 1 orig: 1, 1 offset: 0, 0 index: -1 separator rotate: false - xy: 148, 3 + xy: 121, 12 size: 1, 1 orig: 1, 1 offset: 0, 0 index: -1 tree-over rotate: false - xy: 148, 3 + xy: 121, 12 size: 1, 1 orig: 1, 1 offset: 0, 0 index: -1 separator-menu rotate: false - xy: 271, 51 + xy: 469, 74 size: 1, 1 orig: 1, 1 offset: 0, 0 index: -1 slider rotate: false - xy: 130, 16 + xy: 509, 46 size: 1, 8 orig: 1, 8 offset: 0, 0 index: -1 slider-knob rotate: false - xy: 58, 8 + xy: 430, 82 size: 22, 44 orig: 22, 44 offset: 0, 0 index: -1 slider-knob-disabled rotate: false - xy: 82, 16 + xy: 454, 82 size: 22, 44 orig: 22, 44 offset: 0, 0 index: -1 slider-knob-down rotate: false - xy: 106, 16 + xy: 478, 82 size: 22, 44 orig: 22, 44 offset: 0, 0 index: -1 slider-knob-over rotate: false - xy: 106, 16 + xy: 478, 82 size: 22, 44 orig: 22, 44 offset: 0, 0 index: -1 slider-vertical rotate: false - xy: 58, 2 + xy: 343, 62 size: 8, 1 orig: 8, 1 offset: 0, 0 @@ -858,42 +550,42 @@ slot index: -1 splitpane rotate: false - xy: 68, 2 + xy: 343, 59 size: 8, 1 orig: 8, 1 offset: 0, 0 index: -1 splitpane-over rotate: false - xy: 70, 5 + xy: 343, 56 size: 8, 1 orig: 8, 1 offset: 0, 0 index: -1 splitpane-vertical rotate: false - xy: 133, 16 + xy: 509, 36 size: 1, 8 orig: 1, 8 offset: 0, 0 index: -1 splitpane-vertical-over rotate: false - xy: 138, 52 + xy: 509, 26 size: 1, 8 orig: 1, 8 offset: 0, 0 index: -1 sub-menu rotate: false - xy: 888, 70 + xy: 126, 4 size: 8, 14 orig: 8, 14 offset: 0, 0 index: -1 textfield rotate: false - xy: 305, 56 + xy: 473, 22 size: 28, 28 split: 6, 6, 6, 6 orig: 28, 28 @@ -901,7 +593,7 @@ textfield index: -1 textfield-over rotate: false - xy: 275, 56 + xy: 443, 14 size: 28, 28 split: 2, 2, 2, 2 orig: 28, 28 @@ -909,7 +601,7 @@ textfield-over index: -1 tooltip-bg rotate: false - xy: 908, 81 + xy: 121, 15 size: 3, 3 split: 1, 1, 1, 1 orig: 3, 3 @@ -924,21 +616,21 @@ touchpad-knob index: -1 tree-minus rotate: false - xy: 874, 62 + xy: 401, 19 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 tree-plus rotate: false - xy: 634, 74 + xy: 353, 2 size: 12, 16 orig: 12, 16 offset: 0, 0 index: -1 tree-selection rotate: false - xy: 164, 32 + xy: 430, 69 size: 3, 3 split: 1, 1, 1, 1 orig: 3, 3 @@ -946,7 +638,7 @@ tree-selection index: -1 white rotate: false - xy: 335, 78 + xy: 473, 17 size: 3, 3 orig: 3, 3 offset: 0, 0 @@ -961,7 +653,7 @@ window index: -1 window-border-bg rotate: false - xy: 246, 41 + xy: 136, 7 size: 3, 3 split: 1, 1, 1, 1 orig: 3, 3 diff --git a/core/assets/ui/uiskin.json b/core/assets/ui/uiskin.json index ea3db6d49a..0308800aa4 100644 --- a/core/assets/ui/uiskin.json +++ b/core/assets/ui/uiskin.json @@ -19,7 +19,7 @@ com.badlogic.gdx.graphics.Color: { menuitem: {a: 1, b: 0.65, g: 0.65, r: 0.65 }, link-label: {a: 1, b: 0.886, g: 0.631, r: 0.105 } }, -io.anuke.ucore.scene.style.Styles$TintedDrawable: { +io.anuke.ucore.scene.Skin$TintedDrawable: { dialogDim: {name: white, color: {r: 0, g: 0, b: 0, a: 0.45} } }, io.anuke.ucore.scene.ui.Button$ButtonStyle: { diff --git a/core/assets/ui/uiskin.png b/core/assets/ui/uiskin.png index 21611d8d06..3b83a255ca 100644 Binary files a/core/assets/ui/uiskin.png and b/core/assets/ui/uiskin.png differ diff --git a/core/src/io/anuke/mindustry/EffectLoader.java b/core/src/io/anuke/mindustry/EffectLoader.java index e95209acac..55519fe7f6 100644 --- a/core/src/io/anuke/mindustry/EffectLoader.java +++ b/core/src/io/anuke/mindustry/EffectLoader.java @@ -15,56 +15,56 @@ public class EffectLoader{ Effect.create("place", 16, e -> { Draw.thickness(3f - e.ifract() * 2f); Draw.square(e.x, e.y, tilesize / 2f + e.ifract() * 3f); - Draw.clear(); + Draw.reset(); }); Effect.create("spark", 10, e -> { Draw.thickness(1f); Draw.color(Hue.mix(Color.WHITE, Color.GRAY, e.ifract())); Draw.spikes(e.x, e.y, e.ifract() * 5f, 2, 8); - Draw.clear(); + Draw.reset(); }); Effect.create("smelt", 10, e -> { Draw.thickness(1f); Draw.color(Hue.mix(Color.YELLOW, Color.RED, e.ifract())); Draw.spikes(e.x, e.y, e.ifract() * 5f, 2, 8); - Draw.clear(); + Draw.reset(); }); Effect.create("break", 12, e -> { Draw.thickness(2f); Draw.color(Color.WHITE, Color.GRAY, e.ifract()); Draw.spikes(e.x, e.y, e.ifract() * 5f, 2, 5); - Draw.clear(); + Draw.reset(); }); Effect.create("hit", 10, e -> { Draw.thickness(1f); Draw.color(Hue.mix(Color.WHITE, Color.ORANGE, e.ifract())); Draw.spikes(e.x, e.y, e.ifract() * 3f, 2, 8); - Draw.clear(); + Draw.reset(); }); Effect.create("shoot", 8, e -> { Draw.thickness(1f); Draw.color(Hue.mix(Color.WHITE, Color.GOLD, e.ifract())); Draw.spikes(e.x, e.y, e.ifract() * 2f, 2, 5); - Draw.clear(); + Draw.reset(); }); Effect.create("shoot2", 8, e -> { Draw.thickness(1f); Draw.color(Hue.mix(Color.WHITE, Color.SKY, e.ifract())); Draw.spikes(e.x, e.y, e.ifract() * 2f, 1, 5); - Draw.clear(); + Draw.reset(); }); Effect.create("shoot3", 8, e -> { Draw.thickness(1f); Draw.color(Hue.mix(Color.WHITE, Color.GOLD, e.ifract())); Draw.spikes(e.x, e.y, e.ifract() * 2f, 1, 5); - Draw.clear(); + Draw.reset(); }); Effect.create("explosion", 15, e -> { @@ -72,7 +72,7 @@ public class EffectLoader{ Draw.color(Hue.mix(Color.ORANGE, Color.GRAY, e.ifract())); Draw.spikes(e.x, e.y, 2f + e.ifract() * 3f, 4, 6); Draw.circle(e.x, e.y, 3f + e.ifract() * 3f); - Draw.clear(); + Draw.reset(); }); Effect.create("coreexplosion", 13, e -> { @@ -80,21 +80,21 @@ public class EffectLoader{ Draw.color(Hue.mix(Color.ORANGE, Color.WHITE, e.ifract())); Draw.spikes(e.x, e.y, 5f + e.ifract() * 40f, 6, 6); Draw.circle(e.x, e.y, 4f + e.ifract() * 40f); - Draw.clear(); + Draw.reset(); }); Effect.create("spawn", 23, e -> { Draw.thickness(2f); Draw.color(Hue.mix(Color.DARK_GRAY, Color.SCARLET, e.ifract())); Draw.circle(e.x, e.y, 7f - e.ifract() * 6f); - Draw.clear(); + Draw.reset(); }); Effect.create("ind", 100, e -> { Draw.thickness(3f); Draw.color("royal"); Draw.circle(e.x, e.y, 3); - Draw.clear(); + Draw.reset(); }); Effect.create("respawn", respawnduration, e -> { @@ -102,7 +102,7 @@ public class EffectLoader{ Draw.tscl(0.25f); Draw.text("Respawning in " + (int)((e.lifetime-e.time)/60), e.x, e.y); Draw.tscl(0.5f); - Draw.clear(); + Draw.reset(); }); } } diff --git a/core/src/io/anuke/mindustry/Input.java b/core/src/io/anuke/mindustry/Input.java index cb0cb9c461..b46d97d770 100644 --- a/core/src/io/anuke/mindustry/Input.java +++ b/core/src/io/anuke/mindustry/Input.java @@ -94,12 +94,12 @@ public class Input{ Tile cursor = World.cursorTile(); //block breaking - if(Inputs.buttonDown(Buttons.RIGHT) && World.cursorNear() && cursor.artifical() + if(Inputs.buttonDown(Buttons.RIGHT) && World.cursorNear() && cursor.breakable() && cursor.block() != ProductionBlocks.core){ Tile tile = cursor; breaktime += Mathf.delta(); - if(breaktime >= breakduration){ - Effects.effect("break", tile.entity); + if(breaktime >= tile.block().breaktime){ + Effects.effect("break", tile.worldx(), tile.worldy()); Effects.shake(3f, 1f); tile.setBlock(Blocks.air); breaktime = 0f; diff --git a/core/src/io/anuke/mindustry/Renderer.java b/core/src/io/anuke/mindustry/Renderer.java index f996a98fc5..fe59511f49 100644 --- a/core/src/io/anuke/mindustry/Renderer.java +++ b/core/src/io/anuke/mindustry/Renderer.java @@ -17,19 +17,62 @@ import io.anuke.ucore.core.Inputs; import io.anuke.ucore.entities.DestructibleEntity; import io.anuke.ucore.entities.Entities; import io.anuke.ucore.entities.Entity; +import io.anuke.ucore.graphics.Cache; +import io.anuke.ucore.graphics.Caches; import io.anuke.ucore.scene.utils.Cursors; +import io.anuke.ucore.util.GridMap; import io.anuke.ucore.util.Mathf; import io.anuke.ucore.util.Timers; public class Renderer{ + private static int chunksize = 32; + private static GridMap caches = new GridMap<>(); public static void renderTiles(){ - Draw.clear(); + int chunksx = World.width()/chunksize, chunksy = World.height()/chunksize; + + //render the entire map + if(caches.size() == 0){ + + for(int cx = 0; cx < chunksx; cx ++){ + for(int cy = 0; cy < chunksy; cy ++){ + Caches.begin(); + + for(int tilex = cx*chunksize; tilex < (cx+1)*chunksize; tilex++){ + for(int tiley = cy*chunksize; tiley < (cy+1)*chunksize; tiley++){ + World.tile(tilex, tiley).floor().drawCache(World.tile(tilex, tiley)); + } + } + + caches.put(cx, cy, Caches.end()); + } + } + } + OrthographicCamera camera = control.camera; + + Draw.end(); + + int crangex = (int)(camera.viewportWidth/(chunksize*tilesize)); + int crangey = (int)(camera.viewportHeight/(chunksize*tilesize))+1; + + for(int x = -crangex; x <= crangex; x++){ + for(int y = -crangey; y <= crangey; y++){ + int worldx = Mathf.scl(camera.position.x, chunksize*tilesize) + x; + int worldy = Mathf.scl(camera.position.y, chunksize*tilesize) + y; + + if(caches.containsKey(worldx, worldy)) + caches.get(worldx, worldy).render(); + } + } + + Draw.begin(); + + Draw.reset(); int rangex = control.rangex, rangey = control.rangey; for(int l = 0; l < 4; l++){ - if(l == 1){ + if(l == 0){ Draw.surface("shadow"); } @@ -40,11 +83,11 @@ public class Renderer{ if(Mathf.inBounds(worldx, worldy, tiles)){ Tile tile = tiles[worldx][worldy]; - if(l == 1){ + if(l == 0){ if(tile.block() != Blocks.air) - Draw.rect("shadow", worldx * tilesize, worldy * tilesize); - }else if(l == 0 || l == 2){ - (l == 0 ? tile.floor() : tile.block()).draw(tile); + Draw.rect(tile.block().shadow, worldx * tilesize, worldy * tilesize); + }else if(l == 1){ + tile.block().draw(tile); }else{ tile.block().drawOver(tile); } @@ -52,7 +95,7 @@ public class Renderer{ } } - if(l == 1){ + if(l == 0){ Draw.color(0, 0, 0, 0.15f); Draw.flushSurface(); Draw.color(); @@ -89,16 +132,16 @@ public class Renderer{ else Cursors.restoreCursor(); - Draw.clear(); + Draw.reset(); } //block breaking if(Inputs.buttonDown(Buttons.RIGHT) && World.cursorNear()){ Tile tile = World.cursorTile(); - if(tile.artifical() && tile.block() != ProductionBlocks.core){ - Draw.color(Color.YELLOW, Color.SCARLET, breaktime / breakduration); + if(tile.breakable() && tile.block() != ProductionBlocks.core){ + Draw.color(Color.YELLOW, Color.SCARLET, breaktime / tile.block().breaktime); Draw.square(tile.worldx(), tile.worldy(), 4); - Draw.clear(); + Draw.reset(); } } @@ -148,6 +191,6 @@ public class Renderer{ Draw.color(Color.RED); if(w >= 1) Draw.line(x - len + 1, y - offset, x - len + w, y - offset); - Draw.clear(); + Draw.reset(); } } diff --git a/core/src/io/anuke/mindustry/UI.java b/core/src/io/anuke/mindustry/UI.java index 414d553924..a60f2e0b89 100644 --- a/core/src/io/anuke/mindustry/UI.java +++ b/core/src/io/anuke/mindustry/UI.java @@ -1,12 +1,16 @@ package io.anuke.mindustry; import static io.anuke.mindustry.Vars.*; +import static io.anuke.ucore.scene.actions.Actions.*; import java.util.function.BooleanSupplier; +import com.badlogic.gdx.Application.ApplicationType; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.g2d.Batch; +import com.badlogic.gdx.math.Interpolation; +import com.badlogic.gdx.utils.Align; import com.badlogic.gdx.utils.Array; import io.anuke.mindustry.entities.Weapon; @@ -18,8 +22,8 @@ import io.anuke.ucore.graphics.Hue; import io.anuke.ucore.graphics.Textures; import io.anuke.ucore.modules.SceneModule; import io.anuke.ucore.scene.Scene; +import io.anuke.ucore.scene.actions.Actions; import io.anuke.ucore.scene.builders.*; -import io.anuke.ucore.scene.style.Styles; import io.anuke.ucore.scene.ui.*; import io.anuke.ucore.scene.ui.layout.Stack; import io.anuke.ucore.scene.ui.layout.Table; @@ -40,7 +44,20 @@ public class UI extends SceneModule{ }; public UI() { - Styles.styles.font().setUseIntegerPositions(false); + Dialog.setShowAction(()->{ + return sequence(Actions.moveToAligned(Gdx.graphics.getWidth()/2, Gdx.graphics.getHeight(), Align.center), + parallel(Actions.moveToAligned(Gdx.graphics.getWidth()/2, Gdx.graphics.getHeight()/2, Align.center, 0.09f, Interpolation.fade), + + Actions.fadeIn(0.09f, Interpolation.fade))); + }); + + Dialog.setHideAction(()->{ + return sequence( + parallel(Actions.moveBy(0, -Gdx.graphics.getHeight()/2, 0.08f, Interpolation.fade), + Actions.fadeOut(0.08f, Interpolation.fade))); + }); + + skin.font().setUseIntegerPositions(false); TooltipManager.getInstance().animations = false; Dialog.closePadR = -1; @@ -59,7 +76,7 @@ public class UI extends SceneModule{ Draw.color(Hue.lightness(0.6f)); - int tw = w/64+1;//, th = h/64+1; + int tw = w/64+1; batch.draw(Textures.get("back"), 0, 0, 0, 0, w, h); @@ -67,11 +84,6 @@ public class UI extends SceneModule{ batch.draw(Textures.get("conveyort"), x*64, 0, 0, (int)(Timers.time()*2*(x%2-0.5f)), 32, h); } - //for(int y = 0; y < th; y ++){ - // batch.draw(Textures.get("conveyor"), 0, y*64, (int)(Timers.time()*2*(y%2-0.5f)), 0, w, 32); - //} - - Draw.color(); Draw.tscl(1.5f); @@ -173,17 +185,17 @@ public class UI extends SceneModule{ maxcol = Math.max((int)((float)recipes.size/rows+1), maxcol); } - for(Section sec : Section.values()){ recipes.clear(); Recipe.getBy(sec, recipes); ImageButton button = new ImageButton("icon-"+sec.name(), "toggle"); - add(button).size(size).height(size+8); + add(button).fill().height(54).padTop(-10); button.getImageCell().size(40).padBottom(4); group.add(button); Table table = new Table(); + table.pad(4); int i = 0; @@ -265,6 +277,9 @@ public class UI extends SceneModule{ add(stack).colspan(3); get().pad(10f); + get().padLeft(0f); + get().padRight(0f); + end(); }}.right().bottom().uniformX(); @@ -350,28 +365,39 @@ public class UI extends SceneModule{ //menu table new table(){{ float w = 200; + + new table("button"){{ + new button("Play", () -> { + levels.show(); + }).width(w); - new button("Play", () -> { - levels.show(); - }).width(w); + row(); - row(); + new button("Settings", () -> { + prefs.show(scene); + }).width(w); - new button("Settings", () -> { - prefs.show(scene); - }).width(w); + row(); - row(); + new button("Controls", () -> { + keys.show(scene); + }).width(w); - new button("Controls", () -> { - keys.show(scene); - }).width(w); + row(); - row(); - - new button("About", () -> { - about.show(scene); - }).width(w); + new button("About", () -> { + about.show(scene); + }).width(w); + + row(); + + if(Gdx.app.getType() != ApplicationType.WebGL) + new button("Exit", () -> { + Gdx.app.exit(); + }).width(w); + + get().pad(20); + }}; get().setVisible(nplay); }}.end(); diff --git a/core/src/io/anuke/mindustry/Vars.java b/core/src/io/anuke/mindustry/Vars.java index 5e389e64ce..78255ac92c 100644 --- a/core/src/io/anuke/mindustry/Vars.java +++ b/core/src/io/anuke/mindustry/Vars.java @@ -18,7 +18,6 @@ public class Vars{ public static final float respawnduration = 60*4; public static final float wavespace = 20*60; public static final float enemyspawnspace = 65; - public static final float breakduration = 30; public static boolean debug = false; public static final Vector2 vector = new Vector2(); @@ -36,7 +35,7 @@ public class Vars{ public static float breaktime = 0; - public static final String[] maps = {"delta", "canyon", "pit", "maze"}; + public static final String[] maps = {"delta", "canyon", "pit", "maze", "test"}; public static Pixmap[] mapPixmaps; public static Texture[] mapTextures; public static int currentMap; diff --git a/core/src/io/anuke/mindustry/World.java b/core/src/io/anuke/mindustry/World.java index 5f0ae0fe42..c940c3bf2a 100644 --- a/core/src/io/anuke/mindustry/World.java +++ b/core/src/io/anuke/mindustry/World.java @@ -28,6 +28,14 @@ public class World{ return tile == null || tile.block().solid; } + public static int width(){ + return Vars.mapPixmaps[Vars.currentMap].getWidth(); + } + + public static int height(){ + return Vars.mapPixmaps[Vars.currentMap].getHeight(); + } + public static Tile tile(int x, int y){ if(!Mathf.inBounds(x, y, tiles)) return null; return tiles[x][y]; diff --git a/core/src/io/anuke/mindustry/ai/MHueristic.java b/core/src/io/anuke/mindustry/ai/MHueristic.java index 793789d90e..48e8aa2ba7 100644 --- a/core/src/io/anuke/mindustry/ai/MHueristic.java +++ b/core/src/io/anuke/mindustry/ai/MHueristic.java @@ -14,8 +14,8 @@ public class MHueristic implements Heuristic{ float cost = Math.abs(node.worldx() - other.worldx()) + Math.abs(node.worldy() - other.worldy()); //TODO balance multiplier - if(node.artifical() && node.block().solid) cost += Vars.tilesize*multiplier; - if(other.artifical() && other.block().solid) cost += Vars.tilesize*multiplier; + if(node.breakable() && node.block().solid) cost += Vars.tilesize*multiplier; + if(other.breakable() && other.block().solid) cost += Vars.tilesize*multiplier; return cost; } diff --git a/core/src/io/anuke/mindustry/entities/BulletType.java b/core/src/io/anuke/mindustry/entities/BulletType.java index 7a658fbc6f..eba69d8645 100644 --- a/core/src/io/anuke/mindustry/entities/BulletType.java +++ b/core/src/io/anuke/mindustry/entities/BulletType.java @@ -13,28 +13,28 @@ public abstract class BulletType extends BaseBulletType{ public void draw(Bullet b){ Draw.color("gray"); Draw.square(b.x, b.y, 1f); - Draw.clear(); + Draw.reset(); } }, iron = new BulletType(1.7f, 2){ public void draw(Bullet b){ Draw.color("gray"); Draw.rect("bullet", b.x, b.y, b.angle()); - Draw.clear(); + Draw.reset(); } }, sniper = new BulletType(3f, 20){ public void draw(Bullet b){ Draw.color("lightgray"); Draw.rect("bullet", b.x, b.y, b.angle()); - Draw.clear(); + Draw.reset(); } }, small = new BulletType(1.5f, 1){ public void draw(Bullet b){ Draw.color("orange"); Draw.rect("bullet", b.x, b.y, b.angle()); - Draw.clear(); + Draw.reset(); } }, smallfast = new BulletType(1.6f, 2){ @@ -42,7 +42,7 @@ public abstract class BulletType extends BaseBulletType{ public void draw(Bullet b){ Draw.color(color); Draw.rect("bullet", b.x, b.y, b.angle()); - Draw.clear(); + Draw.reset(); } }, flame = new BulletType(0.6f, 4){ @@ -50,7 +50,7 @@ public abstract class BulletType extends BaseBulletType{ Draw.color(Color.YELLOW, Color.SCARLET, b.time/lifetime); float size = 6f-b.time/lifetime*5f; Draw.rect("circle", b.x, b.y, size, size); - Draw.clear(); + Draw.reset(); } }, flameshot = new BulletType(0.5f, 3){ @@ -58,7 +58,7 @@ public abstract class BulletType extends BaseBulletType{ Draw.color(Color.ORANGE, Color.SCARLET, b.time/lifetime); float size = 6f-b.time/lifetime*5f; Draw.rect("circle", b.x, b.y, size, size); - Draw.clear(); + Draw.reset(); } }, shot = new BulletType(2.4f, 2){ @@ -66,7 +66,7 @@ public abstract class BulletType extends BaseBulletType{ public void draw(Bullet b){ Draw.color(Color.GOLD); Draw.rect("bullet", b.x, b.y, b.angle()); - Draw.clear(); + Draw.reset(); } }, shot2 = new BulletType(2.5f, 2){ @@ -74,7 +74,7 @@ public abstract class BulletType extends BaseBulletType{ public void draw(Bullet b){ Draw.color(Color.SKY); Draw.rect("bullet", b.x, b.y, b.angle()); - Draw.clear(); + Draw.reset(); } }; diff --git a/core/src/io/anuke/mindustry/entities/Player.java b/core/src/io/anuke/mindustry/entities/Player.java index cabdf8234d..d7b513dc20 100644 --- a/core/src/io/anuke/mindustry/entities/Player.java +++ b/core/src/io/anuke/mindustry/entities/Player.java @@ -3,6 +3,7 @@ package io.anuke.mindustry.entities; import static io.anuke.mindustry.Vars.*; import com.badlogic.gdx.Input.Buttons; +import com.badlogic.gdx.math.MathUtils; import com.badlogic.gdx.math.Vector2; import io.anuke.mindustry.Vars; @@ -80,6 +81,9 @@ public class Player extends DestructibleEntity{ }else{ float angle = Angles.mouseAngle(x, y); direction.lerp(vector.set(0, 1).setAngle(angle), 0.26f); + if(MathUtils.isEqual(angle, direction.angle(), 0.05f)){ + direction.setAngle(angle); + } } } } diff --git a/core/src/io/anuke/mindustry/ui/MenuDialog.java b/core/src/io/anuke/mindustry/ui/MenuDialog.java index 3775550fc2..313d8e7d0d 100644 --- a/core/src/io/anuke/mindustry/ui/MenuDialog.java +++ b/core/src/io/anuke/mindustry/ui/MenuDialog.java @@ -34,7 +34,7 @@ public class MenuDialog extends Dialog{ hide(); paused = false; playing = false; - }); + }).show(); }).width(200); } } diff --git a/core/src/io/anuke/mindustry/world/Block.java b/core/src/io/anuke/mindustry/world/Block.java index f06a26f0e0..97b7bf83fe 100644 --- a/core/src/io/anuke/mindustry/world/Block.java +++ b/core/src/io/anuke/mindustry/world/Block.java @@ -1,23 +1,38 @@ package io.anuke.mindustry.world; +import com.badlogic.gdx.graphics.g2d.TextureRegion; import com.badlogic.gdx.math.MathUtils; import com.badlogic.gdx.math.Vector2; +import io.anuke.mindustry.World; import io.anuke.mindustry.entities.TileEntity; import io.anuke.mindustry.resource.Item; import io.anuke.ucore.core.Draw; +import io.anuke.ucore.graphics.Caches; +import io.anuke.ucore.util.Mathf; public class Block{ + private static int lastid; + protected static Vector2 vector = new Vector2(); protected static Vector2 vector2 = new Vector2(); + protected static TextureRegion temp = new TextureRegion(); public final String name; - public boolean solid, update, rotate; + public boolean solid, update, rotate, breakable; public int health = 40; + public String shadow = "shadow"; + public float breaktime = 30; + public final int id; + //edge fallback, used for ores + public String edge = "stone"; + //whether to have 3 variants + public boolean vary = true; public Block(String name) { this.name = name; - solid = false; + this.solid = false; + this.id = lastid++; } public void drawOver(Tile tile){} @@ -126,11 +141,48 @@ public class Block{ } return false; } + + public void drawCache(Tile tile){ + MathUtils.random.setSeed(tile.id()); + + Caches.draw(vary ? (name() + MathUtils.random(1, 3)) : name(), tile.worldx(), tile.worldy()); + + for(int dx = -1; dx <= 1; dx ++){ + for(int dy = -1; dy <= 1; dy ++){ + if(dx == 0 && dy == 0) continue; + + Tile other = World.tile(tile.x+dx, tile.y+dy); + + if(other == null) continue; + + Block floor = other.floor(); + + if(floor.id <= this.id) continue; + + TextureRegion region = Draw.region(floor.name() + "edge"); + + if(region == null) + region = Draw.region(floor.edge + "edge"); + + int sx = -dx*8+2, sy = -dy*8+2; + int x = Mathf.clamp(sx, 0, 12); + int y = Mathf.clamp(sy, 0, 12); + int w = Mathf.clamp(sx+8, 0, 12)-x, h = Mathf.clamp(sy+8, 0, 12)-y; + + float rx = Mathf.clamp(dx*8, 0, 8-w); + float ry = Mathf.clamp(dy*8, 0, 8-h); + + temp.setTexture(region.getTexture()); + temp.setRegion(region.getRegionX()+x, region.getRegionY()+y+h, w, -h); + + Caches.draw(temp, tile.worldx()-4 + rx, tile.worldy()-4 + ry, w, h); + } + } + } public void draw(Tile tile){ if(tile.floor() == this){ - MathUtils.random.setSeed(tile.id()); - Draw.rect(name() + MathUtils.random(1, 3), tile.worldx(), tile.worldy(), rotate ? tile.rotation * 90 : 0); + throw new RuntimeException("Rendering non-cached tiles is disabled."); }else{ Draw.rect(name(), tile.worldx(), tile.worldy(), rotate ? tile.rotation * 90 : 0); } diff --git a/core/src/io/anuke/mindustry/world/Generator.java b/core/src/io/anuke/mindustry/world/Generator.java index f31e3177f3..5a2d2663bc 100644 --- a/core/src/io/anuke/mindustry/world/Generator.java +++ b/core/src/io/anuke/mindustry/world/Generator.java @@ -11,6 +11,7 @@ import com.badlogic.gdx.math.MathUtils; import io.anuke.mindustry.world.blocks.Blocks; import io.anuke.ucore.graphics.Hue; import io.anuke.ucore.noise.Noise; +import io.anuke.ucore.util.Mathf; public class Generator{ static final int stonefloor = Color.rgba8888(Hue.rgb(54, 54, 54)); @@ -34,13 +35,29 @@ public class Generator{ floor = Blocks.iron; } + if(Noise.nnoise(x, y, 8, 1) > 0.1){ + floor = Blocks.grass; + } + + if(Noise.nnoise(x, y, 8, 1) > 0.1){ + floor = Blocks.water; + } + + if(Mathf.chance(0.01)){ + block = Blocks.rock; + } + + if(Mathf.chance(0.01)){ + block = Blocks.rock2; + } + if(Noise.nnoise(x, y, 6, 1) > 0.245){ floor = Blocks.coal; } if(color == stone && map == 1){ block = Blocks.dirtblock; }else if(color == stone){ - block = Blocks.stoneblock; + block = Mathf.choose(Blocks.stoneblock, Blocks.stoneblock2, Blocks.stoneblock3); }else if(color == start){ core = tiles[x][y]; }else if(color == spawn){ diff --git a/core/src/io/anuke/mindustry/world/Tile.java b/core/src/io/anuke/mindustry/world/Tile.java index e5ad3ef9d2..8a48f8c95b 100644 --- a/core/src/io/anuke/mindustry/world/Tile.java +++ b/core/src/io/anuke/mindustry/world/Tile.java @@ -64,8 +64,8 @@ public class Tile{ this.floor = type; } - public boolean artifical(){ - return block.update; + public boolean breakable(){ + return block.update || block.breakable; } public Tile[] getNearby(){ diff --git a/core/src/io/anuke/mindustry/world/blocks/Blocks.java b/core/src/io/anuke/mindustry/world/blocks/Blocks.java index 91d855168b..cc87d2d3b3 100644 --- a/core/src/io/anuke/mindustry/world/blocks/Blocks.java +++ b/core/src/io/anuke/mindustry/world/blocks/Blocks.java @@ -21,10 +21,35 @@ public class Blocks{ grass = new Block("grass"), + water = new Block("water"){{ + vary = false; + solid = true; + }}, + stoneblock = new Block("stoneblock"){{ solid = true; }}, + stoneblock2 = new Block("stoneblock2"){{ + solid = true; + }}, + + stoneblock3 = new Block("stoneblock3"){{ + solid = true; + }}, + + rock = new Block("rock"){{ + shadow = "rockshadow"; + breakable = true; + breaktime = 10; + }}, + + rock2 = new Block("rock2"){{ + shadow = "rock2shadow"; + breakable = true; + breaktime = 10; + }}, + dirtblock = new Block("dirtblock"){{ solid = true; }}, diff --git a/core/src/io/anuke/mindustry/world/blocks/RepairTurret.java b/core/src/io/anuke/mindustry/world/blocks/RepairTurret.java index 5437d64343..0572823753 100644 --- a/core/src/io/anuke/mindustry/world/blocks/RepairTurret.java +++ b/core/src/io/anuke/mindustry/world/blocks/RepairTurret.java @@ -48,7 +48,7 @@ public class RepairTurret extends Turret{ Draw.line(x, y, x2, y2); Draw.thickness(1f); Draw.rect("circle", x2, y2, 5f, 5f); - Draw.clear(); + Draw.reset(); } Draw.rect(name(), tile.worldx(), tile.worldy(), entity.rotation - 90); diff --git a/core/src/io/anuke/mindustry/world/blocks/Turret.java b/core/src/io/anuke/mindustry/world/blocks/Turret.java index 4f2c3d2120..1fe61647da 100644 --- a/core/src/io/anuke/mindustry/world/blocks/Turret.java +++ b/core/src/io/anuke/mindustry/world/blocks/Turret.java @@ -42,7 +42,7 @@ public class Turret extends Block{ public void drawPixelOverlay(Tile tile){ Draw.color("green"); Draw.dashcircle(tile.worldx(), tile.worldy(), range); - Draw.clear(); + Draw.reset(); } @Override diff --git a/desktop/src/io/anuke/mindustry/desktop/DesktopLauncher.java b/desktop/src/io/anuke/mindustry/desktop/DesktopLauncher.java index 42bf54a30a..6827911a6d 100644 --- a/desktop/src/io/anuke/mindustry/desktop/DesktopLauncher.java +++ b/desktop/src/io/anuke/mindustry/desktop/DesktopLauncher.java @@ -10,7 +10,7 @@ public class DesktopLauncher { Lwjgl3ApplicationConfiguration config = new Lwjgl3ApplicationConfiguration(); config.setTitle("Mindustry"); config.setMaximized(true); - //config.useVsync(false); + config.useVsync(false); config.setWindowedMode(800, 600); new Lwjgl3Application(new Mindustry(), config); }