Package net.minecraft.entity.ai.brain
Class Brain<E extends LivingEntity>
java.lang.Object
net.minecraft.entity.ai.brain.Brain<E>
public class Brain<E extends LivingEntity> extends Object
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static classBrain.MemoryEntry<U>static classBrain.Profile<E extends LivingEntity>A simple profile of a brain. -
Field Summary
Fields Modifier and Type Field Description private longactivityStartTimeprivate Supplier<com.mojang.serialization.Codec<Brain<E>>>codecSupplierprivate Set<Activity>coreActivitiesprivate ActivitydefaultActivityprivate Map<Activity,Set<MemoryModuleType<?>>>forgettingActivityMemoriesThe map from activities to the memories to forget after the activity is completed.private static LoggerLOGGERprivate Map<MemoryModuleType<?>,Optional<? extends Memory<?>>>memoriesprivate Set<Activity>possibleActivitiesprivate Map<Activity,Set<com.mojang.datafixers.util.Pair<MemoryModuleType<?>,MemoryModuleState>>>requiredActivityMemoriesprivate Schedulescheduleprivate Map<SensorType<? extends Sensor<? super E>>,Sensor<? super E>>sensorsprivate Map<Integer,Map<Activity,Set<Task<? super E>>>>tasks -
Constructor Summary
Constructors Constructor Description Brain(Collection<? extends MemoryModuleType<?>> memories, Collection<? extends SensorType<? extends Sensor<? super E>>> sensors, ImmutableList<Brain.MemoryEntry<?>> memoryEntries, Supplier<com.mojang.serialization.Codec<Brain<E>>> codecSupplier) -
Method Summary
Modifier and Type Method Description private booleancanDoActivity(Activity activity)Brain<E>copy()static <E extends LivingEntity>
com.mojang.serialization.Codec<Brain<E>>createBrainCodec(Collection<? extends MemoryModuleType<?>> memoryModules, Collection<? extends SensorType<? extends Sensor<? super E>>> sensors)static <E extends LivingEntity>
Brain.Profile<E>createProfile(Collection<? extends MemoryModuleType<?>> memoryModules, Collection<? extends SensorType<? extends Sensor<? super E>>> sensors)voiddoExclusively(Activity activity)<T> com.mojang.serialization.DataResult<T>encode(com.mojang.serialization.DynamicOps<T> ops)<U> voidforget(MemoryModuleType<U> type)private voidforgetIrrelevantMemories(Activity except)Optional<Activity>getFirstPossibleNonCoreActivity()<U> Optional<U>getOptionalMemory(MemoryModuleType<U> type)List<Task<? super E>>getRunningTasks()Deprecated.SchedulegetSchedule()booleanhasActivity(Activity activity)booleanhasMemoryModule(MemoryModuleType<?> type)(package private) ImmutableList<? extends com.mojang.datafixers.util.Pair<Integer,? extends Task<? super E>>>indexTaskList(int begin, ImmutableList<? extends Task<? super E>> tasks)private booleanisEmptyCollection(Object value)booleanisMemoryInState(MemoryModuleType<?> type, MemoryModuleState state)<U> booleanmethod_29519(MemoryModuleType<U> memoryModuleType, U u)voidrefreshActivities(long timeOfDay, long time)<U> voidremember(MemoryModuleType<U> type, Optional<? extends U> value)<U> voidremember(MemoryModuleType<U> type, U value)<U> voidremember(MemoryModuleType<U> type, U value, long startTime)voidresetPossibleActivities()voidresetPossibleActivities(List<Activity> list)private voidresetPossibleActivities(Activity except)voidsetCoreActivities(Set<Activity> coreActivities)voidsetDefaultActivity(Activity activity)private <U> voidsetMemory(MemoryModuleType<U> type, Optional<? extends Memory<?>> memory)voidsetSchedule(Schedule schedule)voidsetTaskList(Activity activity, int begin, ImmutableList<? extends Task<? super E>> list)voidsetTaskList(Activity activity, int begin, ImmutableList<? extends Task<? super E>> tasks, MemoryModuleType<?> memoryType)voidsetTaskList(Activity activity, ImmutableList<? extends com.mojang.datafixers.util.Pair<Integer,? extends Task<? super E>>> indexedTasks)voidsetTaskList(Activity activity, ImmutableList<? extends com.mojang.datafixers.util.Pair<Integer,? extends Task<? super E>>> indexedTasks, Set<com.mojang.datafixers.util.Pair<MemoryModuleType<?>,MemoryModuleState>> requiredMemories)voidsetTaskList(Activity activity, ImmutableList<? extends com.mojang.datafixers.util.Pair<Integer,? extends Task<? super E>>> indexedTasks, Set<com.mojang.datafixers.util.Pair<MemoryModuleType<?>,MemoryModuleState>> requiredMemories, Set<MemoryModuleType<?>> forgettingMemories)private voidstartTasks(ServerWorld world, E entity)voidstopAllTasks(ServerWorld world, E entity)private Stream<Brain.MemoryEntry<?>>streamMemories()voidtick(ServerWorld world, E entity)private voidtickMemories()private voidtickSensors(ServerWorld world, E entity)private voidupdateTasks(ServerWorld world, E entity)
-
Field Details
-
LOGGER
-
codecSupplier
-
memories
-
sensors
private final Map<SensorType<? extends Sensor<? super E extends LivingEntity>>,Sensor<? super E extends LivingEntity>> sensors -
tasks
-
schedule
-
requiredActivityMemories
private final Map<Activity,Set<com.mojang.datafixers.util.Pair<MemoryModuleType<?>,MemoryModuleState>>> requiredActivityMemories -
forgettingActivityMemories
The map from activities to the memories to forget after the activity is completed. -
coreActivities
-
possibleActivities
-
defaultActivity
-
activityStartTime
private long activityStartTime
-
-
Constructor Details
-
Brain
public Brain(Collection<? extends MemoryModuleType<?>> memories, Collection<? extends SensorType<? extends Sensor<? super E>>> sensors, ImmutableList<Brain.MemoryEntry<?>> memoryEntries, Supplier<com.mojang.serialization.Codec<Brain<E>>> codecSupplier)
-
-
Method Details
-
createProfile
public static <E extends LivingEntity> Brain.Profile<E> createProfile(Collection<? extends MemoryModuleType<?>> memoryModules, Collection<? extends SensorType<? extends Sensor<? super E>>> sensors) -
createBrainCodec
public static <E extends LivingEntity> com.mojang.serialization.Codec<Brain<E>> createBrainCodec(Collection<? extends MemoryModuleType<?>> memoryModules, Collection<? extends SensorType<? extends Sensor<? super E>>> sensors) -
encode
public <T> com.mojang.serialization.DataResult<T> encode(com.mojang.serialization.DynamicOps<T> ops) -
streamMemories
-
hasMemoryModule
-
forget
-
remember
-
remember
-
remember
-
setMemory
-
getOptionalMemory
-
method_29519
-
isMemoryInState
-
getSchedule
-
setSchedule
-
setCoreActivities
-
getRunningTasks
Deprecated. -
resetPossibleActivities
public void resetPossibleActivities() -
getFirstPossibleNonCoreActivity
-
doExclusively
-
resetPossibleActivities
-
forgetIrrelevantMemories
-
refreshActivities
public void refreshActivities(long timeOfDay, long time) -
resetPossibleActivities
-
setDefaultActivity
-
setTaskList
public void setTaskList(Activity activity, int begin, ImmutableList<? extends Task<? super E>> list) -
setTaskList
public void setTaskList(Activity activity, int begin, ImmutableList<? extends Task<? super E>> tasks, MemoryModuleType<?> memoryType) -
setTaskList
public void setTaskList(Activity activity, ImmutableList<? extends com.mojang.datafixers.util.Pair<Integer,? extends Task<? super E>>> indexedTasks) -
setTaskList
public void setTaskList(Activity activity, ImmutableList<? extends com.mojang.datafixers.util.Pair<Integer,? extends Task<? super E>>> indexedTasks, Set<com.mojang.datafixers.util.Pair<MemoryModuleType<?>,MemoryModuleState>> requiredMemories) -
setTaskList
public void setTaskList(Activity activity, ImmutableList<? extends com.mojang.datafixers.util.Pair<Integer,? extends Task<? super E>>> indexedTasks, Set<com.mojang.datafixers.util.Pair<MemoryModuleType<?>,MemoryModuleState>> requiredMemories, Set<MemoryModuleType<?>> forgettingMemories) -
hasActivity
-
copy
-
tick
-
tickSensors
-
tickMemories
private void tickMemories() -
stopAllTasks
-
startTasks
-
updateTasks
-
canDoActivity
-
isEmptyCollection
-
indexTaskList
ImmutableList<? extends com.mojang.datafixers.util.Pair<Integer,? extends Task<? super E>>> indexTaskList(int begin, ImmutableList<? extends Task<? super E>> tasks)- Parameters:
begin- The beginning of the index of tasks, exclusive
-