World Block Importer operates slowly even if Ticks/Operation setting is decreased to 1
AlisonHuang777 opened this issue ยท 8 comments
Issue type:
- ๐ Bug
Short description:
Even if Ticks/Operation setting is decreased to 1, they seem to be still operating only twice per second.
Steps to reproduce the problem:
footage.mp4
Expected behaviour:
That thing should operates 20 times per second.
Versions:
- Playing (modpack) ATM9 0.3.5
- Integrated Tunnels 1.8.31
- Integrated Dynamics 1.23.12
- Forge 47.3.11
- Minecraft 1.20.1
Log file:
no responce
Seems to also happen when just the integrated suite is installed:
(Storage drawers only for infinite feed of items purposes, but wasn't necessary to reproduce)
Steps to reproduce the problem:
- Build exactly as in the screenshot (can use a filled chest instead of drawer)
- Set both exporter and importer to 1 tick per operation
- Shift-click a blank variable card into the exporter
- Shift-click a blank variable card into the importer
Blocks get placed as fast as the exporter is configured, but only broken once per ~10 ticks.
Versions:
- InDy: 1.24.3
- InTu: 1.8.32
- CyCore: 1.19.5
- CC: 2.9.4
- Minecraft: 1.20.1
- Mod loader version: Forge 47.3.22
It's possible that I've hardcoded a limit for these to avoid lag. But I'll have to double-check this.
Adding to this:
footage.mp4
Right: [Create] clicking with Andesite Alloy to make an Andesite Casing.
Left: [Farmer's Delight] wood log stripping with Allthemodium Axe. Note that the axe has no durability (unbreakable), if using one with durability instead, the speed is dropped to ~2 ops/s.
Both Player Simulators are set to 1 tick/op. Again, the footage is recorded with ATM9 0.3.5.
Also, Player Simulator will throw snowballs (vanilla) 2 times per second while set to 1 tick/op.
So the issue with the block importer/exporter is that things are actually working as intended.
All IT parts have an optimization that will cause them to sleep for 10 ticks (configurable in inventoryUnchangedTickTimeout
in config file) if a movement failed.
Since this block importer/exporter setup will result both parts to run in separate ticks (block available - block not available), this optimization will take effect every time.
I'll have to think about it a bit, but I'm thinking of adding a part-level option that allows you to disable this optimization, and basically "force" this part to tick every time.
The player simulator problem was caused by something else.
(Alternatively) it is also possible to inform the user that this optimization is a thing that can happen, as a clarification on the ticks per operation setting. For instance with an exclamation symbol that has a hover tooltip with the explanation.
A new setting that disables the optimization should also definitely get a more verbose explanation (too), since people shouldn't disable the mechanic for "I want stuff fast" purposes, potentially sabotaging their own game experience in an uninformed way.