mirror of
https://github.com/GTNewHorizons/MagicBees.git
synced 2026-11-12 16:27:34 +00:00
1122 lines
42 KiB
Java
1122 lines
42 KiB
Java
package magicbees.bees;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.Collection;
|
|
import java.util.HashMap;
|
|
import java.util.Locale;
|
|
import java.util.Map;
|
|
|
|
import magicbees.item.types.CombType;
|
|
import magicbees.item.types.DropType;
|
|
import magicbees.item.types.NuggetType;
|
|
import magicbees.item.types.PollenType;
|
|
import magicbees.item.types.ResourceType;
|
|
import magicbees.main.Config;
|
|
import magicbees.main.utils.LocalizationManager;
|
|
import magicbees.main.utils.VersionInfo;
|
|
import magicbees.main.utils.compat.ArsMagicaHelper;
|
|
import magicbees.main.utils.compat.EquivalentExchangeHelper;
|
|
import magicbees.main.utils.compat.ForestryHelper;
|
|
import magicbees.main.utils.compat.ThaumcraftHelper;
|
|
import net.minecraft.block.Block;
|
|
import net.minecraft.client.renderer.texture.IconRegister;
|
|
import net.minecraft.item.Item;
|
|
import net.minecraft.item.ItemStack;
|
|
import net.minecraft.util.Icon;
|
|
import net.minecraft.world.World;
|
|
import net.minecraftforge.oredict.OreDictionary;
|
|
import cpw.mods.fml.relauncher.Side;
|
|
import cpw.mods.fml.relauncher.SideOnly;
|
|
import forestry.api.apiculture.EnumBeeChromosome;
|
|
import forestry.api.apiculture.EnumBeeType;
|
|
import forestry.api.apiculture.IAlleleBeeSpecies;
|
|
import forestry.api.apiculture.IBeeGenome;
|
|
import forestry.api.apiculture.IBeeHousing;
|
|
import forestry.api.apiculture.IBeeRoot;
|
|
import forestry.api.core.EnumHumidity;
|
|
import forestry.api.core.EnumTemperature;
|
|
import forestry.api.core.IIconProvider;
|
|
import forestry.api.genetics.AlleleManager;
|
|
import forestry.api.genetics.IAllele;
|
|
import forestry.api.genetics.IClassification;
|
|
import forestry.api.genetics.IIndividual;
|
|
import forestry.api.genetics.IMutation;
|
|
|
|
public enum BeeSpecies implements IAlleleBeeSpecies, IIconProvider
|
|
{
|
|
MYSTICAL("Mystical", "mysticum",
|
|
BeeClassification.VEILED, 0xAFFFB7, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, false, true),
|
|
SORCEROUS("Sorcerous", "fascinatio",
|
|
BeeClassification.VEILED, 0xEA9A9A, EnumTemperature.HOT, EnumHumidity.ARID, false, false, true),
|
|
UNUSUAL("Unusual", "inusitatus",
|
|
BeeClassification.VEILED, 0x72D361, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, false, true),
|
|
ATTUNED("Attuned", "similis",
|
|
BeeClassification.VEILED, 0x0086A8, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, false, true),
|
|
|
|
ELDRITCH("Eldritch", "prodigiosus",
|
|
BeeClassification.VEILED, 0x8D75A0, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, true),
|
|
|
|
ESOTERIC("Esoteric", "secretiore",
|
|
BeeClassification.ARCANE, 0x001099, 0xFF9D60, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, true),
|
|
MYSTERIOUS("Mysterious", "mysticus",
|
|
BeeClassification.ARCANE, 0x762bc2, 0xFF9D60, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, true),
|
|
ARCANE("Arcane", "arcanus",
|
|
BeeClassification.ARCANE, 0xd242df, 0xFF9D60, EnumTemperature.NORMAL, EnumHumidity.NORMAL, true, true),
|
|
|
|
CHARMED("Charmed", "larvatus",
|
|
BeeClassification.SUPERNATURAL, 0x48EEEC, 0xFF9D60, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, true),
|
|
ENCHANTED("Enchanted", "cantatus",
|
|
BeeClassification.SUPERNATURAL, 0x18e726, 0xFF9D60, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, true),
|
|
SUPERNATURAL("Supernatural", "coeleste",
|
|
BeeClassification.SUPERNATURAL, 0x005614, 0xFF9D60, EnumTemperature.NORMAL, EnumHumidity.NORMAL, true, true),
|
|
|
|
ETHEREAL("Ethereal", "diaphanum",
|
|
BeeClassification.MAGICAL, 0xBA3B3B, 0xEFF8FF, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, true),
|
|
|
|
WATERY("Watery", "aquatilis",
|
|
BeeClassification.MAGICAL, 0x313C5E, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false ,true),
|
|
EARTHY("Earthen", "fictili",
|
|
BeeClassification.MAGICAL, 0x78822D, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false ,true),
|
|
FIREY("Firey", "ardens",
|
|
BeeClassification.MAGICAL, 0xD35119, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false ,true),
|
|
WINDY("Windy", "ventosum",
|
|
BeeClassification.MAGICAL, 0xFFFDBA, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false ,true),
|
|
|
|
PUPIL("Pupil", "disciplina",
|
|
BeeClassification.SCHOLARLY, 0xFFFF00, EnumTemperature.NORMAL, EnumHumidity.ARID, false, true),
|
|
SCHOLARLY("Scholarly", "studiosis",
|
|
BeeClassification.SCHOLARLY, 0x6E0000, EnumTemperature.NORMAL, EnumHumidity.ARID, false, false),
|
|
SAVANT("Savant", "philologus",
|
|
BeeClassification.SCHOLARLY, 0xFFA042, EnumTemperature.NORMAL, EnumHumidity.ARID, true, false),
|
|
|
|
AWARE("Aware", "sensibilis",
|
|
BeeClassification.MAGICAL, 0x5E95B5, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, false),
|
|
SPIRIT("Spirit", "larva",
|
|
BeeClassification.SOUL, 0xb2964b, EnumTemperature.WARM, EnumHumidity.NORMAL, false, true),
|
|
SOUL("Soul", "anima",
|
|
BeeClassification.SOUL, 0x7d591b, EnumTemperature.HELLISH, EnumHumidity.NORMAL, true, false),
|
|
|
|
SKULKING("Skulking", "malevolens",
|
|
BeeClassification.SKULKING, 0x524827, 0xe15236, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, true),
|
|
GHASTLY("Ghastly", "pallens",
|
|
BeeClassification.SKULKING, 0xccccee, 0xbf877c, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, false),
|
|
SPIDERY("Spidery", "araneolus",
|
|
BeeClassification.SKULKING, 0x0888888, 0x222222, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, true),
|
|
SMOULDERING("Smouldering", "flagrantia",
|
|
BeeClassification.SKULKING, 0xFFC747, 0xEA8344, EnumTemperature.HELLISH, EnumHumidity.NORMAL, false, false),
|
|
|
|
TIMELY("Timely", "gallifreis",
|
|
BeeClassification.TIME, 0xC6AF86, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, true),
|
|
LORDLY("Lordly", "rassilonis",
|
|
BeeClassification.TIME, 0xC6AF86, 0x8E0213, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, false),
|
|
DOCTORAL("Doctoral", "medicus qui",
|
|
BeeClassification.TIME, 0xDDE5FC, 0x4B6E8C, EnumTemperature.NORMAL, EnumHumidity.NORMAL, true, false),
|
|
|
|
INFERNAL("Infernal", "infernales",
|
|
BeeClassification.ABOMINABLE, 0xFF1C1C, 0x960F00, EnumTemperature.HELLISH, EnumHumidity.ARID, false, true),
|
|
HATEFUL("Hateful", "odibilis",
|
|
BeeClassification.ABOMINABLE, 0xDB00DB, 0x960F00, EnumTemperature.HELLISH, EnumHumidity.ARID, false, false),
|
|
SPITEFUL("Spiteful", "maligna",
|
|
BeeClassification.ABOMINABLE, 0x5FCC00, 0x960F00, EnumTemperature.HELLISH, EnumHumidity.ARID, true, false),
|
|
WITHERING("Withering", "vietus",
|
|
BeeClassification.ABOMINABLE, 0x5B5B5B, 0x960F00, EnumTemperature.HELLISH, EnumHumidity.ARID, true, false),
|
|
|
|
OBLIVION("Oblivion", "oblivioni",
|
|
BeeClassification.EXTRINSIC, 0xD5C3E5, 0xF696FF, EnumTemperature.COLD, EnumHumidity.NORMAL, false, false),
|
|
NAMELESS("Nameless", "sine nomine",
|
|
BeeClassification.EXTRINSIC, 0x8ca7cb, 0xF696FF, EnumTemperature.COLD, EnumHumidity.NORMAL, false, true),
|
|
ABANDONED("Abandoned", "reliquit",
|
|
BeeClassification.EXTRINSIC, 0xc5cb8c, 0xF696FF, EnumTemperature.COLD, EnumHumidity.NORMAL, false, true),
|
|
FORLORN("Forlorn", "perditus",
|
|
BeeClassification.EXTRINSIC, 0xcba88c, 0xF696FF, EnumTemperature.COLD, EnumHumidity.NORMAL, true, false),
|
|
DRACONIC("Draconic", "draconic",
|
|
BeeClassification.EXTRINSIC, 0x9f56ad, 0x5a3b62, EnumTemperature.COLD, EnumHumidity.NORMAL, true, false),
|
|
|
|
IRON("Iron", "ferrus",
|
|
BeeClassification.METALLIC, 0x686868, 0xE9E9E9, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, true),
|
|
GOLD("Gold", "aurum",
|
|
BeeClassification.METALLIC, 0x684B01, 0xFFFF0B, EnumTemperature.NORMAL, EnumHumidity.NORMAL, true, false),
|
|
COPPER("Copper", "aercus",
|
|
BeeClassification.METALLIC, 0x684B01, 0xFFC81A, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, true),
|
|
TIN("Tin", "stannum",
|
|
BeeClassification.METALLIC, 0x3E596D, 0xA6BACB, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, true),
|
|
SILVER("Silver", "argenteus",
|
|
BeeClassification.METALLIC, 0x747C81, 0x96BFC4, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, false),
|
|
LEAD("Lead", "plumbeus",
|
|
BeeClassification.METALLIC, 0x96BFC4, 0x91A9F3, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, true),
|
|
ALUMINUM("Aluminum", "aluminium",
|
|
BeeClassification.METALLIC, 0xEDEDED, 0x767676, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, true),
|
|
ARDITE("Ardite", "aurantiaco",
|
|
BeeClassification.METALLIC, 0x720000, 0xFF9E00, EnumTemperature.HOT, EnumHumidity.ARID, false, false),
|
|
COBALT("Cobalt", "caeruleo",
|
|
BeeClassification.METALLIC, 0x03265F, 0x59AAEF, EnumTemperature.HOT, EnumHumidity.ARID, false, false),
|
|
MANYULLYN("Manyullyn", "manahmanah",
|
|
BeeClassification.METALLIC, 0x481D6D, 0xBD92F1, EnumTemperature.HOT, EnumHumidity.ARID, true, false),
|
|
|
|
DIAMOND("Diamond", "diamond",
|
|
BeeClassification.GEM, 0x209581, 0x8DF5E3, EnumTemperature.NORMAL, EnumHumidity.NORMAL, true, false),
|
|
EMERALD("Emerald", "prasinus",
|
|
BeeClassification.GEM, 0x005300, 0x17DD62, EnumTemperature.NORMAL, EnumHumidity.NORMAL, true, false),
|
|
APATITE("Apatite", "apatite",
|
|
BeeClassification.GEM, 0x2EA7EC, 0x001D51, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, false),
|
|
|
|
// --------- Thaumcraft Bees ---------------------------------------------------------------------------------------
|
|
TC_STARK("TCStark", "torridae", // Stark
|
|
BeeClassification.THAUMIC, 0xCCCCCC, 0x999999, EnumTemperature.NORMAL, EnumHumidity.NORMAL, true, false),
|
|
TC_AIR("TCAir", "aether", // Aura
|
|
BeeClassification.THAUMIC, 0xD9D636, 0x999999, EnumTemperature.NORMAL, EnumHumidity.NORMAL, true, true),
|
|
TC_FIRE("TCFire", "praefervidus", // Ignis
|
|
BeeClassification.THAUMIC, 0xE50B0B, 0x999999, EnumTemperature.HOT, EnumHumidity.ARID, true, true),
|
|
TC_WATER("TCWater", "umidus", // Aqua
|
|
BeeClassification.THAUMIC, 0x36CFD9, 0x999999, EnumTemperature.NORMAL, EnumHumidity.DAMP, true, true),
|
|
TC_EARTH("TCEarth", "sordida", // Solum
|
|
BeeClassification.THAUMIC, 0x005100, 0x999999, EnumTemperature.NORMAL, EnumHumidity.NORMAL, true, true),
|
|
TC_MAGIC("TCMagic", "azanorius", //Praecantatio
|
|
BeeClassification.THAUMIC, 0xaa32fc, 0x999999, EnumTemperature.NORMAL, EnumHumidity.NORMAL, true, true),
|
|
|
|
TC_VIS("TCVis", "arcanus saecula",
|
|
BeeClassification.THAUMIC, 0x004c99, 0x675ED1, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, false),
|
|
TC_FLUX("TCFlux", "arcanus labe",
|
|
BeeClassification.THAUMIC, 0x91376A, 0x675ED1, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, false),
|
|
TC_ATTRACT("TCAttractive", "tractus",
|
|
BeeClassification.THAUMIC, 0x96FFBC, 0x675ED1, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, true),
|
|
TC_REJUVENATING("TCRejuvenating", "arcanus vitae",
|
|
BeeClassification.THAUMIC, 0x91D0D9, 0x675ED1, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, false),
|
|
TC_PURE("TCPure", "arcanus puritatem",
|
|
BeeClassification.THAUMIC, 0xb0092e, 0x675ED1, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, false),
|
|
|
|
TC_BRAINY("TCBrainy", "cerebrum",
|
|
BeeClassification.THAUMIC, 0x83FF70, 0xe15236, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, true),
|
|
TC_WISPY("TCWispy", "umbrabilis",
|
|
BeeClassification.THAUMIC, 0x9cb8d5, 0xe15236, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, false),
|
|
TC_BATTY("TCBatty", "chiroptera",
|
|
BeeClassification.THAUMIC, 0x27350d, 0xe15236, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, true),
|
|
|
|
TC_CHICKEN("TCChicken", "pullus",
|
|
BeeClassification.FLESHY, 0x7D431E, 0xE0905E, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, true),
|
|
TC_BEEF("TCBeef", "bubulae",
|
|
BeeClassification.FLESHY, 0x40221A, 0xAC6753, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, true),
|
|
TC_PORK("TCPork", "porcina",
|
|
BeeClassification.FLESHY, 0x725D2F, 0xD2BF93, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, true),
|
|
|
|
// --------- Equivalent Exchange Bees -----------------------------------------------------------------------------
|
|
EE_MINIUM("EEMinium", "mutabilis",
|
|
BeeClassification.ALCHEMICAL, 0xac0921, 0x3a030b, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, true),
|
|
|
|
// --------- Ars Magica Bees --------------------------------------------------------------------------------------
|
|
AM_ESSENCE("AMEssence", "essentia",
|
|
BeeClassification.ESSENTIAL, 0x86BBC5, 0xE3A55B, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, true),
|
|
AM_QUINTESSENCE("AMQuintessence", "cor essentia",
|
|
BeeClassification.ESSENTIAL, 0xE3A45B, 0xE3A55B, EnumTemperature.NORMAL, EnumHumidity.NORMAL, true, true),
|
|
|
|
AM_EARTH("AMEarth", "magica terra",
|
|
BeeClassification.ESSENTIAL, 0xAA875E, 0xE3A55B, EnumTemperature.WARM, EnumHumidity.ARID, false, false),
|
|
AM_AIR("AMAir", "magica aer",
|
|
BeeClassification.ESSENTIAL, 0xD5EB9D, 0xE3A55B, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, false),
|
|
AM_FIRE("AMFire", "magica ignis",
|
|
BeeClassification.ESSENTIAL, 0x93451E, 0xE3A55B, EnumTemperature.HOT, EnumHumidity.ARID, false, false),
|
|
AM_WATER("AMWater", "magica aqua",
|
|
BeeClassification.ESSENTIAL, 0x3B7D8C, 0xE3A55B, EnumTemperature.NORMAL, EnumHumidity.DAMP, false, false),
|
|
AM_LIGHTNING("AMLightning", "magica fulgur",
|
|
BeeClassification.ESSENTIAL, 0xEBEFA1, 0xE3A55B, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, false),
|
|
AM_PLANT("AMPlant", "magica herba",
|
|
BeeClassification.ESSENTIAL, 0x49B549, 0xE3A55B, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, false),
|
|
AM_ICE("AMIce", "magica glacium",
|
|
BeeClassification.ESSENTIAL, 0x86BAC6, 0xE3A55B, EnumTemperature.COLD, EnumHumidity.NORMAL, false, false),
|
|
AM_MAGMA("AMMagma", "magica torrens igneus",
|
|
BeeClassification.ESSENTIAL, 0x932B1E, 0xE3A55B, EnumTemperature.HELLISH, EnumHumidity.ARID, false, false),
|
|
AM_ARCANE("AMArcane", "magica arcanum",
|
|
BeeClassification.ESSENTIAL, 0x76184D, 0xE3A55B, EnumTemperature.NORMAL, EnumHumidity.NORMAL, true, false),
|
|
|
|
AM_VORTEX("AMVortex", "gurges",
|
|
BeeClassification.ESSENTIAL, 0x71BBE2, 0x0B35A8, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, true),
|
|
AM_WIGHT("AMWight", "vectem",
|
|
BeeClassification.ESSENTIAL, 0xB50000, 0x4C4837, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, false),
|
|
;
|
|
|
|
public static void setupBeeSpecies()
|
|
{
|
|
// Species must be set inactive prior to registration.
|
|
if (ThaumcraftHelper.isActive())
|
|
{
|
|
SCHOLARLY.addSpecialty(Config.miscResources.getStackForType(ResourceType.LORE_FRAGMENT), 2);
|
|
SAVANT.addSpecialty(Config.miscResources.getStackForType(ResourceType.LORE_FRAGMENT), 5);
|
|
|
|
TC_STARK.addSpecialty(new ItemStack(Config.tcShard, 1, ThaumcraftHelper.ShardType.DULL.ordinal()), 5);
|
|
TC_AIR.addSpecialty(new ItemStack(Config.tcShard, 1, ThaumcraftHelper.ShardType.AIR.ordinal()), 5);
|
|
TC_FIRE.addSpecialty(new ItemStack(Config.tcShard, 1, ThaumcraftHelper.ShardType.FIRE.ordinal()), 5);
|
|
TC_WATER.addSpecialty(new ItemStack(Config.tcShard, 1, ThaumcraftHelper.ShardType.WATER.ordinal()), 5);
|
|
TC_EARTH.addSpecialty(new ItemStack(Config.tcShard, 1, ThaumcraftHelper.ShardType.EARTH.ordinal()), 5);
|
|
TC_MAGIC.addSpecialty(new ItemStack(Config.tcShard, 1, ThaumcraftHelper.ShardType.MAGIC.ordinal()), 5);
|
|
|
|
TC_BRAINY.addSpecialty(new ItemStack(Config.tcMiscResource, 1, ThaumcraftHelper.MiscResource.ZOMBIE_BRAIN.ordinal()), 2);
|
|
TC_CHICKEN.addSpecialty(new ItemStack(Config.tcNuggetChicken, 1), 9);
|
|
TC_BEEF.addSpecialty(new ItemStack(Config.tcNuggetBeef, 1), 9);
|
|
TC_PORK.addSpecialty(new ItemStack(Config.tcNuggetPork, 1), 9);
|
|
}
|
|
else
|
|
{
|
|
TC_STARK.setInactive();
|
|
TC_AIR.setInactive();
|
|
TC_FIRE.setInactive();
|
|
TC_WATER.setInactive();
|
|
TC_EARTH.setInactive();
|
|
TC_MAGIC.setInactive();
|
|
TC_VIS.setInactive();
|
|
TC_FLUX.setInactive();
|
|
TC_ATTRACT.setInactive();
|
|
TC_PURE.setInactive();
|
|
TC_REJUVENATING.setInactive();
|
|
TC_BRAINY.setInactive();
|
|
TC_WISPY.setInactive();
|
|
TC_BATTY.setInactive();
|
|
TC_CHICKEN.setInactive();
|
|
TC_BEEF.setInactive();
|
|
TC_PORK.setInactive();
|
|
}
|
|
|
|
if (EquivalentExchangeHelper.isActive())
|
|
{
|
|
EE_MINIUM.addSpecialty(new ItemStack(Config.eeMinuimShard), 6);
|
|
}
|
|
else
|
|
{
|
|
EE_MINIUM.setInactive();
|
|
}
|
|
|
|
if (ArsMagicaHelper.isActive())
|
|
{
|
|
AM_QUINTESSENCE.addSpecialty(new ItemStack(Config.amArcaneCompound), 5);
|
|
AM_EARTH.addSpecialty(new ItemStack(Config.amEssenceEarth), 7);
|
|
AM_AIR.addSpecialty(new ItemStack(Config.amEssenceAir), 7);
|
|
AM_FIRE.addSpecialty(new ItemStack(Config.amEssenceFire), 7);
|
|
AM_WATER.addSpecialty(new ItemStack(Config.amEssenceWater), 7);
|
|
AM_LIGHTNING.addSpecialty(new ItemStack(Config.amEssenceLightning), 7);
|
|
AM_PLANT.addSpecialty(new ItemStack(Config.amEssencePlant), 7);
|
|
AM_ICE.addSpecialty(new ItemStack(Config.amEssenceIce), 7);
|
|
AM_MAGMA.addSpecialty(new ItemStack(Config.amEssenceMagma), 7);
|
|
AM_ARCANE.addSpecialty(new ItemStack(Config.amEssenceArcane), 11);
|
|
AM_VORTEX.addSpecialty(new ItemStack(Config.amArcaneCompound), 15);
|
|
AM_WIGHT.addSpecialty(new ItemStack(Item.enderPearl), 11);
|
|
}
|
|
else
|
|
{
|
|
AM_ESSENCE.setInactive();
|
|
AM_QUINTESSENCE.setInactive();
|
|
AM_EARTH.setInactive();
|
|
AM_AIR.setInactive();
|
|
AM_FIRE.setInactive();
|
|
AM_WATER.setInactive();
|
|
AM_LIGHTNING.setInactive();
|
|
AM_PLANT.setInactive();
|
|
AM_ICE.setInactive();
|
|
AM_MAGMA.setInactive();
|
|
AM_ARCANE.setInactive();
|
|
AM_VORTEX.setInactive();
|
|
AM_WIGHT.setInactive();
|
|
}
|
|
AlleleManager.alleleRegistry.registerDeprecatedAlleleReplacement("thaumicbees.speciesBlitz", AM_LIGHTNING);
|
|
|
|
// Oredict bees
|
|
if (OreDictionary.getOres("ingotCopper").size() <= 0)
|
|
{
|
|
COPPER.setInactive();
|
|
}
|
|
if (OreDictionary.getOres("ingotTin").size() <= 0)
|
|
{
|
|
TIN.setInactive();
|
|
}
|
|
if (OreDictionary.getOres("ingotSilver").size() <= 0)
|
|
{
|
|
SILVER.setInactive();
|
|
}
|
|
if (OreDictionary.getOres("ingotLead").size() <= 0)
|
|
{
|
|
LEAD.setInactive();
|
|
}
|
|
if (OreDictionary.getOres("ingotNaturalAluminum").size() <= 0)
|
|
{
|
|
ALUMINUM.setInactive();
|
|
}
|
|
if (OreDictionary.getOres("ingotArdite").size() <= 0)
|
|
{
|
|
ARDITE.setInactive();
|
|
}
|
|
if (OreDictionary.getOres("ingotCobalt").size() <= 0)
|
|
{
|
|
COBALT.setInactive();
|
|
}
|
|
if (OreDictionary.getOres("ingotManyullyn").size() <= 0)
|
|
{
|
|
MANYULLYN.setInactive();
|
|
}
|
|
|
|
MYSTICAL.addProduct(Config.combs.getStackForType(CombType.MUNDANE), 15)
|
|
.setGenome(BeeGenomeManager.getTemplateMystical())
|
|
.register();
|
|
SORCEROUS.addProduct(Config.combs.getStackForType(CombType.MUNDANE), 15)
|
|
.setGenome(BeeGenomeManager.getTemplateSorcerous())
|
|
.register();
|
|
UNUSUAL.addProduct(Config.combs.getStackForType(CombType.MUNDANE), 15)
|
|
.setGenome(BeeGenomeManager.getTemplateUnusual())
|
|
.register();
|
|
ATTUNED.addProduct(Config.combs.getStackForType(CombType.MUNDANE), 15)
|
|
.setGenome(BeeGenomeManager.getTemplateAttuned())
|
|
.register();
|
|
ELDRITCH.addProduct(Config.combs.getStackForType(CombType.MUNDANE), 15)
|
|
.setGenome(BeeGenomeManager.getTemplateEldritch())
|
|
.register();
|
|
|
|
ESOTERIC.addProduct(Config.combs.getStackForType(CombType.OCCULT), 18)
|
|
.setGenome(BeeGenomeManager.getTemplateEsoteric())
|
|
.register();
|
|
MYSTERIOUS.addProduct(Config.combs.getStackForType(CombType.OCCULT), 20)
|
|
.setGenome(BeeGenomeManager.getTemplateMysterious())
|
|
.register();
|
|
ARCANE.addProduct(Config.combs.getStackForType(CombType.OCCULT), 25)
|
|
.addSpecialty(Config.drops.getStackForType(DropType.ENCHANTED, 1), 9)
|
|
.setGenome(BeeGenomeManager.getTemplateArcane())
|
|
.register();
|
|
|
|
CHARMED.addProduct(Config.combs.getStackForType(CombType.OTHERWORLDLY), 18)
|
|
.setGenome(BeeGenomeManager.getTemplateCharmed())
|
|
.register();
|
|
ENCHANTED.addProduct(Config.combs.getStackForType(CombType.OTHERWORLDLY), 20)
|
|
.setGenome(BeeGenomeManager.getTemplateEnchanted())
|
|
.register();
|
|
SUPERNATURAL.addProduct(Config.combs.getStackForType(CombType.OTHERWORLDLY), 25)
|
|
.addSpecialty(Config.pollen.getStackForType(PollenType.UNUSUAL), 8)
|
|
.setGenome(BeeGenomeManager.getTemplateSupernatural())
|
|
.register();
|
|
|
|
ETHEREAL.addProduct(Config.combs.getStackForType(CombType.OCCULT), 10)
|
|
.addProduct(Config.combs.getStackForType(CombType.OTHERWORLDLY), 10)
|
|
.setGenome(BeeGenomeManager.getTemplateEthereal())
|
|
.register();
|
|
|
|
WINDY.addProduct(Config.combs.getStackForType(CombType.AIRY), 10)
|
|
.addSpecialty(new ItemStack(Item.feather), 5)
|
|
.setGenome(BeeGenomeManager.getTemplateWindy())
|
|
.register();
|
|
FIREY.addProduct(Config.combs.getStackForType(CombType.FIREY), 10)
|
|
.addSpecialty(new ItemStack(Item.blazePowder), 5)
|
|
.setGenome(BeeGenomeManager.getTemplateFirey())
|
|
.register();
|
|
EARTHY.addProduct(Config.combs.getStackForType(CombType.EARTHY), 10)
|
|
.addSpecialty(new ItemStack(Item.clay), 9)
|
|
.setGenome(BeeGenomeManager.getTemplateEarthy())
|
|
.register();
|
|
WATERY.addProduct(Config.combs.getStackForType(CombType.WATERY), 10)
|
|
.addSpecialty(new ItemStack(Block.ice), 4)
|
|
.setGenome(BeeGenomeManager.getTemplateWatery())
|
|
.register();
|
|
|
|
PUPIL.addProduct(Config.combs.getStackForType(CombType.PAPERY), 20)
|
|
.setGenome(BeeGenomeManager.getTemplatePupil())
|
|
.register();
|
|
SCHOLARLY.addProduct(Config.combs.getStackForType(CombType.PAPERY), 25)
|
|
.setGenome(BeeGenomeManager.getTemplateScholarly())
|
|
.register();
|
|
SAVANT.addProduct(Config.combs.getStackForType(CombType.PAPERY), 40)
|
|
.setGenome(BeeGenomeManager.getTemplateSavant())
|
|
.register();
|
|
|
|
AWARE.addProduct(Config.combs.getStackForType(CombType.INTELLECT), 18)
|
|
.setGenome(BeeGenomeManager.getTemplateAware())
|
|
.register();
|
|
SPIRIT.addProduct(Config.combs.getStackForType(CombType.INTELLECT), 22)
|
|
.addSpecialty(Config.combs.getStackForType(CombType.SOUL), 16)
|
|
.setGenome(BeeGenomeManager.getTemplateSpirit())
|
|
.register();
|
|
SOUL.addProduct(Config.combs.getStackForType(CombType.INTELLECT), 28)
|
|
.addSpecialty(Config.combs.getStackForType(CombType.SOUL), 20)
|
|
.setGenome(BeeGenomeManager.getTemplateSoul())
|
|
.register();
|
|
|
|
SKULKING.addProduct(Config.combs.getStackForType(CombType.FURTIVE), 10)
|
|
.setGenome(BeeGenomeManager.getTemplateSkulking())
|
|
.register();
|
|
GHASTLY.addProduct(Config.combs.getStackForType(CombType.FURTIVE), 8)
|
|
.addSpecialty(new ItemStack(Item.ghastTear), 2)
|
|
.setGenome(BeeGenomeManager.getTemplateGhastly())
|
|
.register();
|
|
SPIDERY.addProduct(Config.combs.getStackForType(CombType.FURTIVE), 13)
|
|
.addProduct(new ItemStack(Item.silk), 8)
|
|
.addSpecialty(new ItemStack(Item.spiderEye), 8)
|
|
.setGenome(BeeGenomeManager.getTemplateSpidery())
|
|
.register();
|
|
SMOULDERING.addProduct(Config.combs.getStackForType(CombType.FURTIVE), 10)
|
|
.addProduct(Config.combs.getStackForType(CombType.MOLTEN), 10)
|
|
.addSpecialty(new ItemStack(Item.blazeRod), 5)
|
|
.setGenome(BeeGenomeManager.getTemplateSmouldering())
|
|
.register();
|
|
|
|
TIMELY.addProduct(Config.combs.getStackForType(CombType.TEMPORAL), 16)
|
|
.setGenome(BeeGenomeManager.getTemplateTimely())
|
|
.register();
|
|
LORDLY.addProduct(Config.combs.getStackForType(CombType.TEMPORAL), 19)
|
|
.setGenome(BeeGenomeManager.getTemplateLordly())
|
|
.register();
|
|
DOCTORAL.addProduct(Config.combs.getStackForType(CombType.TEMPORAL), 24)
|
|
.addSpecialty(new ItemStack(Config.jellyBaby), 7)
|
|
.setGenome(BeeGenomeManager.getTemplateDoctoral())
|
|
.register();
|
|
|
|
INFERNAL.addProduct(Config.combs.getStackForType(CombType.MOLTEN), 12)
|
|
.setGenome(BeeGenomeManager.getTemplateInfernal())
|
|
.register();
|
|
HATEFUL.addProduct(Config.combs.getStackForType(CombType.MOLTEN), 18)
|
|
.setGenome(BeeGenomeManager.getTemplateHateful())
|
|
.register();
|
|
SPITEFUL.addProduct(Config.combs.getStackForType(CombType.MOLTEN), 24)
|
|
.setGenome(BeeGenomeManager.getTemplateSpiteful())
|
|
.register();
|
|
WITHERING.addSpecialty(Config.miscResources.getStackForType(ResourceType.SKULL_CHIP), 15)
|
|
.setGenome(BeeGenomeManager.getTemplateWithering())
|
|
.register();
|
|
|
|
OBLIVION.addProduct(Config.combs.getStackForType(CombType.FORGOTTEN), 14)
|
|
.setGenome(BeeGenomeManager.getTemplateOblivion())
|
|
.register();
|
|
NAMELESS.addProduct(Config.combs.getStackForType(CombType.FORGOTTEN), 19)
|
|
.setGenome(BeeGenomeManager.getTemplateNameless())
|
|
.register();
|
|
ABANDONED.addProduct(Config.combs.getStackForType(CombType.FORGOTTEN), 24)
|
|
.setGenome(BeeGenomeManager.getTemplateAbandoned())
|
|
.register();
|
|
FORLORN.addProduct(Config.combs.getStackForType(CombType.FORGOTTEN), 30)
|
|
.setGenome(BeeGenomeManager.getTemplateForlorn())
|
|
.register();
|
|
DRACONIC.addSpecialty(Config.miscResources.getStackForType(ResourceType.DRAGON_DUST), 15)
|
|
.setGenome(BeeGenomeManager.getTemplateDraconic())
|
|
.register();
|
|
|
|
IRON.addProduct(new ItemStack(Config.fBeeComb, 1, ForestryHelper.Comb.HONEY.ordinal()), 10)
|
|
.addSpecialty(Config.nuggets.getStackForType(NuggetType.IRON), 18)
|
|
.setGenome(BeeGenomeManager.getTemplateIron())
|
|
.register();
|
|
GOLD.addProduct(new ItemStack(Config.fBeeComb, 1, ForestryHelper.Comb.HONEY.ordinal()), 10)
|
|
.addSpecialty(new ItemStack(Item.goldNugget, 1), 16)
|
|
.setGenome(BeeGenomeManager.getTemplateGold())
|
|
.register();
|
|
COPPER.addProduct(new ItemStack(Config.fBeeComb, 1, ForestryHelper.Comb.HONEY.ordinal()), 10)
|
|
.addSpecialty(Config.nuggets.getStackForType(NuggetType.COPPER), 20)
|
|
.setGenome(BeeGenomeManager.getTemplateCopper())
|
|
.register();
|
|
TIN.addProduct(new ItemStack(Config.fBeeComb, 1, ForestryHelper.Comb.HONEY.ordinal()), 10)
|
|
.addSpecialty(Config.nuggets.getStackForType(NuggetType.TIN), 20)
|
|
.setGenome(BeeGenomeManager.getTemplateTin())
|
|
.register();
|
|
SILVER.addProduct(new ItemStack(Config.fBeeComb, 1, ForestryHelper.Comb.HONEY.ordinal()), 10)
|
|
.addSpecialty(Config.nuggets.getStackForType(NuggetType.SILVER), 16)
|
|
.setGenome(BeeGenomeManager.getTemplateSilver())
|
|
.register();
|
|
LEAD.addProduct(new ItemStack(Config.fBeeComb, 1, ForestryHelper.Comb.HONEY.ordinal()), 10)
|
|
.addSpecialty(Config.nuggets.getStackForType(NuggetType.LEAD), 17)
|
|
.setGenome(BeeGenomeManager.getTemplateLead())
|
|
.register();
|
|
|
|
ALUMINUM.addProduct(new ItemStack(Config.fBeeComb, 1, ForestryHelper.Comb.HONEY.ordinal()), 10)
|
|
.setGenome(BeeGenomeManager.getTemplateAluminum());
|
|
if (OreDictionary.getOres("nuggetNaturalAluminum").size() > 0)
|
|
{
|
|
ALUMINUM.addSpecialty(OreDictionary.getOres("nuggetNaturalAluminum").get(0), 20);
|
|
}
|
|
else
|
|
{
|
|
ALUMINUM.setInactive();
|
|
}
|
|
ALUMINUM.register();
|
|
|
|
ARDITE.addProduct(new ItemStack(Config.fBeeComb, 1, ForestryHelper.Comb.HONEY.ordinal()), 10)
|
|
.setGenome(BeeGenomeManager.getTemplateArdite());
|
|
if (OreDictionary.getOres("nuggetArdite").size() > 0)
|
|
{
|
|
ARDITE.addSpecialty(OreDictionary.getOres("nuggetArdite").get(0), 18);
|
|
}
|
|
else
|
|
{
|
|
ARDITE.setInactive();
|
|
}
|
|
ARDITE.register();
|
|
|
|
COBALT.addProduct(new ItemStack(Config.fBeeComb, 1, ForestryHelper.Comb.HONEY.ordinal()), 10)
|
|
.setGenome(BeeGenomeManager.getTemplateCobalt());
|
|
if (OreDictionary.getOres("nuggetCobalt").size() > 0)
|
|
{
|
|
COBALT.addSpecialty(OreDictionary.getOres("nuggetCobalt").get(0), 18);
|
|
}
|
|
else
|
|
{
|
|
COBALT.setInactive();
|
|
}
|
|
COBALT.register();
|
|
|
|
MANYULLYN.addProduct(new ItemStack(Config.fBeeComb, 1, ForestryHelper.Comb.HONEY.ordinal()), 10)
|
|
.setGenome(BeeGenomeManager.getTemplateManyullyn());
|
|
if (OreDictionary.getOres("nuggetManyullyn").size() > 0)
|
|
{
|
|
MANYULLYN.addSpecialty(OreDictionary.getOres("nuggetManyullyn").get(0), 16);
|
|
}
|
|
else
|
|
{
|
|
MANYULLYN.setInactive();
|
|
}
|
|
MANYULLYN.register();
|
|
|
|
DIAMOND.addProduct(new ItemStack(Config.fBeeComb, 1, ForestryHelper.Comb.HONEY.ordinal()), 10)
|
|
.addSpecialty(Config.nuggets.getStackForType(NuggetType.DIAMOND), 6)
|
|
.setGenome(BeeGenomeManager.getTemplateDiamond())
|
|
.register();
|
|
EMERALD.addProduct(new ItemStack(Config.fBeeComb, 1, ForestryHelper.Comb.HONEY.ordinal()), 10)
|
|
.addSpecialty(Config.nuggets.getStackForType(NuggetType.EMERALD), 4)
|
|
.setGenome(BeeGenomeManager.getTemplateEmerald())
|
|
.register();
|
|
APATITE.addProduct(new ItemStack(Config.fBeeComb, 1, ForestryHelper.Comb.HONEY.ordinal()), 10)
|
|
.addSpecialty(Config.nuggets.getStackForType(NuggetType.APATITE), 10)
|
|
.setGenome(BeeGenomeManager.getTemplateApatite())
|
|
.register();
|
|
|
|
|
|
TC_STARK.addProduct(Config.combs.getStackForType(CombType.HARMONIZING), 10)
|
|
.setGenome(BeeGenomeManager.getTemplateTCStark())
|
|
.register();
|
|
TC_AIR.addProduct(Config.combs.getStackForType(CombType.AIRY), 10)
|
|
.setGenome(BeeGenomeManager.getTemplateTCAir())
|
|
.register();
|
|
TC_FIRE.addProduct(Config.combs.getStackForType(CombType.FIREY), 15)
|
|
.setGenome(BeeGenomeManager.getTemplateTCFire())
|
|
.register();
|
|
TC_WATER.addProduct(Config.combs.getStackForType(CombType.WATERY), 20)
|
|
.setGenome(BeeGenomeManager.getTemplateTCWater())
|
|
.register();
|
|
TC_EARTH.addProduct(Config.combs.getStackForType(CombType.EARTHY), 20)
|
|
.setGenome(BeeGenomeManager.getTemplateTCEarth())
|
|
.register();
|
|
TC_MAGIC.addProduct(Config.combs.getStackForType(CombType.INFUSED), 20)
|
|
.setGenome(BeeGenomeManager.getTemplateTCMagic())
|
|
.register();
|
|
|
|
TC_VIS.addProduct(Config.combs.getStackForType(CombType.INTELLECT), 10)
|
|
.setGenome(BeeGenomeManager.getTemplateTCVis())
|
|
.register();
|
|
TC_FLUX.addProduct(Config.combs.getStackForType(CombType.INTELLECT), 18)
|
|
.setGenome(BeeGenomeManager.getTemplateTCFlux())
|
|
.register();
|
|
TC_ATTRACT.addProduct(Config.combs.getStackForType(CombType.INTELLECT), 14)
|
|
.setGenome(BeeGenomeManager.getTemplateTCAttract())
|
|
.register();
|
|
TC_PURE.addProduct(Config.combs.getStackForType(CombType.INTELLECT), 16)
|
|
.setGenome(BeeGenomeManager.getTemplateTCPure())
|
|
.register();
|
|
TC_REJUVENATING.addProduct(Config.combs.getStackForType(CombType.INTELLECT), 18)
|
|
.setGenome(BeeGenomeManager.getTemplateTCRejuvinating())
|
|
.register();
|
|
|
|
TC_BRAINY.addProduct(Config.combs.getStackForType(CombType.FURTIVE), 10)
|
|
.addProduct(new ItemStack(Item.rottenFlesh), 6)
|
|
.setGenome(BeeGenomeManager.getTemplateTCBrainy())
|
|
.register();
|
|
TC_BATTY.addProduct(Config.combs.getStackForType(CombType.FURTIVE), 10)
|
|
.addSpecialty(new ItemStack(Item.gunpowder), 4)
|
|
.setGenome(BeeGenomeManager.getTemplateTCBatty())
|
|
.register();
|
|
TC_WISPY.addProduct(new ItemStack(Config.fBeeComb, 1, ForestryHelper.Comb.SILKY.ordinal()), 22)
|
|
.addSpecialty(new ItemStack(Config.fCraftingResource, 1, ForestryHelper.CraftingMaterial.SILK_WISP.ordinal()), 4)
|
|
.setGenome(BeeGenomeManager.getTemplateTCWispy())
|
|
.register();
|
|
TC_CHICKEN.addProduct(new ItemStack(Config.fBeeComb, 1, ForestryHelper.Comb.HONEY.ordinal()), 10)
|
|
.setGenome(BeeGenomeManager.getTemplateTCChicken())
|
|
.register();
|
|
TC_BEEF.addProduct(new ItemStack(Config.fBeeComb, 1, ForestryHelper.Comb.HONEY.ordinal()), 10)
|
|
.setGenome(BeeGenomeManager.getTemplateTCBeef())
|
|
.register();
|
|
TC_PORK.addProduct(new ItemStack(Config.fBeeComb, 1, ForestryHelper.Comb.HONEY.ordinal()), 10)
|
|
.setGenome(BeeGenomeManager.getTemplateTCPork())
|
|
.register();
|
|
|
|
|
|
EE_MINIUM.addProduct(Config.combs.getStackForType(CombType.OCCULT), 16)
|
|
.setGenome(BeeGenomeManager.getTemplateEEMinium())
|
|
.register();
|
|
|
|
|
|
AM_ESSENCE.addProduct(Config.combs.getStackForType(CombType.AM_ESSENCE), 12)
|
|
.setGenome(BeeGenomeManager.getTemplateAMEssence())
|
|
.register();
|
|
AM_QUINTESSENCE.addProduct(Config.combs.getStackForType(CombType.AM_ESSENCE), 23)
|
|
.setGenome(BeeGenomeManager.getTemplateAMQuintessence())
|
|
.register();
|
|
AM_EARTH.addProduct(Config.combs.getStackForType(CombType.AM_POTENT), 12)
|
|
.setGenome(BeeGenomeManager.getTemplateAMEarth())
|
|
.register();
|
|
AM_AIR.addProduct(Config.combs.getStackForType(CombType.AM_POTENT), 12)
|
|
.setGenome(BeeGenomeManager.getTemplateAMAir())
|
|
.register();
|
|
AM_FIRE.addProduct(Config.combs.getStackForType(CombType.AM_POTENT), 12)
|
|
.setGenome(BeeGenomeManager.getTemplateAMFire())
|
|
.register();
|
|
AM_WATER.addProduct(Config.combs.getStackForType(CombType.AM_POTENT), 12)
|
|
.setGenome(BeeGenomeManager.getTemplateAMWater())
|
|
.register();
|
|
AM_LIGHTNING.addProduct(Config.combs.getStackForType(CombType.AM_POTENT), 12)
|
|
.setGenome(BeeGenomeManager.getTemplateAMLightning())
|
|
.register();
|
|
AM_PLANT.addProduct(Config.combs.getStackForType(CombType.AM_POTENT), 12)
|
|
.setGenome(BeeGenomeManager.getTemplateAMPlant())
|
|
.register();
|
|
AM_ICE.addProduct(Config.combs.getStackForType(CombType.AM_POTENT), 12)
|
|
.setGenome(BeeGenomeManager.getTemplateAMIce())
|
|
.register();
|
|
AM_MAGMA.addProduct(Config.combs.getStackForType(CombType.AM_POTENT), 12)
|
|
.setGenome(BeeGenomeManager.getTemplateAMMagma())
|
|
.register();
|
|
AM_ARCANE.addProduct(Config.combs.getStackForType(CombType.AM_POTENT), 19)
|
|
.setGenome(BeeGenomeManager.getTemplateAMArcane())
|
|
.register();
|
|
AM_VORTEX.addProduct(Config.combs.getStackForType(CombType.AM_ESSENCE), 10)
|
|
.setGenome(BeeGenomeManager.getTemplateAMVortex())
|
|
.register();
|
|
AM_WIGHT.addProduct(Config.combs.getStackForType(CombType.SOUL), 30)
|
|
.addProduct(Config.combs.getStackForType(CombType.FURTIVE), 10)
|
|
.setGenome(BeeGenomeManager.getTemplateAMWight())
|
|
.register();
|
|
}
|
|
|
|
private String binomial;
|
|
private String authority;
|
|
private int primaryColour;
|
|
private int secondaryColour;
|
|
private EnumTemperature temperature;
|
|
private EnumHumidity humidity;
|
|
private boolean hasEffect;
|
|
private boolean isSecret;
|
|
private boolean isCounted;
|
|
private boolean isActive;
|
|
private boolean isNocturnal;
|
|
private IClassification branch;
|
|
private HashMap<ItemStack, Integer> products;
|
|
private HashMap<ItemStack, Integer> specialties;
|
|
private IAllele genomeTemplate[];
|
|
private String uid;
|
|
private boolean dominant;
|
|
private int complexity;
|
|
|
|
@SideOnly(Side.CLIENT)
|
|
private Icon[][] icons;
|
|
|
|
private final static int defaultBodyColour = 0xFF7C26;
|
|
|
|
private BeeSpecies(String speciesName, String genusName, IClassification classification, int firstColour,
|
|
EnumTemperature preferredTemp, EnumHumidity preferredHumidity, boolean hasGlowEffect, boolean isSpeciesDominant)
|
|
{
|
|
this(speciesName, genusName, classification, firstColour, defaultBodyColour,
|
|
preferredTemp, preferredHumidity, hasGlowEffect, true, true, isSpeciesDominant);
|
|
}
|
|
|
|
private BeeSpecies(String speciesName, String genusName, IClassification classification, int firstColour, int secondColour,
|
|
EnumTemperature preferredTemp, EnumHumidity preferredHumidity, boolean hasGlowEffect, boolean isSpeciesDominant)
|
|
{
|
|
this(speciesName, genusName, classification, firstColour, secondColour, preferredTemp, preferredHumidity, hasGlowEffect, true, true, isSpeciesDominant);
|
|
}
|
|
|
|
private BeeSpecies(String speciesName, String genusName, IClassification classification, int firstColour, int secondColour,
|
|
EnumTemperature preferredTemp, EnumHumidity preferredHumidity, boolean isSecret, boolean hasGlowEffect, boolean isSpeciesDominant)
|
|
{
|
|
this(speciesName, genusName, classification, firstColour, secondColour,
|
|
preferredTemp, preferredHumidity, hasGlowEffect, isSecret, true, isSpeciesDominant);
|
|
}
|
|
|
|
private BeeSpecies(String speciesName, String genusName, IClassification classification, int firstColour,
|
|
EnumTemperature preferredTemp, EnumHumidity preferredHumidity, boolean isSecret, boolean hasGlowEffect, boolean isSpeciesDominant)
|
|
{
|
|
this(speciesName, genusName, classification, firstColour, defaultBodyColour,
|
|
preferredTemp, preferredHumidity, hasGlowEffect, isSecret, true, isSpeciesDominant);
|
|
}
|
|
|
|
private BeeSpecies(String speciesName, String genusName, IClassification classification, int firstColour, int secondColour,
|
|
EnumTemperature preferredTemp, EnumHumidity preferredHumidity,
|
|
boolean hasGlowEffect, boolean isSpeciesSecret, boolean isSpeciesCounted, boolean isSpeciesDominant)
|
|
{
|
|
this.uid = "magicbees.species" + speciesName;
|
|
this.dominant = isSpeciesDominant;
|
|
AlleleManager.alleleRegistry.registerAllele(this);
|
|
binomial = genusName;
|
|
authority = "MysteriousAges";
|
|
primaryColour = firstColour;
|
|
secondaryColour = secondColour;
|
|
temperature = preferredTemp;
|
|
humidity = preferredHumidity;
|
|
hasEffect = hasGlowEffect;
|
|
isSecret = isSpeciesSecret;
|
|
isCounted = isSpeciesCounted;
|
|
products = new HashMap();
|
|
specialties = new HashMap();
|
|
this.branch = classification;
|
|
this.branch.addMemberSpecies(this);
|
|
this.isActive = true;
|
|
this.isNocturnal = false;
|
|
}
|
|
|
|
public BeeSpecies setGenome(IAllele genome[])
|
|
{
|
|
genomeTemplate = genome;
|
|
return this;
|
|
}
|
|
|
|
public IAllele[] getGenome()
|
|
{
|
|
return genomeTemplate;
|
|
}
|
|
|
|
public BeeSpecies addProduct(ItemStack produce, int percentChance)
|
|
{
|
|
products.put(produce, percentChance);
|
|
return this;
|
|
}
|
|
|
|
public BeeSpecies addSpecialty(ItemStack produce, int percentChance)
|
|
{
|
|
specialties.put(produce, Integer.valueOf(percentChance));
|
|
return this;
|
|
}
|
|
|
|
public ItemStack getBeeItem(EnumBeeType beeType)
|
|
{
|
|
return BeeManager.beeRoot.getMemberStack(BeeManager.beeRoot.getBee(null, BeeManager.beeRoot.templateAsGenome(genomeTemplate)), beeType.ordinal());
|
|
}
|
|
|
|
@Override
|
|
public String getName()
|
|
{
|
|
return LocalizationManager.getLocalizedString(getUID());
|
|
}
|
|
|
|
@Override
|
|
public String getDescription()
|
|
{
|
|
return LocalizationManager.getLocalizedString(getUID() + ".description");
|
|
}
|
|
|
|
@Override
|
|
public EnumTemperature getTemperature()
|
|
{
|
|
return temperature;
|
|
}
|
|
|
|
@Override
|
|
public EnumHumidity getHumidity()
|
|
{
|
|
return humidity;
|
|
}
|
|
|
|
@Override
|
|
public boolean hasEffect()
|
|
{
|
|
return hasEffect;
|
|
}
|
|
|
|
public BeeSpecies setInactive()
|
|
{
|
|
this.isActive = false;
|
|
return this;
|
|
}
|
|
|
|
public boolean isActive()
|
|
{
|
|
return this.isActive;
|
|
}
|
|
|
|
@Override
|
|
public boolean isSecret()
|
|
{
|
|
return isSecret;
|
|
}
|
|
|
|
@Override
|
|
public boolean isCounted()
|
|
{
|
|
return isCounted;
|
|
}
|
|
|
|
@Override
|
|
public String getBinomial()
|
|
{
|
|
return binomial;
|
|
}
|
|
|
|
@Override
|
|
public String getAuthority()
|
|
{
|
|
return authority;
|
|
}
|
|
|
|
@Override
|
|
public IClassification getBranch()
|
|
{
|
|
return this.branch;
|
|
}
|
|
|
|
@Override
|
|
public HashMap getProducts()
|
|
{
|
|
return products;
|
|
}
|
|
|
|
@Override
|
|
public HashMap getSpecialty()
|
|
{
|
|
return specialties;
|
|
}
|
|
|
|
@Override
|
|
public String getUID()
|
|
{
|
|
return this.uid;
|
|
}
|
|
|
|
@Override
|
|
public boolean isDominant()
|
|
{
|
|
return this.dominant;
|
|
}
|
|
|
|
@Override
|
|
public IBeeRoot getRoot()
|
|
{
|
|
return BeeManager.beeRoot;
|
|
}
|
|
|
|
@Override
|
|
public boolean isNocturnal()
|
|
{
|
|
return this.isNocturnal;
|
|
}
|
|
|
|
@Override
|
|
public boolean isJubilant(IBeeGenome genome, IBeeHousing housing)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
private BeeSpecies register()
|
|
{
|
|
BeeManager.beeRoot.registerTemplate(this.getGenome());
|
|
if (!this.isActive)
|
|
{
|
|
AlleleManager.alleleRegistry.blacklistAllele(this.getUID());
|
|
}
|
|
return this;
|
|
}
|
|
|
|
@Override
|
|
public int getIconColour(int renderPass)
|
|
{
|
|
int value = 0xffffff;
|
|
if (renderPass == 0) {
|
|
value = this.primaryColour;
|
|
}
|
|
else if (renderPass == 1) {
|
|
value = this.secondaryColour;
|
|
}
|
|
return value;
|
|
}
|
|
|
|
@Override
|
|
@SideOnly(Side.CLIENT)
|
|
public IIconProvider getIconProvider()
|
|
{
|
|
return this;
|
|
}
|
|
|
|
@Override
|
|
@SideOnly(Side.CLIENT)
|
|
public Icon getIcon(EnumBeeType type, int renderPass)
|
|
{
|
|
return icons[type.ordinal()][Math.min(renderPass, 2)];
|
|
}
|
|
|
|
@Override
|
|
public int getComplexity()
|
|
{
|
|
return 1 + getMutationPathLength(this, new ArrayList<IAllele>());
|
|
}
|
|
|
|
private int getMutationPathLength(IAllele species, ArrayList<IAllele> excludeSpecies)
|
|
{
|
|
int own = 1;
|
|
int highest = 0;
|
|
excludeSpecies.add(species);
|
|
|
|
for(IMutation mutation : getRoot().getPaths(species, EnumBeeChromosome.SPECIES.ordinal())) {
|
|
if(!excludeSpecies.contains(mutation.getAllele0())) {
|
|
int otherAdvance = getMutationPathLength(mutation.getAllele0(), excludeSpecies);
|
|
if(otherAdvance > highest)
|
|
highest = otherAdvance;
|
|
}
|
|
if(!excludeSpecies.contains(mutation.getAllele1())) {
|
|
int otherAdvance = getMutationPathLength(mutation.getAllele1(), excludeSpecies);
|
|
if(otherAdvance > highest)
|
|
highest = otherAdvance;
|
|
}
|
|
}
|
|
|
|
return own + (highest > 0 ? highest : 0);
|
|
}
|
|
|
|
@Override
|
|
public float getResearchSuitability(ItemStack itemStack)
|
|
{
|
|
float value = 0f;
|
|
if(itemStack != null)
|
|
{
|
|
for (ItemStack product : this.products.keySet())
|
|
{
|
|
if (itemStack.isItemEqual(product))
|
|
{
|
|
value = 1f;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (value <= 0f)
|
|
{
|
|
for (ItemStack specialty : this.specialties.keySet())
|
|
{
|
|
if (specialty.isItemEqual(itemStack))
|
|
{
|
|
value = 1f;
|
|
break;
|
|
}
|
|
}
|
|
if (value <= 0f)
|
|
{
|
|
if (itemStack.itemID == Config.fHoneyDrop.itemID)
|
|
{
|
|
|
|
}
|
|
else if (itemStack.itemID == Config.fHoneydew.itemID)
|
|
{
|
|
|
|
}
|
|
else if (itemStack.itemID == Config.fBeeComb.itemID ||
|
|
itemStack.itemID == Config.combs.itemID)
|
|
{
|
|
value = 4f;
|
|
}
|
|
else
|
|
{
|
|
for (Map.Entry<ItemStack, Float> catalyst : BeeManager.beeRoot.getResearchCatalysts().entrySet())
|
|
{
|
|
if (OreDictionary.itemMatches(itemStack, catalyst.getKey(), false))
|
|
{
|
|
value = catalyst.getValue().floatValue();
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
return value;
|
|
}
|
|
|
|
@Override
|
|
public ItemStack[] getResearchBounty(World world, String researcher, IIndividual individual, int bountyLevel)
|
|
{
|
|
System.out.println("Bounty level: " + bountyLevel);
|
|
ArrayList<ItemStack> bounty = new ArrayList<ItemStack>();
|
|
|
|
if (world.rand.nextFloat() < ((10f / bountyLevel)))
|
|
{
|
|
Collection<? extends IMutation> resultantMutations = getRoot().getCombinations(this);
|
|
if (resultantMutations.size() > 0)
|
|
{
|
|
IMutation[] candidates = resultantMutations.toArray(new IMutation[resultantMutations.size()]);
|
|
bounty.add(AlleleManager.alleleRegistry.getMutationNoteStack(researcher, candidates[world.rand.nextInt(candidates.length)]));
|
|
}
|
|
}
|
|
|
|
for (ItemStack product : this.products.keySet())
|
|
{
|
|
ItemStack copy = product.copy();
|
|
copy.stackSize = 1 + world.rand.nextInt(bountyLevel / 2);
|
|
bounty.add(copy);
|
|
}
|
|
|
|
for (ItemStack specialty : this.specialties.keySet())
|
|
{
|
|
ItemStack copy = specialty.copy();
|
|
copy.stackSize = world.rand.nextInt(bountyLevel / 3);
|
|
if (copy.stackSize > 0)
|
|
{
|
|
bounty.add(copy);
|
|
}
|
|
}
|
|
|
|
return bounty.toArray(new ItemStack[bounty.size()]);
|
|
}
|
|
|
|
@Override
|
|
public String getEntityTexture()
|
|
{
|
|
return "/gfx/forestry/entities/bees/honeyBee.png";
|
|
}
|
|
|
|
private static final BeeSpecies[] skulkingIconBees = { SKULKING, GHASTLY, SPIDERY, SMOULDERING, TC_BRAINY, TC_WISPY, TC_BATTY, AM_VORTEX, TC_WISPY };
|
|
|
|
public void registerItemIcons(IconRegister itemMap)
|
|
{
|
|
this.icons = new Icon[EnumBeeType.values().length][3];
|
|
|
|
String root = this.getIconPath();
|
|
|
|
Icon body1 = itemMap.registerIcon(root + "body1");
|
|
|
|
for (int i = 0; i < EnumBeeType.values().length; i++)
|
|
{
|
|
if(EnumBeeType.values()[i] == EnumBeeType.NONE)
|
|
continue;
|
|
|
|
icons[i][0] = itemMap.registerIcon(root + EnumBeeType.values()[i].toString().toLowerCase(Locale.ENGLISH) + ".outline");
|
|
icons[i][1] = (EnumBeeType.values()[i] != EnumBeeType.LARVAE) ? body1 :
|
|
itemMap.registerIcon(root + EnumBeeType.values()[i].toString().toLowerCase(Locale.ENGLISH) + ".body");
|
|
icons[i][2] = itemMap.registerIcon(root + EnumBeeType.values()[i].toString().toLowerCase(Locale.ENGLISH) + ".body2");
|
|
}
|
|
}
|
|
|
|
private String getIconPath()
|
|
{
|
|
String value;
|
|
|
|
switch (this)
|
|
{
|
|
case SKULKING: case GHASTLY: case SPIDERY: case SMOULDERING:
|
|
case TC_BRAINY: case TC_WISPY: case TC_BATTY:
|
|
case AM_VORTEX: case AM_WIGHT:
|
|
value = VersionInfo.ModName.toLowerCase() + ":bees/skulking/";
|
|
break;
|
|
|
|
default:
|
|
value = ForestryHelper.Name.toLowerCase() + ":bees/default/";
|
|
break;
|
|
}
|
|
|
|
return value;
|
|
}
|
|
|
|
/// --------- Unused Functions ---------------------------------------------
|
|
|
|
@Override
|
|
@SideOnly(Side.CLIENT)
|
|
public Icon getIcon(short texUID)
|
|
{
|
|
return icons[0][0];
|
|
}
|
|
|
|
@Override
|
|
@SideOnly(Side.CLIENT)
|
|
public void registerTerrainIcons(IconRegister terrainMap) { }
|
|
}
|