From d5a2f13442bfd99e8b04d4262e6d506b6464a3d7 Mon Sep 17 00:00:00 2001 From: Anuken Date: Sat, 16 Oct 2021 22:33:17 -0400 Subject: [PATCH] Payload loader tweaks --- core/src/mindustry/world/Block.java | 1 + core/src/mindustry/world/blocks/distribution/Conveyor.java | 6 +++--- .../world/blocks/payloads/PayloadDeconstructor.java | 2 +- core/src/mindustry/world/blocks/payloads/PayloadLoader.java | 5 ++++- core/src/mindustry/world/blocks/storage/StorageBlock.java | 1 + 5 files changed, 10 insertions(+), 5 deletions(-) diff --git a/core/src/mindustry/world/Block.java b/core/src/mindustry/world/Block.java index feaf234ae9..7c1b5936a4 100644 --- a/core/src/mindustry/world/Block.java +++ b/core/src/mindustry/world/Block.java @@ -50,6 +50,7 @@ public class Block extends UnlockableContent{ public boolean outputsPayload = false; public boolean acceptsPayload = false; public boolean acceptsItems = false; + public boolean separateItemCapacity = false; public int itemCapacity = 10; public float liquidCapacity = 10f; diff --git a/core/src/mindustry/world/blocks/distribution/Conveyor.java b/core/src/mindustry/world/blocks/distribution/Conveyor.java index c45b6a7981..97dba6fc77 100644 --- a/core/src/mindustry/world/blocks/distribution/Conveyor.java +++ b/core/src/mindustry/world/blocks/distribution/Conveyor.java @@ -22,7 +22,7 @@ import static mindustry.Vars.*; public class Conveyor extends Block implements Autotiler{ private static final float itemSpace = 0.4f; - private static final int capacity = 4; + private static final int capacity = 3; final Vec2 tr1 = new Vec2(); final Vec2 tr2 = new Vec2(); @@ -40,7 +40,7 @@ public class Conveyor extends Block implements Autotiler{ update = true; group = BlockGroup.transportation; hasItems = true; - itemCapacity = 4; + itemCapacity = capacity; conveyorPlacement = true; ambientSound = Sounds.conveyor; @@ -323,7 +323,7 @@ public class Conveyor extends Block implements Autotiler{ @Override public void handleStack(Item item, int amount, Teamc source){ - amount = Math.min(amount, itemCapacity - len); + amount = Math.min(amount, capacity - len); for(int i = amount - 1; i >= 0; i--){ add(0); diff --git a/core/src/mindustry/world/blocks/payloads/PayloadDeconstructor.java b/core/src/mindustry/world/blocks/payloads/PayloadDeconstructor.java index a425872d94..11cefa0bb6 100644 --- a/core/src/mindustry/world/blocks/payloads/PayloadDeconstructor.java +++ b/core/src/mindustry/world/blocks/payloads/PayloadDeconstructor.java @@ -87,7 +87,7 @@ public class PayloadDeconstructor extends PayloadBlock{ @Override public boolean acceptUnitPayload(Unit unit){ - return payload == null && !unit.spawnedByCore && unit.type.getTotalRequirements().length > 0 && unit.hitSize / tilesize <= maxPayloadSize; + return payload == null && deconstructing == null && !unit.spawnedByCore && unit.type.getTotalRequirements().length > 0 && unit.hitSize / tilesize <= maxPayloadSize; } @Override diff --git a/core/src/mindustry/world/blocks/payloads/PayloadLoader.java b/core/src/mindustry/world/blocks/payloads/PayloadLoader.java index 2eba6b41a8..3f14f4153a 100644 --- a/core/src/mindustry/world/blocks/payloads/PayloadLoader.java +++ b/core/src/mindustry/world/blocks/payloads/PayloadLoader.java @@ -148,7 +148,10 @@ public class PayloadLoader extends PayloadBlock{ public boolean shouldExport(){ return payload != null && ( (payload.block().hasLiquids && payload.build.liquids.total() >= payload.block().liquidCapacity - 0.001f) || - (payload.block().hasItems && payload.build.items.total() >= payload.block().itemCapacity)); + (payload.block().hasItems && + payload.block().separateItemCapacity ? + content.items().contains(i -> payload.build.items.get(i) >= payload.block().itemCapacity) : + payload.build.items.total() >= payload.block().itemCapacity)); } } } diff --git a/core/src/mindustry/world/blocks/storage/StorageBlock.java b/core/src/mindustry/world/blocks/storage/StorageBlock.java index 6135288c3c..01b50b10bf 100644 --- a/core/src/mindustry/world/blocks/storage/StorageBlock.java +++ b/core/src/mindustry/world/blocks/storage/StorageBlock.java @@ -20,6 +20,7 @@ public class StorageBlock extends Block{ solid = true; update = false; destructible = true; + separateItemCapacity = true; group = BlockGroup.transportation; flags = EnumSet.of(BlockFlag.storage); allowResupply = true;