
pool_aliasesとは
1.20.3?のスナップショット 22w42aで突如、カスタムストラクチャーに新たな機能が実装されました。
それが、今回解説するpool_aliasesです。
例によって、自分で触ってみて分かったと思っていることを書いていきます。
pool_aliasesとはなんなのか?
まず、公式からのアナウンスを見てみましょう。

ふむふむ…ほーん…なあるほど…うんうん…(`-ω-´)
わからん!
こうなった方は少なからずいることでしょう。どこに記述するかもはっきり書かれていないですしね。
で?結局何よ?
では改めて説明しよう!
pool_alisesとは
特定のtemplate_poolを別のpoolに差し替える機能である!
これを使用すると、ストラクチャーが生成する度に本来指定してあるpoolを上書きする形で別のpoolが使われるようになります。
言い換えると、パーツはそのまま、ジグソーの参照先(構成要素プール)を変えることができるのです!
勿論、差し替え先のジグソーブロックの「名前」がその前のパーツのジグソーブロックの「接続先の名前」と一致している必要があります。
この差し替え処理はストラクチャー単位で行われ、該当するpoolは全て差し替え先の物に変わります。
すなわち、差し替え前と差し替え後のpoolを混在させることはできません。そこんとこ、注意してくださいね。
それでは、書き方の方に移っていきましょう。
pool_aliasesの書き方
worldgen/structureに書き、次のように書きます。
{
..他のworldgen/structureのプロパティたち,
"pool_aliases": [
{
"type": "direct" / "random" / "random_group",
追加項目
}
]
}
typeがdirectのとき
毎回、同じpoolに差し変わります。
この場合、次のような書き方になります。
{
"type": "direct",
"alias": "template_poolのパス"
"target": "template_poolのパス"
}
alias
差し換えたいpoolを指定します。worldgen/template_poolから指定します。
target
差し換え先のpoolを指定します。
type:randomのとき
生成の度に差し換わるpoolが変わります。
この場合、次のような書き方になります。
{
"type": "random",
"alias": "template_poolのパス"
"targets": [
{
"data": "template_poolのパス",
"weight": 整数
}
]
}
alias
差し換えたいpoolを指定します。
targets
差し換え先のpoolを指定します。
directと違い、リスト形式で以下の項目を書いたオブジェクトを書きます。
・data
差し変え先のpoolを指定します。
・weight
選出されやすさを整数で指定します。
random_group
グループ化し、差し替え処理を連動させます。
「あるpoolが差し換わったらこっちも一緒に差し替える」といった感じです。
この場合、次のような書き方になります。
{
"type": "random_group",
"groups": [
{
"data": [
{
aliasの書き方
},
...
],
"weight": 整数
}
]
}
groups
グループのリストを指定します。リスト形式で以下の項目を書いたオブジェクトを書きます。
実際には、この中からストラクチャーごとに1つだけが使用されます。
data
連動させたいエイリアスをここまであげてきた書き方で書きます。
・weight
選ばれやすさを整数で指定します。
使用場面
実装当初は、デフォで使われていませんでしたが、昨日公開されたスナップショット23w45aで実装されたTrial Chambersで使われています。
どういう風に書かれているか、実際に自分の目で覗いてみよう!