Give promethium asteroid chunks another purpose. Turn them into a catalyst for refining an item's quality at no loss.
Mods introducing new content into the game.
Furnaces, assembling machines, production chains.
promethium-quality/refining-recipes.lua:172: call stack!
stack traceback:
[C]: in function 'error'
promethium-quality/refining-recipes.lua:172: in function 'memoize_complexity_for'
promethium-quality/refining-recipes.lua:210: in function 'mark_refinable_items'
promethium-quality/refining-recipes.lua:179: in function 'memoize_complexity_for'
promethium-quality/refining-recipes.lua:210: in function 'mark_refinable_items'
promethium-quality/refining-recipes.lua:179: in function 'memoize_complexity_for'
promethium-quality/refining-recipes.lua:210: in function 'mark_refinable_items'
promethium-quality/refining-recipes.lua:179: in function 'memoize_complexity_for'
promethium-quality/refining-recipes.lua:210: in function 'mark_refinable_items'
promethium-quality/refining-recipes.lua:179: in function 'memoize_complexity_for'
promethium-quality/refining-recipes.lua:210: in function 'mark_refinable_items'
promethium-quality/refining-recipes.lua:179: in function 'memoize_complexity_for'
promethium-quality/refining-recipes.lua:210: in function 'mark_refinable_items'
promethium-quality/refining-recipes.lua:179: in function 'memoize_complexity_for'
promethium-quality/refining-recipes.lua:210: in function 'mark_refinable_items'
promethium-quality/refining-recipes.lua:179: in function 'memoize_complexity_for'
promethium-quality/refining-recipes.lua:210: in function 'mark_refinable_items'
promethium-quality/refining-recipes.lua:179: in function 'memoize_complexity_for'
promethium-quality/refining-recipes.lua:210: in function 'mark_refinable_items'
promethium-quality/refining-recipes.lua:179: in function 'memoize_complexity_for'
promethium-quality/refining-recipes.lua:210: in function 'mark_refinable_items'
promethium-quality/refining-recipes.lua:179: in function 'memoize_complexity_for'
promethium-quality/refining-recipes.lua:210: in function 'mark_refinable_items'
promethium-quality/refining-recipes.lua:179: in function 'memoize_complexity_for'
promethium-quality/refining-recipes.lua:210: in function 'mark_refinable_items'
promethium-quality/refining-recipes.lua:179: in function 'memoize_complexity_for'
promethium-quality/refining-recipes.lua:210: in function 'mark_refinable_items'
promethium-quality/refining-recipes.lua:179: in function 'memoize_complexity_for'
promethium-quality/refining-recipes.lua:210: in function 'mark_refinable_items'
promethium-quality/refining-recipes.lua:179: in function 'memoize_complexity_for'
promethium-quality/refining-recipes.lua:210: in function 'mark_refinable_items'
promethium-quality/refining-recipes.lua:179: in function 'memoize_complexity_for'
promethium-quality/refining-recipes.lua:210: in function 'mark_refinable_items'
promethium-quality/refining-recipes.lua:179: in function 'memoize_complexity_for'
promethium-quality/refining-recipes.lua:210: in function 'mark_refinable_items'
promethium-quality/refining-recipes.lua:179: in function 'memoize_complexity_for'
promethium-quality/refining-recipes.lua:210: in function 'mark_refinable_items'
promethium-quality/refining-recipes.lua:179: in function 'memoize_complexity_for'
promethium-quality/refining-recipes.lua:210: in function 'mark_refinable_items'
promethium-quality/refining-recipes.lua:179: in function 'memoize_complexity_for'
promethium-quality/refining-recipes.lua:210: in function 'mark_refinable_items'
promethium-quality/refining-recipes.lua:179: in function 'memoize_complexity_for'
promethium-quality/refining-recipes.lua:210: in function 'mark_refinable_items'
promethium-quality/refining-recipes.lua:179: in function 'memoize_complexity_for'
promethium-quality/refining-recipes.lua:210: in function 'mark_refinable_items'
promethium-quality/refining-recipes.lua:179: in function 'memoize_complexity_for'
promethium-quality/refining-recipes.lua:210: in function 'mark_refinable_items'
promethium-quality/refining-recipes.lua:179: in function 'memoize_complexity_for'
promethium-quality/refining-recipes.lua:210: in function 'mark_refinable_items'
promethium-quality/refining-recipes.lua:179: in function 'memoize_complexity_for'
promethium-quality/refining-recipes.lua:210: in function 'mark_refinable_items'
promethium-quality/refining-recipes.lua:179: in function 'memoize_complexity_for'
promethium-quality/refining-recipes.lua:210: in function 'mark_refinable_items'
promethium-quality/refining-recipes.lua:179: in function 'memoize_complexity_for'
promethium-quality/refining-recipes.lua:210: in function 'mark_refinable_items'
promethium-quality/refining-recipes.lua:179: in function 'memoize_complexity_for'
promethium-quality/refining-recipes.lua:210: in function 'mark_refinable_items'
promethium-quality/refining-recipes.lua:179: in function 'memoize_complexity_for'
promethium-quality/refining-recipes.lua:210: in function 'mark_refinable_items'
promethium-quality/refining-recipes.lua:179: in function 'memoize_complexity_for'
promethium-quality/refining-recipes.lua:210: in function 'mark_refinable_items'
promethium-quality/refining-recipes.lua:179: in function 'memoize_complexity_for'
promethium-quality/refining-recipes.lua:210: in function 'mark_refinable_items'
promethium-quality/refining-recipes.lua:179: in function 'memoize_complexity_for'
promethium-quality/refining-recipes.lua:210: in function 'mark_refinable_items'
promethium-quality/refining-recipes.lua:179: in function 'memoize_complexity_for'
promethium-quality/refining-recipes.lua:210: in function 'mark_refinable_items'
promethium-quality/refining-recipes.lua:179: in function 'memoize_complexity_for'
promethium-quality/refining-recipes.lua:210: in function 'mark_refinable_items'
promethium-quality/refining-recipes.lua:179: in function 'memoize_complexity_for'
promethium-quality/refining-recipes.lua:210: in function 'mark_refinable_items'
promethium-quality/refining-recipes.lua:179: in function 'memoize_complexity_for'
promethium-quality/refining-recipes.lua:210: in function 'mark_refinable_items'
promethium-quality/refining-recipes.lua:179: in function 'memoize_complexity_for'
promethium-quality/refining-recipes.lua:210: in function 'mark_refinable_items'
promethium-quality/refining-recipes.lua:179: in function 'memoize_complexity_for'
promethium-quality/refining-recipes.lua:210: in function 'mark_refinable_items'
promethium-quality/refining-recipes.lua:179: in function 'memoize_complexity_for'
promethium-quality/refining-recipes.lua:210: in function 'mark_refinable_items'
promethium-quality/refining-recipes.lua:179: in function 'memoize_complexity_for'
promethium-quality/refining-recipes.lua:210: in function 'mark_refinable_items'
promethium-quality/refining-recipes.lua:179: in function 'memoize_complexity_for'
promethium-quality/refining-recipes.lua:210: in function 'mark_refinable_items'
promethium-quality/refining-recipes.lua:179: in function 'memoize_complexity_for'
promethium-quality/refining-recipes.lua:210: in function 'mark_refinable_items'
promethium-quality/refining-recipes.lua:179: in function 'memoize_complexity_for'
promethium-quality/refining-recipes.lua:210: in function 'mark_refinable_items'
promethium-quality/refining-recipes.lua:179: in function 'memoize_complexity_for'
promethium-quality/refining-recipes.lua:210: in function 'mark_refinable_items'
promethium-quality/refining-recipes.lua:179: in function 'memoize_complexity_for'
promethium-quality/refining-recipes.lua:210: in function 'mark_refinable_items'
promethium-quality/refining-recipes.lua:179: in function 'memoize_complexity_for'
promethium-quality/refining-recipes.lua:210: in function 'mark_refinable_items'
promethium-quality/refining-recipes.lua:179: in function 'memoize_complexity_for'
promethium-quality/refining-recipes.lua:210: in function 'mark_refinable_items'
promethium-quality/refining-recipes.lua:179: in function 'memoize_complexity_for'
promethium-quality/refining-recipes.lua:210: in function 'mark_refinable_items'
promethium-quality/refining-recipes.lua:179: in function 'memoize_complexity_for'
promethium-quality/refining-recipes.lua:210: in function 'mark_refinable_items'
promethium-quality/refining-recipes.lua:179: in function 'memoize_complexity_for'
promethium-quality/refining-recipes.lua:210: in function 'mark_refinable_items'
promethium-quality/refining-recipes.lua:179: in function 'memoize_complexity_for'
promethium-quality/refining-recipes.lua:210: in function 'mark_refinable_items'
promethium-quality/refining-recipes.lua:179: in function 'memoize_complexity_for'
promethium-quality/refining-recipes.lua:210: in function 'mark_refinable_items'
promethium-quality/refining-recipes.lua:179: in function 'memoize_complexity_for'
promethium-quality/refining-recipes.lua:210: in function 'mark_refinable_items'
promethium-quality/refining-recipes.lua:179: in function 'memoize_complexity_for'
promethium-quality/refining-recipes.lua:210: in function 'mark_refinable_items'
promethium-quality/refining-recipes.lua:179: in function 'memoize_complexity_for'
promethium-quality/refining-recipes.lua:210: in function 'mark_refinable_items'
promethium-quality/refining-recipes.lua:179: in function 'memoize_complexity_for'
promethium-quality/refining-recipes.lua:210: in function 'mark_refinable_items'
promethium-quality/data-updates.lua:10: in main chunk
disabled the mod that added new quaility tiers,the game still crash like above.
Hey, thanks for the report. Do you have any other mods by any chance, more notably ones that add new content or change recipes?
The way an item's "complexity" and as such refining time is calculated, it requires the mod to walk the ingredient chain backwards.
If there happens to be a modded recipe that has the same item as both an ingredient and result, this method causes an infinite loop that the mod doesn't know how to break out of, so it bails out with a crash on startup.
I'll make the crash message descriptive in the next version since I didn't predict I'll have it actually fire, but for now I'm more interested if you have other mods, so that I can support them until I figure out a solution to the above mentioned problem.
I know Renai Transportation at least has iron chest -> no-lid iron chest -> iron chest which could cause this loop
EDIT: I did some more testing, of the mods list I have only Factorio & Conquer causes the infinite loop problem, specifically since it's infinitely swapping between "tiberium-ore" and "tiberium-ore-blue"
I see... I completely forgot to handle new raw resources :p
In Renai's instance the mod picks up the vanilla iron chest recipe first then applies same complexity to the no-lid variant. But it's sloppy - reverse the order at which it checks recipes and it'll get stuck
For the mod to build up complexity up the ingredient chains, the first item - an ore - must have a "base" complexity. So for Factorio and Conquer's case, I should be digging up modded resource patches and assigning base complexity to their items. I completely overlooked this
Thank you for giving me a reference, I'll get this done for next version
Both things are now in 0.8.2
is1, if you're still seeing the game crash on start, this time the mod should tell you what the conflicting recipes are.
yeah your new mechanic work.
promethium-quality/refining-recipes.lua:298: There is a circular dependency between recipes [plutonium-inv, plutonium-inv-dead, plutonium-inv-reprocess], triggered by [plutonium-inv], which has no way of resolving.
Version 0.8.4 should now no longer crash because of those "circular dependencies". In case you still crash on startup please let me know
19.270 Failed to load mods: promethium-quality/refining-graph.lua:185: attempt to perform arithmetic on field 'energy_required' (a nil value)
stack traceback:
promethium-quality/refining-graph.lua:185: in function 'set_complexity_from_recipe'
promethium-quality/data-updates.lua:79: in main chunk
Some mod made a recipe in "smelting" category with energy_required not set lmao
Give me a moment to fix this
Took me a while cos I found a lot of issues after i rewrote recipe walking... it should be fixed now sorry for the wait :p