diff --git a/src/main/java/com/thebrokenrail/energonrelics/block/structure/StructureGeneratorBlock.java b/src/main/java/com/thebrokenrail/energonrelics/block/structure/StructureGeneratorBlock.java index af3c140..8c07227 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/block/structure/StructureGeneratorBlock.java +++ b/src/main/java/com/thebrokenrail/energonrelics/block/structure/StructureGeneratorBlock.java @@ -98,7 +98,7 @@ public class StructureGeneratorBlock extends SimpleBlockWithEntity { } public void schedule(World world, BlockPos pos) { - world.getBlockTickScheduler().schedule(pos, this, 0); + world.getBlockTickScheduler().schedule(pos, this, 4); } @Override diff --git a/src/main/java/com/thebrokenrail/energonrelics/energy/core/EnergyReceiverBlockEntity.java b/src/main/java/com/thebrokenrail/energonrelics/energy/core/EnergyReceiverBlockEntity.java index 0fb57c8..1748e4f 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/energy/core/EnergyReceiverBlockEntity.java +++ b/src/main/java/com/thebrokenrail/energonrelics/energy/core/EnergyReceiverBlockEntity.java @@ -25,7 +25,11 @@ public abstract class EnergyReceiverBlockEntity extends EnergyProviderBlockEntit private long totalCost = 0; private long previousTotalCost = 0; + private final List sent = new ArrayList<>(); + protected void propagateAction(Action.PropagatedAction action) { + sent.add(action); + totalCost = totalCost + action.amountOwed(); if (providers.size() > 0) { action.expandPayments(providers.size()); @@ -43,6 +47,8 @@ public abstract class EnergyReceiverBlockEntity extends EnergyProviderBlockEntit @Override public List startTick() { + sent.clear(); + List list = new ArrayList<>(super.startTick()); ServerWorld world = (ServerWorld) getWorld(); @@ -84,7 +90,7 @@ public abstract class EnergyReceiverBlockEntity extends EnergyProviderBlockEntit protected void handlePropagatedAction(Action.PropagatedAction action) { super.handlePropagatedAction(action); // Propagate Action To Energy Providers - if (isEnergyProviderActive()) { + if (isEnergyProviderActive() && !sent.contains(action)) { propagateAction(action); } else { action.pay(0);