From 6d1b2216464d4dad449ac6fcfec476832224a55e Mon Sep 17 00:00:00 2001 From: Raven Szewczyk Date: Fri, 24 May 2024 19:50:35 +0100 Subject: Merge addon sources --- .../xmod/forestry/bees/items/FR_ItemRegistry.java | 120 +++++++++++++++++ .../xmod/forestry/bees/items/FR_StringUtil.java | 14 ++ .../xmod/forestry/bees/items/MB_FrameType.java | 126 ++++++++++++++++++ .../xmod/forestry/bees/items/MB_ItemFrame.java | 142 +++++++++++++++++++++ .../xmod/forestry/bees/items/output/GTPP_Comb.java | 131 +++++++++++++++++++ .../xmod/forestry/bees/items/output/GTPP_Drop.java | 131 +++++++++++++++++++ .../forestry/bees/items/output/GTPP_Pollen.java | 92 +++++++++++++ .../forestry/bees/items/output/GTPP_Propolis.java | 110 ++++++++++++++++ 8 files changed, 866 insertions(+) create mode 100644 src/main/java/gtPlusPlus/xmod/forestry/bees/items/FR_ItemRegistry.java create mode 100644 src/main/java/gtPlusPlus/xmod/forestry/bees/items/FR_StringUtil.java create mode 100644 src/main/java/gtPlusPlus/xmod/forestry/bees/items/MB_FrameType.java create mode 100644 src/main/java/gtPlusPlus/xmod/forestry/bees/items/MB_ItemFrame.java create mode 100644 src/main/java/gtPlusPlus/xmod/forestry/bees/items/output/GTPP_Comb.java create mode 100644 src/main/java/gtPlusPlus/xmod/forestry/bees/items/output/GTPP_Drop.java create mode 100644 src/main/java/gtPlusPlus/xmod/forestry/bees/items/output/GTPP_Pollen.java create mode 100644 src/main/java/gtPlusPlus/xmod/forestry/bees/items/output/GTPP_Propolis.java (limited to 'src/main/java/gtPlusPlus/xmod/forestry/bees/items') 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..b61a91710e --- /dev/null +++ b/src/main/java/gtPlusPlus/xmod/forestry/bees/items/FR_ItemRegistry.java @@ -0,0 +1,120 @@ +/******************************************************************************* + * 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 net.minecraft.item.EnumRarity; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.WeightedRandomChestContent; +import net.minecraftforge.common.ChestGenHooks; + +import cpw.mods.fml.common.Optional; +import cpw.mods.fml.common.registry.GameRegistry; +import forestry.core.utils.StringUtil; +import gregtech.api.enums.Mods; + +public class FR_ItemRegistry { + + // ----- Apiary Frames ---------------------- + + // 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 = Mods.Names.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 + + 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)); + + // 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 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..c63401aecf --- /dev/null +++ b/src/main/java/gtPlusPlus/xmod/forestry/bees/items/FR_StringUtil.java @@ -0,0 +1,14 @@ +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); + } + +} 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..418c05587f --- /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, 0.50f, 1f), // production was 1.5x, now +0.5 + CAGE("Restraint", 240, 0.5f, 1.0f, 0.75f, -0.25f, 1f), // production was 0.75x, now -0.25 + SOUL("Soul", 80, 1.0f, 1.5f, 0.75f, -0.75f, 1f), // production was 0.25x, now -0.75 + CLAY("Healing", 240, 1.0f, 0.5f, 1.50f, -0.25f, 1f), // production was 0.75x, now -0.25 + NOVA("Nova", 240, 1.0f, 100.0f, 0.0001f, 0.00f, 1f), // production was 1x, now +0 + + // Name, FrameHP, territory (1f), Mutation rate, lifespan rate, production rate, genetic decay (1f) + ACCELERATED("Accelerated", 175, 1f, 1.2f, 0.9f, 0.8f, 1f), // production was 1.8x, now +0.8 + VOID("Void", 20, 1f, 1f, 0.0001f, 9f, 1f), // production was 10x, now +9 + MUTAGENIC("Mutagenic", 3, 1f, 5f, 0.0001f, 9f, 1f), // production was 10x, now +9 + BUSY("Busy", 2000, 1f, 0f, 3f, 3f, 1f), // production was 4x, now +3 + USELESS("Useless", 100, 1f, 0f, 1f, 0f, 1f), // production was 1x, now +0 + + // Frame Items added by bartimaeusnek + DECAYING("Decaying", 240, 1f, 1f, 1f, 0f, 10f), // enhanches decay to 10x // production was 1x, now +0 + SLOWING("Slowing", 175, 1f, 0.5f, 2f, -0.5f, 1f), // reduces mutation, production rate and enhanches lifespan // + // production was 0.5x, now -0.5 + STABILIZING("Stabilizing", 60, 1f, 0.1f, 1f, -0.9f, 0.5f), // reduces mutation, production and decay // production + // was 0.1x, now -0.9 + ARBORISTS("Arborists", 240, 3f, 0f, 3f, -9001f, 1f); // 3x territory and lifespan, sets mutation and production to + // zero // production was 0x, now -9001 + + 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..e5d36d15e8 --- /dev/null +++ b/src/main/java/gtPlusPlus/xmod/forestry/bees/items/MB_ItemFrame.java @@ -0,0 +1,142 @@ +package gtPlusPlus.xmod.forestry.bees.items; + +import static gregtech.api.enums.Mods.GTPlusPlus; + +import java.util.List; + +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 cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import forestry.api.apiculture.IBee; +import forestry.api.apiculture.IBeeGenome; +import forestry.api.apiculture.IBeeHousing; +import forestry.api.apiculture.IBeeModifier; +import forestry.api.apiculture.IHiveFrame; +import gtPlusPlus.core.creative.AddToCreativeTab; + +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(GTPlusPlus.ID + ":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, final int pass) { + 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(); + } +} diff --git a/src/main/java/gtPlusPlus/xmod/forestry/bees/items/output/GTPP_Comb.java b/src/main/java/gtPlusPlus/xmod/forestry/bees/items/output/GTPP_Comb.java new file mode 100644 index 0000000000..7c9cc5a990 --- /dev/null +++ b/src/main/java/gtPlusPlus/xmod/forestry/bees/items/output/GTPP_Comb.java @@ -0,0 +1,131 @@ +package gtPlusPlus.xmod.forestry.bees.items.output; + +import static gregtech.api.enums.Mods.Forestry; +import static gregtech.api.enums.Mods.GTPlusPlus; + +import java.util.List; + +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraftforge.fluids.FluidStack; + +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import forestry.api.core.Tabs; +import gregtech.api.util.GT_ModHandler; +import gtPlusPlus.core.lib.CORE; +import gtPlusPlus.core.material.Material; +import gtPlusPlus.xmod.forestry.bees.handler.GTPP_CombType; +import gtPlusPlus.xmod.forestry.bees.handler.GTPP_DropType; +import gtPlusPlus.xmod.forestry.bees.handler.GTPP_PropolisType; +import gtPlusPlus.xmod.forestry.bees.registry.GTPP_Bees; + +public class GTPP_Comb extends Item { + + @SideOnly(Side.CLIENT) + private IIcon secondIcon; + + public GTPP_Comb() { + super(); + this.setCreativeTab(Tabs.tabApiculture); + this.setHasSubtypes(true); + this.setUnlocalizedName("gtpp.comb"); + GameRegistry.registerItem(this, "gtpp.comb", GTPlusPlus.ID); + } + + public ItemStack getStackForType(GTPP_CombType type) { + return new ItemStack(this, 1, type.mID); + } + + public ItemStack getStackForType(GTPP_CombType type, int count) { + return new ItemStack(this, count, type.mID); + } + + @Override + @SideOnly(Side.CLIENT) + public void getSubItems(Item item, CreativeTabs tabs, List list) { + for (GTPP_CombType type : GTPP_CombType.values()) { + if (type.mShowInList) { + list.add(this.getStackForType(type)); + } + } + } + + @Override + @SideOnly(Side.CLIENT) + public boolean requiresMultipleRenderPasses() { + return true; + } + + @Override + public int getRenderPasses(int meta) { + return 2; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister par1IconRegister) { + this.itemIcon = par1IconRegister.registerIcon("forestry:beeCombs.0"); + this.secondIcon = par1IconRegister.registerIcon("forestry:beeCombs.1"); + } + + @Override + public IIcon getIcon(ItemStack stack, int pass) { + return (pass == 0) ? itemIcon : secondIcon; + } + + @Override + @SideOnly(Side.CLIENT) + public int getColorFromItemStack(ItemStack stack, int pass) { + int colour = GTPP_CombType.get(stack.getItemDamage()) + .getColours()[0]; + + if (pass >= 1) { + colour = GTPP_CombType.get(stack.getItemDamage()) + .getColours()[1]; + } + + return colour; + } + + @Override + public String getItemStackDisplayName(ItemStack stack) { + return GTPP_CombType.get(stack.getItemDamage()) + .getName(); + } + + public static void initCombsRecipes() { + + addChemicalRecipe( + GTPP_CombType.DRAGONBLOOD, + new ItemStack[] { GT_ModHandler.getModItem(Forestry.ID, "refractoryWax", 1L, 0), + GTPP_Bees.propolis.getStackForType(GTPP_PropolisType.DRAGONBLOOD), + GTPP_Bees.drop.getStackForType(GTPP_DropType.DRAGONBLOOD) }, + new int[] { 3000, 1500, 500 }); + addChemicalRecipe( + GTPP_CombType.FORCE, + new ItemStack[] { GT_ModHandler.getModItem(Forestry.ID, "beeswax", 1L, 0), + GTPP_Bees.propolis.getStackForType(GTPP_PropolisType.FORCE), + GTPP_Bees.drop.getStackForType(GTPP_DropType.FORCE) }, + new int[] { 5000, 3000, 1000 }); + } + + public static void addChemicalRecipe(GTPP_CombType aInputStack, ItemStack[] aOutputs, int[] aChances) { + Material aMat = aInputStack.mMaterial; + long aEU = aMat.vVoltageMultiplier; + int aTier = Math.max(aMat.vTier / 2, 1); + CORE.RA.addChemicalPlantRecipe( + new ItemStack[] { aInputStack.getStackForType(aTier), }, + new FluidStack[] {}, + aOutputs, + new FluidStack[] {}, + aChances, + aTier * 20 * 60, + aEU, + aTier); + } +} diff --git a/src/main/java/gtPlusPlus/xmod/forestry/bees/items/output/GTPP_Drop.java b/src/main/java/gtPlusPlus/xmod/forestry/bees/items/output/GTPP_Drop.java new file mode 100644 index 0000000000..a84d11e74c --- /dev/null +++ b/src/main/java/gtPlusPlus/xmod/forestry/bees/items/output/GTPP_Drop.java @@ -0,0 +1,131 @@ +package gtPlusPlus.xmod.forestry.bees.items.output; + +import static gregtech.api.enums.Mods.GTPlusPlus; +import static gregtech.api.recipe.RecipeMaps.fluidExtractionRecipes; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; + +import java.util.List; + +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraftforge.fluids.FluidStack; + +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import forestry.api.core.Tabs; +import gregtech.api.enums.GT_Values; +import gtPlusPlus.api.objects.Logger; +import gtPlusPlus.xmod.forestry.bees.handler.GTPP_DropType; +import gtPlusPlus.xmod.forestry.bees.registry.GTPP_Bees; + +public class GTPP_Drop extends Item { + + @SideOnly(Side.CLIENT) + private IIcon secondIcon; + + public GTPP_Drop() { + super(); + this.setCreativeTab(Tabs.tabApiculture); + this.setHasSubtypes(true); + this.setUnlocalizedName("gtpp.drop"); + GameRegistry.registerItem(this, "gtpp.drop", GTPlusPlus.ID); + } + + public ItemStack getStackForType(GTPP_DropType type) { + return new ItemStack(this, 1, type.mID); + } + + public ItemStack getStackForType(GTPP_DropType type, int count) { + return new ItemStack(this, count, type.mID); + } + + @Override + @SideOnly(Side.CLIENT) + public void getSubItems(Item item, CreativeTabs tabs, List list) { + for (GTPP_DropType type : GTPP_DropType.values()) { + if (type.mShowInList) { + list.add(this.getStackForType(type)); + } + } + } + + @Override + @SideOnly(Side.CLIENT) + public boolean requiresMultipleRenderPasses() { + return true; + } + + @Override + public int getRenderPasses(int meta) { + return 2; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister par1IconRegister) { + this.itemIcon = par1IconRegister.registerIcon("forestry:honeyDrop.0"); + this.secondIcon = par1IconRegister.registerIcon("forestry:honeyDrop.1"); + } + + @Override + public IIcon getIcon(ItemStack stack, int pass) { + return (pass == 0) ? itemIcon : secondIcon; + } + + @Override + @SideOnly(Side.CLIENT) + public int getColorFromItemStack(ItemStack stack, int pass) { + int colour = GTPP_DropType.get(stack.getItemDamage()) + .getColours()[0]; + + if (pass >= 1) { + colour = GTPP_DropType.get(stack.getItemDamage()) + .getColours()[1]; + } + + return colour; + } + + @Override + public String getItemStackDisplayName(ItemStack stack) { + return GTPP_DropType.get(stack.getItemDamage()) + .getName(); + } + + private static final int[] sFluidOutputs = new int[] { 144, 136, 128, 120, 112, 104, 96, 88, 80, 72, 64, 48, 32, 16, + 8, 4 }; + + public static void initDropsRecipes() { + ItemStack tDrop; + Logger.BEES("Processing recipes for " + GTPP_Bees.sDropMappings.size() + " Drops."); + for (GTPP_DropType aDrop : GTPP_Bees.sDropMappings.values()) { + tDrop = aDrop.getStackForType(1); + if (addProcess( + tDrop, + new FluidStack(aDrop.mMaterial.getFluid(), sFluidOutputs[aDrop.mMaterial.vTier]), + aDrop.mMaterial.vTier * 20 * 30, + aDrop.mMaterial.vVoltageMultiplier)) { + Logger.BEES("Added Drop extraction recipe for: " + aDrop.getName()); + } else { + Logger.BEES("Failed to add Drop extraction recipe for: " + aDrop.getName()); + } + } + } + + public static boolean addProcess(ItemStack tDrop, FluidStack aOutput, int aDuration, int aEUt) { + if (aOutput == null) { + return false; + } + GT_Values.RA.stdBuilder() + .itemInputs(tDrop) + .fluidOutputs(aOutput) + .duration(aDuration * TICKS) + .eut(aEUt) + .addTo(fluidExtractionRecipes); + return true; + } +} diff --git a/src/main/java/gtPlusPlus/xmod/forestry/bees/items/output/GTPP_Pollen.java b/src/main/java/gtPlusPlus/xmod/forestry/bees/items/output/GTPP_Pollen.java new file mode 100644 index 0000000000..7e959151a0 --- /dev/null +++ b/src/main/java/gtPlusPlus/xmod/forestry/bees/items/output/GTPP_Pollen.java @@ -0,0 +1,92 @@ +package gtPlusPlus.xmod.forestry.bees.items.output; + +import static gregtech.api.enums.Mods.GTPlusPlus; + +import java.util.List; + +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; + +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import forestry.api.core.Tabs; +import gtPlusPlus.xmod.forestry.bees.handler.GTPP_PollenType; + +public class GTPP_Pollen extends Item { + + @SideOnly(Side.CLIENT) + private IIcon secondIcon; + + public GTPP_Pollen() { + super(); + this.setCreativeTab(Tabs.tabApiculture); + this.setHasSubtypes(true); + this.setUnlocalizedName("gtpp.pollen"); + GameRegistry.registerItem(this, "gtpp.pollen", GTPlusPlus.ID); + } + + public ItemStack getStackForType(GTPP_PollenType type) { + return new ItemStack(this, 1, type.mID); + } + + public ItemStack getStackForType(GTPP_PollenType type, int count) { + return new ItemStack(this, count, type.mID); + } + + @Override + @SideOnly(Side.CLIENT) + public void getSubItems(Item item, CreativeTabs tabs, List list) { + for (GTPP_PollenType type : GTPP_PollenType.values()) { + if (type.mShowInList) { + list.add(this.getStackForType(type)); + } + } + } + + @Override + @SideOnly(Side.CLIENT) + public boolean requiresMultipleRenderPasses() { + return true; + } + + @Override + public int getRenderPasses(int meta) { + return 2; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister par1IconRegister) { + this.itemIcon = par1IconRegister.registerIcon("forestry:pollen.0"); + this.secondIcon = par1IconRegister.registerIcon("forestry:pollen.1"); + } + + @Override + public IIcon getIcon(ItemStack stack, int pass) { + return (pass == 0) ? itemIcon : secondIcon; + } + + @Override + @SideOnly(Side.CLIENT) + public int getColorFromItemStack(ItemStack stack, int pass) { + int colour = GTPP_PollenType.get(stack.getItemDamage()) + .getColours()[0]; + + if (pass >= 1) { + colour = GTPP_PollenType.get(stack.getItemDamage()) + .getColours()[1]; + } + + return colour; + } + + @Override + public String getItemStackDisplayName(ItemStack stack) { + return GTPP_PollenType.get(stack.getItemDamage()) + .getName(); + } +} diff --git a/src/main/java/gtPlusPlus/xmod/forestry/bees/items/output/GTPP_Propolis.java b/src/main/java/gtPlusPlus/xmod/forestry/bees/items/output/GTPP_Propolis.java new file mode 100644 index 0000000000..1c1bd95d09 --- /dev/null +++ b/src/main/java/gtPlusPlus/xmod/forestry/bees/items/output/GTPP_Propolis.java @@ -0,0 +1,110 @@ +package gtPlusPlus.xmod.forestry.bees.items.output; + +import static gregtech.api.enums.Mods.GTPlusPlus; +import static gregtech.api.recipe.RecipeMaps.extractorRecipes; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; + +import java.util.List; + +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; + +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import forestry.api.core.Tabs; +import gregtech.api.enums.GT_Values; +import gtPlusPlus.api.objects.Logger; +import gtPlusPlus.xmod.forestry.bees.handler.GTPP_PropolisType; +import gtPlusPlus.xmod.forestry.bees.registry.GTPP_Bees; + +public class GTPP_Propolis extends Item { + + @SideOnly(Side.CLIENT) + private IIcon secondIcon; + + public GTPP_Propolis() { + super(); + this.setCreativeTab(Tabs.tabApiculture); + this.setHasSubtypes(true); + this.setUnlocalizedName("gtpp.propolis"); + GameRegistry.registerItem(this, "gtpp.propolis", GTPlusPlus.ID); + } + + public ItemStack getStackForType(GTPP_PropolisType type) { + return new ItemStack(this, 1, type.mID); + } + + public ItemStack getStackForType(GTPP_PropolisType type, int count) { + return new ItemStack(this, count, type.mID); + } + + @Override + @SideOnly(Side.CLIENT) + public void getSubItems(Item item, CreativeTabs tabs, List list) { + for (GTPP_PropolisType type : GTPP_PropolisType.values()) { + if (type.mShowInList) { + list.add(this.getStackForType(type)); + } + } + } + + @Override + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister par1IconRegister) { + this.itemIcon = par1IconRegister.registerIcon("forestry:propolis.0"); + } + + @Override + public IIcon getIcon(ItemStack stack, int pass) { + return itemIcon; + } + + @Override + @SideOnly(Side.CLIENT) + public int getColorFromItemStack(ItemStack stack, int pass) { + return GTPP_PropolisType.get(stack.getItemDamage()) + .getColours(); + } + + @Override + public String getItemStackDisplayName(ItemStack stack) { + return GTPP_PropolisType.get(stack.getItemDamage()) + .getName(); + } + + public static void initPropolisRecipes() { + ItemStack tDrop; + Logger.BEES("Processing recipes for " + GTPP_Bees.sPropolisMappings.size() + " Propolis."); + for (GTPP_PropolisType aProp : GTPP_Bees.sPropolisMappings.values()) { + tDrop = aProp.getStackForType(1); + if (addProcess( + tDrop, + aProp.mMaterial.getDust(1), + Math.min(Math.max(10000 - (aProp.mMaterial.vTier * 625), 100), 10000), + aProp.mMaterial.vTier * 20 * 15, + aProp.mMaterial.vVoltageMultiplier)) { + Logger.BEES("Added Propolis extraction recipe for: " + aProp.getName()); + } else { + Logger.BEES("Failed to add Propolis extraction recipe for: " + aProp.getName()); + } + } + } + + public static boolean addProcess(ItemStack tDrop, ItemStack aOutput, int aChance, int aDuration, int aEUt) { + if (aOutput == null) { + return false; + } + GT_Values.RA.stdBuilder() + .itemInputs(tDrop) + .itemOutputs(aOutput) + .outputChances(aChance) + .duration(aDuration * TICKS) + .eut(aEUt) + .addTo(extractorRecipes); + return true; + } +} -- cgit