thedocruby / resounding

A New Minecraft mod that provides realistic audio physics using parallel wave tracing and an improved physics algorithm.
https://thedocruby.dev/resounding
GNU Lesser General Public License v3.0
85 stars 4 forks source link

Update octree-testing branch to Minecraft 1.21 #110

Closed acodili-jg closed 6 days ago

acodili-jg commented 2 weeks ago

Important Changes:

To-do-ish

acodili-jg commented 2 weeks ago

Update: it compiles now. I just need to check if it can run fine, similar to the 1.18.2 version. *Edit: it currently is not running fine. More mixins actually need fixing* it seems. I'll try work on this tomorrow (I need to sleep ;-;).

acodili-jg commented 2 weeks ago

All good. It is working similarly to before updating to Minecraft 1.21. I can't test much since both have the same issue with NullPointerException. This is probably due to changes to Minecraft but only the 1.21 version recovered from the NPE and it just closed/disconnected from the world.

Minecraft 1.18.2

java.lang.NullPointerException: Cannot invoke "dev.thedocruby.resounding.RawMaterial.weight()" because "raw" is null
    at dev.thedocruby.resounding.Cache.lambda$refineMaterials$8(Cache.java:499) ~[main/:?]
    at java.util.HashMap.forEach(HashMap.java:1421) ~[?:?]
    at dev.thedocruby.resounding.Cache.refineMaterials(Cache.java:496) ~[main/:?]
    at dev.thedocruby.resounding.Cache.finalizeMaterials(Cache.java:528) ~[main/:?]
    at dev.thedocruby.resounding.Cache.generate(Cache.java:258) ~[main/:?]
    at net.minecraft.world.chunk.WorldChunk.initStorage(WorldChunk.java:820) ~[minecraft-merged-project-root-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.2-v2.jar:?]
    at net.minecraft.world.chunk.WorldChunk.handler$zem000$resounding$load(WorldChunk.java:801) ~[minecraft-merged-project-root-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.2-v2.jar:?]
    at net.minecraft.world.chunk.WorldChunk.loadFromPacket(WorldChunk.java:460) ~[minecraft-merged-project-root-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.2-v2.jar:?]
    at net.minecraft.client.world.ClientChunkManager.loadChunkFromPacket(ClientChunkManager.java:96) ~[minecraft-merged-project-root-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.2-v2.jar:?]
    at net.minecraft.client.network.ClientPlayNetworkHandler.loadChunk(ClientPlayNetworkHandler.java:613) ~[minecraft-merged-project-root-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.2-v2.jar:?]
    at net.minecraft.client.network.ClientPlayNetworkHandler.onChunkData(ClientPlayNetworkHandler.java:608) ~[minecraft-merged-project-root-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.2-v2.jar:?]
    at net.minecraft.network.packet.s2c.play.ChunkDataS2CPacket.apply(ChunkDataS2CPacket.java:41) ~[minecraft-merged-project-root-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.2-v2.jar:?]
    at net.minecraft.network.packet.s2c.play.ChunkDataS2CPacket.apply(ChunkDataS2CPacket.java:19) ~[minecraft-merged-project-root-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.2-v2.jar:?]
    at net.minecraft.network.NetworkThreadUtils.method_11072(NetworkThreadUtils.java:21) ~[minecraft-merged-project-root-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.2-v2.jar:?]
    at net.minecraft.util.thread.ThreadExecutor.executeTask(ThreadExecutor.java:141) [minecraft-merged-project-root-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.2-v2.jar:?]
    at net.minecraft.util.thread.ReentrantThreadExecutor.executeTask(ReentrantThreadExecutor.java:22) [minecraft-merged-project-root-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.2-v2.jar:?]
    at net.minecraft.util.thread.ThreadExecutor.runTask(ThreadExecutor.java:114) [minecraft-merged-project-root-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.2-v2.jar:?]
    at net.minecraft.util.thread.ThreadExecutor.runTasks(ThreadExecutor.java:102) [minecraft-merged-project-root-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.2-v2.jar:?]
    at net.minecraft.client.MinecraftClient.render(MinecraftClient.java:1136) [minecraft-merged-project-root-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.2-v2.jar:?]
    at net.minecraft.client.MinecraftClient.run(MinecraftClient.java:755) [minecraft-merged-project-root-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.2-v2.jar:?]
    at net.minecraft.client.main.Main.main(Main.java:209) [minecraft-merged-project-root-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.2-v2.jar:?]
    at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:462) [fabric-loader-0.14.19.jar:?]
    at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74) [fabric-loader-0.14.19.jar:?]
    at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23) [fabric-loader-0.14.19.jar:?]
    at net.fabricmc.devlaunchinjector.Main.main(Main.java:86) [dev-launch-injector-0.2.1+build.8.jar:?]

Minecraft 1.21

