2

I have started making a mod, it's not registering as an item. When i type /give Fidojj222 fcm:fuel_canister it should give me the item except it says it doesn't exist! I am using eclipse as my IDE I am suspecting it might be this warning when I compile it into a jar:

JAR export finished with warnings. See details for additional information.
Can not export external class folder at 'C:\Users\J.J\.gradle\caches\minecraft\net\minecraftforge\forge\1.8-11.14.3.1450\start'.

If that is the problem, then how can I fix it? If not here's my code:

CarsMod.java:

package com.fidojj222.carsmod;

import com.fidojj222.carsmod.init.CarsItems;
import com.fidojj222.carsmod.proxy.CommonProxy;

import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.SidedProxy;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;

@Mod(modid = Reference.MOD_ID, name = Reference.MOD_NAME, version =     Reference.VERSION)
public class CarsMod {

    @SidedProxy(clientSide = Reference.CLIENT_PROXY_CLASS, serverSide =             Reference.SERVER_PROXY_CLASS)
    public static CommonProxy proxy;

    public void PreInit(FMLPreInitializationEvent event){
        CarsItems.init();
        CarsItems.register();
    }

    public void Init(FMLInitializationEvent event){
        proxy.registerRenders();
    }

    public void PostInit(FMLPostInitializationEvent event){

    }
}

Reference.java:

package com.fidojj222.carsmod;

public class Reference {
    public static final String MOD_ID = "fcm";
    public static final String MOD_NAME = "Fidojj222\'s Cars Mod";
    public static final String VERSION = "1.0";
    public static final String CLIENT_PROXY_CLASS = "com.fidojj222.carsmod.proxy.ClientProxy";
    public static final String SERVER_PROXY_CLASS = "com.fidojj222.carsmod.proxy.CommonProxy";
}

CarsItems.java:

package com.fidojj222.carsmod.init;

import com.fidojj222.carsmod.Reference;

import net.minecraft.client.Minecraft;
import net.minecraft.client.resources.model.ModelResourceLocation;
import net.minecraft.item.Item;
import net.minecraftforge.fml.common.registry.GameRegistry;

public class CarsItems {
    public static Item fuel_canister;

    public static void init(){
        fuel_canister = new Item().setUnlocalizedName("fuel_canister");
    }

    public static void register(){
        GameRegistry.registerItem(fuel_canister, fuel_canister.getUnlocalizedName().substring(5));
    }

    public static void registerRenders(){
        registerRender(fuel_canister);
    }

    public static void registerRender(Item item){
            Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, 0, new ModelResourceLocation(Reference.MOD_ID + ":" + item.getUnlocalizedName().substring(5), "inventory"));
    }
}

CommonProxy.java:

package com.fidojj222.carsmod.proxy;

public class CommonProxy {
    public void registerRenders(){

    }
}

ClientProxy.java:

package com.fidojj222.carsmod.proxy;

import com.fidojj222.carsmod.init.CarsItems;

public class ClientProxy extends CommonProxy {
    @Override
    public void registerRenders(){
        CarsItems.registerRenders();
    }
}
4

1 回答 1

2

不显示是什么意思?在创意搜索菜单中根本找不到该项目,或者它是一个无纹理(紫色/黑色方格)块?

如果它没有纹理,您需要确保完成以下两件事:

  1. 确保你有这个纹理src/main/resources/assets/fcm/textures/items/fuel_canister.png它需要是 16x16 像素。
  2. 在src/main/resources/assets/fcm/models/item/fuel_canister.json创建一个fuel_canister.json文件。这个文件定义了如何在游戏中渲染图像。

该文件的内容应该是

{
  "parent": "builtin/generated",
  "textures":{
      "layer0":"fcm:items/fuel_canister"
  },
  "display":{
      "thirdperson":{
          "rotation":[-90, 0, 0],
          "translation":[0, 1, -3],
          "scale":[0.55,0.55,0.55]
      },
      "firstperson":{
          "rotation":[0,-135,25],
          "translation":[0,4,2],
        "scale":[1.7,1.7,1.7]
      }
  }
}
于 2015-12-20T06:03:18.703 回答