tsunamayo / Starship-EVO

Welcome to Starship EVO bug tracking repo !
112 stars 17 forks source link

[Survival][Suggestion] Can we make the tanks share their contents: Oxygen/Hydrogen/H2O #5769

Open surajnairpv opened 1 month ago

surajnairpv commented 1 month ago

Short Description of the issue:

Trying to make a centralized Tank for Oxygen which will transport the oxygen to Individual smaller tanks across the ship. But when connecting the small tank to the big one the oxygen does not transfer. I don't know if this is a bug or the feature is not there. If not it would be cool to have this. I think this one #5754 would solve this if added

Steps to reproduce the issue:

Connect the bigger tanks with smaller ones and check whether they share its contents

Additional information:

(Screenshots, Videos, Error logs, Related issues)

https://github.com/tsunamayo/Starship-EVO/assets/93534629/27c4272e-2ad2-4ff3-a603-56d0ce90ac3d

Please also include the Player.log file. You can find the log file here: %UserProfile%\AppData\LocalLow\Moonfire Entertainment\Starship EVO\ Player.log Player-prev.log

If you issue concerns a particular design please include any blueprint that could help to reproduce the issue. Blueprint folder is over at: %UserProfile%\AppData\LocalLow\Moonfire Entertainment\Starship EVO\Save_Data\Blueprints\ You will need to zip the folder to upload it. To do so Right click and choose [Send to -> compressed zip file] then drag the .zip onto your report to upload it.

Starship.zip

ProPeach commented 1 month ago

I haven't tried it myself, but have you tested to see if the settings in the Tank GUI change this? iirc there's one called "Storage" or similar, maybe that would mean it draws from other tanks. That setting might just change how the fuel is used though, I'm not sure.

I guess the tanks don't equalise fuel as the fuel system works with discrete packets like the item tubes do, and they'll only transfer them if they're needed for a reactor etc

surajnairpv commented 1 month ago

I'll try changing the GUI you have mentioned and update here if that solves the issue, will also check whether fuel gets transferred for a reactor, may change the way I design my ship

surajnairpv commented 1 month ago

Changed the main tank to storage, no difference, then changed both to storage still no change.

tsunamayo commented 1 month ago

@surajnairpv Nope it is not a feature, why would a tank transfer its stuff to another tank? Only specific system request some fuel (ie reactor, electrolyser, docking port ect). Tank do not initiate request. @ProPeach I dont like this setting its seems to confuse people, it is written for GUI so it means it has no impact on what the tank will do, only how on whether it will show up on the player HUD during flight. Cheers

ProPeach commented 1 month ago

@ProPeach I dont like this setting its seems to confuse people, it is written for GUI so it means it has no impact on what the tank will do, only how on whether it will show up on the player HUD during flight.

Aah ok yes I see that you've added clarification on that setting yeah, that's helpful at least. I assumed that it dictated how the fuel was used, like Storage would not be used by Reactors etc for a fuel tanker. It'd be ideal if the game was able to compute fuel consumption without needing manual help but I'm sure you gave the setting for a reason.

@surajnairpv Nope it is not a feature, why would a tank transfer its stuff to another tank? Only specific system request some fuel (ie reactor, electrolyser, docking port ect). Tank do not initiate request.

So one confusing aspect is that tanks do seem to transfer to other tanks already, for example with tanks in series being filled by a fuel scoop or now a docking connector. image The fuel seems to move through the tanks, equalising fuel level. The player will then expect the same thing to happen in other circumstances, such as Oxygen like this post. Whether on a technical level the Tank or the Fuel Scoop is the one sending/recieving liquid packets won't matter so much, the player will just see the liquid moving about the system and expect it to have apprently consistent rules. Could it be that the Electroliser/Life Support brick is not currently able to move oxygen in the same way as the Fuel Scoop can move fuel in this screenshot?

surajnairpv commented 1 month ago

@tsunamayo the reason I was trying to transfer oxygen from 1 tank to the other is that I have separate rooms in the ship. so when the oxygen runs out in any room, I will have to take the O2 bottle and transfer oxygen from the nearest tank to the life-support. Having a single main tank means we will have to run around the ship to transfer the oxygen to the life support in whichever room needs it, especially when we have 4 or 5 players in one ship My ship is much smaller so not much to move around but if we make a larger ship oxygen management would be a bit running around unless we have working pipes directly connecting the Life support system to the tanks. Also to add in it would be awesome to have 2 tanks, 1 as reserve so when you refill 1 tank both the tanks will fill up via pipe connections, so during a battle if one tank gets hit by the enemy we have the spare tank to maintain the oxygen/Hydrogen. Here the valves will play a big role.

asanagisae commented 1 month ago

I think we can solve this issue with a one-way pump block.

The current fuel setup makes sense. Sometimes you want to have auxiliary tanks for redundancy. If the starboard auxiliary tank is in danger of being destroyed, you don't want it to automatically request fuel to "balance out" the ship's reserves, because it means more fuel will be lost. I agree that fuel shouldn't be transferred automatically if all you have are tanks and pipes.

If you want a distributed model, then you can use one large main tank and add pumps to push fuel to smaller reserve tanks spread throughout the ship. With this solution, your ship's behavior is "configured" by placing blocks on the ship, which seems to match the game's philosophy.

This also solves the topic of connectors and fuel transfer. Player-built stations can have pumps automatically push fuel through the connectors to any ships that dock there. Fuel tanker ships can control whether they receive fuel or deliver fuel by turning pumps on and off. NPC stations can instead rely on kiosks to control fuel transfer through purchases, as they currently do.

There might be some confusion if a player builds pumps in the wrong direction, or if pumps pull from and push to the same pipe loop. The SEVO community has been quite friendly with educating new and returning players on the current state of the game so this shouldn't be an issue.

tsunamayo commented 1 month ago

Interesting post. @ProPeach So nope there is no longer equalization of level in the current implementation, it was with the older one, the new one is just inventory based, with fuel/oxygen being a type of item. So it emit and fulfill request. One way valve should be easy to implement. I am not sure about pump, I guess it is doable I just need to think about it a bit more.

ProPeach commented 1 month ago

Yes I remember the Dev Asks thread on that, it was a cool thouhht. I guess the thing is that if OP is experiencing their Electrolyser not filling all tanks connected in series when it is producing Oxygen (which might look like it "equalising" O2) then that could be thought of as a missing feature /bug compared to my Fuel Scoop Example. But when the Electrolyser is not producing O2, then this situation where two tanks that are connected, one full, one not can arise. Although looking at OPs later comments this post might be more about Life Support bricks not being automatically supplied with O2 and needing a manual Bottle change which I think you were considering solving by making Tank -> Life Support O2 flow automatic/pipeless?