Jump to content

Probleme beim Einfügen eines neuen Items( [Client thread/ERROR] [FML]: Model definition for location tkmod1:Jewel#inventory not found)


TheKuli
 Share

Recommended Posts

Hallo,

Ich habe ein kleines Problem beim Einfügen eines Items mit Forgemods.... Er will und will die Textur nicht laden. Das Item ist in MC zu sehen , aber halt nur als schwarz-lila karierter Block. In meinem Fall heisst dieses neue Item "Jewel" und ja, ich bin ein Anfänger in dem Gebiet. Hab mich nur an Youtube Videos gehalten und was kommt raus.... naja...

Also hier nochmal nen bisschen Quelltext:

ModMain.java:


package de.thekuli.mod1;


import de.thekuli.mod1.item.Jewel;

import net.minecraft.client.Minecraft;

import net.minecraft.client.resources.model.ModelResourceLocation;

import net.minecraft.creativetab.CreativeTabs;

import net.minecraft.init.Blocks;

import net.minecraft.init.Items;

import net.minecraft.item.Item;

import net.minecraft.item.ItemStack;

import net.minecraftforge.fml.common.Mod;

import net.minecraftforge.fml.common.Mod.EventHandler;

import net.minecraftforge.fml.common.event.FMLInitializationEvent;

import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;

import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;

import net.minecraftforge.fml.common.registry.GameRegistry;


@Mod(modid = ModMain.MODID, version = ModMain.VERSION)

public class ModMain

{

    public static final String MODID = "TKMod1";

    public static final String VERSION = "1.0";



    public static Item jewel;


    @EventHandler

    public void preinit(FMLPreInitializationEvent event)

    {

		jewel = new Jewel().setUnlocalizedName("Jewel").setCreativeTab(CreativeTabs.tabMaterials) ;

    }


    @EventHandler

    public void init(FMLInitializationEvent event)

    {

		registeritems();

    }


    @EventHandler

    public void postinit(FMLPostInitializationEvent event)

    {


    }


//RegisterItem

public void registeritems(){


	GameRegistry.registerItem(jewel, "jewel");

	Minecraft.getMinecraft()

	.getRenderItem()

	.getItemModelMesher()

	.register(jewel, 0, new ModelResourceLocation("TKMod1" + ":Jewel", "inventory"));

};



}

Jewel.java


package de.thekuli.mod1.item;


import net.minecraft.item.Item;


public class Jewel extends Item {


	public Jewel() {

		super();

	}


}

Jewel.json


{ "parent": "builtin/generated",

 "textures": { 

        "layer0": "TKMod1:items/jewel" 

}, 

    "display": {

         "thirdperson": { 

            "rotation": [ -90, 0, 0 ],

            "translation": [ 0, 1, -3 ], 

            "scale": [ 0.55, 0.55, 0.55 ] 

         }, 

         "firstperson": {

         "rotation": [ 0, -135, 25 ], 

         "translation": [ 0, 4, 2 ], 

         "scale": [ 1.7, 1.7, 1.7 ] 

         } 

    }

}

Ordnerstruktur:

post-10296-0-37748600-1427904545_thumb.j

Bitte helft mir, ich möchte das Problem so schnell wie möglich fixen ;D

Edited by TheKuli
Link to comment
Share on other sites

Ich bin mir nicht sicher: aber könnte das Problem daran liegen, dass du manchmal Jewel[bsp.: Zeile: 3,50] Zeile und jewel[bsp.: Zeile: 25,52] schreibst?Zumindestens entstehen so Fehler bei C++(CLI), weil da auf Groß-/Kleinschreibung geachtet wird.

P.S: Ich werde mir den Quelltext später genauer anschauen!

Edited by Headshooter
Link to comment
Share on other sites

Das werde ich mal ausprobieren, mal sehn ob es klappt...

EDIT(01.04.): Leider ist das nicht die Lösung, wäre die einfachste gewesen...

EDIT(02.04.): Ich glaube, es liegt an dem folgendem Befehl:


GameRegistry.registerItem(Jewel, "Jewel");

in Zeile 48 in ModMain.java . Denn wenn man diesen herausnimmt, kommt kein Fehler, zwar auch kein Item aber wenn ich andere bei dem Register rausnehme ausser dem mit GameRegistry kommt ein Fehler, was ich schonmal "gut" finde. Ich hoffe das hilft ein bisschen ;)

Edited by TheKuli
Link to comment
Share on other sites

Die Groß-/Kleinschreibung muss auf jeden Fall einheitlich sein.

Also schreibe immer "jewel". Nur die Klasse Jewel heißt natürlich weiterhin Jewel und der Konstruktor heißt auch Jewel)

Also:

public static Item jewel;

jewel = new Jewel().setUnlocalizedName("jewel").setCreativeTab(CreativeTabs.tabMaterials);

GameRegistry.registerItem(jewel, "jewel");

Minecraft.getMinecraft() .getRenderItem() .getItemModelMesher() .register(jewel, 0, new ModelResourceLocation("TKMod1" + ":jewel", "inventory"));

jewel.json

Und dann veränderst du noch die Ordnerstruktur. "TKMod1" muss komplett klein geschrieben werden. Also im assets Ordner den TKMod1 Ordner umbennenen in "tkmod1". In der jewel.json schreibst du TKMod1 auch komplett klein.

Hoffe es funktioniert dann.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...
B
B