Class Brain<E extends LivingEntity>
java.lang.Object
net.minecraft.world.entity.ai.Brain<E>
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interfaceBrain.ActivitySupplier<E extends LivingEntity>static final recordstatic final classBrain.Provider<E extends LivingEntity>static interface -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final Map<Activity, Set<MemoryModuleType<?>>> private final Map<Activity, Set<com.mojang.datafixers.util.Pair<MemoryModuleType<?>, MemoryStatus>>> private Activityprivate longprivate final Map<MemoryModuleType<?>, MemorySlot<?>> private @Nullable EnvironmentAttribute<Activity> private static final int -
Constructor Summary
ConstructorsModifierConstructorDescriptionBrain()protectedBrain(Collection<? extends MemoryModuleType<?>> memoryTypes, Collection<? extends SensorType<? extends Sensor<? super E>>> sensorTypes, List<ActivityData<E>> activities, MemoryMap memories, RandomSource randomSource) -
Method Summary
Modifier and TypeMethodDescriptionprivate booleanactivityRequirementsAreMet(Activity activity) voidaddActivity(Activity activity, ImmutableList<? extends com.mojang.datafixers.util.Pair<Integer, ? extends BehaviorControl<? super E>>> behaviorPriorityPairs, Set<com.mojang.datafixers.util.Pair<MemoryModuleType<?>, MemoryStatus>> conditions, Set<MemoryModuleType<?>> memoriesToEraseWhenStopped) private static <U> voidcallVisitor(Brain.Visitor visitor, MemoryModuleType<U> memoryModuleType, MemorySlot<?> slot) booleancheckMemory(MemoryModuleType<?> type, MemoryStatus status) voidprivate voideraseMemoriesForOtherActivitesThan(Activity activity) <U> voideraseMemory(MemoryModuleType<U> type) voidforEach(Brain.Visitor visitor) private voidDeprecated.<U> Optional<U> getMemory(MemoryModuleType<U> type) <U> @Nullable Optional<U> getMemoryInternal(MemoryModuleType<U> type) private <T> MemorySlot<T> getMemorySlot(MemoryModuleType<T> memoryType) private <T> @Nullable MemorySlot<T> getMemorySlotIfPresent(MemoryModuleType<T> memoryType) List<BehaviorControl<? super E>> Deprecated.<U> longgetTimeUntilExpiry(MemoryModuleType<U> type) booleanhasMemoryValue(MemoryModuleType<?> type) booleanbooleanprivate static booleanisEmptyCollection(Object object) <U> booleanisMemoryValue(MemoryModuleType<U> memoryType, U value) pack()static <E extends LivingEntity>
Brain.Provider<E> provider(Collection<? extends MemoryModuleType<?>> memoryTypes, Collection<? extends SensorType<? extends Sensor<? super E>>> sensorTypes, Brain.ActivitySupplier<E> activities) Deprecated.static <E extends LivingEntity>
Brain.Provider<E> provider(Collection<? extends SensorType<? extends Sensor<? super E>>> sensorTypes) static <E extends LivingEntity>
Brain.Provider<E> provider(Collection<? extends SensorType<? extends Sensor<? super E>>> sensorTypes, Brain.ActivitySupplier<E> activities) private voidregisterMemory(MemoryModuleType<?> memoryType) voidprivate voidsetActiveActivity(Activity activity) voidsetActiveActivityIfPossible(Activity activity) voidsetActiveActivityToFirstValid(List<Activity> activities) voidsetCoreActivities(Set<Activity> activities) voidsetDefaultActivity(Activity activity) <U> voidsetMemory(MemoryModuleType<U> type, @Nullable U value) <U> voidsetMemory(MemoryModuleType<U> type, Optional<? extends U> optionalValue) private <U> voidsetMemoryInternal(MemoryMap.Value<U> value) private <U> voidsetMemoryInternal(MemoryModuleType<U> type, @Nullable U value) private <U> voidsetMemoryInternal(MemoryModuleType<U> type, U value, long tileToLive) <U> voidsetMemoryWithExpiry(MemoryModuleType<U> type, U value, long timeToLive) voidsetSchedule(EnvironmentAttribute<Activity> schedule) private voidstartEachNonRunningBehavior(ServerLevel level, E body) voidstopAll(ServerLevel level, E body) voidtick(ServerLevel level, E body) private voidtickEachRunningBehavior(ServerLevel level, E body) private voidtickSensors(ServerLevel level, E body) voidupdateActivityFromSchedule(EnvironmentAttributeSystem environmentAttributes, long gameTime, Vec3 pos) void
-
Field Details
-
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, Set<BehaviorControl<? super E extends LivingEntity>>>> availableBehaviorsByPriority -
schedule
-
activityRequirements
private final Map<Activity, Set<com.mojang.datafixers.util.Pair<MemoryModuleType<?>, MemoryStatus>>> activityRequirements -
activityMemoriesToEraseWhenStopped
-
coreActivities
-
activeActivities
-
defaultActivity
-
lastScheduleUpdate
private long lastScheduleUpdate
-
-
Constructor Details
-
Brain
protected Brain(Collection<? extends MemoryModuleType<?>> memoryTypes, Collection<? extends SensorType<? extends Sensor<? super E>>> sensorTypes, List<ActivityData<E>> activities, MemoryMap memories, RandomSource randomSource) -
Brain
public Brain()
-
-
Method Details
-
provider
public static <E extends LivingEntity> Brain.Provider<E> provider(Collection<? extends SensorType<? extends Sensor<? super E>>> sensorTypes) -
provider
public static <E extends LivingEntity> Brain.Provider<E> provider(Collection<? extends SensorType<? extends Sensor<? super E>>> sensorTypes, Brain.ActivitySupplier<E> activities) -
provider
@Deprecated public static <E extends LivingEntity> Brain.Provider<E> provider(Collection<? extends MemoryModuleType<?>> memoryTypes, Collection<? extends SensorType<? extends Sensor<? super E>>> sensorTypes, Brain.ActivitySupplier<E> activities) Deprecated. -
registerMemory
-
pack
-
getMemorySlotIfPresent
-
getMemorySlot
-
hasMemoryValue
-
clearMemories
public void clearMemories() -
eraseMemory
-
setMemory
-
setMemoryWithExpiry
-
setMemory
-
setMemoryInternal
-
setMemoryInternal
-
setMemoryInternal
-
getMemory
-
getMemoryInternal
-
getTimeUntilExpiry
-
forEach
-
callVisitor
private static <U> void callVisitor(Brain.Visitor visitor, MemoryModuleType<U> memoryModuleType, MemorySlot<?> slot) -
isMemoryValue
-
checkMemory
-
setSchedule
-
setCoreActivities
-
getActiveActivities
Deprecated. -
getRunningBehaviors
Deprecated. -
useDefaultActivity
public void useDefaultActivity() -
getActiveNonCoreActivity
-
setActiveActivityIfPossible
-
setActiveActivity
-
eraseMemoriesForOtherActivitesThan
-
updateActivityFromSchedule
public void updateActivityFromSchedule(EnvironmentAttributeSystem environmentAttributes, long gameTime, Vec3 pos) -
setActiveActivityToFirstValid
-
setDefaultActivity
-
addActivity
public void addActivity(Activity activity, ImmutableList<? extends com.mojang.datafixers.util.Pair<Integer, ? extends BehaviorControl<? super E>>> behaviorPriorityPairs, Set<com.mojang.datafixers.util.Pair<MemoryModuleType<?>, MemoryStatus>> conditions, Set<MemoryModuleType<?>> memoriesToEraseWhenStopped) -
removeAllBehaviors
public void removeAllBehaviors() -
isActive
-
tick
-
tickSensors
-
forgetOutdatedMemories
private void forgetOutdatedMemories() -
stopAll
-
startEachNonRunningBehavior
-
tickEachRunningBehavior
-
activityRequirementsAreMet
-
isEmptyCollection
-
isBrainDead
public boolean isBrainDead()
-