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.
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