Minecraft 1.14.4 Forge Mod的制作第三部分【添加无功能物品】

首先

2019-09-16_19.11.21.png

Minecraft 1.14/1.14.3 的 Modding 教程 – 基本物品

?软件开发环境

在这里,我们将环境设定如下。

    • Windows 10

 

    • JDK 8u211

 

    • Minecraft 1.14.4

 

    • Minecraft Forge 1.14.4 (28.1.0)

 

    IntelliJ IDEA 2019.1.4

制作包装

我打算在主类外的类中声明项目。
考虑到今后可能还会声明其他块,所以我决定创建一个用于集中存放它们的包。

在添加物品时,还需要创建一个名为 lang、models/item、textures/items 的文件夹。请注意文件夹名的单数和复数形式。

└─src
    └─main
        ├─java
        │  └─jp
        │      └─yuyu
        │          └─biwako_mod
        │              │  BiwakoMod.java
        │              │
        │              └─*lists
        │                      *ItemList.java
        │
        └─resources
            │  logo.png
            │  pack.mcmeta
            │
            ├─assets
            │  └─biwako_mod
            │      ├─*lang
            │      ├─*models
            │      │  └─*item
            │      └─*textures
            │          └─*items
            └─META-INF
                    mods.toml

声明物品

我将在创建的list文件夹中创建ItemList.java,并仅仅写入项目声明。我打算添加琵琶湖Ingot,简称为琵Ngot。(什么鬼)

package jp.yuyu.biwako_mod.lists;

import net.minecraft.item.Item;

public class ItemList {
    public static Item BiwakoIngot;
}

注册物品

まず、RegistryEventsクラス内にアイテムの登録用メソッドを記述します。
その中でItemクラスのインスタンスを作成し、登録します。
group(ItemGroup.MISC)でクリエイティブタブの指定、
setRegistryName(new ResourceLocation(MOD_ID, “biwako_ingot”))でアイテムID名の指定です。
アイテムID名のアルファベットは全て小文字でないとForgeがエラーを吐きます

    @Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD)
    public static class RegistryEvents {
        @SubscribeEvent
        public static void onItemsRegistry(final RegistryEvent.Register<Item> itemRegistryEvent) {
            LOGGER.info("HELLO from Register Item");
            itemRegistryEvent.getRegistry().registerAll(
                    ItemList.BiwakoIngot = new Item(new Item.Properties().group(ItemGroup.MISC))
                            .setRegistryName(new ResourceLocation(MOD_ID, "biwako_ingot"))
            );
       }

        @SubscribeEvent
        public static void onBlocksRegistry(final RegistryEvent.Register<Block> blockRegistryEvent) {
            LOGGER.info("HELLO from Register Block");
        }
    }

翻訳ファイル

アイテムID名に対するアイテム名を言語別に記述しておきます。
日本語用のファイル名はja_jp.json、英語(US)はen_us.jsonとするルールがあります。

文件将会被创建在src/main/resources/assets/biwako_mod/lang文件夹中。

写法为item.MOD_ID. “物品ID名称”: “物品名称”。

{
    "item.biwako_mod.biwako_ingot":  "Biwako Ingot"
}
{
    "item.biwako_mod.biwako_ingot":  "琵ンゴット"
}

模型文件

在模型文件中指定如何应用纹理。
json文件应放置在src/main/resources/assets/biwako_mod/models/item文件夹中,以使用setRegistryName注册的名称.json的形式。

在我的情况下,我会放置biwako_ingot.json文件。
大多数情况下,只需要更改layer0的值,并以MOD_ID:items/TEXTURE_FILE_NAME的形式编写。

如果您准备了名为biwako_ingot.png的图片文件,则其除了扩展名之外的部分应为biwako_ingot。

{
    "parent": "item/generated",
    "textures": {
        "layer0": "biwako_mod:items/biwako_ingot"
    }
}

纹理文件

将纹理文件放置在src/main/resources/assets/biwako_mod/textures/items文件夹中。
对我来说,我会将biwako_ingot.png放在那里。

biwako_ingot.png
            ├─assets
            │  └─biwako_mod
            │      ├─lang
            │      │      en_us.json
            │      │      ja_jp.json
            │      │
            │      ├─models
            │      │  └─item
            │      │          biwako_ingot.json
            │      │
            │      └─textures
            │          └─items
            │                  biwako_ingot.png

启动Minecraft

请用中文表达以下内容,只需要一种选项:

– English

2019-09-16_19.08.53.png

请使用中文重新表达以下内容,只需要一种选项:

日本语言

2019-09-16_19.11.21.png

我在GitHub上公开了项目。

bannerAds