Package net.minecraft.entity.ai.goal
Class GoalSelector
java.lang.Object
net.minecraft.entity.ai.goal.GoalSelector
public class GoalSelector extends Object
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 official awyintermediary net/minecraft/class_1355named net/minecraft/entity/ai/goal/GoalSelector
-
Field Summary
Fields Modifier and Type Field Description private EnumSet<Goal.Control>disabledControlsprivate Set<PrioritizedGoal>goalsprivate Map<Goal.Control,PrioritizedGoal>goalsByControlprivate static LoggerLOGGERprivate Supplier<Profiler>profilerprivate static PrioritizedGoalREPLACEABLE_GOALprivate inttimeInterval -
Constructor Summary
Constructors Constructor Description GoalSelector(Supplier<Profiler> profiler) -
Method Summary
Modifier and Type Method Description voidadd(int priority, Goal goal)Adds a goal with a certain priority.voiddisableControl(Goal.Control control)voidenableControl(Goal.Control control)Stream<PrioritizedGoal>getRunningGoals()voidremove(Goal goal)voidsetControlEnabled(Goal.Control control, boolean enabled)voidtick()
-
Field Details
-
LOGGER
- Mappings:
Namespace Name Mixin selector official aLawy;a:Lorg/apache/logging/log4j/Logger;intermediary field_6466Lnet/minecraft/class_1355;field_6466:Lorg/apache/logging/log4j/Logger;named LOGGERLnet/minecraft/entity/ai/goal/GoalSelector;LOGGER:Lorg/apache/logging/log4j/Logger;
-
REPLACEABLE_GOAL
- Mappings:
Namespace Name Mixin selector official bLawy;b:Layn;intermediary field_18410Lnet/minecraft/class_1355;field_18410:Lnet/minecraft/class_4135;named REPLACEABLE_GOALLnet/minecraft/entity/ai/goal/GoalSelector;REPLACEABLE_GOAL:Lnet/minecraft/entity/ai/goal/PrioritizedGoal;
-
goalsByControl
- Mappings:
Namespace Name Mixin selector official cLawy;c:Ljava/util/Map;intermediary field_18411Lnet/minecraft/class_1355;field_18411:Ljava/util/Map;named goalsByControlLnet/minecraft/entity/ai/goal/GoalSelector;goalsByControl:Ljava/util/Map;
-
goals
- Mappings:
Namespace Name Mixin selector official dLawy;d:Ljava/util/Set;intermediary field_6461Lnet/minecraft/class_1355;field_6461:Ljava/util/Set;named goalsLnet/minecraft/entity/ai/goal/GoalSelector;goals:Ljava/util/Set;
-
profiler
- Mappings:
Namespace Name Mixin selector official eLawy;e:Ljava/util/function/Supplier;intermediary field_6463Lnet/minecraft/class_1355;field_6463:Ljava/util/function/Supplier;named profilerLnet/minecraft/entity/ai/goal/GoalSelector;profiler:Ljava/util/function/Supplier;
-
disabledControls
- Mappings:
Namespace Name Mixin selector official fLawy;f:Ljava/util/EnumSet;intermediary field_6462Lnet/minecraft/class_1355;field_6462:Ljava/util/EnumSet;named disabledControlsLnet/minecraft/entity/ai/goal/GoalSelector;disabledControls:Ljava/util/EnumSet;
-
timeInterval
private int timeInterval- Mappings:
Namespace Name Mixin selector official gLawy;g:Iintermediary field_6464Lnet/minecraft/class_1355;field_6464:Inamed timeIntervalLnet/minecraft/entity/ai/goal/GoalSelector;timeInterval:I
-
-
Constructor Details
-
GoalSelector
- Mappings:
Namespace Name Mixin selector official <init>Lawy;<init>(Ljava/util/function/Supplier;)Vintermediary <init>Lnet/minecraft/class_1355;<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 official aLawy;a(ILawx;)Vintermediary method_6277Lnet/minecraft/class_1355;method_6277(ILnet/minecraft/class_1352;)Vnamed addLnet/minecraft/entity/ai/goal/GoalSelector;add(ILnet/minecraft/entity/ai/goal/Goal;)V
-
remove
- Mappings:
Namespace Name Mixin selector official aLawy;a(Lawx;)Vintermediary method_6280Lnet/minecraft/class_1355;method_6280(Lnet/minecraft/class_1352;)Vnamed removeLnet/minecraft/entity/ai/goal/GoalSelector;remove(Lnet/minecraft/entity/ai/goal/Goal;)V
-
tick
public void tick()- Mappings:
Namespace Name Mixin selector official bLawy;b()Vintermediary method_6275Lnet/minecraft/class_1355;method_6275()Vnamed tickLnet/minecraft/entity/ai/goal/GoalSelector;tick()V
-
getRunningGoals
- Mappings:
Namespace Name Mixin selector official dLawy;d()Ljava/util/stream/Stream;intermediary method_19048Lnet/minecraft/class_1355;method_19048()Ljava/util/stream/Stream;named getRunningGoalsLnet/minecraft/entity/ai/goal/GoalSelector;getRunningGoals()Ljava/util/stream/Stream;
-
disableControl
- Mappings:
Namespace Name Mixin selector official aLawy;a(Lawx$a;)Vintermediary method_6274Lnet/minecraft/class_1355;method_6274(Lnet/minecraft/class_1352$class_4134;)Vnamed disableControlLnet/minecraft/entity/ai/goal/GoalSelector;disableControl(Lnet/minecraft/entity/ai/goal/Goal$Control;)V
-
enableControl
- Mappings:
Namespace Name Mixin selector official bLawy;b(Lawx$a;)Vintermediary method_6273Lnet/minecraft/class_1355;method_6273(Lnet/minecraft/class_1352$class_4134;)Vnamed enableControlLnet/minecraft/entity/ai/goal/GoalSelector;enableControl(Lnet/minecraft/entity/ai/goal/Goal$Control;)V
-
setControlEnabled
- Mappings:
Namespace Name Mixin selector official aLawy;a(Lawx$a;Z)Vintermediary method_6276Lnet/minecraft/class_1355;method_6276(Lnet/minecraft/class_1352$class_4134;Z)Vnamed setControlEnabledLnet/minecraft/entity/ai/goal/GoalSelector;setControlEnabled(Lnet/minecraft/entity/ai/goal/Goal$Control;Z)V
-