Applied Energistics 2

Applied Energistics 2

137M Downloads

Ore Dictionary Substitutions not working as expected

engiwengi opened this issue ยท 2 comments

commented

The Ore Dictionary Substitutions option for patterns is not working as I would expect when crafting items with several steps. A simple example of what I mean would be crafting sticks.

A pattern is created allowing Ore Dictionary Substitutions using 2x Oak Planks -> 4x Stick. With this pattern, my network is happy to make the sticks out of any planks, e.g Acacia Planks. However if another pattern is created, for example Acacia Log -> 4x Acacia planks, then requesting sticks does not work when the network only contains Acacia Logs, even though I can manually request acacia planks and then sticks and it works fine, since the Ore Dictionary Substitution is allowed.

In this example the network should intelligently be able to craft the Acacia Planks and substitute them for the Oak Planks in the Sticks pattern since the Ore Dictionary substitutions option is chosen.

Granted I am very new to AE2 let alone mods in general (and it's my favourite mod so far!), So it's very possible I'm missing something, and if so please forgive me.

commented

That is not really possible without opening a huge can of worms.

The oredict was always intended to find replacements for input materials, like different copper ores. But never for outputs or conversions. Using it for these cases simply breaks it. For example it might be intentional to craft a crafting bench with silverwood planks, but certainly converting oak planks to silverwood planks is plain broken. Even when both share the same ore dict entry.

Testing the inventory for existing items, which can be use as substition is easy and quick.
But for patterns it is also a major performance impact would we try to somehow resolve similar patterns. There are ore dict entries with over 8000 items and we basically had to check all of them and then also process them again. Which can easily end up in a exponential runtime. Therefore the patterns are using an exact match to create the crafting tree.

You can already see how bad a linear runtime is, by using patterns with container items, for example buckets, tools with durability or in general items who are not consumed during crafting. These can already take a few minutes to just calculate the required materials.

commented

Interesting, thanks for taking the time for an in depth response.