Crop Harvester

準拠: industrialcraft-2_2.0.397-experimental GregTech-4.08s Minecraft1.6.4

概要

ハーベスター(Crop Harvester)(GT_MetaTileEntity_CropHarvestor)はGregTech-Addonに存在する、支柱に対して向けて稼働させることによりアイテムを収穫することができる電動機械である。

タイルエンティティの親クラスは小さなバッファー(GT_MetaTileEntity_ElectricBufferSmall)であり、輸送機械としての面も持っている。

GregTech-5.02l現在では、まだ移植されていない。

本記事群の左上の画像や、トップページの画像にあるブロックである。

 

使用方法

電動機械であるため、電気が必要である。受け入れ可能電力は32EU/tである。

GregTechの電動機械であるため、降雨から守るための屋根が必要である。

回収口と排出口を持ち、それぞれ支柱や内部インベントリを持つブロックに向けて設置する。稼働中、排出口側に隣接する内部インベントリにハーベスター内部のアイテムを排出する。

ドロップした収穫物は、遠く離れて飛び出さなければそのまま回収される。

ハーベスターの背面 実際の配置
大規模植物工場 レッドストーンのための植物工場

作成方法

次のような手段を経て作成する。(レシピ記法

1379エレクトラム板+2回路+4ダイヤモンドのこ刃+
5(ピストンor粘着ピストン)+6(鋼鉄orステンレス)のマシン外装+
8電動アイテム回収機Cropハーベスター
1379エレクトラム板+2回路+4テレポーター+
5(鋼鉄orステンレス)のマシン外装+6小さなバッファー+
8電池電動アイテム回収機
1379発展回路+2(ダイヤor工業ダイヤ)+46グラスファイバー+
5発展マシン筐体+8周波数調整器テレポーター
28炭素板+46合金版+5基本マシン筐体発展マシン筐体
大きなバッファー小さなバッファー4 1379エレクトラム板+46回路+258コンベヤモジュール
大きなバッファー
2468小さなダイヤモンドの粉+5コバルトブラスの歯車
ダイヤモンドのこ刃
真鍮の粉7+アルミニウムの粉+コバルトの粉
コバルトブラスの粉9
 
 
コバルトブラスの粉かまどコバルトブラスインゴット  

レシピ統計

あるアイテムの作成に必要な全てのアイテムを計算するには、レシピ行列A0を作成し、これを変化がなくなるまで2乗を繰り返せばよい(An+1=(An)2)。変化がなくなった行列Aが最終的に必要な素材の個数である。


以下の画像によって、100個のハーベスターを作成するのに要する素材は、次の通りである。1つだけ作る場合、ceil(これの0.01倍)よりも多くの素材が必要であることに注意が必要である。

  • 銅 962個        コッポン>収穫→コッポンファイバー>抽出器→僅かな銅の粉
  • 錫 844個        ティン>収穫→ティンの枝>抽出器→僅かな錫の粉
  • 鉄 1475個        フェルー>フェルーの葉→僅かな鉄の粉  赤石小麦>収穫→赤石>遠心分離機→黄鉄鉱の粉>電解槽→鉄粉
  • ゴム 1675個        樹液アシ>収穫→樹液>遠心分離機→ゴム
  • 赤石 672個        赤石小麦>収穫→赤石
  • グロウストーンダスト 450個
  • ラピスラズリ 450個
  • ガラス 1425個        様々な作物>収穫→様々な植物>圧縮機→植物の玉>粉砕機→土>遠心分離機→砂>かまど→ガラス
  • エレクトラム板 2300個        アルゼンチア/オーレリア>収穫→アルゼンチア/オーレリアの葉>抽出器→僅かな銀/金の粉
  • シリコン板 225個        赤石小麦>収穫→赤石>遠心分離機→シリコンの粉>工業用高炉→シリコン板
  • 鋼鉄 1200個        (フェルー/赤石→鉄粉)+(ウィザーアシ>収穫→石炭)>工業用高炉→鋼鉄
  • 工業ダイヤ 100個        ダイヤアシ>収穫→ダイヤモンド  ダイヤモンドダスト+(((匠雑草>収穫→火薬)+砂→TNT)+(丸石>粉砕機→砂利>粉砕機→フリント)→ITNT)>内破圧縮機→工業ダイヤ
  • 銀粉 200個        アルゼンチア>収穫→アルゼンチアの葉>抽出器→僅かな銀の粉
  • ルビーダスト 178個        赤石>遠心分離→ルビーダスト
  • 丸石 400個
  • 木の板材 300個        ティン>収穫→ティンの枝>粉砕機→パルプ>圧縮機→木の板
  • ダイヤモンドダスト 100個        ダイヤアシ>収穫→ダイヤモンドダスト
  • コバルト 88.9個
  • アルミニウム 88.9個        赤石>遠心分離→ルビーダスト>電解槽→アルミニウム
  • 亜鉛 156個

このうち、青字は比較的大した素材ではなく、赤字IC2GregTechによるCropによって増やせない素材である。緑字でCropからの加工レシピを示す。因みにルビーダストやシリコン板を巨大赤石小麦農場による赤石遠心によって確保しようとする場合、副産物の水銀を入れるのに物凄い量の鋼鉄(RailCraftタンク)やイリジウムorプラチナ(GregTechクォンタムタンク)を喰う。

ただし、レシピは目まぐるしく変わるので、この値は参考程度である。


以下の画像のURLを貼るので、拡大してみることを推奨する。

レシピ行列A0
レシピ行列A4=A

特性

  • トランスフォーマーアップデートが可能(GT_MetaTileEntity_CropHarvestor#isTransformerUpgradable)
  • 説明文はHarvests the Cropsticks and Logs in front of it(GT_MetaTileEntity_CropHarvestor#getDescription)
  • 回収面か排出面以外にはカバーを取り付け可能(GT_MetaTileEntity_CropHarvestor#allowCoverOnSide)
  • その他親クラスである小さなバッファーの処理を引き継ぐ。

処理内容(GT_MetaTileEntity_CropHarvestor#onPostTick)

if (サーバーサイドであり(isServerSide)、動作が可能であり(isAllowedToWork)、
(hasWorkJustBeenEnabledであるか、タイマー(getTimer)が200の倍数であった)場合) {
  オーバークロッカーファクター= 4^(オーバークロッカーアップデート個数(getOverclockerUpgradeCount)
  j= 2^(オーバークロッカーアップデート個数(
getOverclockerUpgradeCount)
  for (i= 1~j) {
    (tX,tY,tZ) = 正面からi個先にあるブロックの座標
    tTileEntity= 正面からi個先にあるブロックのタイルエンティティ
    
    try {
      
      if (tTileEntityがnullでなく、支柱(ICropTile)であった場合) {
        if (支柱の作物種がその支柱で成長可能ではなく、且つ収穫可能であり、    // (支柱に植物がない場合、例外となりキャッチに移動)
        ((100*オーバークロッカーファクター)のEUの消費を試みて、成功した)場合) {

          支柱の自動収穫を試みる(ICropTile#harvest)
          ラベル1に移動する
        }
      } else {
        tBlock= 正面からi個先にあるブロック
        if (tBlockがnullではなく、正面からi個先にあるブロックが空気でなかった場合) {
          tHardness= tBlockのハードネス値(左クリック破壊の堅さ)
          if (tHardnessが0以上である(0未満:岩盤などの破壊不可ブロック)) {
            tStack= ダメージ値が正面からi個先にあるブロックのメタデータで、tBlock1個で構成されるアイテムスタック

            if (tStackがlogかwoodかtreeLeavesで始まる鉱石辞書にヒットし、
              且つ((max(tHardness, 1)*100*オーバークロッカーファクター)のEUの消費を試みて、成功した)場合) {
              座標(tX, tY, tZ)のブロックを破壊してドロップする
            }
          }
          ラベル1に移動する
        }
      }
      

    } catch (Throwable e) {
    }
    
    キャッチ

    if (0番目のインベントリスロットがnullであり、32*オーバークロッカーファクターのEUが存在した場合) {
      if (座標(tX+0.5, tY+0.5, tZ+0.5)を中心とする1辺2mの立方体の領域にあるドロップアイテムエンティティのうち1つのスタックを回収し0番目のインベントリスロットに代入し、それがnullでなかった場合) {
        max(32, 0番目のインベントリスロットのアイテム個数*オーバークロッカーファクター/2)EUを消費する

        break  // 結果的にラベル1に飛ぶ
      }
    }
    

  }
}
ラベル1
親クラスの同メソッドを呼び出して終了する。

処理内容の要約

ハーベスターは次の3つの機能を持っている。

  • (100*オーバークロック補正)のEUを消費して、対象座標に存在する支柱の作物の収穫
  • (ハードネス*100*オーバークロック補正、最低でも100)のEUを消費して、対象座標に存在するlog・wood・treeLeavesに類するブロックの破壊
    logは原木、treeLeavesは葉ブロックのことである
  • (回収したアイテムの個数*0.5*オーバークロック補正、最低でも32)のEUを消費して、対象座標から一回り大きな空間に存在するドロップアイテムの吸引

そしてこの対象座標は、アップデート無しでは回収口から1mの範囲であるが、アップデートごとにこの距離が2倍に伸びる。また、オーバークロック補正はアップデート無しでは1倍であるが、アップデート1回につき4倍に伸びる

これらの処理は200Tick(10秒)に1回行われる。

優先順位

全体的には近い順に処理し、同距離では支柱の収穫=ブロックの破壊>ドロップアイテムの回収という優先度がある。

空気・支柱以外のブロックのある地点にドロップアイテムが入り込むと、処理過程で例外にならない限り射程圏内であっても回収されないことが予想される。

オーバークロックごとの各種値

オーバークロック回数は、0回から4回までの値を取る

オーバークロック
回数
[個]
最大射程
[m]
支柱収穫の
消費電力
[EU]
木ブロック破壊の
最低消費電力
​[EU]
1個あたりの
アイテム回収の
消費電力
​[EU]
64個の
アイテム回収の
消費電力
​[EU]
0 1 100 100 0.5 32
1 2 400 400 2 128
2 4 1600 1600 8 512
3 8 6400 6400 32 2048
4 16 25600 25600 128 8192

 

16マス先までの原木を破壊した図

トリビア

  • ハーベスターは初期状態で10000EUのストレージを持つ。オーバークロックを4回行った場合、ストレージをアップグレードしなければ動作に必要な電力を格納することはできない。
  • 16個連なった原木などのブロックを破壊するのには最短で160秒(2分40秒)かかる。
  • オーバークロックした場合、近場のブロックへのアクセスにもオーバークロック分の電力を消費する。
  • 電動アイテム回収機のレシピは、粘着ピストンだった部分がテレポーターになるという衝撃的な変更を受けた。
  • ハーベスターのダイヤモンドのこ刃は一時期ステンレス(=マンガン)を必要としていたが、更新によってコバルトブラスが原料になった。
最終更新:2014年08月06日 02:12