PersonTheCat / OreStoneVariants

A powerful utility for generating new blocks when given a foreground and background.
GNU General Public License v3.0
7 stars 8 forks source link

Bug. Crash on generation of overlays #120

Closed wmrojer closed 3 years ago

wmrojer commented 3 years ago

When defining a variant for an ore that have a texture larger then 16 * 16 (animated texture or a loaded resource pack) the game will crash at startup unless I set B:overlaysFromRP=false.

In this case it is Yellorite ore from Extreme Reactors that has a 6 frame animated texture with size 16 96. Verified by changing the bitmap i question in the jar file to a 1616 texture or simply pointing to a different texture file.

---- Minecraft Crash Report ----

WARNING: coremods are present: OTGCorePlugin (OTG-Core.jar) Contact their authors BEFORE contacting forge

---- Minecraft Crash Report ----

WARNING: coremods are present: Contact their authors BEFORE contacting forge

// I let you down. Sorry :(

Time: 3/21/21 7:45 PM Description: There was a severe problem during mod loading that has caused the game to fail

net.minecraftforge.fml.common.LoaderExceptionModCrash: Caught exception from Ore Stone Variants (osv) Caused by: java.lang.IllegalArgumentException: Width (16) and height (0) cannot be <= 0 at java.awt.image.DirectColorModel.createCompatibleWritableRaster(Unknown Source) at java.awt.image.BufferedImage.(Unknown Source) at com.personthecat.orestonevariants.textures.ImageTools.getImage(ImageTools.java:171) at com.personthecat.orestonevariants.textures.ImageTools.ensureSizeParity(ImageTools.java:151) at com.personthecat.orestonevariants.textures.ImageTools.shadeOverlay(ImageTools.java:139) at com.personthecat.orestonevariants.textures.SpriteHandler.lambda$generateOverlays$4(SpriteHandler.java:98) at java.util.Optional.orElseGet(Unknown Source) at com.personthecat.orestonevariants.textures.SpriteHandler.generateOverlays(SpriteHandler.java:98) at com.personthecat.orestonevariants.textures.SpriteHandler.lambda$handleVariants$1(SpriteHandler.java:76) at java.util.Optional.ifPresent(Unknown Source) at com.personthecat.orestonevariants.textures.SpriteHandler.lambda$handleVariants$2(SpriteHandler.java:70) at java.util.Optional.ifPresent(Unknown Source) at com.personthecat.orestonevariants.textures.SpriteHandler.handleVariants(SpriteHandler.java:69) at com.personthecat.orestonevariants.textures.SpriteHandler.generateOverlays(SpriteHandler.java:55) at com.personthecat.orestonevariants.proxy.ClientProxy.generateOverlays(ClientProxy.java:33) at com.personthecat.orestonevariants.Main.preInit(Main.java:74) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at net.minecraftforge.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:637) at sun.reflect.GeneratedMethodAccessor8.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.google.common.eventbus.Subscriber.invokeSubscriberMethod(Subscriber.java:91) at com.google.common.eventbus.Subscriber$SynchronizedSubscriber.invokeSubscriberMethod(Subscriber.java:150) at com.google.common.eventbus.Subscriber$1.run(Subscriber.java:76) at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:399) at com.google.common.eventbus.Subscriber.dispatchEvent(Subscriber.java:71) at com.google.common.eventbus.Dispatcher$PerThreadQueuedDispatcher.dispatch(Dispatcher.java:116) at com.google.common.eventbus.EventBus.post(EventBus.java:217) at net.minecraftforge.fml.common.LoadController.sendEventToModContainer(LoadController.java:219) at net.minecraftforge.fml.common.LoadController.propogateStateMessage(LoadController.java:197) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.google.common.eventbus.Subscriber.invokeSubscriberMethod(Subscriber.java:91) at com.google.common.eventbus.Subscriber$SynchronizedSubscriber.invokeSubscriberMethod(Subscriber.java:150) at com.google.common.eventbus.Subscriber$1.run(Subscriber.java:76) at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:399) at com.google.common.eventbus.Subscriber.dispatchEvent(Subscriber.java:71) at com.google.common.eventbus.Dispatcher$PerThreadQueuedDispatcher.dispatch(Dispatcher.java:116) at com.google.common.eventbus.EventBus.post(EventBus.java:217) at net.minecraftforge.fml.common.LoadController.distributeStateMessage(LoadController.java:136) at net.minecraftforge.fml.common.Loader.preinitializeMods(Loader.java:629) at net.minecraftforge.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:252) at net.minecraft.client.Minecraft.func_71384_a(Minecraft.java:467) at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:378) at net.minecraft.client.main.Main.main(SourceFile:123) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) at net.minecraft.launchwrapper.Launch.main(Launch.java:28)

