Tick

バージョン: industrialcraft-2-2.2.828-experimental

概要

TileEntityにおいて、一般にTick(1/20秒)ごとの処理はupdateEntityで行われる。支柱での処理内容は以下のようになっている。

  • 256tickに1回tickが呼び出される
  • 支柱ブロックの更新が必要(dirty)なら更新する

tickメソッド

支柱(TileEntityCrop)では256tickに1回、tickメソッドにより支柱の更新処理が行われる。名前がかぶるため、本サイトでは本来のMinecraftのTickをMinecraftTickもしくはそのままtick、支柱を更新するための256MinecraftTickに1回呼び出されるtickをCropTickと呼ぶ。

CropTickごとの処理内容は以下のようになっている。

  • 環境値の更新
    • tickerが1024の倍数だった時(すなわち4CropTickに1度)、
      updateHumidityを呼び出して保水環境値を更新する。
    • ticker+256が1024の倍数だった時(すなわち4CropTickに1度)、
      updateNutrientsを呼び出して肥沃環境値を更新する。
    • ticker+512が1024の倍数だった時(すなわち4CropTickに1度)、
      updateAirQualityを呼び出して通気環境値を更新する。
  • 支柱が交配用支柱である場合、交配試行
    • 交配に失敗したとき、雑草の生成試行
    • 雑草が生成されなかった場合はこれより下の処理を行わない
  • ​※この時点で支柱には植物が必ず存在する
  • 植物種の行動(crop.tick())
  • 成長
    • 成長の結果、植物が消失した場合はこれより下の処理を行わない
  • 農薬値の更新
    • 肥沃農薬値と保水農薬値について、1以上であれば1減る
  • 雑草の生成試行

ticker

MinecraftTickからCropTickへの頻度の変換に使うカウンターにはフィールドtickerを使っている。

tickerはチャンク読み込み時(コンストラクタ)に0~255の整数乱数で初期化され、updateEntityごとに1ずつ上昇していく。

 

最終更新:2017年11月04日 05:26