Make spiders ridable

This commit is contained in:
William Blake Galbreath
2019-05-04 06:02:06 -05:00
parent f74678371d
commit 80522c9794

View File

@@ -1,4 +1,4 @@
From a64d82bf60a0044ead61b859b66502aca110e2fd Mon Sep 17 00:00:00 2001
From 6dd27fbce0f0f793d7c2727bbdd9acc8d1bdc52d Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Tue, 30 Apr 2019 19:17:21 -0500
Subject: [PATCH] Integrate ridables
@@ -18,9 +18,9 @@ Subject: [PATCH] Integrate ridables
.../minecraft/server/EntityHorseSkeleton.java | 15 ++--
.../minecraft/server/EntityHorseZombie.java | 12 +--
.../net/minecraft/server/EntityHuman.java | 14 +++-
.../minecraft/server/EntityInsentient.java | 35 +++++++++
.../minecraft/server/EntityInsentient.java | 39 ++++++++++
.../net/minecraft/server/EntityIronGolem.java | 15 ++++
.../net/minecraft/server/EntityLiving.java | 19 ++++-
.../net/minecraft/server/EntityLiving.java | 20 ++++-
.../net/minecraft/server/EntityLlama.java | 37 ++++++++-
.../minecraft/server/EntityMushroomCow.java | 14 ++++
.../net/minecraft/server/EntityOcelot.java | 14 ++++
@@ -28,13 +28,14 @@ Subject: [PATCH] Integrate ridables
.../net/minecraft/server/EntityPolarBear.java | 15 ++++
.../net/minecraft/server/EntitySheep.java | 14 ++++
.../net/minecraft/server/EntitySnowman.java | 15 ++++
.../net/minecraft/server/EntitySpider.java | 15 ++++
.../server/EntityTameableAnimal.java | 6 ++
.../net/minecraft/server/EntityTypes.java | 6 ++
.../java/net/minecraft/server/EntityWolf.java | 14 ++++
.../purpur/controller/ControllerLookWASD.java | 44 +++++++++++
.../purpur/controller/ControllerMoveWASD.java | 78 +++++++++++++++++++
.../purpur/controller/ControllerMoveWASD.java | 77 +++++++++++++++++++
.../craftbukkit/entity/CraftLivingEntity.java | 12 +++
30 files changed, 488 insertions(+), 28 deletions(-)
31 files changed, 507 insertions(+), 28 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
@@ -449,7 +450,7 @@ index fdbe9a2a..3fbfa6d7 100644
this.setSneaking(false);
} else {
diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java
index d1ec201d..6da1b350 100644
index d1ec201d..ae9d0585 100644
--- a/src/main/java/net/minecraft/server/EntityInsentient.java
+++ b/src/main/java/net/minecraft/server/EntityInsentient.java
@@ -515,6 +515,7 @@ public abstract class EntityInsentient extends EntityLiving {
@@ -460,7 +461,7 @@ index d1ec201d..6da1b350 100644
public void o(float f) {
super.o(f);
this.r(f);
@@ -1310,4 +1311,38 @@ public abstract class EntityInsentient extends EntityLiving {
@@ -1310,4 +1311,42 @@ public abstract class EntityInsentient extends EntityLiving {
}
}
@@ -497,6 +498,10 @@ index d1ec201d..6da1b350 100644
+ }
+ return entityhuman.mounting = false;
+ }
+
+ public boolean onSpacebar() {
+ return false;
+ }
+ // Purpur end
}
diff --git a/src/main/java/net/minecraft/server/EntityIronGolem.java b/src/main/java/net/minecraft/server/EntityIronGolem.java
@@ -531,7 +536,7 @@ index ae269270..8140fa12 100644
+ // Purpur end
}
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
index 4d5459d2..df9568fc 100644
index 4d5459d2..499d9210 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -90,9 +90,9 @@ public abstract class EntityLiving extends Entity {
@@ -565,7 +570,15 @@ index 4d5459d2..df9568fc 100644
}
protected void cb() {
@@ -2082,10 +2090,12 @@ public abstract class EntityLiving extends Entity {
@@ -1838,6 +1846,7 @@ public abstract class EntityLiving extends Entity {
return 0.42F;
}
+ public void jump() { cH(); } // Purpur - OBFHELPER
protected void cH() {
this.motY = (double) this.cG();
if (this.hasEffect(MobEffects.JUMP)) {
@@ -2082,10 +2091,12 @@ public abstract class EntityLiving extends Entity {
this.aK += this.aJ;
}
@@ -578,7 +591,7 @@ index 4d5459d2..df9568fc 100644
public void o(float f) {
this.bI = f;
}
@@ -2499,6 +2509,7 @@ public abstract class EntityLiving extends Entity {
@@ -2499,6 +2510,7 @@ public abstract class EntityLiving extends Entity {
this.fallDistance = 0.0F;
}
@@ -863,6 +876,39 @@ index 277ef077..0a7c8872 100644
ItemStack itemstack = entityhuman.b(enumhand);
if (this.hasPumpkin()) { if (itemstack.getItem() == Items.SHEARS) { // Purpur
diff --git a/src/main/java/net/minecraft/server/EntitySpider.java b/src/main/java/net/minecraft/server/EntitySpider.java
index 9ef1c9ba..8ac330dc 100644
--- a/src/main/java/net/minecraft/server/EntitySpider.java
+++ b/src/main/java/net/minecraft/server/EntitySpider.java
@@ -10,6 +10,11 @@ public class EntitySpider extends EntityMonster {
protected EntitySpider(EntityTypes<?> entitytypes, World world) {
super(entitytypes, world);
this.setSize(1.4F, 0.9F);
+ // Purpur start
+ this.moveController = new net.pl3x.purpur.controller.ControllerMoveWASD(this);
+ this.lookController = new net.pl3x.purpur.controller.ControllerLookWASD(this);
+ this.canBeRiddenInWater = true;
+ // Purpur end
}
public EntitySpider(World world) {
@@ -106,6 +111,16 @@ public class EntitySpider extends EntityMonster {
this.datawatcher.set(EntitySpider.a, b0);
}
+ // Purpur start - processInteract
+ @Override
+ public boolean a(EntityHuman entityhuman, EnumHand enumhand) {
+ if (super.a(entityhuman, enumhand)) {
+ return true; // vanilla action handled
+ }
+ return tryRide(entityhuman, enumhand);
+ }
+ // Purpur end
+
@Nullable
public GroupDataEntity prepare(DifficultyDamageScaler difficultydamagescaler, @Nullable GroupDataEntity groupdataentity, @Nullable NBTTagCompound nbttagcompound) {
Object object = super.prepare(difficultydamagescaler, groupdataentity, nbttagcompound);
diff --git a/src/main/java/net/minecraft/server/EntityTameableAnimal.java b/src/main/java/net/minecraft/server/EntityTameableAnimal.java
index 5262ede2..d3d4c5df 100644
--- a/src/main/java/net/minecraft/server/EntityTameableAnimal.java
@@ -981,10 +1027,10 @@ index 00000000..22e45e81
+}
diff --git a/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASD.java b/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASD.java
new file mode 100644
index 00000000..e1cec806
index 00000000..4f7dec9b
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASD.java
@@ -0,0 +1,78 @@
@@ -0,0 +1,77 @@
+package net.pl3x.purpur.controller;
+
+import net.minecraft.server.ControllerMove;
@@ -1049,10 +1095,9 @@ index 00000000..e1cec806
+ ((ControllerLookWASD) entity.getControllerLook()).setOffsets(yaw - rider.yaw, 0);
+
+ if (rider.isJumping()) {
+ //RidableSpacebarEvent event = new RidableSpacebarEvent(ridable);
+ //Bukkit.getPluginManager().callEvent(event);
+ if (/*!event.isCancelled() && !event.isHandled() && !ridable.onSpacebar() &&*/ entity.onGround) {
+ entity.getControllerJump().jump();
+ //RidableSpacebarEvent event = new RidableSpacebarEvent(entity);
+ if (/*event.callEvent() && !event.isHandled() &&*/ !entity.onSpacebar() && entity.onGround) {
+ entity.jump();
+ }
+ }
+