001 package org.bukkit.entity; 002 003 import org.bukkit.util.Vector; 004 005 /** 006 * Represents a minecart entity. 007 */ 008 public interface Minecart extends Vehicle { 009 010 /** 011 * This method exists for legacy reasons to provide backwards 012 * compatibility. It will not exist at runtime and should not be used 013 * under any circumstances. 014 */ 015 @Deprecated 016 public void _INVALID_setDamage(int damage); 017 018 /** 019 * Sets a minecart's damage. 020 * 021 * @param damage over 40 to "kill" a minecart 022 */ 023 public void setDamage(double damage); 024 025 /** 026 * This method exists for legacy reasons to provide backwards 027 * compatibility. It will not exist at runtime and should not be used 028 * under any circumstances. 029 */ 030 @Deprecated 031 public int _INVALID_getDamage(); 032 033 /** 034 * Gets a minecart's damage. 035 * 036 * @return The damage 037 */ 038 public double getDamage(); 039 040 /** 041 * Gets the maximum speed of a minecart. The speed is unrelated to the 042 * velocity. 043 * 044 * @return The max speed 045 */ 046 public double getMaxSpeed(); 047 048 /** 049 * Sets the maximum speed of a minecart. Must be nonnegative. Default is 050 * 0.4D. 051 * 052 * @param speed The max speed 053 */ 054 public void setMaxSpeed(double speed); 055 056 /** 057 * Returns whether this minecart will slow down faster without a passenger 058 * occupying it 059 * 060 * @return Whether it decelerates faster 061 */ 062 public boolean isSlowWhenEmpty(); 063 064 /** 065 * Sets whether this minecart will slow down faster without a passenger 066 * occupying it 067 * 068 * @param slow Whether it will decelerate faster 069 */ 070 public void setSlowWhenEmpty(boolean slow); 071 072 /** 073 * Gets the flying velocity modifier. Used for minecarts that are in 074 * mid-air. A flying minecart's velocity is multiplied by this factor each 075 * tick. 076 * 077 * @return The vector factor 078 */ 079 public Vector getFlyingVelocityMod(); 080 081 /** 082 * Sets the flying velocity modifier. Used for minecarts that are in 083 * mid-air. A flying minecart's velocity is multiplied by this factor each 084 * tick. 085 * 086 * @param flying velocity modifier vector 087 */ 088 public void setFlyingVelocityMod(Vector flying); 089 090 /** 091 * Gets the derailed velocity modifier. Used for minecarts that are on the 092 * ground, but not on rails. 093 * <p> 094 * A derailed minecart's velocity is multiplied by this factor each tick. 095 * 096 * @return derailed visible speed 097 */ 098 public Vector getDerailedVelocityMod(); 099 100 /** 101 * Sets the derailed velocity modifier. Used for minecarts that are on the 102 * ground, but not on rails. A derailed minecart's velocity is multiplied 103 * by this factor each tick. 104 * 105 * @param derailed visible speed 106 */ 107 public void setDerailedVelocityMod(Vector derailed); 108 }