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; }