Remove anonymous classes for horse/llama pathfinders

This commit is contained in:
William Blake Galbreath
2020-05-07 10:12:27 -05:00
parent 35ab7bfb69
commit 42da3577bb
4 changed files with 62 additions and 72 deletions

View File

@@ -1,10 +1,9 @@
From 84b8fe88a684f32494286c90864dadfe9617502b Mon Sep 17 00:00:00 2001
From b38d49c4521e69aad41951622616d80d2ef017d7 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Thu, 6 Feb 2020 19:53:59 -0600
Subject: [PATCH] Ridables
---
.../paper/entity/ai/MobGoalHelper.java | 5 +
.../net/minecraft/server/AxisAlignedBB.java | 2 +
.../server/ControllerLookDolphin.java | 4 +-
.../net/minecraft/server/ControllerMove.java | 6 +-
@@ -34,7 +33,7 @@ Subject: [PATCH] Ridables
.../net/minecraft/server/EntityGuardian.java | 47 +-
.../minecraft/server/EntityGuardianElder.java | 17 +
.../net/minecraft/server/EntityHorse.java | 7 +
.../minecraft/server/EntityHorseAbstract.java | 29 +-
.../minecraft/server/EntityHorseAbstract.java | 22 +-
.../minecraft/server/EntityHorseDonkey.java | 7 +
.../net/minecraft/server/EntityHorseMule.java | 7 +
.../minecraft/server/EntityHorseSkeleton.java | 16 +-
@@ -44,7 +43,7 @@ Subject: [PATCH] Ridables
.../minecraft/server/EntityInsentient.java | 48 +-
.../net/minecraft/server/EntityIronGolem.java | 23 +-
.../net/minecraft/server/EntityLiving.java | 21 +-
.../net/minecraft/server/EntityLlama.java | 64 +-
.../net/minecraft/server/EntityLlama.java | 50 +-
.../minecraft/server/EntityLlamaTrader.java | 23 +
.../net/minecraft/server/EntityMagmaCube.java | 17 +
.../minecraft/server/EntityMushroomCow.java | 17 +
@@ -102,9 +101,10 @@ Subject: [PATCH] Ridables
.../net/pl3x/purpur/entity/DolphinSpit.java | 119 ++++
.../net/pl3x/purpur/entity/PhantomFlames.java | 126 ++++
.../pathfinder/PathfinderGoalHasRider.java | 21 +
.../PathfinderGoalHorseHasRider.java | 21 +
.../craftbukkit/entity/CraftEntity.java | 27 +
src/main/resources/purpur.lang | 4 +-
100 files changed, 3627 insertions(+), 211 deletions(-)
100 files changed, 3622 insertions(+), 211 deletions(-)
create mode 100644 src/main/java/net/pl3x/purpur/controller/ControllerLookWASD.java
create mode 100644 src/main/java/net/pl3x/purpur/controller/ControllerMoveWASD.java
create mode 100644 src/main/java/net/pl3x/purpur/controller/ControllerMoveWASDFlying.java
@@ -113,23 +113,8 @@ Subject: [PATCH] Ridables
create mode 100644 src/main/java/net/pl3x/purpur/entity/DolphinSpit.java
create mode 100644 src/main/java/net/pl3x/purpur/entity/PhantomFlames.java
create mode 100644 src/main/java/net/pl3x/purpur/pathfinder/PathfinderGoalHasRider.java
create mode 100644 src/main/java/net/pl3x/purpur/pathfinder/PathfinderGoalHorseHasRider.java
diff --git a/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java b/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java
index d6ee94107..0ab87b458 100644
--- a/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java
+++ b/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java
@@ -118,6 +118,11 @@ public class MobGoalHelper {
ignored.add("selector_1");
ignored.add("selector_2");
ignored.add("wrapped");
+ // Purpur start
+ ignored.add("horse_abstract_1");
+ ignored.add("llama_3");
+ ignored.add("llama_4");
+ // Purpur end
bukkitMap.put(EntityInsentient.class, Mob.class);
bukkitMap.put(EntityAgeable.class, Ageable.class);
diff --git a/src/main/java/net/minecraft/server/AxisAlignedBB.java b/src/main/java/net/minecraft/server/AxisAlignedBB.java
index 3fdb52007..7e67292c2 100644
--- a/src/main/java/net/minecraft/server/AxisAlignedBB.java
@@ -2138,10 +2123,10 @@ index a6fb4ba5b..98b1e9375 100644
protected void initDatawatcher() {
super.initDatawatcher();
diff --git a/src/main/java/net/minecraft/server/EntityHorseAbstract.java b/src/main/java/net/minecraft/server/EntityHorseAbstract.java
index c56efe035..e7ba83f32 100644
index c56efe035..f31cb0554 100644
--- a/src/main/java/net/minecraft/server/EntityHorseAbstract.java
+++ b/src/main/java/net/minecraft/server/EntityHorseAbstract.java
@@ -38,12 +38,39 @@ public abstract class EntityHorseAbstract extends EntityAnimal implements IInven
@@ -38,12 +38,32 @@ public abstract class EntityHorseAbstract extends EntityAnimal implements IInven
protected EntityHorseAbstract(EntityTypes<? extends EntityHorseAbstract> entitytypes, World world) {
super(entitytypes, world);
@@ -2170,23 +2155,16 @@ index c56efe035..e7ba83f32 100644
+
@Override
protected void initPathfinder() {
+ // Purpur start
+ this.goalSelector.a(0, new net.pl3x.purpur.pathfinder.PathfinderGoalHasRider(this) {
+ @Override
+ public boolean a() {
+ return entity.getRidingPassenger() instanceof EntityHuman && isSaddled();
+ }
+ });
+ // Purpur
+ this.goalSelector.a(0, new net.pl3x.purpur.pathfinder.PathfinderGoalHorseHasRider(this)); // Purpur
this.goalSelector.a(1, new PathfinderGoalPanic(this, 1.2D));
this.goalSelector.a(1, new PathfinderGoalTame(this, 1.2D));
this.goalSelector.a(2, new PathfinderGoalBreed(this, 1.0D, EntityHorseAbstract.class));
@@ -281,7 +308,7 @@ public abstract class EntityHorseAbstract extends EntityAnimal implements IInven
@@ -281,7 +301,7 @@ public abstract class EntityHorseAbstract extends EntityAnimal implements IInven
return true;
}
- public boolean eL() {
+ public boolean eL() { return isSaddled(); } boolean isSaddled() { // Purpur - OBFHELPER
+ public boolean eL() { return isSaddled(); } public boolean isSaddled() { // Purpur - OBFHELPER
return this.t(4);
}
@@ -2586,10 +2564,10 @@ index 3fc2360a1..58aa2a9a3 100644
}
diff --git a/src/main/java/net/minecraft/server/EntityLlama.java b/src/main/java/net/minecraft/server/EntityLlama.java
index 193dbfc5f..7a4e64a3d 100644
index 193dbfc5f..c5f87cbdd 100644
--- a/src/main/java/net/minecraft/server/EntityLlama.java
+++ b/src/main/java/net/minecraft/server/EntityLlama.java
@@ -16,8 +16,47 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn
@@ -16,7 +16,46 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn
public EntityLlama(EntityTypes<? extends EntityLlama> entitytypes, World world) {
super(entitytypes, world);
@@ -2626,48 +2604,33 @@ index 193dbfc5f..7a4e64a3d 100644
+ @Override
+ public boolean isRidableInWater() {
+ return world.purpurConfig.llamaRidableInWater;
}
+ }
+
+ @Override
+ public boolean requireShiftToMount() {
+ return false; // shift reserved for opening inventory
+ }
}
+ // Purpur end
+
public void setStrength(int i) {
this.datawatcher.set(EntityLlama.bF, Math.max(1, Math.min(5, i)));
}
@@ -58,6 +97,14 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn
@@ -58,6 +97,7 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn
@Override
protected void initPathfinder() {
this.goalSelector.a(0, new PathfinderGoalFloat(this));
+ // Purpur start
+ this.goalSelector.a(0, new net.pl3x.purpur.pathfinder.PathfinderGoalHasRider(this) {
+ @Override
+ public boolean a() {
+ return super.a() && isSaddled();
+ }
+ });
+ // Purpur end
+ this.goalSelector.a(0, new net.pl3x.purpur.pathfinder.PathfinderGoalHorseHasRider(this)); // Purpur
this.goalSelector.a(1, new PathfinderGoalTame(this, 1.2D));
this.goalSelector.a(2, new PathfinderGoalLlamaFollow(this, 2.0999999046325684D));
this.goalSelector.a(3, new PathfinderGoalArrowAttack(this, 1.25D, 40, 20.0F));
@@ -67,6 +114,14 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn
@@ -67,6 +107,7 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn
this.goalSelector.a(6, new PathfinderGoalRandomStrollLand(this, 0.7D));
this.goalSelector.a(7, new PathfinderGoalLookAtPlayer(this, EntityHuman.class, 6.0F));
this.goalSelector.a(8, new PathfinderGoalRandomLookaround(this));
+ // Purpur start
+ this.targetSelector.a(0, new net.pl3x.purpur.pathfinder.PathfinderGoalHasRider(this) {
+ @Override
+ public boolean a() {
+ return entity.getRidingPassenger() instanceof EntityHuman && isSaddled();
+ }
+ });
+ // Purpur end
+ this.targetSelector.a(0, new net.pl3x.purpur.pathfinder.PathfinderGoalHorseHasRider(this)); // Purpur
this.targetSelector.a(1, new EntityLlama.c(this));
this.targetSelector.a(2, new EntityLlama.a(this));
}
@@ -253,6 +308,13 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn
@@ -253,6 +294,13 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn
return false;
}
@@ -2681,7 +2644,7 @@ index 193dbfc5f..7a4e64a3d 100644
@Override
public void a(IInventory iinventory) {
EnumColor enumcolor = this.eZ();
@@ -286,7 +348,7 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn
@@ -286,7 +334,7 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn
}
@Nullable
@@ -6526,6 +6489,33 @@ index 000000000..6e50344c0
+ return entity.hasRider();
+ }
+}
diff --git a/src/main/java/net/pl3x/purpur/pathfinder/PathfinderGoalHorseHasRider.java b/src/main/java/net/pl3x/purpur/pathfinder/PathfinderGoalHorseHasRider.java
new file mode 100644
index 000000000..9bb9da22a
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/pathfinder/PathfinderGoalHorseHasRider.java
@@ -0,0 +1,21 @@
+package net.pl3x.purpur.pathfinder;
+
+import net.minecraft.server.EntityHorseAbstract;
+import net.minecraft.server.PathfinderGoal;
+
+import java.util.EnumSet;
+
+public class PathfinderGoalHorseHasRider extends PathfinderGoal {
+ public final EntityHorseAbstract entity;
+
+ public PathfinderGoalHorseHasRider(EntityHorseAbstract entity) {
+ this.entity = entity;
+ setTypes(EnumSet.of(Type.JUMP, Type.MOVE, Type.LOOK, Type.TARGET));
+ }
+
+ // shouldExecute
+ @Override
+ public boolean a() {
+ return super.a() && entity.isSaddled();
+ }
+}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
index ff60568ce..ef64cfade 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java