java - 项目在 Minecraft Mod 中不起作用 - Minecraft Forge Mod 开发 [编辑 : FIXED]

标签 java eclipse minecraft minecraft-forge

我已经开始制作一个模组,它没有注册为一个项目。当我输入 /give Fidojj222 fcm:fuel_canister 它应该给我该项目,但它说它不存在!我正在使用 eclipse 作为我的 IDE,我怀疑当我将其编译到 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'.

如果这是问题,那么我该如何解决它?如果没有,这是我的代码:

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){

    }
}

引用.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();
    }
}

最佳答案

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

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

  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]
      }
  }
}

关于java - 项目在 Minecraft Mod 中不起作用 - Minecraft Forge Mod 开发 [编辑 : FIXED],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34346852/

相关文章:

java - 像 Java 一样在 Rails 中打开 HTTP 连接?

java - 无法为标签 :yaml. org,2002 构造 java 对象

java - do while 循环中的条件测试

java - 更新 Swing DefaultComboBoxModel

java - 更改标签和文本框的位置

java - 如何将方 block 放到播放器下方?

java - 为什么这个使用反射的方法会抛出npe?

java - IKVM 从哪里获取它的 CLASSPATH?

java - 关于 Java 模块和 Maven 的 Eclipse 2019-03

java - 共享健康插件 Bukkit