From 7292479d9ce442f2fc7793fb2b3f1570a57e9929 Mon Sep 17 00:00:00 2001 From: Anuken Date: Tue, 30 Jul 2019 00:44:41 -0400 Subject: [PATCH] Added turret ammo deficiency display --- core/assets/maps/groundZero.msav | Bin 8674 -> 8687 bytes core/src/io/anuke/mindustry/world/Block.java | 1 + .../blocks/defense/turrets/ItemTurret.java | 36 ++++++++++++------ .../blocks/defense/turrets/LiquidTurret.java | 35 +++++++++++------ .../world/consumers/ConsumeItemFilter.java | 4 +- 5 files changed, 50 insertions(+), 26 deletions(-) diff --git a/core/assets/maps/groundZero.msav b/core/assets/maps/groundZero.msav index 73e52f5b18d30c02e8eab5b00f4dc3095b911c42..75232a33f3af95a932d40feaf5c8f13d3f6547c6 100644 GIT binary patch literal 8687 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 z zjNewSIOFackx6$p#9O{woYR(58F$h1!Tjd0X}KO(5|{SK?#<1u<`45-+`VMw`-F9i z7uYbW+B2lxyQDHP-u}tvWd~ahWVBwMAphv}C0QL^R;fv4+$P-%EEzA~b(4+eumNSFSsZx|^poE&QU>ZN~iMf|q(?*Y0>}uAf13 zCT>|L{!O{kwcD`J0vDg|dtC4Oxr1>S7q&?!TIQ-P4=pI1y}OtR)*$1-b;vY9zwPTl43NE53T@i=$62&VVtA8gte z)XG|JNIiE}=X2?kSFtB9&e&e?`Bw9v&lA3hZn4Ve;=TQx-=Xqe+zO4~x`F9(u{ZA@ z=$WOK{yjn9v>#Wg)`rFAhSQgwzx`T!=Weg4dn__iQ9b)ucV_CX*z(>d_C&&a@i(bH zm!d3E-wRG(BlBa5`}2=iq+{y8UX`13JjUDXyo%%e4PQQ1pPlpfkOAX8*WyEFWxE;l uK25h0U65>RwzTO({6AM##}Aj*|5+}-=g0TM&rkf>?=A7``+6POlL`R+@cZci literal 8674 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 diff --git a/core/src/io/anuke/mindustry/world/Block.java b/core/src/io/anuke/mindustry/world/Block.java index b8a50b8243..1963f72871 100644 --- a/core/src/io/anuke/mindustry/world/Block.java +++ b/core/src/io/anuke/mindustry/world/Block.java @@ -584,6 +584,7 @@ public class Block extends BlockStorage{ public void displayConsumption(Tile tile, Table table){ table.left(); for(Consume cons : consumes.all()){ + if(cons.isOptional()) continue; cons.build(tile, table); } } diff --git a/core/src/io/anuke/mindustry/world/blocks/defense/turrets/ItemTurret.java b/core/src/io/anuke/mindustry/world/blocks/defense/turrets/ItemTurret.java index 86ea2257a7..6ffc23dc59 100644 --- a/core/src/io/anuke/mindustry/world/blocks/defense/turrets/ItemTurret.java +++ b/core/src/io/anuke/mindustry/world/blocks/defense/turrets/ItemTurret.java @@ -1,18 +1,18 @@ package io.anuke.mindustry.world.blocks.defense.turrets; -import io.anuke.arc.collection.ObjectMap; -import io.anuke.arc.collection.OrderedMap; -import io.anuke.arc.scene.ui.layout.Table; -import io.anuke.mindustry.Vars; -import io.anuke.mindustry.entities.bullet.BulletType; -import io.anuke.mindustry.entities.type.TileEntity; +import io.anuke.arc.collection.*; +import io.anuke.arc.scene.ui.layout.*; +import io.anuke.mindustry.*; +import io.anuke.mindustry.entities.bullet.*; import io.anuke.mindustry.entities.type.Unit; -import io.anuke.mindustry.graphics.Pal; -import io.anuke.mindustry.type.Item; -import io.anuke.mindustry.ui.Bar; -import io.anuke.mindustry.world.Tile; -import io.anuke.mindustry.world.meta.BlockStat; -import io.anuke.mindustry.world.meta.values.AmmoListValue; +import io.anuke.mindustry.entities.type.*; +import io.anuke.mindustry.graphics.*; +import io.anuke.mindustry.type.*; +import io.anuke.mindustry.ui.*; +import io.anuke.mindustry.world.*; +import io.anuke.mindustry.world.consumers.*; +import io.anuke.mindustry.world.meta.*; +import io.anuke.mindustry.world.meta.values.*; import java.io.*; @@ -36,6 +36,18 @@ public class ItemTurret extends CooledTurret{ stats.remove(BlockStat.itemCapacity); stats.add(BlockStat.ammo, new AmmoListValue<>(ammo)); + consumes.add(new ConsumeItemFilter(i -> ammo.containsKey(i)){ + @Override + public boolean valid(TileEntity entity){ + //valid when there's any ammo in the turret + return !((ItemTurretEntity)entity).ammo.isEmpty(); + } + + @Override + public void display(BlockStats stats){ + //don't display + } + }); } @Override diff --git a/core/src/io/anuke/mindustry/world/blocks/defense/turrets/LiquidTurret.java b/core/src/io/anuke/mindustry/world/blocks/defense/turrets/LiquidTurret.java index 48e3f52c77..6973edfd2d 100644 --- a/core/src/io/anuke/mindustry/world/blocks/defense/turrets/LiquidTurret.java +++ b/core/src/io/anuke/mindustry/world/blocks/defense/turrets/LiquidTurret.java @@ -1,18 +1,18 @@ package io.anuke.mindustry.world.blocks.defense.turrets; -import io.anuke.arc.collection.ObjectMap; -import io.anuke.arc.collection.OrderedMap; -import io.anuke.mindustry.entities.Effects; -import io.anuke.mindustry.entities.bullet.BulletType; -import io.anuke.mindustry.entities.effect.Fire; -import io.anuke.mindustry.type.Item; -import io.anuke.mindustry.type.Liquid; -import io.anuke.mindustry.world.Tile; -import io.anuke.mindustry.world.meta.BlockStat; -import io.anuke.mindustry.world.meta.values.AmmoListValue; +import io.anuke.arc.collection.*; +import io.anuke.mindustry.entities.*; +import io.anuke.mindustry.entities.bullet.*; +import io.anuke.mindustry.entities.effect.*; +import io.anuke.mindustry.entities.type.*; +import io.anuke.mindustry.type.*; +import io.anuke.mindustry.world.*; +import io.anuke.mindustry.world.blocks.defense.turrets.ItemTurret.*; +import io.anuke.mindustry.world.consumers.*; +import io.anuke.mindustry.world.meta.*; +import io.anuke.mindustry.world.meta.values.*; -import static io.anuke.mindustry.Vars.tilesize; -import static io.anuke.mindustry.Vars.world; +import static io.anuke.mindustry.Vars.*; public abstract class LiquidTurret extends Turret{ protected ObjectMap ammo = new ObjectMap<>(); @@ -32,6 +32,17 @@ public abstract class LiquidTurret extends Turret{ super.setStats(); stats.add(BlockStat.ammo, new AmmoListValue<>(ammo)); + consumes.add(new ConsumeLiquidFilter(i -> ammo.containsKey(i), 1f){ + @Override + public boolean valid(TileEntity entity){ + return !((TurretEntity)entity).ammo.isEmpty(); + } + + @Override + public void display(BlockStats stats){ + + } + }); } @Override diff --git a/core/src/io/anuke/mindustry/world/consumers/ConsumeItemFilter.java b/core/src/io/anuke/mindustry/world/consumers/ConsumeItemFilter.java index fe9e0a17d4..81503037f0 100644 --- a/core/src/io/anuke/mindustry/world/consumers/ConsumeItemFilter.java +++ b/core/src/io/anuke/mindustry/world/consumers/ConsumeItemFilter.java @@ -11,7 +11,7 @@ import io.anuke.mindustry.world.meta.BlockStat; import io.anuke.mindustry.world.meta.BlockStats; import io.anuke.mindustry.world.meta.values.ItemFilterValue; -import static io.anuke.mindustry.Vars.content; +import static io.anuke.mindustry.Vars.*; public class ConsumeItemFilter extends Consume{ public final Predicate filter; @@ -33,7 +33,7 @@ public class ConsumeItemFilter extends Consume{ @Override public void build(Tile tile, Table table){ MultiReqImage image = new MultiReqImage(); - content.items().each(filter, item -> image.add(new ReqImage(new ItemImage(item.icon(Icon.large), 1), () -> tile.entity != null && tile.entity.items != null && tile.entity.items.has(item)))); + content.items().each(i -> filter.test(i) && (!world.isZone() || data.isUnlocked(i)), item -> image.add(new ReqImage(new ItemImage(item.icon(Icon.large), 1), () -> tile.entity != null && tile.entity.items != null && tile.entity.items.has(item)))); table.add(image).size(8 * 4); }