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

View File

@@ -1,4 +1,4 @@
From 35403d1858efe17b7c06d9e140bb07172191be25 Mon Sep 17 00:00:00 2001
From c10b2b1a786a5b0fc07c60b9665db2e502a51492 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sun, 21 Jul 2019 18:06:20 -0500
Subject: [PATCH] Climbing should not bypass cramming gamerule
@@ -73,10 +73,10 @@ index fdf306e80..563fc8ced 100644
}
diff --git a/src/main/java/net/minecraft/server/EntityHorseAbstract.java b/src/main/java/net/minecraft/server/EntityHorseAbstract.java
index e7ba83f32..55e18e4c7 100644
index f31cb0554..0ecdea671 100644
--- a/src/main/java/net/minecraft/server/EntityHorseAbstract.java
+++ b/src/main/java/net/minecraft/server/EntityHorseAbstract.java
@@ -188,7 +188,7 @@ public abstract class EntityHorseAbstract extends EntityAnimal implements IInven
@@ -181,7 +181,7 @@ public abstract class EntityHorseAbstract extends EntityAnimal implements IInven
}
@Override

View File

@@ -1,4 +1,4 @@
From 25a125f8ba5cf577c9b5550d77eb62d321022b22 Mon Sep 17 00:00:00 2001
From 30b16e3582f794fd004dc65a83a91cef2951cc93 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sun, 5 May 2019 12:58:45 -0500
Subject: [PATCH] Implement LivingEntity safeFallDistance
@@ -25,10 +25,10 @@ index 4296aaa07..a2e3e6001 100644
// Purpur start
diff --git a/src/main/java/net/minecraft/server/EntityHorseAbstract.java b/src/main/java/net/minecraft/server/EntityHorseAbstract.java
index 55e18e4c7..b14f67b3a 100644
index 0ecdea671..e099ef9a0 100644
--- a/src/main/java/net/minecraft/server/EntityHorseAbstract.java
+++ b/src/main/java/net/minecraft/server/EntityHorseAbstract.java
@@ -229,7 +229,7 @@ public abstract class EntityHorseAbstract extends EntityAnimal implements IInven
@@ -222,7 +222,7 @@ public abstract class EntityHorseAbstract extends EntityAnimal implements IInven
@Override
protected int e(float f, float f1) {
@@ -38,7 +38,7 @@ index 55e18e4c7..b14f67b3a 100644
protected int getChestSlots() {
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
index 006b498fd..c6a6befdc 100644
index 0f8ba92a8..d6751e3cc 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -125,6 +125,7 @@ public abstract class EntityLiving extends Entity {
@@ -59,7 +59,7 @@ index 006b498fd..c6a6befdc 100644
protected void cZ() {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
index 8ffa3cb05..3dd0faea7 100644
index 245bd116d..4c16f96ab 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
@@ -739,4 +739,16 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {

View File

@@ -1,4 +1,4 @@
From 6a7bfa1e3b358bef374f994a8642a15e52c4a863 Mon Sep 17 00:00:00 2001
From 1aec2aadfca3245b44957a3484e6d1343a17c2f6 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Fri, 18 Oct 2019 22:50:12 -0500
Subject: [PATCH] Add more llama API
@@ -10,7 +10,7 @@ Subject: [PATCH] Add more llama API
3 files changed, 61 insertions(+), 5 deletions(-)
diff --git a/src/main/java/net/minecraft/server/EntityLlama.java b/src/main/java/net/minecraft/server/EntityLlama.java
index 7a4e64a3d..576179756 100644
index c5f87cbdd..082aac258 100644
--- a/src/main/java/net/minecraft/server/EntityLlama.java
+++ b/src/main/java/net/minecraft/server/EntityLlama.java
@@ -12,7 +12,8 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn
@@ -45,7 +45,7 @@ index 7a4e64a3d..576179756 100644
this.eI();
}
@@ -427,19 +432,24 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn
@@ -413,19 +418,24 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn
}
}
@@ -70,7 +70,7 @@ index 7a4e64a3d..576179756 100644
public boolean fc() {
return this.bK != null;
}
@@ -450,7 +460,7 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn
@@ -436,7 +446,7 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn
}
@Nullable