アットウィキロゴ
bbc_mc @ moddingメモ
掲示板 掲示板 ページ検索 ページ検索 メニュー メニュー

bbc_mc @ moddingメモ

EntityAITasks

最終更新:

bbc_mc

- view
管理者のみ編集可

EntityAITasks

10/10
  本ページは作成中です。
  項目の不足・不備が多数あります。

目次


EntityAITasks

EntityAITasks クラスの機能・実装について記載する。

編集

機能

EntityAITasks クラスは、AI の管理クラスである。

主な機能は以下の通り。

  • 実行候補 AI リスト (taskEntries) の保持
  • 実行する AI リスト (executingTaskEntries) の作成
  • 実行する AI リストの更新
  • 実行する AI リストの保持
  • AIの実行

このクラスは EntityLiving クラスの変数として宣言されており、継承した生物クラスは全てこのクラス変数を持つ。
このクラスの更新関数 onUpdateTasks() は EntityLiving の onUpdate() から呼び出されている。

フィールド

public List taskEntries

実行候補となる AIを登録しておくリスト。
登録は EntityAITaskEntry クラスを利用する。

private List executingTaskEntries

現在実行している AI を登録しておくリスト。
後述する onUpdateTasks() でリストのメンバーは更新・実行され続ける。

編集

関数

編集

void addTask(int, EntityAIBase)

int proiority
EntityAIBase 

実行対象とする AI を登録する。
priority の値が小さい AI の方が (基本的には) 優先的に実行される。
priority の値についての詳細はこちらに記載した。

void removeTask(EntityAIBase)

登録されている AI を削除する。

引数に渡す EntityAIBase は、登録に使用したインスタンスである必要がある。

void onUpdateTasks()

実行対象 AI の update を行う。 実行される内容は以下の通り。

  1. taskEntries (実行候補AIリスト) に属する AI について、executingTaskEntries(実行するAIリスト) への登録判定・処理を行う

boolean canContinue(EntityAITaskEntry)

引数に与えられたAIが動作を続行するかどうかを返す。

boolean canUse(EntityAITaskEntry)

引数に与えられたAIと現在実行中のAI(あれば)を比較し、どちらを実行するかを判定し、結果を返す。

priorityのチェックや mutexBit を使った同時実行可能性の確認(areTasksCompatible呼び出し) が行われる。

boolean areTasksCompatible(EntityAITaskEntry, EntityAITaskEntry)

引数に与えられた AI が同時実行可能かどうかをチェックし、結果を返す。
mutexBit を使った同時実行可能性の確認が行われる。 詳細は 別ページ に記載する。

編集


記事メニュー
最近更新されたスレッド
ウィキ募集バナー