[RFC] Fully unifying item and fluid variants of machines/parts/items/guis
shartte opened this issue ยท 9 comments
We should discuss merging the fluid/item variants of everything we have into one that handles both.
It'd be open for discussion if export/import buses would support both simultaneously or if it'd be a toggle in the UI to switch them betwen the modes.
For terminals, I can see some issue with deciding whether a player wants to empty a bucket into the network or store the bucket itself.
It might be possible to simply use the mouse-button to decide by showing this tooltip if the carried item is also a fluid container:
I like the idea of the toggle in the UI to switch, but it would be good to be able to decide for the three modes (both, only fluid, only items) And for example if you put both it can be difficult when hitting with a bucket of water to decide if you want a bucket or water itself, as well as one or the other It would be used for these cases, and the normal one for the rest ...
It certainly can be done but the UX can suffer a bit from stuffing everything together, on the other hand having completely separate blocks/items/classes/resources/textures for a tiny difference in code can be a chore to maintain.
That said:
Terminals:
- Fluids will probably always be shown on the top of the list, until the users starts hoardings item in the thousands.
- "Raw" fluids would be shown along with items and fluid containers, with no way to interact with them.
- These could be alleviated with GUI filters/buttons. Which at the same time would require per terminal settings and would
also add yet more stuff to the GUIs
Monitors:
- They no longer consume channels so it would probably be a welcome change for using them
- No GUI, no GUI available how would the item/fluid selection for fluid containers be relayed to the user?
Level emitters:
- Little difference in the GUI to account for fluid amount in the milliBuckets(?) (1 bucket vs 81000 drops or w/e)
Planes:
- Also would have to select between item and contained fluid
Interfaces / Busses:
- Some will call this a blessing for automation.
- May turn some setups "too easy" to be automated with AE?
I just think that it would be good to join the import / export buses and the terminals, the rest should be left as is, by the way, something that would be interesting to integrate is the self-filling of containers, such as those of the extracells, either bottles or buckets or any container? (maybe add a block or a function for bags and shulkers?) xd
How will addons be handled? While I admit the modded landscape is not being flooded with them (I can think of two only), they are a consideration nonetheless. It would feel weird to have items & fluids combined in one instance, but AddonThing forced to their own parts.
Regarding the terminal UX:
I think it's doable. There should be two scenarios to consider:
- Interacting with something already in the system. This works exactly as it does in the current special-purpose terminals, just based on the type of the stack.
- Putting an item into the storage. This is the only way a player can input things into the terminal. As such, it may be hard to decide whether the player want to store the content (fluid) or the item. This might be possible by using right/left-click as the way to distinguish between the two, or we might go the way of dedicated "emptying" slots that empty the container placed in them into the network.
I think the best thing would be that when you put a full container in the system, it will separate between the container and the fluid it has, and when you simply remove it, the system will see if it can fill the container, and show as many items from it as it can fill
@Ommina It's either via allowing addons to hook into the right-click action of terminals, or force them to provide their own terminal.
It's also possible we're still going to do separate terminals per type, but I'd say we just have to try it to see how it feels.