0
1

Minecraft Fabric APIの備忘録

Last updated at Posted at 2024-04-10

Mod作成を始めたばかりなので
まだまだ知識は得ていない

記事を書いた理由は "クリエイティブタブのグループ作成" で物凄く沼ったから。

今後いろいろと作るうえで覚えたことを追記する予定

開発環境

  • minecraft - 1.20.4
  • fabric - 0.96.11+1.20.4
  • VSCode
  • Java (Kotlinは理解不足なので使わない)

バージョン等は今後変わる可能性あり

プロジェクトの作成

gitからzipでダウンロードする方だとクラス名やディレクトリ構成の変更が面倒だったので、上記テンプレートからダウンロードする方が楽

アイテムの追加

ModName.java
public static final Item CUSTOM_ITEM = Registry.register(
    Registries.ITEM,
	new Identifier("mod-id", "item-id"),
    new Item(new FabricItemSettings()) // コマンドでしか取り出せない
    // new Item.Settings().group(ItemGroup.MISC) で既存グループへ登録
);
item-id.json
{
  "parent": "item/generated",
  "textures": {
    "layer0": "mod-id:item/item-id"
  }
}

アイテム表示名

ja_jp.json
{
    "item.mod-id.item-id": "カスタムアイテム"
}
階層
main/java/[package-name]/
    ModName.java
    resources/assets/[mod-id]
        models/item/item-id.json
        textures/item/item-id.png
        lang/ja_jp.json
             en_us.json

package-nameまでの階層は各自変わる可能性がある

アイテムを使ったりするにはアイテムクラスを継承して登録するみたいだが
まだ試していない

クリエイティブタブのグループ作成

ModName.java
// グループの追加
private static final ItemGroup CUSTOM_GROUP = FabricItemGroup.builder()
    .icon(() -> new ItemStack(
        // アイコンにしたいアイテムを指定
        CUSTOM_ITEM
    ))
    .displayName(Text.translatable("タブの表示名"))
    .entries((context, entries) -> {
        // グループに登録したいアイテムを書く
        entries.add(CUSTOM_ITEM);
    })
    .build();

// ~~~~~~~~~~~~~~~~~~~
@Override
public void onInitialize() {
    // グループを登録
    Registry.register(
        Registries.ITEM_GROUP,
        // "main_group"の部分の説明は見たことがないので不明。適当に名前を付けているが動く
        new Identifier("mod-id", "main_group"),
        CUSTOM_GROUP
    );
}

build();を実行しない方法をjp wikiで見た気がするが、古いバージョンだったはずなので動くかどうかは検証していない。
バージョンの違うコードはエラー地獄になること必然なので試したくない

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1