diff --git a/core/src/mindustry/world/BlockStorage.java b/core/src/mindustry/world/BlockStorage.java index 5755080c39..21e227366f 100644 --- a/core/src/mindustry/world/BlockStorage.java +++ b/core/src/mindustry/world/BlockStorage.java @@ -29,6 +29,7 @@ public abstract class BlockStorage extends UnlockableContent{ public int itemCapacity = 10; public float liquidCapacity = 10f; public float liquidPressure = 1f; + public int dumpIncrement = 1; public final BlockStats stats = new BlockStats(); public final BlockBars bars = new BlockBars(); @@ -109,7 +110,7 @@ public abstract class BlockStorage extends UnlockableContent{ public void tryDumpLiquid(Tile tile, Liquid liquid){ Array proximity = tile.entity.proximity(); - int dump = retrieveDump(tile); + int dump = Mathf.floor(tile.rotation() * dumpIncrement); for(int i = 0; i < proximity.size; i++){ incrementDump(tile, proximity.size); @@ -197,7 +198,7 @@ public abstract class BlockStorage extends UnlockableContent{ */ public void offloadNear(Tile tile, Item item){ Array proximity = tile.entity.proximity(); - int dump = retrieveDump(tile); + int dump = Mathf.floor(tile.rotation() * dumpIncrement); for(int i = 0; i < proximity.size; i++){ incrementDump(tile, proximity.size); @@ -227,7 +228,7 @@ public abstract class BlockStorage extends UnlockableContent{ return false; Array proximity = entity.proximity(); - int dump = retrieveDump(tile); + int dump = Mathf.floor(tile.rotation() * dumpIncrement); if(proximity.size == 0) return false; @@ -263,12 +264,8 @@ public abstract class BlockStorage extends UnlockableContent{ return false; } - protected int retrieveDump(Tile tile){ - return tile.rotation(); - } - protected void incrementDump(Tile tile, int prox){ - tile.rotation((byte)((tile.rotation() + 1) % prox)); + tile.rotation((byte)((tile.rotation() + dumpIncrement) % (prox * dumpIncrement))); } /** Used for dumping items. */ diff --git a/core/src/mindustry/world/blocks/distribution/CraterConveyor.java b/core/src/mindustry/world/blocks/distribution/CraterConveyor.java index 6a68e35c4a..ea2eaa88f5 100644 --- a/core/src/mindustry/world/blocks/distribution/CraterConveyor.java +++ b/core/src/mindustry/world/blocks/distribution/CraterConveyor.java @@ -41,6 +41,7 @@ public class CraterConveyor extends Block implements Autotiler{ idleSound = Sounds.conveyor; idleSoundVolume = 0.004f; unloadable = false; + dumpIncrement = 4; } @Override @@ -91,10 +92,10 @@ public class CraterConveyor extends Block implements Autotiler{ Tmp.v1.interpolate(Tmp.v2, 1f - entity.cooldown, Interpolation.linear); // fixme, cleanup - float a = from.rotation() * 90; - float b = tile.rotation() * 90; - if(from.rotation() == 3 && tile.rotation() == 0) a = -1 * 90; - if(from.rotation() == 0 && tile.rotation() == 3) a = 4 * 90; + float a = (from.rotation()%4) * 90; + float b = (tile.rotation()%4) * 90; + if((from.rotation()%4) == 3 && (tile.rotation()%4) == 0) a = -1 * 90; + if((from.rotation()%4) == 0 && (tile.rotation()%4) == 3) a = 4 * 90; // crater Draw.rect(regions[7], Tmp.v1.x, Tmp.v1.y, Mathf.lerp(a, b, Interpolation.smooth.apply(1f - Mathf.clamp(entity.cooldown * 2, 0f, 1f)))); @@ -232,14 +233,11 @@ public class CraterConveyor extends Block implements Autotiler{ int from = Pos.invalid; float cooldown; - byte dump; - @Override public void write(DataOutput stream) throws IOException{ super.write(stream); stream.writeInt(from); - stream.writeByte(dump); stream.writeFloat(cooldown); } @@ -248,7 +246,6 @@ public class CraterConveyor extends Block implements Autotiler{ super.read(stream, revision); from = stream.readInt(); - dump = stream.readByte(); cooldown = stream.readFloat(); } } @@ -295,16 +292,4 @@ public class CraterConveyor extends Block implements Autotiler{ || (entity.items.total() >= getMaximumAccepted(tile, item)) // filled to capacity || (tile.front() == source)); // fed from the front } - - @Override - protected int retrieveDump(Tile tile){ - return tile.ent().dump; - } - - @Override - protected void incrementDump(Tile tile, int prox){ - CraterConveyorEntity entity = tile.ent(); - - entity.dump = (byte)((entity.dump + 1) % prox); - } }