ガーデンドローンステーション
alaindustrial:garden_drone_station
概要
ガーデンドローンステーションは 1×1 のドックブロック(ロボット掃除機のベースステーションのようなもので)、 そこからドローンが離陸し、ステーション周囲半径 4 ブロックの範囲を巡回します。ドローンはエンティティでなく、 ステーション自体の が描画するオブジェクトです — 見た目も動きも飛行装置のように 見えますが、物理的には常にステーションブロックに「属し」、その領域を離れることはできません。
プレイヤーはステーションに種と骨粉を入れ、EU/FE を接続します — あとはドローンが自ら農場を維持します: 空いている土を耕し、適切な土の上の空きマスに種を蒔き、未成熟の作物を骨粉で成長させ、成熟した収穫物を そのまま出力スロットへ運びます(ワールド内に ItemEntity は発生しません)。計画されていたが未実装の 「作物自動管理」(crop_matron)と「収穫機」(crop_harvester)を置き換えます — 2 つではなく 1 つの ブロックで、メカニクスの重複なしに。
エネルギー
| 項目 | 値 |
|---|---|
| 役割 | バッファ付き消費者 |
| バッファ(EU/FE) | 4000() |
| 最大入力(EU/FE/ティック) | 32(LV) |
| 最大出力(EU/FE/ティック) | n/a(放出しない) |
| 動作あたりの EU/FE | 8() |
ステーションはすべての稼働面で通常の消費者としてエネルギーネットワークに接続します。EU/FE は 実際に実行された動作 — 耕起、植え付け、施肥、1 マスの収穫 — に対してのみ引き落とされ、 電気ヒーターのパターンに倣います:アイドル(範囲内にやることがない — 種/肥料切れ、または全マスがすでに対処済み)は 0 EU/FE で、ステーションはスリープに入り でアイドルスリープに入り、無駄にエネルギーを消費せず、ネットワークの寄生吸い口にもなりません。
加工
ステーションは加工レシピシステムを使いません — 代わりに、(目標が見つかった)各飛行で、 範囲内の 1 マスに対する 4 つの動作のいずれか 1 つを実行します。
| 項目 | 値 |
|---|---|
| レシピタイプ | なし(レシピ型機械でない) |
| 飛行あたりの動作 | 1(1 動作 = 1 マス) |
| 自動取出し | はい(収穫物は直接ステーションの出力スロットへ) |
クワは 2 動作のツールです。 耕起と収穫はクワスロットから耐久値 1 を消費し、クワなしでは実行できません: 動作で消費されるが必須でないツールは、プレイヤーに分かりにくいものです。植え付けと施肥はクワを 必要としません。
クワは使い切ると — スロットが空になります。 ステーションが最後の耐久値を消費すると、クワは 壊れてスロットから消えます — プレイヤー手中と同じように、破壊音とパーティクル付き。これは化粧でなく、 自動化の条件です — 空のスロットはホッパーから新しいクワを受け付け、農場は無人で稼働します。摩耗は バニラ経路のため、耐久(Unbreaking)エンチャントが考慮されます:エンチャントされたクワはステーション でも手中と同じ寿命を持ちます。すでに壊れたクワはスロットが受け付けません — さもなければ永遠に スロットを占拠するでしょう。
動作の優先順位(この順序でチェックされ、最初に合致したものを実行):
- 収穫 — 範囲内の成熟した作物のマス(クワ必須)。
- 植え付け —
#minecraft:supports_cropsの土の上の空きマス + スロットに適切な種がある。 - 施肥 — 未成熟作物のマス + スロットに骨粉がある。
- 耕起 — バニラの土または草のマス(クワ必須。耕地に変える)。
この順序により、「農場は自らを維持する」ことが切れ目なく保証されます:耕起が第 4 動作でなければ、 プレイヤーが農場を広げた最初の瞬間に約束が崩れていました。
植え付けの土はバニラのタグであってブロックではない()。 植え付け(および 範囲キャッシュのマス選別)は #minecraft:supports_crops に含まれる任意のブロックを土と みなします — 作物自身がブロックの上に立てるかを判断するのと同じタグです。そのため ドローンと作物は「何を土とみなすか」で食い違いません:Farmer's Delight の rich soil farmland(およびこのタグに追加された任意のモッドの土)を、ドローンはネイティブの 農地と同じように世話します — 外来 id を知る一行もないままに。耕起はこのタグに従い ません:バニラの耕地に変えられるのはバニラの土と草だけで、外来の土をドローンが掘り 返すことは決してありません — rich soil はプレイヤーが骨粉で得たものであり、ステーションが それを破壊してはなりません。
飛行。 動作は目標選択の瞬間でなく、ドローン到着時 に起きます:ドローンは経路 1 ブロックあたり = 11 ティックの速度でマスへ飛び、そこで初めて作業します。 腕は MIN_FLIGHT_TICKS = 26 ティックより短くなりません — さもなければ隣接マスを目が気づくより 早く横切ることになります。ドックへの帰路は目標への往路と同じ時間で、さらに LANDING_PAUSE_TICKS = 6 ティックだけドローンは処理済みマスに留まります(下記参照)。そのため 1 サイクル「動作」は 最低 58 ティック(≈2.9 秒)で、ティックではありません:ステーションは瞬間でなく機械のテンポで 農場を手入れします。これがなければ全農場を数ティックで処理してしまい — 視覚的に機械が作業している のでなくテレポートと読めるものでした。到着時、タスクは 再検証 されます:飛行中にワールドが 変わり得るため(プレイヤーが手で収穫、ピストンがブロックを動かす)、目標は信頼でなく再検証されます。
飛行音。 ドローンが空中にある間、静かなループするプロペラ音が聞こえ、それは ドローン自体から 発生します — 音源がステーションに固定でなく、ドローンと一緒に移動します。これが正しい姿です: ドローンは数ブロック離れ、頭上を直通し、着陸場からの羽音であればエラーと読めるでしょう。可聴範囲 8 ブロック、音量 0.22 — モッドで最低です:これは自らプレイヤーの元へ来る唯一の音で、ほぼ全稼働サイクル 鳴り続ける唯一の音です。ドック上と、ドローンが処理済みマスに留まるティックでは静寂です。
耕起音。 ドローンはマスを耕す際、プレイヤーが手でクワを使うのと同じバニラのクワ音 (minecraft:item.hoe.till)を — 同じ音量、同じピッチで — 出します。4 動作のうち耕起だけが鳴ります: 明確なバニラ基準があるのは耕起のみで、植え付け、施肥、収穫には基準がありません。
作業を終えると、ドローンは マスに 6 ティック留まり、それから戻り始めます。この一時停止がなければ 動作と帰路の腕が同じティックに始まっていました:ドローンが農場に触れて離れるのが 1 フレーム内で、 それは機械が作業しているのでなく跳ね返るように読めました。一時停止は遠端にのみあります — ドックに あれば動作が起きるティアをずらすことで、すべてのテストシナリオが数えるまさにそのティックです。
走査範囲。 ステーション周囲の半径 4 ブロック()は、標準的な 9×9 の畑 (2 × 4 + 1)ちょうど 1 面です:ドックはその中心に立ち、どの隅にも届きます。これは 第 1 ティア の ドローンで、その 1 面を世話します — 次のティアには伸びしろが残ります:複数の畑を同時に、あるいは 1 面より広い範囲へ。範囲内の目標リストは キャッシュ され、範囲内のブロック更新で無効化 されます。キャッシュの完全再構築は = 20 ティックに 1 回以下です。 範囲内の任意の位置へ触れる前に level.isLoaded のチェックが必須 — ステーションは未ロードチャンクの 同期読み込みを強制しません。
作物の成熟度 は 大鎌 から再利用される共通の述語で決まります(収穫準備ができている かを決める同じクラス — カボチャ/スイカの茎、サボテン/サトウキビの基部、ベリーの低木、バニラの CropBlock は両方の場所で同じように処理され、エッジケースの乖離リスクなし)。
施肥 は標準的なバニラの BonemealableBlock インターフェース(トレリス が 綿用に使うのと同じ 3 つのメソッド)経由で適用されます — 効果は手動の骨粉と同一ですが、プレイヤーや クリックを模倣するパーティクルはありません。
プレイヤーなしの収穫。 ステーションは ServerPlayer 経由でブロックを壊しません(プレイヤーが いないため) — 代わりに server-side で成熟した作物のドロップを計算し、それを出力スロットに入れ、 完全に成功した場合にのみ作物ブロックを直接撤去します。その際 ItemEntity もブロック破壊イベントも 作成されません — ポンプが水源を枯渇させる際と同じ意識的な妥協です。
インベントリ
| スロット | 受け入れ | 数 |
|---|---|---|
| 種(0) | 該当作物の種タグ付きアイテム | スタックまで |
| 肥料(1) | minecraft:bone_meal | スタックまで |
| ドローン(6) | — これがないとステーションは動かない | 1 |
| クワ(7) | 任意のクワ(#minecraft:hoes)。耕起と収穫で消費 | 1 |
| 出力 1–4(2–5) | ステーションによる自動挿入のみ(収穫物)。外部からの手動/自動挿入は不可 | 各スタックまで |
出力スロットが 1 つでなく 4 つ — 成熟した作物は 1 動作で複数タイプのアイテムを出すことがあるため (例:小麦は小麦本体と小麦の種を別々に)。モッドの機械基盤モデルで混合内容の単一スロットはサポート されていません。出力スロットへのドロップ挿入は 2 パス(「全スタックの容量をシミュレート → 完全成功時 のみ改変」)で、出力が満杯の際の収穫物の部分損失はありません。
インターフェース
タイプ:container(ステーションの GUI)。 表示:エネルギーバッファ(バー)、種/肥料/出力スロット、ステーション状態(資源なし / 稼働中 / サイクル完了 — ドローンモデルの灯火の色で遠くから読める)。
ブロックの性質
ドックステーションは完全な立方体でありません:薄い 1×1 ブロックのスラブで、照光された着陸輪郭、 2 つの充電接点、四隅の黄色いランプを持ちます。ドローンはその上に で描かれ、 ステーションと別個の物理的当たり判定/ヒットボックスはありません。
| 項目 | 値 |
|---|---|
| 形状 | 低い高さのスラブ(完全な立方体でない。ブロック下半のオクルーダ) |
| 硬度 | 3.0 |
| 爆発耐性 | 6.0 |
| ツール | ツルハシ |
| NBT エネルギードロップ | なし(バッファ/インベントリ/ドローン状態は NBT アイテムドロップでなく ValueInput/ValueOutput 経由で保存) |
レシピ
クラフト:(鉄/鋼の筐体、電子回路、 「中に集める」ホッパー、ネジとしての銅)。 加工レシピはありません — ステーションはアイテムを加工しません。
進行
ティア:LV。 電源:任意の LV ソースから、例えば発電機。 置き換え(バックログ、コードなし):「作物自動管理」(crop_matron)と「収穫機」(crop_harvester) 2 つの定置ブロックでなく 1 ブロックで同じ結果。 必要:クラフト用の電子回路(モッドの大部分の LV 機械と同様)。
関連項目
スプリンクラー — 同じ畑に並ぶ隣人で、役割は重なりません。ステーションは一点働き:1マスに1アクション、骨粉とEUで支払い、耕し、植え、収穫します。スプリンクラーは受動的な範囲:土にも作物にも触れず、周囲で育つものすべてを速めるだけで、支払いは養液です。両者は並べて置くためのものです。 大鎌 — 再利用可能な作物成熟度述語の供給源。 トレリス — モッド内の既存の BonemealableBlock の先例。 インキュベーター — インデックスでタグ検証するマルチスロットインベントリと 基盤より広い ContainerData の見本。 ポンプ — リミット付き範囲走査の見本と、機械が自身のティックからプレイヤー なしでワールドブロックを変更する唯一の先例。 電気ヒーター — 「有用ティックでのみ EU/FE」(需要駆動)の見本。
クラフト
定型クラフト
▶
ガーデンドローンステーション