GlobbyPotato / Rockhounding_Chemistry

The purpose of Rockhounding Chemistry is to assembly and maintain an industrial area in which several machines handle various types of ingredients (solid, fluid and gaseous) to produce advanced material for mid-late game stages. It also leads to several features, functional applications and experiments.
Other
15 stars 17 forks source link

Some suggestions for modpack creation (mainly CT stuff) #86

Closed wormzjl closed 5 years ago

wormzjl commented 5 years ago

Hello, recently I've been working on a modpack with heavy emphasis on rockhounding ore processing system and a full realistic petrochem line (see https://imgur.com/a/cHPVFil), and I've came up with some suggestions :

  1. It seems that currently the meterial/element cabinets can store a very large amount of materials (or maybe unlimited?), which can be problematic for automations. Could you add a config option for it's maximum storage?

  2. The lab balance output poses a problem in oredict unification, since one cannot control the output item. Is it possible to have some sort of CT method for dust <-> item mapping?

  3. It seems that the gas used in crystal pulling crucible is hardcoded (1000 mb of argon). Could you make it tweakable via CT? Maybe an optional argument in the end so it don't break existing scripts.

  4. Both the mineral sizer and the leacher have a chance to give a secondary output although the mechanism is not very obvious, could you make this chance accessible to CT?

  5. The second gas input of the vapor deposition chamber is hardcoded to 1000 mb of oxygen. Is there a reason behind this or it's possible to make it accessible to CT too?

  6. I've wrote a script as follows to make ammonia from pure hydrogen and nitrogen, and I want it to use only ferrous catalyst. mods.rockhounding_chemistry.GasReformer.add(<liquid:hydrogen>*1500, <liquid:nitrogen>*500, <liquid:ammonia>*1000, <rockhounding_chemistry:fe_catalyst>); However in JEI it still switches between gold and ferrous catalysts, I believe this is hardcoded? Also what does system catalysts serves IRL? I see that it's also hardcoded.

  7. About the catalyst regenerator, could you add a CT method so that one can add/remove gases for regeneration? Like the FCC catalyst is regenerated by steam in industry while others need oxygen or hydrogen.

  8. The source code on github seems to be a bit outdated, might consider updating so one can make PRs to fix bugs or maybe add such functions?

Thanks you again for all your work to bring this level of realism to modded minecraft.

GlobbyPotato commented 5 years ago

Well, wow, now that's what I call a mod implementation, excalated as hell, but that's it. As for the points, let's see if we can sort them out.

1- I didn't added a cap for the cabinet, because would either break/stop/waste the extraction material or make the reactor laggy to check each elements for cap. Usually you send them out to storage as soon as possible, so I thought to avoid that extra ticking.

2- The cabinets work through oredictionary for simplicity. I want to avoid using specific targets to prevent null occurrencies expecially after setting it for max compatibility. For the lab balance, I've set to drop the RH dusts from the element cabinet. For the material cabinet, since it's customized, it is supposed the player does the script accordingly to the oredicted material he has. I know there are mods that make unifications via oredictionary, not sure if they involved RH though. Or there is Storage Drawers where you can set a specific mod item and all the other variants will match it, if I remember correctly.

3-5- Argon and Oxygen have been hardcoded for simplicity, to avoid making the mod more obnoxious than it is for people. It is possible to make them variable of course, I think I thought too about it, by adding the carrier ingredient as part of the recipe. It could be also possible to set specific amounts with the recipe or leave it to "factory default". For now you should consume 0.100cu of Argon and 0.200cu of Oxygen per cycle.

4- This is how those machines are meant to work to be unique. The mechanism for the secondary outputs is this: -Secondary Output (green slot): 25% chance between the exposed outputs only. In example at comminution 5 you expose both Native and Sulfate. You randomly get one of them as main output and can randomly get also one of them as secondary. -Waste Output (red slot): if the above chance happens, you have an extra 5% chance to obtain also something between all the possible outputs (one between all the gangues, be oxide, borate, silicate...).

6- The gold catalyst is the lowest tier of catalysts and the least efficient. It is meant to prevent nulls and to give access to the machine even if you don't have yet the proper material for the most efficient production. The System Catalyst is meant to give the machine some kind of extra tier. Some sort of "diamond is better than gold which is better than iron which is better than stone...". Part of the plot is making the machines a bit upgradable to be more efficient

7- The problem in this is that you need to also define then which gas regenerates which catalyst and search for the matching combo. I see a lag in this. Still possible though. The way it is made is a wrapped approximation just to recycle chemical waste. Remember that some machine can use anything as catalyst via CT so it may break the combo. A possibility is to set flue gas a default in case a pair is missing. Like I do with gold catalyst, flue gas would be the least efficient than the more indicated material.

