GTNewHorizons / GT-New-Horizons-Modpack

New Modpack with Gregtech, Thaumcraft and Witchery
https://www.gtnewhorizons.com/
Other
887 stars 275 forks source link

Backport GTCEu recipemap fluid mechanics #11590

Closed thecodingchicken closed 1 year ago

thecodingchicken commented 1 year ago

Your GTNH Discord Username

thecodingchicken#4835

Your Pack Version

2.2.0.0

Your Proposal

I propose backporting GTCEU's chemical reactor's recipemap, which can be seen below. This would also have to apply to other machines that use cells. image

Your Goal

The goal would be to reduce if not eliminate the need for cells in any machine.

Your Vision

This would reduce the spaghetti spam that always seems to accumulate around chem lines, as well as making things much more straightforward.

Final Checklist

joshaup1999 commented 1 year ago

Nope, absolutely not. Should not happen, cells is the challange you have to overcome by getting LCRs or PAs. LCRs for chem reactors and with Blue's new code change PAs no longer need the cells. See no need for this to be backported

miozune commented 1 year ago

LCR and PA are already powerful, I'm not against it in terms of balance. It just needs massive code rework that nobody wanted to do for years.

boubou19 commented 1 year ago

cell management is one of the mechanics i like most:

Yeeting cell would just make the pack easier for """QoL""". I'm against.

Glease commented 1 year ago

cell management is one of the mechanics i like most:

* it's an accessible problem: anyone can come up with solution pretty fast

* it's challenging: you have to think about how to design the routing. Will you go spaghetti style? will you take additional aestethical constraints to have a good looking base? What technology will you use?

* it's an evolutive problem: you will continously improve and scale up the routing during your progression

* The issue is totally nullified after some point in the progression: when you start to craft fluids in LCR or in PAs, no cell involved anymore. Also the new AE2FC mod trivialized fluid usage and fluid crafting for endgame.

Yeeting cell would just make the pack easier for """QoL""". I'm against.

For some reason this sounds so much like an 0lafe opinion.

BlueWeabo commented 1 year ago

Having Singleblock not handle cells anymore will also make it much harder to automate chemlines where there are multiple fluid outputs as in GTCEu the first fluid is always outputted first. meaning people can't use pumps to easily get only 1 fluid out. it would need some new code to do that to allow the pump to filter fluids. An easier way would be with ender fluid conduits, but those are at HV, which is quite a bit farther away and would require the player to do manual chemical processes.

boubou19 commented 1 year ago

For some reason this sounds so much like an 0lafe opinion

Well i understand the goal of this change but that's removing a big chunk of complexity from the game. I just voiced my opinion, now if it's an unpopular one so be it, i'll just follow the consensus.

But everything can basically be presented as a QoL change, and i think some limits have to be drawn.

thecodingchicken commented 1 year ago

Alright, it seems like that is certainly not as popular as I thought it would be.

Perhaps I could just add more slots to the inputs/outputs of various machines, as shown below. Mixer: 9i+1f -> 4i+1f would be 9i+2f -> 4i+1f
I noticed that the mixer only outputs a max of two items, but think we should keep all 4. Only adding 1 more fluid input here Centrifuge: 2i + 1f -> 6i + 1f would be 2i + 1f -> 6i + 6f Think it is debatable on if we should have 6 fluid out here, gtceu(in nomifactory at least) only uses 3 at the maximum. Electrolyzer: 2i + 1f -> 6i + 1f would be 2i + 1f -> 6i + 6f Same as the centrifuge, but if you were electrolyzing large fluids, I can see the additional outputs useful Chemical Reactor: 2i+1f -> 2i + 1f would be 2i + 3f -> 2i + 2f The original reason for this issue. I think that we would keep the cell recipes, but add fluid only recipes.

The number of slots in each machine could be whatever we wanted, but I just went with parody of gtceu.

mitchej123 commented 1 year ago

I hate cells and would be in favor of cellless single blocks!

Connor-Colenso commented 1 year ago

Removing cell judging would seriously undermine a lot of early game complexity imo and remove a lot of the gratification of eventually unlocking the LCR. I don't think we should take this from GTCE.

That spaghetti is a vital part of GTNH.

thecodingchicken commented 1 year ago

My thoughts are as follows, and they are in greater detail in my last comment, but in short. Add additional fluid slots to various machines. Add fluid -> fluid recipes, removing usage of cells HOWEVER, keep all preexisting recipes there, which theoretically should not break existing machines. I have not implemented any of these changes yet in my dev environment, but I will be doing some testing later today.
Below is an example of what I will be doing.
The first two recipes already exist in gt5u, I am just proposing the third. (On my phone so this stinks)

