mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-21 10:27:44 +01:00
Make spiders ridable
This commit is contained in:
@@ -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>
|
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
|
||||||
@@ -18,9 +18,9 @@ Subject: [PATCH] Integrate ridables
|
|||||||
.../minecraft/server/EntityHorseSkeleton.java | 15 ++--
|
.../minecraft/server/EntityHorseSkeleton.java | 15 ++--
|
||||||
.../minecraft/server/EntityHorseZombie.java | 12 +--
|
.../minecraft/server/EntityHorseZombie.java | 12 +--
|
||||||
.../net/minecraft/server/EntityHuman.java | 14 +++-
|
.../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/EntityIronGolem.java | 15 ++++
|
||||||
.../net/minecraft/server/EntityLiving.java | 19 ++++-
|
.../net/minecraft/server/EntityLiving.java | 20 ++++-
|
||||||
.../net/minecraft/server/EntityLlama.java | 37 ++++++++-
|
.../net/minecraft/server/EntityLlama.java | 37 ++++++++-
|
||||||
.../minecraft/server/EntityMushroomCow.java | 14 ++++
|
.../minecraft/server/EntityMushroomCow.java | 14 ++++
|
||||||
.../net/minecraft/server/EntityOcelot.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/EntityPolarBear.java | 15 ++++
|
||||||
.../net/minecraft/server/EntitySheep.java | 14 ++++
|
.../net/minecraft/server/EntitySheep.java | 14 ++++
|
||||||
.../net/minecraft/server/EntitySnowman.java | 15 ++++
|
.../net/minecraft/server/EntitySnowman.java | 15 ++++
|
||||||
|
.../net/minecraft/server/EntitySpider.java | 15 ++++
|
||||||
.../server/EntityTameableAnimal.java | 6 ++
|
.../server/EntityTameableAnimal.java | 6 ++
|
||||||
.../net/minecraft/server/EntityTypes.java | 6 ++
|
.../net/minecraft/server/EntityTypes.java | 6 ++
|
||||||
.../java/net/minecraft/server/EntityWolf.java | 14 ++++
|
.../java/net/minecraft/server/EntityWolf.java | 14 ++++
|
||||||
.../purpur/controller/ControllerLookWASD.java | 44 +++++++++++
|
.../purpur/controller/ControllerLookWASD.java | 44 +++++++++++
|
||||||
.../purpur/controller/ControllerMoveWASD.java | 78 +++++++++++++++++++
|
.../purpur/controller/ControllerMoveWASD.java | 77 +++++++++++++++++++
|
||||||
.../craftbukkit/entity/CraftLivingEntity.java | 12 +++
|
.../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/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
|
||||||
|
|
||||||
@@ -449,7 +450,7 @@ index fdbe9a2a..3fbfa6d7 100644
|
|||||||
this.setSneaking(false);
|
this.setSneaking(false);
|
||||||
} else {
|
} else {
|
||||||
diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java
|
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
|
--- a/src/main/java/net/minecraft/server/EntityInsentient.java
|
||||||
+++ b/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 {
|
@@ -515,6 +515,7 @@ public abstract class EntityInsentient extends EntityLiving {
|
||||||
@@ -460,7 +461,7 @@ index d1ec201d..6da1b350 100644
|
|||||||
public void o(float f) {
|
public void o(float f) {
|
||||||
super.o(f);
|
super.o(f);
|
||||||
this.r(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;
|
+ return entityhuman.mounting = false;
|
||||||
+ }
|
+ }
|
||||||
|
+
|
||||||
|
+ public boolean onSpacebar() {
|
||||||
|
+ return false;
|
||||||
|
+ }
|
||||||
+ // Purpur end
|
+ // Purpur end
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/net/minecraft/server/EntityIronGolem.java b/src/main/java/net/minecraft/server/EntityIronGolem.java
|
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
|
+ // Purpur end
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
|
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
|
--- a/src/main/java/net/minecraft/server/EntityLiving.java
|
||||||
+++ b/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 {
|
@@ -90,9 +90,9 @@ public abstract class EntityLiving extends Entity {
|
||||||
@@ -565,7 +570,15 @@ index 4d5459d2..df9568fc 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected void cb() {
|
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;
|
this.aK += this.aJ;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -578,7 +591,7 @@ index 4d5459d2..df9568fc 100644
|
|||||||
public void o(float f) {
|
public void o(float f) {
|
||||||
this.bI = 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;
|
this.fallDistance = 0.0F;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -863,6 +876,39 @@ index 277ef077..0a7c8872 100644
|
|||||||
ItemStack itemstack = entityhuman.b(enumhand);
|
ItemStack itemstack = entityhuman.b(enumhand);
|
||||||
|
|
||||||
if (this.hasPumpkin()) { if (itemstack.getItem() == Items.SHEARS) { // Purpur
|
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
|
diff --git a/src/main/java/net/minecraft/server/EntityTameableAnimal.java b/src/main/java/net/minecraft/server/EntityTameableAnimal.java
|
||||||
index 5262ede2..d3d4c5df 100644
|
index 5262ede2..d3d4c5df 100644
|
||||||
--- a/src/main/java/net/minecraft/server/EntityTameableAnimal.java
|
--- 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
|
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
|
new file mode 100644
|
||||||
index 00000000..e1cec806
|
index 00000000..4f7dec9b
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASD.java
|
+++ b/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASD.java
|
||||||
@@ -0,0 +1,78 @@
|
@@ -0,0 +1,77 @@
|
||||||
+package net.pl3x.purpur.controller;
|
+package net.pl3x.purpur.controller;
|
||||||
+
|
+
|
||||||
+import net.minecraft.server.ControllerMove;
|
+import net.minecraft.server.ControllerMove;
|
||||||
@@ -1049,10 +1095,9 @@ index 00000000..e1cec806
|
|||||||
+ ((ControllerLookWASD) entity.getControllerLook()).setOffsets(yaw - rider.yaw, 0);
|
+ ((ControllerLookWASD) entity.getControllerLook()).setOffsets(yaw - rider.yaw, 0);
|
||||||
+
|
+
|
||||||
+ if (rider.isJumping()) {
|
+ if (rider.isJumping()) {
|
||||||
+ //RidableSpacebarEvent event = new RidableSpacebarEvent(ridable);
|
+ //RidableSpacebarEvent event = new RidableSpacebarEvent(entity);
|
||||||
+ //Bukkit.getPluginManager().callEvent(event);
|
+ if (/*event.callEvent() && !event.isHandled() &&*/ !entity.onSpacebar() && entity.onGround) {
|
||||||
+ if (/*!event.isCancelled() && !event.isHandled() && !ridable.onSpacebar() &&*/ entity.onGround) {
|
+ entity.jump();
|
||||||
+ entity.getControllerJump().jump();
|
|
||||||
+ }
|
+ }
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
|
|||||||
Reference in New Issue
Block a user