8- Yeah I know, it's stuck to 1.10 and not even the latest release. I'm still a noob at coding and the code is very noobish as well, so I prefer to avoid people injecting too complicated stuff I can't quickly understand. Happened once and barely could take it. Also the Github system gives me headache with branches and the local repositories. feels like 3 feet on one shoe at the same time. so I tend to use it the least possible. Will probably upload the 1.12 code if I get this current state to a decent Release.

Hope it helps so far. Trying to don't diverge too much from the original ideas but suggestions are always welcome of course, So far the mod was mostly used as osmium maker. At some point I was suggested to introduce plastic making but never had valid applications in minecraft terms to add more machines for that.

wormzjl commented 5 years ago

Thank you for the explanation. I know that my implementation is a bit insane lol, but I did something similar in my last TFC-tech pack and people enjoyed it. If you are interested https://www.atlauncher.com/pack/PerFabricaadAstra

I find that this mod very suitable for realism modpacks since it introduces a large amount of materials and processing systems, and I've decided to expand it further in my new pack. RH is a lot more stable than I have anticipated and I haven't encounterd a crash so far. If git isn't very obvious, give this a try: https://www.sourcetreeapp.com/. I've used it for myself and it works pretty well.

Actually, the point of needing a cap for cabinets is for the alloy maker. In case that one needs multiple alloyers for mass production of different alloys, one cannot simply dump all materials into a single cabinet, especially for major materials such as iron. The use of server can control the propotion of output item from a single machine, but it cannot work on-demand.

For the regeneration part, I think we don't really need to pair the catalyst with certain gas, different gases with different consumption rate will do.

And new bugs pops out: When testing the reformer with custom recipes, I see that it's not respecting the Stoichiometry in my script, where I put <liquid:hydrogen>*1500, <liquid:nitrogen>*500. Can you take a look at this? Additional testing shows that same thing happens with gasifier, gas purifier, and the CSTR. The CSTR also does not work if 2 liquids in the fluid input system are not in correct order. Which can be confusing for players.

GlobbyPotato commented 5 years ago

yeah I like it indeed, using single machines for a big picture makes the mod run better than doing the entire progression to then move to another mod.

Oh you mean feeding multiple alloyers? In this case it could be possible to cap the loader in the upper part, no more dusts are converted if the cap is reached. Of course better the cap be the same for all the elements to reduce ticking. Will add this to the TODO list.

The regeneration tiers sounds fair. Flue gas can be the highest one being a mixture with already a proper making process. More affordable gases can be scaled down.

In those machines the process is still harcoded due to multiplying factors. Setting 1500mB may result in a No-Go if you use a simple pressure vessel in the structure that can hold only 1000mB. I need to find a compromise for this at the moment. I'm waiting to have all similar machines at the final stage to make a starndard method. The CSTR is a "free" machine because has no selectors, so the inputs need to be filtered in advance by following the JEI displacement for Left/Right channel. Will try to make it check for flipped channels too.

wormzjl commented 5 years ago

Currently I believe that the biggest problem for new players is to find out why their machine doesn't work. Mostly it's placement problem, but there can be many other causes. Anything that can make this process simpler will be great.

Also IIRC the reformer has 2 gas output, shouldn't it be one gas and one liquid output?

GlobbyPotato commented 5 years ago

I was thinking to make a sanity check on demand for the structures, to know if all the parts are in place. this should solve the installation problem, though people should read the tech concepts of the guidebook.

the bottom-side vessel is for the purge. when you change recipe, input gases are one by one sent to the purge vessel to be sent back into the storage tanks, so the new gases can be added to the input. There is the same in the deposition chamber.

wormzjl commented 5 years ago

Oh I forgot that buffer tank on the top. So I've just tested this switching function, but it's not sending anything to the pressure vessel on switching recipes.

GlobbyPotato commented 5 years ago

is it in the right place? In the latest alpha I added a Separator and the purge is one step back than the controller.

wormzjl commented 5 years ago

It's here as the manual shows image

Actually the gas product is sent from the pressure vessel behind the separator, shouldn't the gas product obtained from the top and the liquid product obtained from below?

GlobbyPotato commented 5 years ago

lol right, I confused with the output of the deposition chamber moved a step back. Last time I checked it worked. It purges only if the input gas is different in the new recipe and the purge vessel matches the gas or is empty. Also make sure the machine is turned on.

well, the product displacement is just for aesthetic opportunity reasons, the fluid tank models are shaped to be plugged vertically, while the vessels are horizontally oriented. The alternative is to put the vessel at the back of the tower cap and the buffer tank on top of the separator.

wormzjl commented 5 years ago

Alright one last thing...Can we have a speed upgrade slot for the transposer or just make it work super fast since it's just a converter? Because if the gas comes from external sources and the reactor has speed upgrades, one or two transposer simply cannot keep up.

GlobbyPotato commented 5 years ago

will give a try

wormzjl commented 5 years ago

cheers!