FarPlaneTwo

FarPlaneTwo

18.5k Downloads

Game freeze on load with Ancient Warfare 2 installed

copperwarrior opened this issue ยท 3 comments

commented

I was putting together a small modpack that included Ancient Warfare 2 and wanted to try out FarPlaneTwo with it, seeing the neat structures from a distance. I found that loading the two mods at the same time caused several errors along the lines of:

[07:40:50] [Client thread/ERROR] [fp2]: exception while generating texture UVs for ancientwarfarestructure:sound_block
java.lang.NullPointerException: null
	at net.shadowmage.ancientwarfare.core.render.BlockStateKeyGenerator.generateKey(BlockStateKeyGenerator.java:33) ~[BlockStateKeyGenerator.class:?]
	at codechicken.lib.model.bakery.ModelBakery.getCachedModel(ModelBakery.java:247) ~[ModelBakery.class:?]
	at codechicken.lib.model.bakery.CCBakeryModel.func_188616_a(CCBakeryModel.java:40) ~[CCBakeryModel.class:?]
	at net.daporkchop.fp2.client.TexUVs.lambda$static$1(TexUVs.java:74) ~[TexUVs.class:?]
	at net.daporkchop.fp2.client.TexUVs.reloadUVs(TexUVs.java:166) [TexUVs.class:?]
	at net.daporkchop.fp2.client.TexUVs.initDefault(TexUVs.java:134) [TexUVs.class:?]
	at net.daporkchop.fp2.client.FP2Client.postInit(FP2Client.java:88) [FP2Client.class:?]
	at net.daporkchop.fp2.FP2.postInit(FP2.java:90) [FP2.class:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_291]
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_291]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_291]
	at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_291]
	at net.minecraftforge.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:637) [FMLModContainer.class:?]
	at sun.reflect.GeneratedMethodAccessor8.invoke(Unknown Source) ~[?:?]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_291]
	at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_291]
	at com.google.common.eventbus.Subscriber.invokeSubscriberMethod(Subscriber.java:91) [guava-21.0.jar:?]
	at com.google.common.eventbus.Subscriber$SynchronizedSubscriber.invokeSubscriberMethod(Subscriber.java:150) [guava-21.0.jar:?]
	at com.google.common.eventbus.Subscriber$1.run(Subscriber.java:76) [guava-21.0.jar:?]
	at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:399) [guava-21.0.jar:?]
	at com.google.common.eventbus.Subscriber.dispatchEvent(Subscriber.java:71) [guava-21.0.jar:?]
	at com.google.common.eventbus.Dispatcher$PerThreadQueuedDispatcher.dispatch(Dispatcher.java:116) [guava-21.0.jar:?]
	at com.google.common.eventbus.EventBus.post(EventBus.java:217) [guava-21.0.jar:?]
	at net.minecraftforge.fml.common.LoadController.sendEventToModContainer(LoadController.java:219) [LoadController.class:?]
	at net.minecraftforge.fml.common.LoadController.propogateStateMessage(LoadController.java:197) [LoadController.class:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_291]
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_291]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_291]
	at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_291]
	at com.google.common.eventbus.Subscriber.invokeSubscriberMethod(Subscriber.java:91) [guava-21.0.jar:?]
	at com.google.common.eventbus.Subscriber$SynchronizedSubscriber.invokeSubscriberMethod(Subscriber.java:150) [guava-21.0.jar:?]
	at com.google.common.eventbus.Subscriber$1.run(Subscriber.java:76) [guava-21.0.jar:?]
	at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:399) [guava-21.0.jar:?]
	at com.google.common.eventbus.Subscriber.dispatchEvent(Subscriber.java:71) [guava-21.0.jar:?]
	at com.google.common.eventbus.Dispatcher$PerThreadQueuedDispatcher.dispatch(Dispatcher.java:116) [guava-21.0.jar:?]
	at com.google.common.eventbus.EventBus.post(EventBus.java:217) [guava-21.0.jar:?]
	at net.minecraftforge.fml.common.LoadController.distributeStateMessage(LoadController.java:136) [LoadController.class:?]
	at net.minecraftforge.fml.common.Loader.initializeMods(Loader.java:754) [Loader.class:?]
	at net.minecraftforge.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:336) [FMLClientHandler.class:?]
	at net.minecraft.client.Minecraft.func_71384_a(Minecraft.java:535) [bib.class:?]
	at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:378) [bib.class:?]
	at net.minecraft.client.main.Main.main(SourceFile:123) [Main.class:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_291]
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_291]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_291]
	at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_291]
	at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?]
	at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_291]
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_291]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_291]
	at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_291]
	at org.multimc.onesix.OneSixLauncher.launchWithMainClass(OneSixLauncher.java:210) [NewLaunch.jar:?]
	at org.multimc.onesix.OneSixLauncher.launch(OneSixLauncher.java:245) [NewLaunch.jar:?]
	at org.multimc.EntryPoint.listen(EntryPoint.java:143) [NewLaunch.jar:?]
	at org.multimc.EntryPoint.main(EntryPoint.java:34) [NewLaunch.jar:?]

