【问题标题】:How to assign Custom Redstone Textures?如何分配自定义红石纹理?
【发布时间】:2014-07-02 01:34:45
【问题描述】:
@SideOnly(Side.CLIENT)
public void registerBlockIcons(IIconRegister p_149651_1_)
{
    this.field_150182_M = p_149651_1_.registerIcon(this.getTextureName() + "_" + "cross");
    this.field_150183_N = p_149651_1_.registerIcon(this.getTextureName() + "_" + "line");
    this.field_150184_O = p_149651_1_.registerIcon(this.getTextureName() + "_" + "cross_overlay");
    this.field_150180_P = p_149651_1_.registerIcon(this.getTextureName() + "_" + "line_overlay");
    this.blockIcon = this.field_150182_M;
}

@SideOnly(Side.CLIENT)
public static IIcon getRedstoneWireIcon(String p_150173_0_)
{
    return p_150173_0_.equals("cross") ? ModMain.bluestoneWire.field_150182_M :  (p_150173_0_.equals("line") ? ModMain.bluestoneWire.field_150183_N : (p_150173_0_.equals("cross_overlay") ? ModMain.bluestoneWire.field_150184_O : (p_150173_0_.equals("line_overlay") ? ModMain.bluestoneWire.field_150180_P : null)));
} 

我正在尝试制作自定义红石类型,但我不知道如何分配纹理。我从原始红石文件中复制了代码,但我很难理解它。我的getRedstoneWireIcon() 方法在所有field_ 术语中都出现错误。就是说无法解析或者不是字段。

【问题讨论】:

    标签: java minecraft


    【解决方案1】:

    您发布的代码没有问题,您需要确保所有变量都匹配,如下所示:

    import cpw.mods.fml.relauncher.Side;
    import cpw.mods.fml.relauncher.SideOnly;
    import net.minecraft.client.renderer.texture.IIconRegister;
    import net.minecraft.util.IIcon;
    
    class ModMain
    {
        public static BluestoneWire bluestoneWire = new BluestoneWire();
    }
    
    public class BluestoneWire
    {
        @SideOnly(Side.CLIENT)
        private IIcon field_150182_M;
        @SideOnly(Side.CLIENT)
        private IIcon field_150183_N;
        @SideOnly(Side.CLIENT)
        private IIcon field_150184_O;
        @SideOnly(Side.CLIENT)
        private IIcon field_150180_P;
        @SideOnly(Side.CLIENT)
        private IIcon blockIcon;
    
        public String getTextureName()
        {
            return "bluestoneWire";
        }
    
        @SideOnly(Side.CLIENT)
        public void registerBlockIcons(IIconRegister p_149651_1_)
        {
            this.field_150182_M = p_149651_1_.registerIcon(this.getTextureName() + "_" + "cross");
            this.field_150183_N = p_149651_1_.registerIcon(this.getTextureName() + "_" + "line");
            this.field_150184_O = p_149651_1_.registerIcon(this.getTextureName() + "_" + "cross_overlay");
            this.field_150180_P = p_149651_1_.registerIcon(this.getTextureName() + "_" + "line_overlay");
            this.blockIcon = this.field_150182_M;
        }
    
        @SideOnly(Side.CLIENT)
        public static IIcon getRedstoneWireIcon(String p_150173_0_)
        {
            return p_150173_0_.equals("cross") ? ModMain.bluestoneWire.field_150182_M : (p_150173_0_.equals("line") ? ModMain.bluestoneWire.field_150183_N : (p_150173_0_.equals("cross_overlay") ? ModMain.bluestoneWire.field_150184_O : (p_150173_0_.equals("line_overlay") ? ModMain.bluestoneWire.field_150180_P : null)));
        }
    }
    

    【讨论】:

    • 我也复制了这些,但仍然无法正常工作。同样的错误即将出现。
    • @Ved115 您发布的内容没有问题,只需确保您未发布的代码与上述匹配即可。
    • 这正是我所做的,但它仍然给我一个错误。我尝试清理项目,但没有奏效。还有其他想法吗?
    • field_150182_M无法解析或不是字段,field_150183_N无法解析或不是字段,field_150184_O无法解析或不是字段,field_150180_P无法解析或不是字段
    【解决方案2】:

    用这个替换getRedstoneWireIcon:

    @SideOnly(Side.CLIENT)
    public static IIcon getRedstoneWireIcon(String p_150173_0_)
    {
        return p_150173_0_.equals("cross") ? field_150182_M :  (p_150173_0_.equals("line") ? field_150183_N : (p_150173_0_.equals("cross_overlay") ? field_150184_O : (p_150173_0_.equals("line_overlay") ? field_150180_P : null)));
    } 
    

    您不能使用ModMain.bluestoneWire.field_,因为每个field_ 都是私有的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-01
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-14
      • 1970-01-01
      • 2018-08-01
      相关资源
      最近更新 更多