[Suggestion] Fluid Handling with Worktables
KAfable opened this issue ยท 6 comments
Would it be possible to add in Fluid tanks for some worktables? For example, I wanted to use the Chemist's Worktable, but the beaker tools didn't seem to fit thematically. I wanted to be able to a more efficient rubber creation process by having the player combine 100mb of molten sulfur with sticky resin, which creates 4x rubber than the 1x from smelting stick resin.
For the CT implementation, then the player could specify how much rubber would be used, this might result in some awkwardness however if a player wanted to shift click a stack crafting output, and there's only enough in the tank for 10 crafts.
A fluid table is something that I'd like to add. It makes sense that the Chemist's table might have a fluid tank and allow crafting with fluids. There are a number of implementation details to work through for this feature to be done well. Off the top of my head (and mostly for my future reference):
- Where / how to display the fluid level in the gui
- Reworking the gui art to accommodate the fluid display
- How to display the fluid required in JEI
- Adding fluid handling / matching to recipes
- Adding fluid parameter handling to CT integration
- Adding fluid ingredients in JEI integration
- How does the player remove unwanted fluid
You mention adding the tank feature to some worktables, implying more than just the one table. Which tables were you referring to aside from the Chemist's table?
This will make a great feature and one that I will probably use myself. I can't, however, accurately predict when I will have time to dedicate to the development of new features for this project.
Worktables: Honestly the only worktables that would support fluids thematically would be Chemist's Worktable, and the Scribes Worktable. I do thing that adding one to the Basic Worktable can also be appropriate (even though it's basic, it's also thematically the most flexible, and pack dev's like myself would just rename it anyways if flavor was an issue).
I like the fluid display on the left, especially since if you are transferring that to JEI, it'll make a lot more sense reading left to right. I think that a player needs to just hover over the fluid bar and a tooltip will pop up stating how much fluid you need per craft. Adding the number of mb needed for the recipe might just add too much clutter.
Removing unwanted fluids: there is always the option to let the player use an empty bucket to remove 1,000mb chunks of fluid. For smaller amounts, maybe a pipette tool can be added that act's as a mini bucket but is more flexible (can hold any mb amounts between 0 - 1,000mb). However a pipette is more tools and possibly more clutter, the best solution I can think of is breaking the table empties the tank.
I'm sure you've already considered it, but piping in/out from Worktables could be beneficial as well. A player could have Liquiducts piping into the Worktable and just craft a couple stacks constantly without leaving the GUI.
I am adding the fluid tank feature to all worktables with the exception of the basic worktable. Fluids are added / removed by using fluid item containers (ie. buckets) on the blocks. Water can be added / removed in 250mb increments using vanilla glass bottles. The worktables do not retain any fluids when broken. The fluid tank is exposed as a capability and should handle piping fluids in / out.
Remaining work items:
Reworking GUI artRendering fluid in GUITileEntity fluid tank and capability- JEI integration (display, fluid usage
u
, fluid cost tooltip) - CT integration (will be available using the builder syntax only)
- Recipes (matching, creation)
- Fluid tooltip in GUI
- Shift-click fluid to empty in GUI
- Render measurement marks in GUI overlay pass
- Testing
I disagree with Chemist's and Scribe's worktable being the only tables to thematically support fluids. I can imagine carpenter's glue, tailor's dye, mage's mana, engineer's oil, blacksmith's lava (or any molten metals, really), mason's grout... etc. I think it's important to allow the end user the opportunity to use their imagination.
To this end, I may reconsider applying this feature to the basic worktable as well.