Files
Paper/paper-api/src/main/java/org/bukkit/material/Sapling.java
2016-03-04 16:16:59 +11:00

122 lines
3.2 KiB
Java

package org.bukkit.material;
import org.bukkit.Material;
import org.bukkit.TreeSpecies;
/**
* Represents the different types of Tree block that face a direction.
*
* @see Material#SAPLING
*/
public class Sapling extends Wood {
/**
* Constructs a sapling.
*/
public Sapling() {
this(DEFAULT_SPECIES);
}
/**
* Constructs a sapling of the given tree species.
*
* @param species the species of the sapling
*/
public Sapling(TreeSpecies species) {
this(species, false);
}
/**
* Constructs a sapling of the given tree species and if is it instant
* growable
*
* @param species the species of the tree block
* @param isInstantGrowable true if the Sapling should grow when next ticked with bonemeal
*/
public Sapling(TreeSpecies species, boolean isInstantGrowable) {
this(Material.SAPLING, species, isInstantGrowable);
}
/**
* Constructs a sapling of the given type.
*
* @param type the type of tree block
*/
public Sapling(final Material type) {
this(type, DEFAULT_SPECIES, false);
}
/**
* Constructs a sapling of the given type and tree species.
*
* @param type the type of sapling
* @param species the species of the sapling
*/
public Sapling(final Material type, TreeSpecies species) {
this(type, species, false);
}
/**
* Constructs a sapling of the given type and tree species and if is it
* instant growable
*
* @param type the type of sapling
* @param species the species of the sapling
* @param isInstantGrowable true if the Sapling should grow when next ticked
* with bonemeal
*/
public Sapling(final Material type, TreeSpecies species, boolean isInstantGrowable) {
super(type, species);
setIsInstantGrowable(isInstantGrowable);
}
/**
* @param type the raw type id
* @param data the raw data value
* @deprecated Magic value
*/
@Deprecated
public Sapling(final int type, final byte data) {
super(type, data);
}
/**
* @param type the type
* @param data the raw data value
* @deprecated Magic value
*/
@Deprecated
public Sapling(final Material type, final byte data) {
super(type, data);
}
/**
* Checks if the Sapling would grow when next ticked with bonemeal
*
* @return true if the Sapling would grow when next ticked with bonemeal
*/
public boolean isInstantGrowable() {
return (getData() & 0x8) == 0x8;
}
/**
* Set whether this sapling will grow when next ticked with bonemeal
*
* @param isInstantGrowable true if the Sapling should grow when next ticked
* with bonemeal
*/
public void setIsInstantGrowable(boolean isInstantGrowable) {
setData(isInstantGrowable ? (byte) ((getData() & 0x7) | 0x8) : (byte) (getData() & 0x7));
}
@Override
public String toString() {
return getSpecies() + " " + (isInstantGrowable() ? " IS_INSTANT_GROWABLE " : "") + " " + super.toString();
}
@Override
public Sapling clone() {
return (Sapling) super.clone();
}
}