Code crystal

ぼちぼち技術開発 主にjs,java等


Buildbot

トップページにも記した通り、このModはプレイヤーをAIで動かし、建築をさせることができます。建築する建物のデータは現状外部ファイルから読み込んでいますが、設計上は0から生成することもできます。マルチプレイヤーにも不完全ですが対応しています。

configの意味

指定します。ここでの時間はtick(0.05秒)単位です。

コマンド

このModを導入すると、コマンドが一つ追加されます(コマンドの使用権限がなくても使えます)。名前はbuild。このコマンドに建築データを指定すればプレイヤーが動き始めます。

/build stop とすれば、建築を中止することもできます。

建築にはブロックが必要です。サバイバルモードでは事前にインベントリに入れておく必要がありますが、クリエイティブモードなら必要になり次第、このModが入っていないサーバーで使う場合を除き自動で用意してくれます。

文法

建築データには、図形(四角とか丸)を指定します。もしくは、単にブロックを1つ設置させます。例えば

dirt at (0, 4, 0)

とすれば、プレイヤーはX座標0, Y座標4, Z座標0の位置に土ブロックを設置します。他の例として、

stone cylinder(axis: y, radius: 3) at (10, 4~8, -10)

とすれば、プレイヤーはX座標10, Z座標-10の位置を中心とし、Y座標4から8までの範囲で縦向き、半径3ブロックの石ブロックからなる円柱を建築します。以下に厳密な文法を示します(<>囲いは必須、[]囲いはオプション)。

<blockname|(blocknames)> [<line|plane|box|circle|cylinder>[(attribute)]] at [(]<x|xmin~xmax>, <y|ymin~ymax>, <z|zmin~zmax>[)]

(blocknamesとかいうのは置いといて)blocknameの部分には置きたいブロックの未翻訳名(マイクラを起動してF3+Hキーを押せば見れる)を指定します。そしてその次、lineかplaneかもしくは…というところは、ブロックをどのような形に設置するかです。何かしらを指定すれば、複数のブロックをいっぺんに置いてくれます。

attributeには現状3種類の属性が指定できます。一つはaxisで、circle/cylinder(円/円柱)では必須ですが他では付与できません。円/円柱の軸が向く方向を指定します。

二つ目はradius、同じくcircle/cylinderでは必須ですが他では付与できません。円/円柱の半径を指定します。

最後の一つはhollowで、いずれにも指定できます。0から3までの整数(上限は図形によって変わる)を指定でき、大きな数値を指定するほど図形の内部が中空になります。

そうしたら最後にX, Y, Z座標を指定すれば一行出来上がりです。左右の()は省略できます。座標部分の~は図形の持つ次元の数だけ必ず必要で、それより多くても少なくてもいけません。ただし、範囲を表す~とは別で、前に何の数字もない~はバニラのコマンドと同じく、プレイヤーからの相対位置を表します。

さて、blocknamesについての説明です。ブロック名の部分には、複数種類のブロックを指定することができます(但しブロック単体/円以外の形状が指定されている場合のみ)。上で"dirt"とか"stone"などとしていた部分を、

(blockname, blockname, ...)

と置き換えます。すると、プレイヤーは指定されたブロックを順番に(指定の最後まで行ったらまた最初から)置いてくれます。

filepath [(]<x>, <y>, <z>[)]

の文法で、ブロック設置命令の位置を指定した座標分だけ丸々ずらして、外部のソースファイルを読み込みます。ソースファイルは、行ごとに独立した建築データとして読み取られます。

ソースの任意の位置に#を記入すると、その行のそれ以降はコメントとなります。

おわりに

動作がまだ完璧ではなく、特に上下の移動をした時にブロックの設置が失敗して停止してしまうことがありますが、それでも気になる方はこちらからダウンロードしてください。

Download

last modified: 2017/8/11