1

我正在为我的世界制作一个模组,但我无法加载纹理:在此处输入图像描述

名称也没有正确显示(tile.Yarrite Ore.Name 而不是 Yarrite Ore): 在此处输入图像描述

这是我用来创建块的代码(YarriteOre.java):

package com.NoNameYetMod.common;

import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;

public class YarriteOre extends Block{
    public YarriteOre(int id,Material mat) {
        super(mat);
        this.setCreativeTab(CreativeTabs.tabBlock);
    }

    @Override
    public void registerBlockIcons(IIconRegister p_149651_1_){
        this.blockIcon = p_149651_1_.registerIcon("NoNameYetMod:Yarrite Ore");
    }
}

这是我在游戏中注册块的 mod.java 文件:

package com.NoNameYetMod.common;

import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.Mod.Metadata;
import cpw.mods.fml.common.ModMetadata;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.registry.GameRegistry;

@Mod(modid = "NoNameYetMod", name = "The \"No Name\" Yet Mod", version = "1.0.0 (Warning: Alpha!)")

public class NoNameYetMod{

    @Metadata
    public static ModMetadata meta;
    //Yarrite
    public static Block YarriteOre;
    int YarriteOreID = 1001;

    @EventHandler
    public void init(FMLPreInitializationEvent event){
        //Yarrit
        YarriteOre = new YarriteOre(YarriteOreID, Material.rock).setHardness(1.5F).setBlockName("Yarrite Ore");
    
}

我尝试将图标重命名为Yarrite OreYarriteYarritOre它们都不起作用!有人知道我做错了什么吗?

编辑:我也尝试过 .Png 和 .JPeg 文件,但它们都不起作用......

编辑:我在 src/main/resources/assets/NoNameYetMod/Textures/blocks 文件夹中有这些项目。

4

1 回答 1

1

要修复名称,您只需在 \main\resources\assets\MOD_ID\lang 中创建一个名为 en_US.lang 的文件。该文件是一个基本的文本文件,记事本可以编辑它,你应该输入你看到的疯狂名称,它的技术名称,然后是你想要的游戏名称。这是一个例子:

tile.Yarrite Ore.Name = Yarrite Ore

对项目执行相同的操作,只需使用 item.X 而不是 tile.X。

您是在 1.7 还是 1.8 中使用 forge,在 1.8 中加载纹理的方式发生了很大变化?对于 1.7,您需要做的就是在 super(mat); 行之后添加它。

this.setBlockTextureName("MODID" + ":" + "yarriteOre");

将 yarriteOre 替换为图像名称。无需在行尾添加 .png,Minecraft 在查找图像时会这样做。对于基本的块纹理,您不需要 registerBlockIcons() 方法。

这是一些很棒的 Minecraft 改装教程的链接,1.3-1.8。我以前用过它们,它们有很大的帮助。

关联

于 2015-03-03T00:29:49.350 回答