diff --git a/core/src/mindustry/world/blocks/payloads/BlockProducer.java b/core/src/mindustry/world/blocks/payloads/BlockProducer.java index 9f9ed68f9a..fbedeb49b6 100644 --- a/core/src/mindustry/world/blocks/payloads/BlockProducer.java +++ b/core/src/mindustry/world/blocks/payloads/BlockProducer.java @@ -2,6 +2,7 @@ package mindustry.world.blocks.payloads; import arc.graphics.g2d.*; import arc.math.*; +import arc.struct.*; import arc.util.*; import arc.util.io.*; import mindustry.*; @@ -32,7 +33,21 @@ public abstract class BlockProducer extends PayloadBlock{ rotate = true; regionRotated1 = 1; - consume(new ConsumeItemDynamic((BlockProducerBuild e) -> e.recipe() != null ? e.recipe().requirements : ItemStack.empty)); + ObjectMap stacks = new ObjectMap<>(); + + consume(new ConsumeItemDynamic((BlockProducerBuild e) -> { + Block block = e.recipe(); + + if(block != null){ + ItemStack[] clone = stacks.get(block, () -> ItemStack.copy(block.requirements)); + for(int i = 0; i < clone.length; i++){ + clone[i].amount = Mathf.ceil(block.requirements[i].amount * state.rules.buildCostMultiplier); + } + return clone; + }else{ + return ItemStack.empty; + } + })); } @Override diff --git a/core/src/mindustry/world/blocks/payloads/PayloadDeconstructor.java b/core/src/mindustry/world/blocks/payloads/PayloadDeconstructor.java index 5c334bda56..428eb1891b 100644 --- a/core/src/mindustry/world/blocks/payloads/PayloadDeconstructor.java +++ b/core/src/mindustry/world/blocks/payloads/PayloadDeconstructor.java @@ -144,7 +144,7 @@ public class PayloadDeconstructor extends PayloadBlock{ time += edelta(); for(int i = 0; i < reqs.length; i++){ - accum[i] += reqs[i].amount * (payload instanceof BuildPayload ? state.rules.buildCostMultiplier : 1f) * realShift; + accum[i] += reqs[i].amount * (payload instanceof BuildPayload ? state.rules.buildCostMultiplier : state.rules.unitCost(team)) * realShift; } }