EdgarAllen / SuperSoundMuffler

MIT License
2 stars 10 forks source link

[1.12.2] Super Sound Muffler Bauble Conflicts with Enderio padding Upgrade #6

Open ALongStringOfNumbers opened 4 years ago

ALongStringOfNumbers commented 4 years ago

The Super sound muffler bauble blacklist is conflicting with the enderio helmet upgrade padding. Sounds that are muffler with the super sound muffler are able to be heard once again after equipping a helmet with the padding upgrade, whereas I would expect the sound to still be muted. This is easily repeatable with the actually additions reconstructor, or the draconic evolution celestial manipulator.

I have also reported this to Enderio here: https://github.com/SleepyTrousers/EnderIO/issues/5318 and was asked to post on this tracker as well. Please see this post for repeatable steps.

Using version: 1.0.2.10

HenryLoenwind commented 4 years ago

And here are some technical details on what we are doing:

Code: https://github.com/SleepyTrousers/EnderIO/blob/master/enderio-base/src/main/java/crazypants/enderio/base/item/darksteel/upgrade/padding/PaddingHandler.java

We are running Priority.LOWEST and wrap the original sound object in a way that it preserves all its data (expect its class, obviously) and only multiply the wrapped sound's volume. So there's no way for us to (a) reintroduce a cancelled sound, (b) increase a sound's volume that has been set to 0, (c) prevent the sound to be recognised (getSoundLocation()) after it's wrapped.

HenryLoenwind commented 4 years ago

Update: Darn it Forge, that event uses yet another way to cancel. Our code only works for the 3 common ways of cancelling an action...