From 9c0b8c7e54217120c836b53c97e75ddf26896010 Mon Sep 17 00:00:00 2001 From: Anuken Date: Tue, 24 Oct 2017 14:11:58 -0400 Subject: [PATCH] Added uranium and oil refinery --- .../sprites/blocks/liquidjunction.png | Bin 0 -> 243 bytes .../assets-raw/sprites/blocks/oilrefinery.png | Bin 0 -> 241 bytes .../sprites/blocks/poweredconveyor.png | Bin 0 -> 191 bytes .../sprites/blocks/poweredconveyormove.png | Bin 0 -> 191 bytes core/assets-raw/sprites/blocks/uranium1.png | Bin 0 -> 272 bytes core/assets-raw/sprites/blocks/uranium2.png | Bin 0 -> 271 bytes core/assets-raw/sprites/blocks/uranium3.png | Bin 0 -> 258 bytes .../sprites/blocks/uraniumdrill.png | Bin 0 -> 235 bytes core/assets-raw/sprites/icon-iron.png | Bin 240 -> 238 bytes core/assets-raw/sprites/icon-steel.png | Bin 277 -> 276 bytes core/assets-raw/sprites/icon-uranium.png | Bin 0 -> 282 bytes core/assets-raw/sprites/ui/icon-crafting.png | Bin 0 -> 185 bytes core/assets-raw/sprites/ui/icon-defense.png | Bin 200 -> 177 bytes core/assets-raw/sprites/ui/icon-weapon.png | Bin 0 -> 200 bytes core/assets/shaders/shield.fragment | 5 +- core/assets/sprites/sprites.atlas | 475 ++++++++++-------- core/assets/sprites/sprites.png | Bin 39489 -> 40100 bytes .../src/io/anuke/mindustry/EffectCreator.java | 7 + core/src/io/anuke/mindustry/UI.java | 28 +- .../mindustry/entities/effect/Shield.java | 6 +- .../src/io/anuke/mindustry/resource/Item.java | 2 +- .../src/io/anuke/mindustry/resource/Mech.java | 16 + .../io/anuke/mindustry/resource/Recipe.java | 65 +-- .../io/anuke/mindustry/resource/Section.java | 2 +- .../io/anuke/mindustry/world/Generator.java | 4 + .../anuke/mindustry/world/blocks/Blocks.java | 4 + .../world/blocks/DistributionBlocks.java | 5 +- .../world/blocks/ProductionBlocks.java | 30 +- .../blocks/types/defense/ShieldBlock.java | 6 +- .../types/distribution/LiquidJunction.java | 45 ++ .../types/distribution/PowerBooster.java | 15 +- .../{Purifier.java => LiquidCrafter.java} | 17 +- .../world/blocks/types/production/Pump.java | 1 + 33 files changed, 475 insertions(+), 258 deletions(-) create mode 100644 core/assets-raw/sprites/blocks/liquidjunction.png create mode 100644 core/assets-raw/sprites/blocks/oilrefinery.png create mode 100644 core/assets-raw/sprites/blocks/poweredconveyor.png create mode 100644 core/assets-raw/sprites/blocks/poweredconveyormove.png create mode 100644 core/assets-raw/sprites/blocks/uranium1.png create mode 100644 core/assets-raw/sprites/blocks/uranium2.png create mode 100644 core/assets-raw/sprites/blocks/uranium3.png create mode 100644 core/assets-raw/sprites/blocks/uraniumdrill.png create mode 100644 core/assets-raw/sprites/icon-uranium.png create mode 100644 core/assets-raw/sprites/ui/icon-crafting.png create mode 100644 core/assets-raw/sprites/ui/icon-weapon.png create mode 100644 core/src/io/anuke/mindustry/resource/Mech.java create mode 100644 core/src/io/anuke/mindustry/world/blocks/types/distribution/LiquidJunction.java rename core/src/io/anuke/mindustry/world/blocks/types/production/{Purifier.java => LiquidCrafter.java} (81%) diff --git a/core/assets-raw/sprites/blocks/liquidjunction.png b/core/assets-raw/sprites/blocks/liquidjunction.png new file mode 100644 index 0000000000000000000000000000000000000000..0a0bfdcfbaa27fb7819fcb3554f3ccafb9f3948d GIT binary patch literal 243 zcmeAS@N?(olHy`uVBq!ia0y~yVBi2@4mJh`h9ms@x)~T4I14-?iy0WWg+Z8+Vb&Z8 z1_lQ95>H=O_J>>&0^-~b%YIuhFfd4#xJHyX=jZ08=9Mrw7o{eaq^2m8XO?6rxO@5r zgg5euGcYjZdb&73;<`Y$SuUe{)|}n!(;Htj_4oX<`^mZXYu2_i zmj3T$8OqrcdKevC0?xcyvvtA|^U7)lm5tY`SU)XHdwWmXbG=&m@=xtaY3i+$uHDM5 r3euSV$Lm_hj?D7?!K#9SH4N+vjgB9mbM`m`0|SGntDnm{r-UW|a6(a^ literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/oilrefinery.png b/core/assets-raw/sprites/blocks/oilrefinery.png new file mode 100644 index 0000000000000000000000000000000000000000..acfe53f47f3e547022a057194fa2c0384382f986 GIT binary patch literal 241 zcmeAS@N?(olHy`uVBq!ia0y~yVBi2@4mJh`h9ms@x)~T4I14-?iy0WWg+Z8+Vb&Z8 z1_lQ95>H=O_J>>&0@||28_lONFfd4#xJHyX=jZ08=9Mrw7o{eaq^2m8XO?6rxO@5r zgg5euGcYh@d%8G=NL+61-^lBt$m1;k!p!3^-zCg5mp(mm zKJ{GX8J>m?hJ+r*29>Ve@}4OgQ{z|-j8*=!ep>MC_Fi+r!t70(J}r9mjy+**>Dgh<@Na@GinLM2TSgUHy&fY!nV>bf>1B0ilpUXO@geCysMO6C$ literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/poweredconveyor.png b/core/assets-raw/sprites/blocks/poweredconveyor.png new file mode 100644 index 0000000000000000000000000000000000000000..bae08a3d202098f7226db6b781b3ef85ec74aa77 GIT binary patch literal 191 zcmeAS@N?(olHy`uVBq!ia0y~yVBi2@4mJh`h9ms@x)~T4I14-?iy0WWg+Z8+Vb&Z8 z1_lQ95>H=O_J>>&0zzsPe8C`1k|nMYCC>S|xv6<249-QVi6yBi3gww484B*6z5(Hl zeBulY43?fQjv*44lix%a{I*~Gm6wf;jjip!yQu^SO!(RJ@ZrP%_BB5aC@3f#Xy{E# jQea?fW^!}7$HJg%EdR-yVe=OT1_lOCS3j3^P6H=O_J>>&0zyjl$U~6V_bGpaEaOs<@(qp}6H4F?444$rjF6*2UngC`?HAnye literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/uranium1.png b/core/assets-raw/sprites/blocks/uranium1.png new file mode 100644 index 0000000000000000000000000000000000000000..c89c866a93f35ff9c3c089c90b1a9aca7e7d771d GIT binary patch literal 272 zcmeAS@N?(olHy`uVBq!ia0y~yVBi2@4kiW$2Jc+WI}8jAoCO|{#S9GG!XV7ZFl&wk z0|NtliKnkC`$H}XA!eNuZN3={3=EPbt`Q~9`MJ5Nc_j?aMX8A;sVNHOnI#zt?w-B@ z;f;La3=9lio-U3d9M_Y5{QSZ?{;XQKYVYEgjSCh$`2GF8VvL%jqazzzoAmbeRaZ3k z)c>E?*vNP&b=#&*zbf1Nou6Kwx$?fkq8|UF@pJy2{_^kd@9*#L+ee%`d*Hx>z~u)H z9ALP3{0IYcQ&W=wvto>zNvnBYe5*!M&OPCS2M#b4if+nN>v$>9DzHG{=hwf#zcc)p XX_uaoeP{;*0|SGntDnm{r-UW|y$xw) literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/uranium2.png b/core/assets-raw/sprites/blocks/uranium2.png new file mode 100644 index 0000000000000000000000000000000000000000..20eb054ec3e83bf972b089dd80fc34febd98e284 GIT binary patch literal 271 zcmeAS@N?(olHy`uVBq!ia0y~yVBi2@4kiW$2Jc+WI}8jAoCO|{#S9GG!XV7ZFl&wk z0|NtliKnkC`$H}XAr`in8lg%C1_sFz*N775{M_8syb=cIqSVBa)D(sC%#sWRcTeAd z@J2py1_p*sPZ!4!j_b)jetu~UjE;^6zrVlle8Y!_hlguoyr|Otsw-f|B^iES#6aO^h14|j%Y_0OV U)1?C#7#J8lUHx3vIVCg!0L!CV!TFVdQ I&MBb@0E;H=O_J>>&LM$dzRy+S>U|^6eag8W(&d<$F%`0JWE=o--Nlj5G&n(GMaQE~L z2yf&QXJBAR^>lFzk+|I2w~_aN0uPIR2k#3T2HE5dtgA1k%1M>qY!vm-5?VIVtQ~bMW;F9*y6JvmGkXgTax!z-ZnH} j@hbZX%bSF#zpNQn^4~Yr##b^hFfe$!`njxgN@xNAyb4U? literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/icon-iron.png b/core/assets-raw/sprites/icon-iron.png index d46c14a81646686ffdcddd7f28da6a1ae1456c46..f9072d1348fa7a97900ed0b07fa355f95ffc4a84 100644 GIT binary patch delta 145 zcmeys_>OUc11Fb+5QBV7b^YFno*K0oo-U3d5|?xP9YtLgIat}x`zJE^Cd=QJIK~OPO{J2Fo*MO8o-U3d5|?w&1@f{e^0;1%-lQhbz;#A}*|Nfc zS>+D%&;Enbstlp3&;N7=W&0|1 z2{`zj{IP1vAYmN*I3=E#GelF{r5}E)k C!!}$1 diff --git a/core/assets-raw/sprites/icon-steel.png b/core/assets-raw/sprites/icon-steel.png index ee6ffe781c48ac8cd7db720508d8c5ab4caef85b..1f4cd1eda8101ba4edcb9ece5ca9ef699c172aee 100644 GIT binary patch delta 184 zcmbQrG=*t`11Fb+5F?u+_cNP`o*MOio-U3d5|?B9H*&T*2)Nwunz*50r^Ky}(3=Oo z7H<^IVRmb4->HzZ%kBRK`-f+eXH4v1Sa3~>;j#&*zNbq-cJGuRduL delta 185 zcmbQjG?i(B11F0dgP}lw!e`rwo*MQ2o-U3d5|?B975Q2X1YGW$c^px*Wnj9wyFjk* zg0Z63M2i$w_Kc>8{VVPtkhlD7G*hsgeZjR?44-Yd^*eV5XMdGQHV@tEyl~1V&gksD zya@)zeUB4nsWH@jsJ*{#mC&?Q!G_N^Kl5KnGk9t8C8RBx(qXu0l@P}zyut)#x?|(ZvJ}_)bw0Fs!a#V$Zfq}u()z4*}Q$iB}7s5*H diff --git a/core/assets-raw/sprites/icon-uranium.png b/core/assets-raw/sprites/icon-uranium.png new file mode 100644 index 0000000000000000000000000000000000000000..0dd3f67a71389752cf2c7185f530cae0645c4a08 GIT binary patch literal 282 zcmeAS@N?(olHy`uVBq!ia0y~yVBi2@4mJh`h9ms@x)~T4I14-?iy0WWg+Z8+Vb&Z8 z1_lQ95>H=O_J>>&LX0wZGUeSE7#Ji=Tq8=H^K)}k^GX<;i&7IyQd1PlGfOfQ+&z5* z!W;R-85kI*c)B=-NL&s*r^t86L7??vz4?s1RV!9HKPsFmvv{6#!Z(J{ISXZ4Cisf3 z)ZWF(ejs40X3?r`GyROxp3OdKti# z;MD4HQhHt0&AQjQ-C;W;zfCQ+R^xTp;`LuK>Zm+-+cM@UOD-Ny3d~#h)a|52Mr4|J kTIH1VnQGsEKa7tNx?|$#^hNFx0|Nttr>mdKI;Vst0RGiFy8r+H literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/ui/icon-defense.png b/core/assets-raw/sprites/ui/icon-defense.png index 003074bc564c1c37b47a18927e19ef76e7c4953d..f807b78001cfe644669ab41de2a7132022b07f60 100644 GIT binary patch delta 89 zcmX@XxRG&!1230^0Hef>27W^Z28Mu%zRHdjAMZ0K^5}5r^8AS?`rgTst u@I=RH$5E-+vg^iu=0qMJo)r)5`OKKP zXF0V!zpNy&fl*CI?T>qMvc?haj3poLA1q*FV`Fn$A)#y}t#$lBhs=W?3=Fqe^ybW4 T_jNA=0|SGntDnm{r-UW|nmZ_A diff --git a/core/assets-raw/sprites/ui/icon-weapon.png b/core/assets-raw/sprites/ui/icon-weapon.png new file mode 100644 index 0000000000000000000000000000000000000000..003074bc564c1c37b47a18927e19ef76e7c4953d GIT binary patch literal 200 zcmeAS@N?(olHy`uVBq!ia0y~yU;weXIM^5%7 0.1 || texture2D(u_texture, T + vec2(0, -step) * v).a > 0.1 || diff --git a/core/assets/sprites/sprites.atlas b/core/assets/sprites/sprites.atlas index 54cf98a71d..7061a50c1b 100644 --- a/core/assets/sprites/sprites.atlas +++ b/core/assets/sprites/sprites.atlas @@ -41,133 +41,133 @@ blocks/coal2 index: -1 blocks/coal3 rotate: false - xy: 393, 372 + xy: 397, 348 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/coaldrill rotate: false - xy: 471, 443 + xy: 397, 338 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/coalgenerator rotate: false - xy: 481, 443 + xy: 397, 328 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/coalpurifier rotate: false - xy: 469, 433 + xy: 397, 318 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/compositewall rotate: false - xy: 469, 423 + xy: 397, 308 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/conduit rotate: false - xy: 479, 433 + xy: 397, 298 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/conduitbottom rotate: false - xy: 469, 413 + xy: 397, 288 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/conduitliquid rotate: false - xy: 479, 423 + xy: 471, 443 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/conduittop rotate: false - xy: 479, 413 + xy: 481, 443 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/conveyor rotate: false - xy: 389, 276 + xy: 469, 433 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/conveyormove rotate: false - xy: 389, 266 + xy: 469, 423 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/core rotate: false - xy: 389, 256 + xy: 479, 433 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/cross rotate: false - xy: 389, 246 + xy: 469, 413 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/crucible rotate: false - xy: 389, 236 + xy: 479, 423 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/deepwater rotate: false - xy: 117, 4 + xy: 479, 413 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/dirt1 rotate: false - xy: 230, 62 + xy: 389, 276 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/dirt2 rotate: false - xy: 230, 52 + xy: 389, 266 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/dirt3 rotate: false - xy: 230, 42 + xy: 389, 256 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/dirtblock rotate: false - xy: 228, 32 + xy: 389, 246 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -188,14 +188,14 @@ blocks/doubleturret index: -1 blocks/drill rotate: false - xy: 409, 402 + xy: 389, 236 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/duriumwall rotate: false - xy: 405, 392 + xy: 399, 278 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -209,35 +209,35 @@ blocks/flameturret index: -1 blocks/grass1 rotate: false - xy: 403, 372 + xy: 399, 258 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/grass2 rotate: false - xy: 397, 362 + xy: 399, 248 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/grass3 rotate: false - xy: 397, 352 + xy: 399, 238 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/grassblock rotate: false - xy: 397, 342 + xy: 117, 4 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/grassblock2 rotate: false - xy: 397, 332 + xy: 230, 62 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -251,56 +251,56 @@ blocks/grassedge index: -1 blocks/iron1 rotate: false - xy: 407, 342 + xy: 371, 224 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/iron2 rotate: false - xy: 407, 332 + xy: 371, 214 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/iron3 rotate: false - xy: 407, 322 + xy: 381, 226 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/irondrill rotate: false - xy: 407, 312 + xy: 381, 216 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/ironwall rotate: false - xy: 407, 302 + xy: 371, 204 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/junction rotate: false - xy: 407, 292 + xy: 381, 206 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/laserturret rotate: false - xy: 385, 310 + xy: 385, 286 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 blocks/lava rotate: false - xy: 413, 372 + xy: 391, 226 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -312,51 +312,58 @@ blocks/lavaedge orig: 12, 12 offset: 0, 0 index: -1 +blocks/liquidjunction + rotate: false + xy: 391, 216 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 blocks/liquidrouter rotate: false - xy: 417, 362 + xy: 391, 206 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/machineturret rotate: false - xy: 385, 298 + xy: 128, 26 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 blocks/megarepairturret rotate: false - xy: 385, 286 + xy: 140, 26 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 blocks/mortarturret rotate: false - xy: 128, 26 + xy: 152, 26 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 blocks/mossblock rotate: false - xy: 417, 342 + xy: 401, 218 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/mossstone rotate: false - xy: 417, 342 + xy: 401, 218 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/oil rotate: false - xy: 417, 322 + xy: 491, 443 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -368,135 +375,156 @@ blocks/oiledge orig: 12, 12 offset: 0, 0 index: -1 -blocks/omnidrill - rotate: false - xy: 417, 312 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -blocks/plasmaturret - rotate: false - xy: 140, 26 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 -blocks/pump - rotate: false - xy: 417, 292 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -blocks/repairturret - rotate: false - xy: 152, 26 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 -blocks/rock - rotate: false - xy: 371, 214 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -blocks/rock2 - rotate: false - xy: 381, 226 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -blocks/rock2shadow - rotate: false - xy: 381, 216 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -blocks/rockshadow - rotate: false - xy: 371, 204 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -blocks/router - rotate: false - xy: 381, 206 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -blocks/shadow - rotate: false - xy: 164, 26 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 -blocks/shieldgenerator - rotate: false - xy: 391, 226 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -blocks/shotgunturret - rotate: false - xy: 176, 26 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 -blocks/shrub - rotate: false - xy: 391, 216 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -blocks/shrubshadow - rotate: false - xy: 391, 206 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -blocks/smelter - rotate: false - xy: 491, 443 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -blocks/sniperturret - rotate: false - xy: 188, 26 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 -blocks/steelconveyor +blocks/oilrefinery rotate: false xy: 489, 433 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 -blocks/steelconveyormove +blocks/omnidrill rotate: false xy: 489, 423 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 +blocks/plasmaturret + rotate: false + xy: 164, 26 + size: 10, 10 + orig: 10, 10 + offset: 0, 0 + index: -1 +blocks/poweredconveyor + rotate: false + xy: 495, 453 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/poweredconveyormove + rotate: false + xy: 122, 16 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/pump + rotate: false + xy: 132, 16 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/repairturret + rotate: false + xy: 176, 26 + size: 10, 10 + orig: 10, 10 + offset: 0, 0 + index: -1 +blocks/rock + rotate: false + xy: 152, 16 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/rock2 + rotate: false + xy: 162, 16 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/rock2shadow + rotate: false + xy: 172, 16 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/rockshadow + rotate: false + xy: 182, 16 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/router + rotate: false + xy: 127, 6 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/shadow + rotate: false + xy: 188, 26 + size: 10, 10 + orig: 10, 10 + offset: 0, 0 + index: -1 +blocks/shieldgenerator + rotate: false + xy: 137, 6 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/shotgunturret + rotate: false + xy: 393, 394 + size: 10, 10 + orig: 10, 10 + offset: 0, 0 + index: -1 +blocks/shrub + rotate: false + xy: 147, 6 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/shrubshadow + rotate: false + xy: 157, 6 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/smelter + rotate: false + xy: 167, 6 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/sniperturret + rotate: false + xy: 393, 382 + size: 10, 10 + orig: 10, 10 + offset: 0, 0 + index: -1 +blocks/steelconveyor + rotate: false + xy: 177, 6 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/steelconveyormove + rotate: false + xy: 192, 16 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 blocks/steelwall rotate: false - xy: 489, 413 + xy: 187, 6 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -510,49 +538,49 @@ blocks/stone index: -1 blocks/stone1 rotate: false - xy: 495, 453 + xy: 197, 6 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/stone2 rotate: false - xy: 122, 16 + xy: 415, 392 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/stone3 rotate: false - xy: 132, 16 + xy: 415, 382 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/stoneblock rotate: false - xy: 142, 16 + xy: 415, 372 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/stoneblock2 rotate: false - xy: 152, 16 + xy: 409, 362 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/stoneblock3 rotate: false - xy: 162, 16 + xy: 419, 362 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/stonedrill rotate: false - xy: 172, 16 + xy: 501, 443 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -566,70 +594,98 @@ blocks/stoneedge index: -1 blocks/stonewall rotate: false - xy: 182, 16 + xy: 499, 433 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/titanium1 rotate: false - xy: 127, 6 + xy: 499, 423 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/titanium2 rotate: false - xy: 137, 6 + xy: 499, 413 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/titanium3 rotate: false - xy: 147, 6 + xy: 409, 352 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/titaniumdrill rotate: false - xy: 157, 6 + xy: 419, 352 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/titaniumpurifier rotate: false - xy: 167, 6 + xy: 407, 342 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/titaniumshieldwall rotate: false - xy: 177, 6 + xy: 407, 332 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/titaniumwall rotate: false - xy: 192, 16 + xy: 417, 342 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/turret rotate: false - xy: 393, 394 + xy: 393, 370 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 +blocks/uranium1 + rotate: false + xy: 417, 332 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/uranium2 + rotate: false + xy: 407, 312 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/uranium3 + rotate: false + xy: 417, 322 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +blocks/uraniumdrill + rotate: false + xy: 407, 302 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 blocks/water rotate: false - xy: 197, 6 + xy: 417, 312 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -643,7 +699,7 @@ blocks/wateredge index: -1 blocks/waveturret rotate: false - xy: 393, 382 + xy: 397, 358 size: 10, 10 orig: 10, 10 offset: 0, 0 @@ -825,42 +881,49 @@ enemies/tankenemy-t3 index: -1 icon-coal rotate: false - xy: 397, 322 + xy: 230, 52 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 icon-dirium rotate: false - xy: 397, 312 + xy: 230, 42 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 icon-iron rotate: false - xy: 397, 302 + xy: 228, 32 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 icon-steel rotate: false - xy: 397, 292 + xy: 409, 402 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 icon-stone rotate: false - xy: 407, 362 + xy: 405, 392 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 icon-titanium rotate: false - xy: 407, 352 + xy: 405, 382 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +icon-uranium + rotate: false + xy: 405, 372 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -881,7 +944,7 @@ laserend index: -1 player rotate: false - xy: 417, 302 + xy: 489, 413 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -1012,62 +1075,69 @@ ui/icon-close-over orig: 40, 40 offset: 0, 0 index: -1 -ui/icon-cursor +ui/icon-crafting rotate: false xy: 483, 453 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 -ui/icon-defense +ui/icon-cursor rotate: false xy: 457, 423 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 -ui/icon-distribution +ui/icon-defense rotate: false xy: 457, 411 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 -ui/icon-menu +ui/icon-distribution rotate: false xy: 105, 2 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 -ui/icon-pause +ui/icon-menu rotate: false xy: 204, 34 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 -ui/icon-play +ui/icon-pause rotate: false xy: 216, 34 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 -ui/icon-power +ui/icon-play rotate: false xy: 385, 358 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 -ui/icon-production +ui/icon-power rotate: false xy: 385, 346 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 +ui/icon-production + rotate: false + xy: 385, 334 + size: 10, 10 + orig: 10, 10 + offset: 0, 0 + index: -1 ui/icon-rotate rotate: false xy: 425, 408 @@ -1084,14 +1154,21 @@ ui/icon-rotate-arrow index: -1 ui/icon-settings rotate: false - xy: 385, 334 + xy: 385, 322 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 ui/icon-touch rotate: false - xy: 385, 322 + xy: 385, 310 + size: 10, 10 + orig: 10, 10 + offset: 0, 0 + index: -1 +ui/icon-weapon + rotate: false + xy: 385, 298 size: 10, 10 orig: 10, 10 offset: 0, 0 @@ -1154,21 +1231,21 @@ ui/scroll-knob-vertical index: -1 ui/selection rotate: false - xy: 117, 1 + xy: 422, 409 size: 1, 1 orig: 1, 1 offset: 0, 0 index: -1 ui/separator rotate: false - xy: 120, 1 + xy: 117, 1 size: 1, 1 orig: 1, 1 offset: 0, 0 index: -1 ui/slider rotate: false - xy: 228, 154 + xy: 419, 402 size: 1, 8 orig: 1, 8 offset: 0, 0 @@ -1241,35 +1318,35 @@ weapons/blaster index: -1 weapons/flamer rotate: false - xy: 405, 382 + xy: 399, 268 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 weapons/mortar rotate: false - xy: 417, 352 + xy: 401, 228 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 weapons/multigun rotate: false - xy: 417, 332 + xy: 401, 208 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 weapons/railgun rotate: false - xy: 371, 224 + xy: 142, 16 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 weapons/triblaster rotate: false - xy: 187, 6 + xy: 407, 322 size: 8, 8 orig: 8, 8 offset: 0, 0 diff --git a/core/assets/sprites/sprites.png b/core/assets/sprites/sprites.png index 5a6f224dd3ae8654e81841d43eb62bdc3bb4f78d..c6d82ad24170ee1886dd510b047d24e728cd2388 100644 GIT binary patch literal 40100 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 { + Draw.color(Hue.mix(Color.BLACK, Color.GRAY, e.ifract())); + Draw.thickness(2f); + Draw.spikes(e.x, e.y, e.ifract() * 4f, 2, 6); + Draw.reset(); + }); + Effects.create("generate", 11, e -> { Draw.color(Hue.mix(Color.ORANGE, Color.YELLOW, e.ifract())); Draw.thickness(1f); diff --git a/core/src/io/anuke/mindustry/UI.java b/core/src/io/anuke/mindustry/UI.java index ae407c1c8c..aeb2455ee8 100644 --- a/core/src/io/anuke/mindustry/UI.java +++ b/core/src/io/anuke/mindustry/UI.java @@ -40,6 +40,8 @@ public class UI extends SceneModule{ VisibilityProvider play = () -> !GameState.is(State.menu); VisibilityProvider nplay = () -> GameState.is(State.menu); + 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, @@ -237,12 +239,16 @@ public class UI extends SceneModule{ } }); button.setName("sectionbutton" + sec.name()); - add(button).fill().height(54).padRight(-0.1f).padTop(-10).units(Unit.dp); - button.getImageCell().size(40).padBottom(4).units(Unit.dp); + add(button).growX().height(54).padTop(sec.ordinal() <= 2 ? -10 : -5).units(Unit.dp); + button.getImageCell().size(40).padBottom(4).padTop(2).units(Unit.dp); group.add(button); + if(sec.ordinal() % 3 == 2 && sec.ordinal() > 0){ + row(); + } + table.pad(4); - table.top(); + table.top().left(); int i = 0; @@ -277,12 +283,6 @@ public class UI extends SceneModule{ i++; } - //additional padding - for(int j = 0; j < maxcol - (int)((float)recipes.size/rows+2); j ++){ - table.row(); - table.add().size(size); - } - table.setVisible(()-> button.isChecked()); stack.add(table); @@ -290,7 +290,7 @@ public class UI extends SceneModule{ row(); - add(stack).colspan(3); + add(stack).colspan(Section.values().length); get().pad(10f); get().padLeft(0f); @@ -716,8 +716,14 @@ public class UI extends SceneModule{ public void updateItems(){ itemtable.clear(); itemtable.left(); + + tempItems.clear(); + for(Item item : control.getItems().keys()){ + tempItems.add(item); + } + tempItems.sort(); - for(Item stack : control.getItems().keys()){ + for(Item stack : tempItems){ Image image = new Image(Draw.region("icon-" + stack.name())); Label label = new Label("" + Mindustry.formatter.format(control.getAmount(stack))); label.setFontScale(fontscale*1.5f); diff --git a/core/src/io/anuke/mindustry/entities/effect/Shield.java b/core/src/io/anuke/mindustry/entities/effect/Shield.java index 7c696fa189..86a00b4cfd 100644 --- a/core/src/io/anuke/mindustry/entities/effect/Shield.java +++ b/core/src/io/anuke/mindustry/entities/effect/Shield.java @@ -6,9 +6,11 @@ import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.blocks.types.defense.ShieldBlock; import io.anuke.ucore.core.Draw; import io.anuke.ucore.core.Graphics; +import io.anuke.ucore.core.Timers; import io.anuke.ucore.entities.BulletEntity; import io.anuke.ucore.entities.Entities; import io.anuke.ucore.entities.Entity; +import io.anuke.ucore.util.Mathf; public class Shield extends Entity{ public boolean active; @@ -55,10 +57,12 @@ public class Shield extends Entity{ ShieldBlock block = (ShieldBlock)tile.block(); + float rad = block.shieldRadius*2 + Mathf.sin(Timers.time(), 25f, 2f); + Graphics.surface("shield", false); Draw.color(Color.ROYAL); Draw.thick(2f); - Draw.rect("circle2", x, y, block.shieldRadius*2, block.shieldRadius*2); + Draw.rect("circle2", x, y, rad, rad); Draw.reset(); Graphics.surface(); } diff --git a/core/src/io/anuke/mindustry/resource/Item.java b/core/src/io/anuke/mindustry/resource/Item.java index 9097f6a7c3..63ca663516 100644 --- a/core/src/io/anuke/mindustry/resource/Item.java +++ b/core/src/io/anuke/mindustry/resource/Item.java @@ -1,5 +1,5 @@ package io.anuke.mindustry.resource; public enum Item{ - stone, iron, coal, steel, titanium, dirium; + stone, iron, coal, steel, titanium, dirium, uranium; } diff --git a/core/src/io/anuke/mindustry/resource/Mech.java b/core/src/io/anuke/mindustry/resource/Mech.java new file mode 100644 index 0000000000..944bf8d5d4 --- /dev/null +++ b/core/src/io/anuke/mindustry/resource/Mech.java @@ -0,0 +1,16 @@ +package io.anuke.mindustry.resource; + +public enum Mech{ + normal("default"), + scout("scout"){{ + + }}; + public final String name; + public float speedBoost = 1f, damageBoost = 1f; + public int regenRate = 10; + public int health = 20; + + private Mech(String name){ + this.name = name; + } +} diff --git a/core/src/io/anuke/mindustry/resource/Recipe.java b/core/src/io/anuke/mindustry/resource/Recipe.java index e42538d32c..91f465773b 100644 --- a/core/src/io/anuke/mindustry/resource/Recipe.java +++ b/core/src/io/anuke/mindustry/resource/Recipe.java @@ -8,47 +8,52 @@ import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.blocks.*; public enum Recipe{ - stonewall(distribution, DefenseBlocks.stonewall, stack(Item.stone, 2)), - ironwall(distribution, DefenseBlocks.ironwall, stack(Item.iron, 2)), - steelwall(distribution, DefenseBlocks.steelwall, stack(Item.steel, 2)), - titaniumwall(distribution, DefenseBlocks.titaniumwall, stack(Item.titanium, 2)), - duriumwall(distribution, DefenseBlocks.diriumwall, stack(Item.dirium, 2)), - compositewall(distribution, DefenseBlocks.compositewall, stack(Item.dirium, 2), stack(Item.titanium, 2), stack(Item.steel, 2), stack(Item.iron, 2)), - titaniumshieldwall(distribution, DefenseBlocks.titaniumshieldwall, stack(Item.titanium, 2)), - conveyor(distribution, DistributionBlocks.conveyor, stack(Item.stone, 1)), - fastconveyor(distribution, DistributionBlocks.steelconveyor, stack(Item.steel, 1)), - router(distribution, DistributionBlocks.router, stack(Item.stone, 2)), - junction(distribution, DistributionBlocks.junction, stack(Item.iron, 2)), - - turret(defense, WeaponBlocks.turret, stack(Item.stone, 4)), - dturret(defense, WeaponBlocks.doubleturret, stack(Item.stone, 7)), - machineturret(defense, WeaponBlocks.machineturret, stack(Item.iron, 8), stack(Item.stone, 10)), - shotgunturret(defense, WeaponBlocks.shotgunturret, stack(Item.iron, 10), stack(Item.stone, 10)), - flameturret(defense, WeaponBlocks.flameturret, stack(Item.iron, 12), stack(Item.steel, 9)), - sniperturret(defense, WeaponBlocks.sniperturret, stack(Item.iron, 15), stack(Item.steel, 10)), - laserturret(defense, WeaponBlocks.laserturret, stack(Item.steel, 10), stack(Item.titanium, 10)), - mortarturret(defense, WeaponBlocks.mortarturret, stack(Item.steel, 20), stack(Item.titanium, 15)), - teslaturret(defense, WeaponBlocks.teslaturret, stack(Item.steel, 10), stack(Item.titanium, 15), stack(Item.dirium, 15)), - plasmaturret(defense, WeaponBlocks.plasmaturret, stack(Item.steel, 10), stack(Item.titanium, 10), stack(Item.dirium, 15)), - + stonewall(defense, DefenseBlocks.stonewall, stack(Item.stone, 2)), + ironwall(defense, DefenseBlocks.ironwall, stack(Item.iron, 2)), + steelwall(defense, DefenseBlocks.steelwall, stack(Item.steel, 2)), + titaniumwall(defense, DefenseBlocks.titaniumwall, stack(Item.titanium, 2)), + duriumwall(defense, DefenseBlocks.diriumwall, stack(Item.dirium, 2)), + compositewall(defense, DefenseBlocks.compositewall, stack(Item.dirium, 2), stack(Item.titanium, 2), stack(Item.steel, 2), stack(Item.iron, 2)), healturret(defense, DefenseBlocks.repairturret, stack(Item.iron, 30)), megahealturret(defense, DefenseBlocks.megarepairturret, stack(Item.iron, 20), stack(Item.steel, 30)), + titaniumshieldwall(defense, DefenseBlocks.titaniumshieldwall, stack(Item.titanium, 2)), + + conveyor(distribution, DistributionBlocks.conveyor, stack(Item.stone, 1)), + steelconveyor(distribution, DistributionBlocks.steelconveyor, stack(Item.steel, 1)), + poweredconveyor(distribution, DistributionBlocks.poweredconveyor, stack(Item.dirium, 1)), + router(distribution, DistributionBlocks.router, stack(Item.stone, 2)), + junction(distribution, DistributionBlocks.junction, stack(Item.iron, 2)), + conduit(distribution, DistributionBlocks.conduit, stack(Item.steel, 1)), + liquidrouter(distribution, DistributionBlocks.liquidrouter, stack(Item.steel, 2)), + liquidjunction(distribution, DistributionBlocks.liquidjunction, stack(Item.steel, 2)), + + turret(weapon, WeaponBlocks.turret, stack(Item.stone, 4)), + dturret(weapon, WeaponBlocks.doubleturret, stack(Item.stone, 7)), + machineturret(weapon, WeaponBlocks.machineturret, stack(Item.iron, 8), stack(Item.stone, 10)), + shotgunturret(weapon, WeaponBlocks.shotgunturret, stack(Item.iron, 10), stack(Item.stone, 10)), + flameturret(weapon, WeaponBlocks.flameturret, stack(Item.iron, 12), stack(Item.steel, 9)), + sniperturret(weapon, WeaponBlocks.sniperturret, stack(Item.iron, 15), stack(Item.steel, 10)), + laserturret(weapon, WeaponBlocks.laserturret, stack(Item.steel, 10), stack(Item.titanium, 10)), + 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)), + + smelter(crafting, ProductionBlocks.smelter, stack(Item.stone, 40), stack(Item.iron, 40)), + crucible(crafting, ProductionBlocks.crucible, stack(Item.titanium, 40), stack(Item.steel, 40)), + coalpurifier(crafting, ProductionBlocks.coalpurifier, stack(Item.steel, 10), stack(Item.iron, 10)), + titaniumpurifier(crafting, ProductionBlocks.titaniumpurifier, stack(Item.steel, 30), stack(Item.iron, 30)), + oilrefinery(crafting, ProductionBlocks.oilrefinery, stack(Item.steel, 30), stack(Item.iron, 30)), stonedrill(production, ProductionBlocks.stonedrill, stack(Item.stone, 12)), irondrill(production, ProductionBlocks.irondrill, stack(Item.stone, 25)), coaldrill(production, ProductionBlocks.coaldrill, stack(Item.stone, 25), stack(Item.iron, 40)), titaniumdrill(production, ProductionBlocks.titaniumdrill, stack(Item.iron, 40), stack(Item.steel, 40)), - smelter(production, ProductionBlocks.smelter, stack(Item.stone, 40), stack(Item.iron, 40)), - crucible(production, ProductionBlocks.crucible, stack(Item.titanium, 40), stack(Item.steel, 40)), - coalpurifier(production, ProductionBlocks.coalpurifier, stack(Item.steel, 10), stack(Item.iron, 10)), - titaniumpurifier(production, ProductionBlocks.titaniumpurifier, stack(Item.steel, 30), stack(Item.iron, 30)), - omnidrill(production, ProductionBlocks.omnidrill, stack(Item.titanium, 10), stack(Item.dirium, 10)), + uraniumdrill(production, ProductionBlocks.uraniumdrill, stack(Item.titanium, 20), stack(Item.steel, 40)), + omnidrill(production, ProductionBlocks.omnidrill, stack(Item.titanium, 20), stack(Item.dirium, 20)), coalgenerator(power, ProductionBlocks.coalgenerator, stack(Item.titanium, 10), stack(Item.dirium, 10)), shieldgenerator(power, DefenseBlocks.shieldgenerator, stack(Item.titanium, 10), stack(Item.dirium, 10)), - conduit(distribution, DistributionBlocks.conduit, stack(Item.steel, 1)), - liquidrouter(distribution, DistributionBlocks.liquidrouter, stack(Item.steel, 2)), pump(production, ProductionBlocks.pump, stack(Item.steel, 10)); public Block result; diff --git a/core/src/io/anuke/mindustry/resource/Section.java b/core/src/io/anuke/mindustry/resource/Section.java index 06da625c1f..feb383eca8 100644 --- a/core/src/io/anuke/mindustry/resource/Section.java +++ b/core/src/io/anuke/mindustry/resource/Section.java @@ -1,5 +1,5 @@ package io.anuke.mindustry.resource; public enum Section{ - defense, production, distribution, power; + weapon, production, distribution, power, defense, crafting; } diff --git a/core/src/io/anuke/mindustry/world/Generator.java b/core/src/io/anuke/mindustry/world/Generator.java index 37d810dd23..5c6e99b7ce 100644 --- a/core/src/io/anuke/mindustry/world/Generator.java +++ b/core/src/io/anuke/mindustry/world/Generator.java @@ -69,6 +69,10 @@ public class Generator{ if(Noise.nnoise(x + 9999, y + 9999, 8, 1) > 0.253){ floor = Blocks.titanium; } + + if(Noise.nnoise(x + 99999, y + 99999, 6, 1) > 0.254){ + floor = Blocks.uranium; + } } if(block == Blocks.grassblock){ diff --git a/core/src/io/anuke/mindustry/world/blocks/Blocks.java b/core/src/io/anuke/mindustry/world/blocks/Blocks.java index ed87cfb4dc..a2b0d2679f 100644 --- a/core/src/io/anuke/mindustry/world/blocks/Blocks.java +++ b/core/src/io/anuke/mindustry/world/blocks/Blocks.java @@ -87,6 +87,10 @@ public class Blocks{ drops = new ItemStack(Item.titanium, 1); }}, + uranium = new Floor("uranium"){{ + drops = new ItemStack(Item.uranium, 1); + }}, + dirt = new Floor("dirt"), grass = new Floor("grass"), diff --git a/core/src/io/anuke/mindustry/world/blocks/DistributionBlocks.java b/core/src/io/anuke/mindustry/world/blocks/DistributionBlocks.java index c94b88ddb8..90eb488389 100644 --- a/core/src/io/anuke/mindustry/world/blocks/DistributionBlocks.java +++ b/core/src/io/anuke/mindustry/world/blocks/DistributionBlocks.java @@ -30,7 +30,7 @@ public class DistributionBlocks{ poweredconveyor = new Conveyor("poweredconveyor"){{ health = 90; speed = 0.09f; - formalName = "powered conveyor"; + formalName = "pulse conveyor"; }}, router = new Router("router"){ @@ -38,5 +38,8 @@ public class DistributionBlocks{ junction = new Junction("junction"){ + }, + liquidjunction = new LiquidJunction("liquidjunction"){ + }; } diff --git a/core/src/io/anuke/mindustry/world/blocks/ProductionBlocks.java b/core/src/io/anuke/mindustry/world/blocks/ProductionBlocks.java index 89397d847f..cce0474318 100644 --- a/core/src/io/anuke/mindustry/world/blocks/ProductionBlocks.java +++ b/core/src/io/anuke/mindustry/world/blocks/ProductionBlocks.java @@ -65,7 +65,7 @@ public class ProductionBlocks{ } }, - coalpurifier = new Purifier("coalpurifier"){ + coalpurifier = new LiquidCrafter("coalpurifier"){ { formalName = "coal extractor"; input = Item.stone; @@ -83,7 +83,7 @@ public class ProductionBlocks{ } }, - titaniumpurifier = new Purifier("titaniumpurifier"){ + titaniumpurifier = new LiquidCrafter("titaniumpurifier"){ { formalName = "titanium\nextractor"; input = Item.iron; @@ -102,6 +102,24 @@ public class ProductionBlocks{ } }, + oilrefinery = new LiquidCrafter("oilrefinery"){ + { + formalName = "oil refinery"; + inputLiquid = Liquid.oil; + liquidAmount = 45f; + liquidCapacity = 46f; + purifyTime = 70; + output = Item.coal; + health = 80; + craftEffect = "purifyoil"; + } + + @Override + public String description(){ + return "Takes in oil, outputs coal."; + } + }, + stonedrill = new Drill("stonedrill"){{ resource = Blocks.stone; result = Item.stone; @@ -120,6 +138,12 @@ public class ProductionBlocks{ formalName = "coal drill"; }}, + uraniumdrill = new Drill("uraniumdrill"){{ + resource = Blocks.uranium; + result = Item.uranium; + formalName = "uranium drill"; + }}, + titaniumdrill = new Drill("titaniumdrill"){{ resource = Blocks.titanium; result = Item.titanium; @@ -153,7 +177,7 @@ public class ProductionBlocks{ coalgenerator = new ItemPowerGenerator("coalgenerator"){ { //TODO - generateItem = Item.stone; + generateItem = Item.coal; generateAmount = 4f; powerCapacity = 40f; } diff --git a/core/src/io/anuke/mindustry/world/blocks/types/defense/ShieldBlock.java b/core/src/io/anuke/mindustry/world/blocks/types/defense/ShieldBlock.java index 9f94d6da44..f09bcc9817 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/defense/ShieldBlock.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/defense/ShieldBlock.java @@ -7,6 +7,8 @@ import io.anuke.mindustry.world.blocks.types.PowerBlock; import io.anuke.ucore.core.Timers; public class ShieldBlock extends PowerBlock{ + private static boolean debugShield = true; + public float shieldRadius = 40f; public float powerDrain = 0.01f; @@ -20,6 +22,8 @@ public class ShieldBlock extends PowerBlock{ if(entity.shield == null){ entity.shield = new Shield(tile); + if(debugShield) + entity.shield.add(); } if(entity.power > powerDrain * Timers.delta()){ @@ -29,7 +33,7 @@ public class ShieldBlock extends PowerBlock{ entity.power -= powerDrain * Timers.delta(); }else{ - if(entity.shield.active){ + if(entity.shield.active && !debugShield){ entity.shield.remove(); } } diff --git a/core/src/io/anuke/mindustry/world/blocks/types/distribution/LiquidJunction.java b/core/src/io/anuke/mindustry/world/blocks/types/distribution/LiquidJunction.java new file mode 100644 index 0000000000..d0a2ff6a39 --- /dev/null +++ b/core/src/io/anuke/mindustry/world/blocks/types/distribution/LiquidJunction.java @@ -0,0 +1,45 @@ +package io.anuke.mindustry.world.blocks.types.distribution; + +import io.anuke.mindustry.resource.Liquid; +import io.anuke.mindustry.world.Tile; +import io.anuke.mindustry.world.blocks.types.LiquidBlock; +import io.anuke.ucore.core.Draw; + +public class LiquidJunction extends LiquidBlock{ + + public LiquidJunction(String name) { + super(name); + update = true; + solid = true; + rotate = false; + } + + @Override + public void draw(Tile tile){ + Draw.rect(name(), tile.worldx(), tile.worldy()); + } + + @Override + public void handleLiquid(Tile tile, Tile source, Liquid liquid, float amount){ + int dir = source.relativeTo(tile.x, tile.y); + dir = (dir+4)%4; + Tile to = tile.getNearby()[dir]; + + ((LiquidBlock)to.block()).handleLiquid(to, tile, liquid, amount); + + } + + @Override + public boolean acceptLiquid(Tile dest, Tile source, Liquid liquid, float amount){ + int dir = source.relativeTo(dest.x, dest.y); + dir = (dir+4)%4; + Tile to = dest.getNearby()[dir]; + return to != null && to.block() != this && to.block() instanceof LiquidBlock && + ((LiquidBlock)to.block()).acceptLiquid(to, dest, liquid, amount); + } + + @Override + public String description(){ + return "Serves as a liquid junction."; + } +} diff --git a/core/src/io/anuke/mindustry/world/blocks/types/distribution/PowerBooster.java b/core/src/io/anuke/mindustry/world/blocks/types/distribution/PowerBooster.java index be394233c0..6a75e487cf 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/distribution/PowerBooster.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/distribution/PowerBooster.java @@ -1,12 +1,21 @@ package io.anuke.mindustry.world.blocks.types.distribution; -import io.anuke.mindustry.world.blocks.types.PowerBlock; +import io.anuke.mindustry.world.Tile; +import io.anuke.mindustry.world.blocks.types.production.Generator; -public class PowerBooster extends PowerBlock{ +public class PowerBooster extends Generator{ //TODO public PowerBooster(String name) { super(name); } - + + @Override + public float addPower(Tile tile, float amount){ + PowerEntity entity = tile.entity(); + + float canAccept = Math.min(powerCapacity - entity.power, amount); + entity.power += canAccept; + return canAccept; + } } diff --git a/core/src/io/anuke/mindustry/world/blocks/types/production/Purifier.java b/core/src/io/anuke/mindustry/world/blocks/types/production/LiquidCrafter.java similarity index 81% rename from core/src/io/anuke/mindustry/world/blocks/types/production/Purifier.java rename to core/src/io/anuke/mindustry/world/blocks/types/production/LiquidCrafter.java index a5359e8c22..6fcd3552a5 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/production/Purifier.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/production/LiquidCrafter.java @@ -12,7 +12,8 @@ import io.anuke.ucore.core.Draw; import io.anuke.ucore.core.Effects; import io.anuke.ucore.core.Timers; -public class Purifier extends LiquidBlock{ +public class LiquidCrafter extends LiquidBlock{ + /**Can be null.*/ public Item input = null; public int inputAmount = 5; public Liquid inputLiquid = null; @@ -20,8 +21,9 @@ public class Purifier extends LiquidBlock{ public Item output = null; public int itemCapacity = 90; public int purifyTime = 80; + public String craftEffect = "purify"; - public Purifier(String name) { + public LiquidCrafter(String name) { super(name); update = true; rotate = false; @@ -48,12 +50,13 @@ public class Purifier extends LiquidBlock{ LiquidEntity entity = tile.entity(); if(Timers.get(tile, "purify", purifyTime) && entity.liquidAmount >= liquidAmount && - entity.hasItem(input, inputAmount)){ + (input == null || entity.hasItem(input, inputAmount))){ - entity.removeItem(input, inputAmount); + if(input != null) + entity.removeItem(input, inputAmount); entity.liquidAmount -= liquidAmount; offloadNear(tile, output); - Effects.effect("purify", tile.worldx(), tile.worldy()); + Effects.effect(craftEffect, tile.worldx(), tile.worldy()); } if(Timers.get(tile.hashCode(), "dump", 30)){ @@ -63,6 +66,8 @@ public class Purifier extends LiquidBlock{ @Override public void drawPixelOverlay(Tile tile){ + if(input == null) return; + float fract = (float)tile.entity.items.get(input, 0) / itemCapacity; Vars.renderer.drawBar(Color.GREEN, tile.worldx(), tile.worldy() + 13, fract); @@ -76,7 +81,7 @@ public class Purifier extends LiquidBlock{ @Override public boolean acceptItem(Item item, Tile tile, Tile source){ TileEntity entity = tile.entity(); - return item == input && entity.items.get(item, 0) < itemCapacity; + return input != null && item == input && entity.items.get(item, 0) < itemCapacity; } } diff --git a/core/src/io/anuke/mindustry/world/blocks/types/production/Pump.java b/core/src/io/anuke/mindustry/world/blocks/types/production/Pump.java index 4281020c01..38ca649891 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/production/Pump.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/production/Pump.java @@ -13,6 +13,7 @@ public class Pump extends LiquidBlock{ public Pump(String name) { super(name); rotate = false; + solid = true; } @Override