>>コマンド解説
ダンジョンを追加する
THE DUNGEONはゲームが始まる度に「ストラクチャブロック」で保存されたデータ(便宜的にストラクチャデータと呼びます)を呼び出しながらダンジョンを生成しています。
今回は一部屋分のストラクチャデータを作成して、それをダンジョンに組み込む方法を紹介します。
注意:部屋の追加では、様々なミスによって予想しない範囲に部屋が生成される可能性があります。独自に作成したコマンドなど、大事なものは保存しておいたり、ワールドのバックアップを取っておいたりしましょう。
新しいワールドを作成する
まず、ストラクチャデータを編集するための新しいワールドを作成します。
スーパーフラット、生成物無し、チート有効に設定しましょう。


ワールドが作成できたら、以下のコマンドを入力します。
/gamerule doMobSpawning false
このコマンドによって、動物やモンスターの自然沸き(スポーンブロックは除きます)を止めることができます。
次に、以下のコマンドを何度か入力します。
/kill @e[type!=Player]
これはプレイヤー以外のエンティティ(モンスターや動物など、動くものを指す言葉です)を消去するコマンドです。編集ワールドに余計なエンティティが残らないように、何度か実行してみてください。
これでワールドの準備はOKです。
ベースのデータを読み込む
部屋を作るためのベースとなるストラクチャをワールドに読み込みましょう。
ストラクチャーブロックは「ワールドの保存されているフォルダ」のstructuresフォルダに入っているストラクチャーデータを読み込むことができます。
新規ワールドのフォルダには通常structuresフォルダは無いので、新しく自分で作成しましょう。
(「structure」ではなく「structures」です。名前を確認してくださいね!)


そして、作成したフォルダにD_base.nbtファイルを入れます。

次に、編集ワールドで以下のコマンドを入力します。
/give @p minecraft:structure_block
このコマンドでストラクチャーブロックを入手できます。

ストラクチャーブロックを適当な場所に設置して、以下のように設定します。
1.モードをLOADモードに
2.名前にD_baseを入力
3.Include entities(保存されているエンティティを呼び出す)をONに
設定できたら、LOADボタンを押します。以下のSSと同じように部屋が生成されたら成功です。

自由に編集しましょう!
ここまで準備できたら、あとは自由に部屋を作ることができます。
このとき、部屋の下3マス(岩盤に囲まれた空間)がコマンド用の空間であることに気を付けてください。(特に中央の羊毛が置かれている場所はダンジョンの生成に関わるため、関係の無いブロックなどを置かないように注意してください)
ストラクチャデータの保存
部屋が一通り完成したら、「ストラクチャヴォイドの配置」をしてから保存をします。
部屋のちょうど中央に立って以下のコマンドを入力します。
/fill ~+14 ~+10 ~+14 ~-14 ~-10 ~-14 minecraft:structure_void 0 keep
/fill ~+6 ~+10 ~+6 ~-6 ~-10 ~-6 minecraft:air 0 replace minecraft:structure_void
このコマンドで部屋の外側をストラクチャヴォイドで埋めることができます。
(ストラクチャヴォイドは透明ですが、ストラクチャーブロックのShow invisible blocksをONにすることで見ることができます)

では、ストラクチャデータの保存をしましょう。
ストラクチャブロックの設定を見て、モードをSAVEにしたのち、
好きな名前を付けて、Include Entity(エンティティを含めて保存)をONにしてセーブします。

念のためワールドデータのstructuresフォルダ内を確認し、付けた名前のストラクチャデータが入っていることを確認しましょう。
最後に、THE DUNGEONのワールドフォルダを開き、structureフォルダ内に
先程作成したストラクチャデータをコピーしておしまいです。
LootTableの設定
THE DUNGEONのダンジョン生成では、LootTableが使われています。
THE DUNEGONのワールドデータのdataフォルダ内にあるloottablesフォルダから、
DGen1~DGen3.jsonの好きなファイルをテキストエディタで開きましょう。
(数字が小さいほど拠点近くに生成される部屋になります)
{
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "item",
"name": "minecraft:stone",
"weight": 3,
"functions": [
{
"function": "minecraft:set_nbt",
"tag": "{display:{Name:\"ファイル名\"}}"
}
]
},
{
"type": "item",
"name": "minecraft:stone",
"weight": 3,
"functions": [
{
"function": "minecraft:set_nbt",
"tag": "{display:{Name:\"ファイル名\"}}"
}
]
}
]
}
]
}
DGenファイルは枠に囲まれた部分がコロン(,)を挟んで連なるような形式で書かれています。
新しいダンジョンを追加する場合は、下図のようにコピペして増やします。
{
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "item",
"name": "minecraft:stone",
"weight": 3,
"functions": [
{
"function": "minecraft:set_nbt",
"tag": "{display:{Name:\"ファイル名\"}}"
}
]
},
{
"type": "item",
"name": "minecraft:stone",
"weight": 3,
"functions": [
{
"function": "minecraft:set_nbt",
"tag": "{display:{Name:\"ファイル名\"}}"
}
]
},
{
"type": "item",
"name": "minecraft:stone",
"weight": 3,
"functions": [
{
"function": "minecraft:set_nbt",
"tag": "{display:{Name:\"ファイル名\"}}"
}
]
}
]
}
]
}
次に、「ファイル名」の部分に自身が作成したストラクチャデータのファイル名を入れましょう。
(例えば、「D_test」という名前でsaveしたなら、
"tag": "{display:{Name:\"D_test\"}}"というようにファイル名を入力します)
"weight"の横の数字はその部屋の生成確率を表しています。
より高い数値にすれば、より高い確率で生成されるようになります。
コマンドの設定
Minecraftを起動してTHE DUNGEONのワールドに入ります。
以下のコマンドを入力して、コマンドブロックを手に入れましょう。
/give @p minecraft:command_block
次に、部屋を追加するコマンドで扱うスコアを追加します。
/scoreboard objectives add ファイル名 dummy
以下のコマンドを順番に並べましょう
[1:リピート]
/scoreboard players set @e[type=Item] ファイル名 1 {Item:{tag:{display:{Name:"ファイル名"}}}}
[2:チェイン]
/execute @e[type=Item,score_ファイル名_min=1] ~ ~ ~ blockdata ~ ~-1 ~ {name:"ファイル名"}
[3:チェイン]
/execute @e[type=Item,score_ファイル名_min=1] ~ ~ ~ setblock ~ ~ ~ minecraft:redstone_block 0 keep
[4:チェイン(Conditional)]
/scoreboard players add @e[name=RoopMan] RoomCount 1
[5:チェイン]
/kill @e[type=Item,score_ファイル名_min=1]
お疲れさまでした!これで完成です!
早速ゲームを開始して、自分が追加した部屋が生成されているか確認しましょう!