Really fix non-ridables AI with passenger this time

This commit is contained in:
William Blake Galbreath
2019-06-23 20:12:22 -05:00
parent f4931c9eae
commit e744a717e8

View File

@@ -1,11 +1,11 @@
From fb9dfc65c23a81909d5b38da1387b7700e69cd1a Mon Sep 17 00:00:00 2001 From c7360b84c003a6df68bf1f545bf99e3df39d0e9a Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com> From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Tue, 30 Apr 2019 19:17:21 -0500 Date: Tue, 30 Apr 2019 19:17:21 -0500
Subject: [PATCH] Integrate ridables Subject: [PATCH] Integrate ridables
--- ---
.../server/ControllerLookDolphin.java | 4 +- .../server/ControllerLookDolphin.java | 4 +-
.../java/net/minecraft/server/Entity.java | 31 ++++- .../java/net/minecraft/server/Entity.java | 35 +++++-
.../net/minecraft/server/EntityAgeable.java | 2 +- .../net/minecraft/server/EntityAgeable.java | 2 +-
.../java/net/minecraft/server/EntityBat.java | 22 ++++ .../java/net/minecraft/server/EntityBat.java | 22 ++++
.../net/minecraft/server/EntityBlaze.java | 15 ++- .../net/minecraft/server/EntityBlaze.java | 15 ++-
@@ -134,7 +134,7 @@ Subject: [PATCH] Integrate ridables
.../controller/ControllerMoveWASDWater.java | 42 +++++++ .../controller/ControllerMoveWASDWater.java | 42 +++++++
.../craftbukkit/entity/CraftLivingEntity.java | 10 ++ .../craftbukkit/entity/CraftLivingEntity.java | 10 ++
.../bukkit/craftbukkit/entity/CraftMob.java | 12 ++ .../bukkit/craftbukkit/entity/CraftMob.java | 12 ++
130 files changed, 1236 insertions(+), 107 deletions(-) 130 files changed, 1240 insertions(+), 107 deletions(-)
create mode 100644 src/main/java/net/pl3x/purpur/controller/ControllerLookWASD.java 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/ControllerMoveWASD.java
create mode 100644 src/main/java/net/pl3x/purpur/controller/ControllerMoveWASDFlying.java create mode 100644 src/main/java/net/pl3x/purpur/controller/ControllerMoveWASDFlying.java
@@ -163,7 +163,7 @@ index 454627f65e..df3d6cf281 100644
this.d = false; this.d = false;
this.a.aM = this.a(this.a.aM, this.h() + 20.0F, this.b); this.a.aM = this.a(this.a.aM, this.h() + 20.0F, this.b);
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 352b6dfb3e..f78d721941 100644 index 352b6dfb3e..87245d3e12 100644
--- a/src/main/java/net/minecraft/server/Entity.java --- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java
@@ -78,6 +78,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke @@ -78,6 +78,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -193,32 +193,35 @@ index 352b6dfb3e..f78d721941 100644
public boolean noclip; public boolean noclip;
public float M; public float M;
protected final Random random; protected final Random random;
@@ -2070,8 +2073,10 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke @@ -2075,7 +2078,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
return false;
}
// Spigot end
- if (!this.world.isClientSide && entity instanceof EntityHuman && !(this.getRidingPassenger() instanceof EntityHuman)) {
+ if (!this.world.isClientSide && isRidable && entity instanceof EntityHuman && !(this.getRidingPassenger() instanceof EntityHuman)) { // Purpur
this.passengers.add(0, entity);
+ this.rider = (EntityHuman) entity; // Purpur
+ onMount(rider); // Purpur
} else { } else {
this.passengers.add(entity); this.passengers.add(entity);
} }
@@ -2110,6 +2115,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke -
+ // Purpur start
+ if (isRidable && passengers.get(0) == entity) {
+ EntityHuman entityhuman = (EntityHuman) entity;
+ onMount(entityhuman);
+ this.rider = entityhuman;
+ }
+ // Purpur end
}
return true; // CraftBukkit
}
@@ -2110,6 +2119,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
return false; return false;
} }
// Spigot end // Spigot end
+ // Purpur start + // Purpur start
+ if (passengers.get(0) == rider) { + if (rider != null && passengers.get(0) == rider) {
+ onDismount(rider); + onDismount(rider);
+ rider = null; + this.rider = null;
+ } + }
+ // Purpur end + // Purpur end
this.passengers.remove(entity); this.passengers.remove(entity);
entity.j = 60; entity.j = 60;
} }
@@ -3221,4 +3232,20 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke @@ -3221,4 +3236,20 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
public void setMot(double d0, double d1, double d2) { public void setMot(double d0, double d1, double d2) {
this.setMot(new Vec3D(d0, d1, d2)); this.setMot(new Vec3D(d0, d1, d2));
} }