Fork of Poseidon providing Bukkit #1060 to older Beta versions (b1.0-b1.7.3)
1package org.bukkit.craftbukkit.entity;
2
3import net.minecraft.server.EntityMinecart;
4import org.bukkit.craftbukkit.CraftServer;
5import org.bukkit.entity.Minecart;
6import org.bukkit.util.Vector;
7
8public class CraftMinecart extends CraftVehicle implements Minecart {
9 /**
10 * Stores the minecart type id, which is used by Minecraft to differentiate
11 * minecart types. Here we use subclasses.
12 */
13 public enum Type {
14 Minecart(0), StorageMinecart(1), PoweredMinecart(2);
15
16 private final int id;
17
18 private Type(int id) {
19 this.id = id;
20 }
21
22 public int getId() {
23 return id;
24 }
25 }
26
27 protected EntityMinecart minecart;
28
29 public CraftMinecart(CraftServer server, EntityMinecart entity) {
30 super(server, entity);
31 minecart = entity;
32 }
33
34 public void setDamage(int damage) {
35 minecart.damage = damage;
36 }
37
38 public int getDamage() {
39 return minecart.damage;
40 }
41
42 public double getMaxSpeed() {
43 return minecart.maxSpeed;
44 }
45
46 public void setMaxSpeed(double speed) {
47 if (speed >= 0D) {
48 minecart.maxSpeed = speed;
49 }
50 }
51
52 public boolean isSlowWhenEmpty() {
53 return minecart.slowWhenEmpty;
54 }
55
56 public void setSlowWhenEmpty(boolean slow) {
57 minecart.slowWhenEmpty = slow;
58 }
59
60 public Vector getFlyingVelocityMod() {
61 return new Vector(minecart.flyingX, minecart.flyingY, minecart.flyingZ);
62 }
63
64 public void setFlyingVelocityMod(Vector flying) {
65 minecart.flyingX = flying.getX();
66 minecart.flyingY = flying.getY();
67 minecart.flyingZ = flying.getZ();
68 }
69
70 public Vector getDerailedVelocityMod() {
71 return new Vector(minecart.derailedX, minecart.derailedY, minecart.derailedZ);
72 }
73
74 public void setDerailedVelocityMod(Vector derailed) {
75 minecart.derailedX = derailed.getX();
76 minecart.derailedY = derailed.getY();
77 minecart.derailedZ = derailed.getZ();
78 }
79
80 @Override
81 public String toString() {
82 return "CraftMinecart";
83 }
84
85}