Applied-energistics-2: Ender IO Alloy smelter does not follow Interface blocking rules

Created on 3 Jan 2015  路  8Comments  路  Source: AppliedEnergistics/Applied-Energistics-2

The Interface block will continue to add items to the Ender IO Alloy Smelter's input even if the blocking mode is set to "Do not push crafting items if inventory contains items" and there are already items present. The Interface block should be unable to add items to the input if this mode is set and there are items present. This issue is crossposted to the Ender IO github.

Using AE2 rv2 beta 1 and Ender IO 2.2.5.311 with Minecraft 1.7.10 and Forge 10.13.2.1230. Issue occurs on a multiplayer server.

Most helpful comment

@Lukas45 Don't hold your hopes up. This will probably never be fixed.
As far as I can tell, @yueh has no interest in fixing this issue on AE2's side, citing the (imo irrelevant) vanilla furnace as a "gold standard".
EnderIO follows a different gold standard, probably established by earlier mods like IndustrialCraft or even earlier ones, where input slots cannot be pulled from in order to make automation easier.

So unless someone brings up a machine that actually works with AE2's blocking mode, it's basically AE2+vanilla vs. the rest of the world here :)

(Ironically, some AE2 machines also follow the "rest of the world", like the molecular assembler)

All 8 comments

EiO decides to break the behaviour compared nearly every other machine with their IO on a single side.
This way makes it impossible to detect if their inventory already contains something, so nothing we can fix.
They basically need to provide their own option to reject any input if the machine is doing any work to make it usable.

It's already the case, you can't put non valide recipes in the smelter. So it will reject any invalide items.

This has absolutely nothing to do with blocking mode.

Blocking mode is just "do not push items if inventory is not empty" and EiO reports the inventory as empty. So they either need to report their inventory correctly or reject anything as invalid while crafting.

Closing as this an EiO issue.

Because this is getting annoying:

AE2 is using an "canExtract" check to see if there are items in the machine. And yes, if you you think a slot must be empty if you cannot extract its content, you're right. But with that thinking you'd also think that banks have no money in their vaults. Which isn't that bad, tbh, because that means you'd have no reason to rob a bank. g

To confirm what @HenryLoenwind is saying, here's the chain of invocations from DualityInterface down to NMS:

(as of 1760113cd46e08178d0eda3a8233f4205a5f7973)

That last call is net.minecraft.inventory.ISidedInventory.canExtractItem and here's what MCPBot_Reborn says about it:

-MCPBot_Reborn- === MC 1.11: net/minecraft/inventory/ISidedInventory.canExtractItem (rt.b) UNLOCKED ===
-MCPBot_Reborn- Name       : b => func_180461_b => canExtractItem
-MCPBot_Reborn- Descriptor : (ILafi;Lcv;)Z => (ILnet/minecraft/item/ItemStack;Lnet/minecraft/util/EnumFacing;)Z
-MCPBot_Reborn- Comment    : Returns true if automation can extract the given item in the given slot from the given side.
-MCPBot_Reborn- SRG Params : I p_180461_1_, ItemStack p_180461_2_, EnumFacing p_180461_3_
-MCPBot_Reborn- MCP Params : int index, ItemStack stack, EnumFacing direction
-MCPBot_Reborn- Last Change: 2016-03-07 18:48:00.205970-05:00 (pokechu22)

It returns true if automation can extract the given item in the given slot from the given side.
Nothing here says that returning false implies that the inventory is empty.

For completeness, I'm mentioning this here:
This issue applies to the IC2 machines and the ExtraUtils 2 resonator (and possibly the other machines from that mod) as well.

Don't know if this got fixed before, but if it did:
Still an issue in 1.10.2, rv4 alpha11

@Lukas45 Don't hold your hopes up. This will probably never be fixed.
As far as I can tell, @yueh has no interest in fixing this issue on AE2's side, citing the (imo irrelevant) vanilla furnace as a "gold standard".
EnderIO follows a different gold standard, probably established by earlier mods like IndustrialCraft or even earlier ones, where input slots cannot be pulled from in order to make automation easier.

So unless someone brings up a machine that actually works with AE2's blocking mode, it's basically AE2+vanilla vs. the rest of the world here :)

(Ironically, some AE2 machines also follow the "rest of the world", like the molecular assembler)

Was this page helpful?
0 / 5 - 0 ratings

Related issues

StrayCargo picture StrayCargo  路  4Comments

Drachlox picture Drachlox  路  4Comments

Tollainmear picture Tollainmear  路  4Comments

fmohican picture fmohican  路  5Comments

Tyfyter picture Tyfyter  路  3Comments