From 2aff73a958477d043ff679e8a035098f1f97cee1 Mon Sep 17 00:00:00 2001 From: Anuken Date: Thu, 28 Feb 2019 09:45:03 -0500 Subject: [PATCH] Added drill output rate bar --- .../items/item-spore-pod.png | Bin 2273 -> 2282 bytes core/assets/bundles/bundle.properties | 1 + .../io/anuke/mindustry/content/Blocks.java | 3 +++ .../world/blocks/production/Drill.java | 19 +++++++++++++++++- 4 files changed, 22 insertions(+), 1 deletion(-) diff --git a/core/assets-raw/sprites_replacement/items/item-spore-pod.png b/core/assets-raw/sprites_replacement/items/item-spore-pod.png index 32bcf69fed989a73565d437afd96b1e339e44e4b..aa69408ee722a704c671acf44102130dfa85be89 100644 GIT binary patch delta 2157 zcmaDT_)2hs3ggX*s+!C#0!z=J@svM*V0cs{nzkIS^s>|;;(On&%32R+NOAZ^7G8}SR3h$w~MUy`&yk( z{hx5|r~K8mnVQwFzHSe+}Nt?8&fTwK-eBA}6}S@W{JMt=D#D*3S*seDuUE;w8uIi-$fwHG1Dt zUmPplYv?@v#Ie)i7fzp@(IzFl^Ji};L(8#`D|P;_J8g5Mx0YdA;{qLXcZnIfH={)s zR_A;?G;?EK+WxyM9dDguD-b*j)gip_c}ZTrfPT=J$TUEB4Fav zck0xuP?Hr|SC&{7eF;qJkV^J3RG%&(qNb^0s<~`R(XoY+(djmGH!3}U#3dfTq-Bxn zw2&g#A0hEe+g6!g3n?z{mA*5_cGPNb4I|T3F4EcSQX54UQot%eeQx+ zQK2jPe;EDznOC7(ws**}`%0hDTQC%1uhknDmsy*@NE)U+#Dl&mDX#`%Ty0mIcpeT@N!leO~VDwa1U| zzG=K-<$7>Cn|ExcRe{zbvo|xmLagtu?Tue+nt$f+#ardqX3swpFZbc$;!vsEw=Q@v zSsv3aIwp6t>Jg9Rk;KUGs*lRczh^Evm|_y;v3zE|?**TUZ#x`HBnr0aCs;6nc!nitfk7g$&nE_Yk^ zA|&n7I^jI^oii<$8vVJnv}v#RVO5WhZx=4SeVp~}rKfr86yNt|xy&xTy;^Q*@Y?BX zwg|^%961utsIax(zl@{#QGwdh*0VKg*S9##`hDYxcUSM7v!`wruleI{ak(XN1=>WiprRoW19-UApAqneDpf^tDxoa>Wx%?*&a!75?md^}z2pUA@;GiZwIr zl>1}Y9r799ow^dxQ#PZ-pITqy?DlEWDrK7UbW(Fox8K6~0YrtlP(_VL)&%%NOQFD=>r zfW7Lt!7c^1gQ}ApOg|szGG(5Yx!~H5Zlg_?Hu!KG@z}-m7VSB7p{5@TJcziD-+!$;4{r;aLZo_Iu1 zF;CdbML9U)(ISu8r(XWNAZ-7GJvCj-W6xH;mfr!#tPdaHE|4-1e0g)B?D>OXJP%EO z1bzA#ck0B!1yWx;^LTzAU-C2W`WYX0{&Iz<6Ld_Kz3cPdiDrH8ijB4`U3=7o`&rQa zvw6R|R^>}1?h|M&;`s)EcLnA3FHEp|1r|axqPjPx@<|x%dNTCulk;oQ-;Mba!(4{=D-Fe%rr)-Shs;ojY>EP7b0M zk2in%bMq8m7mGgAcR?9$zI`6w88+k;7n;0SSZ~P3m~hXc_Q=oE5v!w3>(nNjCf=(x zdBMma^*A8ng{e@|9p-5te5S2oIdRAO!2VO0JGXw{`0Z}!vjgugI;Pp~jk&x_(snO1 z!#4BqrO%`9YH0^CEo4&vutgwJ?bqBJ?`0MwY;)V;ZxPxQqV}a&q4MdoyZr&$9<1lS zwlf@-p8@m*HvHbe>8b^@$;94tpNbrZle;3^7^I%^dWS7l1bGoi1Yxvb! zMR__0wx0a9?&tPwsk%VxWvovQs>#k}b>>tve!%r_W$}ab=sbQ?v+ga`D;t)c(q(Q~ w+x5^aeeb-;{XKG5&9D4Bwf^RQ!4I5aIcHdS4qpGxz`(%Z>FVdQ&MBb@08A=4nE(I) delta 2148 zcmaDQ_)u_y3ghjGs+!C!9Gw#bmFhS0s%^;dF^sBl;yRhibLHLneUo`#SJ&Q|dFZ|R z&Yfy9E^_7j>yOo4OF!}RUqg$s{`n&1uWuHoFE%c`ec}A%=b7nq=k@NnU1YW2*XsP! z4+-af%3ocZsaO5#Yq@~MV#9Br&+T}3GP>rq%~5CO`8D5)=X{jEJB6i3a#N4t-tTjF zw$mZ}ZO+e>ZFQ^rk!3e7rbOc>njipDrwRE3yBXxoC$r$G%^ACbEn3Ul(>OKU;;hu0fByg!_mIK4|queDRO!*oGpL8x=5%pO~ffWrl&`jCp<5Q#e zE%n8*(!GYx(@(s5s{P_=nvZjD=bb;tv>2Qo|Clnp{(7q1qhodquNxKg&9!;XY5|(dO@L)A&jHv$HWC43(w4JPJDLa(5cSiFNQ9C zhF)`IrXKYcn5Lnm<+-Vf_mos}RSC5h$k@1pPUwA&v#TkCYr=fywy6EivQI=<7+%MZw| z3>DeWFe}ocHtR3L#>Bv~F8lfqA7@wh>lHV~vwt^QpyH!(N@Rw`QofjH0xRYoELC5z zD@^p2bG(}U{j>SvUH7dj1mjH)-&72Hh4qvWcGJE6xFuC#-tfw+=rLLSJ zp|y2ah|$h#j8(^Xgs?cIw7+9$D4g$KbY6Bw`J}jrh60(DHJKTrO7+9+TjrF!dHTbuBS z!1X62tCxH|B58EucxvoR)t))`mQQq7>N%!EsR z!3@3=;$Mf&(fW0|y6cb7UHOBi{V(pl`72#~cJbVDhTYZv z72g=;_1jO6HG`{NA3)Aaa3s@xgPK`vn#_*y@<-pa0Pn92Q}Df2mb~YOr2!b$8-| z@}9-UNdhs4I75u<*8~_R%w)^D8b4*?)V9>935g#bW=(l4s`gB*zg6H>oSxF=f>-m-tvJb&eyrRtxxD!8s+&!~O;J2##qJa)0* z9ZpWJp!T|O)sKga^#0!RlKPxm_=EZDnaOqh5(_&valBgT-L+v#q|TB?u1^OxsHCu; z%5`UM=v#G;X{Yyf+xlBSrfRMin-M>=;B$_5<>emVk73C&H)SW(Cw4q|v37?*{Uc+) zNye`e_F8P}pX+f#bEUZJ?LrN!tMlG2*=wem9w_ijY4^{JFFLp9k_&=0+-fyk;fv&e`UkBwJj=<%Uj=^L%gr$mARqh&vqbWp~e8 z(o!m<+3w`o!~YC3_uV!%zHE3v*27Z8`)vJ*NwceG-rAdVJecx$Q zI}@Mw7JRTvh>tZ6dVO9g`ToxLAMbr$b|&(#-oiY|xcPP$J4Ch{v*g^eyQo^RZp(Dd z&&)@K;*=uR?RzA2Yx7xWlNsW-mFGKk7VO|+ic6jJlfT>PNd3L({#}#V*p2F?gpIgs z7i~Yzz`)q<>Eaj?aX9(U|Nr*Pb{ig@mfZ76&_<1C3WJ)L&T_VdB#DFrCKL9hCnO{! zD7t>^+PYctPyUpJDzkp_lp9`A-KK3Ul&z+`&86erZ_(^@V*>+&gb2SAZ;q6uzFNvC zqzlsb!#_;wz_V&2opu-hr?E}HB`GhyB~RgiM~?`s>dF0#RKx5l=rZ z~+52h(wvqXEGS-;0Smi@t|o+~B?U3^a$x-#xFIoPDTe({pJHlrrKL+OSK zzZ`U0`F^8hk8VprtJKxkOhK2~gjcrmZ|c8T>wn@?`+7NHy)I_4Ws_rnJuGH8^QnG; zZ%~g(CsUG+x+a&$N86p#9+xoe)j2+kH#76+`X6h1^y7Y9+NW_Wb!YQd{im#gcBczj z!QvsAlOAr8iH~{w$?_tfg89VAvq??Aq_#h0)w0_m+mL5ys3~zopr03U4*Hvj+t diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index 0bfa2ebd53..b20b6e0de4 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -305,6 +305,7 @@ no = No info.title = Info error.title = [crimson]An error has occured error.crashtitle = An error has occured +blocks.outputspeed = Drill Speed: {0}/s blocks.unknown = [LIGHT_GRAY]??? blocks.blockinfo = Block Info blocks.powerbalance = Power: {0} diff --git a/core/src/io/anuke/mindustry/content/Blocks.java b/core/src/io/anuke/mindustry/content/Blocks.java index 3ca432a273..093098f960 100644 --- a/core/src/io/anuke/mindustry/content/Blocks.java +++ b/core/src/io/anuke/mindustry/content/Blocks.java @@ -913,6 +913,7 @@ public class Blocks implements ContentList{ drillTime = 480; size = 2; drawMineItem = true; + consumes.liquid(Liquids.water, 0.06f).optional(true); }}; laserDrill = new Drill("laser-drill"){{ @@ -925,6 +926,7 @@ public class Blocks implements ContentList{ drillEffect = Fx.mineBig; consumes.power(1.10f); + consumes.liquid(Liquids.water, 0.08f).optional(true); }}; blastDrill = new Drill("blast-drill"){{ @@ -941,6 +943,7 @@ public class Blocks implements ContentList{ warmupSpeed = 0.01f; consumes.power(3f); + consumes.liquid(Liquids.water, 0.1f).optional(true); }}; waterExtractor = new SolidPump("water-extractor"){{ diff --git a/core/src/io/anuke/mindustry/world/blocks/production/Drill.java b/core/src/io/anuke/mindustry/world/blocks/production/Drill.java index bdd3279187..a91b74e466 100644 --- a/core/src/io/anuke/mindustry/world/blocks/production/Drill.java +++ b/core/src/io/anuke/mindustry/world/blocks/production/Drill.java @@ -3,6 +3,7 @@ package io.anuke.mindustry.world.blocks.production; import io.anuke.arc.Core; import io.anuke.arc.collection.Array; import io.anuke.arc.collection.ObjectIntMap; +import io.anuke.arc.util.Strings; import io.anuke.mindustry.entities.Effects; import io.anuke.mindustry.entities.Effects.Effect; import io.anuke.arc.graphics.Blending; @@ -15,7 +16,9 @@ import io.anuke.mindustry.content.Fx; import io.anuke.mindustry.content.Liquids; import io.anuke.mindustry.entities.type.TileEntity; import io.anuke.mindustry.graphics.Layer; +import io.anuke.mindustry.graphics.Pal; import io.anuke.mindustry.type.Item; +import io.anuke.mindustry.ui.Bar; import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.consumers.ConsumeLiquid; @@ -72,7 +75,18 @@ public class Drill extends Block{ liquidCapacity = 5f; hasItems = true; - consumes.add(new ConsumeLiquid(Liquids.water, 0.05f)).optional(true); + consumes.liquid(Liquids.water, 0.05f).optional(true); + } + + @Override + public void setBars(){ + super.setBars(); + + bars.add("drillspeed", e -> { + DrillEntity entity = (DrillEntity)e; + + return new Bar(() -> Core.bundle.format("blocks.outputspeed", Strings.toFixed(entity.lastDrillSpeed * 60, 2)), () -> Pal.ammo, () -> entity.warmup); + }); } @Override @@ -197,6 +211,7 @@ public class Drill extends Block{ speed *= entity.power.satisfaction; // Drill slower when not at full power } + entity.lastDrillSpeed = (speed * entity.dominantItems * entity.warmup) / (drillTime + hardnessDrillMultiplier * Math.max(totalHardness, 1f) / entity.dominantItems); entity.warmup = Mathf.lerpDelta(entity.warmup, speed, warmupSpeed); entity.progress += entity.delta() * entity.dominantItems * speed * entity.warmup; @@ -204,6 +219,7 @@ public class Drill extends Block{ if(Mathf.chance(Time.delta() * updateEffectChance * entity.warmup)) Effects.effect(updateEffect, entity.x + Mathf.range(size * 2f), entity.y + Mathf.range(size * 2f)); }else{ + entity.lastDrillSpeed = 0f; entity.warmup = Mathf.lerpDelta(entity.warmup, 0f, warmupSpeed); return; } @@ -257,6 +273,7 @@ public class Drill extends Block{ public int index; public float warmup; public float drillTime; + public float lastDrillSpeed; public int dominantItems; public Item dominantItem;