From 26826cf7a5f8eb9ddcf8a96220e48181ae813e60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=9D=8F=E9=BB=91?= Date: Sat, 1 Dec 2018 17:42:47 +0800 Subject: [PATCH] + ai update. --- .../common/pathfinder/PathfinderExecutor.java | 8 ++++ .../internal/InternalPathfinderExecutor.java | 38 +++++++++++++++++++ 2 files changed, 46 insertions(+) diff --git a/src/main/java/me/skymc/taboolib/common/pathfinder/PathfinderExecutor.java b/src/main/java/me/skymc/taboolib/common/pathfinder/PathfinderExecutor.java index d726120..9fb04f2 100644 --- a/src/main/java/me/skymc/taboolib/common/pathfinder/PathfinderExecutor.java +++ b/src/main/java/me/skymc/taboolib/common/pathfinder/PathfinderExecutor.java @@ -36,6 +36,14 @@ public abstract class PathfinderExecutor { public abstract void clearTargetAi(LivingEntity entity); + public abstract Iterable getGoalAi(LivingEntity entity); + + public abstract Iterable getTargetAi(LivingEntity entity); + + public abstract void setGoalAi(LivingEntity entity, Iterable ai); + + public abstract void setTargetAi(LivingEntity entity, Iterable ai); + public abstract boolean navigationMove(LivingEntity entity, Location location); public abstract boolean navigationMove(LivingEntity entity, Location location, double speed); diff --git a/src/main/java/me/skymc/taboolib/common/pathfinder/internal/InternalPathfinderExecutor.java b/src/main/java/me/skymc/taboolib/common/pathfinder/internal/InternalPathfinderExecutor.java index 8f0b5e3..ebfbb90 100644 --- a/src/main/java/me/skymc/taboolib/common/pathfinder/internal/InternalPathfinderExecutor.java +++ b/src/main/java/me/skymc/taboolib/common/pathfinder/internal/InternalPathfinderExecutor.java @@ -130,6 +130,44 @@ public class InternalPathfinderExecutor extends PathfinderExecutor { } } + @Override + public Iterable getGoalAi(LivingEntity entity) { + try { + return ((Collection) pathfinderGoalSelectorSet.get(((EntityInsentient) getEntityInsentient(entity)).goalSelector)); + } catch (Throwable t) { + t.printStackTrace(); + } + return null; + } + + @Override + public Iterable getTargetAi(LivingEntity entity) { + try { + return ((Collection) pathfinderGoalSelectorSet.get(((EntityInsentient) getEntityInsentient(entity)).targetSelector)); + } catch (Throwable t) { + t.printStackTrace(); + } + return null; + } + + @Override + public void setGoalAi(LivingEntity entity, Iterable ai) { + try { + pathfinderGoalSelectorSet.set(((EntityInsentient) getEntityInsentient(entity)).goalSelector, ai); + } catch (Throwable t) { + t.printStackTrace(); + } + } + + @Override + public void setTargetAi(LivingEntity entity, Iterable ai) { + try { + pathfinderGoalSelectorSet.set(((EntityInsentient) getEntityInsentient(entity)).targetSelector, ai); + } catch (Throwable t) { + t.printStackTrace(); + } + } + @Override public boolean navigationMove(LivingEntity entity, Location location) { return navigationMove(entity, location, 0.6);