Fixed pump being able to pump water regardless of block it was on

This commit is contained in:
Anuken
2017-10-08 11:54:16 -04:00
parent 8b8172421e
commit 60a13742cd
3 changed files with 17 additions and 3 deletions

View File

@@ -6,6 +6,7 @@ import com.badlogic.gdx.utils.Array;
import io.anuke.mindustry.entities.TileEntity; import io.anuke.mindustry.entities.TileEntity;
import io.anuke.mindustry.resource.Item; import io.anuke.mindustry.resource.Item;
import io.anuke.mindustry.resource.ItemStack; import io.anuke.mindustry.resource.ItemStack;
import io.anuke.mindustry.resource.Liquid;
import io.anuke.ucore.core.Draw; import io.anuke.ucore.core.Draw;
public class Block{ public class Block{
@@ -26,6 +27,7 @@ public class Block{
public boolean vary = true; public boolean vary = true;
//stuff that drops when broken //stuff that drops when broken
public ItemStack drops = null; public ItemStack drops = null;
public Liquid liquidDrop = null;
public Block(String name) { public Block(String name) {
blocks.add(this); blocks.add(this);

View File

@@ -2,6 +2,7 @@ package io.anuke.mindustry.world.blocks;
import io.anuke.mindustry.resource.Item; import io.anuke.mindustry.resource.Item;
import io.anuke.mindustry.resource.ItemStack; import io.anuke.mindustry.resource.ItemStack;
import io.anuke.mindustry.resource.Liquid;
import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Block;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;
import io.anuke.mindustry.world.blocks.types.Floor; import io.anuke.mindustry.world.blocks.types.Floor;
@@ -19,11 +20,13 @@ public class Blocks{
deepwater = new Floor("deepwater"){{ deepwater = new Floor("deepwater"){{
vary = false; vary = false;
solid = true; solid = true;
liquidDrop = Liquid.water;
}}, }},
water = new Floor("water"){{ water = new Floor("water"){{
vary = false; vary = false;
solid = true; solid = true;
liquidDrop = Liquid.water;
}}, }},
stone = new Floor("stone"){{ stone = new Floor("stone"){{

View File

@@ -2,9 +2,9 @@ package io.anuke.mindustry.world.blocks.types;
import io.anuke.mindustry.resource.Liquid; import io.anuke.mindustry.resource.Liquid;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;
import io.anuke.mindustry.world.blocks.Blocks;
import io.anuke.ucore.core.Draw; import io.anuke.ucore.core.Draw;
import io.anuke.ucore.core.Timers; import io.anuke.ucore.core.Timers;
import io.anuke.ucore.util.Mathf;
public class Pump extends Conduit{ public class Pump extends Conduit{
protected float pumpspeed = 2f; protected float pumpspeed = 2f;
@@ -29,13 +29,22 @@ public class Pump extends Conduit{
Draw.rect(name(), tile.worldx(), tile.worldy()); Draw.rect(name(), tile.worldx(), tile.worldy());
} }
@Override
public void drawOver(Tile tile){
if(tile.floor().liquidDrop == null){
Draw.colorl(0.85f + Mathf.absin(Timers.time(), 6f, 0.15f));
Draw.rect("cross", tile.worldx(), tile.worldy());
Draw.color();
}
}
@Override @Override
public void update(Tile tile){ public void update(Tile tile){
ConduitEntity entity = tile.entity(); ConduitEntity entity = tile.entity();
if(tile.floor() == Blocks.water && if(tile.floor().liquidDrop != null &&
Timers.get(tile, "pump", 8) && entity.liquidAmount < liquidCapacity){ Timers.get(tile, "pump", 8) && entity.liquidAmount < liquidCapacity){
entity.liquid = Liquid.water; entity.liquid = tile.floor().liquidDrop;
entity.liquidAmount += pumpspeed; entity.liquidAmount += pumpspeed;
} }