java.lang.NullPointerException: Cannot invoke "dev.thedocruby.resounding.RawMaterial.weight()" because "raw" is null
    at dev.thedocruby.resounding.Cache.lambda$refineMaterials$8(Cache.java:499) ~[main/:?]
    at java.base/java.util.HashMap.forEach(HashMap.java:1429) ~[?:?]
    at dev.thedocruby.resounding.Cache.refineMaterials(Cache.java:496) ~[main/:?]
    at dev.thedocruby.resounding.Cache.finalizeMaterials(Cache.java:528) ~[main/:?]
    at dev.thedocruby.resounding.Cache.generate(Cache.java:258) ~[main/:?]
    at net.minecraft.world.chunk.WorldChunk.initStorage(WorldChunk.java:848) ~[minecraft-merged-75f0f6ad4b-1.21-net.fabricmc.yarn.1_21.1.21+build.7-v2.jar:?]
    at net.minecraft.world.chunk.WorldChunk.handler$zfa000$resounding$load(WorldChunk.java:829) ~[minecraft-merged-75f0f6ad4b-1.21-net.fabricmc.yarn.1_21.1.21+build.7-v2.jar:?]
    at net.minecraft.world.chunk.WorldChunk.loadFromPacket(WorldChunk.java:497) ~[minecraft-merged-75f0f6ad4b-1.21-net.fabricmc.yarn.1_21.1.21+build.7-v2.jar:?]
    at net.minecraft.client.world.ClientChunkManager.loadChunkFromPacket(ClientChunkManager.java:117) ~[minecraft-merged-75f0f6ad4b-1.21-net.fabricmc.yarn.1_21.1.21+build.7-v2.jar:?]
    at net.minecraft.client.network.ClientPlayNetworkHandler.loadChunk(ClientPlayNetworkHandler.java:790) ~[minecraft-merged-75f0f6ad4b-1.21-net.fabricmc.yarn.1_21.1.21+build.7-v2.jar:?]
    at net.minecraft.client.network.ClientPlayNetworkHandler.onChunkData(ClientPlayNetworkHandler.java:755) ~[minecraft-merged-75f0f6ad4b-1.21-net.fabricmc.yarn.1_21.1.21+build.7-v2.jar:?]
    at net.minecraft.network.packet.s2c.play.ChunkDataS2CPacket.apply(ChunkDataS2CPacket.java:53) ~[minecraft-merged-75f0f6ad4b-1.21-net.fabricmc.yarn.1_21.1.21+build.7-v2.jar:?]
    at net.minecraft.network.packet.s2c.play.ChunkDataS2CPacket.apply(ChunkDataS2CPacket.java:14) ~[minecraft-merged-75f0f6ad4b-1.21-net.fabricmc.yarn.1_21.1.21+build.7-v2.jar:?]
    at net.minecraft.network.NetworkThreadUtils.method_11072(NetworkThreadUtils.java:27) ~[minecraft-merged-75f0f6ad4b-1.21-net.fabricmc.yarn.1_21.1.21+build.7-v2.jar:?]
    at net.minecraft.util.thread.ThreadExecutor.executeTask(ThreadExecutor.java:162) [minecraft-merged-75f0f6ad4b-1.21-net.fabricmc.yarn.1_21.1.21+build.7-v2.jar:?]
    at net.minecraft.util.thread.ReentrantThreadExecutor.executeTask(ReentrantThreadExecutor.java:23) [minecraft-merged-75f0f6ad4b-1.21-net.fabricmc.yarn.1_21.1.21+build.7-v2.jar:?]
    at net.minecraft.util.thread.ThreadExecutor.runTask(ThreadExecutor.java:136) [minecraft-merged-75f0f6ad4b-1.21-net.fabricmc.yarn.1_21.1.21+build.7-v2.jar:?]
    at net.minecraft.util.thread.ThreadExecutor.runTasks(ThreadExecutor.java:121) [minecraft-merged-75f0f6ad4b-1.21-net.fabricmc.yarn.1_21.1.21+build.7-v2.jar:?]
    at net.minecraft.client.MinecraftClient.render(MinecraftClient.java:1240) [minecraft-merged-75f0f6ad4b-1.21-net.fabricmc.yarn.1_21.1.21+build.7-v2.jar:?]
    at net.minecraft.client.MinecraftClient.run(MinecraftClient.java:882) [minecraft-merged-75f0f6ad4b-1.21-net.fabricmc.yarn.1_21.1.21+build.7-v2.jar:?]
    at net.minecraft.client.main.Main.main(Main.java:256) [minecraft-merged-75f0f6ad4b-1.21-net.fabricmc.yarn.1_21.1.21+build.7-v2.jar:?]
    at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:470) [fabric-loader-0.15.11.jar:?]
    at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74) [fabric-loader-0.15.11.jar:?]
    at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23) [fabric-loader-0.15.11.jar:?]
    at net.fabricmc.devlaunchinjector.Main.main(Main.java:86) [dev-launch-injector-0.2.1+build.8.jar:?]
mikenrafter commented 1 week ago

That error is from the caching code mishandling some null value along the way. I'm not sure where.
It's executed on world open because creating the mod menu UI that can handle manual material building proved to be more challenging than necessary for a simple proof-of-concept.

I'm merging this one semi-blindly into the feature branch. Will test at a later date.

acodili-jg commented 1 week ago

That error is from the caching code mishandling some null value along the way. I'm not sure where. It's executed on world open because creating the mod menu UI that can handle manual material building proved to be more challenging than necessary for a simple proof-of-concept.

I'm merging this one semi-blindly into the feature branch. Will test at a later date.

Oh yeah, this is fixed for #111 (specifically 800f1ffe6ecb877273fce5d1e83bf171acb0425f) revealing another unrelated NPE that #114 aims to fix. The NPE you mentioned was probably caused by the nulls used in the original Utils.memoize which was used to mark an input as visited.