作物種

準拠: industrialcraft-2-2.2.517-experimental

概要

作物種とは、作物IDによって区別される植物の種類のことである。

作物種はMinecraftにおけるアイテムやブロックの様に1種類につき1つのインスタンスを持ち、そのクラスは多様である。

 

根底クラス(CropCard)

IC2やその他のMODに存在する全てのCrop作物種は根底クラスとしてCropCardを継承している。

作物の一覧

参照

作物種が持っているパラメータ(CropCard)

ここでは、考えられる全てのパラメータと呼べそうなものを列挙する。

単純に値が出るものだけでなく、イベント発生時の挙動やパラメータを基本式に当てはめて出てくるものも列挙する。

橙字の項目: protected(継承したクラスから参照できる)
黒字の項目: public(どこからでも参照できる)
太字の項目: abstract(必ずオーバーライド)
桃字の項目: final(オーバーライド不可能)
青字: 既定の挙動や値
赤字: 戻り値の意味

支柱に依存しない値

  • 内部保持テクスチャ(#textures:IIcon[])
  • 名前(#name():String)
  • 発見者(#discoveredBy():String)  "Alblaka"
  • 説明文(#desc(int i):String)  i:0~1  i=0なら2個、i=1なら残りのを所持属性を", "で区切ったもの  i=0:上段、i=1:下段
  • Tier値(#tier():int)
  • Stat値(#stat(int paramInt):int)
  • 所持属性(#attributes():String[])
  • 最大成長サイズ(#maxSize():int)
  • テクスチャファイル名(#getTextureFile():String)  "/ic2/sprites/crops_0.png"  使われない値
  • 基本収穫量(#dropGainChance():float)  0.95^Tier
  • CropId(#getId():int)  Crops.instance登録されている作物種から自身のIDを調べる

計算に支柱が必要な値

  • テクスチャ(#getSprite(ICropTile crop):IIcon)  内部保持テクスチャから選択する
  • 必要成長経験値(#growthDuration(ICropTile crop):int)  Tier*200
  • 比重適用済み環境値(#weightInfluences(ICropTile crop, float humidity, float nutrients, float air))  3引数の和
  • 成長可能か否か(#canGrow(ICropTile paramICropTile):boolean)
  • 交配可能か否か(#canCross(ICropTile crop):boolean)  現在の成長サイズが3以上のときに真  trueの場合、交配に参加できる
  • 収穫可能か否か(#canBeHarvested(ICropTile paramICropTile):boolean)
  • 収穫物(#getGain(ICropTile paramICropTile):ItemStack)
  • 収穫後サイズ(#getSizeAfterHarvest(ICropTile crop):byte)  1
  • 基本種袋採取確率(#dropSeedChance(ICropTile crop):float)  (サイズ1で0、サイズ2で0.25、サイズ3以上で0.5)*0.8^Tier
  • 種(#getSeeds(ICropTile crop):ItemStack)  支柱にある作物と等しいGGR値とスキャンレベルを持つ種袋
  • 赤石出力強度(#emitRedstone(ICropTile crop):int)  0  その支柱が全方向に弱い赤石出力を持つ
  • 発光量(#getEmittedLight(ICropTile crop):int)  0  その支柱の持つ光量
  • 雑草属性状態(#isWeed(ICropTile crop):boolean)  成長サイズが2以上 && (IDが0 || Growthが24以上)  trueの場合周囲に雑草を生む

イベント

  • テクスチャの読み込み(#registerSprites(IIconRegister iconRegister):void)  サイズ分、内部保持テクスチャに次のリソース名で登録する
"ic2:crop/blockCrop." + name + "." + size
  • 右クリック(#rightclick(ICropTile crop, EntityPlayer player):boolean)  収穫  収穫の試み等の処理が行われたかどうか
  • 左クリック(#leftclick(ICropTile crop, EntityPlayer player):boolean)  種袋採取  種袋採取の試み等の処理が行われたかどうか
  • BUD(#onNeighbourChange(ICropTile crop):void)  何もしない
  • 破壊(#onBlockDestroyed(ICropTile crop):void)  何もしない
  • 接触(#onEntityCollision(ICropTile crop, Entity entity):boolean)  接触したものが生物で疾走状態ならtrue  trueで踏み荒らし判定
  • CropTick(#tick(ICropTile crop):void)  何もしない

交配レート

交配レートの計算に使われる値の具体的な値はstat値を参照。

以下に交配レートを計算した表を載せる。上に並んでいる作物種が左に並んでいる作物種を生成させるレートを表す。

バニラIC2版交配レート
パッチ版交配レート

IC2作物一覧

【ic2.core.block.crop.IC2Crops#registerCrops】にて登録を行っている。

作物のTier順全体図

雑草はTier0の植物であるが、色々と格が違うので分離した。

最終更新:2014年07月31日 02:32