Added turret ammo deficiency display
This commit is contained in:
Binary file not shown.
@@ -584,6 +584,7 @@ public class Block extends BlockStorage{
|
|||||||
public void displayConsumption(Tile tile, Table table){
|
public void displayConsumption(Tile tile, Table table){
|
||||||
table.left();
|
table.left();
|
||||||
for(Consume cons : consumes.all()){
|
for(Consume cons : consumes.all()){
|
||||||
|
if(cons.isOptional()) continue;
|
||||||
cons.build(tile, table);
|
cons.build(tile, table);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,18 +1,18 @@
|
|||||||
package io.anuke.mindustry.world.blocks.defense.turrets;
|
package io.anuke.mindustry.world.blocks.defense.turrets;
|
||||||
|
|
||||||
import io.anuke.arc.collection.ObjectMap;
|
import io.anuke.arc.collection.*;
|
||||||
import io.anuke.arc.collection.OrderedMap;
|
import io.anuke.arc.scene.ui.layout.*;
|
||||||
import io.anuke.arc.scene.ui.layout.Table;
|
import io.anuke.mindustry.*;
|
||||||
import io.anuke.mindustry.Vars;
|
import io.anuke.mindustry.entities.bullet.*;
|
||||||
import io.anuke.mindustry.entities.bullet.BulletType;
|
|
||||||
import io.anuke.mindustry.entities.type.TileEntity;
|
|
||||||
import io.anuke.mindustry.entities.type.Unit;
|
import io.anuke.mindustry.entities.type.Unit;
|
||||||
import io.anuke.mindustry.graphics.Pal;
|
import io.anuke.mindustry.entities.type.*;
|
||||||
import io.anuke.mindustry.type.Item;
|
import io.anuke.mindustry.graphics.*;
|
||||||
import io.anuke.mindustry.ui.Bar;
|
import io.anuke.mindustry.type.*;
|
||||||
import io.anuke.mindustry.world.Tile;
|
import io.anuke.mindustry.ui.*;
|
||||||
import io.anuke.mindustry.world.meta.BlockStat;
|
import io.anuke.mindustry.world.*;
|
||||||
import io.anuke.mindustry.world.meta.values.AmmoListValue;
|
import io.anuke.mindustry.world.consumers.*;
|
||||||
|
import io.anuke.mindustry.world.meta.*;
|
||||||
|
import io.anuke.mindustry.world.meta.values.*;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
|
|
||||||
@@ -36,6 +36,18 @@ public class ItemTurret extends CooledTurret{
|
|||||||
|
|
||||||
stats.remove(BlockStat.itemCapacity);
|
stats.remove(BlockStat.itemCapacity);
|
||||||
stats.add(BlockStat.ammo, new AmmoListValue<>(ammo));
|
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
|
@Override
|
||||||
|
|||||||
@@ -1,18 +1,18 @@
|
|||||||
package io.anuke.mindustry.world.blocks.defense.turrets;
|
package io.anuke.mindustry.world.blocks.defense.turrets;
|
||||||
|
|
||||||
import io.anuke.arc.collection.ObjectMap;
|
import io.anuke.arc.collection.*;
|
||||||
import io.anuke.arc.collection.OrderedMap;
|
import io.anuke.mindustry.entities.*;
|
||||||
import io.anuke.mindustry.entities.Effects;
|
import io.anuke.mindustry.entities.bullet.*;
|
||||||
import io.anuke.mindustry.entities.bullet.BulletType;
|
import io.anuke.mindustry.entities.effect.*;
|
||||||
import io.anuke.mindustry.entities.effect.Fire;
|
import io.anuke.mindustry.entities.type.*;
|
||||||
import io.anuke.mindustry.type.Item;
|
import io.anuke.mindustry.type.*;
|
||||||
import io.anuke.mindustry.type.Liquid;
|
import io.anuke.mindustry.world.*;
|
||||||
import io.anuke.mindustry.world.Tile;
|
import io.anuke.mindustry.world.blocks.defense.turrets.ItemTurret.*;
|
||||||
import io.anuke.mindustry.world.meta.BlockStat;
|
import io.anuke.mindustry.world.consumers.*;
|
||||||
import io.anuke.mindustry.world.meta.values.AmmoListValue;
|
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.*;
|
||||||
import static io.anuke.mindustry.Vars.world;
|
|
||||||
|
|
||||||
public abstract class LiquidTurret extends Turret{
|
public abstract class LiquidTurret extends Turret{
|
||||||
protected ObjectMap<Liquid, BulletType> ammo = new ObjectMap<>();
|
protected ObjectMap<Liquid, BulletType> ammo = new ObjectMap<>();
|
||||||
@@ -32,6 +32,17 @@ public abstract class LiquidTurret extends Turret{
|
|||||||
super.setStats();
|
super.setStats();
|
||||||
|
|
||||||
stats.add(BlockStat.ammo, new AmmoListValue<>(ammo));
|
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
|
@Override
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import io.anuke.mindustry.world.meta.BlockStat;
|
|||||||
import io.anuke.mindustry.world.meta.BlockStats;
|
import io.anuke.mindustry.world.meta.BlockStats;
|
||||||
import io.anuke.mindustry.world.meta.values.ItemFilterValue;
|
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 class ConsumeItemFilter extends Consume{
|
||||||
public final Predicate<Item> filter;
|
public final Predicate<Item> filter;
|
||||||
@@ -33,7 +33,7 @@ public class ConsumeItemFilter extends Consume{
|
|||||||
@Override
|
@Override
|
||||||
public void build(Tile tile, Table table){
|
public void build(Tile tile, Table table){
|
||||||
MultiReqImage image = new MultiReqImage();
|
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);
|
table.add(image).size(8 * 4);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user