この記事ではMcreator2024.1の情報を執筆しています。
こんにちは。もえやです。2年ほど前からMcreatorの制作動画をYoutubeにアップしています。
今回は、オリジナルのブロックを置いた場所から、GUIで指定した範囲を空気で置換するものを作ろうと思います。
GUIに数値を入力できるようにし、その数字を取り込んでfillコマンドを実行します。
実行するためにエメラルドが必要なようにもしてみました。
この記事では、GUIの設定方法を解説します。
GUIを作成する
まずは、GUIを作成します。
プラスから、GUIを選択します。
名前を入れて、新しいGUIを作成、を押します。
テキストフィールドのプラスを押してエディタを開き、名前をdx、最初のテキストを1にして編子を保存し、一番上に配置します。
同様にdy、dxを作成し、上から順に配置します。
ラベルのプラスを押してエディタを開き、テキストにdxと入れて保存し、一番上のテキストフィールドの横に配置します。
同様にdy、dzも配置します。
入力スロットのプラスからエディタを開き、スタック入力の制限の項目にエメラルドを設定します。
これで、エメラルド以外を設置できなくなります。
保存して、右上に配置します。
画像ボタンのプラスからエディタを開き、テクスチャを設定して保存し、右下に配置します。
ここに設定するテクスチャを作成する際は、スクリーンとして保存します。
ツールチップのプラスからエディタを開き、テキストを入れて保存し、入力スロットとボタンに重なるように配置します。
入力スロットの方は、テキストを、Emeraldにし、ボタンの方は、押す、としました。
GUIを保存します。
ブロックを作成する
次に、GUIを開くブロックを作成します。
プラスから、ブロックを選択します。
名前を入れて、新しいブロックを作成、を押します。
テクスチャを設定し、プロパティに移動します。
クリエイティブインベントリタブを設定し、ブロックエンティティに移動します。
一番上のチェックを入れて、先ほど作成したGUIを設定し、右クリックで開くにチェックを入れます。
ブロックを保存します。
プロシージャを作成する
最後に、ボタンを表示するためのプロシージャと、ボタンを押したときの動作を設定するプロシージャを作成します。
まずは、入力スロットにエメラルドが入った時にだけボタンが表示されるようなプロシージャを作成します。
プラスから、プロシージャを作成します。
名前を入れて、新しいプロシージャを作成、を押します。
フロー制御から、もし~実行、を持ってきます。
同じくフロー制御から、論理値を返すプロシージャブロックを持ってきます。
ロジックから、true/falseとアイテムが同じか比較するプロシージャブロックを持ってきます。
スロット&GUIプロシージャから、GUIのスロットのアイテムを取得するプロシージャブロックを持ってきます。
マインクラフトコンポーネントの中から、アイテムを選択するプロシージャブロックを持ってきます。
このように設定し、GUIのスロット0の中身がエメラルドの場合にtrueを返すプロシージャを作成します。
保存します。
ボタンとボタンにかかるツールチップの、表示する条件、のところに先ほど作成したプロシージャを設定します。
最後に、ボタンを押したときにfillコマンドが実行されるプロシージャを設定します。
プラスから、プロシージャを作成します。
名前を入れて、新しいプロシージャを作成、を押します。
ワールドプロシージャのアクションから、コマンドを実行するプロシージャブロックを持ってきます。
文字から、テキストを合成するプロシージャブロックを持ってきます。
スロット&GUIプロシージャから、GUIのテキストフィールドからテキストを取得するプロシージャブロックを持ってきます。
このように設定し、fillコマンドの後半の座標値にテキストフィールドの入力値を入れて実行できるようにします。
保存します。
GUIのボタンの、クリックしたとき、のプロシージャに、今作成したプロシージャを設定します。
保存して完成です。
入力値に範囲を、入力スロットにエメラルドを入れてボタンを押すと、fillコマンドが実行され、指定した範囲が空気に置き換わるようになります。