Added LiquidTurret class
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
#Autogenerated file. Do not modify.
|
#Autogenerated file. Do not modify.
|
||||||
#Wed Feb 21 15:00:37 EST 2018
|
#Wed Feb 21 19:21:02 EST 2018
|
||||||
version=release
|
version=release
|
||||||
androidBuildCode=257
|
androidBuildCode=262
|
||||||
name=Mindustry
|
name=Mindustry
|
||||||
code=3.3
|
code=3.3
|
||||||
build=custom build
|
build=custom build
|
||||||
|
|||||||
@@ -23,6 +23,8 @@ public class Item{
|
|||||||
public final int id;
|
public final int id;
|
||||||
public final String name;
|
public final String name;
|
||||||
public TextureRegion region;
|
public TextureRegion region;
|
||||||
|
public float explosiveness = 0f;
|
||||||
|
public float flammability = 0f;
|
||||||
|
|
||||||
public Item(String name) {
|
public Item(String name) {
|
||||||
this.id = items.size;
|
this.id = items.size;
|
||||||
|
|||||||
@@ -0,0 +1,81 @@
|
|||||||
|
package io.anuke.mindustry.world.blocks.types.defense;
|
||||||
|
|
||||||
|
import io.anuke.mindustry.entities.TileEntity;
|
||||||
|
import io.anuke.mindustry.resource.Liquid;
|
||||||
|
import io.anuke.mindustry.world.Tile;
|
||||||
|
import io.anuke.mindustry.world.blocks.types.LiquidAcceptor;
|
||||||
|
|
||||||
|
import java.io.DataInputStream;
|
||||||
|
import java.io.DataOutputStream;
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
public class LiquidTurret extends Turret implements LiquidAcceptor{
|
||||||
|
public Liquid ammoLiquid = Liquid.water;
|
||||||
|
public float liquidCapacity = 20f;
|
||||||
|
public float liquidPerShot = 1f;
|
||||||
|
|
||||||
|
public LiquidTurret(String name) {
|
||||||
|
super(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean hasAmmo(Tile tile){
|
||||||
|
LiquidTurretEntity entity = tile.entity();
|
||||||
|
return entity.liquidAmount > liquidPerShot;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void consumeAmmo(Tile tile){
|
||||||
|
LiquidTurretEntity entity = tile.entity();
|
||||||
|
entity.liquidAmount -= liquidPerShot;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean acceptLiquid(Tile tile, Tile source, Liquid liquid, float amount){
|
||||||
|
LiquidTurretEntity entity = tile.entity();
|
||||||
|
return ammoLiquid == liquid && entity.liquidAmount + amount < liquidCapacity && (entity.liquid == liquid || entity.liquidAmount <= 0.01f);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handleLiquid(Tile tile, Tile source, Liquid liquid, float amount){
|
||||||
|
LiquidTurretEntity entity = tile.entity();
|
||||||
|
entity.liquid = liquid;
|
||||||
|
entity.liquidAmount += amount;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float getLiquid(Tile tile){
|
||||||
|
LiquidTurretEntity entity = tile.entity();
|
||||||
|
return entity.liquidAmount;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float getLiquidCapacity(Tile tile){
|
||||||
|
return liquidCapacity;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TileEntity getEntity() {
|
||||||
|
return new LiquidTurretEntity();
|
||||||
|
}
|
||||||
|
|
||||||
|
static class LiquidTurretEntity extends TurretEntity{
|
||||||
|
public Liquid liquid;
|
||||||
|
public float liquidAmount;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void write(DataOutputStream stream) throws IOException {
|
||||||
|
super.write(stream);
|
||||||
|
stream.writeByte(liquid == null ? -1 : liquid.id);
|
||||||
|
stream.writeByte((byte)(liquidAmount));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void read(DataInputStream stream) throws IOException{
|
||||||
|
super.read(stream);
|
||||||
|
byte id = stream.readByte();
|
||||||
|
liquid = id == -1 ? null : Liquid.getByID(id);
|
||||||
|
liquidAmount = stream.readByte();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user