This error is followed by a dump of which blocks failed to generate UVS:

[07:40:50] [Client thread/ERROR] [fp2]: failed to generate texture UVs for 22 block states, they will be replaced with missing textures:
[07:40:50] [Client thread/ERROR] [fp2]: ancientwarfareautomation:flywheel_controller[tier=light]
[07:40:50] [Client thread/ERROR] [fp2]: ancientwarfareautomation:flywheel_controller[tier=medium]
[07:40:50] [Client thread/ERROR] [fp2]: ancientwarfareautomation:flywheel_controller[tier=heavy]
[07:40:50] [Client thread/ERROR] [fp2]: ancientwarfareautomation:flywheel_storage[tier=light]
[07:40:50] [Client thread/ERROR] [fp2]: ancientwarfareautomation:flywheel_storage[tier=medium]
[07:40:50] [Client thread/ERROR] [fp2]: ancientwarfareautomation:flywheel_storage[tier=heavy]
[07:40:50] [Client thread/ERROR] [fp2]: ancientwarfareautomation:torque_junction[tier=light]
[07:40:50] [Client thread/ERROR] [fp2]: ancientwarfareautomation:torque_junction[tier=medium]
[07:40:50] [Client thread/ERROR] [fp2]: ancientwarfareautomation:torque_junction[tier=heavy]
[07:40:50] [Client thread/ERROR] [fp2]: ancientwarfareautomation:torque_shaft[tier=light]
[07:40:50] [Client thread/ERROR] [fp2]: ancientwarfareautomation:torque_shaft[tier=medium]
[07:40:50] [Client thread/ERROR] [fp2]: ancientwarfareautomation:torque_shaft[tier=heavy]
[07:40:50] [Client thread/ERROR] [fp2]: ancientwarfareautomation:torque_distributor[tier=light]
[07:40:50] [Client thread/ERROR] [fp2]: ancientwarfareautomation:torque_distributor[tier=medium]
[07:40:50] [Client thread/ERROR] [fp2]: ancientwarfareautomation:torque_distributor[tier=heavy]
[07:40:50] [Client thread/ERROR] [fp2]: ancientwarfareautomation:stirling_generator
[07:40:50] [Client thread/ERROR] [fp2]: ancientwarfareautomation:waterwheel_generator[valid_setup=true]
[07:40:50] [Client thread/ERROR] [fp2]: ancientwarfareautomation:waterwheel_generator[valid_setup=false]
[07:40:50] [Client thread/ERROR] [fp2]: ancientwarfareautomation:hand_cranked_generator
[07:40:50] [Client thread/ERROR] [fp2]: ancientwarfareautomation:windmill_blade
[07:40:50] [Client thread/ERROR] [fp2]: ancientwarfareautomation:windmill_generator
[07:40:50] [Client thread/ERROR] [fp2]: ancientwarfarestructure:sound_block

Then finally, the Ancient Warfare 2 structures load from disk. At this point in the log, no further errors are reported, yet the load freezes after loading all AW2 structures. Additionally, these UV errors only appear in console if FP2 is given load priority over AW2, via renaming the jar to have [[[ brackets in the name.

The frozen load goes no further despite waiting even upwards of an hour in one test. While I am aware mod compatibility is a low priority, I would like to know a direction I can go for personally debugging this.

commented

a thread dump taken while the game is frozen would be the first step to debugging this.

commented

Forgive my ignorance. How do I manage to get one? I'm using MultiMC to put this together, if that makes a difference.

commented

attach an instance of VisualVM to the game while it's running, then take a thread dump and send me the contents.

perhaps this discussion would be better suited to discord? :P