阻止纹理和块名称不加载我的世界伪造

时间:2015-02-27 17:29:24

标签: java minecraft minecraft-forge

我正在为我的世界制作一个mod,但我无法加载纹理:enter image description here

名称也没有正确显示(tile.Yarrite Ore.Name而不是Yarrite Ore): enter image description here

这是我用来创建块的代码(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文件夹中的项目。

1 个答案:

答案 0 :(得分:1)

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

tile.Yarrite Ore.Name = Yarrite Ore

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

你是使用forge for 1.7还是1.8,加载纹理的方式在1.8中有很大改变?对于1.7,你需要做的就是在super(mat);

之后添加这个
this.setBlockTextureName("MODID" + ":" + "yarriteOre");

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

这里有一些伟大的Minecraft modding教程的链接,1.3-1.8。我之前使用过它们并且给予了极大的帮助。

Link