API reference / @jsprismarine/entity-brains / Brain
Class: Brain
Defined in: brain.ts:120
One mob's memories, sensors and activity table. Java's Brain.
A tick runs every sensor, ages every memory slot, starts the stopped behaviors of the active activities in ascending priority order, then ticks the running ones. The brain never picks an activity itself; the mob's updateActivity does that, and the brain only reports whether an activity's conditions hold.
Constructors
Constructor
new Brain(
definition):Brain
Defined in: brain.ts:135
Parameters
definition
Returns
Brain
Accessors
registeredMemories
Get Signature
get registeredMemories(): readonly
MemoryModuleType<unknown>[]
Defined in: brain.ts:283
Every registered memory module type.
Returns
readonly MemoryModuleType<unknown>[]
Methods
checkMemory()
checkMemory(
memory,status):boolean
Defined in: brain.ts:212
Java's Brain.checkMemory. An unregistered memory fails every status, including registered, which is what makes a brain ignore a behavior whose memories it never declared.
Parameters
memory
MemoryModuleType<unknown>
status
Returns
boolean
clearMemories()
clearMemories():
void
Defined in: brain.ts:276
Empties every registered memory without unregistering any.
Returns
void
delaySensorStarts()
delaySensorStarts(
randomInt):void
Defined in: brain.ts:156
Randomizes each sensor's first scan tick, as Java's Sensor::randomlyDelayStart does.
Parameters
randomInt
(bound) => number
Returns
void
eraseMemory()
eraseMemory(
memory):void
Defined in: brain.ts:271
Empties one memory slot, leaving it registered.
Parameters
memory
MemoryModuleType<unknown>
Returns
void
getActiveActivities()
getActiveActivities(): readonly
Activity[]
Defined in: brain.ts:308
Every activity in force this tick, core ones included.
Returns
readonly Activity[]
getActiveNonCoreActivity()
getActiveNonCoreActivity():
Activity|undefined
Defined in: brain.ts:313
The one non-core activity in force, which is what a mob's sound and pose logic reads.
Returns
Activity | undefined
getMemory()
getMemory<
Value>(memory):Value|undefined
Defined in: brain.ts:228
The memory's value, or undefined when empty or unregistered.
Type Parameters
Value
Value
Parameters
memory
MemoryModuleType<Value>
Returns
Value | undefined
getRunningBehaviors()
getRunningBehaviors(): readonly
BehaviorControl[]
Defined in: brain.ts:323
Every running behavior, in ascending priority order. A debug read-out and the tests read this.
Returns
readonly BehaviorControl[]
getTimeUntilExpiry()
getTimeUntilExpiry(
memory):number
Defined in: brain.ts:238
Ticks remaining before the memory expires, or MemorySlot.NEVER_EXPIRE.
Parameters
memory
MemoryModuleType<unknown>
Returns
number
hasMemoryValue()
hasMemoryValue(
memory):boolean
Defined in: brain.ts:204
Whether the memory is registered and currently holds a value.
Parameters
memory
MemoryModuleType<unknown>
Returns
boolean
isActive()
isActive(
activity):boolean
Defined in: brain.ts:303
Whether the activity is in force this tick, counting the core activities.
Parameters
activity
Returns
boolean
isMemoryValue()
isMemoryValue<
Value>(memory,value):boolean
Defined in: brain.ts:233
Whether the memory holds exactly this value, Java's Brain.isMemoryValue.
Type Parameters
Value
Value
Parameters
memory
MemoryModuleType<Value>
value
Value
Returns
boolean
setActiveActivityIfPossible()
setActiveActivityIfPossible(
activity):void
Defined in: brain.ts:343
Switches to the activity when its memory conditions hold, and to the default when not.
Parameters
activity
Returns
void
setActiveActivityToFirstValid()
setActiveActivityToFirstValid(
activities):void
Defined in: brain.ts:356
Switches to the first activity in the list whose conditions hold, and leaves the current one alone when none do. This is what every mob's updateActivity calls, and the list order is the mob's priority order between activities.
Parameters
activities
readonly Activity[]
Returns
void
setCoreActivities()
setCoreActivities(
activities):void
Defined in: brain.ts:293
Replaces the activities that stay active alongside whichever one is in force.
Parameters
activities
readonly Activity[]
Returns
void
setDefaultActivity()
setDefaultActivity(
activity):void
Defined in: brain.ts:298
Replaces the activity the brain falls back to when no other one's conditions hold.
Parameters
activity
Returns
void
setMemory()
setMemory<
Value>(memory,value):void
Defined in: brain.ts:249
Writes a memory. undefined erases it, and so does an empty array: Java's isEmptyCollection check means a sensor that finds nothing clears the memory rather than storing an empty list, which is what lets value_present mean "found something".
Writing an unregistered memory is silently dropped, as Java's null-slot check is.
Type Parameters
Value
Value
Parameters
memory
MemoryModuleType<Value>
value
Value | undefined
Returns
void
setMemoryWithExpiry()
setMemoryWithExpiry<
Value>(memory,value,timeToLive):void
Defined in: brain.ts:254
Writes a memory that erases itself after timeToLive brain ticks.
Type Parameters
Value
Value
Parameters
memory
MemoryModuleType<Value>
value
Value | undefined
timeToLive
number
Returns
void
setSchedule()
setSchedule(
schedule):void
Defined in: brain.ts:288
Replaces the schedule Brain.updateActivityFromSchedule reads. Only the villager has one.
Parameters
schedule
Schedule | undefined
Returns
void
stopAll()
stopAll(
context):void
Defined in: brain.ts:427
Stops every running behavior, as Java does when a villager's brain is rebuilt.
Parameters
context
Returns
void
tick()
tick(
context):void
Defined in: brain.ts:419
One brain tick, in Java's order: age the memories, run the sensors, start every stopped behavior whose activity is active, then tick every running one.
Starting before ticking is observable: a behavior started this tick also ticks this tick.
Parameters
context
Returns
void
updateActivityFromSchedule()
updateActivityFromSchedule(
gameTime,dayTime):void
Defined in: brain.ts:402
Reads the schedule and switches activity, at most once every twenty ticks.
The throttle is Java's and it is observable: a villager crossing a keyframe can take up to a second to notice.
Parameters
gameTime
number
dayTime
number
Returns
void
useDefaultActivity()
useDefaultActivity():
void
Defined in: brain.ts:338
Switches to the default activity without checking any conditions.
Returns
void