mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-19 09:27:43 +01:00
41 lines
1.9 KiB
Diff
41 lines
1.9 KiB
Diff
From c77c0887764d4c7cba2c3190e402a7dfeb06e232 Mon Sep 17 00:00:00 2001
|
|
From: William Blake Galbreath <blake.galbreath@gmail.com>
|
|
Date: Sat, 29 Jun 2019 02:32:40 -0500
|
|
Subject: [PATCH] Controllable Minecarts
|
|
|
|
---
|
|
.../server/EntityMinecartAbstract.java | 17 +++++++++++++++++
|
|
1 file changed, 17 insertions(+)
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/EntityMinecartAbstract.java b/src/main/java/net/minecraft/server/EntityMinecartAbstract.java
|
|
index 6df2930e2d..c8c8fcca1b 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityMinecartAbstract.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityMinecartAbstract.java
|
|
@@ -336,6 +336,23 @@ public abstract class EntityMinecartAbstract extends Entity {
|
|
|
|
this.setMot(MathHelper.a(vec3d.x, -d0, d0), vec3d.y, MathHelper.a(vec3d.z, -d0, d0));
|
|
if (this.onGround) {
|
|
+ // Purpur start
|
|
+ Entity passenger = isVehicle() ? passengers.get(0) : null;
|
|
+ if (passenger instanceof EntityHuman) {
|
|
+ EntityHuman entityhuman = (EntityHuman) passenger;
|
|
+ if (entityhuman.getForward() != 0.0F) {
|
|
+ org.bukkit.util.Vector dir = entityhuman.getBukkitEntity().getEyeLocation().getDirection().normalize();
|
|
+ if (entityhuman.getForward() < 0.0) {
|
|
+ dir.multiply(-0.25);
|
|
+ }
|
|
+ setMot(new Vec3D(dir.getX(), getMot().y, dir.getZ()));
|
|
+ setStepHeight(1.0F);
|
|
+ } else {
|
|
+ setStepHeight(0.0F);
|
|
+ }
|
|
+ this.yaw = passenger.yaw - 90;
|
|
+ }
|
|
+ // Purpur end
|
|
// CraftBukkit start - replace magic numbers with our variables
|
|
this.setMot(new Vec3D(this.getMot().x * this.derailedX, this.getMot().y * this.derailedY, this.getMot().z * this.derailedZ));
|
|
// CraftBukkit end
|
|
--
|
|
2.20.1
|
|
|