A detailed walkthrough of the error, its code path and all known details is as follows:

-- System Details -- Details: Minecraft Version: 1.12.2 Operating System: Windows 10 (amd64) version 10.0 Java Version: 1.8.0_281, Oracle Corporation Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation Memory: 418766344 bytes (399 MB) / 1073741824 bytes (1024 MB) up to 17179869184 bytes (16384 MB) JVM Flags: 8 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xmx16G -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32M IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0 FML: MCP 9.42 Powered by Forge 14.23.5.2854 17 mods loaded, 17 mods active States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored

| State | ID                  | Version           | Source                                         | Signature                                |
|:----- |:------------------- |:----------------- |:---------------------------------------------- |:---------------------------------------- |
| LCH   | minecraft           | 1.12.2            | minecraft.jar                                  | None                                     |
| LCH   | mcp                 | 9.42              | minecraft.jar                                  | None                                     |
| LCH   | FML                 | 8.0.99.99         | forge-1.12.2-14.23.5.2854.jar                  | e3c3d50c7c986df74c645c0ac54639741c90a557 |
| LCH   | forge               | 14.23.5.2854      | forge-1.12.2-14.23.5.2854.jar                  | e3c3d50c7c986df74c645c0ac54639741c90a557 |
| LCH   | appliedenergistics2 | rv6-stable-7      | appliedenergistics2-rv6-stable-7.jar           | dfa4d3ac143316c6f32aa1a1beda1e34d42132e5 |
| LCH   | baubles             | 1.5.2             | Baubles-1.12-1.5.2.jar                         | None                                     |
| LCH   | redstoneflux        | 2.1.1             | RedstoneFlux-1.12-2.1.1.1-universal.jar        | None                                     |
| LCH   | cofhcore            | 4.6.6             | CoFHCore-1.12.2-4.6.6.1-universal.jar          | None                                     |
| LCH   | cofhworld           | 1.4.0             | CoFHWorld-1.12.2-1.4.0.1-universal.jar         | None                                     |
| LCH   | zerocore            | 1.12.2-0.1.2.9    | zerocore-1.12.2-0.1.2.9.jar                    | None                                     |
| LCH   | bigreactors         | 1.12.2-0.4.5.68   | ExtremeReactors-1.12.2-0.4.5.68.jar            | None                                     |
| LCH   | forestry            | 5.8.2.422         | forestry_1.12.2-5.8.2.422.jar                  | None                                     |
| LCH   | mantle              | 1.12-1.3.3.55     | Mantle-1.12-1.3.3.55.jar                       | None                                     |
| LCH   | tconstruct          | 1.12.2-2.13.0.183 | TConstruct-1.12.2-2.13.0.183.jar               | None                                     |
| LCH   | thaumcraft          | 6.1.BETA26        | Thaumcraft-1.12.2-6.1.BETA26.jar               | None                                     |
| LCH   | thermalfoundation   | 2.6.7             | ThermalFoundation-1.12.2-2.6.7.1-universal.jar | None                                     |
| LCE   | osv                 | 5.12              | Ore+Stone+Variants-5.12-1.12.jar               | None                                     |

Loaded coremods (and transformers): 
GL info: ' Vendor: 'NVIDIA Corporation' Version: '4.6.0 NVIDIA 456.71' Renderer: 'GeForce GTX 1060 6GB/PCIe/SSE2'
AE2 Version: stable rv6-stable-7 for Forge 14.23.5.2768
Pulsar/tconstruct loaded Pulses: 
    - TinkerCommons (Enabled/Forced)
    - TinkerWorld (Enabled/Not Forced)
    - TinkerTools (Enabled/Not Forced)
    - TinkerHarvestTools (Enabled/Forced)
    - TinkerMeleeWeapons (Enabled/Forced)
    - TinkerRangedWeapons (Enabled/Forced)
    - TinkerModifiers (Enabled/Forced)
    - TinkerSmeltery (Enabled/Not Forced)
    - TinkerGadgets (Enabled/Not Forced)
    - TinkerOredict (Enabled/Forced)
    - TinkerIntegration (Enabled/Forced)
    - TinkerFluids (Enabled/Forced)
    - TinkerMaterials (Enabled/Forced)
    - TinkerModelRegister (Enabled/Forced)
PersonTheCat commented 3 years ago

Thanks. This was fixed in 6.0. I'll backport it for ya.

wmrojer commented 3 years ago

Noticed I got a different crash when loading with a resource pack loaded. But maybe that is cause of the same fault. Looks like it also comes from fg and bg images being different sizes.

---- Minecraft Crash Report ----

WARNING: coremods are present: Contact their authors BEFORE contacting forge

