package org.bukkit.craftbukkit.entity;
import net.minecraft.server.EntityBoat;
import org.bukkit.TreeSpecies;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.Boat;
import org.bukkit.entity.EntityType;
public class CraftBoat extends CraftVehicle implements Boat {
public CraftBoat(CraftServer server, EntityBoat entity) {
super(server, entity);
}
@Override
public TreeSpecies getWoodType() {
return getTreeSpecies(getHandle().getType());
}
@Override
public void setWoodType(TreeSpecies species) {
getHandle().setType(getBoatType(species));
}
public double getMaxSpeed() {
return getHandle().maxSpeed;
}
public void setMaxSpeed(double speed) {
if (speed >= 0D) {
getHandle().maxSpeed = speed;
}
}
public double getOccupiedDeceleration() {
return getHandle().occupiedDeceleration;
}
public void setOccupiedDeceleration(double speed) {
if (speed >= 0D) {
getHandle().occupiedDeceleration = speed;
}
}
public double getUnoccupiedDeceleration() {
return getHandle().unoccupiedDeceleration;
}
public void setUnoccupiedDeceleration(double speed) {
getHandle().unoccupiedDeceleration = speed;
}
public boolean getWorkOnLand() {
return getHandle().landBoats;
}
public void setWorkOnLand(boolean workOnLand) {
getHandle().landBoats = workOnLand;
}
@Override
public EntityBoat getHandle() {
return (EntityBoat) entity;
}
@Override
public String toString() {
return "CraftBoat";
}
public EntityType getType() {
return EntityType.BOAT;
}
public static TreeSpecies getTreeSpecies(EntityBoat.EnumBoatType boatType) {
switch (boatType) {
case SPRUCE:
return TreeSpecies.REDWOOD;
case BIRCH:
return TreeSpecies.BIRCH;
case JUNGLE:
return TreeSpecies.JUNGLE;
case ACACIA:
return TreeSpecies.ACACIA;
case DARK_OAK:
return TreeSpecies.DARK_OAK;
case OAK:
default:
return TreeSpecies.GENERIC;
}
}
public static EntityBoat.EnumBoatType getBoatType(TreeSpecies species) {
switch (species) {
case REDWOOD:
return EntityBoat.EnumBoatType.SPRUCE;
case BIRCH:
return EntityBoat.EnumBoatType.BIRCH;
case JUNGLE:
return EntityBoat.EnumBoatType.JUNGLE;
case ACACIA:
return EntityBoat.EnumBoatType.ACACIA;
case DARK_OAK:
return EntityBoat.EnumBoatType.DARK_OAK;
case GENERIC:
default:
return EntityBoat.EnumBoatType.OAK;
}
}
}