summaryrefslogtreecommitdiffstats
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/net/minecraft/server/EntityBoat.java22
-rw-r--r--src/main/java/org/bukkit/craftbukkit/entity/CraftBoat.java26
2 files changed, 45 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;
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftBoat.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftBoat.java
index 284fdd79..721b653e 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftBoat.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftBoat.java
@@ -22,6 +22,32 @@ public class CraftBoat extends CraftVehicle implements Boat {
}
}
+ public double getOccupiedDeceleration() {
+ return boat.occupiedDeceleration;
+ }
+
+ public void setOccupiedDeceleration(double speed) {
+ if (speed >= 0D) {
+ boat.occupiedDeceleration = speed;
+ }
+ }
+
+ public double getUnoccupiedDeceleration() {
+ return boat.unoccupiedDeceleration;
+ }
+
+ public void setUnoccupiedDeceleration(double speed) {
+ boat.unoccupiedDeceleration = speed;
+ }
+
+ public boolean getWorkOnLand() {
+ return boat.landBoats;
+ }
+
+ public void setWorkOnLand(boolean workOnLand) {
+ boat.landBoats = workOnLand;
+ }
+
@Override
public String toString() {
return "CraftBoat";