GTNewHorizons / GT-New-Horizons-Modpack

A big progressive questing modpack for Minecraft 1.7.10 balanced around the mod GregTech.
https://www.gtnewhorizons.com/
Other
1.02k stars 313 forks source link

Oil Cracker multiple recipe automation. #14795

Closed AbdielKavash closed 11 months ago

AbdielKavash commented 1 year ago

Your GTNH Discord Username

abdiel_kavash

Your Pack Version

2.4.1

Your Proposal

The following are all currently available oil cracker recipes, excluding cracking oil and naquadah products:

Circuit [1] + Steam + Bauxite Slurry --> Heated Bauxite Slurry Circuit [17] + Steam + Ruthenium Tetroxide Solution --> Hot Ruthenium Tetroxide Solution Circuit [1] + Steam + Muddy Bastnasite Rare Earth Solution --> Steam-Cracked Bastnasite Mud Circuit [2] + Nitric Acid + Propane --> Nitromethane Circuit [1] + Methanol + Toluene --> O-Xylene Circuit [24] + Silver Plasma + Heavy/Light/Super Light Radox --> Light/Super Light/Cracked Radox

As you can see, the circuit numbers are mostly arbitrarily chosen, they do not help to disambiguate recipes or to prevent conflicts.

However, since the oil cracker does not allow an input bus anywhere in the structure, the only place one can insert a circuit is in the controller slot. (Circuits in input or output hatches are not recognized, this I have tested.) The controller slot can not be accessed by any automation, short of replacing the entire controller block.

This means that it is currently impossible to set up one oil cracker to run multiple of the above recipes using different circuits; and swap fluid inputs using some automation, for example AE2.

I suggest changing this to enable a "universal" cracker setup. I can see at least two simple ways to accomplish that:

Your Goal

I understand that having a dedicated machine for every recipe or every circuit is the "lazy" solution. However, all other machines are able to store multiple different circuits and process recipes using different ones, as long as the player can ensure that there will be no recipe conflicts. Automated swapping of circuits is also possible using several methods. Each of these propose a new design or automation challenge. I do not want to remove this challenge; but I want to make solving it at least possible for the oil cracker.

Programmed circuits should be used to resolve recipe conflicts, or to select a "mode of operation" for the machine (for example, degree of cracking). In this specific case they have an entirely different (perhaps unintended) side-effect, which is disallowing processing of otherwise non-conflicting recipes in the same machine.

If using one cracker per recipe is in fact an intended limitation, then maybe this should be done using some more obvious mechanism; perhaps something similar to imprinting CALs.

Your Vision

To be able to use one oil cracker to be able to automate processing all of the various recipes above.

The machine is already capable of processing all of them without any recipe conflicts, it is just currently impossible to be set up to do so.

Final Checklist

Dream-Master commented 1 year ago

@AbdielKavash suggest circuit setting without produce conflicts just wrote down the recipe and the config you suggest (maybe name the old circuite number)

AbdielKavash commented 1 year ago

@AbdielKavash suggest circuit setting without produce conflicts just wrote down the recipe and the config you suggest (maybe name the old circuite number)

All oil and naquadah cracking recipes (i.e., everything except the 8 recipes listed above):

All recipes I have listed above:

With this resolution, as long as exactly two fluids are provided, and at most one circuit is present, the result is always uniquely determined.

The only possible overlap would be if Steam, Nitric Acid, Propane, and one of the cracking circuits [1]-[3] are all present at the same time; in this case the result is undetermined between Steam-Cracked Propane and Nitromethane. However from what I have seen these overlaps between two or more recipes are not considered a conflict.

chochem commented 1 year ago

changing circuits breaks peoples setups. I don't think this is important enough to justify that. Allowing input bus sounds like the much cleaner solution imo.

Dream-Master commented 1 year ago

changing circuits breaks peoples setups. I don't think this is important enough to justify that. Allowing input bus sounds like the much cleaner solution imo.

I not take a closer look but if we have a logic problem i am for "a breaking existing setup" solution.

bombcar commented 1 year ago

Would it be possible to add the correct recipes, deprecate the existing (remove from nei?) and let that sit for while? Probably eventually it comes back to bite us but I don’t know how often crackers get new recipes.

or maybe the controller slot needs to be accessible by automation generally (I assume there’s a reason it’s not?) or have a cover that can do so.

AbdielKavash commented 1 year ago

changing circuits breaks peoples setups. I don't think this is important enough to justify that. Allowing input bus sounds like the much cleaner solution imo.

This is why my original suggestion was to remove the circuits from those recipes completely. This would not affect existing setups, as they would continue to run even with the extra circuit present. And even without the circuit numbers the recipes have no conflicts between them.

That being said I do not want to argue, allowing an input bus would also solve the existing problem, as well as open up the possibilities for more interesting automation for more recipes to be added in the future. For example, automatically changing the circuit number for different levels of oil cracking recipes.

or maybe the controller slot needs to be accessible by automation generally (I assume there’s a reason it’s not?) or have a cover that can do so.

A cover that lets you automatically change the circuit number for a machine/multiblock certainly sounds very interesting. I want to say based on redstone signal strengths; unfortunately there are only 16 signal levels and 24 (basic) circuit settings. This might be worth suggesting as a separate issue if you have some good idea for how it could work. Especially if the current behavior of the stocking bus automation is unintended and might be changed in the future (as I've heard from some people on discord).

chochem commented 1 year ago

well if you want the option of universality that includes oil so you need an input bus. (or interactivity for the controller) cant remove circuits there.