Why are ExtraStorage crafters showing `Current Speed (limited by machinery)` when regular crafters don't such a limitation?
credomane opened this issue ยท 3 comments
Is there an existing issue for this?
- I have searched the existing issues
Describe the bug
I've noticed that for certain "machines" the stock Refined Storage crafters perform significantly faster for doing processing patterns. Pictured is a contrived example that does not actually do anything but it does showcase the limited speed issue.
Regular Refined Storage Crafter runs at 5x speed (with 4x speed upgrades installed)
While Extra Storage crafters all say limited to 2x speed
If I do a minecraft chest the limit is 27x speed. Which the RS crafters can't reach but I swear the Extra Storage crafters aren't reaching 27x either and I swear the RS crafters are actually run faster. I'm not sure how to test it but if there is a difference between them it sure isn't 22x (27-5) of a difference.
How can I reproduce this bug or crash?
Attach a crafter to a storage drawer to see a contrived example of the limited speed issue where a regular RS crafter is faster than a Extra Storage crafter for processing patterns.
Configuration
- Mod version: 2.2.1
- Refined Storage version: 1.10.5
- Forge version: 40.2.10
- Minecraft version: 1.18.2
Relevant log output
No response
Anything else?
No response
The number of processed items of the crafter is determined by the getMaximumSuccessfulCraftingUpdates
method.
In the RS, this method returns the number of SpeedUpgrades + 1, therefore at most 5.
When the wording "limited by machinery" comes up, it means that the crafter could go much faster but the number of slots the machinery has is less than the speed and the crafter does not insert more than x items. This was done to speed up the machinery of the mekanism.
I did a test with a vanilla chest and the extrastorage crafters are faster than the RS ones
@Override
public int getMaximumSuccessfulCraftingUpdates() {
int speed = getTierSpeed();
if (hasConnectedInventory()) {
return Math.min(speed, getConnectedInventory().getSlots());
}
return speed;
}
public int getTierSpeed() {
int upgradesCount = upgrades.getUpgradeCount(UpgradeItem.Type.SPEED);
if (tier.equals(CrafterTier.IRON)) {
return upgradesCount + tier.getCraftingSpeed();
}
return (upgradesCount * (tier.getCraftingSpeed() / 5)) + tier.getCraftingSpeed();
}
With this commit (409d7d8) I leave the choice to the user if he wants the uniform distribution or the maximum speed. Unfortunately you can't both.
I must have imagined editing my original post to put some text in the "anything else" section to ask exactly how the limited by machinery is being determined. Thanks for explaining that. Anyways, I did some more testing myself and found a few mistakes on my end that were severely slowing down processing in my actual setup. Thus causing the Extra Storage crafters to appear just as slow or slower than RS Crafters despite there being a 22x speed difference. I was initially chasing a red herring because of it.
the crafter could go much faster but the number of slots the machinery has is less than the speed
So that's how that limit is determined. That makes perfect sense. I can work with that to improve performance of my particular processing setup. Thanks again! Time to swap out the chests for Diamond chests it is then.
I know you've made a code change already to add a config value for this particular "limitation" but would it also be possible to update the tooltip to indicate it is limited by the machinery's inventory slots? The way it reads now I was actually taking it to be some odd/bad mod interaction/incompatability issue the whole time. As the chests I was using for the 27x limitation are actually from the quark mod. Never thought to convert Quark's Oak Chest into a vanilla chest for some reason as see if the 27x limit stayed.