// HClO + NaOH + C3H5Cl = C3H5ClO + NaCl·H2O
        GT_Values.RA.addChemicalRecipe(
                Materials.HypochlorousAcid.getCells(1),
                Materials.SodiumHydroxide.getDust(3),
                Materials.AllylChloride.getFluid(1000),
                Materials.Epichlorohydrin.getFluid(1000),
                Materials.SaltWater.getCells(1),
                480);
        GT_Values.RA.addChemicalRecipe(
                Materials.SodiumHydroxide.getDust(3),
                Materials.AllylChloride.getCells(1),
                Materials.HypochlorousAcid.getFluid(1000),
                Materials.Epichlorohydrin.getFluid(1000),
                Materials.SaltWater.getCells(1),
                480);
        GT_Values.RA.addChemicalRecipe(
                Materials.SodiumHydroxide.getDust(3),
                Materials.HypochlorousAcid.getFluid(1000),
                Materials.AllylChloride.getFluid(1000),
                Materials.Epichlorohydrin.getFluid(1000),
                Materials.SaltWater.getFluid(1000),
                480
                );
mitchej123 commented 1 year ago

I'm not sure how people think there would be less challenge or spaghetti with all fluids. You just wouldn't have the cancer of putting stuff into, or out of, a cell. Which is a boring repetitive tedious process for little to no enjoyment.

Fluid routing and piping is a challenge, especially without the things you get later game to improve it. An option of cells or fluids could be presented in the gui, as to not remove the option but I'd really like to see the alternative added.

As glee8e alluded to, please stop channeling your inner 0lafe... This is tedium pure and simple

boubou19 commented 1 year ago

i prefer to deal with cells than fluids, with all the backlog in gt pipes, you have to disable the output from the input side on each pipe. That alone is way more tedious than item piping. In addition to that, GT pipes for fluids are recursively updated for fluid transmission, while GT pipes for items just TP the items to the shortest availiable output. you have the drawers/barrels that are dirt cheap item diodes, while to achieve the same thing you need more expansive tank+pump.

Also, if you remove some difficulty from earlier tiers, the satisfaction to migrate to LCRs is also reduced.

mitchej123 commented 1 year ago

while GT pipes for items just TP the items to the shortest availiable output.

This is simply not true. They iterate over every pipe and only send it if they can, or it'll get stuck in the first pipe's inventory.

some difficulty from earlier tiers,

It's not difficulty, it's tedium. Plus you're limited in the number of sides you have available, so you need to use multi pipes (a challenge) because conduits aren't readily available until you already have the LCR.

I"m fine keeping cells as an option, but I'd rather give alternatives to people who can't stand them.

boubou19 commented 1 year ago

while GT pipes for items just TP the items to the shortest availiable output.

This is simply not true. They iterate over every pipe and only send it if they can, or it'll get stuck in the first pipe's inventory.

Well, yes, but they stay in the first pipe until they find a valid route. In addition to that, you can use restricted pipes to artificially increase the lengh of a pipe, so it only goes to the closest destination first. Meanwhile, we have no equivalent for fluids.

You can also use cheap alternative to conveyors like hoppers for items, while for pumps it's more annoying.

But if we do it as another option while keeping the cells, then i can agree with, as anyone can find their fun.

mitchej123 commented 1 year ago

Meanwhile, we have no equivalent for fluids.

Hah, This has annoyed me, and I'd be willing to add something if we came up with a balanced mechanism for it. I was also thinking... could add a hotkey or an option to set the single direction flow on pipes on placement... it's a lot more obvious now that we have these awesome arrow textures by default for pipes.... It also annoyed me that item pipes didn't have something similar!

Does sound like a slight re-think of pipes in GT might be useful, as they are pretty dumb.

chochem commented 1 year ago

Meanwhile, we have no equivalent for fluids.

if you are fine with a 99% to 1% prio instead of 100%, then there is an equivalent by using pipes/tanks of different sizes. Fluids split proportionally to the fluid amount that can go into the inventories.

thecodingchicken commented 1 year ago

I had forgotten to close this issue. The amount of work needed in order to implement this(redoing gt5u's whole machine registering system, adding recipes, testing everything) is beyond my abilities. If anyone wants to pick this up in the future, that would be great, but I am not capable of doing it.