Files
Paper/paper-api/src/main/java/org/bukkit/entity/Boat.java
2023-04-11 04:04:41 +09:00

196 lines
5.6 KiB
Java

package org.bukkit.entity;
import org.bukkit.Material;
import org.bukkit.TreeSpecies;
import org.jetbrains.annotations.NotNull;
/**
* Represents a boat entity.
*/
public interface Boat extends Vehicle {
/**
* Gets the wood type of the boat.
*
* @return the wood type
* @deprecated deprecated in favor of {@link #getBoatType()}
*/
@Deprecated(since = "1.19")
@NotNull
TreeSpecies getWoodType();
/**
* Sets the wood type of the boat.
*
* @param species the new wood type
* @deprecated deprecated in favor of {@link #setBoatType(Type)}
*/
@Deprecated(since = "1.19")
void setWoodType(@NotNull TreeSpecies species);
/**
* Gets the type of the boat.
*
* @return the boat type
* @deprecated different boats types are now different entity types
*/
@Deprecated(since = "1.21.2")
@NotNull
Type getBoatType();
/**
* Sets the type of the boat.
*
* @param type the new type
* @deprecated different boats types are now different entity types
*/
@Deprecated(since = "1.21.2")
void setBoatType(@NotNull Type type);
/**
* Gets the maximum speed of a boat. The speed is unrelated to the
* velocity.
*
* @return The max speed.
* @deprecated boats are complex and many of these methods do not work correctly across multiple versions.
*/
@Deprecated(since = "1.9")
public double getMaxSpeed();
/**
* Sets the maximum speed of a boat. Must be nonnegative. Default is 0.4D.
*
* @param speed The max speed.
* @deprecated boats are complex and many of these methods do not work correctly across multiple versions.
*/
@Deprecated(since = "1.9")
public void setMaxSpeed(double speed);
/**
* Gets the deceleration rate (newSpeed = curSpeed * rate) of occupied
* boats. The default is 0.2.
*
* @return The rate of deceleration
* @deprecated boats are complex and many of these methods do not work correctly across multiple versions.
*/
@Deprecated(since = "1.9")
public double getOccupiedDeceleration();
/**
* Sets the deceleration rate (newSpeed = curSpeed * rate) of occupied
* boats. Setting this to a higher value allows for quicker acceleration.
* The default is 0.2.
*
* @param rate deceleration rate
* @deprecated boats are complex and many of these methods do not work correctly across multiple versions.
*/
@Deprecated(since = "1.9")
public void setOccupiedDeceleration(double rate);
/**
* Gets the deceleration rate (newSpeed = curSpeed * rate) of unoccupied
* boats. The default is -1. Values below 0 indicate that no additional
* deceleration is imposed.
*
* @return The rate of deceleration
* @deprecated boats are complex and many of these methods do not work correctly across multiple versions.
*/
@Deprecated(since = "1.9")
public double getUnoccupiedDeceleration();
/**
* Sets the deceleration rate (newSpeed = curSpeed * rate) of unoccupied
* boats. Setting this to a higher value allows for quicker deceleration
* of boats when a player disembarks. The default is -1. Values below 0
* indicate that no additional deceleration is imposed.
*
* @param rate deceleration rate
* @deprecated boats are complex and many of these methods do not work correctly across multiple versions.
*/
@Deprecated(since = "1.9")
public void setUnoccupiedDeceleration(double rate);
/**
* Get whether boats can work on land.
*
* @return whether boats can work on land
* @deprecated boats are complex and many of these methods do not work correctly across multiple versions.
*/
@Deprecated(since = "1.9")
public boolean getWorkOnLand();
/**
* Set whether boats can work on land.
*
* @param workOnLand whether boats can work on land
* @deprecated boats are complex and many of these methods do not work correctly across multiple versions.
*/
@Deprecated(since = "1.9")
public void setWorkOnLand(boolean workOnLand);
/**
* Gets the status of the boat.
*
* @return the status
*/
@NotNull
public Status getStatus();
/**
* Represents the type of boats.
* @deprecated different boats types are now different entity types
*/
@Deprecated(since = "1.21.2")
public enum Type {
OAK(Material.OAK_PLANKS),
SPRUCE(Material.SPRUCE_PLANKS),
BIRCH(Material.BIRCH_PLANKS),
JUNGLE(Material.JUNGLE_PLANKS),
ACACIA(Material.ACACIA_PLANKS),
CHERRY(Material.CHERRY_PLANKS),
DARK_OAK(Material.DARK_OAK_PLANKS),
MANGROVE(Material.MANGROVE_PLANKS),
BAMBOO(Material.BAMBOO_PLANKS),
;
private final Material materialBlock;
private Type(Material materialBlock) {
this.materialBlock = materialBlock;
}
/**
* Gets the material of the boat type.
*
* @return a material
*/
@NotNull
public Material getMaterial() {
return this.materialBlock;
}
}
/**
* Represents the status of the boat.
*/
public enum Status {
NOT_IN_WORLD, // Paper
IN_WATER,
UNDER_WATER,
UNDER_FLOWING_WATER,
ON_LAND,
IN_AIR;
}
// Paper start
/**
* Gets the {@link Material} that represents this Boat type.
*
* @return the boat material.
*/
@NotNull
public Material getBoatMaterial();
// Paper end
}