Jump to content

Elix_x

Members
  • Posts

    878
  • Joined

  • Last visited

Posts posted by Elix_x

  1. Hello everybody!

    Today, i tried to understand how ChunkProviderGenerate works. But i didn't understand a lot.

    But i at least managed to translate (from obfuscated) most names (except for one) of fields and methods so they make sense.

    I also annotated them, from what i could understand they're doing.

    All that thanks to day of try-to-understand-obfuscated-code, research and open-source-mods-source-code-analysis.

    Here's what i came to: https://gist.github.com/elix-x/c9e10d85f46763707e1d

    I translated what i could, but i still don't understand how it works...

    If you know how to translate any name better, know what part does what, write it down, suggest edit for gist... It always helps!

    Hopefully this is not code that only mojang knows how it works...

     

    Thanks for help!

    If you have any questions - just ask!

  2. To add other mod's api to you workspace, you have 2 options.

    -If you have java files in zip or simply in folder (unpacked) - in project folder, create folder src/api/java and drop apis (these files) in there. Then re-setup workspace (gradlew setupDecompWorkspace/setupDevWorkspace) .

    -If you have mods in jars, verify that you have dev verion of jars, then put jars in projectFolder/libs (crete one, if it does not exist) and re-setup your worspace.

  3. First of all, when using music, textures and other things made not by you in your mod, follow license that they are licensed under. Sometimes they can be licensed under license that allows "redistribution", like Creative Commons (CC, CC-BY, CC-SA, but not CC-ND for example).

     

    Second, to add other mod's api to you workspace, you have 2 options.

    -If you have java files in zip or simply in folder (unpacked) - in project folder, create folder src/api/java and drop apis (these files) in there. Then re-setup workspace (gradlew setupDecompWorkspace/setupDevWorkspace) .

    -If you have mods in jars, verify that you have dev verion of jars, then put jars in projectFolder/libs (crete one, if it does not exist) and re-setup your worspace.

  4. Since the cfg environment is slightly hostile toward normal recipe formulation, you'll just need to impose a restriction on recipes entered this way. Set aside one character to be translated into a space internally, and tell users to never use that character to represent an ingredient. Zero is a good place-holder. See if numeral '0' (zero) will work.

    0 does not work too...

    I think it's time to check all characters one by one...

     

    EDIT: Can't think of "uncommon" character that won't be used in recipe and is accepted by config. Any more ideas???

  5. What happens if you use quotes (single or double) to demarcate your recipe strings inside the cfg file?

    Do you mean put " in begining and end of each string of array?

    Pretty good idea... Technically any caracter to mark begining and end will work, but quotes are commonly used... And then in code replace them with nothing, before converting to recipe...

    I'll try it...

  6. Cough, cough... WHAT?

    I tried using '_' and for some reason, in config file, in String[], '_' are replaced by ' '. They are kept in

    [default: ]

    however, that's why i know that to this point my code is correct...

        # Configure recipe for air bottle frame. [default: [_I_], [G G], [iBI], [i], [oreDict:ingotIron], [G], [oreDict:paneGlass], [b], [oreDict:blockIron]]
        S:"air bottle frame" <
             I 
            G G
            IBI
            I
            oreDict:ingotIron
            G
            oreDict:paneGlass
            B
            oreDict:blockIron

  7. Yeah, i can find end of recipe portion using way i already use (find first string with single character, here's begining of definitions)

     

    That's a crappy method.

     

       #Use _ to represent spaces (no item) in recipes.
       S:"quarterstaff" <
            S
            S
            S
            S
            oreDict:itemStick
         >

    It's in short. Of course, i don't simply find first string with one character, i also check next string for item stack validity:

    			int i;
    		for(i = 0; i < srecipe.length; i++){
    			if(srecipe[i].length() == 1 && ItemStackStringTranslator.isValidItemstackAdvanced(srecipe[i + 1])) break;
    		}
    		return i;

  8. Use a different character.

    Read from the cfg file and then replace '_' (or whatever) with ' '.

    It may work, but still not the best idea. If we use rare character, then user will not be able to find it. If we use '_' for example, then if i replace it in every string of array, i may affect items that are named using this character. And it will be useless, when recipe is shapeless...

    Meanwhile, i use same translation code for another mod, whose recipes are configured via json, and json keeps spaces in strings...

    Thanks, anyways...

     

    1) Use _, no one is going to be affected strangely.  You just have to make sure to document the config file correctly.

    2) Only do the replacement on the recipe portion.  This is at most the first 3 strings.

    3) Shapeless recipes won't matter, their construction is different, they only have inputs and a result.

    4) Yes, json does preserve whitespace, the Forge config files were never meant to handle this sort of data.

    Yeah, i can find end of recipe portion using way i already use (find first string with single character, here's begining of definitions) and replace all '_' to ' ' in there without problems. Yes, shapeless recipes don't have recipe part, nor definition part... And i already have a method to check whether or not recipe is shaped...

    That's why i like json, but for this project (and few others), i'd like to keep configurations in one place.

     

    Using '_' will definetly work, but is not best idea ever... I'll probably go with that, but i still accept other ideas too...

  9. Use a different character.

    Read from the cfg file and then replace '_' (or whatever) with ' '.

    It may work, but still not the best idea. If we use rare character, then user will not be able to find it. If we use '_' for example, then if i replace it in every string of array, i may affect items that are named using this character. And it will be useless, when recipe is shapeless...

    Meanwhile, i use same translation code for another mod, whose recipes are configured via json, and json keeps spaces in strings...

    Thanks, anyways...

  10. The exception on line 82 of

    ShapedOreRecipe

    is thrown when the length of the full shape string isn't equal to the width (the length of the last individual shape string) times the height (the number of individual shape strings).

     

    All shape strings must be the same length. Shape strings are whitespace-sensitive, so

    "I"

    isn't the same as

    " I "

    .

    I know this... And why it's "I" and not " I " returned, if in config file i have this:

       S:"air bottle frame" <
             I 
            G G
            IBI
            I
            oreDict:ingotIron
            G
            oreDict:paneGlass
            B
            oreDict:blockIron
         >

    Wait, what? Does Configuration.class ignores spaces or trims string when reading string array?

     

    EDIT: It does... But WHY? And how can i go around it? Because in this case... I don't even know... It's impossible to configure recipes using .cfg???

  11. Hello everybody!

    I met another strange problem today, so:

    -In my mod, user can full configure recipe in config file using string array.

    -String array using translator gets translated in to ShapedOreRecipe or ShapelessOreRecipe (depending on how user configured recipe).

    -I'm registering 8 recipes using this method.

    -For some reason, it crashes... And for unknown reason, at end of Object[], there's null item added:

    Invalid shaped ore recipe: I, G G, IBI, I, ingotIron, G, paneGlass, B, blockIron, [b]1xitem.null@0[/b]

    -Full crash report:

    [15:32:45] [Client thread/ERROR] [FML]: Fatal errors were detected during the transition from INITIALIZATION to POSTINITIALIZATION. Loading cannot continue
    [15:32:45] [Client thread/ERROR] [FML]: 
    States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored
    UCHI	mcp{9.05} [Minecraft Coder Pack] (minecraft.jar) 
    UCHI	FML{7.10.99.99} [Forge Mod Loader] (forgeSrc-1.7.10-10.13.4.1492-1.7.10.jar) 
    UCHI	Forge{10.13.4.1492} [Minecraft Forge] (forgeSrc-1.7.10-10.13.4.1492-1.7.10.jar) 
    UCHI	CodeChickenCore{1.0.6.43} [CodeChicken Core] (minecraft.jar) 
    UCHI	NotEnoughItems{1.0.4.105} [Not Enough Items] (NotEnoughItems-1.7.10-1.0.4.105-universal.jar) 
    UCHI	excore{1.1.3} [EXCore] (bin) 
    UCHE	powerofbreathing{1.0} [Power Of Breathing] (bin) 
    UCHI	colourfullblocks{1.0.1} [Colourfull Blocks] (ColorfulBlocks-LATEST-1.7.10.jar) 
    [15:32:45] [Client thread/ERROR] [FML]: The following problems were captured during this phase
    [15:32:45] [Client thread/ERROR] [FML]: Caught exception from powerofbreathing
    java.lang.RuntimeException: Invalid shaped ore recipe: I, G G, IBI, I, ingotIron, G, paneGlass, B, blockIron, 1xitem.null@0
    at net.minecraftforge.oredict.ShapedOreRecipe.<init>(ShapedOreRecipe.java:82) ~[forgeSrc-1.7.10-10.13.4.1492-1.7.10.jar:?]
    at code.elix_x.excore.utils.recipes.RecipeStringTranslator.fromString(RecipeStringTranslator.java:47) ~[bin/:?]
    at code.elix_x.mods.powerofbreathing.config.ConfigurationManager.init(ConfigurationManager.java:120) ~[bin/:?]
    at code.elix_x.mods.powerofbreathing.PowerOfBreathingBase.init(PowerOfBreathingBase.java:186) ~[bin/:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_25]
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_25]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_25]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_25]
    at cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:532) ~[forgeSrc-1.7.10-10.13.4.1492-1.7.10.jar:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_25]
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_25]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_25]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_25]
    at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) ~[guava-17.0.jar:?]
    at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) ~[guava-17.0.jar:?]
    at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) ~[guava-17.0.jar:?]
    at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) ~[guava-17.0.jar:?]
    at com.google.common.eventbus.EventBus.post(EventBus.java:275) ~[guava-17.0.jar:?]
    at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:212) ~[forgeSrc-1.7.10-10.13.4.1492-1.7.10.jar:?]
    at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:190) ~[forgeSrc-1.7.10-10.13.4.1492-1.7.10.jar:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_25]
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_25]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_25]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_25]
    at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) ~[guava-17.0.jar:?]
    at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) ~[guava-17.0.jar:?]
    at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) ~[guava-17.0.jar:?]
    at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) ~[guava-17.0.jar:?]
    at com.google.common.eventbus.EventBus.post(EventBus.java:275) ~[guava-17.0.jar:?]
    at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:119) [LoadController.class:?]
    at cpw.mods.fml.common.Loader.initializeMods(Loader.java:737) [Loader.class:?]
    at cpw.mods.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:311) [FMLClientHandler.class:?]
    at net.minecraft.client.Minecraft.startGame(Minecraft.java:597) [Minecraft.class:?]
    at net.minecraft.client.Minecraft.run(Minecraft.java:942) [Minecraft.class:?]
    at net.minecraft.client.main.Main.main(Main.java:164) [Main.class:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_25]
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_25]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_25]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_25]
    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 net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source) [start/:?]
    at GradleStart.main(Unknown Source) [start/:?]
    [15:32:45] [Client thread/INFO] [sTDOUT]: [net.minecraft.client.Minecraft:displayCrashReport:388]: ---- Minecraft Crash Report ----
    // Daisy, daisy...
    
    Time: 20.10.15 15:32
    Description: Initializing game
    
    java.lang.RuntimeException: Invalid shaped ore recipe: I, G G, IBI, I, ingotIron, G, paneGlass, B, blockIron, 1xitem.null@0
    at net.minecraftforge.oredict.ShapedOreRecipe.<init>(ShapedOreRecipe.java:82)
    at code.elix_x.excore.utils.recipes.RecipeStringTranslator.fromString(RecipeStringTranslator.java:47)
    at code.elix_x.mods.powerofbreathing.config.ConfigurationManager.init(ConfigurationManager.java:120)
    at code.elix_x.mods.powerofbreathing.PowerOfBreathingBase.init(PowerOfBreathingBase.java:186)
    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 cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:532)
    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.EventSubscriber.handleEvent(EventSubscriber.java:74)
    at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
    at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
    at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
    at com.google.common.eventbus.EventBus.post(EventBus.java:275)
    at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:212)
    at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:190)
    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.EventSubscriber.handleEvent(EventSubscriber.java:74)
    at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
    at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
    at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
    at com.google.common.eventbus.EventBus.post(EventBus.java:275)
    at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:119)
    at cpw.mods.fml.common.Loader.initializeMods(Loader.java:737)
    at cpw.mods.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:311)
    at net.minecraft.client.Minecraft.startGame(Minecraft.java:597)
    at net.minecraft.client.Minecraft.run(Minecraft.java:942)
    at net.minecraft.client.main.Main.main(Main.java:164)
    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)
    at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source)
    at GradleStart.main(Unknown Source)
    
    
    A detailed walkthrough of the error, its code path and all known details is as follows:
    ---------------------------------------------------------------------------------------
    
    -- Head --
    Stacktrace:
    at net.minecraftforge.oredict.ShapedOreRecipe.<init>(ShapedOreRecipe.java:82)
    at code.elix_x.excore.utils.recipes.RecipeStringTranslator.fromString(RecipeStringTranslator.java:47)
    at code.elix_x.mods.powerofbreathing.config.ConfigurationManager.init(ConfigurationManager.java:120)
    at code.elix_x.mods.powerofbreathing.PowerOfBreathingBase.init(PowerOfBreathingBase.java:186)
    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 cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:532)
    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.EventSubscriber.handleEvent(EventSubscriber.java:74)
    at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
    at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
    at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
    at com.google.common.eventbus.EventBus.post(EventBus.java:275)
    at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:212)
    at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:190)
    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.EventSubscriber.handleEvent(EventSubscriber.java:74)
    at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
    at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
    at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
    at com.google.common.eventbus.EventBus.post(EventBus.java:275)
    at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:119)
    at cpw.mods.fml.common.Loader.initializeMods(Loader.java:737)
    at cpw.mods.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:311)
    at net.minecraft.client.Minecraft.startGame(Minecraft.java:597)
    
    -- Initialization --
    Details:
    Stacktrace:
    at net.minecraft.client.Minecraft.run(Minecraft.java:942)
    at net.minecraft.client.main.Main.main(Main.java:164)
    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)
    at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source)
    at GradleStart.main(Unknown Source)
    
    -- System Details --
    Details:
    Minecraft Version: 1.7.10
    Operating System: Windows 7 (amd64) version 6.1
    Java Version: 1.8.0_25, Oracle Corporation
    Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
    Memory: 816557224 bytes (778 MB) / 1038876672 bytes (990 MB) up to 1038876672 bytes (990 MB)
    JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M
    AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
    IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
    FML: MCP v9.05 FML v7.10.99.99 Minecraft Forge 10.13.4.1492 8 mods loaded, 8 mods active
    States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored
    UCHI	mcp{9.05} [Minecraft Coder Pack] (minecraft.jar) 
    UCHI	FML{7.10.99.99} [Forge Mod Loader] (forgeSrc-1.7.10-10.13.4.1492-1.7.10.jar) 
    UCHI	Forge{10.13.4.1492} [Minecraft Forge] (forgeSrc-1.7.10-10.13.4.1492-1.7.10.jar) 
    UCHI	CodeChickenCore{1.0.6.43} [CodeChicken Core] (minecraft.jar) 
    UCHI	NotEnoughItems{1.0.4.105} [Not Enough Items] (NotEnoughItems-1.7.10-1.0.4.105-universal.jar) 
    UCHI	excore{1.1.3} [EXCore] (bin) 
    UCHE	powerofbreathing{1.0} [Power Of Breathing] (bin) 
    UCHI	colourfullblocks{1.0.1} [Colourfull Blocks] (ColorfulBlocks-LATEST-1.7.10.jar) 
    GL info: ' Vendor: 'ATI Technologies Inc.' Version: '4.4.13084 Compatibility Profile Context 14.301.1001.0' Renderer: 'AMD Radeon HD 8570D'
    Launched Version: 1.7.10
    LWJGL: 2.9.1
    OpenGL: AMD Radeon HD 8570D GL version 4.4.13084 Compatibility Profile Context 14.301.1001.0, ATI Technologies Inc.
    GL Caps: Using GL 1.3 multitexturing.
    Using framebuffer objects because OpenGL 3.0 is supported and separate blending is supported.
    Anisotropic filtering is supported and maximum anisotropy is 16.
    Shaders are available because OpenGL 2.1 is supported.
    
    Is Modded: Definitely; Client brand changed to 'fml,forge'
    Type: Client (map_client.txt)
    Resource Packs: []
    Current Language: English (US)
    Profiler Position: N/A (disabled)
    Vec3 Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
    Anisotropic Filtering: Off (1)
    [15:32:45] [Client thread/INFO] [sTDOUT]: [net.minecraft.client.Minecraft:displayCrashReport:398]: #@!@# Game crashed! Crash report saved to: #@!@# C:\my\mcmodding\mods\power of breathing\eclipse\.\crash-reports\crash-2015-10-20_15.32.45-client.txt
    AL lib: (EE) alc_cleanup: 1 device not closed
    Java HotSpot(TM) 64-Bit Server VM warning: Using incremental CMS is deprecated and will likely be removed in a future release

    -Before continuing, here's translator code: https://gist.github.com/elix-x/3bdb448ae1d5bbf120d3

    -For gist you see, it crashes on line 34.

    -I debugged with breakpoint on line 29 of gist and on line 31 of ShapedOreRecipe, and here's what i got in variables:

    --Gist:29:oyGTjdM.png

    --ShapedOreRecipe:31:tq3UbzC.png

    -As you can see, there's no

    1xitem.null@0

    on end of array nor when it completes method translation, nor when it enters new ShapedOreRecipe.

    -Minecraft crashes right after this breakpoint is past.

    Do you have any ideas why this is happening?

     

    Thanks for help!

    If you have any questions - just ask!

  12. Hello everybody!

    I met strange error today:

    I have code that uses javafx.util.Pair.class and when i try to run minecraft, i get class not found:

    java.lang.NoClassDefFoundError: javafx/util/Pair
    at code.elix_x.coremods.colourfulblocks.color.material.ColoringMaterialsManager.loadRecipes(ColoringMaterialsManager.java:139) ~[bin/:?]
    at code.elix_x.coremods.colourfulblocks.color.material.ColoringMaterialsManager.init(ColoringMaterialsManager.java:71) ~[bin/:?]
    at code.elix_x.coremods.colourfulblocks.ColourfulBlocksBase.init(ColourfulBlocksBase.java:138) ~[bin/:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_25]
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_25]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_25]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_25]
    at cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:532) ~[forgeSrc-1.7.10-10.13.4.1492-1.7.10.jar:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_25]
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_25]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_25]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_25]
    at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) ~[guava-17.0.jar:?]
    at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) ~[guava-17.0.jar:?]
    at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) ~[guava-17.0.jar:?]
    at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) ~[guava-17.0.jar:?]
    at com.google.common.eventbus.EventBus.post(EventBus.java:275) ~[guava-17.0.jar:?]
    at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:212) ~[forgeSrc-1.7.10-10.13.4.1492-1.7.10.jar:?]
    at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:190) ~[forgeSrc-1.7.10-10.13.4.1492-1.7.10.jar:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_25]
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_25]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_25]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_25]
    at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) ~[guava-17.0.jar:?]
    at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) ~[guava-17.0.jar:?]
    at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) ~[guava-17.0.jar:?]
    at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) ~[guava-17.0.jar:?]
    at com.google.common.eventbus.EventBus.post(EventBus.java:275) ~[guava-17.0.jar:?]
    at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:119) [LoadController.class:?]
    at cpw.mods.fml.common.Loader.initializeMods(Loader.java:737) [Loader.class:?]
    at cpw.mods.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:311) [FMLClientHandler.class:?]
    at net.minecraft.client.Minecraft.startGame(Minecraft.java:597) [Minecraft.class:?]
    at net.minecraft.client.Minecraft.run(Minecraft.java:942) [Minecraft.class:?]
    at net.minecraft.client.main.Main.main(Main.java:164) [Main.class:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_25]
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_25]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_25]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_25]
    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 net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source) [start/:?]
    at GradleStart.main(Unknown Source) [start/:?]
    Caused by: java.lang.ClassNotFoundException: javafx.util.Pair
    at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:191) ~[launchwrapper-1.12.jar:?]
    at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_25]
    at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_25]
    ... 42 more
    Caused by: java.lang.NullPointerException
    at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:182) ~[launchwrapper-1.12.jar:?]
    at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_25]
    at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_25]
    ... 42 more
    [10:58:03] [Client thread/INFO] [sTDOUT]: [net.minecraft.client.Minecraft:displayCrashReport:388]: ---- Minecraft Crash Report ----
    // Who set us up the TNT?
    
    Time: 19.10.15 10:58
    Description: There was a severe problem during mod loading that has caused the game to fail
    
    cpw.mods.fml.common.LoaderException: java.lang.NoClassDefFoundError: javafx/util/Pair
    at cpw.mods.fml.common.LoadController.transition(LoadController.java:163)
    at cpw.mods.fml.common.Loader.initializeMods(Loader.java:739)
    at cpw.mods.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:311)
    at net.minecraft.client.Minecraft.startGame(Minecraft.java:597)
    at net.minecraft.client.Minecraft.run(Minecraft.java:942)
    at net.minecraft.client.main.Main.main(Main.java:164)
    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)
    at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source)
    at GradleStart.main(Unknown Source)
    Caused by: java.lang.NoClassDefFoundError: javafx/util/Pair
    at code.elix_x.coremods.colourfulblocks.color.material.ColoringMaterialsManager.loadRecipes(ColoringMaterialsManager.java:139)
    at code.elix_x.coremods.colourfulblocks.color.material.ColoringMaterialsManager.init(ColoringMaterialsManager.java:71)
    at code.elix_x.coremods.colourfulblocks.ColourfulBlocksBase.init(ColourfulBlocksBase.java:138)
    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 cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:532)
    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.EventSubscriber.handleEvent(EventSubscriber.java:74)
    at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
    at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
    at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
    at com.google.common.eventbus.EventBus.post(EventBus.java:275)
    at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:212)
    at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:190)
    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.EventSubscriber.handleEvent(EventSubscriber.java:74)
    at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
    at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
    at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
    at com.google.common.eventbus.EventBus.post(EventBus.java:275)
    at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:119)
    at cpw.mods.fml.common.Loader.initializeMods(Loader.java:737)
    ... 12 more
    Caused by: java.lang.ClassNotFoundException: javafx.util.Pair
    at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:191)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 42 more
    Caused by: java.lang.NullPointerException
    at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:182)
    ... 44 more
    
    
    A detailed walkthrough of the error, its code path and all known details is as follows:
    ---------------------------------------------------------------------------------------
    
    -- System Details --
    Details:
    Minecraft Version: 1.7.10
    Operating System: Windows 7 (amd64) version 6.1
    Java Version: 1.8.0_25, Oracle Corporation
    Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
    Memory: 662240936 bytes (631 MB) / 1038876672 bytes (990 MB) up to 1038876672 bytes (990 MB)
    JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M
    AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
    IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
    FML: MCP v9.05 FML v7.10.99.99 Minecraft Forge 10.13.4.1492 7 mods loaded, 7 mods active
    States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored
    UCHI	mcp{9.05} [Minecraft Coder Pack] (minecraft.jar) 
    UCHI	FML{7.10.99.99} [Forge Mod Loader] (forgeSrc-1.7.10-10.13.4.1492-1.7.10.jar) 
    UCHI	Forge{10.13.4.1492} [Minecraft Forge] (forgeSrc-1.7.10-10.13.4.1492-1.7.10.jar) 
    UCHI	CodeChickenCore{1.0.6.43} [CodeChicken Core] (minecraft.jar) 
    UCHI	NotEnoughItems{1.0.4.105} [Not Enough Items] (NotEnoughItems-1.7.10-1.0.4.105-universal.jar) 
    UCHI	excore{1.1.3} [EXCore] (bin) 
    UCHE	colourfullblocks{1.0.1} [Colourfull Blocks] (bin) 
    GL info: ' Vendor: 'ATI Technologies Inc.' Version: '4.4.13084 Compatibility Profile Context 14.301.1001.0' Renderer: 'AMD Radeon HD 8570D'
    [10:58:03] [Client thread/INFO] [sTDOUT]: [net.minecraft.client.Minecraft:displayCrashReport:398]: #@!@# Game crashed! Crash report saved to: #@!@# C:\my\mcmodding\mods\Colourful-Blocks\eclipse\.\crash-reports\crash-2015-10-19_10.58.03-client.txt
    AL lib: (EE) alc_cleanup: 1 device not closed
    Java HotSpot(TM) 64-Bit Server VM warning: Using incremental CMS is deprecated and will likely be removed in a future release

    How ever, i can look and use it... And code compiles without problems...

    Any ideas why this is happening?

    Should i create my own Pair<K, V> class?

     

    Thanks for help!

    If you have any questions - just ask!

  13. Not just tools, but armor as well.

    Right, but i don't care about armor materials at the moment...

    In any case, your best bet is to simply use the method vanilla provides, and then if a mod doesn't work properly with it, you file a bug report with that mod to properly use the function.

    You mean like if it returns invalid stack? Then yes, this must be reported...

    Then if the material is not supposed to be repairable, if the user is using a texture pack that alters the colors or locations of pixels, or any other variety of strange things, you don't get weird results.

    Weird results for texture? They will be based on texture pack and higher is definition, exactlier is color detection.

     

    But still, what about materials without repair item stack specified (Not reparable or whatever...)?

    I'm not only using this item for color detection, but also for crafting recipe...

    Which means that when my mod will generate tools for new tool materials, these tools will be uncraftable...

    Even, though, user can change crafting item (and even recipe) at any time, it would be better if mod was good enough to auto detect crafting material, so that users don't spend hours trying to configure crafting material and color manually for each from-modded-tool-material-generated-item...

  14. Another even hackier method:

    -Open mod jar.

    -Open Clojure.jar

    -Copy contents of second in first.

    -Close jars.

    You have to use professional software that can open and maniopulate jars! Like Total Commander fo example...

    Otherwise, this is probably the hackiest way and it may not work:

    -Rename mod .jar to .zip

    -Rename clojure.jar to .zip

    -Copy contentes of clojure.zip in to mod.zip

    -Rename mod.zip back to mod.jar.

    This may work, this may not... Just try...

  15. The resource defining the item icons is not a real resource location that you can just load like that. You have to extract the texture from the big texture sheet.

    I did not take it from big sheet, but:

    -Using reflection i get iconString value, which is basically texture location with modid:file. https://gist.github.com/elix-x/61525e6fc172f0b7e6c5#file-colorfromtoolmaterial-L16'>https://gist.github.com/elix-x/61525e6fc172f0b7e6c5#file-colorfromtoolmaterial-L16

    -Then i give it to ResourceLocation: https://gist.github.com/elix-x/61525e6fc172f0b7e6c5#file-colorfromtoolmaterial-L18'>https://gist.github.com/elix-x/61525e6fc172f0b7e6c5#file-colorfromtoolmaterial-L18

    -And it should work...

     

    EDIT: I think i have to do some manipulations before feeding texture name to resource location - add

    items/

    after

    :

    ...

     

    EDIT 2: OMG!!! It works!!! Kinda of...

    Code was changed to this: https://gist.github.com/elix-x/61525e6fc172f0b7e6c5

    For blaze rod, it gave me

    39:26:5

    which is this color... What does not seem to be correct... I'll try with something else...

     

    EDIT 3: Further testing results:

    Blaze rod: 39:26:5 - does not seems to be correct.

    Ender pearl: 10:46:40 - seems to be correct.

    Brick: 59:29:20 - does not seems to be correct at all.

    Nether star: 54:63:58 - seems mostly correct.

    Bone: 34:34:31 - seems partially correct.

    Coal: 8:8:8 - correct.

    So what do you think about it??? It seems mostly correct, how ever, some times it does not give correct value (brick result for example)...

     

    EDIT 4: Improved code to support blocks: https://gist.github.com/elix-x/61525e6fc172f0b7e6c5

    Some block testing results:

    Coal block: 18:18:18 - correct.

    Lapis block: 38:67:137 - mostly correct.

    Redstone block: 171:27:9 - mostly correct.

    Iron block: 219:219:219 - mostly correct.

    Gold block: 249:236:78 - mostly correct.

    Diamond block: 97:219:213 - mostly correct.

    Emerald block: 81:217:117 - mostly correct.

    It did pretty good job with blocks, at least better then with items... Do you think that on items texture there may be spots with low color values, but also with low transparency? I'm already ignoring transparent pixels, but something else shifts color a bit to darker one...

     

    Note: Some tool materials don't have a repair stack specified for a reason.

    I know that in my artifacts mod my armor items have a tool material that is used for the initiation of the item class, but it's not actually used in any meaningful way because

    1) the durability data (etc) is all handled by nbt, including effective material

    2) the repair item is based off that nbt data as well. Iron items are repaired using a special item crafted with an iron ingot to make the item actually used by the anvil.

     

    Other mods might do other things, such as materials that CANNOT be repaired.

    That's true...

    So how do i do in this case???

    (PS: Item of tool material is needed not for repairing, but for creation of new type of tool, if we can even call it a tool)...

  16. Ok, so:

    -I found that TextureUtil.readImageData does what i need: reads pixels in to int array.

    -I created dummy testing tool material with repair item stack specified:

    EnumHelper.addToolMaterial("BLAZE", 3, 900, 10, 8, 9).setRepairItem(new ItemStack(Items.blaze_rod));

    -I tried using following code: https://gist.github.com/elix-x/61525e6fc172f0b7e6c5

    -And it fails on:

    [20:19:16] [Client thread/ERROR] [CoB Materials Manager]: Caught exception while parsing texture to get color: 
    java.io.FileNotFoundException: minecraft:blaze_rod
    at net.minecraft.client.resources.FallbackResourceManager.getResource(FallbackResourceManager.java:65) ~[FallbackResourceManager.class:?]
    at net.minecraft.client.resources.SimpleReloadableResourceManager.getResource(SimpleReloadableResourceManager.java:67) ~[simpleReloadableResourceManager.class:?]
    at net.minecraft.client.renderer.texture.TextureUtil.readImageData(TextureUtil.java:347) ~[TextureUtil.class:?]
    at code.elix_x.coremods.colourfulblocks.material.ExtensionsManager.recognizeColor(ExtensionsManager.java:198) [ExtensionsManager.class:?]
    at code.elix_x.coremods.colourfulblocks.material.ExtensionsManager.initGenMaterials(ExtensionsManager.java:111) [ExtensionsManager.class:?]
    at code.elix_x.coremods.colourfulblocks.material.ExtensionsManager.initDefaultMaterials(ExtensionsManager.java:78) [ExtensionsManager.class:?]
    at code.elix_x.coremods.colourfulblocks.material.ExtensionsManager.init(ExtensionsManager.java:65) [ExtensionsManager.class:?]
    at code.elix_x.coremods.colourfulblocks.ColourfulBlocksBase.init(ColourfulBlocksBase.java:141) [ColourfulBlocksBase.class:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_25]
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_25]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_25]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_25]
    at cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:532) [FMLModContainer.class:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_25]
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_25]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_25]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_25]
    at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) [guava-17.0.jar:?]
    at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) [guava-17.0.jar:?]
    at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) [guava-17.0.jar:?]
    at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) [guava-17.0.jar:?]
    at com.google.common.eventbus.EventBus.post(EventBus.java:275) [guava-17.0.jar:?]
    at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:212) [LoadController.class:?]
    at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:190) [LoadController.class:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_25]
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_25]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_25]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_25]
    at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) [guava-17.0.jar:?]
    at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) [guava-17.0.jar:?]
    at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) [guava-17.0.jar:?]
    at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) [guava-17.0.jar:?]
    at com.google.common.eventbus.EventBus.post(EventBus.java:275) [guava-17.0.jar:?]
    at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:119) [LoadController.class:?]
    at cpw.mods.fml.common.Loader.initializeMods(Loader.java:737) [Loader.class:?]
    at cpw.mods.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:311) [FMLClientHandler.class:?]
    at net.minecraft.client.Minecraft.startGame(Minecraft.java:597) [Minecraft.class:?]
    at net.minecraft.client.Minecraft.run(Minecraft.java:942) [Minecraft.class:?]
    at net.minecraft.client.main.Main.main(Main.java:164) [Main.class:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_25]
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_25]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_25]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_25]
    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 net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source) [start/:?]
    at GradleStart.main(Unknown Source) [start/:?]
    

     

    Any ideas?

  17. Ok, so in my getIIcon method I already have around 20 textures being registered, for all possible combinations of the connected texture feature.

    But I must be blind, to me it looks like neither the IIconRegister.registerIcon, nor the IIcon has has a function or property to define the Layer for the texture...?

    Same for the Block class. There are a bunch of methods that relate to rendering, but for most of them (Those I let google search for) lead me to the ISBR thing.

    Is that the way to go?

    No.

    First, there will be no registerIICon method with layer param, here you just register ALL your textures for ALL layers.

    Second, here's excact methods that you have to use...

     

    Actually, sorry, it is not possible in 1.7.10 without TESR or ISBR...

    Altough, mutli layer rendering is possible with items (1.7.10&1.8) and with blocks in 1.8 without TESR or ISBR...

  18. For multiple layers... idk, I am not sure that is doable easily. And then yes, you can use OpenGL to get the actual texture data and then alter that with java 2d APIs.

    Oh, ok... But as i said, it's probably like 0.001% of cases for items that are used in crafting that have multiple render passes... Because it's kinda useless, i guess...

    But anyways, thanks for help. I'll see what i can do...

    Thanks!

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.