// You should try our sister game, Minceraft!

Time: 3/21/21 9:33 PM Description: There was a severe problem during mod loading that has caused the game to fail

net.minecraftforge.fml.common.LoaderExceptionModCrash: Caught exception from Ore Stone Variants (osv) Caused by: java.lang.ArrayIndexOutOfBoundsException: 16 at com.personthecat.orestonevariants.textures.ImageTools.overlay(ImageTools.java:414) at com.personthecat.orestonevariants.textures.ImageTools.shadeOverlay(ImageTools.java:145) at com.personthecat.orestonevariants.textures.SpriteHandler.lambda$generateOverlays$4(SpriteHandler.java:98) at java.util.Optional.orElseGet(Unknown Source) at com.personthecat.orestonevariants.textures.SpriteHandler.generateOverlays(SpriteHandler.java:98) at com.personthecat.orestonevariants.textures.SpriteHandler.lambda$handleVariants$1(SpriteHandler.java:76) at java.util.Optional.ifPresent(Unknown Source) at com.personthecat.orestonevariants.textures.SpriteHandler.lambda$handleVariants$2(SpriteHandler.java:70) at java.util.Optional.ifPresent(Unknown Source) at com.personthecat.orestonevariants.textures.SpriteHandler.handleVariants(SpriteHandler.java:69) at com.personthecat.orestonevariants.textures.SpriteHandler.generateOverlays(SpriteHandler.java:55) at com.personthecat.orestonevariants.proxy.ClientProxy.generateOverlays(ClientProxy.java:33) at com.personthecat.orestonevariants.Main.preInit(Main.java:74) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at net.minecraftforge.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:637) at sun.reflect.GeneratedMethodAccessor8.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.google.common.eventbus.Subscriber.invokeSubscriberMethod(Subscriber.java:91) at com.google.common.eventbus.Subscriber$SynchronizedSubscriber.invokeSubscriberMethod(Subscriber.java:150) at com.google.common.eventbus.Subscriber$1.run(Subscriber.java:76) at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:399) at com.google.common.eventbus.Subscriber.dispatchEvent(Subscriber.java:71) at com.google.common.eventbus.Dispatcher$PerThreadQueuedDispatcher.dispatch(Dispatcher.java:116) at com.google.common.eventbus.EventBus.post(EventBus.java:217) at net.minecraftforge.fml.common.LoadController.sendEventToModContainer(LoadController.java:219) at net.minecraftforge.fml.common.LoadController.propogateStateMessage(LoadController.java:197) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.google.common.eventbus.Subscriber.invokeSubscriberMethod(Subscriber.java:91) at com.google.common.eventbus.Subscriber$SynchronizedSubscriber.invokeSubscriberMethod(Subscriber.java:150) at com.google.common.eventbus.Subscriber$1.run(Subscriber.java:76) at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:399) at com.google.common.eventbus.Subscriber.dispatchEvent(Subscriber.java:71) at com.google.common.eventbus.Dispatcher$PerThreadQueuedDispatcher.dispatch(Dispatcher.java:116) at com.google.common.eventbus.EventBus.post(EventBus.java:217) at net.minecraftforge.fml.common.LoadController.distributeStateMessage(LoadController.java:136) at net.minecraftforge.fml.common.Loader.preinitializeMods(Loader.java:629) at net.minecraftforge.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:252) at net.minecraft.client.Minecraft.func_71384_a(Minecraft.java:467) at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:378) at net.minecraft.client.main.Main.main(SourceFile:123) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) at net.minecraft.launchwrapper.Launch.main(Launch.java:28)

A detailed walkthrough of the error, its code path and all known details is as follows:

-- System Details -- Details: Minecraft Version: 1.12.2 Operating System: Windows 10 (amd64) version 10.0 Java Version: 1.8.0_281, Oracle Corporation Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation Memory: 542395456 bytes (517 MB) / 1073741824 bytes (1024 MB) up to 17179869184 bytes (16384 MB) JVM Flags: 8 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xmx16G -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32M IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0 FML: MCP 9.42 Powered by Forge 14.23.5.2854 17 mods loaded, 17 mods active States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored

