Mob Pathfinding API

Implements Pathfinding API for mobs

== AT ==
public net.minecraft.world.entity.ai.navigation.PathNavigation pathFinder
public net.minecraft.world.level.pathfinder.PathFinder nodeEvaluator
public net.minecraft.world.level.pathfinder.Path nodes
This commit is contained in:
Aikar
2018-09-09 13:30:00 -04:00
parent ca341c9de8
commit ca42ec8f4e
3 changed files with 169 additions and 0 deletions

View File

@@ -14,8 +14,11 @@ import org.bukkit.loot.LootTable;
public abstract class CraftMob extends CraftLivingEntity implements Mob {
public CraftMob(CraftServer server, net.minecraft.world.entity.Mob entity) {
super(server, entity);
paperPathfinder = new com.destroystokyo.paper.entity.PaperPathfinder(entity); // Paper - Mob Pathfinding API
}
private final com.destroystokyo.paper.entity.PaperPathfinder paperPathfinder; // Paper - Mob Pathfinding API
@Override public com.destroystokyo.paper.entity.Pathfinder getPathfinder() { return paperPathfinder; } // Paper - Mob Pathfinding API
@Override
public void setTarget(LivingEntity target) {
Preconditions.checkState(!this.getHandle().generation, "Cannot set target during world generation");
@@ -56,6 +59,14 @@ public abstract class CraftMob extends CraftLivingEntity implements Mob {
return (net.minecraft.world.entity.Mob) this.entity;
}
// Paper start - Mob Pathfinding API
@Override
public void setHandle(net.minecraft.world.entity.Entity entity) {
super.setHandle(entity);
paperPathfinder.setHandle(getHandle());
}
// Paper end - Mob Pathfinding API
@Override
public String toString() {
return "CraftMob";