package com.gmail.nossr50.skills.salvage.salvageables;
import org.bukkit.Material;
import com.gmail.nossr50.datatypes.skills.ItemType;
import com.gmail.nossr50.datatypes.skills.MaterialType;
public interface Salvageable {
/**
* Gets the type of this salvageable item
*
* @return the type of this salvageable
*/
public Material getItemMaterial();
/**
* Gets the material of the items dropped when salvaging this item
*
* @return the material of the salvage drop
*/
public Material getSalvageMaterial();
/**
* Gets the metadata byte value of the items dropped when salvaging this item
*
* @return the byte metadata of the salvage drop
*/
public byte getSalvageMaterialMetadata();
/**
* Gets the ItemType value for this salvageable item
*
* @return the ItemType for this salvageable
*/
public ItemType getSalvageItemType();
/**
* Gets the MaterialType value for this salvageable item
*
* @return the MaterialType for this salvageable
*/
public MaterialType getSalvageMaterialType();
/**
* Gets the maximum quantity of salvage materials ignoring all other salvage bonuses
*
* This is typically set to the number of items needed to create that item, for example 5 for helmets or 2 for swords
*
* @return the maximum number of items
*/
public int getMaximumQuantity();
/**
* Gets the maximum durability of this item before it breaks
*
* @return the maximum durability
*/
public short getMaximumDurability();
/**
* Gets the base salvage durability on which to calculate bonuses.
*
* This is actually the maximum durability divided by the minimum quantity
*
* @return the base salvage durability
*/
public short getBaseSalvageDurability();
/**
* Gets the minimum salvage level needed to salvage this item
*
* @return the minimum level to salvage this item, or 0 for no minimum
*/
public int getMinimumLevel();
/**
* Gets the xpMultiplier for this salvageable
*
* @return the xpMultiplier of this salvageable
*/
public double getXpMultiplier();
}