2017-06-25 15 views
0

をレンダリング:Minecraftのテクスチャ1つの11アイテムを(またはサブ項目)私はサブ項目とハンマークラスを作成し、私は11 Minecraftの1にテクスチャに問題がある

public Hammer(Hammers hammers){ 
    this(hammers.name, hammers.size, hammers.material); 
} 
public Hammer(String name, Size range, Item.ToolMaterial material){ 
    super(name, material); 
    this._range = range; 
    this.name = name; 
    setUnlocalizedName(name); 
    setRegistryName(name); 
    setCreativeTab(BookCraft.toolTab); 
    hasSubtypes = true; 
    this.efficiencyOnProperMaterial /= MathHelper.sqrt(_range.width*_range.height); 
} 
@Override 
public void getSubItems(Item itemIn, CreativeTabs tab, NonNullList<ItemStack> subItems) { 
    for (Hammers h : Hammers.values()){ 
     subItems.add(new ItemStack(new Hammer(h))); 
    } 
} 
public static enum Hammers{ 
    BUILDER_HAMMER("BuilderHammer", new Size(2,1), ToolMaterial.STONE), 
    LIGHT_HAMMER("LightHammer", new Size(2,2), ToolMaterial.IRON), 
    MJÖLLNIR("Mjöllnir", new Size(3,2), ToolMaterial.DIAMOND), 
    WAR_HAMMER("WarHammer", new Size(2,1), ToolMaterial.DIAMOND), 
    LEGENDARY_HAMMER("LegendaryHammer", new Size(5,3), ToolMaterial.DIAMOND); 

    public final String name; 
    public final Size size; 
    public final ToolMaterial material; 
    public final float damage; 

    Hammers(String name, Size size, ToolMaterial material){ 
     this.name = name; 
     this.size = size; 
     this.material = material; 
     this.damage = material.getDamageVsEntity(); 
    } 
} 

これは私がテクスチャでアイテムを登録ItemInitクラスです。

//region Fields 
public static Hammer hammes; 
//public static Boers boer; 
//public static BkAxe axe; 
//endregion 

// 
public static void init(){ 

    hammes = register(new Hammer(Hammer.Hammers.BUILDER_HAMMER)); 
    //boer = register(new Boers("boer", new Size(5,3), Item.ToolMaterial.DIAMOND)); 
    //axe = register(new BkAxe("axe", Item.ToolMaterial.DIAMOND, 7, 7,1000,20)); 
} 

//region Helping Method 
private static <T extends Item> T register(T item) { 
    GameRegistry.register(item); 

    if (item instanceof IBkBase) { 
     if (item.getHasSubtypes()){ 
      item = registerWithSubtypes(item); 
     } 
     else 
      ((IBkBase) item).registerItemModel(); 
    } 

    return item; 
} 

public static <T extends Item> T registerWithSubtypes(T item){ 

    NonNullList<ItemStack> items = NonNullList.create(); 
    item.getSubItems(item, item.getCreativeTab(), items); 

    for (int i = 0; i < items.size(); i++){ 
     Item tempItem = items.get(i).getItem(); 
      String name = tempItem.getUnlocalizedName().substring(5); 
      ModelLoader.setCustomModelResourceLocation(tempItem, i, 
        new ModelResourceLocation(BookCraft.MOD_ID + ":" + name, "inventory")); 
     } 
    return item; 
} 
//endregion 

すべてのフォルダが正しく、インターネット全体を検索名前が付けられ、任意のヘルプここで

を見つけることができないいくつかのスクリーンショットです:

  • デバッグ情報 Debug info
  • アイテムはクリエイティブ]タブにあり、名前はmodelフォルダ

    The item is in the Creative Tab and the name is shown
  • アイテムが世界にレンダリングされる方法
  • How the item is rendered in the world
  • を示しています

    The <code>model</code> folder

全3つの* .jsonは同じテキストを持っている:

{ 
    "parent": "item/handheld", 
    "textures": { 
    "layer0": "bk:items/Hammer1" 
    } 
} 

あなたはすべてのソリューションを提案することはできますか?

答えて

1

リソースパス "BK:商品/ Hammer1" は、また、 "BK /モデル/項目/ baseHammer"、

アイテム
項目
アイテム
項目

を実際のパスと一致しませんあなたのリソースファイル名は、ゲームが自動的にあなたがそれを与えるもの(例えば "Hammer1")を取ってそれに.toLower()を呼び出すと、リソースファイル名はすべて小文字( "hammer1"または "basehammer")でなければなりませんその正確な名前のファイル(たとえば、 "Hammer1.json"は一致しません)。

"bk:items/hammer1"を使用し、 "item"ディレクトリの名前を "items"に変更し、jsonファイルの名前を "hammer1.json"または "builderhammer"に変更する必要がありますあなたがそれを登録したとき)。

関連する問題