せんばの隠れ家

使用する場合は製作者の名前の表記をお願いします

ロバの扱いが誠にめんどいお話

f:id:sensenba:20220123153902p:plain

はじめに

これはロバの作業台を作った人がめんどい部分を語るだけで、データパックの配布ではありません。

なんで"Slot:2b"から始まるの?

画像からもみてわかるようにロバのインベントリは0から始まらないんです。

樽とかチェストトロッコは0から始まるんですが、ロバはなんでかわからんのですが2から始まります。ですがまあ、スロットがまとめられた画像があればいいんですが...

ロバのインベントリなんて誰もいじらないせいかスロット番号が書かれた画像がない!

所見ではかなり厳しいとこ。スロット番号が違うのはどう影響したかというと、"/item"と"/data"でアイテムをいじるとき、または検知の時、とてもやりずらい。"/item"は親切なので0から始まります。("/item"のときも"horse.0"とかでぐだった)

f:id:sensenba:20220123153902p:plain

それとあれがこんがらがってなかなかめんどいってわけです。やってみたらわかりますよ。このめんどさ。枠にアイテムが入ったらチェストトロッコを使って押し出すコマンドがあるんですが、チェストトロッコにアイテムをコピーしたらそりゃ2から始まるめんどいのがコピーされます。これ自体はなんの問題もないのですが、先ほどアイテムをdataで検知したのに装飾アイテムを次はitemを使って押し込めないといけないのかよ!ってのが大変でした。

3×5なんて慣れてないよ

それと、樽の番号に慣れてたせいで11bに完成品を入れるところを15bに入れるとかこんがらがります。まず、樽は3*9でロバは3*5です。最初の2のやつも重なってとても大変。これはまあ、慣れれば何とかなるのでまあよし。(慣れるまでが大変なんですがね)

アイテムの干渉が...

アイテムの干渉...要は"/item"ではできない、状況に応じたアイテムの変更のこと。これがまことにやりにくい。この作業台はストレージ(ワールドにあるメモ帳的なの)から完成品を取り出してそれを適応させてますから、"状況に応じたアイテムの変更"が必要なのです。で、何がめんどいかと言うと、

"/data"で完成品をいじるとプレイヤーがUIを閉じちゃう!

なぜかわかりませんが、"/item"でいじれるアイテムが"/data"ではいじれないんです。(いま思いましたが、"/loot"でいじればどうなるんでしょうか?) そーこーでー、私が考えた最終手段は、"アマスタにアイテムを操作してもらって"/item from"でごり押しして入れる!"ということ。"/item from"は1.17で追加された"/item"で"状況に応じたアイテムの変更"が可能になるゆういつの細道。簡単に言うと、ロバでアイテムをいじれないならアマスタに任せればいいじゃないってこと。それを"/item"で押し込める。

さて、これで"状況に応じたアイテムの変更"ができるようになりました。完成日のみでなく、アイテム数の減少ができるようになりました。そうですよ。アイテム数の減少も"状況に応じたアイテムの変更"なんですから。それを材料スロットの9スロット分。アイテムをロバからコピーしてアイテムを1減らしてロバにアイテムを変換する。それをしないといけないのが大変だった。

軽量化がしにくい

私はなるべくデータパックは軽量的に作っています。クラフターは樽の開閉を元にすればクラフトの検知をすればある程度は軽量化できますが...ロバは開閉とかないのでロバに常時実行させてもらわないといけない。やれやれ、どうしたものか。このままだとロバを増やせば増やすほど重いワールドになっちゃう。そこで一番最初に思いついたのは、プレイヤーが6マス以内にいないとクラフトが実行されないもの。あれ?プレディケート(すごい細かく条件の検知ができる.json)を使えば行けるんじゃね?ってことで...最終的には専用のロバを見つめている、もしくは専用のロバに乗っているプレイヤーがいればクラフトを実行させるように。プレディケートは苦手分野だったのでめんどくさかったです。これは個人の感想です。

最後に

なんかもっとありそうな気がしますが今日はこの辺にしといてやります。これらを見てもう一回動作のほうを見てみるのはどうでしょう?きっと感動すんじゃないですか?

以上!1831文字の長い文句でした!

この話のデータパック

ちょっくらカスタムクラフターになってみない? - せんばの隠れ家 (hatenablog.com)

youtu.be