Files
MagicBees/src/main/java/magicbees/bees/HiveDrop.java
T

69 lines
1.9 KiB
Java
Raw Normal View History

2013-05-23 21:07:28 -07:00
package magicbees.bees;
2022-10-12 21:09:45 +02:00
import java.util.ArrayList;
import java.util.Collection;
2022-10-12 21:09:45 +02:00
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import forestry.api.apiculture.EnumBeeType;
import forestry.api.apiculture.IBee;
import forestry.api.apiculture.IHiveDrop;
import forestry.api.genetics.IAllele;
2022-10-12 21:09:45 +02:00
public class HiveDrop implements IHiveDrop {
2022-10-12 21:09:45 +02:00
private IAllele[] template;
private int chance;
private ItemStack[] bonus;
private float ignoblePercent = 0f;
public HiveDrop(IAllele[] beeTemplate, ItemStack[] bonusDrops, int dropChance) {
this.template = beeTemplate;
this.bonus = bonusDrops;
this.chance = dropChance;
}
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;
}
@Override
public ItemStack getPrincess(World world, int x, int y, int z, int fortune) {
return BeeManager.beeRoot.getMemberStack(getBee(world), EnumBeeType.PRINCESS.ordinal());
}
2013-05-23 21:07:28 -07:00
2022-10-12 21:09:45 +02:00
@Override
public Collection<ItemStack> getDrones(World world, int x, int y, int z, int fortune) {
ArrayList<ItemStack> value = new ArrayList<ItemStack>(1);
value.add(BeeManager.beeRoot.getMemberStack(getBee(world), EnumBeeType.DRONE.ordinal()));
return value;
}
2013-05-23 21:07:28 -07:00
2022-10-12 21:09:45 +02:00
@Override
public Collection<ItemStack> getAdditional(World world, int x, int y, int z, int fortune) {
ArrayList<ItemStack> value = new ArrayList<ItemStack>(bonus.length);
2013-05-23 21:07:28 -07:00
2022-10-12 21:09:45 +02:00
for (int i = 0; i < bonus.length; ++i) {
value.add(bonus[i].copy());
}
2013-05-23 21:07:28 -07:00
2022-10-12 21:09:45 +02:00
return value;
}
2013-05-23 21:07:28 -07:00
2022-10-12 21:09:45 +02:00
@Override
public int getChance(World world, int x, int y, int z) {
return this.chance;
}
2013-05-23 21:07:28 -07:00
}