Search in sources :

Example 26 with IBee

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;
}
Also used : Item(net.minecraft.item.Item) ItemRegistryApiculture(forestry.apiculture.items.ItemRegistryApiculture) NBTTagCompound(net.minecraft.nbt.NBTTagCompound) IBee(forestry.api.apiculture.IBee) ItemStack(net.minecraft.item.ItemStack) EnumBeeType(forestry.api.apiculture.EnumBeeType)

Example 27 with IBee

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());
}
Also used : EntityPlayer(net.minecraft.entity.player.EntityPlayer) IBee(forestry.api.apiculture.IBee) IBeeGenome(forestry.api.apiculture.IBeeGenome) ItemStack(net.minecraft.item.ItemStack) EnumBeeType(forestry.api.apiculture.EnumBeeType)

Example 28 with IBee

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);
}
Also used : IBee(forestry.api.apiculture.IBee) ItemStack(net.minecraft.item.ItemStack)

Example 29 with IBee

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;
                    }
                }
            }
        }
    }
}
Also used : IBeeHousing(forestry.api.apiculture.IBeeHousing) IBeeRoot(forestry.api.apiculture.IBeeRoot) IBee(forestry.api.apiculture.IBee) ItemStack(net.minecraft.item.ItemStack)

Example 30 with IBee

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);
}
Also used : IBee(forestry.api.apiculture.IBee) IBeeGenome(forestry.api.apiculture.IBeeGenome)

Aggregations

IBee (forestry.api.apiculture.IBee)33 ItemStack (net.minecraft.item.ItemStack)17 IBeeGenome (forestry.api.apiculture.IBeeGenome)7 EnumBeeType (forestry.api.apiculture.EnumBeeType)6 World (net.minecraft.world.World)6 NBTTagCompound (net.minecraft.nbt.NBTTagCompound)5 SideOnly (net.minecraftforge.fml.relauncher.SideOnly)4 IBeeHousingInventory (forestry.api.apiculture.IBeeHousingInventory)3 IBeeRoot (forestry.api.apiculture.IBeeRoot)3 IAllele (forestry.api.genetics.IAllele)3 GuiAlyzer (forestry.core.gui.GuiAlyzer)3 TextLayoutHelper (forestry.core.gui.TextLayoutHelper)3 ArrayList (java.util.ArrayList)3 IBeekeepingMode (forestry.api.apiculture.IBeekeepingMode)2 IHiveDrop (forestry.api.apiculture.IHiveDrop)2 IHiveFrame (forestry.api.apiculture.IHiveFrame)2 IChromosome (forestry.api.genetics.IChromosome)2 Random (java.util.Random)2 Item (net.minecraft.item.Item)2 IncubatorRecipe (binnie.genetics.machine.incubator.IncubatorRecipe)1