aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gtPlusPlus/xmod/forestry/bees/items
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gtPlusPlus/xmod/forestry/bees/items')
-rw-r--r--src/main/java/gtPlusPlus/xmod/forestry/bees/items/FR_CustomBee.java5
-rw-r--r--src/main/java/gtPlusPlus/xmod/forestry/bees/items/FR_ItemRegistry.java107
-rw-r--r--src/main/java/gtPlusPlus/xmod/forestry/bees/items/FR_StringUtil.java24
-rw-r--r--src/main/java/gtPlusPlus/xmod/forestry/bees/items/MB_FrameType.java126
-rw-r--r--src/main/java/gtPlusPlus/xmod/forestry/bees/items/MB_ItemFrame.java143
5 files changed, 405 insertions, 0 deletions
diff --git a/src/main/java/gtPlusPlus/xmod/forestry/bees/items/FR_CustomBee.java b/src/main/java/gtPlusPlus/xmod/forestry/bees/items/FR_CustomBee.java
new file mode 100644
index 0000000000..7d9a9e231b
--- /dev/null
+++ b/src/main/java/gtPlusPlus/xmod/forestry/bees/items/FR_CustomBee.java
@@ -0,0 +1,5 @@
+package gtPlusPlus.xmod.forestry.bees.items;
+
+public class FR_CustomBee {
+
+}
diff --git a/src/main/java/gtPlusPlus/xmod/forestry/bees/items/FR_ItemRegistry.java b/src/main/java/gtPlusPlus/xmod/forestry/bees/items/FR_ItemRegistry.java
new file mode 100644
index 0000000000..e1d37ab463
--- /dev/null
+++ b/src/main/java/gtPlusPlus/xmod/forestry/bees/items/FR_ItemRegistry.java
@@ -0,0 +1,107 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2014 SirSengir.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v3
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/lgpl-3.0.txt
+ *
+ * Various Contributors including, but not limited to:
+ * SirSengir (original work), CovertJaguar, Player, Binnie, MysteriousAges
+ ******************************************************************************/
+package gtPlusPlus.xmod.forestry.bees.items;
+import cpw.mods.fml.common.Optional;
+import cpw.mods.fml.common.registry.GameRegistry;
+
+import net.minecraft.item.EnumRarity;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.WeightedRandomChestContent;
+
+import forestry.core.utils.StringUtil;
+import gtPlusPlus.core.lib.CORE;
+import gtPlusPlus.core.lib.LoadedMods;
+import net.minecraftforge.common.ChestGenHooks;
+
+public class FR_ItemRegistry {
+
+
+ //----- Apiary Frames ----------------------
+ //public static FR_ItemHiveFrame frameUntreated;
+ //public static FR_ItemHiveFrame frameImpregnated;
+ //public static FR_ItemHiveFrame frameProven;
+
+ //Magic Bee Frame Items
+ public static MB_ItemFrame hiveFrameAccelerated;
+ public static MB_ItemFrame hiveFrameVoid;
+ public static MB_ItemFrame hiveFrameMutagenic;
+ public static MB_ItemFrame hiveFrameBusy;
+
+ //Extra Bee Frame Items
+ public static MB_ItemFrame hiveFrameCocoa;
+ public static MB_ItemFrame hiveFrameCaged;
+ public static MB_ItemFrame hiveFrameSoul;
+ public static MB_ItemFrame hiveFrameClay;
+ public static MB_ItemFrame hiveFrameNova;
+
+ // Frame Items added by bartimaeusnek
+ public static MB_ItemFrame hiveFrameDecay;
+ public static MB_ItemFrame hiveFrameSlow;
+ public static MB_ItemFrame hiveFrameStalilize;
+ public static MB_ItemFrame hiveFrameArborist;
+
+ @Optional.Method(modid = "Forestry")
+ public static void Register() {
+
+ //Forestry Frames
+ //frameUntreated = registerItem(new FR_ItemHiveFrame(80, 0.9f), "frameUntreated");
+ //frameImpregnated = registerItem(new FR_ItemHiveFrame(240, 0.4f), "frameImpregnated");
+ //frameProven = registerItem(new FR_ItemHiveFrame(720, 0.3f), "frameProven");
+
+ //Magic Bee like Frames
+
+ if (!CORE.GTNH) {
+ hiveFrameVoid = new MB_ItemFrame(MB_FrameType.VOID, EnumRarity.rare, "Makes your bee die in the blink of an eye.");
+ }
+ else {
+ hiveFrameVoid = new MB_ItemFrame(MB_FrameType.USELESS, EnumRarity.common, "No more cheaty frames for GTNH players.");
+ }
+
+ hiveFrameAccelerated = new MB_ItemFrame(MB_FrameType.ACCELERATED, "Longevity for bees isn't very common, especially if they're working harder.");
+ hiveFrameMutagenic = new MB_ItemFrame(MB_FrameType.MUTAGENIC, EnumRarity.epic, "Evolution of the fittest, finest and fastest.");
+ hiveFrameBusy = new MB_ItemFrame(MB_FrameType.BUSY, "Your bee will work harder and longer than you expected.");
+ ChestGenHooks.addItem(ChestGenHooks.STRONGHOLD_CORRIDOR, new WeightedRandomChestContent(new ItemStack(hiveFrameVoid), 1, 1, 14));
+ ChestGenHooks.addItem(ChestGenHooks.STRONGHOLD_LIBRARY, new WeightedRandomChestContent(new ItemStack(hiveFrameVoid), 1, 3, 18));
+ ChestGenHooks.addItem(ChestGenHooks.DUNGEON_CHEST, new WeightedRandomChestContent(new ItemStack(hiveFrameVoid), 1, 1, 14));
+ ChestGenHooks.addItem(ChestGenHooks.MINESHAFT_CORRIDOR, new WeightedRandomChestContent(new ItemStack(hiveFrameVoid), 1, 1, 9));
+ ChestGenHooks.addItem(ChestGenHooks.PYRAMID_DESERT_CHEST, new WeightedRandomChestContent(new ItemStack(hiveFrameMutagenic), 1, 1, 9));
+ ChestGenHooks.addItem(ChestGenHooks.PYRAMID_JUNGLE_CHEST, new WeightedRandomChestContent(new ItemStack(hiveFrameMutagenic), 1, 3, 12));
+ ChestGenHooks.addItem(ChestGenHooks.MINESHAFT_CORRIDOR, new WeightedRandomChestContent(new ItemStack(hiveFrameMutagenic), 1, 3, 8));
+ ChestGenHooks.addItem(ChestGenHooks.DUNGEON_CHEST, new WeightedRandomChestContent(new ItemStack(hiveFrameMutagenic), 1, 3, 12));
+
+ //Extra Bee like Frames
+ if (!LoadedMods.ExtraBees){
+ hiveFrameCocoa = new MB_ItemFrame(MB_FrameType.COCOA, EnumRarity.common, "");
+ hiveFrameCaged = new MB_ItemFrame(MB_FrameType.CAGE, EnumRarity.common, "");
+ hiveFrameSoul = new MB_ItemFrame(MB_FrameType.SOUL, EnumRarity.common, "");
+ hiveFrameClay = new MB_ItemFrame(MB_FrameType.CLAY, EnumRarity.common, "");
+ hiveFrameNova = new MB_ItemFrame(MB_FrameType.NOVA, EnumRarity.epic, "A Creative Only Frame.");
+ }
+
+ // Frame Items added by bartimaeusnek
+ hiveFrameDecay = new MB_ItemFrame(MB_FrameType.DECAYING, EnumRarity.uncommon, "Who really needs stable genetics?");
+ hiveFrameSlow = new MB_ItemFrame(MB_FrameType.SLOWING, EnumRarity.common, "The journey is its own reward.");
+ hiveFrameStalilize = new MB_ItemFrame(MB_FrameType.STABILIZING, EnumRarity.rare, "If you wish your bees to keep their form.");
+ hiveFrameArborist = new MB_ItemFrame(MB_FrameType.ARBORISTS, EnumRarity.common, "Who need Bees when you can have Trees?");
+ ChestGenHooks.addItem(ChestGenHooks.PYRAMID_JUNGLE_CHEST, new WeightedRandomChestContent(new ItemStack(hiveFrameArborist), 1, 4, 24));
+ ChestGenHooks.addItem(ChestGenHooks.STRONGHOLD_LIBRARY, new WeightedRandomChestContent(new ItemStack(hiveFrameSlow), 1, 4, 24));
+ }
+
+ protected static <T extends Item> T registerItem(final T item, final String name) {
+ item.setUnlocalizedName(name);
+ GameRegistry.registerItem(item, StringUtil.cleanItemName(item));
+ return item;
+ }
+
+}
+
+
diff --git a/src/main/java/gtPlusPlus/xmod/forestry/bees/items/FR_StringUtil.java b/src/main/java/gtPlusPlus/xmod/forestry/bees/items/FR_StringUtil.java
new file mode 100644
index 0000000000..e075bf1eda
--- /dev/null
+++ b/src/main/java/gtPlusPlus/xmod/forestry/bees/items/FR_StringUtil.java
@@ -0,0 +1,24 @@
+package gtPlusPlus.xmod.forestry.bees.items;
+
+import net.minecraft.util.StatCollector;
+
+public class FR_StringUtil
+{
+ public static String getLocalizedString(final String key)
+ {
+ if(StatCollector.canTranslate(key))
+ {
+ return StatCollector.translateToLocal(key);
+ }
+ return StatCollector.translateToFallback(key);
+ }
+
+ public static String getLocalizedString(final String key, final Object... objects)
+ {
+ if(StatCollector.canTranslate(key))
+ {
+ return String.format(StatCollector.translateToLocal(key), objects);
+ }
+ return String.format(StatCollector.translateToFallback(key), objects);
+ }
+}
diff --git a/src/main/java/gtPlusPlus/xmod/forestry/bees/items/MB_FrameType.java b/src/main/java/gtPlusPlus/xmod/forestry/bees/items/MB_FrameType.java
new file mode 100644
index 0000000000..1016021e44
--- /dev/null
+++ b/src/main/java/gtPlusPlus/xmod/forestry/bees/items/MB_FrameType.java
@@ -0,0 +1,126 @@
+package gtPlusPlus.xmod.forestry.bees.items;
+
+import forestry.api.apiculture.IBeeGenome;
+import forestry.api.apiculture.IBeeModifier;
+
+public enum MB_FrameType implements IBeeModifier
+{
+ //ExtraBees Clone Frames
+ //Name, FrameHP, territory (1f), Mutation rate, lifespan rate, production rate, genetic decay (1f)
+ COCOA("Chocolate", 240, 1.0f, 1.0f, 0.50f, 1.50f, 1f),
+ CAGE("Restraint", 240, 0.5f, 1.0f, 0.75f, 0.75f, 1f),
+ SOUL("Soul", 80, 1.0f, 1.5f, 0.75f, 0.25f, 1f),
+ CLAY("Healing", 240, 1.0f, 0.5f, 1.50f, 0.75f, 1f),
+ NOVA("Nova", 240, 1.0f, 100.0f, 0.0001f, 1.00f, 1f),
+
+
+ //Name, FrameHP, territory (1f), Mutation rate, lifespan rate, production rate, genetic decay (1f)
+ ACCELERATED("Accelerated", 175, 1f, 1.2f, 0.9f, 1.8f, 1f),
+ VOID("Void", 20, 1f, 1f, 0.0001f, 10f, 1f),
+ MUTAGENIC("Mutagenic", 3, 1f, 5f, 0.0001f, 10f, 1f),
+ BUSY("Busy", 2000, 1f, 0f, 3f, 4f, 1f),
+ USELESS("Useless", 100, 1f, 0f, 1f, 1f, 1f),
+
+ // Frame Items added by bartimaeusnek
+ DECAYING("Decaying", 240, 1f, 1f, 1f, 1f, 10f), //enhanches decay to 10x
+ SLOWING("Slowing", 175, 1f, 0.5f, 2f, 0.5f, 1f), //reduces mutation, production rate and enhanches lifespan
+ STABILIZING("Stabilizing", 60, 1f, 0.1f, 1f, 0.1f, 0.5f), //reduces mutation, production and decay
+ ARBORISTS("Arborists", 240, 3f, 0f, 3f, 0f, 1f); //3x territory and lifespan, sets mutation and production to zero
+
+ private final String frameName;
+ public final int maxDamage;
+
+ private final float territoryMod;
+ private final float mutationMod;
+ private final float lifespanMod;
+ private final float productionMod;
+ private final float floweringMod;
+ private final float geneticDecayMod;
+ private final boolean isSealed;
+ private final boolean isLit;
+ private final boolean isSunlit;
+ private final boolean isHellish;
+
+ MB_FrameType(final String name, final int damage, final float territory, final float mutation, final float lifespan, final float production, final float geneticDecay) {
+ this(name, damage, territory, mutation, lifespan, production, 1f, geneticDecay, false, false, false, false);
+ }
+
+ MB_FrameType(final String name, final int damage,
+ final float territory, final float mutation, final float lifespan, final float production, final float flowering, final float geneticDecay,
+ final boolean sealed, final boolean lit, final boolean sunlit, final boolean hellish)
+ {
+ this.frameName = name;
+ this.maxDamage = damage;
+
+ this.territoryMod = territory;
+ this.mutationMod = mutation;
+ this.lifespanMod = lifespan;
+ this.productionMod = production;
+ this.floweringMod = flowering;
+ this.geneticDecayMod = geneticDecay;
+ this.isSealed = sealed;
+ this.isLit = lit;
+ this.isSunlit = sunlit;
+ this.isHellish = hellish;
+ }
+
+ public String getName()
+ {
+ return this.frameName;
+ }
+
+ public String getLocalizedName()
+ {
+ return FR_StringUtil.getLocalizedString("frame." + this.frameName);
+ }
+
+ @Override
+ public float getTerritoryModifier(final IBeeGenome genome, final float currentModifier) {
+ return this.territoryMod;
+ }
+
+ @Override
+ public float getMutationModifier(final IBeeGenome genome, final IBeeGenome mate, final float currentModifier) {
+ return this.mutationMod;
+ }
+
+ @Override
+ public float getLifespanModifier(final IBeeGenome genome, final IBeeGenome mate, final float currentModifier) {
+ return this.lifespanMod;
+ }
+
+ @Override
+ public float getProductionModifier(final IBeeGenome genome, final float currentModifier) {
+ return this.productionMod;
+ }
+
+ @Override
+ public float getFloweringModifier(final IBeeGenome genome, final float currentModifier) {
+ return this.floweringMod;
+ }
+
+ @Override
+ public float getGeneticDecay(final IBeeGenome genome, final float currentModifier) {
+ return this.geneticDecayMod;
+ }
+
+ @Override
+ public boolean isSealed() {
+ return this.isSealed;
+ }
+
+ @Override
+ public boolean isSelfLighted() {
+ return this.isLit;
+ }
+
+ @Override
+ public boolean isSunlightSimulated() {
+ return this.isSunlit;
+ }
+
+ @Override
+ public boolean isHellish() {
+ return this.isHellish;
+ }
+}
diff --git a/src/main/java/gtPlusPlus/xmod/forestry/bees/items/MB_ItemFrame.java b/src/main/java/gtPlusPlus/xmod/forestry/bees/items/MB_ItemFrame.java
new file mode 100644
index 0000000000..65b6977b8a
--- /dev/null
+++ b/src/main/java/gtPlusPlus/xmod/forestry/bees/items/MB_ItemFrame.java
@@ -0,0 +1,143 @@
+package gtPlusPlus.xmod.forestry.bees.items;
+
+import java.util.List;
+
+import cpw.mods.fml.common.registry.GameRegistry;
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.EnumRarity;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.EnumChatFormatting;
+
+import forestry.api.apiculture.*;
+import gtPlusPlus.core.creative.AddToCreativeTab;
+import gtPlusPlus.core.lib.CORE;
+
+public class MB_ItemFrame extends Item implements IHiveFrame
+{
+ private final MB_FrameType type;
+ private EnumRarity rarity_value = EnumRarity.uncommon;
+ private final String toolTip;
+
+ public MB_ItemFrame(final MB_FrameType frameType, final String description)
+ {
+ this(frameType, EnumRarity.uncommon, description);
+ }
+
+ public MB_ItemFrame(final MB_FrameType frameType, final EnumRarity rarity, final String description)
+ {
+ super();
+ this.type = frameType;
+ this.setMaxDamage(this.type.maxDamage);
+ this.setMaxStackSize(1);
+ this.setCreativeTab(AddToCreativeTab.tabMisc);
+ this.setUnlocalizedName("frame" + frameType.getName());
+ this.rarity_value = rarity;
+ this.toolTip = description;
+ GameRegistry.registerItem(this, "frame" + frameType.getName());
+ }
+
+ @Override
+ public void addInformation(final ItemStack stack, final EntityPlayer aPlayer, final List list, final boolean bool) {
+ if ((this.toolTip != "") || !this.toolTip.equals("")){
+ list.add(EnumChatFormatting.GRAY+this.toolTip);
+ }
+ super.addInformation(stack, aPlayer, list, bool);
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void registerIcons(final IIconRegister par1IconRegister)
+ {
+ this.itemIcon = par1IconRegister.registerIcon(CORE.MODID + ":frame" + this.type.getName());
+ }
+
+ // --------- IHiveFrame functions -----------------------------------------
+
+ @Override
+ public ItemStack frameUsed(final IBeeHousing housing, ItemStack frame, final IBee queen, final int wear) {
+ frame.setItemDamage(frame.getItemDamage() + wear);
+
+ if (frame.getItemDamage() >= frame.getMaxDamage()) {
+ // Break the frame.
+ frame = null;
+ }
+
+ return frame;
+ }
+
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public EnumRarity getRarity(final ItemStack par1ItemStack){
+ return this.rarity_value;
+ }
+
+ @Override
+ public boolean hasEffect(final ItemStack par1ItemStack){
+ if ((this.rarity_value == EnumRarity.uncommon) || (this.rarity_value == EnumRarity.common)){
+ return false;
+ }
+ return true;
+ }
+
+ @Override
+ public IBeeModifier getBeeModifier() {
+ return this.type;
+ }
+
+ @Override
+ public boolean isBookEnchantable(final ItemStack itemstack1, final ItemStack itemstack2) {
+ return false;
+ }
+
+ @Override
+ public boolean isRepairable() {
+ return false;
+ }
+
+ public float getTerritoryModifier(final IBeeGenome genome, final float currentModifier) {
+ return this.type.getTerritoryModifier(genome, currentModifier);
+ }
+
+ public float getMutationModifier(final IBeeGenome genome, final IBeeGenome mate, final float currentModifier) {
+ return this.type.getMutationModifier(genome, mate, currentModifier);
+ }
+
+ public float getLifespanModifier(final IBeeGenome genome, final IBeeGenome mate, final float currentModifier) {
+ return this.type.getLifespanModifier(genome, mate, currentModifier);
+ }
+
+ public float getProductionModifier(final IBeeGenome genome, final float currentModifier) {
+ return this.type.getProductionModifier(genome, currentModifier);
+ }
+
+ public float getFloweringModifier(final IBeeGenome genome, final float currentModifier) {
+ return this.type.getFloweringModifier(genome, currentModifier);
+ }
+
+ public float getGeneticDecay(final IBeeGenome genome, final float currentModifier) {
+ return this.type.getGeneticDecay(genome, currentModifier);
+ }
+
+ public boolean isSealed() {
+ return this.type.isSealed();
+ }
+
+ public boolean isSelfLighted() {
+ return this.type.isSelfLighted();
+ }
+
+ public boolean isSunlightSimulated() {
+ return this.type.isSunlightSimulated();
+ }
+
+ public boolean isHellish(){
+ return this.type.isHellish();
+ }
+
+}