Pressure Feedback Loop
MuteTiefling opened this issue ยท 24 comments
For feature requests, just erase this template and clearly describe the feature you'd like to see
Minecraft Version
1.16.1
Forge Version
32.0.108
Mod Version
pneumaticcraft-repressurized-1.16.1-2.2.1-32
Describe your problem, including steps to reproduce it
I'm still not quite sure how to reproduce this... but I've managed to do it three times now. Twice in my play world and once in my test world.
I did kind of manage to capture one of the incidents while recording. It happens around the 8 minute mark of the video here:
I think it's either a goofy interaction between the aerial interface charging the player while the player is standing on a charging station, or it's got something to do with charging multiple items in a chest. While playing I was primarily just charging multiple items in a chest when it occurred. It ended up taking out my entire armor charging/aerial interface setup where I was charging some extra jack hammers. Some of these items were stacked, all of them had full volume upgrades installed.
I couldn't quite trigger it in the video until I stepped on the charging station. I don't recall standing on the charging station in my play world, but there was one nearby so it's possible I clipped it while flying around.
So the aerial interface was charging me up to 20 here. I had nothing in my inventory that would accept more than 10 bar though. I then hopped on the charging station and it immediately starts charging, but doesn't stop at 20. After a tube blows, I'm able to go change the interface to 18 bar and when I go stand on the charging station it goes from less than 18, to exactly 20.
So it doesn't seem like a runaway air thing, since it was offset by exactly 2 bar.
Any other comments?
I'm still working on the same project in my play world, so I'll keep an eye on things and try to figure out how to reproduce.
Just had it happen again and it seems more like it's related to shift clicking things out of the charging inventory. It doesn't seem to happen if I shift click them out, nor if I place/remove by mouse click.
Will hop over to testing and see if that holds up there as well where I don't have any sort of mouse/inventory tweak type mod.
Reproduced it once in the test world....Seemed to trigger when I shift clicked stuff out of the inventory rather than picking it up.
and then was unable to reproduce it at will again.
very finicky issue, this one.
I did also spot an exploit where you can charge a stack of multiple drones just as fast as a single drone, effectively getting a load of free pressure.
I'm going to keep drones stackable (assuming their NBT matches which is generally only true for freshly-crafted drones), but just divide the air transferred by the stack size, which will be 1 in most cases. This applies to any pressurizable item which is also stackable.
Yeah, this one could be a pain to track down. I haven't been able to reproduce it so far.
Just had it happen again and it seems more like it's related to shift clicking things out of the charging inventory. It doesn't seem to happen if I shift click them out, nor if I place/remove by mouse click.
Not quite sure what you meant here... your sentences contradict each other :)
Yeah, this one could be a pain to track down. I haven't been able to reproduce it so far.
Just had it happen again and it seems more like it's related to shift clicking things out of the charging inventory. It doesn't seem to happen if I shift click them out, nor if I place/remove by mouse click.
Not quite sure what you meant here... your sentences contradict each other :)
Should read, doesn't seem to happen if I shift click them in. Lol, sorry
Think I've figured out the way to reproduce it.
Place Smart Chest (critical)
Place a pressure tube next to it
Place a charging module on the tube, facing into the chest
place an advanced PCB on the module (probably not critical).
Insert any number of charged items into the Smart Chest
The pressure tube quickly fills, as normal
Now shift click the items out of the smart chest.
The pressure will rapidly rise, effectively making air for free until something blows up.
Whatever is causing this can also 'transmit' itself like some kind of crazy virus.
Just prior to starting this recording, I had triggered the issue. I must've hovered too close to the charging station, causing the 'bugged' air to enter into my aerial interface by way of the items I was holding. It then caused the pipe over there to blow.
This is particularly interesting since nothing in my inventory should have even been able to transmit more than 10 bar max.
Here's one more, hopefully it will give you some clues
Out of curiosity, I wanted to see if this could be exploited for actual free air. I figured if I could keep the tube from breaking with a security module, it might just work. Interestingly, the security module never triggered that the tube was over pressure. I also sometimes have trouble using the manometer on these tubes once they start doing this.
Thinking back to previous issues I've opened, I think the smart chest may well have been the key to those as well. In many cases in my base I had smart chests sitting around for the purpose of charging items... and it was generally on those lines that things were acting up.
So I followed your instructions above: https://streamable.com/2wgiow
And... can't reproduce it :( When I shift-click stuff out of the chest, the pressure stays static, as I expected it to.
Do you have any inventory-tweaks-style mods loaded? Wonder if that could cause some weirdness with shift-clicking. If you do, can you reproduce the problems without that mod or mods?
I only have PNC, Patchouli, Curios, JEI, and Mekanism in that test pack :( I'll try with only PNC/JEI to see if that changes anything.
When you tested, were you also hooked up to an aerial interface to charge you? I wonder if that's somehow related... Will test without to see what that does.
It's the volume upgrades in the items. If I stick a stack of drones in the chest, then shift click them out, it doesn't happen. If I use a stack of drones (or jack hammers) with volume upgrades (25, to be precise), it happens without fault.
This is now in a world with just JEI, Patchouli, PNC, and Curios
Also removed my aerial interface. It has no impact on the above results.
I just tried with a single drone with 25 volume upgrades, and it didn't happen. How did you get a stack of drones with 25 volume upgrades, given that the charging station only allows 1 item into the charging slot at a time? That would be immensely tedious to do manually...
Also, latest releases make all pressurizable tools unstackable (drones and air canisters are not included in that).
Update: also tried with a stack of 2 drones & 25 volume upgrades... still didn't happen.
In creative testing, I just copied the drone with upgrades with a middle click to get a full stack.
But in my play world this all started with a quarry program I was building with 8 identical drones and 8 jack hammers. Things would still blow up, but it wasn't as fast as it is in creative when I use a whole stack.
Ah creative mode of course. Anyhow, just tried that too. 4 stacks of 64 drones each with 25 volume upgrades. Shift-clicked them out of the smart chest and the charging module just sits at 9.99 bar, no feedback loop.
Sorry, I honestly have no idea what to do to reproduce this :(
Ok... just had a bit of a flash. It might be my version of Java.
I've been using GDLauncher since 1.15 and it's running openJDK instead of Oracle's Java.
So far, I've got this weird pressure problem, the issue with circles, and another one that I'm sure you wouldn't be able to reproduce even if I gave you the drone code. For reference, that last one has to do with math on coordinates. I was attempting to spread my drones out to 8 even points on a variable sized circle. Finding the points on x,z were easy, but finding the points at the 'corners' of the circle required muliplying by 10 and dividing by 14 to aproximate pythagoras..
Anyway, long story short, the result was off. Two of the 'corner' points were correct, but one was translated up in the y and off in both x and z. The other was similarly off, but down in the y and the reverse offset in x and z.
So I think all these problems I'm having are actually related to Java itself. I'll spin up a quick instance in Twitch with regular java to see what it does there.
I'm currently using this in my dev & test instances:
$ java -version
java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)
GDLauncher is using this:
ModLauncher 6.1.1+74+master.966c698 starting: java version 1.8.0_242 by AdoptOpenJDK
Twitch is using this:
ModLauncher 6.1.1+74+master.966c698 starting: java version 1.8.0_261 by Oracle Corporation
I cannot reproduce this in Twitch. I also can no longer reproduce the issue with the circle. And I'm sure if I bothered to try, the issue with the multiplication and division would also be fixed.
Blah, java.
Very interesting. Seems like some fundamental difference in arithmetical functionality between the two versions. Weird given I thought they were ultimately from the same codebase, but as you say: blah, java.
I should probably try running this with openjdk in my dev env and see if I can figure out exactly where it goes wrong...
Just gonna leave this here as well in case it helps. These are the default arguments that GDLauncher runs as well.
-Dfml.ignorePatchDiscrepancies=true -Dfml.ignoreInvalidMinecraftCertificates=true -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xms256m
Dunno, but some of those seem pretty odd to me. Think I'll just go back to using the twitch launcher at this point.
I did try adding those params to my dev instance, but that didn't trigger any problems. Think it's down to the JVM rather than any arguments to it...
Also installed OpenJDK (hotspot - forge won't even start with openj9) version 1.8.0_265 to test with, and still can't trigger the problem. So I'm pretty much out of ideas on this one...
Well, for my part everything seems to have cleared up simply by moving back to twitch. I wonder if gdlauncher is doing something strange under the hood given that those arguments are very specifically referring to minecraft...
Anyway, thanks for your time on this one. I appreciate you looking into it like this even though it ultimately isn't anything on your end! Hopefully I'll have fewer wild geese hunts here now that I'm back on twitch.