Jump to content

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


Empfohlene Beiträge

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

bearbeitet von TheKuli
Link zu diesem Kommentar
Auf anderen Seiten teilen

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!

bearbeitet von Headshooter
Link zu diesem Kommentar
Auf anderen Seiten teilen

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 ;)

bearbeitet von TheKuli
Link zu diesem Kommentar
Auf anderen Seiten teilen

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 zu diesem Kommentar
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...
B
B