Skip to content

Commit 413cf2e

Browse files
committed
added onAdd and onRemoved behavior methods
1 parent 5a4b36c commit 413cf2e

File tree

3 files changed

+9
-1
lines changed

3 files changed

+9
-1
lines changed

src/java/de/ntcomputer/minecraft/controllablemobs/api/ai/behaviors/AIBehavior.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,4 +35,10 @@ public final int getPriority(int lastBehaviorPriority) {
3535

3636
public abstract PathfinderGoal createPathfinderGoal(CraftControllableMob<? extends E> mob);
3737

38+
public void onAdd(CraftControllableMob<? extends E> mob) {
39+
}
40+
41+
public void onRemoved(CraftControllableMob<? extends E> mob) {
42+
}
43+
3844
}

src/java/de/ntcomputer/minecraft/controllablemobs/implementation/ai/AIController.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,7 @@ <B extends AIBehavior<? super E>> CraftAIPart<E,B> add(B behavior) {
154154
}
155155

156156
private void attach(CraftAIPart<E,?> part) {
157+
if(part.behavior!=null) part.behavior.onAdd(this.mob);
157158
this.addGoal(part.priority, part.goal);
158159
this.attachedParts.add(part);
159160
this.goalPartMap.put(part.goal, part);
@@ -171,6 +172,7 @@ void unattach(CraftAIPart<E,?> part) {
171172
this.attachedParts.remove(part);
172173
this.goalPartMap.remove(part.goal);
173174
part.setState(AIState.UNATTACHED);
175+
if(part.behavior!=null) part.behavior.onRemoved(this.mob);
174176
}
175177

176178
void remove(Set<AIType> typeSet, boolean remove) {

src/java/de/ntcomputer/minecraft/controllablemobs/implementation/ai/CraftAIPart.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
import de.ntcomputer.minecraft.controllablemobs.api.ai.behaviors.AIBehavior;
1212

1313
public class CraftAIPart<E extends LivingEntity, B extends AIBehavior<? super E>> implements AIPart<E,B> {
14-
private final B behavior;
14+
final B behavior;
1515
final int priority;
1616
private final AIType type;
1717
private final AIController<E> controller;

0 commit comments

Comments
 (0)