mirror of
https://github.com/Anuken/Mindustry.git
synced 2025-02-11 11:17:11 +07:00
Added LiquidTurret class
This commit is contained in:
parent
621ec4ee0f
commit
04865350e1
@ -1,7 +1,7 @@
|
||||
#Autogenerated file. Do not modify.
|
||||
#Wed Feb 21 15:00:37 EST 2018
|
||||
#Wed Feb 21 19:21:02 EST 2018
|
||||
version=release
|
||||
androidBuildCode=257
|
||||
androidBuildCode=262
|
||||
name=Mindustry
|
||||
code=3.3
|
||||
build=custom build
|
||||
|
@ -23,6 +23,8 @@ public class Item{
|
||||
public final int id;
|
||||
public final String name;
|
||||
public TextureRegion region;
|
||||
public float explosiveness = 0f;
|
||||
public float flammability = 0f;
|
||||
|
||||
public Item(String name) {
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user