PaperSpigot-Parent/Spigot-Server-Patches/0091-Fix-FurnaceMinecarts-losing-all-of-their-velocity-on.patch

39 lines
1.5 KiB
Diff
Raw Normal View History

From 301c9572f887f801b027e43cfc4121e4fd520828 Mon Sep 17 00:00:00 2001
From: Thinkofdeath <thinkofdeath@spigotmc.org>
Date: Mon, 15 Feb 2016 23:16:00 -0600
Subject: [PATCH] Fix FurnaceMinecarts losing all of their velocity on certain
corners
diff --git a/src/main/java/net/minecraft/server/EntityMinecartFurnace.java b/src/main/java/net/minecraft/server/EntityMinecartFurnace.java
index 55f04b4..908620d 100644
--- a/src/main/java/net/minecraft/server/EntityMinecartFurnace.java
+++ b/src/main/java/net/minecraft/server/EntityMinecartFurnace.java
@@ -58,17 +58,12 @@ public class EntityMinecartFurnace extends EntityMinecartAbstract {
if (d0 > 1.0E-4D && this.motX * this.motX + this.motZ * this.motZ > 0.001D) {
d0 = (double) MathHelper.sqrt(d0);
- this.a /= d0;
- this.b /= d0;
- if (this.a * this.motX + this.b * this.motZ < 0.0D) {
- this.a = 0.0D;
- this.b = 0.0D;
- } else {
- double d1 = d0 / this.m();
-
- this.a *= d1;
- this.b *= d1;
- }
+ // PaperSpigot - Don't lose all your velocity on corners
+ // https://bugs.mojang.com/browse/MC-51053?focusedCommentId=223854
+ double d1 = (double) MathHelper.sqrt(this.motX * this.motX + this.motZ * this.motZ);
+ this.a = (motX / d1) * d0;
+ this.b = (motZ / d1) * d0;
+ // PaperSpigot end
}
}
--
2.7.1