方块纹理和方块名称未加载 minecraft forge

Block textures and block names not loading minecraft forge

我正在为我的世界制作 mod,但我无法加载纹理:

名称也没有正确显示(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,但其中 none 有效!有人知道我做错了什么吗?

编辑:我也试过 .Png 和 .JPeg 文件,但没有一个有效...

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

要修复名称,您只需在 \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 模组教程 link,1.3-1.8。我以前用过它们,帮了大忙。

Link