| State | ID                  | Version           | Source                                         | Signature                                |
|:----- |:------------------- |:----------------- |:---------------------------------------------- |:---------------------------------------- |
| LCH   | minecraft           | 1.12.2            | minecraft.jar                                  | None                                     |
| LCH   | mcp                 | 9.42              | minecraft.jar                                  | None                                     |
| LCH   | FML                 | 8.0.99.99         | forge-1.12.2-14.23.5.2854.jar                  | e3c3d50c7c986df74c645c0ac54639741c90a557 |
| LCH   | forge               | 14.23.5.2854      | forge-1.12.2-14.23.5.2854.jar                  | e3c3d50c7c986df74c645c0ac54639741c90a557 |
| LCH   | appliedenergistics2 | rv6-stable-7      | appliedenergistics2-rv6-stable-7.jar           | dfa4d3ac143316c6f32aa1a1beda1e34d42132e5 |
| LCH   | baubles             | 1.5.2             | Baubles-1.12-1.5.2.jar                         | None                                     |
| LCH   | redstoneflux        | 2.1.1             | RedstoneFlux-1.12-2.1.1.1-universal.jar        | None                                     |
| LCH   | cofhcore            | 4.6.6             | CoFHCore-1.12.2-4.6.6.1-universal.jar          | None                                     |
| LCH   | cofhworld           | 1.4.0             | CoFHWorld-1.12.2-1.4.0.1-universal.jar         | None                                     |
| LCH   | zerocore            | 1.12.2-0.1.2.9    | zerocore-1.12.2-0.1.2.9.jar                    | None                                     |
| LCH   | bigreactors         | 1.12.2-0.4.5.68   | ExtremeReactors-1.12.2-0.4.5.68.jar            | None                                     |
| LCH   | forestry            | 5.8.2.422         | forestry_1.12.2-5.8.2.422.jar                  | None                                     |
| LCH   | mantle              | 1.12-1.3.3.55     | Mantle-1.12-1.3.3.55.jar                       | None                                     |
| LCH   | tconstruct          | 1.12.2-2.13.0.183 | TConstruct-1.12.2-2.13.0.183.jar               | None                                     |
| LCH   | thaumcraft          | 6.1.BETA26        | Thaumcraft-1.12.2-6.1.BETA26.jar               | None                                     |
| LCH   | thermalfoundation   | 2.6.7             | ThermalFoundation-1.12.2-2.6.7.1-universal.jar | None                                     |
| LCE   | osv                 | 5.12              | Ore+Stone+Variants-5.12-1.12.jar               | None                                     |

Loaded coremods (and transformers): 
GL info: ' Vendor: 'NVIDIA Corporation' Version: '4.6.0 NVIDIA 456.71' Renderer: 'GeForce GTX 1060 6GB/PCIe/SSE2'
AE2 Version: stable rv6-stable-7 for Forge 14.23.5.2768
Pulsar/tconstruct loaded Pulses: 
    - TinkerCommons (Enabled/Forced)
    - TinkerWorld (Enabled/Not Forced)
    - TinkerTools (Enabled/Not Forced)
    - TinkerHarvestTools (Enabled/Forced)
    - TinkerMeleeWeapons (Enabled/Forced)
    - TinkerRangedWeapons (Enabled/Forced)
    - TinkerModifiers (Enabled/Forced)
    - TinkerSmeltery (Enabled/Not Forced)
    - TinkerGadgets (Enabled/Not Forced)
    - TinkerOredict (Enabled/Forced)
    - TinkerIntegration (Enabled/Forced)
    - TinkerFluids (Enabled/Forced)
    - TinkerMaterials (Enabled/Forced)
    - TinkerModelRegister (Enabled/Forced)
PersonTheCat commented 3 years ago

Yes, this is definitely related and was also fixed in 6.0. I'll backport it.

wmrojer commented 3 years ago

Thank you. I noticed that some of the default setting Thermal Foundation ores had some miss-matching harvest level settings. Is that something you want to know?

PersonTheCat commented 3 years ago

Sure, if you have the values. I don't usually just track of the updated mod support values for 1.12 since it's too much to maintain, but I'm happy to do it in this case.

Thanks a lot for your help! Feel free to join the Discord for updates on all of this. I'm working on major updates to Cave Generator first, so it'll probably take a couple days before I get to these.

wmrojer commented 3 years ago

Thermal Foundation Ores. Lead level = 2 Silver level = 2 Nickel level = 2 Platinum level = 3 Iridium level = 3 Mithril level = 3

Think you had them all as level = 1. For copper, tin & aluminum it's correct.

PersonTheCat commented 3 years ago

The texture issues were resolved in ce11f2b4. I'll update here when I'm done with the other issue and have everything all tested.

PersonTheCat commented 3 years ago

The Thermal Foundations harvest levels were fixed in 96b1410f. I'll test all of these changes out tonight and update here if all looks good.

PersonTheCat commented 3 years ago

Hey, I just got through testing these changes and can confirm that animated textures, scaled dense textures, and the other problems were all definitely fixed. This includes fixes to overlaysFromRP and other image path-related fixes from 6.0. I'm actually gonna go ahead and release those changes on CurseForge and will close these issues in a few days. Let me know if something is still broken for you or if you need any other changes while I'm still working on OSV for a bit.