From 4a9fbf080ed2fd358340ea48b0352bc73fa48e29 Mon Sep 17 00:00:00 2001 From: Anuken Date: Thu, 9 Nov 2017 23:05:47 -0500 Subject: [PATCH] Many UI changes, WIP main menu rework --- core/assets-raw/sprites/blocks/block-2x2.png | Bin 215 -> 201 bytes .../sprites/blocks/chainturret-icon.png | Bin 0 -> 259 bytes .../assets-raw/sprites/blocks/chainturret.png | Bin 0 -> 541 bytes core/assets-raw/sprites/ui/border.9.png | Bin 0 -> 195 bytes core/assets-raw/sprites/ui/button-map.9.png | Bin 197 -> 198 bytes core/assets-raw/sprites/ui/window-empty.9.png | Bin 0 -> 249 bytes core/assets/maps/maze2.png | Bin 0 -> 2791 bytes core/assets/maps/maze3.png | Bin 0 -> 2791 bytes core/assets/maps/maze4.png | Bin 0 -> 2791 bytes core/assets/maps/maze5.png | Bin 0 -> 2791 bytes core/assets/sprites/sprites.atlas | 440 ++++++++++-------- core/assets/sprites/sprites.png | Bin 44891 -> 45492 bytes core/assets/ui/uiskin.json | 9 +- core/src/io/anuke/mindustry/UI.java | 60 ++- core/src/io/anuke/mindustry/Vars.java | 8 +- .../io/anuke/mindustry/resource/Recipe.java | 2 + .../io/anuke/mindustry/ui/FloatingDialog.java | 33 ++ .../io/anuke/mindustry/ui/LevelDialog.java | 64 ++- .../src/io/anuke/mindustry/ui/LoadDialog.java | 67 +-- .../src/io/anuke/mindustry/ui/MenuDialog.java | 5 +- .../mindustry/ui/MindustryKeybindDialog.java | 34 ++ .../mindustry/ui/MindustrySettingsDialog.java | 32 ++ .../src/io/anuke/mindustry/ui/SaveDialog.java | 70 +-- .../io/anuke/mindustry/ui/UpgradeDialog.java | 6 +- core/src/io/anuke/mindustry/world/Map.java | 18 +- .../mindustry/world/blocks/WeaponBlocks.java | 14 + .../world/blocks/types/defense/Turret.java | 11 +- 27 files changed, 519 insertions(+), 354 deletions(-) create mode 100644 core/assets-raw/sprites/blocks/chainturret-icon.png create mode 100644 core/assets-raw/sprites/blocks/chainturret.png create mode 100644 core/assets-raw/sprites/ui/border.9.png create mode 100644 core/assets-raw/sprites/ui/window-empty.9.png create mode 100644 core/assets/maps/maze2.png create mode 100644 core/assets/maps/maze3.png create mode 100644 core/assets/maps/maze4.png create mode 100644 core/assets/maps/maze5.png create mode 100644 core/src/io/anuke/mindustry/ui/FloatingDialog.java create mode 100644 core/src/io/anuke/mindustry/ui/MindustryKeybindDialog.java create mode 100644 core/src/io/anuke/mindustry/ui/MindustrySettingsDialog.java diff --git a/core/assets-raw/sprites/blocks/block-2x2.png b/core/assets-raw/sprites/blocks/block-2x2.png index 2962e179e858ce354050462d50489161da0df8f4..b257fe47abf9969ebbe23ec355e22218d295b941 100644 GIT binary patch delta 107 zcmcc4c#?5~BL}C5FsB5^yS9m*8WGN(E{-7@=ac7Hm+R^4>oZ?$czUpzor{ahW!1B% zPg9c=1ShO%WIgM)rpvDWpU*zt#Zn%9>`y+(MX1|Wd}#2v%EiUS;Ks_QHmRYdnSp_U N!PC{xWt~$(696UGCUpP+ delta 121 zcmX@fc%5;ABL};HirgD6ky#TxHPQk-T^vI+&cB_sk(a@chv}z=uJwi;<;m>&A6#cm z4?5!aH@w-=$lqmx%gjV;&bh5W$Wuj{ dGyA&!+oh8BTV^B}GcYhPc)I$ztaD0e0su57Fckm* diff --git a/core/assets-raw/sprites/blocks/chainturret-icon.png b/core/assets-raw/sprites/blocks/chainturret-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3ac4d773bf47fd07dfbfd75524e81ca1373d6adc GIT binary patch literal 259 zcmeAS@N?(olHy`uVBq!ia0y~yVBiE{4mJh`h6fYb1VEeukH}&M25w;xW@MN(M}mQY zfxX1j*OmPtH>ZdY)3k$Z{tOHZk|nMYCC>S|xv6<249-QVi6yBi3gww484B*6z5(Hl zeBulY47Hvvjv*44lM@`6wd4N&-~Z_9|NkeFd|q(v%bRyR;oDO?=1op&C9HjYeJ|RK zHy9)^c6D{}ERQoj;OiW?#pzzJqGur6IrHB|^4mR6s3lp4qK_^-C(-OlOr7VP4D z_F`sVAJ5D05t0(`Y!eSivheWm@a&$GDp6*6dO-&xLtTuC!uyq`9t;c&44$rjF6*2U FngE0;SZn|Q literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/chainturret.png b/core/assets-raw/sprites/blocks/chainturret.png new file mode 100644 index 0000000000000000000000000000000000000000..4cca46b56d37db540ecbc26770b35ff4511a5bed GIT binary patch literal 541 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7I14-?iy0WWg+Z8+Vb&Z8 z1_lQ95>H=O_J`b@B4TEjCC&daFfd4#xJHyX=jZ08=9Mrw7o{eaq^2m8XO?6rxO@5r zgg5euGcYht_jGX#u{hm2*)aRDgGkGM(TUbOeMD1E<|+tWiP?Q)hsUeKOTGWLgs^S@ z$*C6;BVL#{`H;#A?&}>62iEHJXipc)(>bxMV9Uj*=}$s0-JV&wS=rWb_Spg%_J*+4 zN4@ulFg)k?3RwMgY5>FZ{%tqje`ol!Z~yUAn|c;$FjTypeyX>~?Y4uk)~5{V2W~s% z7(RUeCB?09+Gtw1)6T%YDM9|aT~6K19-4)V?+9%F;s0|V|ADF-VXqUTuT~#V<+xMI z##XR}S0b0$`NukA0~Ws@%eLIm`zdsJ$DypPOb>qE*T1`Z-s;V5%&(t4ny^oYGg$hP zFSA9(Ee5m8d7d&)b=q@F|1EHN%+-A_viHIp`Q1Ovn*BHYEoKYyI&|gQ64&=V23t9U zZ_kihw(aBkIah?^f5>0E%zHWSA_Z>MkMJz&7WqIgQr=W*uDw#*Yu z8&x%87VH-56uw}il^&G!V&jHutITvBzWa4TRbXpnd27c7KWF39cU?~Q3Me|Ya0n{7 xbhxp2{5@T^Tj9j3wtC^a=NqNZ3dKHVHW%X$yER#1E&~GtgQu&X%Q~loCIBuNKkWbj literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/ui/button-map.9.png b/core/assets-raw/sprites/ui/button-map.9.png index 9e899d721e26cbbe85ab645e2ec8a35a28656bc3..5da991f3cd6f7296671738edba92fbe3731288fd 100644 GIT binary patch delta 142 zcmX@gc#Ls^Lp?VaGrOo}b$vSn14F8(i(^Q{;kVZgavo3+aJjf&(Kcf0)u>+8h}NC# z%$)-KpPoN+lwVUl<3aSVw=((qY!2skeopq%EZm^sblH-9Hj9H-=BtC(X4R`e!IsL# tp1{r;t){-b_o)l6y?W7d?J1LEF8`bp7RNdm7#J8l* delta 141 zcmX@cc$9I1Lp`U202lXYWU|=ut^mS!_$jvD(tGnae%mxMqh8dnNjv*0;-`+6fYc}9%O_VMaztSjbSio}R zLUWnJUQhNThDA)}uf;S4kElMX&t6p1HCHFhv)i-EB=hhdo1@zAzpD2BQC#49`Iy+Z zx5Ym`yt^1)5FGl|{p=exe$AEx_N*vCw^8aT>sqnUd=slZQpY;yH9fOkV(j+(X2wa) pG7(+Nqx-`A_j>h71f0oCO|{#S9GG!XV7ZFl&wk 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 CzqD5X literal 0 HcmV?d00001 diff --git a/core/assets/maps/maze3.png b/core/assets/maps/maze3.png new file mode 100644 index 0000000000000000000000000000000000000000..82684d1761cd57d7ef74fcfd1c1eb9fbec05f1c8 GIT binary patch literal 2791 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 CzqD5X literal 0 HcmV?d00001 diff --git a/core/assets/maps/maze4.png b/core/assets/maps/maze4.png new file mode 100644 index 0000000000000000000000000000000000000000..82684d1761cd57d7ef74fcfd1c1eb9fbec05f1c8 GIT binary patch literal 2791 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 CzqD5X literal 0 HcmV?d00001 diff --git a/core/assets/maps/maze5.png b/core/assets/maps/maze5.png new file mode 100644 index 0000000000000000000000000000000000000000..82684d1761cd57d7ef74fcfd1c1eb9fbec05f1c8 GIT binary patch literal 2791 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 CzqD5X literal 0 HcmV?d00001 diff --git a/core/assets/sprites/sprites.atlas b/core/assets/sprites/sprites.atlas index 9153afeb06..b44a0ca12b 100644 --- a/core/assets/sprites/sprites.atlas +++ b/core/assets/sprites/sprites.atlas @@ -13,182 +13,196 @@ backgrounds/background index: -1 blank rotate: false - xy: 201, 21 + xy: 383, 424 size: 1, 1 orig: 1, 1 offset: 0, 0 index: -1 blocks/block rotate: false - xy: 385, 284 + xy: 349, 195 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/block-2x2 rotate: false - xy: 164, 1 + xy: 359, 202 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 blocks/block-3x3 rotate: false - xy: 204, 46 + xy: 233, 173 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 +blocks/chainturret + rotate: false + xy: 228, 155 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +blocks/chainturret-icon + rotate: false + xy: 383, 381 + size: 9, 9 + orig: 9, 9 + offset: 0, 0 + index: -1 blocks/coal1 rotate: false - xy: 389, 250 + xy: 236, 9 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/coal2 rotate: false - xy: 395, 284 + xy: 415, 414 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/coal3 rotate: false - xy: 258, 67 + xy: 415, 404 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/coaldrill rotate: false - xy: 399, 250 + xy: 415, 394 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/coalgenerator rotate: false - xy: 403, 240 + xy: 418, 384 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/coalpurifier rotate: false - xy: 449, 408 + xy: 278, 127 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/combustiongenerator rotate: false - xy: 453, 418 + xy: 278, 117 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/compositewall rotate: false - xy: 449, 398 + xy: 278, 107 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/conduit rotate: false - xy: 270, 119 + xy: 278, 97 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/conduitbottom rotate: false - xy: 266, 109 + xy: 278, 87 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/conduitliquid rotate: false - xy: 266, 99 + xy: 278, 77 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/conduittop rotate: false - xy: 266, 89 + xy: 278, 67 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/conveyor rotate: false - xy: 266, 79 + xy: 278, 57 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/conveyormove rotate: false - xy: 268, 69 + xy: 274, 47 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/core rotate: false - xy: 92, 12 + xy: 285, 173 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 blocks/cross rotate: false - xy: 236, 8 + xy: 288, 129 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/crucible rotate: false - xy: 391, 228 + xy: 288, 119 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/deepwater rotate: false - xy: 389, 218 + xy: 288, 109 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/dirt1 rotate: false - xy: 389, 208 + xy: 288, 99 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/dirt2 rotate: false - xy: 389, 198 + xy: 288, 89 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/dirt3 rotate: false - xy: 254, 55 + xy: 288, 79 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/dirtblock rotate: false - xy: 401, 274 + xy: 288, 69 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -202,77 +216,77 @@ blocks/dirtedge index: -1 blocks/doubleturret rotate: false - xy: 385, 294 + xy: 212, 20 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 blocks/drill rotate: false - xy: 401, 264 + xy: 288, 59 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/duriumwall rotate: false - xy: 405, 284 + xy: 500, 479 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/duriumwall-large rotate: false - xy: 182, 1 + xy: 228, 137 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 blocks/duriumwall-large-icon rotate: false - xy: 459, 408 + xy: 500, 469 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/flameturret rotate: false - xy: 486, 501 + xy: 212, 8 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 blocks/grass1 rotate: false - xy: 276, 109 + xy: 252, 33 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/grass2 rotate: false - xy: 276, 99 + xy: 262, 33 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/grass3 rotate: false - xy: 276, 89 + xy: 420, 430 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/grassblock rotate: false - xy: 276, 79 + xy: 430, 434 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/grassblock2 rotate: false - xy: 280, 119 + xy: 440, 434 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -286,56 +300,56 @@ blocks/grassedge index: -1 blocks/iron1 rotate: false - xy: 286, 79 + xy: 246, 21 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/iron2 rotate: false - xy: 288, 69 + xy: 246, 11 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/iron3 rotate: false - xy: 85, 2 + xy: 246, 1 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/irondrill rotate: false - xy: 95, 2 + xy: 256, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/ironwall rotate: false - xy: 105, 2 + xy: 256, 13 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/junction rotate: false - xy: 115, 2 + xy: 256, 3 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/laserturret rotate: false - xy: 391, 238 + xy: 224, 5 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 blocks/lava rotate: false - xy: 125, 2 + xy: 266, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -349,77 +363,77 @@ blocks/lavaedge index: -1 blocks/liquidjunction rotate: false - xy: 236, 43 + xy: 266, 13 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/liquidrouter rotate: false - xy: 236, 33 + xy: 266, 3 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/machineturret rotate: false - xy: 397, 294 + xy: 454, 444 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 blocks/megarepairturret rotate: false - xy: 480, 489 + xy: 466, 445 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 blocks/mortarturret rotate: false - xy: 492, 489 + xy: 480, 489 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 blocks/mossblock rotate: false - xy: 246, 33 + xy: 276, 17 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/mossstone rotate: false - xy: 246, 33 + xy: 276, 17 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/nuclearreactor rotate: false - xy: 118, 12 + xy: 311, 173 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 blocks/nuclearreactor-icon rotate: false - xy: 256, 45 + xy: 286, 27 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/nuclearreactor-small rotate: false - xy: 183, 20 + xy: 246, 155 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 blocks/oil rotate: false - xy: 256, 35 + xy: 286, 17 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -433,182 +447,182 @@ blocks/oiledge index: -1 blocks/oilrefinery rotate: false - xy: 250, 23 + xy: 286, 7 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/omnidrill rotate: false - xy: 246, 13 + xy: 430, 424 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/plasmaturret rotate: false - xy: 321, 183 + xy: 476, 477 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 blocks/powerbooster rotate: false - xy: 260, 25 + xy: 450, 424 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/poweredconveyor rotate: false - xy: 256, 13 + xy: 460, 424 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/poweredconveyormove rotate: false - xy: 256, 3 + xy: 470, 425 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/powerlaser rotate: false - xy: 357, 192 + xy: 425, 414 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/powerlaserrouter rotate: false - xy: 367, 192 + xy: 425, 404 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/pump rotate: false - xy: 377, 192 + xy: 425, 394 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/repairturret rotate: false - xy: 333, 183 + xy: 492, 489 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 blocks/rock rotate: false - xy: 367, 182 + xy: 435, 404 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/rock2 rotate: false - xy: 377, 182 + xy: 445, 414 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/rock2shadow rotate: false - xy: 387, 188 + xy: 435, 394 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/rockshadow rotate: false - xy: 387, 178 + xy: 428, 384 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/router rotate: false - xy: 453, 446 + xy: 445, 404 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/shadow rotate: false - xy: 345, 183 + xy: 476, 465 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 blocks/shieldgenerator rotate: false - xy: 403, 230 + xy: 455, 414 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/shotgunturret rotate: false - xy: 234, 65 + xy: 488, 477 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 blocks/shrub rotate: false - xy: 393, 392 + xy: 445, 394 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/shrubshadow rotate: false - xy: 393, 382 + xy: 438, 384 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/smelter rotate: false - xy: 403, 392 + xy: 455, 404 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/sniperturret rotate: false - xy: 246, 65 + xy: 488, 465 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 blocks/sorter rotate: false - xy: 393, 372 + xy: 455, 394 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/steelconveyor rotate: false - xy: 413, 392 + xy: 448, 384 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/steelconveyormove rotate: false - xy: 403, 382 + xy: 428, 374 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/steelwall rotate: false - xy: 393, 362 + xy: 438, 374 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -622,217 +636,217 @@ blocks/stone index: -1 blocks/stone1 rotate: false - xy: 423, 392 + xy: 448, 374 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/stone2 rotate: false - xy: 413, 382 + xy: 458, 384 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/stone3 rotate: false - xy: 403, 372 + xy: 458, 374 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/stoneblock rotate: false - xy: 393, 352 + xy: 465, 414 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/stoneblock2 rotate: false - xy: 433, 392 + xy: 465, 404 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/stoneblock3 rotate: false - xy: 423, 382 + xy: 465, 394 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/stonedrill rotate: false - xy: 413, 372 + xy: 468, 384 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/stoneedge rotate: false - xy: 385, 320 + xy: 246, 43 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 blocks/stonewall rotate: false - xy: 403, 362 + xy: 468, 374 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/teleporter rotate: false - xy: 393, 342 + xy: 475, 415 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/teleporter-top rotate: false - xy: 433, 382 + xy: 475, 405 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/thermalgenerator rotate: false - xy: 423, 372 + xy: 475, 395 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/titanium1 rotate: false - xy: 413, 362 + xy: 478, 385 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/titanium2 rotate: false - xy: 403, 352 + xy: 478, 375 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/titanium3 rotate: false - xy: 433, 372 + xy: 361, 192 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/titaniumdrill rotate: false - xy: 423, 362 + xy: 361, 182 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/titaniumpurifier rotate: false - xy: 413, 352 + xy: 361, 172 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/titaniumshieldwall rotate: false - xy: 403, 342 + xy: 361, 162 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/titaniumwall rotate: false - xy: 433, 362 + xy: 371, 192 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/titaniumwall-large rotate: false - xy: 287, 181 + xy: 282, 155 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 blocks/titaniumwall-large-icon rotate: false - xy: 423, 352 + xy: 371, 182 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/turret rotate: false - xy: 230, 53 + xy: 337, 163 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 blocks/uranium1 rotate: false - xy: 433, 352 + xy: 371, 162 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/uranium2 rotate: false - xy: 423, 342 + xy: 388, 370 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/uranium3 rotate: false - xy: 433, 342 + xy: 398, 370 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/uraniumdrill rotate: false - xy: 443, 388 + xy: 408, 370 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/water rotate: false - xy: 443, 378 + xy: 385, 360 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/wateredge rotate: false - xy: 385, 306 + xy: 260, 43 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 blocks/waveturret rotate: false - xy: 242, 53 + xy: 349, 159 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 bullet rotate: false - xy: 443, 418 + xy: 236, 19 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 circle rotate: false - xy: 164, 19 + xy: 359, 220 size: 17, 17 orig: 17, 17 offset: 0, 0 @@ -846,56 +860,56 @@ circle2 index: -1 enemies/blastenemy-t1 rotate: false - xy: 305, 183 + xy: 282, 139 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 enemies/blastenemy-t2 rotate: false - xy: 401, 402 + xy: 300, 157 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 enemies/blastenemy-t3 rotate: false - xy: 464, 489 + xy: 316, 157 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 enemies/empenemy-t1 rotate: false - xy: 228, 157 + xy: 388, 424 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 enemies/empenemy-t2 rotate: false - xy: 228, 141 + xy: 404, 424 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 enemies/empenemy-t3 rotate: false - xy: 244, 157 + xy: 464, 489 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 enemies/enemy-t1 rotate: false - xy: 244, 141 + xy: 460, 473 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 enemies/targetenemy-t1 rotate: false - xy: 244, 141 + xy: 460, 473 size: 14, 14 orig: 14, 14 offset: 0, 0 @@ -916,231 +930,239 @@ enemies/enemy-t3 index: -1 enemies/fastenemy-t1 rotate: false - xy: 437, 440 + xy: 460, 457 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 enemies/fastenemy-t2 rotate: false - xy: 417, 402 + xy: 230, 121 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 enemies/fastenemy-t3 rotate: false - xy: 359, 234 + xy: 230, 105 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 enemies/flamerenemy-t1 rotate: false - xy: 357, 218 + xy: 246, 121 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 enemies/flamerenemy-t2 rotate: false - xy: 375, 234 + xy: 230, 89 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 enemies/flamerenemy-t3 rotate: false - xy: 373, 218 + xy: 246, 105 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 enemies/healerenemy-t1 rotate: false - xy: 357, 202 + xy: 262, 121 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 enemies/healerenemy-t2 rotate: false - xy: 373, 202 + xy: 230, 73 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 enemies/healerenemy-t3 rotate: false - xy: 260, 157 + xy: 246, 89 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 enemies/mortarenemy-t1 rotate: false - xy: 234, 93 + xy: 246, 57 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 enemies/mortarenemy-t2 rotate: false - xy: 250, 109 + xy: 262, 73 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 enemies/mortarenemy-t3 rotate: false - xy: 234, 77 + xy: 262, 57 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 enemies/rapidenemy-t1 rotate: false - xy: 250, 93 + xy: 383, 408 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 enemies/rapidenemy-t2 rotate: false - xy: 250, 77 + xy: 383, 392 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 enemies/rapidenemy-t3 rotate: false - xy: 427, 418 + xy: 399, 408 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 enemies/tankenemy-t1 rotate: false - xy: 433, 402 + xy: 399, 392 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 enemies/tankenemy-t2 rotate: false - xy: 204, 30 + xy: 214, 32 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 enemies/tankenemy-t3 rotate: false - xy: 220, 30 + xy: 230, 41 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 enemies/titanenemy-t1 rotate: false - xy: 233, 173 + xy: 246, 137 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 enemies/titanenemy-t2 rotate: false - xy: 251, 173 + xy: 264, 155 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 enemies/titanenemy-t3 rotate: false - xy: 269, 181 + xy: 264, 137 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 enemyarrow rotate: false - xy: 228, 132 + xy: 418, 375 size: 8, 7 orig: 8, 7 offset: 0, 0 index: -1 icon-coal rotate: false - xy: 278, 69 + xy: 450, 434 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 icon-dirium rotate: false - xy: 411, 274 + xy: 460, 434 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 icon-iron rotate: false - xy: 411, 264 + xy: 470, 435 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 icon-steel rotate: false - xy: 409, 254 + xy: 274, 37 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 icon-stone rotate: false - xy: 286, 109 + xy: 284, 47 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 icon-titanium rotate: false - xy: 286, 99 + xy: 284, 37 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 icon-uranium rotate: false - xy: 286, 89 + xy: 500, 459 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 laser rotate: false - xy: 201, 24 + xy: 510, 499 size: 1, 12 orig: 1, 12 offset: 0, 0 index: -1 laserend rotate: false - xy: 144, 18 + xy: 359, 239 size: 18, 18 orig: 18, 18 offset: 0, 0 index: -1 player rotate: false - xy: 246, 3 + xy: 440, 424 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 +ui/border + rotate: false + xy: 317, 199 + size: 24, 40 + split: 6, 6, 6, 10 + orig: 24, 40 + offset: 0, 0 + index: -1 ui/button rotate: false - xy: 359, 322 + xy: 359, 297 size: 24, 40 split: 10, 10, 6, 10 orig: 24, 40 @@ -1148,7 +1170,7 @@ ui/button index: -1 ui/button-down rotate: false - xy: 275, 199 + xy: 204, 90 size: 24, 40 split: 10, 10, 6, 10 orig: 24, 40 @@ -1156,7 +1178,7 @@ ui/button-down index: -1 ui/button-over rotate: false - xy: 275, 199 + xy: 204, 90 size: 24, 40 split: 10, 10, 6, 10 orig: 24, 40 @@ -1164,7 +1186,7 @@ ui/button-over index: -1 ui/button-map rotate: false - xy: 301, 199 + xy: 359, 339 size: 24, 40 split: 10, 10, 5, 10 orig: 24, 40 @@ -1172,7 +1194,7 @@ ui/button-map index: -1 ui/button-map-down rotate: false - xy: 359, 364 + xy: 204, 48 size: 24, 40 split: 10, 10, 5, 10 orig: 24, 40 @@ -1180,7 +1202,7 @@ ui/button-map-down index: -1 ui/button-map-over rotate: false - xy: 359, 364 + xy: 204, 48 size: 24, 40 split: 10, 10, 5, 10 orig: 24, 40 @@ -1188,7 +1210,7 @@ ui/button-map-over index: -1 ui/button-select rotate: false - xy: 401, 418 + xy: 259, 173 size: 24, 24 split: 4, 4, 4, 4 orig: 24, 24 @@ -1196,182 +1218,182 @@ ui/button-select index: -1 ui/check-off rotate: false - xy: 327, 207 + xy: 430, 456 size: 28, 32 orig: 28, 32 offset: 0, 0 index: -1 ui/check-on rotate: false - xy: 359, 250 + xy: 92, 4 size: 28, 32 orig: 28, 32 offset: 0, 0 index: -1 ui/check-over rotate: false - xy: 425, 456 + xy: 122, 4 size: 28, 32 orig: 28, 32 offset: 0, 0 index: -1 ui/clear rotate: false - xy: 425, 444 + xy: 394, 380 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 ui/cursor rotate: false - xy: 437, 434 + xy: 343, 199 size: 4, 4 orig: 4, 4 offset: 0, 0 index: -1 ui/icon-arrow-left rotate: false - xy: 498, 501 + xy: 230, 29 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 ui/icon-arrow-right rotate: false - xy: 327, 195 + xy: 406, 380 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 ui/icon-cancel rotate: false - xy: 260, 141 + xy: 262, 105 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 ui/icon-check rotate: false - xy: 238, 125 + xy: 230, 57 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 ui/icon-close rotate: false - xy: 359, 448 + xy: 233, 199 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 ui/icon-close-down rotate: false - xy: 233, 199 + xy: 388, 448 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 ui/icon-close-over rotate: false - xy: 359, 406 + xy: 275, 199 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 ui/icon-crafting rotate: false - xy: 339, 195 + xy: 430, 444 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 ui/icon-cursor rotate: false - xy: 443, 428 + xy: 442, 444 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 ui/icon-defense rotate: false - xy: 144, 6 + xy: 486, 501 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 ui/icon-distribution rotate: false - xy: 270, 129 + xy: 498, 501 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 ui/icon-menu rotate: false - xy: 204, 18 + xy: 337, 187 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 ui/icon-pause rotate: false - xy: 216, 18 + xy: 337, 175 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 ui/icon-play rotate: false - xy: 200, 6 + xy: 349, 183 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 ui/icon-power rotate: false - xy: 212, 6 + xy: 349, 171 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 ui/icon-production rotate: false - xy: 228, 18 + xy: 379, 247 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 ui/icon-rotate rotate: false - xy: 254, 125 + xy: 246, 73 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 ui/icon-rotate-arrow rotate: false - xy: 234, 109 + xy: 262, 89 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 ui/icon-settings rotate: false - xy: 224, 6 + xy: 379, 235 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 ui/icon-touch rotate: false - xy: 389, 272 + xy: 378, 223 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 ui/icon-weapon rotate: false - xy: 389, 260 + xy: 224, 17 size: 10, 10 orig: 10, 10 offset: 0, 0 @@ -1392,7 +1414,7 @@ ui/logotext-gray index: -1 ui/pane rotate: false - xy: 359, 284 + xy: 359, 259 size: 24, 36 split: 10, 10, 5, 5 orig: 24, 36 @@ -1400,7 +1422,7 @@ ui/pane index: -1 ui/scroll rotate: false - xy: 233, 191 + xy: 450, 505 size: 34, 6 split: 4, 4, 2, 2 orig: 34, 6 @@ -1408,7 +1430,7 @@ ui/scroll index: -1 ui/scroll-horizontal rotate: false - xy: 385, 370 + xy: 343, 205 size: 6, 34 split: 2, 2, 0, 34 pad: 0, 5, 5, 4 @@ -1417,7 +1439,7 @@ ui/scroll-horizontal index: -1 ui/scroll-knob-horizontal rotate: false - xy: 385, 334 + xy: 351, 205 size: 6, 34 split: 2, 2, 0, 34 pad: 0, 5, 13, 12 @@ -1426,7 +1448,7 @@ ui/scroll-knob-horizontal index: -1 ui/scroll-knob-vertical rotate: false - xy: 450, 505 + xy: 388, 440 size: 34, 6 split: 12, 12, 2, 2 orig: 34, 6 @@ -1434,21 +1456,21 @@ ui/scroll-knob-vertical index: -1 ui/selection rotate: false - xy: 201, 18 + xy: 224, 29 size: 1, 1 orig: 1, 1 offset: 0, 0 index: -1 ui/separator rotate: false - xy: 85, 12 + xy: 227, 29 size: 1, 1 orig: 1, 1 offset: 0, 0 index: -1 ui/slider rotate: false - xy: 510, 503 + xy: 385, 371 size: 1, 8 orig: 1, 8 offset: 0, 0 @@ -1462,28 +1484,28 @@ ui/slider-knob index: -1 ui/slider-knob-down rotate: false - xy: 401, 444 + xy: 359, 381 size: 22, 44 orig: 22, 44 offset: 0, 0 index: -1 ui/slider-knob-over rotate: false - xy: 401, 444 + xy: 359, 381 size: 22, 44 orig: 22, 44 offset: 0, 0 index: -1 ui/slider-vertical rotate: false - xy: 236, 5 + xy: 85, 1 size: 8, 1 orig: 8, 1 offset: 0, 0 index: -1 ui/textfield rotate: false - xy: 204, 72 + xy: 182, 8 size: 28, 28 split: 6, 6, 6, 6 orig: 28, 28 @@ -1491,7 +1513,7 @@ ui/textfield index: -1 ui/textfield-over rotate: false - xy: 204, 102 + xy: 152, 8 size: 28, 28 split: 2, 2, 2, 2 orig: 28, 28 @@ -1505,6 +1527,14 @@ ui/white offset: 0, 0 index: -1 ui/window + rotate: false + xy: 359, 427 + size: 27, 61 + split: 8, 8, 44, 11 + orig: 27, 61 + offset: 0, 0 + index: -1 +ui/window-empty rotate: false xy: 204, 178 size: 27, 61 @@ -1514,42 +1544,42 @@ ui/window index: -1 weapons/blaster rotate: false - xy: 427, 434 + xy: 204, 38 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 weapons/flamer rotate: false - xy: 459, 398 + xy: 242, 31 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 weapons/mortar rotate: false - xy: 246, 43 + xy: 276, 27 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 weapons/multigun rotate: false - xy: 240, 23 + xy: 276, 7 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 weapons/railgun rotate: false - xy: 357, 182 + xy: 435, 414 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 weapons/triblaster rotate: false - xy: 413, 342 + xy: 371, 172 size: 8, 8 orig: 8, 8 offset: 0, 0 diff --git a/core/assets/sprites/sprites.png b/core/assets/sprites/sprites.png index 30cbf999fb26e6e07ff45065ebed4b5bb70330b3..b46da28b1a4ac3748e8f80a8c2d31edab55a544e 100644 GIT binary patch literal 45492 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 literal 44891 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 diff --git a/core/assets/ui/uiskin.json b/core/assets/ui/uiskin.json index e2779ad367..a90bd8d4a2 100644 --- a/core/assets/ui/uiskin.json +++ b/core/assets/ui/uiskin.json @@ -20,7 +20,7 @@ com.badlogic.gdx.graphics.Color: { link-label: {a: 1, b: 0.886, g: 0.631, r: 0.105 } }, io.anuke.ucore.scene.Skin$TintedDrawable: { - dialogDim: {name: white, color: {r: 0, g: 0, b: 0, a: 0.45} } + dialogDim: {name: white, color: {r: 0, g: 0, b: 0, a: 0.9} } loadDim: {name: white, color: {r: 0, g: 0, b: 0, a: 0.7} } }, io.anuke.ucore.scene.ui.Button$ButtonStyle: { @@ -33,10 +33,11 @@ io.anuke.ucore.scene.ui.TextButton$TextButtonStyle: { }, io.anuke.ucore.scene.ui.ImageButton$ImageButtonStyle: { default: {down: button-down, up: button, over: button-over }, + empty: {}, static: {up: button }, static-down: {up: button-down }, toggle: {checked: button-down, down: button-down, up: button }, - togglemap: {checked: button-map-down, down: button-map-down, up: button-map }, + togglemap: {down: button-map-down, up: button-map }, select: {checked: button-select, up: clear }, close-window: {up: button, imageUp: icon-close, imageOver: icon-close-over, imageDown: icon-close-down, disabled: button } }, @@ -45,11 +46,11 @@ io.anuke.ucore.scene.ui.ImageTextButton$ImageTextButtonStyle: { toggle: {checked: button-down, down: button-down, up: button, font: default-font, fontColor: white, over: button-over, disabled: button, disabledFontColor: grey } }, io.anuke.ucore.scene.ui.ScrollPane$ScrollPaneStyle: { - default: {vScroll: scroll, vScrollKnob: scroll-knob-vertical, hScroll: scroll-horizontal, hScrollKnob: scroll-knob-horizontal } + default: {background: border} }, io.anuke.ucore.scene.ui.Window$WindowStyle: { default: {titleFont: default-font, background: window, titleFontColor: orange }, - dialog: {stageBackground: dialogDim, titleFont: default-font, background: window, titleFontColor: orange } + dialog: {stageBackground: dialogDim, titleFont: default-font, background: window-empty, titleFontColor: orange } }, io.anuke.ucore.scene.ui.KeybindDialog$KeybindDialogStyle: { default: {keyColor: red, keyNameColor: white}, diff --git a/core/src/io/anuke/mindustry/UI.java b/core/src/io/anuke/mindustry/UI.java index 15eab475da..527e2953e9 100644 --- a/core/src/io/anuke/mindustry/UI.java +++ b/core/src/io/anuke/mindustry/UI.java @@ -32,13 +32,15 @@ import io.anuke.ucore.scene.builders.*; import io.anuke.ucore.scene.event.Touchable; import io.anuke.ucore.scene.ui.*; import io.anuke.ucore.scene.ui.Window.WindowStyle; -import io.anuke.ucore.scene.ui.layout.*; +import io.anuke.ucore.scene.ui.layout.Stack; +import io.anuke.ucore.scene.ui.layout.Table; +import io.anuke.ucore.scene.ui.layout.Unit; import io.anuke.ucore.util.Mathf; public class UI extends SceneModule{ Table itemtable, weapontable, tools, loadingtable, desctable, respawntable, configtable; - SettingsDialog prefs; - KeybindDialog keys; + MindustrySettingsDialog prefs; + MindustryKeybindDialog keys; Dialog about, restart, levels, upgrades, load, settingserror; MenuDialog menu; Tooltip tooltip; @@ -51,15 +53,23 @@ public class UI extends SceneModule{ private Array tempItems = new Array<>(); public UI() { - Dialog.setShowAction(()-> sequence(Actions.moveToAligned(Gdx.graphics.getWidth(), 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.setShowAction(()-> sequence( + alpha(0f), + originCenter(), + moveToAligned(Gdx.graphics.getWidth()/2, Gdx.graphics.getHeight()/2, Align.center), + scaleTo(0.0f, 1f), + parallel( + scaleTo(1f, 1f, 0.1f, Interpolation.fade), + fadeIn(0.1f, Interpolation.fade) + ) + )); Dialog.setHideAction(()-> sequence( - parallel(Actions.moveBy(0, -Gdx.graphics.getHeight()/2, 0.08f, Interpolation.fade), - Actions.fadeOut(0.08f, Interpolation.fade)))); + parallel( + scaleTo(0.01f, 0.01f, 0.1f, Interpolation.fade), + fadeOut(0.1f, Interpolation.fade) + ) + )); skin.font().setUseIntegerPositions(false); skin.font().getData().setScale(Vars.fontscale); @@ -146,7 +156,7 @@ public class UI extends SceneModule{ levels = new LevelDialog(); - prefs = new SettingsDialog(); + prefs = new MindustrySettingsDialog(); prefs.setStyle(Core.skin.get("dialog", WindowStyle.class)); menu = new MenuDialog(); @@ -180,12 +190,14 @@ public class UI extends SceneModule{ } }); - keys = new KeybindDialog(); + keys = new MindustryKeybindDialog(); - about = new TextDialog("About", aboutText); - - for(Cell cell : about.content().getCells()) - cell.left(); + about = new FloatingDialog("About"); + about.addCloseButton(); + for(String text : aboutText){ + about.content().add(text).left(); + about.content().row(); + } restart = new Dialog("The core was destroyed.", "dialog"); @@ -439,12 +451,6 @@ public class UI extends SceneModule{ row(); } - - new button("About", () -> { - about.show(scene); - }); - - row(); if(Gdx.app.getType() != ApplicationType.WebGL && !android){ new button("Exit", () -> { @@ -455,9 +461,17 @@ public class UI extends SceneModule{ get().pad(Unit.dp.inPixels(16)); }}; - get().setVisible(nplay); + visible(nplay); }}.end(); + //settings icon + new table(){{ + atop().aright(); + new imagebutton("icon-settings", Unit.dp.inPixels(40f), ()->{ + about.show(); + }).get().pad(14).padTop(8); + }}.end().visible(nplay); + if(debug){ new table(){{ abottom(); diff --git a/core/src/io/anuke/mindustry/Vars.java b/core/src/io/anuke/mindustry/Vars.java index 4f6667c870..773ead1ee4 100644 --- a/core/src/io/anuke/mindustry/Vars.java +++ b/core/src/io/anuke/mindustry/Vars.java @@ -48,11 +48,11 @@ public class Vars{ public static Player player; public static String[] aboutText = { - "Made by [ROYAL]Anuken[] for the" + "\nGDL Metal Monstrosity jam.", + "Created by [ROYAL]Anuken.[]", + "Originally an entry in the [orange]GDL[] MM Jam.", "", - "Sources used:", - "- [YELLOW]bfxr.com[] for sound effects", - "- [RED]freemusicarchive.org[] for music", + "Credits:", + "- SFX made with [YELLOW]bfxr.com[]", "- Music made by [GREEN]RoccoW[]", }; } diff --git a/core/src/io/anuke/mindustry/resource/Recipe.java b/core/src/io/anuke/mindustry/resource/Recipe.java index 991258ca8d..2862196203 100644 --- a/core/src/io/anuke/mindustry/resource/Recipe.java +++ b/core/src/io/anuke/mindustry/resource/Recipe.java @@ -41,6 +41,8 @@ public enum Recipe{ mortarturret(weapon, WeaponBlocks.mortarturret, stack(Item.steel, 20), stack(Item.titanium, 15)), teslaturret(weapon, WeaponBlocks.teslaturret, stack(Item.steel, 10), stack(Item.titanium, 15), stack(Item.dirium, 15)), plasmaturret(weapon, WeaponBlocks.plasmaturret, stack(Item.steel, 10), stack(Item.titanium, 10), stack(Item.dirium, 15)), + chainturret(weapon, WeaponBlocks.chainturret, stack(Item.steel, 10), stack(Item.titanium, 10), stack(Item.dirium, 15)), + rocketturret(weapon, WeaponBlocks.plasmaturret, stack(Item.steel, 10), stack(Item.titanium, 10), stack(Item.dirium, 15)), smelter(crafting, ProductionBlocks.smelter, stack(Item.stone, 40), stack(Item.iron, 40)), crucible(crafting, ProductionBlocks.crucible, stack(Item.titanium, 40), stack(Item.steel, 40)), diff --git a/core/src/io/anuke/mindustry/ui/FloatingDialog.java b/core/src/io/anuke/mindustry/ui/FloatingDialog.java new file mode 100644 index 0000000000..033fe19652 --- /dev/null +++ b/core/src/io/anuke/mindustry/ui/FloatingDialog.java @@ -0,0 +1,33 @@ +package io.anuke.mindustry.ui; + +import com.badlogic.gdx.Input.Keys; +import com.badlogic.gdx.graphics.Color; +import com.badlogic.gdx.utils.Align; + +import io.anuke.ucore.scene.ui.Dialog; +import io.anuke.ucore.scene.ui.Image; +import io.anuke.ucore.scene.ui.layout.Unit; + +public class FloatingDialog extends Dialog{ + + public FloatingDialog(String title){ + super(title, "dialog"); + setFillParent(true); + title().setAlignment(Align.center); + getTitleTable().row(); + getTitleTable().add(new Image("white")) + .growX().height(3f).pad(4f).units(Unit.dp).get().setColor(Color.ORANGE); + } + + @Override + public void addCloseButton(){ + buttons().addImageTextButton("Back", "icon-arrow-left", Unit.dp.inPixels(30f), ()->{ + hide(); + }).size(230f, 64f).units(Unit.dp); + + keyDown(key->{ + if(key == Keys.ESCAPE || key == Keys.BACK) + hide(); + }); + } +} diff --git a/core/src/io/anuke/mindustry/ui/LevelDialog.java b/core/src/io/anuke/mindustry/ui/LevelDialog.java index baa62edcd3..71ecfd3357 100644 --- a/core/src/io/anuke/mindustry/ui/LevelDialog.java +++ b/core/src/io/anuke/mindustry/ui/LevelDialog.java @@ -5,56 +5,70 @@ import com.badlogic.gdx.graphics.g2d.TextureRegion; import io.anuke.mindustry.Vars; import io.anuke.mindustry.world.Map; import io.anuke.mindustry.world.World; +import io.anuke.ucore.core.Core; import io.anuke.ucore.core.Settings; +import io.anuke.ucore.core.Timers; import io.anuke.ucore.function.StringSupplier; -import io.anuke.ucore.scene.ui.ButtonGroup; -import io.anuke.ucore.scene.ui.Dialog; import io.anuke.ucore.scene.ui.ImageButton; +import io.anuke.ucore.scene.ui.ScrollPane; +import io.anuke.ucore.scene.ui.layout.Table; import io.anuke.ucore.scene.ui.layout.Unit; -public class LevelDialog extends Dialog{ +public class LevelDialog extends FloatingDialog{ private Map selectedMap = Map.delta; + private TextureRegion region = new TextureRegion(); public LevelDialog(){ super("Level Select"); + getTitleTable().getCell(title()).growX().center(); + getTitleTable().center(); setup(); } void setup(){ addCloseButton(); - getButtonTable().addButton("Play", ()->{ - hide(); - Vars.control.playMap(selectedMap); - }).pad(3).size(180, 44).units(Unit.dp); + Table maps = new Table(); + ScrollPane pane = new ScrollPane(maps); - ButtonGroup mapgroup = new ButtonGroup<>(); + int maxwidth = 4; - for(Map map : Map.values()){ + for(int i = 0; i < Map.values().length; i ++){ + Map map = Map.values()[i]; + if(!map.visible) continue; - content().add(map.name()); - } - - content().row(); - - for(Map map : Map.values()){ - if(!map.visible) continue; + if(i % maxwidth == 0){ + maps.row(); + } + + Table inset = new Table("pane"); + inset.add("[orange]"+map.name()).pad(3f).units(Unit.dp); + inset.row(); + inset.add((StringSupplier)(()->"High Score: [lime]" + Settings.getInt("hiscore" + map.name()))) + .pad(3f).units(Unit.dp); + inset.pack(); + + float images = Unit.dp.inPixels(154); ImageButton image = new ImageButton(new TextureRegion(World.getTexture(map)), "togglemap"); - mapgroup.add(image); + image.row(); + image.add(inset).width(images+6); image.clicked(()->{ selectedMap = map; + hide(); + Vars.control.playMap(selectedMap); }); - image.getImageCell().size(Unit.dp.inPixels(164)); - content().add(image).size(Unit.dp.inPixels(180)); + image.getImageCell().size(images); + maps.add(image).width(Unit.dp.inPixels(170)).pad(4f).units(Unit.dp); } - content().row(); + content().add(pane); - for(Map map : Map.values()){ - if(!map.visible) continue; - - content().add((StringSupplier)(()->"High Score: [lime]" + Settings.getInt("hiscore" + map.name()))); - } + shown(()->{ + //this is necessary for some reason? + Timers.run(2f, ()->{ + Core.scene.setScrollFocus(pane); + }); + }); } } diff --git a/core/src/io/anuke/mindustry/ui/LoadDialog.java b/core/src/io/anuke/mindustry/ui/LoadDialog.java index 3a5aeff2e0..c9c74a0c4d 100644 --- a/core/src/io/anuke/mindustry/ui/LoadDialog.java +++ b/core/src/io/anuke/mindustry/ui/LoadDialog.java @@ -8,25 +8,27 @@ import io.anuke.mindustry.GameState; import io.anuke.mindustry.GameState.State; import io.anuke.mindustry.Vars; import io.anuke.mindustry.io.SaveIO; -import io.anuke.ucore.scene.ui.Dialog; import io.anuke.ucore.scene.ui.Label; import io.anuke.ucore.scene.ui.TextButton; import io.anuke.ucore.scene.ui.layout.Unit; //TODO unified save/load dialogs -public class LoadDialog extends Dialog{ +public class LoadDialog extends FloatingDialog{ - public LoadDialog() { - super("Load Game"); + public LoadDialog(){ + this("Load Game"); + } + + public LoadDialog(String title) { + super(title); setup(); + shown(() -> { setup(); }); - getButtonTable().addButton("Back", () -> { - hide(); - }).pad(2).size(180, 44).units(Unit.dp); + addCloseButton(); } private void setup(){ @@ -49,34 +51,37 @@ public class LoadDialog extends Dialog{ button.add(info).padBottom(2).padTop(6); button.getLabel().setFontScale(Unit.dp.inPixels(0.75f)); - button.setDisabled(!SaveIO.isSaveValid(i)); - - button.clicked(() -> { - if(!button.isDisabled()){ - Vars.ui.showLoading(); - - Timer.schedule(new Task(){ - @Override - public void run(){ - Vars.ui.hideLoading(); - hide(); - try{ - SaveIO.loadFromSlot(slot); - }catch(Exception e){ - e.printStackTrace(); - Vars.ui.showError("[orange]Save file corrupted or invalid!"); - return; - } - Vars.ui.hideMenu(); - GameState.set(State.playing); - } - }, 3f/60f); - } - }); + modifyButton(button, slot); content().add(button).size(400, 80).units(Unit.dp).pad(2); content().row(); } } + + public void modifyButton(TextButton button, int slot){ + button.setDisabled(!SaveIO.isSaveValid(slot)); + button.clicked(() -> { + if(!button.isDisabled()){ + Vars.ui.showLoading(); + + Timer.schedule(new Task(){ + @Override + public void run(){ + Vars.ui.hideLoading(); + hide(); + try{ + SaveIO.loadFromSlot(slot); + }catch(Exception e){ + e.printStackTrace(); + Vars.ui.showError("[orange]Save file corrupted or invalid!"); + return; + } + Vars.ui.hideMenu(); + GameState.set(State.playing); + } + }, 3f/60f); + } + }); + } } diff --git a/core/src/io/anuke/mindustry/ui/MenuDialog.java b/core/src/io/anuke/mindustry/ui/MenuDialog.java index 31da8b3cef..d4a48894ef 100644 --- a/core/src/io/anuke/mindustry/ui/MenuDialog.java +++ b/core/src/io/anuke/mindustry/ui/MenuDialog.java @@ -9,17 +9,16 @@ import io.anuke.mindustry.GameState; import io.anuke.mindustry.GameState.State; import io.anuke.mindustry.Vars; import io.anuke.ucore.scene.ui.ConfirmDialog; -import io.anuke.ucore.scene.ui.Dialog; import io.anuke.ucore.scene.ui.layout.Cell; import io.anuke.ucore.scene.ui.layout.Unit; -public class MenuDialog extends Dialog{ +public class MenuDialog extends FloatingDialog{ private SaveDialog save = new SaveDialog(); private LoadDialog load = new LoadDialog(); public boolean wasPaused = false; public MenuDialog(){ - super("Paused", "dialog"); + super("Paused"); setup(); } diff --git a/core/src/io/anuke/mindustry/ui/MindustryKeybindDialog.java b/core/src/io/anuke/mindustry/ui/MindustryKeybindDialog.java new file mode 100644 index 0000000000..03aa115db4 --- /dev/null +++ b/core/src/io/anuke/mindustry/ui/MindustryKeybindDialog.java @@ -0,0 +1,34 @@ +package io.anuke.mindustry.ui; + +import com.badlogic.gdx.Input.Keys; +import com.badlogic.gdx.graphics.Color; +import com.badlogic.gdx.utils.Align; + +import io.anuke.ucore.scene.ui.Image; +import io.anuke.ucore.scene.ui.KeybindDialog; +import io.anuke.ucore.scene.ui.layout.Unit; + +public class MindustryKeybindDialog extends KeybindDialog{ + + public MindustryKeybindDialog(){ + setDialog(); + + setFillParent(true); + title().setAlignment(Align.center); + getTitleTable().row(); + getTitleTable().add(new Image("white")) + .growX().height(3f).pad(4f).units(Unit.dp).get().setColor(Color.ORANGE); + } + + @Override + public void addCloseButton(){ + buttons().addImageTextButton("Back", "icon-arrow-left", Unit.dp.inPixels(30f), ()->{ + hide(); + }).size(230f, 64f).units(Unit.dp); + + keyDown(key->{ + if(key == Keys.ESCAPE || key == Keys.BACK) + hide(); + }); + } +} diff --git a/core/src/io/anuke/mindustry/ui/MindustrySettingsDialog.java b/core/src/io/anuke/mindustry/ui/MindustrySettingsDialog.java new file mode 100644 index 0000000000..f44cb95fb9 --- /dev/null +++ b/core/src/io/anuke/mindustry/ui/MindustrySettingsDialog.java @@ -0,0 +1,32 @@ +package io.anuke.mindustry.ui; + +import com.badlogic.gdx.Input.Keys; +import com.badlogic.gdx.graphics.Color; +import com.badlogic.gdx.utils.Align; + +import io.anuke.ucore.scene.ui.Image; +import io.anuke.ucore.scene.ui.SettingsDialog; +import io.anuke.ucore.scene.ui.layout.Unit; + +public class MindustrySettingsDialog extends SettingsDialog{ + + public MindustrySettingsDialog(){ + setFillParent(true); + title().setAlignment(Align.center); + getTitleTable().row(); + getTitleTable().add(new Image("white")) + .growX().height(3f).pad(4f).units(Unit.dp).get().setColor(Color.ORANGE); + } + + @Override + public void addCloseButton(){ + buttons().addImageTextButton("Back", "icon-arrow-left", Unit.dp.inPixels(30f), ()->{ + hide(); + }).size(230f, 64f).units(Unit.dp); + + keyDown(key->{ + if(key == Keys.ESCAPE || key == Keys.BACK) + hide(); + }); + } +} diff --git a/core/src/io/anuke/mindustry/ui/SaveDialog.java b/core/src/io/anuke/mindustry/ui/SaveDialog.java index b978afcf84..733fdf5f7a 100644 --- a/core/src/io/anuke/mindustry/ui/SaveDialog.java +++ b/core/src/io/anuke/mindustry/ui/SaveDialog.java @@ -1,70 +1,38 @@ package io.anuke.mindustry.ui; -import com.badlogic.gdx.utils.Align; import com.badlogic.gdx.utils.Timer; import com.badlogic.gdx.utils.Timer.Task; import com.badlogic.gdx.utils.reflect.ClassReflection; import io.anuke.mindustry.Vars; import io.anuke.mindustry.io.SaveIO; -import io.anuke.ucore.scene.ui.*; +import io.anuke.ucore.scene.ui.ConfirmDialog; +import io.anuke.ucore.scene.ui.TextButton; import io.anuke.ucore.scene.ui.layout.Cell; import io.anuke.ucore.scene.ui.layout.Unit; //TODO unified save/load dialogs -public class SaveDialog extends Dialog{ - - public SaveDialog() { +public class SaveDialog extends LoadDialog{ + + public SaveDialog(){ super("Save Game"); - setup(); - - shown(()->{ - setup(); - }); - - getButtonTable().addButton("Back", ()->{ - hide(); - }).pad(2).size(180, 44).units(Unit.dp); } - private void setup(){ - content().clear(); - - content().add("Select a save slot.").padBottom(2); - content().row(); - - for(int i = 0; i < Vars.saveSlots; i ++){ - final int slot = i; - - TextButton button = new TextButton("[orange]Slot " + (i+1)); - button.getLabelCell().top().left().growX(); - button.row(); - button.pad(Unit.dp.inPixels(10)); - - Label info = new Label("[gray]" + (!SaveIO.isSaveValid(i) ? "" : "Wave " + - SaveIO.getWave(slot)+"\nLast Saved: " + SaveIO.getTimeString(i))); - info.setAlignment(Align.center, Align.center); - - button.add(info).padBottom(2).padTop(6); - button.getLabel().setFontScale(Unit.dp.inPixels(0.75f)); - - button.clicked(()->{ - if(SaveIO.isSaveValid(slot)){ - new ConfirmDialog("Overwrite", "Are you sure you want to overwrite\nthis save slot?", ()->{ - save(slot); - }){{ - content().pad(16); - for(Cell cell : getButtonTable().getCells()) - cell.size(110, 45).pad(4).units(Unit.dp); - }}.show(); - }else{ + @Override + public void modifyButton(TextButton button, int slot){ + button.clicked(()->{ + if(SaveIO.isSaveValid(slot)){ + new ConfirmDialog("Overwrite", "Are you sure you want to overwrite\nthis save slot?", ()->{ save(slot); - } - }); - - content().add(button).size(400, 80).units(Unit.dp).pad(2); - content().row(); - } + }){{ + content().pad(16); + for(Cell cell : getButtonTable().getCells()) + cell.size(110, 45).pad(4).units(Unit.dp); + }}.show(); + }else{ + save(slot); + } + }); } void save(int slot){ diff --git a/core/src/io/anuke/mindustry/ui/UpgradeDialog.java b/core/src/io/anuke/mindustry/ui/UpgradeDialog.java index e86ece0264..d6ef26b125 100644 --- a/core/src/io/anuke/mindustry/ui/UpgradeDialog.java +++ b/core/src/io/anuke/mindustry/ui/UpgradeDialog.java @@ -12,10 +12,12 @@ import io.anuke.mindustry.resource.Weapon; import io.anuke.ucore.core.Draw; import io.anuke.ucore.core.Effects; import io.anuke.ucore.function.Listenable; -import io.anuke.ucore.scene.ui.*; +import io.anuke.ucore.scene.ui.Image; +import io.anuke.ucore.scene.ui.TextButton; +import io.anuke.ucore.scene.ui.Tooltip; import io.anuke.ucore.scene.ui.layout.Table; -public class UpgradeDialog extends Dialog{ +public class UpgradeDialog extends FloatingDialog{ boolean wasPaused = false; public UpgradeDialog() { diff --git a/core/src/io/anuke/mindustry/world/Map.java b/core/src/io/anuke/mindustry/world/Map.java index 0e4e22cb39..3854d5d953 100644 --- a/core/src/io/anuke/mindustry/world/Map.java +++ b/core/src/io/anuke/mindustry/world/Map.java @@ -1,15 +1,27 @@ package io.anuke.mindustry.world; public enum Map{ - delta, canyon, pit, maze, tutorial(false), test(false); + delta("Starting map."), + canyon("Badly drawn map."), + pit("Eck."), + maze("it's okay."), + maze2("test"), + maze3("test"), + maze4("test"), + maze5("test"), + tutorial(false), + test(false); public final boolean visible; + public final String description; private Map(boolean visible){ this.visible = visible; + this.description = "Test map!"; } - private Map(){ - this(true); + private Map(String description){ + this.visible = true; + this.description = description; } } diff --git a/core/src/io/anuke/mindustry/world/blocks/WeaponBlocks.java b/core/src/io/anuke/mindustry/world/blocks/WeaponBlocks.java index 23db069ea7..541bed526c 100644 --- a/core/src/io/anuke/mindustry/world/blocks/WeaponBlocks.java +++ b/core/src/io/anuke/mindustry/world/blocks/WeaponBlocks.java @@ -161,5 +161,19 @@ public class WeaponBlocks{ health = 180; ammoMultiplier = 40; } + }, + + chainturret = new Turret("chainturret"){ + { + inaccuracy = 7f; + formalName = "chain turret"; + range = 60f; + reload = 40f; + bullet = BulletType.shell; + ammo = Item.coal; + health = 360; + ammoMultiplier = 10; + width = height = 2; + } }; } diff --git a/core/src/io/anuke/mindustry/world/blocks/types/defense/Turret.java b/core/src/io/anuke/mindustry/world/blocks/types/defense/Turret.java index 1d312b1d9c..9ddf41939a 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/defense/Turret.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/defense/Turret.java @@ -51,7 +51,12 @@ public class Turret extends Block{ @Override public void draw(Tile tile){ Vector2 offset = getPlaceOffset(); - Draw.rect("block", tile.worldx() + offset.x, tile.worldy() + offset.y); + + if(isMultiblock()){ + Draw.rect("block-" + width + "x" + height, tile.worldx() + offset.x, tile.worldy() + offset.y); + }else{ + Draw.rect("block", tile.worldx() + offset.x, tile.worldy() + offset.y); + } } @Override @@ -80,7 +85,7 @@ public class Turret extends Block{ if(fract > 0) fract = Mathf.clamp(fract, 0.24f, 1f); - Vars.renderer.drawBar(Color.GREEN, tile.worldx() + offset.x, tile.worldy() + 6 + offset.y, fract); + Vars.renderer.drawBar(Color.GREEN, tile.worldx() + offset.x, 2 + tile.worldy() + height/2f*Vars.tilesize + offset.y, fract); } @Override @@ -208,7 +213,7 @@ public class Turret extends Block{ public static class TurretEntity extends TileEntity{ public TileEntity blockTarget; public int ammo; - public float rotation; + public float rotation = 90; public Enemy target; @Override