Package net.minecraft.entity.ai.goal
Class GoalSelector
java.lang.Object
net.minecraft.entity.ai.goal.GoalSelector
Manages a set of goals, which are competing for certain controls on the mob.
Multiple goals can run at the same time, so long as they are all using different controls.
A running goal will always be replaced with a goal with a lower priority, if
such a goal exists, it's competing for the same control and its
canStart() method returns true. (Note that some goals randomize
this method.)
If two goals have the same priority and are competing for the same control, then one goal cannot replace the other if it's running. The goal selector tries to run goals in the order they were added.
- Mappings:
Namespace Name intermediary net/minecraft/class_1355official bmunamed net/minecraft/entity/ai/goal/GoalSelector
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final EnumSet<Goal.Control>private intprivate final Set<PrioritizedGoal>private final Map<Goal.Control,PrioritizedGoal> private static final Loggerprivate static final PrioritizedGoalprivate int -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidAdds a goal with a certain priority.private static booleancanReplaceAll(PrioritizedGoal goal, Map<Goal.Control, PrioritizedGoal> goalsByControl) voidvoiddisableControl(Goal.Control control) voidenableControl(Goal.Control control) getGoals()voidvoidsetControlEnabled(Goal.Control control, boolean enabled) voidsetTimeInterval(int timeInterval) voidtick()voidtickGoals(boolean tickAll) private static booleanusesAny(PrioritizedGoal goal, EnumSet<Goal.Control> controls)
-
Field Details
-
LOGGER
- Mappings:
Namespace Name Mixin selector intermediary field_6466Lnet/minecraft/class_1355;field_6466:Lorg/slf4j/Logger;official aLbmu;a:Lorg/slf4j/Logger;named LOGGERLnet/minecraft/entity/ai/goal/GoalSelector;LOGGER:Lorg/slf4j/Logger;
-
REPLACEABLE_GOAL
- Mappings:
Namespace Name Mixin selector intermediary field_18410Lnet/minecraft/class_1355;field_18410:Lnet/minecraft/class_4135;official bLbmu;b:Lboh;named REPLACEABLE_GOALLnet/minecraft/entity/ai/goal/GoalSelector;REPLACEABLE_GOAL:Lnet/minecraft/entity/ai/goal/PrioritizedGoal;
-
goalsByControl
- Mappings:
Namespace Name Mixin selector intermediary field_18411Lnet/minecraft/class_1355;field_18411:Ljava/util/Map;official cLbmu;c:Ljava/util/Map;named goalsByControlLnet/minecraft/entity/ai/goal/GoalSelector;goalsByControl:Ljava/util/Map;
-
goals
- Mappings:
Namespace Name Mixin selector intermediary field_6461Lnet/minecraft/class_1355;field_6461:Ljava/util/Set;official dLbmu;d:Ljava/util/Set;named goalsLnet/minecraft/entity/ai/goal/GoalSelector;goals:Ljava/util/Set;
-
profiler
- Mappings:
Namespace Name Mixin selector intermediary field_6463Lnet/minecraft/class_1355;field_6463:Ljava/util/function/Supplier;official eLbmu;e:Ljava/util/function/Supplier;named profilerLnet/minecraft/entity/ai/goal/GoalSelector;profiler:Ljava/util/function/Supplier;
-
disabledControls
- Mappings:
Namespace Name Mixin selector intermediary field_6462Lnet/minecraft/class_1355;field_6462:Ljava/util/EnumSet;official fLbmu;f:Ljava/util/EnumSet;named disabledControlsLnet/minecraft/entity/ai/goal/GoalSelector;disabledControls:Ljava/util/EnumSet;
-
field_30212
private int field_30212- Mappings:
Namespace Name Mixin selector intermediary field_30212Lnet/minecraft/class_1355;field_30212:Iofficial gLbmu;g:Inamed field_30212Lnet/minecraft/entity/ai/goal/GoalSelector;field_30212:I
-
timeInterval
private int timeInterval- Mappings:
Namespace Name Mixin selector intermediary field_6464Lnet/minecraft/class_1355;field_6464:Iofficial hLbmu;h:Inamed timeIntervalLnet/minecraft/entity/ai/goal/GoalSelector;timeInterval:I
-
-
Constructor Details
-
GoalSelector
- Mappings:
Namespace Name Mixin selector intermediary <init>Lnet/minecraft/class_1355;<init>(Ljava/util/function/Supplier;)Vofficial <init>Lbmu;<init>(Ljava/util/function/Supplier;)Vnamed <init>Lnet/minecraft/entity/ai/goal/GoalSelector;<init>(Ljava/util/function/Supplier;)V
-
-
Method Details
-
add
Adds a goal with a certain priority. Goals with lower priorities will replace running goals with a higher priority.- Mappings:
Namespace Name Mixin selector intermediary method_6277Lnet/minecraft/class_1355;method_6277(ILnet/minecraft/class_1352;)Vofficial aLbmu;a(ILbmt;)Vnamed addLnet/minecraft/entity/ai/goal/GoalSelector;add(ILnet/minecraft/entity/ai/goal/Goal;)V
-
clear
- Mappings:
Namespace Name Mixin selector intermediary method_35113Lnet/minecraft/class_1355;method_35113(Ljava/util/function/Predicate;)Vofficial aLbmu;a(Ljava/util/function/Predicate;)Vnamed clearLnet/minecraft/entity/ai/goal/GoalSelector;clear(Ljava/util/function/Predicate;)V
-
remove
- Mappings:
Namespace Name Mixin selector intermediary method_6280Lnet/minecraft/class_1355;method_6280(Lnet/minecraft/class_1352;)Vofficial aLbmu;a(Lbmt;)Vnamed removeLnet/minecraft/entity/ai/goal/GoalSelector;remove(Lnet/minecraft/entity/ai/goal/Goal;)V
-
usesAny
- Mappings:
Namespace Name Mixin selector intermediary method_38063Lnet/minecraft/class_1355;method_38063(Lnet/minecraft/class_4135;Ljava/util/EnumSet;)Zofficial aLbmu;a(Lboh;Ljava/util/EnumSet;)Znamed usesAnyLnet/minecraft/entity/ai/goal/GoalSelector;usesAny(Lnet/minecraft/entity/ai/goal/PrioritizedGoal;Ljava/util/EnumSet;)Z
-
canReplaceAll
private static boolean canReplaceAll(PrioritizedGoal goal, Map<Goal.Control, PrioritizedGoal> goalsByControl) - Mappings:
Namespace Name Mixin selector intermediary method_38064Lnet/minecraft/class_1355;method_38064(Lnet/minecraft/class_4135;Ljava/util/Map;)Zofficial aLbmu;a(Lboh;Ljava/util/Map;)Znamed canReplaceAllLnet/minecraft/entity/ai/goal/GoalSelector;canReplaceAll(Lnet/minecraft/entity/ai/goal/PrioritizedGoal;Ljava/util/Map;)Z
-
tick
public void tick()- Mappings:
Namespace Name Mixin selector intermediary method_6275Lnet/minecraft/class_1355;method_6275()Vofficial aLbmu;a()Vnamed tickLnet/minecraft/entity/ai/goal/GoalSelector;tick()V
-
tickGoals
public void tickGoals(boolean tickAll) - Mappings:
Namespace Name Mixin selector intermediary method_38849Lnet/minecraft/class_1355;method_38849(Z)Vofficial aLbmu;a(Z)Vnamed tickGoalsLnet/minecraft/entity/ai/goal/GoalSelector;tickGoals(Z)V
-
getGoals
- Mappings:
Namespace Name Mixin selector intermediary method_35115Lnet/minecraft/class_1355;method_35115()Ljava/util/Set;official bLbmu;b()Ljava/util/Set;named getGoalsLnet/minecraft/entity/ai/goal/GoalSelector;getGoals()Ljava/util/Set;
-
getRunningGoals
- Mappings:
Namespace Name Mixin selector intermediary method_19048Lnet/minecraft/class_1355;method_19048()Ljava/util/stream/Stream;official cLbmu;c()Ljava/util/stream/Stream;named getRunningGoalsLnet/minecraft/entity/ai/goal/GoalSelector;getRunningGoals()Ljava/util/stream/Stream;
-
setTimeInterval
public void setTimeInterval(int timeInterval) - Mappings:
Namespace Name Mixin selector intermediary method_35114Lnet/minecraft/class_1355;method_35114(I)Vofficial aLbmu;a(I)Vnamed setTimeIntervalLnet/minecraft/entity/ai/goal/GoalSelector;setTimeInterval(I)V
-
disableControl
- Mappings:
Namespace Name Mixin selector intermediary method_6274Lnet/minecraft/class_1355;method_6274(Lnet/minecraft/class_1352$class_4134;)Vofficial aLbmu;a(Lbmt$a;)Vnamed disableControlLnet/minecraft/entity/ai/goal/GoalSelector;disableControl(Lnet/minecraft/entity/ai/goal/Goal$Control;)V
-
enableControl
- Mappings:
Namespace Name Mixin selector intermediary method_6273Lnet/minecraft/class_1355;method_6273(Lnet/minecraft/class_1352$class_4134;)Vofficial bLbmu;b(Lbmt$a;)Vnamed enableControlLnet/minecraft/entity/ai/goal/GoalSelector;enableControl(Lnet/minecraft/entity/ai/goal/Goal$Control;)V
-
setControlEnabled
- Mappings:
Namespace Name Mixin selector intermediary method_6276Lnet/minecraft/class_1355;method_6276(Lnet/minecraft/class_1352$class_4134;Z)Vofficial aLbmu;a(Lbmt$a;Z)Vnamed setControlEnabledLnet/minecraft/entity/ai/goal/GoalSelector;setControlEnabled(Lnet/minecraft/entity/ai/goal/Goal$Control;Z)V
-