无法使《我的世界》的盔甲纹理发挥作用



我对编码很陌生,我所要做的就是制作一个minecraft mod。我正在尝试添加盔甲,但我无法使纹理工作。这是我的代码和控制台中的错误:

package com.halo.halomod.armor;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.Entity;
import net.minecraft.item.ItemArmor;
import net.minecraft.item.ItemStack;
import com.halo.halomod.halo;
public class TitaniumArmor extends ItemArmor {
private String [] armourTypes = new Strenter code here`ing [] {"TitaniumHelmet", "TitaniumChestplate", "TitaniumLeggings", "TitaniumBoots"};

public TitaniumArmor(ArmorMaterial armorMaterial, int renderIndex, int armourType) {
super(armorMaterial, renderIndex, armourType);
}
@Override
public String getArmorTexture(ItemStack stack, Entity entity, int slot, String layar){
if(stack.getItem().equals(halo.TitaniumHelmet)|| stack.getItem().equals(halo.TitaniumChestplate)|| stack.getItem().equals(halo.TitaniumBoots)){
return "halo:textures/armor/titanium1.png";
}
if(stack.getItem().equals(halo.TitaniumLeggings)){
return "halo:textures/armor/titanium2.png"; 
}
else return null;
}
public void registerIconsRegister(IIconRegister reg){ 
if(this == halo.TitaniumHelmet)
this.itemIcon = reg.registerIcon("halo:Titanium Helmet");
if(this == halo.TitaniumChestplate)
this.itemIcon = reg.registerIcon("halo:Titanium Chestplate");
if(this == halo.TitaniumLeggings)
this.itemIcon = reg.registerIcon("halo:Titanium Leggings");
if(this == halo.TitaniumBoots)
this.itemIcon = reg.registerIcon("halo:Titanium Boots");
}
}

控制台错误:

[15:53:29]〔客户端线程/错误〕:使用丢失的纹理,无法负载minecraft:纹理/项目/MISSING_ICON_ITEM_4103_钛头盔.pngjava.io.FileNotFoundException:minecraft:纹理/项目/MISSING_ICON_ITEM_4103_钛头盔.pngnet.minecraft.client.resources.FallbackResourceManager.getResource(FallbackResourceManager.java:65)~[FallbackResourceManager.class:?]位于net.minecraft.client.resources.SimpleReloadableResourceManager.getResource(SimpleReloadbleResourceManager.java:67)~[SimpleReloadableResourceManager.class:?]位于net.minecraft.client.renderer.texture.TextureMap.loadTextureAtlas(TextureMap.java:128)[纹理贴图.class:?]位于net.minecraft.client.renderer.texture.TextureMap.loadTexture(TextureMap.java:93)[纹理贴图.class:?]位于net.minecraft.client.renderer.texture.TextureManager.loadTexture(TextureManager.java:89)[TextureManager.class:?]位于net.minecraft.client.renderer.texture.TextureManager.loadTickableTexture(TextureManager.java:71)[TextureManager.class:?]位于net.minecraft.client.renderer.texture.TextureManager.loadTextureMap(TextureManager.java:58)[TextureManager.class:?]位于net.minecraft.client.minecraft.startGame(minecraft.java:621)[我的世界.阶级:?]在net.minecraft.client.minecraft.run(minecraft.java:931)[我的世界.阶级:?]在net.minecraft.client.main.main.main(main.java:112)[main.class:?]sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)~[?:1.7.0_09]在sun.reflect.NativeMethodAccessorImpl.invoke(未知来源)~[?:1.7.0_09]sun.reflect.DelegatingMethodAccessorImpl.invoke(未知源)~[?:1.7.0_09],位于java.lang.reflect.Method.ioke(未知源)~[?:1.7.0_09]net。minecraft。launchwrapper。Launch。Launch(Launch.java:134)[launchwrapper-1.9.jar:?]在net.minecraft.launchwrapper.Launch.main(Launch.java:28)[launchwrapper-1.9.jar:?][15:53:29][Client thread/ERROR]:使用缺少纹理,无法加载minecraft:纹理/项目/MISSING_ICON_ITEM_4106-TitaniumBoots.pngjava.io.FileNotFoundException:minecraft:纹理/项目/MISSING_ICON_ITEM_4106-TitaniumBoots.pngnet.minecraft.client.resources.FallbackResourceManager.getResource(FallbackResourceManager.java:65)~[FallbackResourceManager.class:?]位于net.minecraft.client.resources.SimpleReloadableResourceManager.getResource(SimpleReloadbleResourceManager.java:67)~[SimpleReloadableResourceManager.class:?]位于net.minecraft.client.renderer.texture.TextureMap.loadTextureAtlas(TextureMap.java:128)[纹理贴图.class:?]位于net.minecraft.client.renderer.texture.TextureMap.loadTexture(TextureMap.java:93)[纹理贴图.class:?]位于net.minecraft.client.renderer.texture.TextureManager.loadTexture(TextureManager.java:89)[TextureManager.class:?]位于net.minecraft.client.renderer.texture.TextureManager.loadTickableTexture(TextureManager.java:71)[TextureManager.class:?]位于net.minecraft.client.renderer.texture.TextureManager.loadTextureMap(TextureManager.java:58)[TextureManager.class:?]位于net.minecraft.client.minecraft.startGame(minecraft.java:621)[我的世界.阶级:?]在net.minecraft.client.minecraft.run(minecraft.java:931)[我的世界.阶级:?]在net.minecraft.client.main.main.main(main.java:112)[main.class:?]sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)~[?:1.7.0_09]在sun.reflect.NativeMethodAccessorImpl.invoke(未知来源)~[?:1.7.0_09]sun.reflect.DelegatingMethodAccessorImpl.invoke(未知源)~[?:1.7.0_09],位于java.lang.reflect.Method.ioke(未知源)~[?:1.7.0_09]net。minecraft。launchwrapper。Launch。Launch(Launch.java:134)[launchwrapper-1.9.jar:?]在net.minecraft.launchwrapper.Launch.main(Launch.java:28)[launchwrapper-1.9.jar:?][15:53:29][Client thread/ERROR]:使用缺少纹理,无法加载minecraft:纹理/项目/MISSING_ICON_ITEM_4104_TitaniumChestplate.pngjava.io.FileNotFoundException:minecraft:纹理/项目/MISSING_ICON_ITEM_4104_TitaniumChestplate.png在net.minecraft.client.resources.FallbackResourceManager.getResource(FallbackResourceManager.java:65)~[FallbackResourceManager.class:?]位于net.minecraft.client.resources.SimpleReloadableResourceManager.getResource(SimpleReloadbleResourceManager.java:67)~[SimpleReloadableResourceManager.class:?]位于net.minecraft.client.renderer.texture.TextureMap.loadTextureAtlas(TextureMap.java:128)[纹理贴图.class:?]位于net.minecraft.client.renderer.texture.TextureMap.loadTexture(TextureMap.java:93)[纹理贴图.class:?]位于net.minecraft.client.renderer.texture.TextureManager.loadTexture(TextureManager.java:89)[TextureManager.class:?]位于net.minecraft.client.renderer.texture.TextureManager.loadTickableTexture(TextureManager.java:71)[TextureManager.class:?]位于net.minecraft.client.renderer.texture.TextureManager.loadTextureMap(TextureManager.java:58)[TextureManager.class:?]位于net.minecraft.client.minecraft.startGame(minecraft.java:621)[我的世界.阶级:?]在net.minecraft.client.minecraft.run(minecraft.java:931)[我的世界.阶级:?]在net.minecraft.client.main.main.main(main.java:112)[main.class:?]sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)~[?:1.7.0_09]在sun.reflect.NativeMethodAccessorImpl.invoke(未知来源)~[?:1.7.0_09]sun.reflect.DelegatingMethodAccessorImpl.invoke(未知源)~[?:1.7.0_09],位于java.lang.reflect.Method.ioke(未知源)~[?:1.7.0_09]net。minecraft。launchwrapper。Launch。Launch(Launch.java:134)[launchwrapper-1.9.jar:?]在net.minecraft.launchwrapper.Launch.main(Launch.java:28)[launchwrapper-1.9.jar:?][15:53:29][Client thread/ERROR]:使用缺少纹理,无法加载minecraft:纹理/项目/MISSING_ICON_ITEM_4105_TitaniumLeggings.pngjava.io.FileNotFoundException:minecraft:纹理/项目/MISSING_ICON_ITEM_4105_TitaniumLeggings.png在net.minecraft.client.resources.FallbackResourceManager.getResource(FallbackResourceManager.java:65)~[FallbackResourceManager.class:?]位于net.minecraft.client.resources.SimpleReloadableResourceManager.getResource(SimpleReloadbleResourceManager.java:67)~[SimpleReloadableResourceManager.class:?]位于net.minecraft.client.renderer.texture.TextureMap.loadTextureAtlas(TextureMap.java:128)[纹理贴图.class:?]位于net.minecraft.client.renderer.texture.TextureMap.loadTexture(TextureMap.java:93)[纹理贴图.class:?]位于net.minecraft.client.renderer.texture.TextureManager.loadTexture(TextureManager.java:89)[TextureManager.class:?]位于net.minecraft.client.renderer.texture.TextureManager.loadTickableTexture(TextureManager.java:71)[TextureManager.class:?]位于net.minecraft.client.renderer.texture.TextureManager.loadTextureMap(TextureManager.java:58)[TextureManager.class:?]位于net.minecraft.client.minecraft.startGame(minecraft.java:621)[我的世界.阶级:?]在net.minecraft.client.minecraft.run(minecraft.java:931)[我的世界.阶级:?]在net.minecraft.client.main.main.main(main.java:112)[main.class:?]sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)~[?:1.7.0_09]在sun.reflect.NativeMethodAccessorImpl.invoke(未知来源)~[?:1.7.0_09]sun.reflect.DelegatingMethodAccessorImpl.invoke(未知源)~[?:1.7.0_09],位于java.lang.reflect.Method.ioke(未知源)~[?:1.7.0_09]net。minecraft。launchwrapper。Launch。Launch(Launch.java:134)[launchwrapper-1.9.jar:?]在net.minecraft.launchwrapper.Launch.main(Launch.java:28)[launchwrapper-1.9.jar:?][15:53:29][客户端线程/信息]:已创建:256x256纹理/物品-

问题出现在public void registerIconsRegister(IIconRegister reg)方法中:

首先,您应该覆盖的方法定义为:

public void registerIcons(net.minecraft.client.renderer.texture.IconRegister register)

因此,该方法没有被调用,即使被调用,您的所有对等检查都将失败:

if(this == halo.TitaniumHelmet)

由于ItemArmorItem都不覆盖Object.equals(Object obj),Java将执行内存引用检查,这些检查都将失败。无论如何,registerIcons方法应该注册所有项图标,而不管存在什么基于元数据的子项,所以只需完全删除if语句即可。

最新更新