Ad Astra

Ad Astra

22M Downloads

[Bug]: Oxygen Distributor and Oxygen Loader appear to void excess input

MuteTiefling opened this issue ยท 5 comments

commented

Bug Description

When pumping in fluids, these two machines appear to be voiding excess. I've noticed this with both Water and Oxygen.

How to Reproduce?

  1. Place down an Oxygen Distributor
  2. Provide it with power
  3. Pipe in water at a fixed rate. In my testing, I'm using a Modular Router operating at 500mb/t
  4. Now watch the inputs.

The Oxygen meter on the right will go from 3k to about 2.95k. During this time the left input nearly fills. As soon as the right hits 2.95k, the power usage spikes and it begins rapidly draining the input at 100mb/t until it is completely empty. Once it empties, it begins filling again and the cycle repeats.

Expected Behavior

Input fluid usage should be considerably lower.

Version

1.20.4-1.16.5

Mod Loader Version

20.4.233

Mod Loader

NeoForge

Logs or additional context

Video of it happening https://streamable.com/bgvfes

This also occurs in AdAstra 1.20.1-1.15.18 on Forge 47.2.30

Code of Conduct

  • I have searched the issue tracker and confirmed that the issue has not been reported
  • I have checked the FAQ (if one is present) and my issue is not listed
  • I have verified that I am using the latest version of the mod
  • I have verified that I have installed all the required dependencies for the mod
  • I have verified that I do not have Optifine installed. We will close issues if we detect Optifine is in your pack. We cannot fix Optifine issues. Please do not report issues with Optifine present.
commented

Just some extra observations with this, but it appears to just continuously consume at the rate specified in the recipe: https://github.com/terrarium-earth/Ad-Astra/blob/5a21dd5f58986f8b9ca8dd533e8e76167a7421a6/common/src/main/generated/resources/data/ad_astra/recipes/oxygen_loading/oxygen_from_oxygen_loading_water.json

So, for example, the default recipe is 100 water to 4 oxygen (ouch). If the Distributor is using 1 oxygen per tick, you would expect it to consume water at 25 per tick. It does not, however, and simply consumes 100 per tick regardless.

If you change the recipe to something like 1000 water to 40 oxygen, maintaining the ratio, it will instead switch to consuming at 1000 water per tick whether it needs to or not.

For now in my tests I'm just adjusting the value to something more reasonable to lose per tick, so a ratio of 9:3. So even though it's consuming more than it needs, it is at least not draining water so fast.

commented

Im encountering the same bug on 1.15.5 on MC 1.20.1. Especially with oxygen its very annoying as it means I need an extra Oxygen Loader to fill up my space suit!

commented

Adding on to this, as I think it is related... but my water also seems to be voided in the following situation.

  1. Machine outputs water to a tank (type of tank doesn't seem to matter)
  2. Ostrum Fluid Pipe extracts from the tank and inserts into multiple disabled Oxygen Distributors
  3. Oxygen Distributors fill to a point and then stop. The tank does not continue to fill despite the machine feeding it producing continuous water.

Setup below:
image

Centrifuge is using a custom recipe that converts potatoes to bio fuel and water. The bio fuel is voided out the left and the water goes into the tank.

The first Distributor never quite fills. It's short by 75mb
image

The second Distributor is similarly not full, short by 25mb
image

Meanwhile the tank fluctuates between 25 and 75mb. It should be back stuffing, and if I disconnect the pipes it does indeed fill up.

Note, setting the pipes on the Distributors to Insert Only does not resolve this. They seem to just keep accepting the water endlessly.

commented

Also experiencing this on mod 1.15.18, forge, minecraft 1.20.1.

commented

I've found a minor workaround that prevents wastage somewhat until all the buffers are full.

Using an intermediary buffer tank between the oxygen loader and distributor, and configuring the distributor to push it's "output" buffer to that tank while also pulling it into the input buffer, it prevents voiding until the intermediary tank AND the input buffer are filled as well as the output buffer.
image
This is sufficient for me since i got a decent buffer to refill personal oxygen containers with and the water/power use is nonsignificant