From 898b3f055e5e9c11e0bc742515ee48e430441be7 Mon Sep 17 00:00:00 2001 From: zelophed Date: Fri, 29 Nov 2019 14:13:21 +0100 Subject: [PATCH] possible fix for double chest issue Signed-off-by: BuildTools --- src/main/java/com/simibubi/create/CreateConfig.java | 7 ++++++- .../create/modules/logistics/block/IExtractor.java | 2 +- .../modules/logistics/block/belts/ExtractorTileEntity.java | 2 ++ .../logistics/block/belts/LinkedExtractorTileEntity.java | 2 ++ 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/simibubi/create/CreateConfig.java b/src/main/java/com/simibubi/create/CreateConfig.java index 8879ee984..ff1a88154 100644 --- a/src/main/java/com/simibubi/create/CreateConfig.java +++ b/src/main/java/com/simibubi/create/CreateConfig.java @@ -69,7 +69,7 @@ public class CreateConfig { public DoubleValue mediumCapacity, highCapacity; // Logistics - public IntValue extractorDelay, extractorAmount, linkRange; + public IntValue extractorDelay, extractorInventoryScanDelay, extractorAmount, linkRange; // Gardens public DoubleValue cocoaLogGrowthSpeed; @@ -163,6 +163,11 @@ public class CreateConfig { .comment("", "The amount of game ticks an Extractor waits after pulling an item successfully.") .translation(basePath + name).defineInRange(name, 20, 1, Integer.MAX_VALUE); + name = "extractorInventoryScanDelay"; + extractorInventoryScanDelay = builder + .comment("", "The amount of game ticks an Extractor waits before checking again if the attached inventory contains items to extract.") + .translation(basePath + name).defineInRange(name, 40, 1, Integer.MAX_VALUE); + name = "extractorAmount"; extractorAmount = builder .comment("", "The amount of items an extractor pulls at a time without an applied filter.") diff --git a/src/main/java/com/simibubi/create/modules/logistics/block/IExtractor.java b/src/main/java/com/simibubi/create/modules/logistics/block/IExtractor.java index 29b5d40a2..58a8d1916 100644 --- a/src/main/java/com/simibubi/create/modules/logistics/block/IExtractor.java +++ b/src/main/java/com/simibubi/create/modules/logistics/block/IExtractor.java @@ -46,7 +46,7 @@ public interface IExtractor extends ITickableTileEntity, IInventoryManipulator { if (state == State.LOCKED) return; - if (state == State.ON_COOLDOWN) { + if (state == State.ON_COOLDOWN || state == State.WAITING_FOR_INVENTORY) { int cooldown = tickCooldown(); if (cooldown <= 0) { setState(State.RUNNING); diff --git a/src/main/java/com/simibubi/create/modules/logistics/block/belts/ExtractorTileEntity.java b/src/main/java/com/simibubi/create/modules/logistics/block/belts/ExtractorTileEntity.java index d6a3e8855..5dd8f032a 100644 --- a/src/main/java/com/simibubi/create/modules/logistics/block/belts/ExtractorTileEntity.java +++ b/src/main/java/com/simibubi/create/modules/logistics/block/belts/ExtractorTileEntity.java @@ -70,6 +70,8 @@ public class ExtractorTileEntity extends SyncedTileEntity implements IExtractor, public void setState(State state) { if (state == State.ON_COOLDOWN) cooldown = CreateConfig.parameters.extractorDelay.get(); + if (state == State.WAITING_FOR_INVENTORY) + cooldown = CreateConfig.parameters.extractorInventoryScanDelay.get(); this.state = state; } diff --git a/src/main/java/com/simibubi/create/modules/logistics/block/belts/LinkedExtractorTileEntity.java b/src/main/java/com/simibubi/create/modules/logistics/block/belts/LinkedExtractorTileEntity.java index 1d8b5b88c..fc4411843 100644 --- a/src/main/java/com/simibubi/create/modules/logistics/block/belts/LinkedExtractorTileEntity.java +++ b/src/main/java/com/simibubi/create/modules/logistics/block/belts/LinkedExtractorTileEntity.java @@ -96,6 +96,8 @@ public class LinkedExtractorTileEntity extends LinkedTileEntity public void setState(State state) { if (state == State.ON_COOLDOWN) cooldown = CreateConfig.parameters.extractorDelay.get(); + if (state == State.WAITING_FOR_INVENTORY) + cooldown = CreateConfig.parameters.extractorInventoryScanDelay.get(); this.state = state; }