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 32bcf69fed..aa69408ee7 100644 Binary files a/core/assets-raw/sprites_replacement/items/item-spore-pod.png and b/core/assets-raw/sprites_replacement/items/item-spore-pod.png differ 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;