この記事では、Minecraft Java Edition(バージョン1.20.5)の情報をもとに執筆しています。
そのほかのバージョンや機種などでの動作は保証できません。
こんにちは!
マインクラフターのなつめです。
この記事では、こんな疑問を解決します!
- copy_componentsでコンポーネントをコピーする
- 実例
copy_componentsはその名の通り、コンポーネントをコピーすることができるitem_modifierの項目です。
ルートテーブルで使うもので、慣れないとイマイチ使いにくい項目だと思ってしまうかもしれません。
ですが、コピーという面倒な作業を簡単に行ってくれるので、ぜひこの記事を参考に勉強してくださいね。
それでは、さっそく見ていきましょう!
本記事で紹介するデータパックのサンプルはGitHubにてダウンロードできます。
copy_componentsでコンポーネントをコピーする
copy_componentsを活用することで、コンポーネントをコピーすることが出来ます。
具体的には、破壊したブロックが持っていたコンポーネントをドロップアイテムに反映させるなんて使い方が可能です。
コンポーネントを持てないブロックに対しては使えないのがネックではありますが、手軽にコピーできるのは強みと言えます。
次項では実際の例で見ていきます。
実例
まずはデータパックの構造から見ていきましょう。
- データパック本体
- data
- minecraft
- loot_tables
- blocks
- furnace.json
- blocks
- loot_tables
- minecraft
- pack.mcmeta
- data
今回はかまどのドロップを編集するので、上記のような構造となっています。
また、jsonファイルの中身は以下の通りです。
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:emerald_block",
"functions": [
{
"function": "minecraft:copy_components",
"source": "block_entity",
"include": [
"minecraft:max_stack_size"
],
"exclude": [
"minecraft:can_place_on"
]
}
]
}
]
}
]
}
かまどを壊すとエメラルドブロックがドロップするようになっています。
また、copy_componentsによってコピーされる項目が指示されていますね。
includeはコピーする項目、excludeはコピーしない項目として設定します。
includeについては、指示しなかった場合すべてのコンポーネントをコピーします。
そのため、上記の例ではmax_stack_sizeという最大スタック数に関するコンポーネントをコピーして、can_place_onという設置可能なブロックの設定に関するコンポーネントはコピーされないというわけですね。
まとめ
というわけで、今回のまとめです。
- copy_componentsを使用することで、コンポーネントのコピーを行える。
この記事は以上になります。
2016年からマイクラを楽しんでおり、最近はクリエイティブモードでコマンドを駆使して遊んでいます!