2014-05-02 21:31:20 +02:00
/*******************************************************************************
2014-08-07 08:29:25 +02:00
* 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
2014-08-07 02:56:58 -07:00
* http://www.gnu.org/licenses/lgpl-3.0.txt
2014-05-02 21:31:20 +02:00
*
2014-08-07 08:29:25 +02:00
* Various Contributors including, but not limited to:
* SirSengir (original work), CovertJaguar, Player, Binnie, MysteriousAges
2014-05-02 21:31:20 +02:00
******************************************************************************/
package forestry.plugins ;
import java.util.ArrayList ;
import java.util.logging.Level ;
import java.util.logging.Logger ;
import net.minecraft.block.Block ;
import net.minecraft.block.material.Material ;
import net.minecraft.command.ICommand ;
import net.minecraft.init.Blocks ;
import net.minecraft.init.Items ;
import net.minecraft.item.Item ;
import net.minecraft.item.ItemStack ;
import net.minecraft.nbt.NBTTagCompound ;
import net.minecraft.potion.Potion ;
import net.minecraft.util.IIcon ;
import net.minecraft.util.WeightedRandomChestContent ;
import cpw.mods.fml.common.FMLCommonHandler ;
import cpw.mods.fml.common.SidedProxy ;
import cpw.mods.fml.common.event.FMLInterModComms.IMCMessage ;
import cpw.mods.fml.common.eventhandler.SubscribeEvent ;
import cpw.mods.fml.common.network.IGuiHandler ;
import cpw.mods.fml.common.registry.GameData ;
import cpw.mods.fml.common.registry.GameRegistry ;
import cpw.mods.fml.common.registry.VillagerRegistry ;
import cpw.mods.fml.relauncher.Side ;
import cpw.mods.fml.relauncher.SideOnly ;
import net.minecraftforge.client.event.TextureStitchEvent ;
import net.minecraftforge.common.BiomeDictionary ;
import net.minecraftforge.common.ChestGenHooks ;
import net.minecraftforge.common.MinecraftForge ;
import net.minecraftforge.oredict.OreDictionary ;
import forestry.api.apiculture.BeeManager ;
import forestry.api.apiculture.EnumBeeType ;
import forestry.api.apiculture.FlowerManager ;
import forestry.api.apiculture.IBee ;
import forestry.api.apiculture.IBeeGenome ;
import forestry.api.apiculture.IBeeRoot ;
import forestry.api.apiculture.IHiveDrop ;
import forestry.api.core.EnumHumidity ;
import forestry.api.core.EnumTemperature ;
import forestry.api.core.PluginInfo ;
import forestry.api.core.Tabs ;
import forestry.api.genetics.AlleleManager ;
import forestry.api.genetics.IAllele ;
import forestry.api.genetics.IClassification ;
import forestry.api.genetics.IClassification.EnumClassLevel ;
import forestry.api.recipes.RecipeManagers ;
import forestry.apiculture.CommandBeekeepingMode ;
import forestry.apiculture.CommandGiveBee ;
import forestry.apiculture.FlowerProviderCacti ;
import forestry.apiculture.FlowerProviderEnd ;
import forestry.apiculture.FlowerProviderGourd ;
import forestry.apiculture.FlowerProviderJungle ;
import forestry.apiculture.FlowerProviderMushroom ;
import forestry.apiculture.FlowerProviderNetherwart ;
import forestry.apiculture.FlowerProviderVanilla ;
import forestry.apiculture.FlowerProviderWheat ;
import forestry.apiculture.GuiHandlerApiculture ;
import forestry.apiculture.PacketHandlerApiculture ;
import forestry.apiculture.SaveEventHandlerApiculture ;
import forestry.apiculture.VillageHandlerApiculture ;
import forestry.apiculture.gadgets.BlockAlveary ;
import forestry.apiculture.gadgets.BlockBeehives ;
import forestry.apiculture.gadgets.BlockCandle ;
import forestry.apiculture.gadgets.BlockStump ;
import forestry.apiculture.gadgets.StructureLogicAlveary ;
import forestry.apiculture.gadgets.TileAlvearyFan ;
import forestry.apiculture.gadgets.TileAlvearyHeater ;
import forestry.apiculture.gadgets.TileAlvearyHygroregulator ;
import forestry.apiculture.gadgets.TileAlvearyPlain ;
import forestry.apiculture.gadgets.TileAlvearySieve ;
import forestry.apiculture.gadgets.TileAlvearyStabiliser ;
import forestry.apiculture.gadgets.TileAlvearySwarmer ;
import forestry.apiculture.gadgets.TileApiaristChest ;
import forestry.apiculture.gadgets.TileApiary ;
import forestry.apiculture.gadgets.TileBeehouse ;
import forestry.apiculture.gadgets.TileCandle ;
import forestry.apiculture.gadgets.TileSwarm ;
import forestry.apiculture.genetics.AlleleBeeSpecies ;
import forestry.apiculture.genetics.AlleleEffectAggressive ;
import forestry.apiculture.genetics.AlleleEffectCreeper ;
import forestry.apiculture.genetics.AlleleEffectExploration ;
import forestry.apiculture.genetics.AlleleEffectGlacial ;
import forestry.apiculture.genetics.AlleleEffectHeroic ;
import forestry.apiculture.genetics.AlleleEffectIgnition ;
import forestry.apiculture.genetics.AlleleEffectMiasmic ;
import forestry.apiculture.genetics.AlleleEffectMisanthrope ;
import forestry.apiculture.genetics.AlleleEffectNone ;
import forestry.apiculture.genetics.AlleleEffectPotion ;
import forestry.apiculture.genetics.AlleleEffectRadioactive ;
import forestry.apiculture.genetics.AlleleEffectRepulsion ;
import forestry.apiculture.genetics.AlleleEffectResurrection ;
import forestry.apiculture.genetics.AlleleEffectSnowing ;
import forestry.apiculture.genetics.AlleleFlowers ;
import forestry.apiculture.genetics.Bee ;
import forestry.apiculture.genetics.BeeHelper ;
import forestry.apiculture.genetics.BeeMutation ;
import forestry.apiculture.genetics.BeeTemplates ;
import forestry.apiculture.genetics.BeekeepingMode ;
import forestry.apiculture.genetics.BranchBees ;
import forestry.apiculture.genetics.HiveDrop ;
import forestry.apiculture.genetics.JubilanceNone ;
import forestry.apiculture.genetics.JubilanceProviderHermit ;
import forestry.apiculture.genetics.MutationTimeLimited ;
import forestry.apiculture.items.ItemAlvearyBlock ;
import forestry.apiculture.items.ItemArmorApiarist ;
import forestry.apiculture.items.ItemBeeGE ;
import forestry.apiculture.items.ItemBeealyzer ;
import forestry.apiculture.items.ItemCandleBlock ;
import forestry.apiculture.items.ItemHiveFrame ;
import forestry.apiculture.items.ItemHoneycomb ;
import forestry.apiculture.items.ItemImprinter ;
import forestry.apiculture.items.ItemWaxCast ;
import forestry.apiculture.proxy.ProxyApiculture ;
import forestry.apiculture.trigger.TriggerNoFrames ;
import forestry.apiculture.worldgen.HiveDecorator ;
import forestry.core.GameMode ;
import forestry.core.config.Config ;
import forestry.core.config.Configuration ;
import forestry.core.config.Defaults ;
import forestry.core.config.ForestryBlock ;
import forestry.core.config.ForestryItem ;
import forestry.core.config.Property ;
import forestry.core.gadgets.BlockBase ;
import forestry.core.gadgets.MachineDefinition ;
import forestry.core.genetics.Allele ;
import forestry.core.interfaces.IOreDictionaryHandler ;
import forestry.core.interfaces.IPacketHandler ;
import forestry.core.interfaces.ISaveEventHandler ;
import forestry.core.items.ItemCrated ;
import forestry.core.items.ItemForestry ;
import forestry.core.items.ItemForestryBlock ;
import forestry.core.items.ItemOverlay ;
import forestry.core.items.ItemOverlay.OverlayInfo ;
import forestry.core.proxy.Proxies ;
import forestry.core.render.EntitySnowFX ;
import forestry.core.triggers.Trigger ;
import forestry.core.utils.LiquidHelper ;
import forestry.core.utils.ShapedRecipeCustom ;
@PluginInfo ( pluginID = "Apiculture" , name = "Apiculture" , author = "SirSengir" , url = Defaults . URL , description = "Adds bees, beekeeping and bee products. Affects world generation." )
public class PluginApiculture extends NativePlugin {
@SidedProxy ( clientSide = "forestry.apiculture.proxy.ClientProxyApiculture" , serverSide = "forestry.apiculture.proxy.ProxyApiculture" )
public static ProxyApiculture proxy ;
private static final String CONFIG_CATEGORY = "apiculture" ;
private Configuration apicultureConfig ;
public static String beekeepingMode = "NORMAL" ;
public static int beeCycleTicks = 550 ;
public static boolean apiarySideSensitive = false ;
public static boolean fancyRenderedBees = false ;
public static Trigger triggerNoFrames ;
private ArrayList < IHiveDrop > forestDrops ;
private ArrayList < IHiveDrop > meadowsDrops ;
private ArrayList < IHiveDrop > desertDrops ;
private ArrayList < IHiveDrop > jungleDrops ;
private ArrayList < IHiveDrop > endDrops ;
private ArrayList < IHiveDrop > snowDrops ;
private ArrayList < IHiveDrop > swampDrops ;
private ArrayList < IHiveDrop > swarmDrops ;
/**
* See {@link IBeeRoot} for details
*/
public static IBeeRoot beeInterface ;
public static MachineDefinition definitionApiary ;
public static MachineDefinition definitionChest ;
public static MachineDefinition definitionBeehouse ;
@Override
public boolean isAvailable () {
return ! Config . disableApiculture ;
}
@SuppressWarnings ( "unchecked" )
@Override
public void preInit () {
super . preInit ();
MinecraftForge . EVENT_BUS . register ( this );
createHiveDropArrays ();
ForestryBlock . apiculture = new BlockBase ( Material . iron );
ForestryBlock . apiculture . setBlockName ( "for.apiculture" ). setCreativeTab ( Tabs . tabApiculture );
Proxies . common . registerBlock ( ForestryBlock . apiculture , ItemForestryBlock . class );
definitionApiary = ForestryBlock . apiculture . addDefinition ( new MachineDefinition ( Defaults . DEFINITION_APIARY_META , "forestry.Apiary" , TileApiary . class ,
ShapedRecipeCustom . createShapedRecipe ( new ItemStack ( ForestryBlock . apiculture , 1 , Defaults . DEFINITION_APIARY_META ), new Object [] { "XXX" , "#C#" , "###" , 'X' , "slabWood" , '#' ,
"plankWood" , 'C' , ForestryItem . impregnatedCasing }))
. setFaces ( 0 , 1 , 2 , 2 , 4 , 4 , 0 , 7 ));
definitionChest = ForestryBlock . apiculture . addDefinition ( new MachineDefinition ( Defaults . DEFINITION_APIARISTCHEST_META , "forestry.ApiaristChest" , TileApiaristChest . class ,
ShapedRecipeCustom . createShapedRecipe ( new ItemStack ( ForestryBlock . apiculture , 1 , Defaults . DEFINITION_APIARISTCHEST_META ), new Object [] { " # " , "XYX" , "XXX" , '#' , Blocks . glass , 'X' ,
"beeComb" , 'Y' , Blocks . chest })). setFaces ( 0 , 1 , 2 ,
3 , 4 , 4 ));
definitionBeehouse = ForestryBlock . apiculture . addDefinition ( new MachineDefinition ( Defaults . DEFINITION_BEEHOUSE_META , "forestry.Beehouse" , TileBeehouse . class ,
ShapedRecipeCustom . createShapedRecipe ( new ItemStack ( ForestryBlock . apiculture , 1 , Defaults . DEFINITION_BEEHOUSE_META ), new Object [] { "XXX" , "#C#" , "###" , 'X' , "slabWood" , '#' ,
"plankWood" , 'C' , "beeComb" }))
. setFaces ( 0 , 1 , 2 , 2 , 4 , 4 , 0 , 7 ));
ForestryBlock . beehives = ( new BlockBeehives ()). setBlockName ( "beehives" );
Proxies . common . registerBlock ( ForestryBlock . beehives , ItemForestryBlock . class );
ForestryBlock . beehives . setHarvestLevel ( "pickaxe" , 1 , 0 );
ForestryBlock . beehives . setHarvestLevel ( "scoop" , 0 , 1 );
ForestryBlock . beehives . setHarvestLevel ( "scoop" , 0 , 2 );
ForestryBlock . beehives . setHarvestLevel ( "scoop" , 0 , 3 );
ForestryBlock . beehives . setHarvestLevel ( "scoop" , 0 , 4 );
ForestryBlock . beehives . setHarvestLevel ( "scoop" , 0 , 5 );
ForestryBlock . beehives . setHarvestLevel ( "scoop" , 0 , 6 );
ForestryBlock . beehives . setHarvestLevel ( "scoop" , 0 , 7 );
ForestryBlock . beehives . setHarvestLevel ( "scoop" , 0 , 8 );
// Init bee interface
AlleleManager . alleleRegistry . registerSpeciesRoot ( PluginApiculture . beeInterface = BeeManager . beeInterface = new BeeHelper ());
BeeManager . villageBees = new ArrayList [] { new ArrayList < IBeeGenome > (), new ArrayList < IBeeGenome > () };
// Candles
ForestryBlock . candle = new BlockCandle (). setBlockName ( "candle" );
Proxies . common . registerBlock ( ForestryBlock . candle , ItemCandleBlock . class );
ForestryBlock . stump = new BlockStump (). setBlockName ( "stump" );
Proxies . common . registerBlock ( ForestryBlock . stump , ItemForestryBlock . class );
// Alveary and Components
ForestryBlock . alveary = new BlockAlveary (). setBlockName ( "alveary" );
Proxies . common . registerBlock ( ForestryBlock . alveary , ItemAlvearyBlock . class );
ForestryBlock . alveary . setHarvestLevel ( "axe" , 0 );
// Add triggers
triggerNoFrames = new TriggerNoFrames ();
// Create bee alleles
createAlleles ();
// Register village components with the Structure registry.
VillageHandlerApiculture . registerVillageComponents ();
}
@Override
public void doInit () {
super . doInit ();
apicultureConfig = new Configuration ();
Property property = apicultureConfig . get ( "apiary.sidesensitive" , CONFIG_CATEGORY , apiarySideSensitive );
property . Comment = "set to false if apiaries should output all items regardless of side a pipe is attached to" ;
apiarySideSensitive = Boolean . parseBoolean ( property . Value );
property = apicultureConfig . get ( "render.bees.fancy" , CONFIG_CATEGORY , fancyRenderedBees );
property . Comment = "set to true to enable a fancy butterfly-like renderer for bees. (experimental!)" ;
fancyRenderedBees = Boolean . parseBoolean ( property . Value );
property = apicultureConfig . get ( "beekeeping.mode" , CONFIG_CATEGORY , "NORMAL" );
property . Comment = "change beekeeping modes here. possible values EASY, NORMAL, HARD, HARDCORE, INSANE. mods may add additional modes." ;
beekeepingMode = property . Value . trim ();
Proxies . log . finer ( "Beekeeping mode read from config: " + beekeepingMode );
property = apicultureConfig . get ( "beekeeping.flowers.custom" , CONFIG_CATEGORY , "" );
property . Comment = "add additional flower blocks for apiaries here in the format id:meta. separate blocks using ';'. will be treated like vanilla flowers. not recommended for flowers implemented as tile entities." ;
parseAdditionalFlowers ( property . Value , FlowerManager . plainFlowers );
property = apicultureConfig . get ( "species.blacklist" , CONFIG_CATEGORY , "" );
property . Comment = "add species to blacklist identified by their uid and seperated with ';'." ;
parseBeeBlacklist ( property . Value );
apicultureConfig . save ();
createMutations ();
registerBeehiveDrops ();
PluginApiculture . beeInterface . registerBeekeepingMode ( BeekeepingMode . easy );
PluginApiculture . beeInterface . registerBeekeepingMode ( BeekeepingMode . normal );
PluginApiculture . beeInterface . registerBeekeepingMode ( BeekeepingMode . hard );
PluginApiculture . beeInterface . registerBeekeepingMode ( BeekeepingMode . hardcore );
PluginApiculture . beeInterface . registerBeekeepingMode ( BeekeepingMode . insane );
// Inducers for swarmer
BeeManager . inducers . put ( ForestryItem . royalJelly . getItemStack (), 10 );
registerTemplates ();
definitionApiary . register ();
definitionBeehouse . register ();
definitionChest . register ();
GameRegistry . registerTileEntity ( TileAlvearyPlain . class , "forestry.Alveary" );
GameRegistry . registerTileEntity ( TileSwarm . class , "forestry.Swarm" );
GameRegistry . registerTileEntity ( TileAlvearySwarmer . class , "forestry.AlvearySwarmer" );
GameRegistry . registerTileEntity ( TileAlvearyHeater . class , "forestry.AlvearyHeater" );
GameRegistry . registerTileEntity ( TileAlvearyFan . class , "forestry.AlvearyFan" );
GameRegistry . registerTileEntity ( TileAlvearyHygroregulator . class , "forestry.AlvearyHygro" );
GameRegistry . registerTileEntity ( TileAlvearyStabiliser . class , "forestry.AlvearyStabiliser" );
GameRegistry . registerTileEntity ( TileAlvearySieve . class , "forestry.AlvearySieve" );
GameRegistry . registerTileEntity ( TileCandle . class , "forestry.Candle" );
BeeManager . villageBees [ 0 ] . add ( beeInterface . templateAsGenome ( BeeTemplates . getForestTemplate ()));
BeeManager . villageBees [ 0 ] . add ( beeInterface . templateAsGenome ( BeeTemplates . getMeadowsTemplate ()));
BeeManager . villageBees [ 0 ] . add ( beeInterface . templateAsGenome ( BeeTemplates . getModestTemplate ()));
BeeManager . villageBees [ 0 ] . add ( beeInterface . templateAsGenome ( BeeTemplates . getMarshyTemplate ()));
BeeManager . villageBees [ 0 ] . add ( beeInterface . templateAsGenome ( BeeTemplates . getWintryTemplate ()));
BeeManager . villageBees [ 0 ] . add ( beeInterface . templateAsGenome ( BeeTemplates . getTropicalTemplate ()));
BeeManager . villageBees [ 1 ] . add ( beeInterface . templateAsGenome ( BeeTemplates . getForestRainResistTemplate ()));
BeeManager . villageBees [ 1 ] . add ( beeInterface . templateAsGenome ( BeeTemplates . getCommonTemplate ()));
BeeManager . villageBees [ 1 ] . add ( beeInterface . templateAsGenome ( BeeTemplates . getValiantTemplate ()));
// Register villager stuff
VillageHandlerApiculture villageHandler = new VillageHandlerApiculture ();
VillagerRegistry . instance (). registerVillageCreationHandler ( villageHandler );
VillagerRegistry . instance (). registerVillagerId ( Defaults . ID_VILLAGER_BEEKEEPER );
Proxies . render . registerVillagerSkin ( Defaults . ID_VILLAGER_BEEKEEPER , Defaults . TEXTURE_SKIN_BEEKPEEPER );
VillagerRegistry . instance (). registerVillageTradeHandler ( Defaults . ID_VILLAGER_BEEKEEPER , villageHandler );
// Register world gen
if ( Config . generateBeehives )
MinecraftForge . EVENT_BUS . register ( HiveDecorator . instance ());
proxy . initializeRendering ();
}
@Override
public void postInit () {
super . postInit ();
registerDungeonLoot ();
}
@Override
public IGuiHandler getGuiHandler () {
return new GuiHandlerApiculture ();
}
@Override
public IPacketHandler getPacketHandler () {
return new PacketHandlerApiculture ();
}
@Override
protected void registerItems () {
// / BEES
ForestryItem . beeQueenGE . registerItem (( new ItemBeeGE ( EnumBeeType . QUEEN )), "beeQueenGE" );
ForestryItem . beeDroneGE . registerItem (( new ItemBeeGE ( EnumBeeType . DRONE )), "beeDroneGE" );
ForestryItem . beePrincessGE . registerItem (( new ItemBeeGE ( EnumBeeType . PRINCESS )), "beePrincessGE" );
ForestryItem . beeLarvaeGE . registerItem (( new ItemBeeGE ( EnumBeeType . LARVAE )), "beeLarvaeGE" );
ForestryItem . beealyzer . registerItem (( new ItemBeealyzer ()), "beealyzer" );
// Disabling Habitat Locator, because it's b0rked and seems to flubber up other icons.
/*ForestryItem.biomeFinder = new ItemBiomefinder(Config.getOrCreateItemIdProperty("biomeFinder", Defaults.ID_ITEM_BIOME_FINDER))
.setUnlocalizedName("biomeFinder");*/
ForestryItem . imprinter . registerItem (( new ItemImprinter ()), "imprinter" );
// / COMB FRAMES
ForestryItem . frameUntreated . registerItem ( new ItemHiveFrame ( 80 , 0 . 9f ), "frameUntreated" );
ForestryItem . frameImpregnated . registerItem ( new ItemHiveFrame ( 240 , 0 . 4f ), "frameImpregnated" );
ForestryItem . frameProven . registerItem ( new ItemHiveFrame ( 720 , 0 . 3f ), "frameProven" );
// / BEE RESOURCES
ForestryItem . honeyDrop . registerItem ( new ItemOverlay ( Tabs . tabApiculture ,
new OverlayInfo ( "honey" , 0xecb42d , 0xe8c814 ), new OverlayInfo ( "charged" , 0x800505 , 0x9c0707 ). setIsSecret (),
new OverlayInfo ( "omega" , 0x191919 , 0x4a8ca7 ). setIsSecret ()), "honeyDrop" );
OreDictionary . registerOre ( "dropHoney" , ForestryItem . honeyDrop . getItemStack ());
ForestryItem . pollen . registerItem ( new ItemOverlay ( Tabs . tabApiculture ,
new OverlayInfo ( "normal" , 0xa28a25 , 0xa28a25 ),
new OverlayInfo ( "crystalline" , 0xffffff , 0xc5feff )),
"pollen" );
OreDictionary . registerOre ( "itemPollen" , ForestryItem . pollen . getItemStack ());
ForestryItem . propolis . registerItem ( new ItemOverlay ( Tabs . tabApiculture ,
new OverlayInfo ( "normal" , 0xc5b24e ), new OverlayInfo ( "sticky" , 0xc68e57 ), new OverlayInfo ( "pulsating" , 0x2ccdb1 ). setIsSecret (),
new OverlayInfo ( "silky" , 0xddff00 )),
"propolis" );
ForestryItem . honeydew . registerItem ( new ItemForestry (). setCreativeTab ( Tabs . tabApiculture ), "honeydew" );
OreDictionary . registerOre ( "dropHoneydew" , ForestryItem . honeydew . getItemStack ());
ForestryItem . royalJelly . registerItem ( new ItemForestry (). setCreativeTab ( Tabs . tabApiculture ), "royalJelly" );
OreDictionary . registerOre ( "dropRoyalJelly" , ForestryItem . royalJelly . getItemStack ());
ForestryItem . waxCast . registerItem ( new ItemWaxCast (). setCreativeTab ( Tabs . tabApiculture ), "waxCast" );
// / BEE COMBS
ForestryItem . beeComb . registerItem ( new ItemHoneycomb (), "beeCombs" );
OreDictionary . registerOre ( "beeComb" , ForestryItem . beeComb . getItemStack ( 1 , Defaults . WILDCARD ));
// / APIARIST'S CLOTHES
ForestryItem . apiaristHat . registerItem ( new ItemArmorApiarist ( 0 ), "apiaristHelmet" );
ForestryItem . apiaristChest . registerItem ( new ItemArmorApiarist ( 1 ), "apiaristChest" );
ForestryItem . apiaristLegs . registerItem ( new ItemArmorApiarist ( 2 ), "apiaristLegs" );
ForestryItem . apiaristBoots . registerItem ( new ItemArmorApiarist ( 3 ), "apiaristBoots" );
}
@Override
protected void registerBackpackItems () {
}
@Override
protected void registerCrates () {
ForestryItem . cratedBeeswax . registerItem ( new ItemCrated ( ForestryItem . beeswax . getItemStack ()), "cratedBeeswax" );
ForestryItem . cratedPollen . registerItem ( new ItemCrated ( ForestryItem . pollen . getItemStack ()), "cratedPollen" );
ForestryItem . cratedPropolis . registerItem ( new ItemCrated ( ForestryItem . propolis . getItemStack ()), "cratedPropolis" );
ForestryItem . cratedHoneydew . registerItem ( new ItemCrated ( ForestryItem . honeydew . getItemStack ()), "cratedHoneydew" );
ForestryItem . cratedRoyalJelly . registerItem ( new ItemCrated ( ForestryItem . royalJelly . getItemStack ()), "cratedRoyalJelly" );
ForestryItem . cratedHoneycombs . registerItem ( new ItemCrated ( ForestryItem . beeComb . getItemStack ( 1 , 0 )), "cratedHoneycombs" );
ForestryItem . cratedCocoaComb . registerItem ( new ItemCrated ( ForestryItem . beeComb . getItemStack ( 1 , 1 )), "cratedCocoaComb" );
ForestryItem . cratedSimmeringCombs . registerItem ( new ItemCrated ( ForestryItem . beeComb . getItemStack ( 1 , 2 )), "cratedSimmeringCombs" );
ForestryItem . cratedStringyCombs . registerItem ( new ItemCrated ( ForestryItem . beeComb . getItemStack ( 1 , 3 )), "cratedStringyCombs" );
ForestryItem . cratedFrozenCombs . registerItem ( new ItemCrated ( ForestryItem . beeComb . getItemStack ( 1 , 4 )), "cratedFrozenCombs" );
ForestryItem . cratedDrippingCombs . registerItem ( new ItemCrated ( ForestryItem . beeComb . getItemStack ( 1 , 5 )), "cratedDrippingCombs" );
ForestryItem . cratedRefractoryWax . registerItem ( new ItemCrated ( ForestryItem . refractoryWax . getItemStack ()), "cratedRefractoryWax" );
}
@Override
protected void registerRecipes () {
// / APIARIST'S ARMOR
Proxies . common . addRecipe ( ForestryItem . apiaristHat . getItemStack (), new Object [] { "###" , "# #" , '#' ,
ForestryItem . craftingMaterial . getItemStack ( 1 , 3 ) });
Proxies . common . addRecipe ( ForestryItem . apiaristChest . getItemStack (), new Object [] { "# #" , "###" , "###" , '#' ,
ForestryItem . craftingMaterial . getItemStack ( 1 , 3 ) });
Proxies . common . addRecipe ( ForestryItem . apiaristLegs . getItemStack (), new Object [] { "###" , "# #" , "# #" , '#' ,
ForestryItem . craftingMaterial . getItemStack ( 1 , 3 ) });
Proxies . common . addRecipe ( ForestryItem . apiaristBoots . getItemStack (), new Object [] { "# #" , "# #" , '#' ,
ForestryItem . craftingMaterial . getItemStack ( 1 , 3 ) });
// / HABITAT LOCATOR
//Proxies.common.addRecipe(ForestryItem.biomeFinder.getItemStack(),
// new Object[] { " X ", "X#X", " X ", '#', Items.redstone, 'X', "ingotBronze" });
Proxies . common . addRecipe ( ForestryItem . vialCatalyst . getItemStack ( 3 ),
"###" , "YXY" ,
'#' , ForestryItem . waxCapsule ,
'X' , Items . bone ,
'Y' , ForestryItem . pollen );
Proxies . common . addRecipe ( ForestryItem . vialCatalyst . getItemStack ( 3 ),
"###" , "YXY" ,
'#' , ForestryItem . canEmpty ,
'X' , Items . bone ,
'Y' , ForestryItem . pollen );
Proxies . common . addRecipe ( ForestryItem . vialCatalyst . getItemStack (),
"###" , "YXY" , "###" ,
'#' , ForestryItem . honeyDrop ,
'Y' , ForestryItem . fertilizerCompound ,
'X' , ForestryItem . waxCapsule );
Proxies . common . addRecipe ( ForestryItem . vialCatalyst . getItemStack (),
"###" , "YXY" , "###" ,
'#' , ForestryItem . honeyDrop ,
'Y' , ForestryItem . fertilizerCompound ,
'X' , ForestryItem . canEmpty );
Proxies . common . addRecipe ( ForestryItem . vialCatalyst . getItemStack (),
"###" , "YXY" , "###" ,
'#' , ForestryItem . honeyDrop ,
'Y' , ForestryItem . pollen ,
'X' , ForestryItem . waxCapsule );
Proxies . common . addRecipe ( ForestryItem . vialCatalyst . getItemStack (),
"###" , "YXY" , "###" ,
'#' , ForestryItem . honeyDrop ,
'Y' , ForestryItem . pollen ,
'X' , ForestryItem . canEmpty );
// Bees
Proxies . common . addRecipe ( ForestryItem . scoop . getItemStack ( 1 ),
"#X#" , "###" , " # " ,
'#' , "stickWood" ,
'X' , Blocks . wool );
Proxies . common . addRecipe ( new ItemStack ( Items . slime_ball ),
"#X#" , "#X#" , "#X#" ,
'#' , ForestryItem . propolis ,
'X' , ForestryItem . pollen );
Proxies . common . addRecipe ( new ItemStack ( Items . speckled_melon ),
"#X#" , "#Y#" , "#X#" ,
'#' , ForestryItem . honeyDrop ,
'X' , ForestryItem . honeydew ,
'Y' , Items . melon );
Proxies . common . addRecipe ( ForestryItem . frameUntreated . getItemStack (),
"###" , "#S#" , "###" ,
'#' , "stickWood" ,
'S' , Items . string );
Proxies . common . addRecipe ( ForestryItem . frameImpregnated . getItemStack (),
"###" , "#S#" , "###" ,
'#' , ForestryItem . stickImpregnated ,
'S' , Items . string );
// FOOD STUFF
if ( ForestryItem . honeyedSlice != null )
Proxies . common . addRecipe ( ForestryItem . honeyedSlice . getItemStack ( 4 ),
"###" , "#X#" , "###" ,
'#' , ForestryItem . honeyDrop ,
'X' , Items . bread );
if ( ForestryItem . honeyPot != null )
Proxies . common . addRecipe ( ForestryItem . honeyPot . getItemStack ( 1 ),
"# #" , " X " , "# #" ,
'#' , ForestryItem . honeyDrop ,
'X' , ForestryItem . waxCapsule );
if ( ForestryItem . ambrosia != null )
Proxies . common . addRecipe ( ForestryItem . ambrosia . getItemStack (),
"#Y#" , "XXX" , "###" ,
'#' , ForestryItem . honeydew ,
'X' , ForestryItem . royalJelly ,
'Y' , ForestryItem . waxCapsule );
// / CAPSULES
Proxies . common . addRecipe ( GameMode . getGameMode (). getStackSetting ( "recipe.output.capsule" ), "###" , '#' , ForestryItem . beeswax );
Proxies . common . addRecipe ( GameMode . getGameMode (). getStackSetting ( "recipe.output.refractory" ), "###" , '#' , ForestryItem . refractoryWax );
// / BITUMINOUS PEAT
Proxies . common . addRecipe ( ForestryItem . bituminousPeat . getItemStack (),
new Object [] { " # " , "XYX" , " # " , '#' , "dustAsh" , 'X' , ForestryItem . peat , 'Y' ,
ForestryItem . propolis });
// / TORCHES
Proxies . common . addRecipe ( new ItemStack ( Blocks . torch , 3 ),
new Object [] { " # " , " # " , " Y " , '#' , ForestryItem . beeswax , 'Y' , "stickWood" });
Proxies . common . addRecipe ( ForestryItem . craftingMaterial . getItemStack ( 1 , 1 ), new Object [] { "# #" , " # " , "# #" , '#' ,
ForestryItem . propolis . getItemStack ( 1 , 2 ) });
// / CANDLES
RecipeManagers . carpenterManager . addRecipe ( 30 , LiquidHelper . getLiquid ( Defaults . LIQUID_WATER , 600 ), null , new ItemStack ( ForestryBlock . candle , 24 ), new Object [] {
" X " , "###" , "###" , '#' , ForestryItem . beeswax , 'X' , Items . string });
RecipeManagers . carpenterManager . addRecipe ( 10 , LiquidHelper . getLiquid ( Defaults . LIQUID_WATER , 200 ), null , new ItemStack ( ForestryBlock . candle , 6 ), new Object [] {
"#X#" , '#' , ForestryItem . beeswax , 'X' , ForestryItem . craftingMaterial . getItemStack ( 1 , 2 ) });
Proxies . common . addShapelessRecipe ( new ItemStack ( ForestryBlock . candle ), new ItemStack ( ForestryBlock . candle ));
Proxies . common . addShapelessRecipe ( new ItemStack ( ForestryBlock . candle , 1 , 1 ), new ItemStack ( ForestryBlock . candle , 1 , 1 ));
// / WAX CAST
Proxies . common . addRecipe ( ForestryItem . waxCast . getItemStack (),
"###" , "# #" , "###" ,
'#' , ForestryItem . beeswax );
// / ALVEARY
Proxies . common . addRecipe ( new ItemStack ( ForestryBlock . alveary ),
"###" , "#X#" , "###" ,
'X' , ForestryItem . impregnatedCasing ,
'#' , ForestryItem . craftingMaterial . getItemStack ( 1 , 6 ));
// SWARMER
Proxies . common . addRecipe ( new ItemStack ( ForestryBlock . alveary , 1 , 2 ),
"#G#" , " X " , "#G#" ,
'#' , ForestryItem . tubes . getItemStack ( 1 , 5 ),
'X' , ForestryBlock . alveary ,
'G' , Items . gold_ingot );
// FAN
Proxies . common . addRecipe ( new ItemStack ( ForestryBlock . alveary , 1 , 3 ),
"I I" , " X " , "I#I" ,
'#' , ForestryItem . tubes . getItemStack ( 1 , 4 ),
'X' , ForestryBlock . alveary ,
'I' , Items . iron_ingot );
// HEATER
Proxies . common . addRecipe ( new ItemStack ( ForestryBlock . alveary , 1 , 4 ),
"#I#" , " X " , "YYY" ,
'#' , ForestryItem . tubes . getItemStack ( 1 , 4 ),
'X' , ForestryBlock . alveary ,
'I' , Items . iron_ingot , 'Y' , Blocks . stone );
// HYGROREGULATOR
Proxies . common . addRecipe ( new ItemStack ( ForestryBlock . alveary , 1 , 5 ),
"GIG" , "GXG" , "GIG" ,
'X' , ForestryBlock . alveary ,
'I' , Items . iron_ingot ,
'G' , Blocks . glass );
// STABILISER
Proxies . common . addRecipe ( new ItemStack ( ForestryBlock . alveary , 1 , 6 ),
"G G" , "GXG" , "G G" ,
'X' , ForestryBlock . alveary ,
'G' , Items . quartz );
// SIEVE
Proxies . common . addRecipe ( new ItemStack ( ForestryBlock . alveary , 1 , TileAlvearySieve . BLOCK_META ),
"III" , " X " , "WWW" ,
'X' , ForestryBlock . alveary ,
'I' , Items . iron_ingot ,
'W' , ForestryItem . craftingMaterial . getItemStack ( 1 , 3 ));
// / SQUEEZER
RecipeManagers . squeezerManager . addRecipe ( 10 , new ItemStack [] { ForestryItem . honeyDrop . getItemStack () }, LiquidHelper . getLiquid ( Defaults . LIQUID_HONEY , 100 ),
ForestryItem . propolis . getItemStack (), 5 );
RecipeManagers . squeezerManager . addRecipe ( 10 , new ItemStack [] { ForestryItem . honeydew . getItemStack () }, LiquidHelper . getLiquid ( Defaults . LIQUID_HONEY , 100 ));
RecipeManagers . squeezerManager . addRecipe ( 10 , new ItemStack [] { ForestryItem . phosphor . getItemStack ( 2 ), new ItemStack ( Blocks . sand ) }, LiquidHelper . getLiquid ( Defaults . LIQUID_LAVA , 2000 ));
RecipeManagers . squeezerManager . addRecipe ( 10 , new ItemStack [] { ForestryItem . phosphor . getItemStack ( 2 ), new ItemStack ( Blocks . dirt ) }, LiquidHelper . getLiquid ( Defaults . LIQUID_LAVA , 1600 ));
// / CARPENTER
RecipeManagers . carpenterManager . addRecipe ( 100 , LiquidHelper . getLiquid ( Defaults . LIQUID_WATER , 2000 ), null , ForestryItem . beealyzer . getItemStack (),
new Object [] { "X#X" , "X#X" , "RDR" , '#' , Blocks . glass_pane , 'X' , "ingotTin" , 'R' ,
Items . redstone , 'D' , Items . diamond });
RecipeManagers . carpenterManager . addRecipe (
50 ,
LiquidHelper . getLiquid ( Defaults . LIQUID_HONEY , 500 ),
null ,
ForestryItem . craftingMaterial . getItemStack ( 1 , 6 ),
new Object [] { " J " , "###" , "WPW" , '#' , "plankWood" , 'J' , ForestryItem . royalJelly ,
'W' , ForestryItem . beeswax , 'P' , ForestryItem . pollen });
// / CENTRIFUGE
// Honey combs
RecipeManagers . centrifugeManager . addRecipe ( 20 , ForestryItem . beeComb . getItemStack ( 1 , 0 ), ForestryItem . beeswax . getItemStack (), ForestryItem . honeyDrop . getItemStack (), 90 );
// Cocoa combs
RecipeManagers . centrifugeManager . addRecipe ( 20 , ForestryItem . beeComb . getItemStack ( 1 , 1 ), ForestryItem . beeswax . getItemStack (), new ItemStack ( Items . dye , 1 , 3 ), 50 );
// Simmering combs
RecipeManagers . centrifugeManager . addRecipe ( 20 , ForestryItem . beeComb . getItemStack ( 1 , 2 ), ForestryItem . refractoryWax . getItemStack (), ForestryItem . phosphor . getItemStack ( 2 ), 70 );
// Stringy combs
RecipeManagers . centrifugeManager . addRecipe ( 20 , ForestryItem . beeComb . getItemStack ( 1 , 3 ), ForestryItem . propolis . getItemStack (), ForestryItem . honeyDrop . getItemStack (), 40 );
// Drippig combs
RecipeManagers . centrifugeManager . addRecipe ( 20 , ForestryItem . beeComb . getItemStack ( 1 , 5 ), ForestryItem . honeydew . getItemStack (), ForestryItem . honeyDrop . getItemStack (), 40 );
// Frozen combs
RecipeManagers . centrifugeManager . addRecipe ( 20 , ForestryItem . beeComb . getItemStack ( 1 , 4 ), new ItemStack [] { ForestryItem . beeswax . getItemStack (),
ForestryItem . honeyDrop . getItemStack (), new ItemStack ( Items . snowball ), ForestryItem . pollen . getItemStack ( 1 , 1 ) }, new int [] { 80 , 70 , 40 , 20 });
// Silky combs
RecipeManagers . centrifugeManager . addRecipe ( 20 , ForestryItem . beeComb . getItemStack ( 1 , 6 ), ForestryItem . honeyDrop . getItemStack (), ForestryItem . propolis . getItemStack ( 1 , 3 ), 80 );
// Parched combs
RecipeManagers . centrifugeManager . addRecipe ( 20 , ForestryItem . beeComb . getItemStack ( 1 , 7 ), ForestryItem . beeswax . getItemStack (), ForestryItem . honeyDrop . getItemStack (), 90 );
// Mysterious combs
RecipeManagers . centrifugeManager . addRecipe ( 20 , ForestryItem . beeComb . getItemStack ( 1 , 8 ), new ItemStack [] { ForestryItem . honeyDrop . getItemStack (),
ForestryItem . propolis . getItemStack ( 1 , 2 ) }, new int [] { 40 , 100 });
// Irradiated combs
RecipeManagers . centrifugeManager . addRecipe ( 20 , ForestryItem . beeComb . getItemStack ( 1 , 9 ), new ItemStack [] {}, new int [] {});
// Powdery combs
RecipeManagers . centrifugeManager . addRecipe ( 20 , ForestryItem . beeComb . getItemStack ( 1 , 10 ), new ItemStack [] { ForestryItem . honeyDrop . getItemStack (),
ForestryItem . beeswax . getItemStack (), new ItemStack ( Items . gunpowder ) }, new int [] { 20 , 20 , 90 });
// Reddened Combs
RecipeManagers . centrifugeManager . addRecipe ( 80 , ForestryItem . beeComb . getItemStack ( 1 , 11 ),
new ItemStack [] { ForestryItem . honeyDrop . getItemStack ( 2 , 1 ) }, new int [] { 100 });
// Darkened Combs
RecipeManagers . centrifugeManager . addRecipe ( 80 , ForestryItem . beeComb . getItemStack ( 1 , 12 ),
new ItemStack [] { ForestryItem . honeyDrop . getItemStack ( 1 , 1 ) }, new int [] { 100 });
// Omega Combs
RecipeManagers . centrifugeManager . addRecipe ( 400 , ForestryItem . beeComb . getItemStack ( 1 , 13 ), new ItemStack [] { ForestryItem . honeyDrop . getItemStack ( 1 , 2 ) }, new int [] { 100 });
// Wheaten Combs
RecipeManagers . centrifugeManager . addRecipe ( 20 , ForestryItem . beeComb . getItemStack ( 1 , 14 ), new ItemStack [] { ForestryItem . honeyDrop . getItemStack (),
ForestryItem . beeswax . getItemStack (), new ItemStack ( Items . wheat ) }, new int [] { 20 , 20 , 80 });
// Mossy Combs
RecipeManagers . centrifugeManager . addRecipe ( 20 , ForestryItem . beeComb . getItemStack ( 1 , 15 ), ForestryItem . beeswax . getItemStack (), ForestryItem . honeyDrop . getItemStack (), 90 );
// Mellow Combs
RecipeManagers . centrifugeManager . addRecipe ( 20 , ForestryItem . beeComb . getItemStack ( 1 , 16 ), new ItemStack [] { ForestryItem . honeydew . getItemStack (),
ForestryItem . beeswax . getItemStack (), new ItemStack ( Items . quartz ) }, new int [] { 60 , 20 , 30 });
// Silk
RecipeManagers . centrifugeManager . addRecipe ( 5 , ForestryItem . propolis . getItemStack ( 1 , 3 ), new ItemStack [] {
ForestryItem . craftingMaterial . getItemStack ( 1 , 2 ), ForestryItem . propolis . getItemStack () }, new int [] { 60 , 10 });
// / FERMENTER
RecipeManagers . fermenterManager . addRecipe ( ForestryItem . honeydew . getItemStack (), 500 , 1 . 0f , LiquidHelper . getLiquid ( Defaults . LIQUID_MEAD , 1 ),
LiquidHelper . getLiquid ( Defaults . LIQUID_HONEY , 1 ));
}
private void registerBeehiveDrops () {
forestDrops . add ( new HiveDrop ( BeeTemplates . getForestTemplate (), new ItemStack [] { ForestryItem . beeComb . getItemStack ( 1 , 0 ) }, 80 ). setIgnobleShare ( 0 . 7f ));
forestDrops . add ( new HiveDrop ( BeeTemplates . getForestRainResistTemplate (), new ItemStack [] { ForestryItem . beeComb . getItemStack ( 1 , 0 ) }, 8 ));
forestDrops . add ( new HiveDrop ( BeeTemplates . getValiantTemplate (), new ItemStack [] { ForestryItem . beeComb . getItemStack ( 1 , 0 ) }, 3 ));
meadowsDrops . add ( new HiveDrop ( BeeTemplates . getMeadowsTemplate (), new ItemStack [] { ForestryItem . beeComb . getItemStack ( 1 , 0 ) }, 80 ). setIgnobleShare ( 0 . 7f ));
meadowsDrops . add ( new HiveDrop ( BeeTemplates . getValiantTemplate (), new ItemStack [] { ForestryItem . beeComb . getItemStack ( 1 , 0 ) }, 3 ));
desertDrops . add ( new HiveDrop ( BeeTemplates . getModestTemplate (), new ItemStack [] { ForestryItem . beeComb . getItemStack ( 1 , 7 ) }, 80 ). setIgnobleShare ( 0 . 7f ));
desertDrops . add ( new HiveDrop ( BeeTemplates . getValiantTemplate (), new ItemStack [] { ForestryItem . beeComb . getItemStack ( 1 , 7 ) }, 3 ));
jungleDrops . add ( new HiveDrop ( BeeTemplates . getTropicalTemplate (), new ItemStack [] { ForestryItem . beeComb . getItemStack ( 1 , 6 ) }, 80 ). setIgnobleShare ( 0 . 7f ));
jungleDrops . add ( new HiveDrop ( BeeTemplates . getValiantTemplate (), new ItemStack [] { ForestryItem . beeComb . getItemStack ( 1 , 6 ) }, 3 ));
endDrops . add ( new HiveDrop ( BeeTemplates . getEnderTemplate (), new ItemStack [] { ForestryItem . beeComb . getItemStack ( 1 , 8 ) }, 90 ));
snowDrops . add ( new HiveDrop ( BeeTemplates . getWintryTemplate (), new ItemStack [] { ForestryItem . beeComb . getItemStack ( 1 , 4 ) }, 80 ). setIgnobleShare ( 0 . 5f ));
snowDrops . add ( new HiveDrop ( BeeTemplates . getValiantTemplate (), new ItemStack [] { ForestryItem . beeComb . getItemStack ( 1 , 4 ) }, 3 ));
swampDrops . add ( new HiveDrop ( BeeTemplates . getMarshyTemplate (), new ItemStack [] { ForestryItem . beeComb . getItemStack ( 1 , 15 ) }, 80 ). setIgnobleShare ( 0 . 4f ));
swampDrops . add ( new HiveDrop ( BeeTemplates . getValiantTemplate (), new ItemStack [] { ForestryItem . beeComb . getItemStack ( 1 , 15 ) }, 3 ));
}
private void registerDungeonLoot () {
int rarity ;
if ( Config . dungeonLootRare )
rarity = 5 ;
else
rarity = 10 ;
ChestGenHooks . addItem ( ChestGenHooks . DUNGEON_CHEST , new WeightedRandomChestContent ( getBeeItemFromTemplate ( BeeTemplates . getSteadfastTemplate (), EnumBeeType . DRONE ), 1 , 1 , rarity ));
ItemStack stack = new ItemStack ( ForestryBlock . candle );
NBTTagCompound tag = new NBTTagCompound ();
tag . setInteger ( BlockCandle . colourTagName , 0xffffff );
stack . setTagCompound ( tag );
ChestGenHooks . addItem ( Defaults . CHEST_GEN_HOOK_NATURALIST_CHEST , new WeightedRandomChestContent ( stack , 7 , 12 , 12 ));
ChestGenHooks . addItem ( Defaults . CHEST_GEN_HOOK_NATURALIST_CHEST , new WeightedRandomChestContent ( ForestryItem . scoop . getItemStack (), 1 , 1 , 8 ));
ChestGenHooks . addItem ( Defaults . CHEST_GEN_HOOK_NATURALIST_CHEST , new WeightedRandomChestContent ( ForestryItem . propolis . getItemStack (), 2 , 4 , 6 ));
ChestGenHooks . addItem ( Defaults . CHEST_GEN_HOOK_NATURALIST_CHEST , new WeightedRandomChestContent ( ForestryItem . beeComb . getItemStack (), 4 , 12 , 7 ));
ChestGenHooks . addItem ( Defaults . CHEST_GEN_HOOK_NATURALIST_CHEST , new WeightedRandomChestContent ( ForestryItem . beeComb . getItemStack ( 1 , 4 ), 2 , 10 , 7 ));
ChestGenHooks . addItem ( Defaults . CHEST_GEN_HOOK_NATURALIST_CHEST , new WeightedRandomChestContent ( ForestryItem . beeComb . getItemStack ( 1 , 6 ), 1 , 6 , 7 ));
ChestGenHooks . addItem ( Defaults . CHEST_GEN_HOOK_NATURALIST_CHEST , new WeightedRandomChestContent ( getBeeItemFromTemplate ( BeeTemplates . getForestRainResistTemplate (), EnumBeeType . PRINCESS ), 1 , 1 , 5 ));
ChestGenHooks . addItem ( Defaults . CHEST_GEN_HOOK_NATURALIST_CHEST , new WeightedRandomChestContent ( getBeeItemFromTemplate ( BeeTemplates . getCommonTemplate (), EnumBeeType . DRONE ), 1 , 2 , 8 ));
ChestGenHooks . addItem ( Defaults . CHEST_GEN_HOOK_NATURALIST_CHEST , new WeightedRandomChestContent ( getBeeItemFromTemplate ( BeeTemplates . getMeadowsTemplate (), EnumBeeType . PRINCESS ), 1 , 1 , 5 ));
}
private ItemStack getBeeItemFromTemplate ( IAllele [] template , EnumBeeType beeType ) {
IBee bee = new Bee ( PluginApiculture . beeInterface . templateAsGenome ( template ));
ItemStack beeItem ;
switch ( beeType ) {
default :
case DRONE :
beeItem = ForestryItem . beeDroneGE . getItemStack ();
break ;
case PRINCESS :
beeItem = ForestryItem . beePrincessGE . getItemStack ();
break ;
}
NBTTagCompound nbtTagCompound = new NBTTagCompound ();
bee . writeToNBT ( nbtTagCompound );
beeItem . setTagCompound ( nbtTagCompound );
return beeItem ;
}
@SuppressWarnings ( "unchecked" )
private void createHiveDropArrays () {
BeeManager . hiveDrops = new ArrayList [ 8 ] ;
forestDrops = new ArrayList < IHiveDrop > ();
BeeManager . hiveDrops [ 0 ] = forestDrops ;
meadowsDrops = new ArrayList < IHiveDrop > ();
BeeManager . hiveDrops [ 1 ] = meadowsDrops ;
desertDrops = new ArrayList < IHiveDrop > ();
BeeManager . hiveDrops [ 2 ] = desertDrops ;
jungleDrops = new ArrayList < IHiveDrop > ();
BeeManager . hiveDrops [ 3 ] = jungleDrops ;
endDrops = new ArrayList < IHiveDrop > ();
BeeManager . hiveDrops [ 4 ] = endDrops ;
snowDrops = new ArrayList < IHiveDrop > ();
BeeManager . hiveDrops [ 5 ] = snowDrops ;
swampDrops = new ArrayList < IHiveDrop > ();
BeeManager . hiveDrops [ 6 ] = swampDrops ;
swarmDrops = new ArrayList < IHiveDrop > ();
BeeManager . hiveDrops [ 7 ] = swarmDrops ;
}
private void createAlleles () {
IClassification hymnoptera = AlleleManager . alleleRegistry . createAndRegisterClassification ( EnumClassLevel . ORDER , "hymnoptera" , "Hymnoptera" );
AlleleManager . alleleRegistry . getClassification ( "class.insecta" ). addMemberGroup ( hymnoptera );
IClassification apidae = AlleleManager . alleleRegistry . createAndRegisterClassification ( EnumClassLevel . FAMILY , "apidae" , "Apidae" );
hymnoptera . addMemberGroup ( apidae );
IClassification honey = new BranchBees ( "honey" , "Apis" );
apidae . addMemberGroup ( honey );
IClassification noble = new BranchBees ( "noble" , "Probapis" );
apidae . addMemberGroup ( noble );
IClassification industrious = new BranchBees ( "industrious" , "Industrapis" );
apidae . addMemberGroup ( industrious );
IClassification heroic = new BranchBees ( "heroic" , "Herapis" );
apidae . addMemberGroup ( heroic );
IClassification infernal = new BranchBees ( "infernal" , "Diapis" );
apidae . addMemberGroup ( infernal );
IClassification austere = new BranchBees ( "austere" , "Modapis" );
apidae . addMemberGroup ( austere );
IClassification end = new BranchBees ( "end" , "Finapis" );
apidae . addMemberGroup ( end );
IClassification vengeful = new BranchBees ( "vengeful" , "Punapis" );
apidae . addMemberGroup ( vengeful );
IClassification tropical = new BranchBees ( "tropical" , "Caldapis" );
apidae . addMemberGroup ( tropical );
IClassification frozen = new BranchBees ( "frozen" , "Coagapis" );
apidae . addMemberGroup ( frozen );
IClassification reddened = new BranchBees ( "reddened" , "Rubapis" );
apidae . addMemberGroup ( reddened );
IClassification festive = new BranchBees ( "festive" , "Festapis" );
apidae . addMemberGroup ( festive );
IClassification agrarian = new BranchBees ( "agrarian" , "Rustapis" );
apidae . addMemberGroup ( agrarian );
IClassification boggy = new BranchBees ( "boggy" , "Paludapis" );
apidae . addMemberGroup ( boggy );
IClassification monastic = new BranchBees ( "monastic" , "Monapis" );
apidae . addMemberGroup ( monastic );
// / BEES // SPECIES
// Common Branch
Allele . speciesForest = new AlleleBeeSpecies ( "speciesForest" , true , "bees.species.forest" , honey , "nigrocincta" , 0x19d0ec , 0xffdc16 ). addProduct (
ForestryItem . beeComb . getItemStack ( 1 , 0 ), 30 );
Allele . speciesMeadows = new AlleleBeeSpecies ( "speciesMeadows" , true , "bees.species.meadows" , honey , "florea" , 0xef131e , 0xffdc16 ). addProduct (
ForestryItem . beeComb . getItemStack ( 1 , 0 ), 30 );
Allele . speciesCommon = new AlleleBeeSpecies ( "speciesCommon" , true , "bees.species.common" , honey , "cerana" , 0xb2b2b2 , 0xffdc16 ). addProduct (
ForestryItem . beeComb . getItemStack ( 1 , 0 ), 35 ). setIsSecret ();
Allele . speciesCultivated = new AlleleBeeSpecies ( "speciesCultivated" , true , "bees.species.cultivated" , honey , "mellifera" , 0x5734ec , 0xffdc16 )
. addProduct ( ForestryItem . beeComb . getItemStack ( 1 , 0 ), 40 ). setIsSecret ();
// Noble Branch
Allele . speciesNoble = new AlleleBeeSpecies ( "speciesNoble" , false , "bees.species.noble" , noble , "nobilis" , 0xec9a19 , 0xffdc16 ). addProduct (
ForestryItem . beeComb . getItemStack ( 1 , 5 ), 20 ). setIsSecret ();
Allele . speciesMajestic = new AlleleBeeSpecies ( "speciesMajestic" , true , "bees.species.majestic" , noble , "regalis" , 0x7f0000 , 0xffdc16 ). addProduct (
ForestryItem . beeComb . getItemStack ( 1 , 5 ), 30 ). setIsSecret ();
Allele . speciesImperial = new AlleleBeeSpecies ( "speciesImperial" , false , "bees.species.imperial" , noble , "imperatorius" , 0xa3e02f , 0xffdc16 )
. addProduct ( ForestryItem . beeComb . getItemStack ( 1 , 5 ), 20 ). addProduct ( ForestryItem . royalJelly . getItemStack (), 15 ). setHasEffect (). setIsSecret ();
// Industrious Branch
Allele . speciesDiligent = new AlleleBeeSpecies ( "speciesDiligent" , false , "bees.species.diligent" , industrious , "sedulus" , 0xc219ec , 0xffdc16 )
. addProduct ( ForestryItem . beeComb . getItemStack ( 1 , 3 ), 20 ). setIsSecret ();
Allele . speciesUnweary = new AlleleBeeSpecies ( "speciesUnweary" , true , "bees.species.unweary" , industrious , "assiduus" , 0x19ec5a , 0xffdc16 ). addProduct (
ForestryItem . beeComb . getItemStack ( 1 , 3 ), 30 ). setIsSecret ();
Allele . speciesIndustrious = new AlleleBeeSpecies ( "speciesIndustrious" , false , "bees.species.industrious" , industrious , "industria" , 0xffffff , 0xffdc16 )
. addProduct ( ForestryItem . beeComb . getItemStack ( 1 , 3 ), 20 ). addProduct ( ForestryItem . pollen . getItemStack (), 15 ). setHasEffect (). setIsSecret ();
// Heroic Branch
Allele . speciesSteadfast = new AlleleBeeSpecies ( "speciesSteadfast" , false , "bees.species.steadfast" , heroic , "legio" , 0x4d2b15 , 0xffdc16 )
. addProduct ( ForestryItem . beeComb . getItemStack ( 1 , 1 ), 20 ). setIsSecret (). setHasEffect ();
Allele . speciesValiant = new AlleleBeeSpecies ( "speciesValiant" , true , "bees.species.valiant" , heroic , "centurio" , 0x626bdd , 0xffdc16 )
. addProduct ( ForestryItem . beeComb . getItemStack ( 1 , 1 ), 30 ). addSpecialty ( new ItemStack ( Items . sugar ), 15 ). setIsSecret ();
Allele . speciesHeroic = new AlleleBeeSpecies ( "speciesHeroic" , false , "bees.species.heroic" , heroic , "kraphti" , 0xb3d5e4 , 0xffdc16 )
. addProduct ( ForestryItem . beeComb . getItemStack ( 1 , 1 ), 40 ). setIsSecret (). setHasEffect ();
// Infernal Branch
Allele . speciesSinister = new AlleleBeeSpecies ( "speciesSinister" , false , "bees.species.sinister" , infernal , "caecus" , 0xb3d5e4 , 0x9a2323 )
. addProduct ( ForestryItem . beeComb . getItemStack ( 1 , 2 ), 45 ). setEntityTexture ( "sinisterBee" ). setIsSecret (). setTemperature ( EnumTemperature . HELLISH ). setHumidity ( EnumHumidity . ARID );
Allele . speciesFiendish = new AlleleBeeSpecies ( "speciesFiendish" , true , "bees.species.fiendish" , infernal , "diabolus" , 0xd7bee5 , 0x9a2323 )
. addProduct ( ForestryItem . beeComb . getItemStack ( 1 , 2 ), 55 ). addProduct ( ForestryItem . ash . getItemStack (), 15 ). setEntityTexture ( "sinisterBee" ). setIsSecret ()
. setTemperature ( EnumTemperature . HELLISH ). setHumidity ( EnumHumidity . ARID );
Allele . speciesDemonic = new AlleleBeeSpecies ( "speciesDemonic" , false , "bees.species.demonic" , infernal , "draco" , 0xf4e400 , 0x9a2323 )
. addProduct ( ForestryItem . beeComb . getItemStack ( 1 , 2 ), 45 ). addProduct ( new ItemStack ( Items . glowstone_dust ), 15 ). setEntityTexture ( "sinisterBee" ). setHasEffect (). setIsSecret ()
. setTemperature ( EnumTemperature . HELLISH ). setHumidity ( EnumHumidity . ARID );
// Austere Branch
Allele . speciesModest = new AlleleBeeSpecies ( "speciesModest" , false , "bees.species.modest" , austere , "modicus" , 0xc5be86 , 0xffdc16 )
. addProduct ( ForestryItem . beeComb . getItemStack ( 1 , 7 ), 20 ). setTemperature ( EnumTemperature . HOT ). setHumidity ( EnumHumidity . ARID );
Allele . speciesFrugal = new AlleleBeeSpecies ( "speciesFrugal" , true , "bees.species.frugal" , austere , "permodestus" , 0xe8dcb1 , 0xffdc16 )
. addProduct ( ForestryItem . beeComb . getItemStack ( 1 , 7 ), 30 ). setIsSecret (). setTemperature ( EnumTemperature . HOT ). setHumidity ( EnumHumidity . ARID );
Allele . speciesAustere = new AlleleBeeSpecies ( "speciesAustere" , false , "bees.species.austere" , austere , "correpere" , 0xfffac2 , 0xffdc16 )
. addProduct ( ForestryItem . beeComb . getItemStack ( 1 , 7 ), 20 ). addSpecialty ( ForestryItem . beeComb . getItemStack ( 1 , 10 ), 50 ). setHasEffect ()
. setIsSecret (). setTemperature ( EnumTemperature . HOT ). setHumidity ( EnumHumidity . ARID );
// / Tropical Branch
Allele . speciesTropical = new AlleleBeeSpecies ( "speciesTropical" , false , "bees.species.tropical" , tropical , "mendelia" , 0x378020 , 0xffdc16 )
. addProduct ( ForestryItem . beeComb . getItemStack ( 1 , 6 ), 20 ). setEntityTexture ( "tropicalBee" ). setTemperature ( EnumTemperature . WARM ). setHumidity ( EnumHumidity . DAMP );
Allele . speciesExotic = new AlleleBeeSpecies ( "speciesExotic" , true , "bees.species.exotic" , tropical , "darwini" , 0x304903 , 0xffdc16 )
. addProduct ( ForestryItem . beeComb . getItemStack ( 1 , 6 ), 30 ). setEntityTexture ( "tropicalBee" ). setIsSecret (). setTemperature ( EnumTemperature . WARM ). setHumidity ( EnumHumidity . DAMP );
Allele . speciesEdenic = new AlleleBeeSpecies ( "speciesEdenic" , false , "bees.species.edenic" , tropical , "humboldti" , 0x393d0d , 0xffdc16 )
. addProduct ( ForestryItem . beeComb . getItemStack ( 1 , 6 ), 20 ). setEntityTexture ( "tropicalBee" ). setHasEffect (). setIsSecret (). setTemperature ( EnumTemperature . WARM )
. setHumidity ( EnumHumidity . DAMP );
// End Branch
Allele . speciesEnded = new AlleleBeeSpecies ( "speciesEnded" , false , "bees.species.ender" , end , "notchi" , 0xe079fa , 0xd9de9e )
. addProduct ( ForestryItem . beeComb . getItemStack ( 1 , 8 ), 30 ). setEntityTexture ( "endBee" ). setIsSecret (). setTemperature ( EnumTemperature . COLD );
Allele . speciesSpectral = new AlleleBeeSpecies ( "speciesSpectral" , true , "bees.species.spectral" , end , "idolum" , 0xa98bed , 0xd9de9e ) // 0xa98bed
. addProduct ( ForestryItem . beeComb . getItemStack ( 1 , 8 ), 50 ). setEntityTexture ( "endBee" ). setIsSecret (). setTemperature ( EnumTemperature . COLD );
Allele . speciesPhantasmal = new AlleleBeeSpecies ( "speciesPhantasmal" , false , "bees.species.phantasmal" , end , "lemur" , 0xcc00fa , 0xd9de9e ) // 0x31023a //
// 0x8bc3ed
. addProduct ( ForestryItem . beeComb . getItemStack ( 1 , 8 ), 40 ). setEntityTexture ( "endBee" ). setIsSecret (). setHasEffect (). setTemperature ( EnumTemperature . COLD );
// Frozen Branch
Allele . speciesWintry = new AlleleBeeSpecies ( "speciesWintry" , false , "bees.species.wintry" , frozen , "brumalis" , 0xa0ffc8 , 0xdaf5f3 ). addProduct (
ForestryItem . beeComb . getItemStack ( 1 , 4 ), 30 ). setEntityTexture ( "icyBee" ). setTemperature ( EnumTemperature . ICY );
Allele . speciesIcy = new AlleleBeeSpecies ( "speciesIcy" , true , "bees.species.icy" , frozen , "coagulis" , 0xa0ffff , 0xdaf5f3 )
. addProduct ( ForestryItem . beeComb . getItemStack ( 1 , 4 ), 20 ). setEntityTexture ( "icyBee" ). addProduct ( ForestryItem . craftingMaterial . getItemStack ( 1 , 5 ), 20 )
. setTemperature ( EnumTemperature . ICY ). setIsSecret ();
Allele . speciesGlacial = new AlleleBeeSpecies ( "speciesGlacial" , false , "bees.species.glacial" , frozen , "glacialis" , 0xefffff , 0xdaf5f3 )
. addProduct ( ForestryItem . beeComb . getItemStack ( 1 , 4 ), 20 ). setEntityTexture ( "icyBee" ). addProduct ( ForestryItem . craftingMaterial . getItemStack ( 1 , 5 ), 40 )
. setTemperature ( EnumTemperature . ICY ). setHasEffect (). setIsSecret ();
// Vengeful Branch
Allele . speciesVindictive = new AlleleBeeSpecies ( "speciesVindictive" , false , "bees.species.vindictive" , vengeful , "ultio" , 0xeafff3 , 0xffdc16 )
. addProduct ( ForestryItem . beeComb . getItemStack ( 1 , 9 ), 25 ). setIsSecret (). setIsNotCounted ();
Allele . speciesVengeful = new AlleleBeeSpecies ( "speciesVengeful" , false , "bees.species.vengeful" , vengeful , "punire" , 0xc2de00 , 0xffdc16 )
. addProduct ( ForestryItem . beeComb . getItemStack ( 1 , 9 ), 40 ). setIsSecret (). setIsNotCounted ();
Allele . speciesAvenging = new AlleleBeeSpecies ( "speciesAvenging" , false , "bees.species.avenging" , vengeful , "hostimentum" , 0xddff00 , 0xffdc16 )
. addProduct ( ForestryItem . beeComb . getItemStack ( 1 , 9 ), 40 ). setIsSecret (). setHasEffect (). setIsNotCounted ();
// Reddened Branch (EE)
Allele . speciesDarkened = new AlleleBeeSpecies ( "speciesDarkened" , false , "bees.species.darkened" , reddened , "pahimas" , 0xd7bee5 , 0x260f29 )
. addProduct ( ForestryItem . beeComb . getItemStack ( 1 , 0 ), 100 ). addSpecialty ( ForestryItem . beeComb . getItemStack ( 1 , 12 ), 100 )
. setJubilanceProvider ( new JubilanceNone ()). setIsSecret (). setIsNotCounted ();
AlleleManager . alleleRegistry . blacklistAllele ( Allele . speciesDarkened . getUID ());
Allele . speciesReddened = new AlleleBeeSpecies ( "speciesReddened" , false , "bees.species.reddened" , reddened , "xenophos" , 0xf8c1c1 , 0x260f29 )
. addProduct ( ForestryItem . beeComb . getItemStack ( 1 , 0 ), 100 ). addSpecialty ( ForestryItem . beeComb . getItemStack ( 1 , 11 ), 100 )
. setJubilanceProvider ( new JubilanceNone ()). setIsSecret (). setIsNotCounted ();
AlleleManager . alleleRegistry . blacklistAllele ( Allele . speciesReddened . getUID ());
Allele . speciesOmega = new AlleleBeeSpecies ( "speciesOmega" , false , "bees.species.omega" , reddened , "slopokis" , 0xfeff8f , 0x260f29 )
. addProduct ( ForestryItem . beeComb . getItemStack ( 1 , 0 ), 100 ). addSpecialty ( ForestryItem . beeComb . getItemStack ( 1 , 13 ), 100 )
. setJubilanceProvider ( new JubilanceNone ()). setIsSecret (). setIsNotCounted ();
AlleleManager . alleleRegistry . blacklistAllele ( Allele . speciesOmega . getUID ());
// Festive branch
Allele . speciesLeporine = new AlleleBeeSpecies ( "speciesLeporine" , false , "bees.species.leporine" , festive , "lepus" , 0xfeff8f , 0x3cd757 )
. addProduct ( ForestryItem . beeComb . getItemStack ( 1 , 6 ), 30 ). addProduct ( new ItemStack ( Items . egg ), 10 ). setIsSecret (). setIsNotCounted ()
. setHasEffect ();
Allele . speciesMerry = new AlleleBeeSpecies ( "speciesMerry" , false , "bees.species.merry" , festive , "feliciter" , 0xffffff , 0xd40000 )
. addProduct ( ForestryItem . beeComb . getItemStack ( 1 , 4 ), 30 ). addProduct ( ForestryItem . craftingMaterial . getItemStack ( 1 , 5 ), 20 )
. setTemperature ( EnumTemperature . ICY ). setIsSecret (). setIsNotCounted (). setHasEffect ();
Allele . speciesTipsy = new AlleleBeeSpecies ( "speciesTipsy" , false , "bees.species.tipsy" , festive , "ebrius" , 0xffffff , 0xc219ec )
. addProduct ( ForestryItem . beeComb . getItemStack ( 1 , 4 ), 30 ). addProduct ( ForestryItem . craftingMaterial . getItemStack ( 1 , 5 ), 20 )
. setTemperature ( EnumTemperature . ICY ). setIsSecret (). setIsNotCounted (). setHasEffect ();
// 35 Solstice
Allele . speciesTricky = new AlleleBeeSpecies ( "speciesTricky" , false , "bees.species.tricky" , festive , "libita" , 0x49413B , 0xFF6A00 )
. addProduct ( ForestryItem . beeComb . getItemStack ( 1 , 0 ), 40 ). addProduct ( new ItemStack ( Items . cookie ), 15 )
. addSpecialty ( new ItemStack ( Items . skull , 1 , 0 ), 2 ). addSpecialty ( new ItemStack ( Items . skull , 1 , 2 ), 2 )
. addSpecialty ( new ItemStack ( Items . skull , 1 , 3 ), 2 ). addSpecialty ( new ItemStack ( Items . skull , 1 , 4 ), 2 )
. setIsSecret (). setIsNotCounted (). setHasEffect ();
// 37 Thanksgiving
// Agrarian branch
Allele . speciesRural = new AlleleBeeSpecies ( "speciesRural" , false , "bees.species.rural" , agrarian , "rustico" , 0xfeff8f , 0xffdc16 ). addProduct (
ForestryItem . beeComb . getItemStack ( 1 , 14 ), 20 ). setIsSecret ();
// 41 Farmerly
// 42 Agrarian
// Boggy branch
Allele . speciesMarshy = new AlleleBeeSpecies ( "speciesMarshy" , true , "bees.species.marshy" , boggy , "adorasti" , 0x546626 , 0xffdc16 ). addProduct (
ForestryItem . beeComb . getItemStack ( 1 , 15 ), 30 ). setHumidity ( EnumHumidity . DAMP );
// 44 speciesMiry
// 45 speciesBoggy
// Monastic branch
Allele . speciesMonastic = new AlleleBeeSpecies ( "speciesMonastic" , false , "bees.species.monastic" , monastic , "monachus" , 0x42371c , 0xfff7b6 )
. addProduct ( ForestryItem . beeComb . getItemStack ( 1 , 14 ), 30 ). addSpecialty ( ForestryItem . beeComb . getItemStack ( 1 , 16 ), 10 )
. setJubilanceProvider ( new JubilanceProviderHermit ()). setIsSecret ();
Allele . speciesSecluded = new AlleleBeeSpecies ( "speciesSecluded" , true , "bees.species.secluded" , monastic , "contractus" , 0x7b6634 , 0xfff7b6 )
. addSpecialty ( ForestryItem . beeComb . getItemStack ( 1 , 16 ), 20 ). setJubilanceProvider ( new JubilanceProviderHermit ()). setIsSecret ();
Allele . speciesHermitic = new AlleleBeeSpecies ( "speciesHermitic" , false , "bees.species.hermitic" , monastic , "anachoreta" , 0xffd46c , 0xfff7b6 )
. addSpecialty ( ForestryItem . beeComb . getItemStack ( 1 , 16 ), 20 ). setJubilanceProvider ( new JubilanceProviderHermit ()). setHasEffect (). setIsSecret ();
// / BEES // FLOWER PROVIDERS 1500 - 1599
Allele . flowersVanilla = new AlleleFlowers ( "flowersVanilla" , new FlowerProviderVanilla (), true );
Allele . flowersNether = new AlleleFlowers ( "flowersNether" , new FlowerProviderNetherwart ());
Allele . flowersCacti = new AlleleFlowers ( "flowersCacti" , new FlowerProviderCacti ());
Allele . flowersMushrooms = new AlleleFlowers ( "flowersMushrooms" , new FlowerProviderMushroom ());
Allele . flowersEnd = new AlleleFlowers ( "flowersEnd" , new FlowerProviderEnd ());
Allele . flowersJungle = new AlleleFlowers ( "flowersJungle" , new FlowerProviderJungle ());
Allele . flowersSnow = new AlleleFlowers ( "flowersSnow" , new FlowerProviderVanilla (), true );
Allele . flowersWheat = new AlleleFlowers ( "flowersWheat" , new FlowerProviderWheat (), true );
Allele . flowersGourd = new AlleleFlowers ( "flowersGourd" , new FlowerProviderGourd (), true );
// / BEES // EFFECTS 1800 - 1899
Allele . effectNone = new AlleleEffectNone ( "effectNone" );
Allele . effectAggressive = new AlleleEffectAggressive ( "effectAggressive" );
Allele . effectHeroic = new AlleleEffectHeroic ( "effectHeroic" );
Allele . effectBeatific = new AlleleEffectPotion ( "effectBeatific" , "beatific" , false , Potion . regeneration , 100 , true );
Allele . effectMiasmic = new AlleleEffectMiasmic ( "effectMiasmic" );
Allele . effectMisanthrope = new AlleleEffectMisanthrope ( "effectMisanthrope" );
Allele . effectGlacial = new AlleleEffectGlacial ( "effectGlacial" );
Allele . effectRadioactive = new AlleleEffectRadioactive ( "effectRadioactive" );
Allele . effectCreeper = new AlleleEffectCreeper ( "effectCreeper" );
Allele . effectIgnition = new AlleleEffectIgnition ( "effectIgnition" );
Allele . effectExploration = new AlleleEffectExploration ( "effectExploration" );
Allele . effectFestiveEaster = new AlleleEffectNone ( "effectFestiveEaster" );
Allele . effectSnowing = new AlleleEffectSnowing ( "effectSnowing" );
Allele . effectDrunkard = new AlleleEffectPotion ( "effectDrunkard" , "drunkard" , false , Potion . confusion , 100 , false );
Allele . effectReanimation = new AlleleEffectResurrection ( "effectReanimation" , "reanimation" , AlleleEffectResurrection . getReanimationList ());
Allele . effectResurrection = new AlleleEffectResurrection ( "effectResurrection" , "resurrection" , AlleleEffectResurrection . getResurrectionList ());
Allele . effectRepulsion = new AlleleEffectRepulsion ( "effectRepulsion" );
}
private void createMutations () {
// / MUTATIONS
BeeTemplates . commonA = new BeeMutation ( Allele . speciesForest , Allele . speciesMeadows , BeeTemplates . getCommonTemplate (), 15 );
BeeTemplates . commonB = new BeeMutation ( Allele . speciesModest , Allele . speciesForest , BeeTemplates . getCommonTemplate (), 15 );
BeeTemplates . commonC = new BeeMutation ( Allele . speciesModest , Allele . speciesMeadows , BeeTemplates . getCommonTemplate (), 15 );
BeeTemplates . commonD = new BeeMutation ( Allele . speciesWintry , Allele . speciesForest , BeeTemplates . getCommonTemplate (), 15 );
BeeTemplates . commonE = new BeeMutation ( Allele . speciesWintry , Allele . speciesMeadows , BeeTemplates . getCommonTemplate (), 15 );
BeeTemplates . commonF = new BeeMutation ( Allele . speciesWintry , Allele . speciesModest , BeeTemplates . getCommonTemplate (), 15 );
BeeTemplates . commonG = new BeeMutation ( Allele . speciesTropical , Allele . speciesForest , BeeTemplates . getCommonTemplate (), 15 );
BeeTemplates . commonH = new BeeMutation ( Allele . speciesTropical , Allele . speciesMeadows , BeeTemplates . getCommonTemplate (), 15 );
BeeTemplates . commonI = new BeeMutation ( Allele . speciesTropical , Allele . speciesModest , BeeTemplates . getCommonTemplate (), 15 );
BeeTemplates . commonJ = new BeeMutation ( Allele . speciesTropical , Allele . speciesWintry , BeeTemplates . getCommonTemplate (), 15 );
BeeTemplates . commonK = new BeeMutation ( Allele . speciesMarshy , Allele . speciesForest , BeeTemplates . getCommonTemplate (), 15 );
BeeTemplates . commonL = new BeeMutation ( Allele . speciesMarshy , Allele . speciesMeadows , BeeTemplates . getCommonTemplate (), 15 );
BeeTemplates . commonM = new BeeMutation ( Allele . speciesMarshy , Allele . speciesModest , BeeTemplates . getCommonTemplate (), 15 );
BeeTemplates . commonN = new BeeMutation ( Allele . speciesMarshy , Allele . speciesWintry , BeeTemplates . getCommonTemplate (), 15 );
BeeTemplates . commonO = new BeeMutation ( Allele . speciesMarshy , Allele . speciesTropical , BeeTemplates . getCommonTemplate (), 15 );
BeeTemplates . cultivatedA = new BeeMutation ( Allele . speciesCommon , Allele . speciesForest , BeeTemplates . getCultivatedTemplate (), 12 );
BeeTemplates . cultivatedB = new BeeMutation ( Allele . speciesCommon , Allele . speciesMeadows , BeeTemplates . getCultivatedTemplate (), 12 );
BeeTemplates . cultivatedC = new BeeMutation ( Allele . speciesCommon , Allele . speciesModest , BeeTemplates . getCultivatedTemplate (), 12 );
BeeTemplates . cultivatedD = new BeeMutation ( Allele . speciesCommon , Allele . speciesWintry , BeeTemplates . getCultivatedTemplate (), 12 );
BeeTemplates . cultivatedE = new BeeMutation ( Allele . speciesCommon , Allele . speciesTropical , BeeTemplates . getCultivatedTemplate (), 12 );
BeeTemplates . cultivatedF = new BeeMutation ( Allele . speciesCommon , Allele . speciesMarshy , BeeTemplates . getCultivatedTemplate (), 12 );
BeeTemplates . nobleA = new BeeMutation ( Allele . speciesCommon , Allele . speciesCultivated , BeeTemplates . getNobleTemplate (), 10 );
BeeTemplates . majesticA = new BeeMutation ( Allele . speciesNoble , Allele . speciesCultivated , BeeTemplates . getMajesticTemplate (), 8 );
BeeTemplates . imperialA = new BeeMutation ( Allele . speciesNoble , Allele . speciesMajestic , BeeTemplates . getImperialTemplate (), 8 );
BeeTemplates . diligentA = new BeeMutation ( Allele . speciesCommon , Allele . speciesCultivated , BeeTemplates . getDiligentTemplate (), 10 );
BeeTemplates . unwearyA = new BeeMutation ( Allele . speciesDiligent , Allele . speciesCultivated , BeeTemplates . getUnwearyTemplate (), 8 );
BeeTemplates . industriousA = new BeeMutation ( Allele . speciesDiligent , Allele . speciesUnweary , BeeTemplates . getIndustriousTemplate (), 8 );
BeeTemplates . heroicA = new BeeMutation ( Allele . speciesSteadfast , Allele . speciesValiant , BeeTemplates . getHeroicTemplate (), 6 )
. restrictBiomeType ( BiomeDictionary . Type . FOREST ). enableStrictBiomeCheck ();
BeeTemplates . sinisterA = new BeeMutation ( Allele . speciesModest , Allele . speciesCultivated , BeeTemplates . getSinisterTemplate (), 60 )
. restrictBiomeType ( BiomeDictionary . Type . NETHER );
BeeTemplates . sinisterB = new BeeMutation ( Allele . speciesTropical , Allele . speciesCultivated , BeeTemplates . getSinisterTemplate (), 60 )
. restrictBiomeType ( BiomeDictionary . Type . NETHER );
BeeTemplates . fiendishA = new BeeMutation ( Allele . speciesSinister , Allele . speciesCultivated , BeeTemplates . getFiendishTemplate (), 40 )
. restrictBiomeType ( BiomeDictionary . Type . NETHER );
BeeTemplates . fiendishB = new BeeMutation ( Allele . speciesSinister , Allele . speciesModest , BeeTemplates . getFiendishTemplate (), 40 )
. restrictBiomeType ( BiomeDictionary . Type . NETHER );
BeeTemplates . fiendishC = new BeeMutation ( Allele . speciesSinister , Allele . speciesTropical , BeeTemplates . getFiendishTemplate (), 40 )
. restrictBiomeType ( BiomeDictionary . Type . NETHER );
BeeTemplates . demonicA = new BeeMutation ( Allele . speciesSinister , Allele . speciesFiendish , BeeTemplates . getDemonicTemplate (), 25 )
. restrictBiomeType ( BiomeDictionary . Type . NETHER );
// Austere branch
BeeTemplates . frugalA = new BeeMutation ( Allele . speciesModest , Allele . speciesSinister , BeeTemplates . getFrugalTemplate (), 16 ). setTemperatureRainfall ( 1 . 9f ,
2 . 0f , 0 . 0f , 0 . 1f );
BeeTemplates . frugalB = new BeeMutation ( Allele . speciesModest , Allele . speciesFiendish , BeeTemplates . getFrugalTemplate (), 10 ). setTemperatureRainfall ( 1 . 9f ,
2 . 0f , 0 . 0f , 0 . 1f );
BeeTemplates . austereA = new BeeMutation ( Allele . speciesModest , Allele . speciesFrugal , BeeTemplates . getAustereTemplate (), 8 ). setTemperatureRainfall ( 1 . 9f ,
2 . 0f , 0 . 0f , 0 . 1f );
// Tropical branch
BeeTemplates . exoticA = new BeeMutation ( Allele . speciesAustere , Allele . speciesTropical , BeeTemplates . getExoticTemplate (), 12 );
BeeTemplates . edenicA = new BeeMutation ( Allele . speciesExotic , Allele . speciesTropical , BeeTemplates . getEdenicTemplate (), 8 );
// Wintry branch
BeeTemplates . icyA = new BeeMutation ( Allele . speciesIndustrious , Allele . speciesWintry , BeeTemplates . getIcyTemplate (), 12 ). setTemperature ( 0f , 0 . 15f );
BeeTemplates . glacialA = new BeeMutation ( Allele . speciesIcy , Allele . speciesWintry , BeeTemplates . getGlacialTemplate (), 8 ). setTemperature ( 0f , 0 . 15f );
// Festive branch
BeeTemplates . leporineA = new MutationTimeLimited ( Allele . speciesMeadows , Allele . speciesForest , BeeTemplates . getLeporineTemplate (), 10 ,
new MutationTimeLimited . DayMonth ( 29 , 3 ), new MutationTimeLimited . DayMonth ( 15 , 4 )). setIsSecret ();
BeeTemplates . merryA = new MutationTimeLimited ( Allele . speciesWintry , Allele . speciesForest , BeeTemplates . getMerryTemplate (), 10 ,
new MutationTimeLimited . DayMonth ( 21 , 12 ), new MutationTimeLimited . DayMonth ( 27 , 12 )). setIsSecret ();
BeeTemplates . tipsyA = new MutationTimeLimited ( Allele . speciesWintry , Allele . speciesMeadows , BeeTemplates . getTipsyTemplate (), 10 ,
new MutationTimeLimited . DayMonth ( 27 , 12 ), new MutationTimeLimited . DayMonth ( 2 , 1 )). setIsSecret ();
BeeTemplates . trickyA = new MutationTimeLimited ( Allele . speciesSinister , Allele . speciesCommon , BeeTemplates . getTrickyTemplate (), 10 ,
new MutationTimeLimited . DayMonth ( 15 , 10 ), new MutationTimeLimited . DayMonth ( 3 , 11 )). setIsSecret ();
// Agrarian branch
BeeTemplates . ruralA = new BeeMutation ( Allele . speciesMeadows , Allele . speciesDiligent , BeeTemplates . getRuralTemplate (), 12 )
. restrictBiomeType ( BiomeDictionary . Type . PLAINS ). enableStrictBiomeCheck ();
// Monastic branch
BeeTemplates . secludedA = new BeeMutation ( Allele . speciesMonastic , Allele . speciesAustere , BeeTemplates . getSecludedTemplate (), 12 );
BeeTemplates . hermiticA = new BeeMutation ( Allele . speciesMonastic , Allele . speciesSecluded , BeeTemplates . getHermiticTemplate (), 8 );
// End branch
BeeTemplates . spectralA = new BeeMutation ( Allele . speciesHermitic , Allele . speciesEnded , BeeTemplates . getSpectralTemplate (), 4 );
BeeTemplates . phantasmalA = new BeeMutation ( Allele . speciesSpectral , Allele . speciesEnded , BeeTemplates . getPhantasmalTemplate (), 2 );
// Vindictive branch
BeeTemplates . vindictiveA = new BeeMutation ( Allele . speciesMonastic , Allele . speciesDemonic , BeeTemplates . getVindictiveTemplate (), 4 ). setIsSecret ();
BeeTemplates . vengefulA = new BeeMutation ( Allele . speciesDemonic , Allele . speciesVindictive , BeeTemplates . getVengefulTemplate (), 8 ). setIsSecret ();
BeeTemplates . vengefulB = new BeeMutation ( Allele . speciesMonastic , Allele . speciesVindictive , BeeTemplates . getVengefulTemplate (), 8 ). setIsSecret ();
BeeTemplates . avengingA = new BeeMutation ( Allele . speciesVengeful , Allele . speciesVindictive , BeeTemplates . getAvengingTemplate (), 4 );
}
private void registerTemplates () {
beeInterface . registerTemplate ( BeeTemplates . getForestTemplate ());
beeInterface . registerTemplate ( BeeTemplates . getMeadowsTemplate ());
beeInterface . registerTemplate ( BeeTemplates . getCommonTemplate ());
beeInterface . registerTemplate ( BeeTemplates . getCultivatedTemplate ());
beeInterface . registerTemplate ( BeeTemplates . getNobleTemplate ());
beeInterface . registerTemplate ( BeeTemplates . getMajesticTemplate ());
beeInterface . registerTemplate ( BeeTemplates . getImperialTemplate ());
beeInterface . registerTemplate ( BeeTemplates . getDiligentTemplate ());
beeInterface . registerTemplate ( BeeTemplates . getUnwearyTemplate ());
beeInterface . registerTemplate ( BeeTemplates . getIndustriousTemplate ());
beeInterface . registerTemplate ( BeeTemplates . getSteadfastTemplate ());
beeInterface . registerTemplate ( BeeTemplates . getValiantTemplate ());
beeInterface . registerTemplate ( BeeTemplates . getHeroicTemplate ());
beeInterface . registerTemplate ( BeeTemplates . getSinisterTemplate ());
beeInterface . registerTemplate ( BeeTemplates . getFiendishTemplate ());
beeInterface . registerTemplate ( BeeTemplates . getDemonicTemplate ());
beeInterface . registerTemplate ( BeeTemplates . getModestTemplate ());
beeInterface . registerTemplate ( BeeTemplates . getFrugalTemplate ());
beeInterface . registerTemplate ( BeeTemplates . getAustereTemplate ());
beeInterface . registerTemplate ( BeeTemplates . getTropicalTemplate ());
beeInterface . registerTemplate ( BeeTemplates . getExoticTemplate ());
beeInterface . registerTemplate ( BeeTemplates . getEdenicTemplate ());
beeInterface . registerTemplate ( BeeTemplates . getWintryTemplate ());
beeInterface . registerTemplate ( BeeTemplates . getIcyTemplate ());
beeInterface . registerTemplate ( BeeTemplates . getGlacialTemplate ());
beeInterface . registerTemplate ( BeeTemplates . getVindictiveTemplate ());
beeInterface . registerTemplate ( BeeTemplates . getVengefulTemplate ());
beeInterface . registerTemplate ( BeeTemplates . getAvengingTemplate ());
beeInterface . registerTemplate ( BeeTemplates . getDarkenedTemplate ());
beeInterface . registerTemplate ( BeeTemplates . getReddenedTemplate ());
beeInterface . registerTemplate ( BeeTemplates . getOmegaTemplate ());
beeInterface . registerTemplate ( BeeTemplates . getRuralTemplate ());
beeInterface . registerTemplate ( BeeTemplates . getLeporineTemplate ());
beeInterface . registerTemplate ( BeeTemplates . getMerryTemplate ());
beeInterface . registerTemplate ( BeeTemplates . getTipsyTemplate ());
beeInterface . registerTemplate ( BeeTemplates . getTrickyTemplate ());
beeInterface . registerTemplate ( BeeTemplates . getMarshyTemplate ());
beeInterface . registerTemplate ( BeeTemplates . getMonasticTemplate ());
beeInterface . registerTemplate ( BeeTemplates . getSecludedTemplate ());
beeInterface . registerTemplate ( BeeTemplates . getHermiticTemplate ());
beeInterface . registerTemplate ( BeeTemplates . getEnderTemplate ());
beeInterface . registerTemplate ( BeeTemplates . getSpectralTemplate ());
beeInterface . registerTemplate ( BeeTemplates . getPhantasmalTemplate ());
}
private void parseAdditionalFlowers ( String list , ArrayList < ItemStack > target ) {
String [] parts = list . split ( "[;]+" );
for ( String part : parts ) {
if ( part . isEmpty ())
continue ;
String [] ident = part . split ( "[:]+" );
if ( ident . length != 1 && ident . length != 2 ) {
Proxies . log . warning ( "Failed to add flower of (" + part + ") to vanilla flower provider since it isn't formatted properly." );
continue ;
}
2014-07-12 07:55:59 +02:00
Item item = GameData . getItemRegistry (). getRaw ( ident [ 0 ] );
2014-05-02 21:31:20 +02:00
if ( item == null ) {
2014-07-12 07:55:59 +02:00
Block block = GameData . getBlockRegistry (). getRaw ( ident [ 0 ] );
2014-05-02 21:31:20 +02:00
if ( block == null || block == Blocks . air || Item . getItemFromBlock ( block ) == null ) {
Proxies . log . warning ( "Failed to add flower of (" + part + ") to vanilla flower provider since it couldn't be found." );
continue ;
}
item = Item . getItemFromBlock ( block );
}
int meta = ident . length > 1 ? Integer . parseInt ( ident [ 1 ] ) : 0 ;
Proxies . log . finer ( "Adding flower of (" + part + ") to vanilla flower provider." );
target . add ( new ItemStack ( item , 1 , meta ));
}
}
private void parseBeeBlacklist ( String list ) {
String [] items = list . split ( "[;]+" );
for ( String item : items ) {
if ( item . isEmpty ())
continue ;
FMLCommonHandler . instance (). getFMLLogger (). debug ( "Blacklisting bee species identified by " + item );
AlleleManager . alleleRegistry . blacklistAllele ( item );
}
}
@Override
public ISaveEventHandler getSaveEventHandler () {
return new SaveEventHandlerApiculture ();
}
@Override
public IOreDictionaryHandler getDictionaryHandler () {
return null ;
}
@Override
public ICommand [] getConsoleCommands () {
return new ICommand [] { new CommandBeekeepingMode (), new CommandGiveBee ( EnumBeeType . DRONE ), new CommandGiveBee ( EnumBeeType . PRINCESS ),
new CommandGiveBee ( EnumBeeType . QUEEN ), };
}
@Override
public boolean processIMCMessage ( IMCMessage message ) {
if ( message . key . equals ( "add-candle-lighting-id" )) {
ItemStack value = message . getItemStackValue ();
if ( value != null ) {
(( BlockCandle ) ForestryBlock . candle ). addItemToLightingList ( value . getItem ());
} else {
Logger . getLogger ( "Forestry" ). log ( Level . WARNING ,
"Recieved an invalid 'add-candle-lighting-id' request from mod %s. Please contact the author and report this issue." ,
message . getSender ());
}
return true ;
}
else if ( message . key . equals ( "add-alveary-slab" ) && message . isStringMessage ()) {
try {
2014-07-12 07:55:59 +02:00
Block block = GameData . getBlockRegistry (). getRaw ( message . getStringValue ());
2014-05-02 21:31:20 +02:00
if ( block == null || block == Blocks . air ) {
Logger . getLogger ( "Forestry" ). log ( Level . WARNING ,
"Recieved an invalid 'add-alveary-slab' request from mod %s. Please contact the author and report this issue." ,
message . getSender ());
} else {
StructureLogicAlveary . slabBlocks . add ( block );
}
} catch ( Exception e ) {
}
}
return super . processIMCMessage ( message );
}
@SubscribeEvent
@SideOnly ( Side . CLIENT )
public void textureHook ( TextureStitchEvent . Pre event ) {
if ( event . map . getTextureType () == 1 ) {
EntitySnowFX . icons = new IIcon [ 3 ] ;
for ( int i = 0 ; i < EntitySnowFX . icons . length ; i ++ ) {
EntitySnowFX . icons [ i ] = event . map . registerIcon ( "forestry:particles/snow." + ( i + 1 ));
}
}
}
}