bbc_mc @ moddingメモ
mutexの動作
最終更新:
bbc_mc
-
view
mutexの動作
目次
mutex
EntityAIBase クラスの mutex の動作について記載する。
mutexとは
同時実行できないタスクを示すために、bit フラグを利用する。 二つのタスクの mutex_bit を AND 処理し、同じフラグが一つでも立っていた場合はそれらのタスクは同時に実行できないと判断する。
例) taskA (0001(10進数表記で 1)), taskB(0010(10進数表記で 2)) は、同時に実行可能
taskA 0001
taskB 0010
----- ----
0000 => 同時実行可能
例) taskA (0001(10進数表記で 1)), taskC(0011(10進数表記で 3)) は、同時に実行不可能
taskA 0001
taskC 0011
----- ----
0001 => 同時実行不可能
各AIのmutex値
1.6.2 forge804
| Filename | mutex | 1 | 2 | 4 | 8 |
| EntityAIAvoidEntity.java | 1 | 1 | 0 | 0 | 0 |
| EntityAICreeperSwell.java | 1 | 1 | 0 | 0 | 0 |
| EntityAIDefendVillage.java | 1 | 1 | 0 | 0 | 0 |
| EntityAIFleeSun.java | 1 | 1 | 0 | 0 | 0 |
| EntityAIHurtByTarget.java | 1 | 1 | 0 | 0 | 0 |
| EntityAIMoveIndoors.java | 1 | 1 | 0 | 0 | 0 |
| EntityAIMoveThroughVillage.java | 1 | 1 | 0 | 0 | 0 |
| EntityAIMoveTowardsRestriction.java | 1 | 1 | 0 | 0 | 0 |
| EntityAIMoveTowardsTarget.java | 1 | 1 | 0 | 0 | 0 |
| EntityAINearestAttackableTarget.java | 1 | 1 | 0 | 0 | 0 |
| EntityAIOwnerHurtByTarget.java | 1 | 1 | 0 | 0 | 0 |
| EntityAIOwnerHurtTarget.java | 1 | 1 | 0 | 0 | 0 |
| EntityAIPanic.java | 1 | 1 | 0 | 0 | 0 |
| EntityAIPlay.java | 1 | 1 | 0 | 0 | 0 |
| EntityAIRunAroundLikeCrazy.java | 1 | 1 | 0 | 0 | 0 |
| EntityAIWander.java | 1 | 1 | 0 | 0 | 0 |
| EntityAIArrowAttack.java | 3 | 1 | 1 | 0 | 0 |
| EntityAIAttackOnCollide.java | 3 | 1 | 1 | 0 | 0 |
| EntityAIFollowGolem.java | 3 | 1 | 1 | 0 | 0 |
| EntityAIFollowOwner.java | 3 | 1 | 1 | 0 | 0 |
| EntityAILookAtVillager.java | 3 | 1 | 1 | 0 | 0 |
| EntityAILookIdle.java | 3 | 1 | 1 | 0 | 0 |
| EntityAIMate.java | 3 | 1 | 1 | 0 | 0 |
| EntityAIOcelotAttack.java | 3 | 1 | 1 | 0 | 0 |
| EntityAITempt.java | 3 | 1 | 1 | 0 | 0 |
| EntityAIVillagerMate.java | 3 | 1 | 1 | 0 | 0 |
| EntityAIWatchClosest2.java | 3 | 1 | 1 | 0 | 0 |
| EntityAILeapAtTarget.java | 5 | 1 | 0 | 1 | 0 |
| EntityAIOcelotSit.java | 5 | 1 | 0 | 1 | 0 |
| EntityAISit.java | 5 | 1 | 0 | 1 | 0 |
| EntityAITradePlayer.java | 5 | 1 | 0 | 1 | 0 |
| EntityAIControlledByPlayer.java | 7 | 1 | 1 | 1 | 0 |
| EntityAIEatGrass.java | 7 | 1 | 1 | 1 | 0 |
| EntityAIBeg.java | 2 | 0 | 1 | 0 | 0 |
| EntityAIWatchClosest.java | 2 | 0 | 1 | 0 | 0 |
| EntityAISwimming.java | 4 | 0 | 0 | 1 | 0 |
| EntityAIAvoidEntitySelector.java | その他 | 0 | 0 | 0 | 0 |
| EntityAIBase.java | その他 | 0 | 0 | 0 | 0 |
| EntityAIBreakDoor.java | その他 | 0 | 0 | 0 | 0 |
| EntityAIDoorInteract.java | その他 | 0 | 0 | 0 | 0 |
| EntityAIFollowParent.java | その他 | 0 | 0 | 0 | 0 |
| EntityAILookAtTradePlayer.java | その他 | 0 | 0 | 0 | 0 |
| EntityAINearestAttackableTargetSelector.java | その他 | 0 | 0 | 0 | 0 |
| EntityAINearestAttackableTargetSorter.java | その他 | 0 | 0 | 0 | 0 |
| EntityAIOpenDoor.java | その他 | 0 | 0 | 0 | 0 |
| EntityAIRestrictOpenDoor.java | その他 | 0 | 0 | 0 | 0 |
| EntityAIRestrictSun.java | その他 | 0 | 0 | 0 | 0 |
| EntityAITarget.java | その他 | 0 | 0 | 0 | 0 |
| EntityAITargetNonTamed.java | その他 | 0 | 0 | 0 | 0 |
| EntityAITaskEntry.java | その他 | 0 | 0 | 0 | 0 |
| EntityAITasks.java | その他 | 0 | 0 | 0 | 0 |