Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Interface "Blocking" mode doesn't work in most cases. #97

Open
AcidKat opened this issue Dec 4, 2017 · 5 comments
Open

Interface "Blocking" mode doesn't work in most cases. #97

AcidKat opened this issue Dec 4, 2017 · 5 comments

Comments

@AcidKat
Copy link

AcidKat commented Dec 4, 2017

Description

When using Interface blocks to process various types of recipes it seems like the interface ignores its "blocking" mode functionality in most cases; including with the inscriber.

Some machines I tested this with:

  • Thermal Expansion Redstone Furnace
  • Thermal Expansion Induction Smelter (Multiple Inputs)
  • Applied Energistics Inscriber (Press Recipes and Circuit Recipes)

The only exceptions to the rule I could find were the vanilla furnace and the molecular assembler (though the assembler only seems to accept one set of items regardless of blocking mode).

Edit: To be clear in case I'm being an idiot, I expect that the Interface blocking mode should only allow one set of crafting / processing materials to be present in the target machines at a time (I use this to allow multiple machines to contribute to a crafting order), in practice the interface seems to fill one machine to full, before using another attached machine.

Environment

  • Minecraft Version: 1.12.2
  • AE2 Version: applied-llamagistics-rv5-beta-10
  • Forge Version: 14.23.1.2559

Other mods:

  • Thermal Expansion: 5.3.7.31
  • Mekanism: 9.4.2.327
@thiakil
Copy link
Owner

thiakil commented Dec 5, 2017

The functionality of the Blocking Mode has been a point of some contention in the past, there was one PR on upstream AE2 about changing it because it checks if it can extract or something, I'm not sure.

How exactly do you want it to work? (yes the Molecular assembler is a special case, as the interface passed the pattern directly onto it rather than actually inserting the items)

@AcidKat
Copy link
Author

AcidKat commented Dec 5, 2017

Ideally item Blocking would work to prevent items from being fed into a machine that already contains items for processing i.e. only allow one process worth of items in a machine at a time. Like I said before, personally I would use this functionality to allow multiple machines to be used evenly to process the same order, but also to prevent a machine being used for two recipes at once and causing a conflict and stalling.

This would have to account for machines with multiple inputs, like the induction smelter for example, a basic recipe for the induction smelter would be 2 Iron Dust and 1 Sand (Across 2 Input slots) = 2 Iron Ingots + Secondary Output, so the interface has to export 3 different items into the machine to full-fill a recipe, then wait until it's done processing before exporting the next batch.

@thiakil
Copy link
Owner

thiakil commented Dec 5, 2017

The issue is usually how to tell if a machine has actual ingredients, or just auxiliary slots.

Take for example the EIO Sag Mill, with flint or steel balls inserted. How does the interface know it shouldn't care about that?

@AcidKat
Copy link
Author

AcidKat commented Dec 5, 2017

9There's the problem I guess. I actually was going to make the same point myself and talk about the slice n' splice using shears and an axe. I guess in cases where the machine has a... lets call it a static item that isnt necessarily consumed, either we could have a specific ui in the interface to ignore / whitelist certain items? This wouldn't be ideal granted, but i think the instances whre machines have such a static input might be rare enough that its an acceptable inconvenience?

I did consider suggesting the interface check specifically for items used on the patterns but that would cause issues when using shared machines with multiple interfaces.

There are often cases where machines accept items only to specific slots, e.g. items from top go only to "input" slots, i guess it could try to hook into the machine's logic that way? Im not sure if that would require having mod specific hook-ins?

Off the top of my head I cant think of any better ways to handle this. I'll get back to you if i think of anything that might be helpful ^^

@thiakil
Copy link
Owner

thiakil commented Dec 5, 2017

Im not sure if that would require having mod specific hook-ins

Depending on implementations, maaaaybe. It sounds good in theory tho for it to check the slots individually if they're empty rather than an all-or-nothing approach (which i think it currently uses, but am not sure without code diving)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants