use of forestry.api.apiculture.IBee in project ForestryMC by ForestryMC.
the class BeeRoot method getMemberStack.
@Override
public ItemStack getMemberStack(IIndividual individual, ISpeciesType type) {
Preconditions.checkArgument(individual instanceof IBee, "individual is not a bee");
Preconditions.checkArgument(type instanceof EnumBeeType, "type is not an EnumBeeType");
ItemRegistryApiculture apicultureItems = ModuleApiculture.getItems();
IBee bee = (IBee) individual;
Item beeItem;
switch((EnumBeeType) type) {
case QUEEN:
beeItem = apicultureItems.beeQueenGE;
// ensure a queen is always mated
if (bee.getMate() == null) {
bee.mate(bee);
}
break;
case PRINCESS:
beeItem = apicultureItems.beePrincessGE;
break;
case DRONE:
beeItem = apicultureItems.beeDroneGE;
break;
case LARVAE:
beeItem = apicultureItems.beeLarvaeGE;
break;
default:
throw new RuntimeException("Cannot instantiate a bee of type " + type);
}
NBTTagCompound nbttagcompound = new NBTTagCompound();
bee.writeToNBT(nbttagcompound);
ItemStack beeStack = new ItemStack(beeItem);
beeStack.setTagCompound(nbttagcompound);
return beeStack;
}
use of forestry.api.apiculture.IBee in project ForestryMC by ForestryMC.
the class CommandBeeGive method execute.
@Override
public void execute(MinecraftServer server, ICommandSender sender, String[] args) throws CommandException {
if (args.length < 2) {
printHelp(sender);
return;
}
IBeeGenome beeGenome = getBeeGenome(args[0]);
EnumBeeType beeType = getBeeType(args[1]);
if (beeType == null) {
printHelp(sender);
return;
}
EntityPlayer player;
if (args.length == 3) {
player = CommandBase.getPlayer(server, sender, args[2]);
} else {
player = CommandBase.getPlayer(server, sender, sender.getName());
}
IBee bee = BeeManager.beeRoot.getBee(beeGenome);
if (beeType == EnumBeeType.QUEEN) {
bee.mate(bee);
}
ItemStack beeStack = BeeManager.beeRoot.getMemberStack(bee, beeType);
player.dropItem(beeStack, false, true);
CommandHelpers.sendLocalizedChatMessage(sender, "for.chat.command.forestry.bee.give.given", player.getName(), bee.getGenome().getPrimary().getAlleleName(), beeType.getName());
}
use of forestry.api.apiculture.IBee in project Binnie by ForestryMC.
the class IncubatorRecipeLarvae method getOutputStack.
@Override
public ItemStack getOutputStack(final MachineUtil machine) {
final ItemStack larvae = machine.getStack(Incubator.SLOT_INCUBATOR);
final IBee bee = BeeManager.beeRoot.getMember(larvae);
if (bee == null) {
return ItemStack.EMPTY;
}
return BeeManager.beeRoot.getMemberStack(bee, EnumBeeType.DRONE);
}
use of forestry.api.apiculture.IBee in project Binnie by ForestryMC.
the class AlvearyLogicHatchery method updateServer.
@Override
public void updateServer(TileEntityExtraBeesAlvearyPart tile) {
if (tile.getWorldObj().rand.nextInt(2400) == 0) {
final IBeeHousing house = tile.getMultiblockLogic().getController();
if (!house.getErrorLogic().hasErrors()) {
final ItemStack queenStack = house.getBeeInventory().getQueen();
IBeeRoot beeRoot = Utils.getBeeRoot();
final IBee queen = (queenStack.isEmpty()) ? null : beeRoot.getMember(queenStack);
if (queen != null) {
ItemStack larvae = beeRoot.getMemberStack(beeRoot.getBee(queen.getGenome()), EnumBeeType.LARVAE);
for (int i = 0; i < 5; i++) {
if (inv.insertItem(i, larvae, false).isEmpty()) {
return;
}
}
}
}
}
}
use of forestry.api.apiculture.IBee in project Binnie by ForestryMC.
the class ControlBiomes method setSpecies.
public void setSpecies(IAlleleBeeSpecies species) {
tolerated.clear();
IBeeGenome genome = BeeManager.beeRoot.templateAsGenome(BeeManager.beeRoot.getTemplate(species));
IBee bee = BeeManager.beeRoot.getBee(genome);
}
Aggregations