package net.minecraftforge.cauldron.api;
import org.bukkit.inventory.ItemStack;
public class WeightedRandomFishable
{
private ItemStack itemStack;
private int weight;
private boolean hasRandomEnchantments;
private float damageFraction;
public WeightedRandomFishable(ItemStack itemStack, int weight)
{
this.itemStack = itemStack;
this.weight = weight;
}
/**
* Setting this value results in fished items having random damage when fished. The damage is in a triangular
* random distribution (think about rolling 2 dice), with the wide end at 100% and
* the narrow end at (100% - damageFraction).
* <p>
* For use in a chaining constructor.
*
* @param damageFraction low boundary for random distribution
* @return this WeightedRandomFishable, for chaining
*/
public final WeightedRandomFishable withDamageFraction(float damageFraction)
{
damageFraction = damageFraction;
return this;
}
/**
* Mark this WeightedRandomFishable as receiving random enchantments.
*
* @return this WeightedRandomFishable, for chaining
*/
public final WeightedRandomFishable withRandomEnchantments()
{
hasRandomEnchantments = true;
return this;
}
/**
* Set whether this WeightedRandomFishable receives random enchantments.
* (Use this method if loading from another source, such as a config file.)
*
* @return this WeightedRandomFishable, for chaining
*/
public final WeightedRandomFishable withRandomEnchantments(boolean hasEnchants)
{
hasRandomEnchantments = hasEnchants;
return this;
}
public ItemStack getItemStack()
{
return itemStack;
}
public int getWeight()
{
return weight;
}
public boolean hasRandomEnchantments()
{
return hasRandomEnchantments;
}
public float getDamageFraction()
{
return damageFraction;
}
}