aboutsummaryrefslogtreecommitdiff
path: root/src/Java/binnie/extrabees/apiary/machine/AlvearyHatchery.java
diff options
context:
space:
mode:
authorDraknyte1 <Draknyte1@hotmail.com>2016-01-20 14:24:34 +1000
committerDraknyte1 <Draknyte1@hotmail.com>2016-01-20 14:24:34 +1000
commit869c206c4fcc8001bd2e1d66f704290331813835 (patch)
tree96735ce8fe4665e2759c3374221d6f06f4527df2 /src/Java/binnie/extrabees/apiary/machine/AlvearyHatchery.java
parentec2c72827f01dd4bb2174137f1ab162f9ddaab62 (diff)
downloadGT5-Unofficial-869c206c4fcc8001bd2e1d66f704290331813835.tar.gz
GT5-Unofficial-869c206c4fcc8001bd2e1d66f704290331813835.tar.bz2
GT5-Unofficial-869c206c4fcc8001bd2e1d66f704290331813835.zip
Initial Commit
Diffstat (limited to 'src/Java/binnie/extrabees/apiary/machine/AlvearyHatchery.java')
-rw-r--r--src/Java/binnie/extrabees/apiary/machine/AlvearyHatchery.java106
1 files changed, 106 insertions, 0 deletions
diff --git a/src/Java/binnie/extrabees/apiary/machine/AlvearyHatchery.java b/src/Java/binnie/extrabees/apiary/machine/AlvearyHatchery.java
new file mode 100644
index 0000000000..276683b860
--- /dev/null
+++ b/src/Java/binnie/extrabees/apiary/machine/AlvearyHatchery.java
@@ -0,0 +1,106 @@
+package binnie.extrabees.apiary.machine;
+
+import binnie.Binnie;
+import binnie.core.genetics.ManagerGenetics;
+import binnie.core.machines.IMachine;
+import binnie.core.machines.Machine;
+import binnie.core.machines.inventory.ComponentInventorySlots;
+import binnie.core.machines.inventory.InventorySlot;
+import binnie.core.machines.inventory.SlotValidator;
+import binnie.core.machines.transfer.TransferRequest;
+import binnie.craftgui.minecraft.IMachineInformation;
+import binnie.extrabees.apiary.ComponentBeeModifier;
+import binnie.extrabees.apiary.ComponentExtraBeeGUI;
+import binnie.extrabees.apiary.TileExtraBeeAlveary;
+import binnie.extrabees.core.ExtraBeeGUID;
+import binnie.extrabees.core.ExtraBeeTexture;
+import forestry.api.apiculture.EnumBeeType;
+import forestry.api.apiculture.IBee;
+import forestry.api.apiculture.IBeeHousing;
+import forestry.api.apiculture.IBeeListener;
+import forestry.api.apiculture.IBeeModifier;
+import forestry.api.apiculture.IBeeRoot;
+import forestry.core.EnumErrorCode;
+import java.util.Random;
+import net.minecraft.item.ItemStack;
+import net.minecraft.tileentity.TileEntity;
+
+public class AlvearyHatchery
+{
+ public static int[] slotLarvae = { 0, 1, 2, 3, 4 };
+
+ public static class PackageAlvearyHatchery
+ extends AlvearyMachine.AlvearyPackage
+ implements IMachineInformation
+ {
+ public PackageAlvearyHatchery()
+ {
+ super(ExtraBeeTexture.AlvearyHatchery.getTexture(), false);
+ }
+
+ public void createMachine(Machine machine)
+ {
+ new ComponentExtraBeeGUI(machine, ExtraBeeGUID.AlvearyHatchery);
+
+ ComponentInventorySlots inventory = new ComponentInventorySlots(machine);
+ for (InventorySlot slot : inventory.addSlotArray(AlvearyHatchery.slotLarvae, "hatchery")) {
+ slot.setValidator(new AlvearyHatchery.SlotValidatorLarvae());
+ }
+ new AlvearyHatchery.ComponentFrameModifier(machine);
+ }
+ }
+
+ public static class SlotValidatorLarvae
+ extends SlotValidator
+ {
+ public SlotValidatorLarvae()
+ {
+ super();
+ }
+
+ public boolean isValid(ItemStack itemStack)
+ {
+ return (Binnie.Genetics.getBeeRoot().isMember(itemStack)) && (Binnie.Genetics.getBeeRoot().getType(itemStack) == EnumBeeType.LARVAE);
+ }
+
+ public String getTooltip()
+ {
+ return "Larvae";
+ }
+ }
+
+ public static class ComponentFrameModifier
+ extends ComponentBeeModifier
+ implements IBeeModifier, IBeeListener
+ {
+ public ComponentFrameModifier(Machine machine)
+ {
+ super();
+ }
+
+ public void onUpdate()
+ {
+ if (new Random().nextInt(2400) == 0)
+ {
+ TileEntity tile = getMachine().getTileEntity();
+ if ((tile instanceof TileExtraBeeAlveary))
+ {
+ IBeeHousing house = ((TileExtraBeeAlveary)tile).getBeeHousing();
+ if ((house != null) && (house.getErrorState() == EnumErrorCode.OK))
+ {
+ ItemStack queenStack = house.getQueen();
+ IBee queen = queenStack == null ? null : Binnie.Genetics.getBeeRoot().getMember(queenStack);
+ if (queen != null)
+ {
+ ItemStack larvae = Binnie.Genetics.getBeeRoot().getMemberStack(Binnie.Genetics.getBeeRoot().getBee(getMachine().getWorld(), queen.getGenome()), EnumBeeType.LARVAE.ordinal());
+
+
+
+ new TransferRequest(larvae, getInventory()).transfer(true);
+ }
+ }
+ }
+ }
+ }
+ }
+}