はじめに
今回は、マイクラのMod開発としてオリジナルのアイテムからドロップ(ルートテーブル)を作成していきたいと思います。
前提
ドロップ作成の前提として、以下記事を参考にModの開発環境が構築されていること。
【参照】
【開発環境構築】VSCodeでMinecraft(Java版)のMOD作成環境を構築する – SEもりのLog (selifemorizo.com)
【Java + Mod開発】オリジナルのアイテムを追加してみる – SEもりのLog (selifemorizo.com)
【Java + Mod開発】オリジナルのブロックをMinecraftで追加してみる – SEもりのLog (selifemorizo.com)
既存のルートテーブルを確認してみる
まずは、すでにマイクラの世界にあるルートテーブルを参考にするために見てみます。
ルートテーブルとはマイクラのドロップを構成する設定のことです。
ルートテーブルの場所
マイクラのドロップは「client.jar」というアーカイブファイルを解凍することで中身を見ることができます。
「client.jar」ファイルはgradleの参照ライブラリとして設定している場所に存在しているので、コピーして任意の場所で解凍してみてください。
ユーザ\.gradle\caches\forge_gradle\mcp_repo\net\minecraft\client\1.20.2
ルートテーブルフォルダ
解凍後にloot_tablesフォルダが存在するので、その中のファイルがルートテーブルが設定されているファイルになります。
解凍フォルダ\client\data\minecraft\loot_tables
アカシアのボタンのルートテーブルを確認してみる
「acacia_button.json」アカシアのボタンのルートテーブルを確認してみます。
pools:ドロップ情報を記載する場所
conditions:ドロップ条件
entries:ドロップされるアイテム
rolls:ドロップする個数
{
  "type": "minecraft:block",
  "pools": [
    {
      "bonus_rolls": 0.0,
      "conditions": [
        {
          "condition": "minecraft:survives_explosion"
        }
      ],
      "entries": [
        {
          "type": "minecraft:item",
          "name": "minecraft:acacia_button"
        }
      ],
      "rolls": 1.0
    }
  ],
  "random_sequence": "minecraft:blocks/acacia_button"
}
オリジナルのアイテムドロップを作成する
フォルダ構成
赤字のフォルダ・ファイルが今回必要な追加対象になります。
│  .gitattributes
│  .gitignore
│  build.gradle
│  changelog.txt
│  CREDITS.txt
│  gradle.properties
│  gradlew
│  gradlew.bat
│  LICENSE.txt
│  README.txt
│  runClient.launch
│  runData.launch
│  runGameTestServer.launch
│  runServer.launch
│  settings.gradle
│
├─.vscode
│      settings.json
└─src
    ├─generated
    │  └─resources
    ├─main
    │  ├─java
    │  │  └─com
    │  │      └─mori
    │  │          └─morimod
    │  │              │  Config.java
    │  │              │  MoriMod.java
    │  │              │
    │  │              ├─blocks
    │  │              │      MoriModBlock.java
    │  │              │
    │  │              └─items
    │  │                      MoriModItem.java
    │  │
    │  └─resources
    │      │  pack.mcmeta
    │      │
    │      ├─data
    │      │  └─morimod
    │      │      ├─loot_tables
    │      │      │  └─blocks
    │      │      │          moriblock.json
    │      │      │
    │      │      └─recipes
    │      │              moriblock.json
    │      │              moriitem_from_block.json
    │      │
    │      ├─assets
    │      │  └─morimod
    │      │      ├─blockstates
    │      │      │      moriblock.json
    │      │      │
    │      │      ├─lang
    │      │      │      en_us.json
    │      │      │      ja_jp.json
    │      │      │
    │      │      ├─models
    │      │      │  ├─block
    │      │      │  │      moriblock.json
    │      │      │  │
    │      │      │  └─item
    │      │      │          moriblock.json
    │      │      │          moriitem.json
    │      │      │
    │      │      └─textures
    │      │          ├─block
    │      │          │      moriblock.png
    │      │          │
    │      │          └─item
    │      │                  moriitem.png
    │      │
    │      └─META-INF
    │              mods.toml
    │
moriblock.json
オリジナルのルートテーブルをアカシアのボタンのルートテーブルを参考に書いてみます。
{
  "type": "minecraft:block",
  "pools": [
    {
      "bonus_rolls": 0.0,
      "conditions": [
        {
          "condition": "minecraft:survives_explosion"
        }
      ],
      "entries": [
        {
          "type": "minecraft:item",
          "name": "morimod:moriblock"
        }
      ],
      "rolls": 2.0
    }
  ],
  "random_sequence": "minecraft:blocks/moriblock"
}
実行確認
実際にマイクラを実行してアイテムがドロップされることを確認しましょう!
ドロップが成功したらオリジナルルートテーブル追加成功です。

公式サイト
最後に
以上、ログになります。
これからも継続していきましょう!!

 
  
  
  
  

コメント