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.resource.Item;
import io.anuke.mindustry.resource.ItemStack;
import io.anuke.mindustry.resource.Liquid;
import io.anuke.ucore.core.Draw;
public class Block{
@@ -26,6 +27,7 @@ public class Block{
public boolean vary = true;
//stuff that drops when broken
public ItemStack drops = null;
public Liquid liquidDrop = null;
public Block(String name) {
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.ItemStack;
import io.anuke.mindustry.resource.Liquid;
import io.anuke.mindustry.world.Block;
import io.anuke.mindustry.world.Tile;
import io.anuke.mindustry.world.blocks.types.Floor;
@@ -19,11 +20,13 @@ public class Blocks{
deepwater = new Floor("deepwater"){{
vary = false;
solid = true;
liquidDrop = Liquid.water;
}},
water = new Floor("water"){{
vary = false;
solid = true;
liquidDrop = Liquid.water;
}},
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.world.Tile;
import io.anuke.mindustry.world.blocks.Blocks;
import io.anuke.ucore.core.Draw;
import io.anuke.ucore.core.Timers;
import io.anuke.ucore.util.Mathf;
public class Pump extends Conduit{
protected float pumpspeed = 2f;
@@ -29,13 +29,22 @@ public class Pump extends Conduit{
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
public void update(Tile tile){
ConduitEntity entity = tile.entity();
if(tile.floor() == Blocks.water &&
if(tile.floor().liquidDrop != null &&
Timers.get(tile, "pump", 8) && entity.liquidAmount < liquidCapacity){
entity.liquid = Liquid.water;
entity.liquid = tile.floor().liquidDrop;
entity.liquidAmount += pumpspeed;
}