Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

Posted

Hi guys,

 

Sorry for asking help here. I've been trying to figure out what was wrong in my code for 5 hours now and I still get the same issue.

 

So, when the block [opal_ore] is place in-game, the texture is there, the JSONs are created with the DataGenerator.

The item from the block [opal_ore] in the inventory, however, doesn't get any textures.

 

When I introduce this in my class IFItemModelProvider:

withExistingParent("opal_ore", modLoc("block/opal_ore"));

I get the error: 

[14:41:36] [main/INFO] [STDERR/]: [java.lang.Throwable:printStackTrace:660]: Caused by: java.lang.IllegalStateException: Model at icefeeling:block/block/opal_ore does not exist

 

Once I remove it, the client launches normally but the textures won't appear on the item block.

 

Below is my package explorer. All the files are spelled correctly.

assets.thumb.png.99c17748fa12bf8eabedb2af49f69c89.png

FILES.thumb.png.839f905f2d64c35339179f2f57bfcfb1.png

 

It must be stupid and I hope it is but I can't find the problem. Even when I change the withExistingParent, I still get the errors.

 

Here's the code:

package dmz.faction.icefeeling.data.client;

import dmz.faction.icefeeling.mod.Main;
import net.minecraft.data.DataGenerator;
import net.minecraftforge.client.model.generators.ItemModelBuilder;
import net.minecraftforge.client.model.generators.ItemModelProvider;
import net.minecraftforge.client.model.generators.ModelFile;
import net.minecraftforge.common.data.ExistingFileHelper;

public class IFItemsModelProvider extends ItemModelProvider 
{
	    public IFItemsModelProvider(DataGenerator generator, ExistingFileHelper existingFileHelper) 
	    {
	        super(generator, Main.MOD_ID, existingFileHelper);
	    }
	    
	    @Override
	    protected void registerModels() 
	    {
	    	
	        ModelFile itemGenerated = getExistingFile(mcLoc("item/generated"));

	        //withExistingParent(IFBlocks.OPAL_ORE.get().getRegistryName().getPath(), new ResourceLocation(Main.MOD_ID, "block/opal_ore"));
	        withExistingParent("opal_ore", modLoc("block/block/opal_ore"));
	        
	        
	        /*withExistingParent("jade_ore", modLoc("block/jade_ore"));
	        withExistingParent("mythril_ore", modLoc("block/mythril_ore"));
	        withExistingParent("titanite_ore", modLoc("block/titanite_ore"));*/

	        builder(itemGenerated, "jade");
	    }

		private ItemModelBuilder builder(ModelFile itemGenerated, String name) 
		{
		return getBuilder(name).parent(itemGenerated).texture("layer0", "item/" + name);
		}
}

 

 

JSON created in the blockstates folder: 

{
  "variants": {
    "": {
      "model": "icefeeling:block/opal_ore"
    }
  }
}

 

JSON created in the model folder:

{
  "parent": "minecraft:block/cube_all",
  "textures": {
    "all": "icefeeling:block/jade_ore"
  }
}

Edit: this is also opal_ore, not jade_ore.

 

 

Thanks in advance,

 

Nicolas

Edited by nicolas14101

  • Author

Sorry that was a trial, I forgot to delete it for the screen.

 

The good one is indeed:

withExistingParent("opal_ore", modLoc("block/opal_ore"));
  • Author

Still the same problem here,

 

[16:03:34] [main/INFO] [STDERR/]: [java.lang.Throwable:printStackTrace:660]: Caused by: java.lang.IllegalStateException: Model at icefeeling:block/opal_ore does not exist

 

            withExistingParent("opal_ore", modLoc("block/opal_ore"));

 

When I remove the code above, the file opal_ore.json get created in src/generated/resources/assets/icefeeling/models/opal_ore.json.

Then, going in game gives me no texture for the block in the inventory. Obviously, the withExistingParent has been removed. So when the code above is written again, I still get the error:

 

[16:03:34] [main/INFO] [STDERR/]: [java.lang.Throwable:printStackTrace:660]: Caused by: java.lang.IllegalStateException: Model at icefeeling:block/opal_ore does not exist

 

Take a look how i registered Block and ItemBlock datas using data generators here: https://github.com/Beethoven92/BetterEndForge/tree/master/src/main/java/mod/beethoven92/betterendforge/data/client

It seems that the blocks you need to create jsons for are simple cube blocks right? I think you overcomplicated the thing a lot

Check out the port of the BetterEnd fabric mod (WIP): https://www.curseforge.com/minecraft/mc-mods/betterend-forge-port

  • Author

Thanks a lot !

 

It helped me understand better the way it work.

On 1/2/2021 at 7:44 PM, Beethoven92 said:

Take a look how i registered Block and ItemBlock datas using data generators here: https://github.com/Beethoven92/BetterEndForge/tree/master/src/main/java/mod/beethoven92/betterendforge/data/client

It seems that the blocks you need to create jsons for are simple cube blocks right? I think you overcomplicated the thing a lot

 

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

Important Information

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.