植物が存在する

準拠: industrialcraft-2-2.2.517-experimental

概要


支柱は、「空の支柱」・「雑草が生えた支柱」・「作物が生えた支柱」・「交配用支柱」といった形態が存在する

このうち、雑草が生えた支柱と作物が生えた支柱を植物が存在する(生えている)支柱という。

上記の文脈において、作物(id>0)は雑草(id=0)を除くものとする。

 

プログラム上における定義

植物が存在する(生えている)支柱というのは、次のような状態である支柱のことをいう。

支柱の作物種Id(TileEntityCrop#id)が0以上であること

支柱(TileEntityCrop)はその状態を記録するための変数として整数値idと論理値upgradedを持っているが、支柱の状態と支柱の変数の組み合わせは次の表のようになっている。

状態 id upgraded
空の支柱 -1 false
交配用支柱 -1 true
雑草が生えた支柱 0 false
作物が生えた支柱 1以上 false

雑草と作物の違いとこれらを同一視する理由

雑草はその他の作物に対し、実装上次のような点で特別な扱いを受けている。これは雑草属性状態とは異なり、isWeedではなくidでの判定となる。

  • 雑草はWeedExをかけすぎても遺伝子劣化が起こらない(TileEntityCrop#applyWeedEx)。
  • 雑草は交配に参加できない(TileEntityCrop#askCropJoinCross)。

しかし、次のような点でその他の作物と同等である。

  • 作物種となるクラスが存在する(CropWeed)
  • 作物と同一の処理によって成長し、GGR値も持つ。
  • 収穫時に収穫可能であるかの確認をする(TileEntityCrop#harvest)。
  • 何らかの方法で解析したとき、スキャン時にGGR値を表示する(TileEntityCrop#getScanned)。
  • 接触時に踏み荒らしの判定を行うTileEntityCrop#onEntityCollision)。
  • 種袋がないにもかかわらず、種袋を出す判定を行う(TileEntityCrop#pick)。

雑草と作物は処理上からして異なる存在であるが、一部の処理においては同一としてみた方が都合がよい場合もある。その場合、雑草と作物を合わせて植物と呼ぶ。

トリビア

最終更新:2014年07月26日 11:47