Railcraft

Railcraft

34M Downloads

Iron/Steel Tank Valves not interacting properly with Buildcraft gates

starslab opened this issue ยท 6 comments

commented

I noticed this back in my FTB Unleashed (Minecraft 1.5) world, and I'm also seeing it now on my Direwolf20 1.6.4 world. I know this used to work correctly back in Minecraft 1.4.x

Tank valves no longer properly interact with Buildcraft gates attached to them. Specifically, the "Space for liquid" signal never turns off, and the "Tank is full" signal never turns on. I've noticed this with lava in the past, and have tested just now with water. This issue affects both Steel and Iron tanks.

To reproduce:

Construct an iron tank, and prepare to fill it with a liquid. (I used several Thermal Expansion Aqueous Accumulators connected to a tesseract)
Place a valve on the one-from-bottom row of the tank, and attach a Buildcraft waterproof wooden pipe. Place a Gate in the pipe. Attach something to the pipe that responds to redstone - I used a white lamp from ProjectRed.

Set the gate to "Fluid in tank" and "Redstone Signal". The lamp will be off. Toggle to "Tank is Empty" and the lamp turns on. Toggle to "Tank Full" and it turns off. Toggle to "Space for fluid" and it turns on. This behavior is as expected.

Now start filling the tank

While the tank is neither full nor empty, the following conditions are shown by the gate:
Fluid in Tank - On
Tank Empty - Off
Tank Full - Off
Space for Fluid - On

Again, this behavior is correct and as expected.

The issue arises once the tank is full:

Fluid in Tank - On
Tank Empty - Off
Tank Full - Off
Space for Fluid - On

This behavior is incorrect, and makes it impossible to design mechanisms that detect and respond to a tank being full.

commented

Also, conditions like <25, <50< or <75 free space doesn't working with RC tanks.

commented

Guess I need to investigate this more closely. I know it worked at some point in the past.

commented

Tank Full/Space for Fluid works in the latest version.

commented

This could have something to do with the fact that stacked tanks keep the fluid below a certain level that is slightly lower than the max value.

commented

In which version is that supposed to be fixed?
I'm using Direwolf20 v1.0.3 for MC 1.7.10 and I have the exact same behaviour that a full tank does not trigger a gate when the condition is set to "Tank full"
The Railcraft version that is used in DW20 1.0.3 is 9.4.0.0

commented

It wasn't ever "fixed" because it was never verified that there was actually a problem.

Stacked tanks will never be "full", they leave space for filling and shove the rest in the above tank. This is "working as intended".

Keep in mind that the Gate Triggers only work on Tank Valves and follow the same Valve placement restrictions as pumping fluids in/out. "IsFull" needs to be able to pump in fluids (level > 0), and "IsEmpty" needs to be able to pump out fluids (level <= 1). Though if you specify the fluid parameter of the Trigger, these restrictions shouldn't apply.

If this isn't what these reports are seeing, then you are welcome to take a look at the Tank filling function. I wasn't able to find anything obviously wrong so the issue was closed.

https://github.com/CovertJaguar/Railcraft/blob/master/src/main/java/mods/railcraft/common/blocks/machine/beta/TileTankIronValve.java#L150

https://github.com/BuildCraft/BuildCraft/blob/6.1.x/common/buildcraft/core/statements/TriggerFluidContainer.java#L94