Files
MagicBees/magicbees_src/magicbees/bees/HiveDrop.java
T

77 lines
1.8 KiB
Java
Raw Normal View History

2013-05-23 21:07:28 -07:00
package magicbees.bees;
import java.util.ArrayList;
import java.util.Collection;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import forestry.api.apiculture.EnumBeeType;
2013-08-25 19:56:55 -07:00
import forestry.api.apiculture.IBee;
2013-05-23 21:07:28 -07:00
import forestry.api.apiculture.IHiveDrop;
import forestry.api.genetics.IAllele;
public class HiveDrop implements IHiveDrop
{
private IAllele[] template;
private int chance;
private ItemStack[] bonus;
2013-08-25 19:56:55 -07:00
private float ignoblePercent = 0f;
2013-05-23 21:07:28 -07:00
public HiveDrop(IAllele[] beeTemplate, ItemStack[] bonusDrops, int dropChance)
{
this.template = beeTemplate;
this.bonus = bonusDrops;
this.chance = dropChance;
}
2013-08-25 19:56:55 -07:00
public HiveDrop setIgnoblePercentage(float f)
{
this.ignoblePercent = f;
return this;
}
private IBee getBee(World w)
{
IBee bee = BeeManager.beeRoot.getBee(w, BeeManager.beeRoot.templateAsGenome(this.template));
if (w.rand.nextFloat() < this.ignoblePercent)
{
bee.setIsNatural(false);
}
return bee;
}
2013-05-23 21:07:28 -07:00
@Override
public ItemStack getPrincess(World world, int x, int y, int z, int fortune)
{
2013-08-25 19:56:55 -07:00
return BeeManager.beeRoot.getMemberStack(getBee(world), EnumBeeType.PRINCESS.ordinal());
2013-05-23 21:07:28 -07:00
}
@Override
public Collection<ItemStack> getDrones(World world, int x, int y, int z, int fortune)
{
ArrayList<ItemStack> value = new ArrayList<ItemStack>(1);
2013-08-25 19:56:55 -07:00
value.add(BeeManager.beeRoot.getMemberStack(getBee(world), EnumBeeType.DRONE.ordinal()));
2013-05-23 21:07:28 -07:00
return value;
}
@Override
public Collection<ItemStack> getAdditional(World world, int x, int y, int z, int fortune)
{
ArrayList<ItemStack> value = new ArrayList<ItemStack>(bonus.length);
for (int i = 0; i < bonus.length; ++i)
{
value.add(bonus[i].copy());
}
return value;
}
@Override
public int getChance(World world, int x, int y, int z)
{
return this.chance;
}
}