Fixed error when saving with empty conduits

This commit is contained in:
Anuken
2017-10-08 11:50:31 -04:00
parent 2c9921748c
commit 8b8172421e
3 changed files with 6 additions and 3 deletions

View File

@@ -106,13 +106,14 @@ public class Conduit extends Block{
@Override @Override
public void write(DataOutputStream stream) throws IOException{ public void write(DataOutputStream stream) throws IOException{
stream.writeByte(liquid.ordinal()); stream.writeByte(liquid == null ? -1 : liquid.ordinal());
stream.writeByte((byte)(liquidAmount)); stream.writeByte((byte)(liquidAmount));
} }
@Override @Override
public void read(DataInputStream stream) throws IOException{ public void read(DataInputStream stream) throws IOException{
liquid = Liquid.values()[stream.readByte()]; byte ordinal = stream.readByte();
liquid = ordinal == -1 ? null : Liquid.values()[ordinal];
liquidAmount = stream.readByte(); liquidAmount = stream.readByte();
} }
} }

View File

@@ -2,6 +2,7 @@ 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;
@@ -32,7 +33,8 @@ public class Pump extends Conduit{
public void update(Tile tile){ public void update(Tile tile){
ConduitEntity entity = tile.entity(); ConduitEntity entity = tile.entity();
if(Timers.get(tile, "pump", 8) && entity.liquidAmount < liquidCapacity){ if(tile.floor() == Blocks.water &&
Timers.get(tile, "pump", 8) && entity.liquidAmount < liquidCapacity){
entity.liquid = Liquid.water; entity.liquid = Liquid.water;
entity.liquidAmount += pumpspeed; entity.liquidAmount += pumpspeed;
} }

Binary file not shown.