summaryrefslogtreecommitdiffstats
path: root/src/main/java/net/minecraft
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/net/minecraft')
-rw-r--r--src/main/java/net/minecraft/server/EntityBoat.java22
1 files changed, 19 insertions, 3 deletions
diff --git a/src/main/java/net/minecraft/server/EntityBoat.java b/src/main/java/net/minecraft/server/EntityBoat.java
index 3ffb55a5..a2d94b74 100644
--- a/src/main/java/net/minecraft/server/EntityBoat.java
+++ b/src/main/java/net/minecraft/server/EntityBoat.java
@@ -28,6 +28,9 @@ public class EntityBoat extends Entity {
// CraftBukkit start
public double maxSpeed = 0.4D;
+ public double occupiedDeceleration = 0.2D;
+ public double unoccupiedDeceleration = -1;
+ public boolean landBoats = false;
@Override
public void collide(Entity entity) {
@@ -233,9 +236,22 @@ public class EntityBoat extends Entity {
}
if (this.passenger != null) {
- this.motX += this.passenger.motX * 0.2D;
- this.motZ += this.passenger.motZ * 0.2D;
+ this.motX += this.passenger.motX * occupiedDeceleration; // CraftBukkit
+ this.motZ += this.passenger.motZ * occupiedDeceleration; // CraftBukkit
}
+ // CraftBukkit start - block not in vanilla
+ else if (unoccupiedDeceleration >= 0) {
+ this.motX *= unoccupiedDeceleration;
+ this.motZ *= unoccupiedDeceleration;
+ // Kill lingering speed
+ if (motX <= 0.00001) {
+ motX = 0;
+ }
+ if (motZ <= 0.00001) {
+ motZ = 0;
+ }
+ }
+ // CraftBukkit end
// CraftBukkit
d3 = this.maxSpeed;
@@ -255,7 +271,7 @@ public class EntityBoat extends Entity {
this.motZ = d3;
}
- if (this.onGround) {
+ if (this.onGround && !landBoats) { // CraftBukkit
this.motX *= 0.5D;
this.motY *= 0.5D;
this.motZ *= 0.5D;