纹理不会出现

时间:2015-07-31 18:56:34

标签: java textures minecraft

我正在尝试为项目添加纹理,但纹理不会出现。我有纹理,并在正确的文件目录中,但在游戏中它没有显示。因此,我认为我的代码中存在错误。

对于整个班级文件,请参阅以下内容:

package Moonstone;

import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.registry.GameRegistry;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraftforge.common.util.EnumHelper;

@Mod(modid = "ms", name = "Moonstone", version = "1.0")
public class MoonstoneMain {
    public static Item moonstone;

    @EventHandler
    public void preInit(FMLPreInitializationEvent event) {
        //All init
        moonstone = new Moonstone().setUnlocalizedName("Moonstone").setTextureName("moonstone").setMaxStac    kSize(64);
        GameRegistry.registerItem(moonstone,     moonstone.getUnlocalizedName().substring(5));
    }

    @EventHandler
    public void init(FMLInitializationEvent event) {
        //Proxy, TileEntity, entity, GUI and packet registering
    }

    @EventHandler
    public void postInit(FMLPostInitializationEvent event) {    
    }

    public static CreativeTabs tabMoonstone = new CreativeTabs("tabMoonstone"){
        @Override
        public Item getTabIconItem(){
            return new ItemStack(Items.stick).getItem(); 
        }
    };
}

仅针对该项目,请查看以下内容 -

moonstone = new Moonstone().setUnlocalizedName("Moonstone").setTextureName("moonstone").setMaxStackSize(64);// I have tried with ms:moonstone and without, both don't work.
GameRegistry.registerItem(moonstone, moonstone.getUnlocalizedName().substring(5));

1 个答案:

答案 0 :(得分:0)

建议的更改,但不是必需的:

First:
When registering the item you should remove the .substring(5),
having this in will name the item "Moons" instead of "Moonstone".

Second:
unlocalized names should always be lowercase and should be formatted
as modid_itemname

Third:
Package names should be lowercase, package moonstone

Fourth:
Your should make a Refstrings.java file and put the modid, version and name in it
package Moonstone

public RefStrings{
   public static String NAME = "Moonstone";
   public static String MODID = "ms";
   public static String VERSION = "1.0";
}

必要的变化:

Your setTextureName should be passed "ms:moonstone"

You didn't post your folder structure but it should look like this:
src/main/java/Moonstone/MoonstoneMain.java
src/main/resources/assests/ms/textures/items/moonstone.png

有可能一些建议的更改将解决问题,但是命名时,我的游戏可能有点挑剔。