/******************************************************************************* * 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 forestry.plugins; import java.lang.reflect.Field; import net.minecraft.block.Block; import net.minecraft.item.ItemStack; import net.minecraftforge.common.BiomeDictionary; import forestry.api.genetics.AlleleManager; import forestry.api.genetics.IMutation; import forestry.apiculture.genetics.AlleleBeeSpecies; import forestry.apiculture.genetics.BeeTemplates; import forestry.apiculture.genetics.IJubilanceProvider; import forestry.apiculture.genetics.JubilanceReqRes; import forestry.apiculture.genetics.MutationEMC; import forestry.core.config.Defaults; import forestry.core.genetics.Allele; import forestry.core.proxy.Proxies; @Plugin(pluginID = "EqEx2", name = "Equivalent Exchange 2", author = "SirSengir", url = Defaults.URL, unlocalizedDescription = "for.plugin.ee2.description") public class PluginEE extends ForestryPlugin { public IMutation darkenedA; public IMutation reddenedA; public IMutation omegaA; public ItemStack eeBlock1; public ItemStack eeBlock2; public Class eeRelay2Class; public Class eeRelay3Class; public Field eeRelay2EMCField; public Field eeRelay3EMCField; @Override public boolean isAvailable() { return Proxies.common.isModLoaded("mod_EE"); } @Override public String getFailMessage() { return "Equivalent Exchange not found"; } @Override public void postInit() { try { eeBlock1 = new ItemStack((Block) Class.forName("ee.EEBlock").getField("eeStone").get(null), 1, 8); eeBlock2 = new ItemStack((Block) Class.forName("ee.EEBlock").getField("eeStone").get(null), 1, 9); eeRelay2Class = Class.forName("ee.TileRelay2"); eeRelay2EMCField = eeRelay2Class.getField("scaledEnergy"); eeRelay3Class = Class.forName("ee.TileRelay3"); eeRelay3EMCField = eeRelay3Class.getField("scaledEnergy"); } catch (Exception ex) { Proxies.log.fine("Necessary block/classes from EE were not found"); return; } IJubilanceProvider jubilanceProviderDarkened = new JubilanceReqRes(eeBlock1); IJubilanceProvider jubilanceProviderReddened = new JubilanceReqRes(eeBlock2); ((AlleleBeeSpecies) AlleleManager.alleleRegistry.getAllele("forestry.speciesDarkened")).jubilanceProvider = jubilanceProviderDarkened; ((AlleleBeeSpecies) AlleleManager.alleleRegistry.getAllele("forestry.speciesReddened")).jubilanceProvider = jubilanceProviderReddened; ((AlleleBeeSpecies) AlleleManager.alleleRegistry.getAllele("forestry.speciesOmega")).jubilanceProvider = jubilanceProviderReddened; darkenedA = new MutationEMC(Allele.speciesModest, Allele.speciesWintry, BeeTemplates.getDarkenedTemplate(), 100, eeBlock1, eeRelay2Class, eeRelay2EMCField, 139264); reddenedA = new MutationEMC(Allele.speciesDarkened, Allele.speciesTropical, BeeTemplates.getReddenedTemplate(), 100, eeBlock2, eeRelay3Class, eeRelay3EMCField, 466944); omegaA = new MutationEMC(Allele.speciesDarkened, Allele.speciesReddened, BeeTemplates.getOmegaTemplate(), 100, eeBlock2, eeRelay3Class, eeRelay3EMCField, 933888).restrictBiomeType(BiomeDictionary.Type.NETHER).restrictBiomeType(BiomeDictionary.Type.SANDY); } }