daipenger / Sound-Physics

A Minecraft mod that provides realistic sound attenuation, reverberation, and absorption through blocks.
GNU General Public License v3.0
52 stars 8 forks source link

Sound engine crashes when breaking multipart block #27

Open nicolasdeory opened 5 years ago

nicolasdeory commented 5 years ago

I am playing a modpack which has forge multipart. It allows placing, for instance, more than one torch per block (when you place more than one the block becomes a tile entity, if I'm not mistaken).

When I break that block, the whole sound system crashes and I have no sound at all during the rest of the game.

I'm not sure if it's this mod's fault or multipart's. Is there a relatively simple fix for this issue?

I isolated the issue to this exception:

Exception in thread "Thread-13" [00:35:26] [Thread-13/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:-1]: java.lang.NullPointerException
[00:35:26] [Thread-13/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:-1]:     at codechicken.multipart.TMultiPart.collisionRayTrace(TMultiPart.scala:116)
[00:35:26] [Thread-13/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:-1]:     at codechicken.multipart.TileMultipart$$anonfun$rayTraceAll$2.apply(TileMultipart.scala:351)
[00:35:26] [Thread-13/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:-1]:     at codechicken.multipart.TileMultipart$$anonfun$rayTraceAll$2.apply(TileMultipart.scala:350)
[00:35:26] [Thread-13/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:-1]:     at scala.collection.TraversableViewLike$Filtered$$anonfun$foreach$4.apply(TraversableViewLike.scala:197)
[00:35:26] [Thread-13/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:-1]:     at scala.collection.Iterator$class.foreach(Iterator.scala:743)
[00:35:26] [Thread-13/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:-1]:     at scala.collection.AbstractIterator.foreach(Iterator.scala:1174)
[00:35:26] [Thread-13/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:-1]:     at scala.collection.IterableViewLike$Transformed$class.foreach(IterableViewLike.scala:44)
[00:35:26] [Thread-13/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:-1]:     at scala.collection.SeqViewLike$AbstractTransformed.foreach(SeqViewLike.scala:37)
[00:35:26] [Thread-13/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:-1]:     at scala.collection.TraversableViewLike$Filtered$class.foreach(TraversableViewLike.scala:196)
[00:35:26] [Thread-13/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:-1]:     at scala.collection.SeqViewLike$$anon$5.foreach(SeqViewLike.scala:188)
[00:35:26] [Thread-13/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:-1]:     at codechicken.multipart.TileMultipart.rayTraceAll(TileMultipart.scala:350)
[00:35:26] [Thread-13/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:-1]:     at codechicken.multipart.TileMultipart.collisionRayTrace(TileMultipart.scala:343)
[00:35:26] [Thread-13/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:-1]:     at codechicken.multipart.BlockMultipart.collisionRayTrace(BlockMultipart.scala:110)
[00:35:26] [Thread-13/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:-1]:     at codechicken.multipart.BlockMultipart.func_180636_a(BlockMultipart.scala:66)
[00:35:26] [Thread-13/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:-1]:     at net.minecraft.block.state.BlockStateContainer$StateImplementation.func_185910_a(BlockStateContainer.java:461)
[00:35:26] [Thread-13/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:-1]:     at net.minecraft.world.World.func_147447_a(World.java:1087)
[00:35:26] [Thread-13/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:-1]:     at net.minecraft.world.World.func_72901_a(World.java:930)
[00:35:26] [Thread-13/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:-1]:     at com.sonicether.soundphysics.SoundPhysics.evaluateEnvironment(SoundPhysics.java:387)
[00:35:26] [Thread-13/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:-1]:     at com.sonicether.soundphysics.SoundPhysics.onPlaySound(SoundPhysics.java:182)
[00:35:26] [Thread-13/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:-1]:     at paulscode.sound.libraries.SourceLWJGLOpenAL.play(SourceLWJGLOpenAL.java:671)
[00:35:26] [Thread-13/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:-1]:     at paulscode.sound.Library.play(Library.java:706)
[00:35:26] [Thread-13/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:-1]:     at paulscode.sound.Library.play(Library.java:675)
[00:35:26] [Thread-13/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:-1]:     at paulscode.sound.SoundSystem.CommandPlay(SoundSystem.java:2076)
[00:35:26] [Thread-13/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:-1]:     at paulscode.sound.SoundSystem.CommandQueue(SoundSystem.java:2599)
[00:35:26] [Thread-13/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:-1]:     at paulscode.sound.CommandThread.run(CommandThread.java:121)
Lorelando commented 5 years ago

As a "workaround" you could try https://minecraft.curseforge.com/projects/sound-reloader to reload your sound engine. I can't promise it'll work, but it might be worth a try. daipenger at some point said that the sound physics would need a rewrite to be properly continued and that he won't do it (https://github.com/daipenger/Sound-Physics/issues/24#issuecomment-436818830).

nicolasdeory commented 5 years ago

@Lorelando Thanks for the suggestion, I hadn't thought about that. I'll try and see how it goes.