Package net.minecraft.world.entity.ai
Class Brain<E extends LivingEntity>
java.lang.Object
net.minecraft.world.entity.ai.Brain<E>
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) static final classstatic final classBrain.Provider<E extends LivingEntity> -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final Map<Activity, Set<MemoryModuleType<?>>> private final Map<Activity, Set<com.mojang.datafixers.util.Pair<MemoryModuleType<?>, MemoryStatus>>> private Activityprivate long(package private) static final org.slf4j.Loggerprivate final Map<MemoryModuleType<?>, Optional<? extends ExpirableValue<?>>> private Scheduleprivate static final int -
Constructor Summary
ConstructorsConstructorDescriptionBrain(Collection<? extends MemoryModuleType<?>> memoryModuleTypes, Collection<? extends SensorType<? extends Sensor<? super E>>> sensorTypes, com.google.common.collect.ImmutableList<Brain.MemoryValue<?>> memoryValues, Supplier<com.mojang.serialization.Codec<Brain<E>>> codec) -
Method Summary
Modifier and TypeMethodDescriptionprivate booleanactivityRequirementsAreMet(Activity activity) voidaddActivity(Activity activity, int priorityStart, com.google.common.collect.ImmutableList<? extends BehaviorControl<? super E>> tasks) voidaddActivity(Activity activity, com.google.common.collect.ImmutableList<? extends com.mojang.datafixers.util.Pair<Integer, ? extends BehaviorControl<? super E>>> tasks) voidaddActivityAndRemoveMemoriesWhenStopped(Activity activity, com.google.common.collect.ImmutableList<? extends com.mojang.datafixers.util.Pair<Integer, ? extends BehaviorControl<? super E>>> tasks, Set<com.mojang.datafixers.util.Pair<MemoryModuleType<?>, MemoryStatus>> memorieStatuses, Set<MemoryModuleType<?>> memoryTypes) voidaddActivityAndRemoveMemoryWhenStopped(Activity activity, int priorityStart, com.google.common.collect.ImmutableList<? extends BehaviorControl<? super E>> tasks, MemoryModuleType<?> memoryType) voidaddActivityWithConditions(Activity activity, com.google.common.collect.ImmutableList<? extends com.mojang.datafixers.util.Pair<Integer, ? extends BehaviorControl<? super E>>> tasks, Set<com.mojang.datafixers.util.Pair<MemoryModuleType<?>, MemoryStatus>> memoryStatuses) booleancheckMemory(MemoryModuleType<?> memoryType, MemoryStatus memoryStatus) voidstatic <E extends LivingEntity>
com.mojang.serialization.Codec<Brain<E>> codec(Collection<? extends MemoryModuleType<?>> memoryTypes, Collection<? extends SensorType<? extends Sensor<? super E>>> sensorTypes) (package private) com.google.common.collect.ImmutableList<? extends com.mojang.datafixers.util.Pair<Integer, ? extends BehaviorControl<? super E>>> createPriorityPairs(int priorityStart, com.google.common.collect.ImmutableList<? extends BehaviorControl<? super E>> tasks) private voideraseMemoriesForOtherActivitesThan(Activity p_activity) <U> voideraseMemory(MemoryModuleType<U> type) private voidDeprecated.Map<MemoryModuleType<?>, Optional<? extends ExpirableValue<?>>> Deprecated.<U> Optional<U> getMemory(MemoryModuleType<U> type) <U> Optional<U> getMemoryInternal(MemoryModuleType<U> type) List<BehaviorControl<? super E>> Deprecated.<U> longgetTimeUntilExpiry(MemoryModuleType<U> memoryType) booleanhasMemoryValue(MemoryModuleType<?> type) booleanprivate booleanisEmptyCollection(Object collection) <U> booleanisMemoryValue(MemoryModuleType<U> memoryType, U memory) (package private) Stream<Brain.MemoryValue<?>> memories()static <E extends LivingEntity>
Brain.Provider<E> provider(Collection<? extends MemoryModuleType<?>> memoryTypes, Collection<? extends SensorType<? extends Sensor<? super E>>> sensorTypes) void<T> com.mojang.serialization.DataResult<T> serializeStart(com.mojang.serialization.DynamicOps<T> ops) private voidsetActiveActivity(Activity activity) voidsetActiveActivityIfPossible(Activity activity) voidsetActiveActivityToFirstValid(List<Activity> activities) voidsetCoreActivities(Set<Activity> newActivities) voidsetDefaultActivity(Activity newFallbackActivity) <U> voidsetMemory(MemoryModuleType<U> memoryType, Optional<? extends U> memory) <U> voidsetMemory(MemoryModuleType<U> memoryType, U memory) (package private) <U> voidsetMemoryInternal(MemoryModuleType<U> memoryType, Optional<? extends ExpirableValue<?>> memory) <U> voidsetMemoryWithExpiry(MemoryModuleType<U> memoryType, U memory, long timeToLive) voidsetSchedule(Schedule newSchedule) private voidstartEachNonRunningBehavior(ServerLevel level, E entity) voidstopAll(ServerLevel level, E owner) voidtick(ServerLevel level, E entity) private voidtickEachRunningBehavior(ServerLevel level, E entity) private voidtickSensors(ServerLevel level, E brainHolder) voidupdateActivityFromSchedule(long dayTime, long gameTime) void
-
Field Details
-
LOGGER
static final org.slf4j.Logger LOGGER -
codec
-
SCHEDULE_UPDATE_DELAY
private static final int SCHEDULE_UPDATE_DELAY- See Also:
-
memories
-
sensors
private final Map<SensorType<? extends Sensor<? super E extends LivingEntity>>,Sensor<? super E extends LivingEntity>> sensors -
availableBehaviorsByPriority
private final Map<Integer,Map<Activity, availableBehaviorsByPrioritySet<BehaviorControl<? super E extends LivingEntity>>>> -
schedule
-
activityRequirements
private final Map<Activity,Set<com.mojang.datafixers.util.Pair<MemoryModuleType<?>, activityRequirementsMemoryStatus>>> -
activityMemoriesToEraseWhenStopped
-
coreActivities
-
activeActivities
-
defaultActivity
-
lastScheduleUpdate
private long lastScheduleUpdate
-
-
Constructor Details
-
Brain
public Brain(Collection<? extends MemoryModuleType<?>> memoryModuleTypes, Collection<? extends SensorType<? extends Sensor<? super E>>> sensorTypes, com.google.common.collect.ImmutableList<Brain.MemoryValue<?>> memoryValues, Supplier<com.mojang.serialization.Codec<Brain<E>>> codec)
-
-
Method Details
-
provider
public static <E extends LivingEntity> Brain.Provider<E> provider(Collection<? extends MemoryModuleType<?>> memoryTypes, Collection<? extends SensorType<? extends Sensor<? super E>>> sensorTypes) -
codec
public static <E extends LivingEntity> com.mojang.serialization.Codec<Brain<E>> codec(Collection<? extends MemoryModuleType<?>> memoryTypes, Collection<? extends SensorType<? extends Sensor<? super E>>> sensorTypes) -
serializeStart
public <T> com.mojang.serialization.DataResult<T> serializeStart(com.mojang.serialization.DynamicOps<T> ops) -
memories
Stream<Brain.MemoryValue<?>> memories() -
hasMemoryValue
-
clearMemories
public void clearMemories() -
eraseMemory
-
setMemory
-
setMemoryWithExpiry
-
setMemory
-
setMemoryInternal
<U> void setMemoryInternal(MemoryModuleType<U> memoryType, Optional<? extends ExpirableValue<?>> memory) -
getMemory
-
getMemoryInternal
-
getTimeUntilExpiry
-
getMemories
Deprecated. -
isMemoryValue
-
checkMemory
-
getSchedule
-
setSchedule
-
setCoreActivities
-
getActiveActivities
Deprecated. -
getRunningBehaviors
Deprecated. -
useDefaultActivity
public void useDefaultActivity() -
getActiveNonCoreActivity
-
setActiveActivityIfPossible
-
setActiveActivity
-
eraseMemoriesForOtherActivitesThan
-
updateActivityFromSchedule
public void updateActivityFromSchedule(long dayTime, long gameTime) -
setActiveActivityToFirstValid
-
setDefaultActivity
-
addActivity
public void addActivity(Activity activity, int priorityStart, com.google.common.collect.ImmutableList<? extends BehaviorControl<? super E>> tasks) -
addActivityAndRemoveMemoryWhenStopped
public void addActivityAndRemoveMemoryWhenStopped(Activity activity, int priorityStart, com.google.common.collect.ImmutableList<? extends BehaviorControl<? super E>> tasks, MemoryModuleType<?> memoryType) -
addActivity
public void addActivity(Activity activity, com.google.common.collect.ImmutableList<? extends com.mojang.datafixers.util.Pair<Integer, ? extends BehaviorControl<? super E>>> tasks) -
addActivityWithConditions
public void addActivityWithConditions(Activity activity, com.google.common.collect.ImmutableList<? extends com.mojang.datafixers.util.Pair<Integer, ? extends BehaviorControl<? super E>>> tasks, Set<com.mojang.datafixers.util.Pair<MemoryModuleType<?>, MemoryStatus>> memoryStatuses) -
addActivityAndRemoveMemoriesWhenStopped
public void addActivityAndRemoveMemoriesWhenStopped(Activity activity, com.google.common.collect.ImmutableList<? extends com.mojang.datafixers.util.Pair<Integer, ? extends BehaviorControl<? super E>>> tasks, Set<com.mojang.datafixers.util.Pair<MemoryModuleType<?>, MemoryStatus>> memorieStatuses, Set<MemoryModuleType<?>> memoryTypes) -
removeAllBehaviors
public void removeAllBehaviors() -
isActive
-
copyWithoutBehaviors
-
tick
-
tickSensors
-
forgetOutdatedMemories
private void forgetOutdatedMemories() -
stopAll
-
startEachNonRunningBehavior
-
tickEachRunningBehavior
-
activityRequirementsAreMet
-
isEmptyCollection
-
createPriorityPairs
com.google.common.collect.ImmutableList<? extends com.mojang.datafixers.util.Pair<Integer,? extends BehaviorControl<? super E>>> createPriorityPairs(int priorityStart, com.google.common.collect.ImmutableList<? extends BehaviorControl<? super E>> tasks)
-