创造Minecraft 1.14.4 Forge Mod-第四集【添加方块】

首先

2019-09-16_23.34.09.pngMinecraft 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

定义一个区块我打算像上一次一样,在list文件夹中创建一个名为BlockList.java的文件,只写下块的声明。
这次我想要添加琵琶湖块,简称琵块。(这是什么)

package jp.yuyu.biwako_mod.lists;

import net.minecraft.block.Block;

public class BlockList {
    public static Block BiwakoBlock;
}

ブロックの登録ブロックの登録と同時にパラメータの指定も行います。
今回のブロックにはMaterial.IRONを指定しましが、これは、

    • マッピングにおけるカラー(MaterialColor.IRON)

 

    破壊にツールを必要とする

が指定されたMaterialです。他にもプロパティがあり、

    • ブロックが燃えるかどうか

 

    • ブロックがピストンなどで押すことができるかどうか

 

    ブロックが雪や葉っぱのように半透明かどうか

などを指定したMaterialを自作することもできます。

詳しくはBasic blocks – Minecraft Modding Wiki、
net.minecraft.block.material.Material.javaに書かれています。

硬度指的是挖掘方块时的难度,抗爆指的是方块的抵抗爆炸的能力。
光亮数值在非零时可作为光源。可能的取值范围大概是0到15之间。
声音可以用来指定方块破坏时播放的音效。

        @SubscribeEvent
        public static void onBlocksRegistry(final RegistryEvent.Register<Block> blockRegistryEvent) {
            LOGGER.info("HELLO from Register Block");
            blockRegistryEvent.getRegistry().registerAll(
                    BlockList.BiwakoBlock = new Block(Block.Properties.create(Material.IRON)
                            .hardnessAndResistance(2.0f, 3.0f)
                            .lightValue(5)
                            .sound(SoundType.METAL))
                            .setRegistryName(new ResourceLocation(MOD_ID, "biwako_block"))
            );
        }

アイテムの宣言
ブロックはブロックとして存在するのは当たり前ですが、アイテムとしても存在するため
同様に登録する必要があります。

package jp.yuyu.biwako_mod.lists;

import net.minecraft.item.Item;

public class ItemList {
    public static Item BiwakoIngot;
    public static Item BiwakoBlock;
}

アイテムの登録ブロックの場合はBlockItemクラスのインスタンスを登録します。
引数には、対応するBlock型のメンバ、クリエイティブタブのプロパティを渡します。

    @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")),
                    ItemList.BiwakoBlock = new BlockItem(BlockList.BiwakoBlock, new Item.Properties().group(ItemGroup.MISC))
                            .setRegistryName(BlockList.BiwakoBlock.getRegistryName())
            );
        }

资源在方块的情况下,需要写入三个JSON文件。
由于是第一次,我们将添加基本纹理的方块。

创建文件夹
以下の3つのフォルダを作成します。
/src/main/resources/assets/biwako_mod/blockstates
/src/main/resources/assets/biwako_mod/models/block
/src/main/resources/assets/biwako_mod/textures/blocks

        └─resources
            │  logo.png
            │  pack.mcmeta
            │
            ├─assets
            │  └─biwako_mod
            │      ├─*blockstates
            │      │      biwako_block.json
            │      │
            │      ├─lang
            │      │      en_us.json
            │      │      ja_jp.json
            │      │
            │      ├─models
            │      │  ├─*block
            │      │  │      biwako_block_model.json
            │      │  │
            │      │  └─item
            │      │          biwako_block.json
            │      │          biwako_ingot.json
            │      │
            │      └─textures
            │          ├─*blocks
            │          │      biwako_block.png
            │          │
            │          └─items
            │                  biwako_ingot.png

区块模型 (Qu móブロックの見た目のこと。
ビーコンのような複雑なテクスチャもblock modelで設定するようです。
RSランプのように点滅するブロックは、点灯時と消灯時のmodelをそれぞれ別で用意し、
次のblock statesで状態とblock modelを指定することで実装します。

今回は全面同じテクスチャのブロックとします。

テクスチャの配置場所は
/src/main/resources/assets/biwako_mod/textures/blocks/biwako_block.png
です。

biwako_block.pngjson文件位于/src/main/resources/assets/biwako_mod/models/block/biwako_block_model.json。

{
    "parent":"block/cube_all",
    "textures":{"all":"biwako_mod:blocks/biwako_block"}
}

封锁各个州ブロックの状態に合わせてblock modelを指定します。
今回は状態が1つしかないブロックにするので、空欄にしておきます。

指定するmodelは上のblock modelで作成したjsonファイルの名前です。

将json文件放置在/src/main/resources/assets/biwako_mod/blockstates/biwako_block.json位置上。

{
    "variants": {
        "": { "model": "biwako_mod:block/biwako_block_model" }
    }
}

物品模型最后设置项目的模型。
由于与方块的模型相同,因此请指定(json文件名)。

将json文件放置在/src/main/resources/assets/biwako_mod/models/item/biwako_block.json中。

{
    "parent":"biwako_mod:block/biwako_block_model"
}

翻译文件

{
    "item.biwako_mod.biwako_ingot":  "Biwako Ingot",
    "block.biwako_mod.biwako_block": "Biwako Block"
}
{
    "item.biwako_mod.biwako_ingot": "琵ンゴット",
    "block.biwako_mod.biwako_block": "琵ロック"
}

Minecraft的启动

2019-09-16_23.34.09.png


我在Github上公开了项目。

bannerAds