雑草発生

準拠: industrialcraft-2-2.2.517-experimental

概要

概念としての雑草はCrop農業における障壁の一つで、しばしばこれによる被害で貴重な作物の苗を全滅させるなどの被害が出ることがある。

支柱に生えている物としての雑草はシステム上、小麦やアシと同じく作物(CropCard)として扱われているが、ソース中のところどころでそのID値である0がハードコーディングされている(しばしばCropCard#isWeedなどを呼び出しているが、「雑草」と「雑草を生成可能」は異なる。雑草(CropWeed)は常に雑草を生成可能(CropWeed#isWeed == true)である。)など、特異性が伺える。

以下、単に雑草という場合にはcropIdが0のCropWeedクラスで実装される雑草を指す。また、雑草を生成可能な性質(CropCard#isWeed == true)については、雑草属性または雑草属性状態と称することとする(isWeedはGGR値や成長段階などで変化するため)。

多くの作物はサイズ2以上かつGrowth24以上で雑草属性状態となる。

 

出現

設置

雑草は左クリックしても種袋をドロップさせるイベントを発生ず、種袋により植えることはできない。また、MODやバグ等を使い雑草の種を入手しても、植えることはできない(TileEntityCrop#tryPlantIn)。

空(交配用支柱を含む)の支柱に自然発生

何も植えられていない支柱には雑草が発生する判定が起こる可能性がある(TileEntityCrop#tick attemptCrossingの後)。ただし、そのtick内で交配が成立した場合は必ず発生しない。

雑草が発生する判定: 1%の確率で、WeedEXが残っていなかった(この判定時についでに5減少させる)場合に発生。それ以外の場合、10%の確率でWeedEXの残量を1減少させる。

WeedEXにより抑制可能

作物の品質に比べて環境値が極端に低い支柱に間接的に発生

作物の品質(need値)が環境による容量(have値)を大きく超えていた場合に、作物が消滅して空の支柱に戻る。よって、前項目により雑草が発生する要因となる。

この消滅はResistanceが高い場合には確率が下がり(0~31 > Resistance)、31であった場合には起こらなくなる。

雑草属性状態の作物による周囲への繁殖

支柱に作物が存在して(id >= 0。雑草も含む)、その作物が雑草属性状態である(CropCard#isWeed == true)場合に、crop tickごとに以下の確率で雑草を出現させる処理(TileEntityCrop#generateWeed)を行う。

(3 + Growth) / 50

雑草を出現させる処理

自分からの相対座標で、(x, z) =(±0, ±0),(-1, ±0), (±0, ±0),(±0, -1)の4つの中からランダムに選択する

半分の確率で自分自身の座標を選択するが、この場合はのちの処理で必ず無効になる(常に雑草属性状態なので、「雑草属性状態でなくて」の判定が常に偽になるため)。

この位置に支柱がある(instanceof TileEntityCrop)場合、

その支柱が空か交配用である若しくはその支柱の作物が雑草属性状態でなくてWeedEXの残量がない場合に(あった場合はついでに残量を5減少させる)以下のような確率で、

確率: (32- Resistance) / 32

その支柱をGGR値0の雑草で初期化する。この時、Growth値のみ次のような値に設定される。

侵食側のGrowthか侵食前の被侵食側のGrowthのうち高いほうをとり、31未満ならば50%の確率で1を加算する。

支柱がない場合、

この位置が空気ブロックであり、この位置の下のブロックが土・耕土・草のいずれかであった場合は下のブロックを草に変え、その位置のブロックを背の高い雑草にする。

Resistanceによって侵食の確率を極端に抑えられるが、31でも可能性を0にすることはできない

雑草のGrowth値を鍛えることは容易である。

自然発生した雑草は比較的脅威は少ない。なぜなら、Growthが低くcrop tickごとの雑草判定処理の起こる確率が3/50であるからだ。しかし、Growth31の作物を侵食した場合、この確率は34/50(およそ20秒に1回侵食処理を起こす)となり侵食が迅速に広がってしまう。

雑草属性状態の作物に隣接した空か交配用の支柱は、WeedEXによる雑草抑制を無視する。

雑草属性状態の作物は雑草に侵食されない。 ①
多くの作物種においてGrowth24以上かつサイズ2以上でこの状態になる。一度成長させた作物は、ネザーワートを始めとする収穫するとサイズ1に戻る作物を除きこの判定で雑草をやり過ごすことができる。

雑草はX・Z座標のどちらかが負である方角にしか雑草を繁殖させないため、X座標+Z座標=一定値となるようなナナメの領域で農場を建設すれば、雑草が発生してしまっても全体に広がらない。 ②

①と②を組み合わせれば、Growth24以上を持つ作物の交配も雑草を発生させることなく行うことができる。交配用支柱が空の場合は②により、支柱に作物が生えた場合は①によりそれぞれ雑草の出現が抑制される。

雑草が方角依存で繁殖する様子 足りない背の高い草
バグを利用した雑草が繁殖しない交配用支柱(訂正:Y→Z) 交配に成功しても雑草が発生しない

抑制

WeedEXにより根本的に抑制するのが簡単で強力である。しかし、例外が存在する(この場合でも作物のない支柱にしか繁殖しないので、作物は守られる)。

一部の原因に対しては侵食を受ける作物側のResistanceを鍛えることで被害の拡大を抑えることができる。

雑草属性状態による雑草の繁殖が方角に依存する(X・Z軸どちらかが正な隣接マスには判定が行われない)バグが存在するため、方角を考慮して農地を設計する。

雑草が発生してしまっても、雑草属性状態である作物は侵食されない。よって、Growth24以上でありサイズ2以上であれば、多くの作物(例外はヴェノミリアが知られている)は侵食されなくなる。

最終更新:2014年07月22日 15:26