001 package org.bukkit.entity; 002 003 /** 004 * Represents a boat entity. 005 */ 006 public interface Boat extends Vehicle { 007 008 /** 009 * Gets the maximum speed of a boat. The speed is unrelated to the 010 * velocity. 011 * 012 * @return The max speed. 013 */ 014 public double getMaxSpeed(); 015 016 /** 017 * Sets the maximum speed of a boat. Must be nonnegative. Default is 0.4D. 018 * 019 * @param speed The max speed. 020 */ 021 public void setMaxSpeed(double speed); 022 023 /** 024 * Gets the deceleration rate (newSpeed = curSpeed * rate) of occupied 025 * boats. The default is 0.2. 026 * 027 * @return The rate of deceleration 028 */ 029 public double getOccupiedDeceleration(); 030 031 /** 032 * Sets the deceleration rate (newSpeed = curSpeed * rate) of occupied 033 * boats. Setting this to a higher value allows for quicker acceleration. 034 * The default is 0.2. 035 * 036 * @param rate deceleration rate 037 */ 038 public void setOccupiedDeceleration(double rate); 039 040 /** 041 * Gets the deceleration rate (newSpeed = curSpeed * rate) of unoccupied 042 * boats. The default is -1. Values below 0 indicate that no additional 043 * deceleration is imposed. 044 * 045 * @return The rate of deceleration 046 */ 047 public double getUnoccupiedDeceleration(); 048 049 /** 050 * Sets the deceleration rate (newSpeed = curSpeed * rate) of unoccupied 051 * boats. Setting this to a higher value allows for quicker deceleration 052 * of boats when a player disembarks. The default is -1. Values below 0 053 * indicate that no additional deceleration is imposed. 054 * 055 * @param rate deceleration rate 056 */ 057 public void setUnoccupiedDeceleration(double rate); 058 059 /** 060 * Get whether boats can work on land. 061 * 062 * @return whether boats can work on land 063 */ 064 public boolean getWorkOnLand(); 065 066 /** 067 * Set whether boats can work on land. 068 * 069 * @param workOnLand whether boats can work on land 070 */ 071 public void setWorkOnLand(boolean workOnLand); 072 }