From 0af6401544c94989f3913c9ea6638a304f7596ef Mon Sep 17 00:00:00 2001 From: Alkalus <3060479+draknyte1@users.noreply.github.com> Date: Sun, 23 Jan 2022 14:59:04 +0000 Subject: Bee basework. --- .../java/gtPlusPlus/xmod/forestry/HANDLER_FR.java | 9 +- .../xmod/forestry/bees/handler/GTPP_CombType.java | 194 +++++++ .../xmod/forestry/bees/handler/GTPP_DropType.java | 51 ++ .../forestry/bees/handler/GTPP_PollenType.java | 34 ++ .../forestry/bees/handler/GTPP_PropolisType.java | 52 ++ .../xmod/forestry/bees/items/output/GTPP_Comb.java | 569 +++++++++++++++++++++ .../xmod/forestry/bees/items/output/GTPP_Drop.java | 136 +++++ .../forestry/bees/items/output/GTPP_Pollen.java | 90 ++++ .../forestry/bees/items/output/GTPP_Propolis.java | 111 ++++ .../forestry/bees/registry/GTPP_BeeDefinition.java | 392 ++++++++++++++ .../xmod/forestry/bees/registry/GTPP_Bees.java | 33 ++ .../bees/registry/GTPP_BranchDefinition.java | 87 ++++ wip/1.png | Bin 0 -> 214 bytes wip/10.png | Bin 0 -> 346 bytes wip/11.png | Bin 0 -> 316 bytes wip/12.png | Bin 0 -> 219 bytes wip/13.png | Bin 0 -> 261 bytes wip/14.png | Bin 0 -> 339 bytes wip/15.png | Bin 0 -> 387 bytes wip/16.png | Bin 0 -> 191 bytes wip/17.png | Bin 0 -> 382 bytes wip/18.png | Bin 0 -> 283 bytes wip/19.png | Bin 0 -> 341 bytes wip/2.png | Bin 0 -> 197 bytes wip/20.png | Bin 0 -> 277 bytes wip/21.png | Bin 0 -> 331 bytes wip/22.png | Bin 0 -> 464 bytes wip/23.png | Bin 0 -> 213 bytes wip/24.png | Bin 0 -> 228 bytes wip/25.png | Bin 0 -> 774 bytes wip/26_off.png | Bin 0 -> 222 bytes wip/26_on.png | Bin 0 -> 325 bytes wip/27_off.png | Bin 0 -> 300 bytes wip/27_on.png | Bin 0 -> 234 bytes wip/28_off.png | Bin 0 -> 332 bytes wip/28_on.png | Bin 0 -> 325 bytes wip/29_off.png | Bin 0 -> 363 bytes wip/29_on.png | Bin 0 -> 386 bytes wip/3.png | Bin 0 -> 252 bytes wip/4.png | Bin 0 -> 351 bytes wip/5.png | Bin 0 -> 344 bytes wip/6.png | Bin 0 -> 912 bytes wip/7.png | Bin 0 -> 376 bytes wip/8.png | Bin 0 -> 355 bytes wip/9.png | Bin 0 -> 222 bytes wip/switch_1.png | Bin 0 -> 356 bytes wip/switch_2.png | Bin 0 -> 365 bytes wip/switch_3.png | Bin 0 -> 459 bytes wip/switch_4.png | Bin 0 -> 523 bytes 49 files changed, 1753 insertions(+), 5 deletions(-) create mode 100644 src/main/java/gtPlusPlus/xmod/forestry/bees/handler/GTPP_CombType.java create mode 100644 src/main/java/gtPlusPlus/xmod/forestry/bees/handler/GTPP_DropType.java create mode 100644 src/main/java/gtPlusPlus/xmod/forestry/bees/handler/GTPP_PollenType.java create mode 100644 src/main/java/gtPlusPlus/xmod/forestry/bees/handler/GTPP_PropolisType.java create mode 100644 src/main/java/gtPlusPlus/xmod/forestry/bees/items/output/GTPP_Comb.java create mode 100644 src/main/java/gtPlusPlus/xmod/forestry/bees/items/output/GTPP_Drop.java create mode 100644 src/main/java/gtPlusPlus/xmod/forestry/bees/items/output/GTPP_Pollen.java create mode 100644 src/main/java/gtPlusPlus/xmod/forestry/bees/items/output/GTPP_Propolis.java create mode 100644 src/main/java/gtPlusPlus/xmod/forestry/bees/registry/GTPP_BeeDefinition.java create mode 100644 src/main/java/gtPlusPlus/xmod/forestry/bees/registry/GTPP_Bees.java create mode 100644 src/main/java/gtPlusPlus/xmod/forestry/bees/registry/GTPP_BranchDefinition.java create mode 100644 wip/1.png create mode 100644 wip/10.png create mode 100644 wip/11.png create mode 100644 wip/12.png create mode 100644 wip/13.png create mode 100644 wip/14.png create mode 100644 wip/15.png create mode 100644 wip/16.png create mode 100644 wip/17.png create mode 100644 wip/18.png create mode 100644 wip/19.png create mode 100644 wip/2.png create mode 100644 wip/20.png create mode 100644 wip/21.png create mode 100644 wip/22.png create mode 100644 wip/23.png create mode 100644 wip/24.png create mode 100644 wip/25.png create mode 100644 wip/26_off.png create mode 100644 wip/26_on.png create mode 100644 wip/27_off.png create mode 100644 wip/27_on.png create mode 100644 wip/28_off.png create mode 100644 wip/28_on.png create mode 100644 wip/29_off.png create mode 100644 wip/29_on.png create mode 100644 wip/3.png create mode 100644 wip/4.png create mode 100644 wip/5.png create mode 100644 wip/6.png create mode 100644 wip/7.png create mode 100644 wip/8.png create mode 100644 wip/9.png create mode 100644 wip/switch_1.png create mode 100644 wip/switch_2.png create mode 100644 wip/switch_3.png create mode 100644 wip/switch_4.png diff --git a/src/main/java/gtPlusPlus/xmod/forestry/HANDLER_FR.java b/src/main/java/gtPlusPlus/xmod/forestry/HANDLER_FR.java index 05d00b06d9..c395825b33 100644 --- a/src/main/java/gtPlusPlus/xmod/forestry/HANDLER_FR.java +++ b/src/main/java/gtPlusPlus/xmod/forestry/HANDLER_FR.java @@ -4,14 +4,13 @@ import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import cpw.mods.fml.common.Optional; - -import net.minecraft.block.Block; -import net.minecraft.world.World; - import gtPlusPlus.core.lib.LoadedMods; import gtPlusPlus.core.util.reflect.ReflectionUtils; import gtPlusPlus.xmod.forestry.bees.items.FR_ItemRegistry; import gtPlusPlus.xmod.forestry.bees.recipe.FR_Gregtech_Recipes; +import gtPlusPlus.xmod.forestry.bees.registry.GTPP_Bees; +import net.minecraft.block.Block; +import net.minecraft.world.World; public class HANDLER_FR { @@ -23,7 +22,7 @@ public class HANDLER_FR { public static void Init(){ if (LoadedMods.Forestry){ - //new GTPP_Bees(); TODO- Will Investigate this properly later. + new GTPP_Bees(); } } diff --git a/src/main/java/gtPlusPlus/xmod/forestry/bees/handler/GTPP_CombType.java b/src/main/java/gtPlusPlus/xmod/forestry/bees/handler/GTPP_CombType.java new file mode 100644 index 0000000000..bc9fb7bcdc --- /dev/null +++ b/src/main/java/gtPlusPlus/xmod/forestry/bees/handler/GTPP_CombType.java @@ -0,0 +1,194 @@ +package gtPlusPlus.xmod.forestry.bees.handler; + +import gregtech.api.enums.Materials; +import gregtech.api.util.GT_LanguageManager; + +public enum GTPP_CombType { + //Organic Line + LIGNIE("lignite", true, Materials.Lignite, 100,0x58300B, 0x906237), + COAL("coal", true, Materials.Coal, 100,0x525252, 0x666666), + STICKY("stickyresin", true, Materials._NULL, 50,0x2E8F5B, 0xDCC289), + OIL("oil", true, Materials._NULL, 100,0x333333, 0x4C4C4C), + APATITE("apatite", true, Materials.Apatite, 100,0xc1c1f6, 0x676784), + ASH("ash", true, Materials.Ash, 100,0x1e1a18, 0xc6c6c6), + + //IC2 Line + COOLANT("coolant", true, Materials._NULL, 100,0x144F5A, 0x2494A2), + ENERGY("energy", true, Materials._NULL, 80,0xC11F1F, 0xEBB9B9), + LAPOTRON("lapotron", true, Materials._NULL, 60,0x1414FF, 0x6478FF), + PYROTHEUM("pyrotheum", true, Materials.Pyrotheum, 50,0xffebc4, 0xe36400), + CRYOTHEUM("cryotheum", true, Materials.Pyrotheum, 50,0x2660ff, 0x5af7ff), + + //Alloy Line + REDALLOY("redalloy", true, Materials.RedAlloy, 100,0xE60000, 0xB80000), + REDSTONEALLOY("redstonealloy", true, Materials.RedstoneAlloy, 90,0xB80000, 0xA50808), + CONDUCTIVEIRON("conductiveiron", true, Materials.ConductiveIron, 80,0x817671, 0xCEADA3), + VIBRANTALLOY("vibrantalloy", true, Materials.VibrantAlloy, 50,0x86A12D, 0xC4F2AE), + ENERGETICALLOY("energeticalloy", true, Materials.EnergeticAlloy, 70,0xFF9933, 0xFFAD5C), + ELECTRICALSTEEL("electricalsteel", true, Materials.ElectricalSteel, 90,0x787878, 0xD8D8D8), + DARKSTEEL("darksteel", true, Materials.DarkSteel, 80,0x252525, 0x443B44), + PULSATINGIRON("pulsatingiron", true, Materials.PulsatingIron, 80,0x006600, 0x6DD284), + STAINLESSSTEEL("stainlesssteel", true, Materials.StainlessSteel, 75,0x778899, 0xC8C8DC), + ENDERIUM("enderium", true, Materials.Enderium, 40,0x2E8B57, 0x599087), + + //Thaumcraft Line + THAUMIUMDUST("thaumiumdust", true, Materials.Thaumium, 100,0x7A007A, 0x5C005C), + THAUMIUMSHARD("thaumiumshard", true, Materials._NULL, 85,0x9966FF, 0xAD85FF), + AMBER("amber", true, Materials.Amber, 90,0x774B15, 0xEE7700), + QUICKSILVER("quicksilver", true, Materials.Mercury, 90,0xc7c7ea, 0xb5b3df), + SALISMUNDUS("salismundus", true, Materials._NULL, 75,0xF7ADDE, 0x592582), + TAINTED("tainted", true, Materials._NULL, 80,0x904BB8, 0xE800FF), + MITHRIL("mithril", true, Materials.Mithril, 70,0xF0E68C, 0xFFFFD2), + ASTRALSILVER("astralsilver", true, Materials.AstralSilver, 70,0xAFEEEE, 0xE6E6FF), + THAUMINITE("thauminite", true, Materials._NULL, 50,0x2E2D79, 0x7581E0), + SHADOWMETAL("shadowmetal", true, Materials.Shadow, 50,0x100322, 0x100342), + DIVIDED("divided", true, Materials.Unstable, 40,0xF0F0F0, 0xDCDCDC), + SPARKELING("sparkling", true, Materials.NetherStar, 40,0x7A007A, 0xFFFFFF), + + //Gem Line + STONE("stone", true, Materials._NULL, 70,0x808080, 0x999999), + CERTUS("certus", true, Materials.CertusQuartz, 100,0x57CFFB, 0xBBEEFF), + FLUIX("fluix", true, Materials.Fluix, 100,0xA375FF, 0xB591FF), + REDSTONE("redstone", true, Materials.Redstone, 100,0x7D0F0F, 0xD11919), + RAREEARTH("rareearth", true, Materials.RareEarth, 100,0x555643, 0x343428), + LAPIS("lapis", true, Materials.Lapis, 100,0x1947D1, 0x476CDA), + RUBY("ruby", true, Materials.Ruby, 100,0xE6005C, 0xCC0052), + REDGARNET("redgarnet", true, Materials.GarnetRed,100,0xBD4C4C, 0xECCECE), + YELLOWGARNET("yellowgarnet", true, Materials.GarnetYellow,100,0xA3A341, 0xEDEDCE), + SAPPHIRE("sapphire", true, Materials.Sapphire, 100,0x0033CC, 0x00248F), + DIAMOND("diamond", true, Materials.Diamond, 100,0xCCFFFF, 0xA3CCCC), + OLIVINE("olivine", true, Materials.Olivine, 100,0x248F24, 0xCCFFCC), + EMERALD("emerald", true, Materials.Emerald, 100,0x248F24, 0x2EB82E), + PYROPE("pyrope", true, Materials.Pyrope, 100,0x763162, 0x8B8B8B), + GROSSULAR("grossular", true, Materials.Grossular, 100,0x9B4E00, 0x8B8B8B), + FIRESTONE("firestone", true, Materials.Firestone, 100,0xC00000, 0xFF0000), + + //Metals Line + SLAG("slag", true, Materials._NULL, 50,0xD4D4D4, 0x58300B), + COPPER("copper", true, Materials.Copper, 100,0xFF6600, 0xE65C00), + TIN("tin", true, Materials.Tin, 100,0xD4D4D4, 0xDDDDDD), + LEAD("lead", true, Materials.Lead, 100,0x666699, 0xA3A3CC), + IRON("iron", true, Materials.Iron, 100,0xDA9147, 0xDE9C59), + STEEL("steel", true, Materials.Steel, 95,0x808080, 0x999999), + NICKEL("nickel", true, Materials.Nickel, 100,0x8585AD, 0x9D9DBD), + ZINC("zinc", true, Materials.Zinc, 100,0xF0DEF0, 0xF2E1F2), + SILVER("silver", true, Materials.Silver, 100,0xC2C2D6, 0xCECEDE), + GOLD("gold", true, Materials.Gold, 100,0xE6B800, 0xCFA600), + SULFUR("sulfur", true, Materials.Sulfur, 100,0x6F6F01, 0x8B8B8B), + GALLIUM ("gallium", true, Materials.Gallium, 75,0x8B8B8B, 0xC5C5E4), + ARSENIC ("arsenic", true, Materials.Arsenic, 75,0x736C52, 0x292412), + + //Rare Metals Line + BAUXITE("bauxite", true, Materials.Bauxite, 85,0x6B3600, 0x8B8B8B), + ALUMINIUM("aluminium", true, Materials.Aluminium, 60,0x008AB8, 0xD6D6FF), + MANGANESE("manganese", true, Materials.Manganese, 30,0xD5D5D5, 0xAAAAAA), + MAGNESIUM("magnesium", true, Materials.Magnesium, 75,0xF1D9D9, 0x8B8B8B), + TITANIUM("titanium", true, Materials.Ilmenite, 100,0xCC99FF, 0xDBB8FF), + CHROME("chromium", true, Materials.Chrome, 50,0xEBA1EB, 0xF2C3F2), + TUNGSTEN("tungsten", true, Materials.Tungstate, 100,0x62626D, 0x161620), + PLATINUM("platinum", true, Materials.Platinum, 40,0xE6E6E6, 0xFFFFCC), + IRIDIUM("iridium", true, Materials.Iridium, 20,0xDADADA, 0xD1D1E0), + MOLYBDENUM("molybdenum", true, Materials.Molybdenum, 20,0xAEAED4, 0x8B8B8B), + OSMIUM("osmium", true, Materials.Osmium, 15,0x2B2BDA, 0x8B8B8B), + LITHIUM("lithium", true, Materials.Lithium, 75,0xF0328C, 0xE1DCFF), + SALT("salt", true, Materials.Salt, 90,0xF0C8C8, 0xFAFAFA), + ELECTROTINE("electrotine", true, Materials.Electrotine, 75,0x1E90FF, 0x3CB4C8), + ALMANDINE("almandine", true, Materials.Almandine, 85,0xC60000, 0x8B8B8B), + + //Radioactive Line + URANIUM("uranium", true, Materials.Uranium, 50,0x19AF19, 0x169E16), + PLUTONIUM("plutonium", true, Materials.Plutonium, 10,0x240000, 0x570000), + NAQUADAH("naquadah", true, Materials.Naquadah, 10,0x000000, 0x004400), + NAQUADRIA("naquadria", true, Materials.Naquadria, 5,0x000000, 0x002400), + DOB("d-o-b", true, Materials._NULL, 50,0x007700, 0x002400), + THORIUM("thorium", true, Materials.Thorium, 75,0x001E00, 0x005000), + LUTETIUM("lutetium", true, Materials.Lutetium, 10,0xE6FFE6, 0xFFFFFF), + AMERICIUM("americium", true, Materials.Americium, 5,0xE6E6FF, 0xC8C8C8), + NEUTRONIUM("neutronium", true, Materials.Neutronium, 2,0xFFF0F0, 0xFAFAFA), + + //Twilight + NAGA("naga", true, Materials._NULL, 100,0x0D5A0D, 0x28874B), + LICH("lich", true, Materials._NULL, 90,0x5C605E, 0xC5C5C5), + HYDRA("hydra", true, Materials._NULL, 80,0x872836, 0xB8132C), + URGHAST("urghast", true, Materials._NULL, 70,0x7C0618, 0xA7041C), + SNOWQUEEN("snowqueen", true, Materials._NULL, 60,0x9C0018, 0xD02001), + + //Space + SPACE("space", true, Materials._NULL, 100,0x003366, 0xC0C0C0), + METEORICIRON("meteoriciron",true, Materials.MeteoricIron, 100,0x321928, 0x643250), + DESH("desh",true, Materials.Desh, 90,0x282828, 0x323232), + LEDOX("ledox",true, Materials.Ledox, 75,0x0000CD, 0x0074FF), + CALLISTOICE("callistoice",true, Materials.CallistoIce, 75,0x0074FF, 0x1EB1FF), + MYTRYL("mytryl",true, Materials.Mytryl, 65,0xDAA520, 0xF26404), + QUANTIUM("quantium",true, Materials.Quantium, 50,0x00FF00, 0x00D10B), + ORIHARUKON("oriharukon",true, Materials.Oriharukon, 50,0x228B22, 0x677D68), + MYSTERIOUSCRYSTAL("mysteriouscrystal",true, Materials.MysteriousCrystal, 45,0x3CB371, 0x16856C), + BLACKPLUTONIUM("blackplutonium",true, Materials.Quantium, 25,0x000000, 0x323232), + TRINIUM("trinium",true, Materials.Trinium, 25,0xB0E0E6, 0xC8C8D2), + + //Planet + MERCURY("mercury", true, Materials._NULL, 65,0x4A4033, 0xB5A288), + VENUS("venus",true, Materials._NULL, 65,0x120E07, 0x272010), + MOON("moon",true, Materials._NULL, 90,0x373735, 0x7E7E78), + MARS("mars",true, Materials._NULL, 80,0x220D05, 0x3A1505), + JUPITER("jupiter",true, Materials._NULL, 75,0x734B2E, 0xD0CBC4), + SATURN("saturn",true, Materials._NULL, 55,0xD2A472, 0xF8C37B), + URANUS("uranus",true, Materials._NULL, 45,0x75C0C9, 0x84D8EC), + NEPTUN("neptun",true, Materials._NULL, 35,0x334CFF, 0x576DFF), + PLUTO("pluto",true, Materials._NULL, 25,0x34271E, 0x69503D), + HAUMEA("haumea",true, Materials._NULL, 20,0x1C1413, 0x392B28), + MAKEMAKE("makemake",true, Materials._NULL, 20,0x301811, 0x120A07), + CENTAURI("centauri",true, Materials._NULL, 15,0x2F2A14, 0xB06B32), + TCETI("tceti",true, Materials._NULL, 10,0x46241A, 0x7B412F), + BARNARDA("barnarda",true, Materials._NULL, 10,0x0D5A0D, 0xE6C18D), + VEGA("vega",true, Materials._NULL, 10,0x1A2036, 0xB5C0DE), + + //Infinity + COSMICNEUTRONIUM("cosmicneutronium",true, Materials._NULL, 5,0x484848, 0x323232), + INFINITYCATALYST("infinitycatalyst",true, Materials._NULL, 2,0xFFFFFF, 0xFFFFFF), + INFINITY("infinity",true, Materials._NULL, 1,0xFFFFFF, 0xFFFFFF), + + //HEE + ENDDUST("enddust", true, Materials._NULL, 50,0x003A7D, 0xCC00FA), + ECTOPLASMA("ectoplasma", true, Materials._NULL, 35,0x381C40, 0xDCB0E5), + ARCANESHARD("arcaneshard", true, Materials._NULL, 35,0x333D82, 0x9010AD), + STARDUST("stardust", true, Materials._NULL, 60,0xDCBE13, 0xffff00), + DRAGONESSENCE("dragonessence", true, Materials._NULL, 30,0x911ECE, 0xFFA12B), + ENDERMAN("enderman", true, Materials._NULL, 25,0x6200e7, 0x161616), + SILVERFISH("silverfish", true, Materials._NULL, 25,0x0000000, 0xEE053D), + ENDIUM("endium", true, Materials.HeeEndium, 50,0x2F5A6C, 0xa0ffff), + RUNEI("rune1", true, Materials._NULL, 10,0x0104D9, 0xE31010), + RUNEII("rune2", true, Materials._NULL, 10,0xE31010, 0x0104D9), + FIREESSENSE("fireessence", true, Materials._NULL, 30,0xFFA157, 0xD41238), + + //New Combs to avoid meta id issues + CRYOLITE("cryolite", true, Materials.Cryolite, 90, 0xBFEFFF, 0x73B9D0); + + public boolean showInList; + public Materials material; + public int chance; + + private String name; + private int[] color; + + GTPP_CombType(String pName, boolean show, Materials material, int chance, int... color) { + this.name = pName; + this.material = material; + this.chance = chance; + this.showInList = show; + this.color=color; + } + + public void setHidden() { + this.showInList = false; + } + + public String getName() { + + return GT_LanguageManager.addStringLocalization("comb." + this.name, this.name.substring(0, 1).toUpperCase() + this.name.substring(1) + " Comb"); + } + + public int[] getColours() { + return color == null || color.length != 2 ? new int[]{0,0} : color; + } +} diff --git a/src/main/java/gtPlusPlus/xmod/forestry/bees/handler/GTPP_DropType.java b/src/main/java/gtPlusPlus/xmod/forestry/bees/handler/GTPP_DropType.java new file mode 100644 index 0000000000..8578baa3c3 --- /dev/null +++ b/src/main/java/gtPlusPlus/xmod/forestry/bees/handler/GTPP_DropType.java @@ -0,0 +1,51 @@ +package gtPlusPlus.xmod.forestry.bees.handler; + +import gregtech.api.enums.Materials; +import gregtech.api.util.GT_LanguageManager; + +public enum GTPP_DropType { + + OIL("oil",true), + MUTAGEN("small mutagen catalyst",true), + COOLANT("coolant",true), + HOT_COOLANT("hot coolant",true), + HYDRA("hydra blood",true), + SNOW_QUEEN("snowqueen blood",true), + OXYGEN("oxygen",true), + LAPIS("lapis coolant",true), + ENDERGOO("ender goo",true); + + private static int[][] colours = new int[][]{ + {0x19191B, 0x303032}, + {0xffc100, 0x00ff11}, + {0x144F5A, 0x2494A2}, + {0xC11F1F, 0xEBB9B9}, + {0x872836, 0xB8132C}, + {0xD02001, 0x9C0018}, + {0x003366, 0x0066BB}, + {0x1727b1, 0x008ce3}, + {0xA005E7, 0x161616}, + }; + public boolean showInList; + public Materials material; + public int chance; + private String name; + + private GTPP_DropType(String pName, boolean show) { + this.name = pName; + this.showInList = show; + } + + public void setHidden() { + this.showInList = false; + } + + public String getName() { + + return GT_LanguageManager.addStringLocalization("drop." + this.name, this.name.substring(0, 1).toUpperCase() + this.name.substring(1) + " Drop"); + } + + public int[] getColours() { + return colours[this.ordinal()]; + } +} diff --git a/src/main/java/gtPlusPlus/xmod/forestry/bees/handler/GTPP_PollenType.java b/src/main/java/gtPlusPlus/xmod/forestry/bees/handler/GTPP_PollenType.java new file mode 100644 index 0000000000..7010c45cd0 --- /dev/null +++ b/src/main/java/gtPlusPlus/xmod/forestry/bees/handler/GTPP_PollenType.java @@ -0,0 +1,34 @@ +package gtPlusPlus.xmod.forestry.bees.handler; + +import gregtech.api.enums.Materials; +import gregtech.api.util.GT_LanguageManager; + +public enum GTPP_PollenType { + + MATRIX("matrix",true); + + private static int[][] colours = new int[][]{ + {0x19191B, 0x303032}, + }; + public boolean showInList; + public Materials material; + public int chance; + private String name; + + private GTPP_PollenType(String pName, boolean show) { + this.name = pName; + this.showInList = show; + } + + public void setHidden() { + this.showInList = false; + } + + public String getName() { + return GT_LanguageManager.addStringLocalization("pollen." + this.name, this.name.substring(0, 1).toUpperCase() + this.name.substring(1) + " Pollen"); + } + + public int[] getColours() { + return colours[this.ordinal()]; + } +} diff --git a/src/main/java/gtPlusPlus/xmod/forestry/bees/handler/GTPP_PropolisType.java b/src/main/java/gtPlusPlus/xmod/forestry/bees/handler/GTPP_PropolisType.java new file mode 100644 index 0000000000..92ee16571d --- /dev/null +++ b/src/main/java/gtPlusPlus/xmod/forestry/bees/handler/GTPP_PropolisType.java @@ -0,0 +1,52 @@ +package gtPlusPlus.xmod.forestry.bees.handler; + +import gregtech.api.enums.Materials; +import gregtech.api.util.GT_LanguageManager; + +public enum GTPP_PropolisType { + + End("End",true), + Ectoplasma("Ectoplasma",true), + Arcaneshard("Arcaneshard",true), + Stardust("Stardust",true), + Dragonessence("Dragonessence",true), + Enderman("Enderman",true), + Silverfish("Silverfish", true), + Endium("Endium", true), + Fireessence("Fireessence",true); + + private static int[] colours = new int[]{ + 0xCC00FA, + 0xDCB0E5, + 0x9010AD, + 0xFFFF00, + 0x911ECE, + 0x161616, + 0xEE053D, + 0xa0ffff, + 0xD41238 + }; + + public boolean showInList; + public Materials material; + public int chance; + private String name; + + private GTPP_PropolisType(String pName, boolean show) { + this.name = pName; + this.showInList = show; + } + + public void setHidden() { + this.showInList = false; + } + + public String getName() { +// return "gt.comb."+this.name; + return GT_LanguageManager.addStringLocalization("propolis." + this.name, this.name.substring(0, 1).toUpperCase() + this.name.substring(1) + " Propolis"); + } + + public int getColours() { + return colours[this.ordinal()]; + } +} diff --git a/src/main/java/gtPlusPlus/xmod/forestry/bees/items/output/GTPP_Comb.java b/src/main/java/gtPlusPlus/xmod/forestry/bees/items/output/GTPP_Comb.java new file mode 100644 index 0000000000..01e7009cb8 --- /dev/null +++ b/src/main/java/gtPlusPlus/xmod/forestry/bees/items/output/GTPP_Comb.java @@ -0,0 +1,569 @@ +package gtPlusPlus.xmod.forestry.bees.items.output; + +import static gregtech.api.enums.GT_Values.*; + +import java.util.Arrays; +import java.util.List; + +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.ImmutableMap.Builder; + +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import forestry.api.core.Tabs; +import forestry.api.recipes.RecipeManagers; +import gregtech.GT_Mod; +import gregtech.api.enums.*; +import gregtech.api.util.*; +import gregtech.loaders.materialprocessing.ProcessingModSupport; +import gtPlusPlus.core.lib.CORE; +import gtPlusPlus.xmod.forestry.bees.handler.*; +import gtPlusPlus.xmod.forestry.bees.registry.GTPP_Bees; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; + +public class GTPP_Comb extends Item { + + @SideOnly(Side.CLIENT) + private IIcon secondIcon; + + public GTPP_Comb() { + super(); + this.setCreativeTab(Tabs.tabApiculture); + this.setHasSubtypes(true); + this.setUnlocalizedName("gtpp.comb"); + GameRegistry.registerItem(this, "gtpp.comb", CORE.MODID); + } + + public ItemStack getStackForType(GTPP_CombType type) { + return new ItemStack(this, 1, type.ordinal()); + } + + public ItemStack getStackForType(GTPP_CombType type, int count) { + return new ItemStack(this, count, type.ordinal()); + } + + @Override + @SideOnly(Side.CLIENT) + public void getSubItems(Item item, CreativeTabs tabs, List list) { + for (GTPP_CombType type : GTPP_CombType.values()) { + if (type.showInList) { + list.add(this.getStackForType(type)); + } + } + } + + @Override + @SideOnly(Side.CLIENT) + public boolean requiresMultipleRenderPasses() { + return true; + } + + @Override + public int getRenderPasses(int meta) { + return 2; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister par1IconRegister) { + this.itemIcon = par1IconRegister.registerIcon("forestry:beeCombs.0"); + this.secondIcon = par1IconRegister.registerIcon("forestry:beeCombs.1"); + } + + @Override + public IIcon getIcon(ItemStack stack, int pass) { + return (pass == 0) ? itemIcon : secondIcon; + } + + @Override + @SideOnly(Side.CLIENT) + public int getColorFromItemStack(ItemStack stack, int pass) { + int meta = Math.max(0, Math.min(GTPP_CombType.values().length - 1, stack.getItemDamage())); + int colour = GTPP_CombType.values()[meta].getColours()[0]; + + if (pass >= 1) { + colour = GTPP_CombType.values()[meta].getColours()[1]; + } + + return colour; + } + + @Override + public String getItemStackDisplayName(ItemStack stack) { + return GTPP_CombType.values()[stack.getItemDamage()].getName(); + } + public void initCombsRecipes() { + + //Organic + addProcessGT(GTPP_CombType.LIGNIE, new Materials[] {Materials.Lignite}, Voltage.LV); + addProcessGT(GTPP_CombType.COAL, new Materials[] {Materials.Coal}, Voltage.LV); + addCentrifugeToItemStack(GTPP_CombType.STICKY, new ItemStack[] { ItemList.IC2_Resin.get(1), ItemList.IC2_Plantball.get(1), ItemList.FR_Wax.get(1) }, new int[] {50 * 100, 15 * 100, 50 * 100}, Voltage.ULV); + addProcessGT(GTPP_CombType.OIL, new Materials[] {Materials.Oilsands}, Voltage.LV); + addProcessGT(GTPP_CombType.APATITE, new Materials[] {Materials.Apatite, Materials.Phosphate}, Voltage.LV); + addCentrifugeToMaterial(GTPP_CombType.ASH, new Materials[] {Materials.DarkAsh, Materials.Ash}, new int[] { 50*100, 50*100}, new int[] {}, Voltage.ULV, NI, 50 * 100); + if(GT_Mod.gregtechproxy.mNerfedCombs) { + addCentrifugeToItemStack(GTPP_CombType.LIGNIE, new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Lignite, 1), ItemList.FR_Wax.get(1) }, new int[] {90 * 100, 50 * 100}, Voltage.ULV); + addCentrifugeToItemStack(GTPP_CombType.COAL, new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Coal, 1), ItemList.FR_Wax.get(1) }, new int[] {5 * 100, 50 * 100}, Voltage.ULV); + addCentrifugeToItemStack(GTPP_CombType.OIL, new ItemStack[] { ItemList.Crop_Drop_OilBerry.get(1), GTPP_Bees.drop.getStackForType(GTPP_DropType.OIL), ItemList.FR_Wax.get(1) }, new int[] {70 * 100, 100 * 100, 50 * 100}, Voltage.ULV); + }else { + addCentrifugeToItemStack(GTPP_CombType.LIGNIE, new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Lignite, 1), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Lignite, 1), ItemList.FR_Wax.get(1) }, new int[] {90 * 100, 100 * 100, 50 * 100}, Voltage.ULV); + addCentrifugeToItemStack(GTPP_CombType.COAL, new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Coal, 1), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Coal, 1), ItemList.FR_Wax.get(1) }, new int[] {5 * 100, 100 * 100, 50 * 100}, Voltage.ULV); + addCentrifugeToItemStack(GTPP_CombType.OIL, new ItemStack[] { ItemList.Crop_Drop_OilBerry.get(1), GTPP_Bees.drop.getStackForType(GTPP_DropType.OIL), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Oilsands, 1), ItemList.FR_Wax.get(1) }, new int[] {70 * 100, 100 * 100, 100 * 100, 50 * 100}, Voltage.ULV); + addCentrifugeToMaterial(GTPP_CombType.APATITE, new Materials[] { Materials.Apatite, Materials.Phosphate }, new int[] {100 * 100, 80 * 100 }, new int[] {}, Voltage.ULV, NI, 30 * 100); + } + + //ic2 + addCentrifugeToItemStack(GTPP_CombType.COOLANT, new ItemStack[] { GTPP_Bees.drop.getStackForType(GTPP_DropType.COOLANT), ItemList.FR_Wax.get(1) }, new int[] {100 * 100, 100 * 100}, Voltage.HV, 196); + addCentrifugeToItemStack(GTPP_CombType.ENERGY, new ItemStack[] {GTPP_Bees.drop.getStackForType(GTPP_DropType.HOT_COOLANT), ItemList.IC2_Energium_Dust.get(1L), ItemList.FR_RefractoryWax.get(1)}, new int[] {20 * 100, 20 * 100, 50 * 100}, Voltage.HV, 196); + addCentrifugeToItemStack(GTPP_CombType.LAPOTRON, new ItemStack[] {GTPP_Bees.drop.getStackForType(GTPP_DropType.LAPIS), GT_ModHandler.getModItem(MOD_ID_DC, "item.LapotronDust", 1, 0), GT_ModHandler.getModItem("MagicBees", "wax", 1, 2) }, new int[] {20 * 100, 15 * 100, 40 * 100}, Voltage.HV, 196); + addCentrifugeToMaterial(GTPP_CombType.PYROTHEUM, new Materials[] {Materials.Blaze, Materials.Pyrotheum}, new int[] { 25 * 100, 20 * 100}, new int[] {}, Voltage.HV, NI, 30 * 100); + addCentrifugeToMaterial(GTPP_CombType.CRYOTHEUM, new Materials[] {Materials.Blizz, Materials.Cryotheum}, new int[] { 25 * 100, 20 * 100}, new int[] {}, Voltage.HV, NI, 30 * 100); + + //Alloy + addProcessGT(GTPP_CombType.REDALLOY, new Materials[] {Materials.RedAlloy, Materials.Redstone, Materials.Copper}, Voltage.LV); + addProcessGT(GTPP_CombType.REDSTONEALLOY, new Materials[] {Materials.RedstoneAlloy, Materials.Redstone, Materials.Silicon, Materials.Coal}, Voltage.LV); + addProcessGT(GTPP_CombType.CONDUCTIVEIRON, new Materials[] {Materials.ConductiveIron, Materials.Silver, Materials.Iron }, Voltage.MV); + addProcessGT(GTPP_CombType.VIBRANTALLOY, new Materials[] {Materials.VibrantAlloy, Materials.Chrome }, Voltage.HV); + addProcessGT(GTPP_CombType.ENERGETICALLOY, new Materials[] {Materials.EnergeticAlloy, Materials.Gold }, Voltage.HV); + addProcessGT(GTPP_CombType.ELECTRICALSTEEL, new Materials[] {Materials.ElectricalSteel, Materials.Silicon, Materials.Coal }, Voltage.LV); + addProcessGT(GTPP_CombType.DARKSTEEL, new Materials[] {Materials.DarkSteel, Materials.Coal }, Voltage.MV); + addProcessGT(GTPP_CombType.PULSATINGIRON, new Materials[] {Materials.PulsatingIron, Materials.Iron }, Voltage.HV); + addProcessGT(GTPP_CombType.STAINLESSSTEEL, new Materials[] {Materials.StainlessSteel, Materials.Iron, Materials.Chrome, Materials.Manganese, Materials.Nickel }, Voltage.HV); + addCentrifugeToItemStack(GTPP_CombType.ENDERIUM, new ItemStack[] {ItemList.FR_RefractoryWax.get(1), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.EnderiumBase, 1), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Enderium, 1) }, new int[] {50 * 100, 30 * 100, 50 * 100 }, Voltage.HV); + if(GT_Mod.gregtechproxy.mNerfedCombs) { + addCentrifugeToMaterial(GTPP_CombType.REDALLOY, new Materials[] {Materials.RedAlloy}, new int[] {100 * 100 }, new int[] {}, Voltage.ULV, ItemList.FR_RefractoryWax.get(1), 50 * 100); + addCentrifugeToMaterial(GTPP_CombType.REDSTONEALLOY, new Materials[] {Materials.RedstoneAlloy}, new int[] {100 * 100 }, new int[] {}, Voltage.ULV, ItemList.FR_RefractoryWax.get(1), 50 * 100); + addCentrifugeToMaterial(GTPP_CombType.CONDUCTIVEIRON, new Materials[] {Materials.ConductiveIron }, new int[] {90 * 100}, new int[] {}, Voltage.MV, ItemList.FR_RefractoryWax.get(1), 50 * 100); + addCentrifugeToMaterial(GTPP_CombType.VIBRANTALLOY, new Materials[] {Materials.VibrantAlloy }, new int[] {70 * 100}, new int[] {}, Voltage.HV, ItemList.FR_RefractoryWax.get(1), 50 * 100); + addCentrifugeToMaterial(GTPP_CombType.ENERGETICALLOY, new Materials[] {Materials.EnergeticAlloy }, new int[] {80 * 100}, new int[] {}, Voltage.HV, ItemList.FR_RefractoryWax.get(1), 50 * 100); + addCentrifugeToMaterial(GTPP_CombType.ELECTRICALSTEEL, new Materials[] {Materials.ElectricalSteel }, new int[] {100 * 100}, new int[] {}, Voltage.ULV, ItemList.FR_RefractoryWax.get(1), 50 * 100); + addCentrifugeToMaterial(GTPP_CombType.DARKSTEEL, new Materials[] {Materials.DarkSteel }, new int[] {100 * 100}, new int[] {}, Voltage.MV, ItemList.FR_RefractoryWax.get(1), 50 * 100); + addCentrifugeToMaterial(GTPP_CombType.PULSATINGIRON, new Materials[] {Materials.PulsatingIron }, new int[] {80 * 100}, new int[] {}, Voltage.HV, ItemList.FR_RefractoryWax.get(1), 50 * 100); + addCentrifugeToMaterial(GTPP_CombType.STAINLESSSTEEL, new Materials[] {Materials.StainlessSteel }, new int[] {50 * 100}, new int[] {}, Voltage.HV, ItemList.FR_RefractoryWax.get(1), 50 * 100); + }else { + addCentrifugeToMaterial(GTPP_CombType.REDALLOY, new Materials[] {Materials.RedAlloy, Materials.Redstone, Materials.Copper}, new int[] {100 * 100, 75 * 100, 90 * 100 }, new int[] {}, Voltage.ULV, ItemList.FR_RefractoryWax.get(1), 50 * 100); + addCentrifugeToMaterial(GTPP_CombType.REDSTONEALLOY, new Materials[] {Materials.RedstoneAlloy, Materials.Redstone, Materials.Silicon, Materials.Coal}, new int[] {100 * 100, 90 * 100, 75 * 100, 75 * 100 }, new int[] {}, Voltage.ULV, ItemList.FR_RefractoryWax.get(1), 50 * 100); + addCentrifugeToMaterial(GTPP_CombType.CONDUCTIVEIRON, new Materials[] {Materials.ConductiveIron, Materials.Silver, Materials.Iron }, new int[] {90 * 100, 55 * 100, 65 * 100}, new int[] {}, Voltage.MV, ItemList.FR_RefractoryWax.get(1), 50 * 100); + addCentrifugeToMaterial(GTPP_CombType.VIBRANTALLOY, new Materials[] {Materials.VibrantAlloy, Materials.Chrome }, new int[] {70 * 100, 50 * 100}, new int[] {}, Voltage.HV, ItemList.FR_RefractoryWax.get(1), 50 * 100); + addCentrifugeToMaterial(GTPP_CombType.ENERGETICALLOY, new Materials[] {Materials.EnergeticAlloy, Materials.Gold }, new int[] {80 * 100, 60 * 100}, new int[] {}, Voltage.HV, ItemList.FR_RefractoryWax.get(1), 50 * 100); + addCentrifugeToMaterial(GTPP_CombType.ELECTRICALSTEEL, new Materials[] {Materials.ElectricalSteel, Materials.Silicon, Materials.Coal }, new int[] {100 * 100, 75 * 100, 75 * 100}, new int[] {}, Voltage.ULV, ItemList.FR_RefractoryWax.get(1), 50 * 100); + addCentrifugeToMaterial(GTPP_CombType.DARKSTEEL, new Materials[] {Materials.DarkSteel, Materials.Coal }, new int[] {100 * 100, 75 * 100 }, new int[] {}, Voltage.MV, ItemList.FR_RefractoryWax.get(1), 50 * 100); + addCentrifugeToMaterial(GTPP_CombType.PULSATINGIRON, new Materials[] {Materials.PulsatingIron, Materials.Iron }, new int[] {80 * 100, 75 * 100 }, new int[] {}, Voltage.HV, ItemList.FR_RefractoryWax.get(1), 50 * 100); + addCentrifugeToMaterial(GTPP_CombType.STAINLESSSTEEL, new Materials[] {Materials.StainlessSteel, Materials.Iron, Materials.Chrome, Materials.Manganese, Materials.Nickel }, new int[] {50 * 100, 75 * 100, 55 * 100, 75 * 100, 75 * 100 }, new int[] {}, Voltage.HV, ItemList.FR_RefractoryWax.get(1), 50 * 100); + } + + //Thaumic + addProcessGT(GTPP_CombType.THAUMIUMDUST, new Materials[] {Materials.Thaumium, Materials.Iron }, Voltage.MV); + addCentrifugeToItemStack(GTPP_CombType.THAUMIUMSHARD, new ItemStack[] {GT_ModHandler.getModItem("MagicBees", "propolis", 1, 1), GT_ModHandler.getModItem("MagicBees", "propolis", 1, 2), GT_ModHandler.getModItem("MagicBees", "propolis", 1, 3), GT_ModHandler.getModItem("MagicBees", "propolis", 1, 4), GT_ModHandler.getModItem("MagicBees", "propolis", 1, 5), GT_ModHandler.getModItem("MagicBees", "propolis", 1, 6), GT_ModHandler.getModItem("MagicBees", "wax", 1, 0) }, new int[] {20 * 100, 20 * 100, 20 * 100, 20 * 100, 20 * 100, 20 * 100, 50 * 100 }, Voltage.ULV); + addProcessGT(GTPP_CombType.AMBER, new Materials[] {Materials.Amber}, Voltage.LV); + addProcessGT(GTPP_CombType.QUICKSILVER, new Materials[] {Materials.Cinnabar }, Voltage.LV); + addCentrifugeToItemStack(GTPP_CombType.SALISMUNDUS, new ItemStack[] {GT_ModHandler.getModItem("Thaumcraft", "ItemResource", 1, 14), GT_ModHandler.getModItem("MagicBees", "wax", 1, 0)}, new int[] {100 * 100, 50 * 100}, Voltage.MV); + addCentrifugeToItemStack(GTPP_CombType.TAINTED, new ItemStack[] {GT_ModHandler.getModItem("Thaumcraft", "ItemResource", 1, 11), GT_ModHandler.getModItem("Thaumcraft", "ItemResource", 1, 12), GT_ModHandler.getModItem("Thaumcraft", "blockTaintFibres", 1, 0), GT_ModHandler.getModItem("Thaumcraft", "blockTaintFibres", 1, 1), GT_ModHandler.getModItem("Thaumcraft", "blockTaintFibres", 1, 2), GT_ModHandler.getModItem("MagicBees", "wax", 1, 0)}, new int[] {15 * 100, 15 * 100, 15 * 100, 15 * 100, 15 * 100, 50 * 100}, Voltage.ULV); + addProcessGT(GTPP_CombType.MITHRIL, new Materials[] {Materials.Mithril, Materials.Platinum }, Voltage.HV); + addProcessGT(GTPP_CombType.ASTRALSILVER, new Materials[] {Materials.AstralSilver, Materials.Silver }, Voltage.HV); + addCentrifugeToMaterial(GTPP_CombType.ASTRALSILVER, new Materials[] {Materials.AstralSilver, Materials.Silver}, new int[] {20 * 100, (GT_Mod.gregtechproxy.mNerfedCombs ? 10:75) * 100}, new int[] {}, Voltage.HV, GT_ModHandler.getModItem("MagicBees", "wax", 1, 0), 50 * 100); + addCentrifugeToItemStack(GTPP_CombType.THAUMINITE, new ItemStack[] {GT_ModHandler.getModItem("thaumicbases", "resource", 1, 0), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Thaumium, 1), GT_ModHandler.getModItem("MagicBees", "wax", 1, 0)}, new int[] {20 * 100, 10 * 100, 50 *100}, Voltage.HV); + addProcessGT(GTPP_CombType.SHADOWMETAL, new Materials[] {Materials.Shadow, Materials.ShadowSteel }, Voltage.HV); + addCentrifugeToMaterial(GTPP_CombType.SHADOWMETAL, new Materials[] {Materials.Shadow, Materials.ShadowSteel}, new int[] {(GT_Mod.gregtechproxy.mNerfedCombs ? 20:75) * 100, 10 * 100}, new int[] {}, Voltage.HV, GT_ModHandler.getModItem("MagicBees", "wax", 1, 0) , 50 * 100); + addProcessGT(GTPP_CombType.DIVIDED, new Materials[] {Materials.Iron, Materials.Diamond }, Voltage.HV); + addCentrifugeToItemStack(GTPP_CombType.DIVIDED, new ItemStack[] { GT_ModHandler.getModItem("MagicBees", "wax", 1, 0), GT_ModHandler.getModItem("ExtraUtilities", "unstableingot", 1, 1), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Iron, 1), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Diamond, 1)}, new int[] {50 * 100, 20 * 100, (GT_Mod.gregtechproxy.mNerfedCombs ? 10:75) * 100, (GT_Mod.gregtechproxy.mNerfedCombs ? 5:55) * 100}, Voltage.HV); + addProcessGT(GTPP_CombType.SPARKELING, new Materials[] {Materials.NetherStar}, Voltage.EV); + addCentrifugeToItemStack(GTPP_CombType.SPARKELING, new ItemStack[] { GT_ModHandler.getModItem("MagicBees", "wax", 1, 0), GT_ModHandler.getModItem("MagicBees", "miscResources", 2, 5), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.NetherStar, 1)}, new int[] {50 * 100, 10 * 100, (GT_Mod.gregtechproxy.mNerfedCombs ? 10:50) * 100}, Voltage.EV); + if(GT_Mod.gregtechproxy.mNerfedCombs) { + addCentrifugeToMaterial(GTPP_CombType.THAUMIUMDUST, new Materials[] {Materials.Thaumium }, new int[] {100 * 100}, new int[] {}, Voltage.MV, GT_ModHandler.getModItem("MagicBees", "wax", 1, 0), 50 * 100); + addCentrifugeToItemStack(GTPP_CombType.QUICKSILVER, new ItemStack[] {GT_ModHandler.getModItem("MagicBees", "wax", 1, 0), GT_ModHandler.getModItem("Thaumcraft", "ItemNugget", 1, 5) }, new int[] {50 * 100, 100 * 100 }, Voltage.ULV); + }else { + addCentrifugeToMaterial(GTPP_CombType.THAUMIUMDUST, new Materials[] {Materials.Thaumium, Materials.Iron }, new int[] {100 * 100, 75 * 100 }, new int[] {}, Voltage.MV, GT_ModHandler.getModItem("MagicBees", "wax", 1, 0), 50 * 100); + addCentrifugeToMaterial(GTPP_CombType.AMBER, new Materials[] {Materials.Amber }, new int[] {100 * 100 }, new int[] {}, Voltage.ULV, GT_ModHandler.getModItem("MagicBees", "wax", 1, 0), 50 * 100); + addCentrifugeToItemStack(GTPP_CombType.QUICKSILVER, new ItemStack[] {GT_ModHandler.getModItem("MagicBees", "wax", 1, 0), GT_ModHandler.getModItem("Thaumcraft", "ItemNugget", 1, 5), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Cinnabar, 1) }, new int[] {50 * 100, 100 * 100, 85 * 100 }, Voltage.ULV); + addCentrifugeToMaterial(GTPP_CombType.MITHRIL, new Materials[] {Materials.Mithril, Materials.Platinum}, new int[] {75 * 100, 55 * 100}, new int[] {}, Voltage.HV, GT_ModHandler.getModItem("MagicBees", "wax", 1, 0), 50 * 100); + } + + //Gem Line + addProcessGT(GTPP_CombType.STONE, new Materials[] {Materials.Soapstone, Materials.Talc, Materials.Apatite, Materials.Phosphate, Materials.TricalciumPhosphate}, Voltage.LV); + addProcessGT(GTPP_CombType.CERTUS, new Materials[] {Materials.CertusQuartz, Materials.Quartzite, Materials.Barite}, Voltage.LV); + addProcessGT(GTPP_CombType.FLUIX, new Materials[] {Materials.Redstone, Materials.CertusQuartz, Materials.NetherQuartz}, Voltage.LV); + addProcessGT(GTPP_CombType.REDSTONE, new Materials[] {Materials.Redstone, Materials.Cinnabar}, Voltage.LV); + addCentrifugeToMaterial(GTPP_CombType.RAREEARTH, new Materials[] {Materials.RareEarth}, new int[] {100 * 100}, new int[] { 1}, Voltage.ULV, NI, 30 * 100); + addProcessGT(GTPP_CombType.LAPIS, new Materials[] {Materials.Lapis, Materials.Sodalite, Materials.Lazurite, Materials.Calcite }, Voltage.LV); + addProcessGT(GTPP_CombType.RUBY, new Materials[] {Materials.Ruby, Materials.Redstone }, Voltage.LV); + addProcessGT(GTPP_CombType.REDGARNET, new Materials[] {Materials.GarnetRed, Materials.GarnetYellow }, Voltage.LV); + addProcessGT(GTPP_CombType.YELLOWGARNET, new Materials[] {Materials.GarnetYellow, Materials.GarnetRed }, Voltage.LV); + addProcessGT(GTPP_CombType.SAPPHIRE, new Materials[] {Materials.Sapphire, Materials.GreenSapphire, Materials.Almandine, Materials.Pyrope}, Voltage.LV); + addProcessGT(GTPP_CombType.DIAMOND, new Materials[] {Materials.Diamond, Materials.Graphite}, Voltage.LV); + addProcessGT(GTPP_CombType.OLIVINE, new Materials[] {Materials.Olivine, Materials.Bentonite, Materials.Magnesite, Materials.Glauconite}, Voltage.LV); + addProcessGT(GTPP_CombType.EMERALD, new Materials[] {Materials.Emerald, Materials.Beryllium, Materials.Thorium}, Voltage.LV); + addProcessGT(GTPP_CombType.FIRESTONE, new Materials[] {Materials.Firestone}, Voltage.LV); + addProcessGT(GTPP_CombType.PYROPE, new Materials[] {Materials.Pyrope, Materials.Aluminium, Materials.Magnesium, Materials.Silicon}, Voltage.LV); + addProcessGT(GTPP_CombType.GROSSULAR, new Materials[] {Materials.Grossular, Materials.Aluminium, Materials.Silicon}, Voltage.LV); + if(GT_Mod.gregtechproxy.mNerfedCombs) { + addCentrifugeToMaterial(GTPP_CombType.STONE, new Materials[] {Materials.Stone, Materials.GraniteBlack, Materials.GraniteRed, Materials.Basalt, Materials.Marble, Materials.Redrock}, new int[] {70 * 100, 50 * 100, 50 * 100, 50 * 100, 50 * 100, 50 * 100}, new int[] { 9, 9, 9, 9, 9, 9}, Voltage.ULV, NI, 50 * 100); + addCentrifugeToMaterial(GTPP_CombType.FLUIX, new Materials[] {Materials.Fluix}, new int[] {25 * 100}, new int[] { 9}, Voltage.ULV, NI, 30 * 100); + }else { + addCentrifugeToMaterial(GTPP_CombType.STONE, new Materials[] {Materials.Soapstone, Materials.Talc, Materials.Apatite, Materials.Phosphate, Materials.TricalciumPhosphate}, new int[] {95 * 100, 90 * 100, 80 * 100, 75 * 100, 75 * 100}, new int[] {}, Voltage.ULV, NI, 50 * 100); + addCentrifugeToMaterial(GTPP_CombType.CERTUS, new Materials[] {Materials.CertusQuartz, Materials.Quartzite, Materials.Barite}, new int[] {100 * 100, 80 * 100, 75 * 100}, new int[] {}, Voltage.ULV, NI, 50 * 100); + addCentrifugeToMaterial(GTPP_CombType.FLUIX, new Materials[] {Materials.Fluix, Materials.Redstone, Materials.CertusQuartz, Materials.NetherQuartz}, new int[] {25 * 100, 90 * 100, 90 * 100, 90 * 100}, new int[] { 9, 1, 1, 1}, Voltage.ULV, NI, 30 * 100); + addCentrifugeToMaterial(GTPP_CombType.REDSTONE, new Materials[] {Materials.Redstone, Materials.Cinnabar }, new int[] {100 * 100, 80 * 100}, new int[] {}, Voltage.ULV, NI, 30 * 100); + addCentrifugeToMaterial(GTPP_CombType.LAPIS, new Materials[] {Materials.Lapis, Materials.Sodalite, Materials.Lazurite, Materials.Calcite }, new int[] {100 * 100, 90 * 100, 90 * 100, 85 * 100}, new int[] {}, Voltage.ULV, NI, 30 * 100); + addCentrifugeToMaterial(GTPP_CombType.RUBY, new Materials[] {Materials.Ruby, Materials.Redstone }, new int[] {100 * 100, 90 * 100}, new int[] {}, Voltage.ULV, NI, 30 * 100); + addCentrifugeToMaterial(GTPP_CombType.REDGARNET, new Materials[] {Materials.GarnetRed, Materials.GarnetYellow }, new int[] {100 * 100, 75 * 100}, new int[] {}, Voltage.ULV, NI, 30 * 100); + addCentrifugeToMaterial(GTPP_CombType.YELLOWGARNET, new Materials[] {Materials.GarnetYellow, Materials.GarnetRed }, new int[] {100 * 100, 75 * 100}, new int[] {}, Voltage.ULV, NI, 30 * 100); + addCentrifugeToMaterial(GTPP_CombType.SAPPHIRE, new Materials[] {Materials.Sapphire, Materials.GreenSapphire, Materials.Almandine, Materials.Pyrope}, new int[] {100 * 100, 90 * 100, 90 * 100, 75 * 100}, new int[] {}, Voltage.ULV, NI, 30 * 100); + addCentrifugeToMaterial(GTPP_CombType.DIAMOND, new Materials[] {Materials.Diamond, Materials.Graphite}, new int[] {100 * 100, 75 * 100}, new int[] {}, Voltage.ULV, NI, 30 * 100); + addCentrifugeToMaterial(GTPP_CombType.OLIVINE, new Materials[] {Materials.Olivine, Materials.Bentonite, Materials.Magnesite, Materials.Glauconite}, new int[] {100 * 100, 90 * 100, 80 * 100, 75 * 100}, new int[] {}, Voltage.ULV, NI, 30 * 100); + addCentrifugeToMaterial(GTPP_CombType.EMERALD, new Materials[] {Materials.Emerald, Materials.Beryllium, Materials.Thorium}, new int[] {100 * 100, 85 * 100, 75 * 100}, new int[] {}, Voltage.ULV, NI, 30 * 100); + addCentrifugeToMaterial(GTPP_CombType.FIRESTONE, new Materials[] {Materials.Firestone}, new int[] {100 * 100}, new int[] {}, Voltage.ULV, ItemList.FR_RefractoryWax.get(1), 30 * 100); + addCentrifugeToMaterial(GTPP_CombType.PYROPE, new Materials[] {Materials.Pyrope, Materials.Aluminium, Materials.Magnesium, Materials.Silicon}, new int[] {100 * 100, 75 * 100, 80 * 100, 75 * 100}, new int[] {}, Voltage.ULV, NI, 30 * 100); + addCentrifugeToMaterial(GTPP_CombType.GROSSULAR, new Materials[] {Materials.Grossular, Materials.Aluminium, Materials.Silicon}, new int[] {100 * 100, 75 * 100, 75 * 100}, new int[] {}, Voltage.ULV, NI, 30 * 100); + } + + // Metals Line + addProcessGT(GTPP_CombType.SLAG, new Materials[] {Materials.Salt, Materials.RockSalt, Materials.Lepidolite, Materials.Spodumene, Materials.Monazite}, Voltage.LV); + addProcessGT(GTPP_CombType.COPPER, new Materials[] {Materials.Copper, Materials.Tetrahedrite, Materials.Chalcopyrite, Materials.Malachite, Materials.Pyrite, Materials.Stibnite}, Voltage.LV); + addProcessGT(GTPP_CombType.TIN, new Materials[] {Materials.Tin, Materials.Cassiterite, Materials.CassiteriteSand}, Voltage.LV); + addProcessGT(GTPP_CombType.LEAD, new Materials[] {Materials.Lead, Materials.Galena}, Voltage.LV); + addProcessGT(GTPP_CombType.NICKEL, new Materials[] {Materials.Nickel, Materials.Garnierite, Materials.Pentlandite, Materials.Cobaltite, Materials.Wulfenite, Materials.Powellite}, Voltage.LV); + addProcessGT(GTPP_CombType.ZINC, new Materials[] {Materials.Zinc, Materials.Sulfur}, Voltage.LV); + addProcessGT(GTPP_CombType.SILVER, new Materials[] {Materials.Silver, Materials.Galena}, Voltage.LV); + addProcessGT(GTPP_CombType.CRYOLITE, new Materials[] {Materials.Cryolite, Materials.Silver}, Voltage.LV); + addProcessGT(GTPP_CombType.GOLD, new Materials[] {Materials.Gold, Materials.Magnetite}, Voltage.LV); + addChemicalProcess(GTPP_CombType.GOLD, Materials.Magnetite, Materials.Gold, Voltage.LV); + addProcessGT(GTPP_CombType.SULFUR, new Materials[] {Materials.Sulfur, Materials.Pyrite, Materials.Sphalerite}, Voltage.LV); + addProcessGT(GTPP_CombType.GALLIUM, new Materials[] {Materials.Gallium, Materials.Niobium}, Voltage.LV); + addProcessGT(GTPP_CombType.ARSENIC, new Materials[] {Materials.Arsenic, Materials.Bismuth, Materials.Antimony}, Voltage.LV); + if (ProcessingModSupport.aEnableGCMarsMats) { + addProcessGT(GTPP_CombType.IRON, new Materials[] {Materials.Iron, Materials.Magnetite, Materials.BrownLimonite, Materials.YellowLimonite, Materials.VanadiumMagnetite, Materials.BandedIron, Materials.Pyrite, Materials.MeteoricIron}, Voltage.LV); + addProcessGT(GTPP_CombType.STEEL, new Materials[] {Materials.Iron, Materials.Magnetite, Materials.YellowLimonite, Materials.BrownLimonite, Materials.VanadiumMagnetite, Materials.BandedIron, Materials.Pyrite, Materials.MeteoricIron, Materials.Molybdenite, Materials.Molybdenum}, Voltage.LV); + }else { + addProcessGT(GTPP_CombType.IRON, new Materials[] {Materials.Iron, Materials.Magnetite, Materials.BrownLimonite, Materials.YellowLimonite, Materials.VanadiumMagnetite, Materials.BandedIron, Materials.Pyrite}, Voltage.LV); + addProcessGT(GTPP_CombType.STEEL, new Materials[] {Materials.Iron, Materials.Magnetite, Materials.YellowLimonite, Materials.BrownLimonite, Materials.VanadiumMagnetite, Materials.BandedIron, Materials.Pyrite, Materials.Molybdenite, Materials.Molybdenum}, Voltage.LV); + } + addChemicalProcess(GTPP_CombType.STEEL, Materials.BrownLimonite, Materials.YellowLimonite, Voltage.LV); + addChemicalProcess(GTPP_CombType.STEEL, Materials.YellowLimonite, Materials.BrownLimonite, Voltage.LV); + if(GT_Mod.gregtechproxy.mNerfedCombs) { + addCentrifugeToMaterial(GTPP_CombType.SLAG, new Materials[] {Materials.Stone, Materials.GraniteBlack, Materials.GraniteRed}, new int[] {50 * 100, 20 * 100, 20 * 100}, new int[] { 9, 9, 9}, Voltage.ULV, NI, 30 * 100); + addCentrifugeToMaterial(GTPP_CombType.COPPER, new Materials[] {Materials.Copper}, new int[] {70 * 100}, new int[] {}, Voltage.ULV, NI, 30 * 100); + addCentrifugeToMaterial(GTPP_CombType.TIN, new Materials[] {Materials.Tin}, new int[] {60 * 100}, new int[] {}, Voltage.ULV, NI, 30 * 100); + addCentrifugeToMaterial(GTPP_CombType.LEAD, new Materials[] {Materials.Lead}, new int[] {45 * 100}, new int[] {}, Voltage.ULV, NI, 30 * 100); + addCentrifugeToMaterial(GTPP_CombType.IRON, new Materials[] {Materials.Iron}, new int[] {30 * 100}, new int[] {}, Voltage.ULV, NI, 30 * 100); + addCentrifugeToMaterial(GTPP_CombType.STEEL, new Materials[] {Materials.Steel}, new int[] {40 * 100}, new int[] {}, Voltage.ULV, NI, 30 * 100); + addCentrifugeToMaterial(GTPP_CombType.SILVER, new Materials[] {Materials.Silver}, new int[] {80 * 100}, new int[] {}, Voltage.ULV, NI, 30 * 100); + addCentrifugeToMaterial(GTPP_CombType.CRYOLITE, new Materials[] {Materials.Cryolite}, new int[] {80 * 100}, new int[] {}, Voltage.ULV, NI, 30 * 100); + }else { + addCentrifugeToMaterial(GTPP_CombType.SLAG, new Materials[] {Materials.Salt, Materials.RockSalt, Materials.Lepidolite, Materials.Spodumene, Materials.Monazite}, new int[] {100 * 100, 100 * 100, 100 * 100}, new int[] {}, Voltage.ULV, NI, 30 * 100); + addCentrifugeToMaterial(GTPP_CombType.COPPER, new Materials[] {Materials.Copper, Materials.Tetrahedrite, Materials.Chalcopyrite, Materials.Malachite, Materials.Pyrite, Materials.Stibnite}, new int[] {100 * 100, 85 * 100, 95 * 100, 80 * 100, 75 * 100, 65 * 100}, new int[] {}, Voltage.ULV, NI, 30 * 100); + addCentrifugeToMaterial(GTPP_CombType.TIN, new Materials[] {Materials.Tin, Materials.Cassiterite, Materials.CassiteriteSand}, new int[] {100 * 100, 85 * 100, 65 * 100}, new int[] {}, Voltage.ULV, NI, 30 * 100); + addCentrifugeToMaterial(GTPP_CombType.LEAD, new Materials[] {Materials.Lead, Materials.Galena}, new int[] {100 * 100, 75 * 100}, new int[] {}, Voltage.ULV, NI, 30 * 100); + if (ProcessingModSupport.aEnableGCMarsMats) { + addCentrifugeToMaterial(GTPP_CombType.IRON, new Materials[] {Materials.Iron, Materials.Magnetite, Materials.BrownLimonite, Materials.YellowLimonite, Materials.VanadiumMagnetite, Materials.MeteoricIron}, new int[] {100 * 100, 90 * 100, 85 * 100, 85 * 100, 80 * 100, 75 * 100}, new int[] {}, Voltage.ULV, NI, 30 * 100); + addCentrifugeToMaterial(GTPP_CombType.LEAD, new Materials[] {Materials.Steel, Materials.Magnetite, Materials.VanadiumMagnetite, Materials.Molybdenite, Materials.Molybdenum, Materials.MeteoricIron }, new int[] {100 * 100, 90 * 100, 80 * 100, 65 * 100, 65 * 100, 75 * 100}, new int[] {}, Voltage.ULV, NI, 30 * 100); + }else { + addCentrifugeToMaterial(GTPP_CombType.IRON, new Materials[] {Materials.Iron, Materials.Magnetite, Materials.BrownLimonite, Materials.YellowLimonite, Materials.VanadiumMagnetite, Materials.BandedIron}, new int[] {100 * 100, 90 * 100, 85 * 100, 85 * 100, 80 * 100, 85 * 100}, new int[] {}, Voltage.ULV, NI, 30 * 100); + addCentrifugeToMaterial(GTPP_CombType.STEEL, new Materials[] {Materials.Steel, Materials.Magnetite, Materials.VanadiumMagnetite, Materials.BandedIron, Materials.Molybdenite, Materials.Molybdenum }, new int[] {100 * 100, 90 * 100, 80 * 100, 85 * 100, 65 * 100, 65 * 100 }, new int[] {}, Voltage.ULV, NI, 30 * 100); + } + addCentrifugeToMaterial(GTPP_CombType.NICKEL, new Materials[] {Materials.Nickel, Materials.Garnierite, Materials.Pentlandite, Materials.Cobaltite, Materials.Wulfenite, Materials.Powellite}, new int[] {100 * 100, 85 * 100, 85 * 100, 80 * 100, 75 * 100, 75 * 100}, new int[] {}, Voltage.ULV, NI, 30 * 100); + addCentrifugeToMaterial(GTPP_CombType.ZINC, new Materials[] {Materials.Zinc, Materials.Sphalerite, Materials.Sulfur}, new int[] {100 * 100, 80 * 100, 75 * 100}, new int[] {}, Voltage.ULV, NI, 30 * 100); + addCentrifugeToMaterial(GTPP_CombType.SILVER, new Materials[] {Materials.Silver, Materials.Galena}, new int[] {100 * 100, 80 * 100}, new int[] {}, Voltage.ULV, NI, 30 * 100); + addCentrifugeToMaterial(GTPP_CombType.CRYOLITE, new Materials[] {Materials.Cryolite, Materials.Silver}, new int[] {100 * 100, 80 * 100}, new int[] {}, Voltage.ULV, NI, 30 * 100); + addCentrifugeToMaterial(GTPP_CombType.GOLD, new Materials[] {Materials.Gold}, new int[] {100 * 100}, new int[] {}, Voltage.ULV, NI, 30 * 100); + addCentrifugeToMaterial(GTPP_CombType.SULFUR, new Materials[] {Materials.Sulfur, Materials.Pyrite, Materials.Sphalerite}, new int[] {100 * 100, 90 * 100, 80 * 100}, new int[] {}, Voltage.ULV, NI, 30 * 100); + addCentrifugeToMaterial(GTPP_CombType.GALLIUM, new Materials[] {Materials.Gallium, Materials.Niobium}, new int[] { 80 * 100, 75 * 100}, new int[] {}, Voltage.ULV, NI, 30 * 100); + addCentrifugeToMaterial(GTPP_CombType.ARSENIC, new Materials[] {Materials.Arsenic, Materials.Bismuth, Materials.Antimony}, new int[] {80 * 100, 70 * 100, 70 * 100}, new int[] {}, Voltage.ULV , NI, 30 * 100); + } + + // Rare Metals Line + addProcessGT(GTPP_CombType.BAUXITE, new Materials[] {Materials.Bauxite, Materials.Aluminium}, Voltage.LV); + addProcessGT(GTPP_CombType.ALUMINIUM, new Materials[] {Materials.Aluminium, Materials.Bauxite}, Voltage.LV); + addProcessGT(GTPP_CombType.MANGANESE, new Materials[] {Materials.Manganese, Materials.Grossular, Materials.Spessartine, Materials.Pyrolusite, Materials.Tantalite}, Voltage.LV); + addProcessGT(GTPP_CombType.TITANIUM, new Materials[] {Materials.Titanium, Materials.Ilmenite, Materials.Bauxite, Materials.Rutile}, Voltage.EV); + addProcessGT(GTPP_CombType.MAGNESIUM, new Materials[] {Materials.Magnesium, Materials.Magnesite}, Voltage.LV); + addProcessGT(GTPP_CombType.CHROME, new Materials[] {Materials.Chrome, Materials.Ruby, Materials.Chromite, Materials.Redstone, Materials.Neodymium, Materials.Bastnasite}, Voltage.HV); + addProcessGT(GTPP_CombType.TUNGSTEN, new Materials[] {Materials.Tungsten, Materials.Tungstate, Materials.Scheelite, Materials.Lithium}, Voltage.IV); + addProcessGT(GTPP_CombType.PLATINUM, new Materials[] {Materials.Platinum, Materials.Cooperite, Materials.Palladium}, Voltage.HV); + addProcessGT(GTPP_CombType.MOLYBDENUM, new Materials[] {Materials.Molybdenum, Materials.Molybdenite, Materials.Powellite, Materials.Wulfenite}, Voltage.LV); + addChemicalProcess(GTPP_CombType.MOLYBDENUM, Materials.Osmium, Materials.Osmium, Voltage.IV); + addAutoclaveProcess(GTPP_CombType.MOLYBDENUM, Materials.Osmium, Voltage.IV, 5); + addProcessGT(GTPP_CombType.IRIDIUM, new Materials[] {Materials.Iridium, Materials.Osmium}, Voltage.IV); + addProcessGT(GTPP_CombType.OSMIUM, new Materials[] {Materials.Osmium, Materials.Iridium}, Voltage.IV); + addProcessGT(GTPP_CombType.LITHIUM, new Materials[] {Materials.Lithium, Materials.Aluminium}, Voltage.MV); + addProcessGT(GTPP_CombType.SALT, new Materials[] {Materials.Salt, Materials.RockSalt, Materials.Saltpeter}, Voltage.MV); + addProcessGT(GTPP_CombType.ELECTROTINE, new Materials[] {Materials.Electrotine, Materials.Electrum, Materials.Redstone}, Voltage.MV); + if(GT_Mod.gregtechproxy.mNerfedCombs) { + addCentrifugeToItemStack(GTPP_CombType.SALT, new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Salt, 1), GT_ModHandler.getModItem(MOD_ID_DC, "item.EdibleSalt", 1L, 0), ItemList.FR_Wax.get(1) }, new int[] {100 * 100, 50 * 100, 50 * 100}, Voltage.MV, 160); + }else { + addCentrifugeToMaterial(GTPP_CombType.BAUXITE, new Materials[] {Materials.Bauxite, Materials.Aluminium}, new int[] { 75 * 100, 55 * 100}, new int[] {}, Voltage.ULV , NI, 30 * 100); + addCentrifugeToMaterial(GTPP_CombType.ALUMINIUM, new Materials[] {Materials.Aluminium, Materials.Bauxite}, new int[] { 60 * 100, 80 * 100}, new int[] {}, Voltage.ULV , NI, 30 * 100); + addCentrifugeToMaterial(GTPP_CombType.MANGANESE, new Materials[] {Materials.Manganese, Materials.Grossular, Materials.Spessartine, Materials.Pyrolusite, Materials.Tantalite}, new int[] { 30 * 100, 100 * 100, 100 * 100, 100 * 100, 100 * 100}, new int[] {}, Voltage.ULV , NI, 30 * 100); + addCentrifugeToMaterial(GTPP_CombType.TITANIUM, new Materials[] {Materials.Titanium, Materials.Ilmenite, Materials.Bauxite, Materials.Rutile}, new int[] { 90 * 100, 80 * 100, 75 * 100, 75 * 100}, new int[] {}, Voltage.EV, NI, 30 * 100); + addCentrifugeToMaterial(GTPP_CombType.MAGNESIUM, new Materials[] {Materials.Magnesium, Materials.Magnesite}, new int[] { 100 * 100, 80 * 100}, new int[] {}, Voltage.ULV, NI, 30 * 100); + addCentrifugeToMaterial(GTPP_CombType.CHROME, new Materials[] {Materials.Chrome, Materials.Ruby, Materials.Chromite, Materials.Redstone, Materials.Neodymium, Materials.Bastnasite}, new int[] { 50 * 100, 100 * 100, 50 * 100, 100 * 100, 80 * 100, 80 * 100}, new int[] {}, Voltage.HV, NI, 30 * 100); + addCentrifugeToMaterial(GTPP_CombType.TUNGSTEN, new Materials[] {Materials.Tungsten, Materials.Tungstate, Materials.Scheelite, Materials.Lithium}, new int[] { 50 * 100, 80 * 100, 75 * 100, 75 * 100}, new int[] {}, Voltage.IV, NI, 30 * 100); + addCentrifugeToMaterial(GTPP_CombType.PLATINUM, new Materials[] {Materials.Platinum, Materials.Cooperite, Materials.Palladium}, new int[] { 40 * 100, 40 * 100, 40 * 100}, new int[] {}, Voltage.HV, NI, 30 * 100); + addCentrifugeToMaterial(GTPP_CombType.MOLYBDENUM, new Materials[] {Materials.Molybdenum, Materials.Molybdenite, Materials.Powellite, Materials.Wulfenite}, new int[] { 100 * 100, 80 * 100, 75 * 100}, new int[] {}, Voltage.ULV, NI, 30 * 100); + addCentrifugeToMaterial(GTPP_CombType.IRIDIUM, new Materials[] {Materials.Iridium, Materials.Osmium}, new int[] { 20 * 100, 15 * 100}, new int[] {}, Voltage.IV, NI, 30 * 100); + addCentrifugeToMaterial(GTPP_CombType.OSMIUM, new Materials[] {Materials.Osmium, Materials.Iridium}, new int[] { 25 * 100, 15 * 100}, new int[] {}, Voltage.IV, NI, 30 * 100); + addCentrifugeToMaterial(GTPP_CombType.LITHIUM, new Materials[] {Materials.Lithium, Materials.Aluminium}, new int[] { 85 * 100, 75 * 100}, new int[] {}, Voltage.MV, NI, 30 * 100); + addCentrifugeToItemStack(GTPP_CombType.SALT, new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Salt, 1), GT_ModHandler.getModItem(MOD_ID_DC, "item.EdibleSalt", 1L, 0),GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.RockSalt, 1), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Saltpeter, 1), ItemList.FR_Wax.get(1) }, new int[] {100 * 100, 50 * 100, 75 * 100, 65 * 100, 50 * 100}, Voltage.MV, 160); + addCentrifugeToMaterial(GTPP_CombType.ELECTROTINE, new Materials[] {Materials.Electrotine, Materials.Electrum, Materials.Redstone}, new int[] { 80, 75, 65}, new int[] {}, Voltage.MV, NI, 30 * 100); + } + + //Radioactive Line + addProcessGT(GTPP_CombType.ALMANDINE, new Materials[] {Materials.Almandine, Materials.Pyrope, Materials.Sapphire, Materials.GreenSapphire}, Voltage.LV); + addProcessGT(GTPP_CombType.URANIUM, new Materials[] {Materials.Uranium, Materials.Pitchblende, Materials.Uraninite, Materials.Uranium235}, Voltage.EV); + addProcessGT(GTPP_CombType.PLUTONIUM,new Materials[] {Materials.Plutonium, Materials.Uranium235}, Voltage.EV); + addChemicalProcess(GTPP_CombType.PLUTONIUM, Materials.Uranium235, Materials.Plutonium, Voltage.EV); + addProcessGT(GTPP_CombType.NAQUADAH,new Materials[] {Materials.Naquadah, Materials.NaquadahEnriched, Materials.Naquadria}, Voltage.IV); + addProcessGT(GTPP_CombType.NAQUADRIA,new Materials[] {Materials.Naquadria, Materials.NaquadahEnriched, Materials.Naquadah}, Voltage.LUV); + addProcessGT(GTPP_CombType.THORIUM,new Materials[] {Materials.Thorium, Materials.Uranium, Materials.Coal}, Voltage.EV); + addProcessGT(GTPP_CombType.LUTETIUM,new Materials[] {Materials.Lutetium, Materials.Thorium}, Voltage.IV); + addProcessGT(GTPP_CombType.AMERICIUM,new Materials[] {Materials.Americium, Materials.Lutetium}, Voltage.LUV); + addProcessGT(GTPP_CombType.NEUTRONIUM,new Materials[] {Materials.Neutronium, Materials.Americium}, Voltage.UV); + if(!GT_Mod.gregtechproxy.mNerfedCombs) { + addCentrifugeToMaterial(GTPP_CombType.ALMANDINE, new Materials[] {Materials.Almandine, Materials.Pyrope, Materials.Sapphire, Materials.GreenSapphire}, new int[] { 90 * 100, 80 * 100, 75 * 100, 75 * 100}, new int[] {}, Voltage.ULV, NI, 30 * 100); + addCentrifugeToMaterial(GTPP_CombType.URANIUM, new Materials[] {Materials.Uranium, Materials.Pitchblende, Materials.Uraninite, Materials.Uranium235}, new int[] { 50 * 100, 65 * 100, 75 * 100, 50 * 100}, new int[] {}, Voltage.EV, NI, 30 * 100); + addCentrifugeToMaterial(GTPP_CombType.PLUTONIUM,new Materials[] {Materials.Plutonium, Materials.Uranium235}, new int[] {10, 5}, new int[] {}, Voltage.EV, NI, 30 * 100); + addCentrifugeToMaterial(GTPP_CombType.NAQUADAH,new Materials[] {Materials.Naquadah, Materials.NaquadahEnriched, Materials.Naquadria}, new int[] {10 * 100, 5 * 100, 5 * 100}, new int[] {}, Voltage.IV, NI, 30 * 100); + addCentrifugeToMaterial(GTPP_CombType.NAQUADRIA,new Materials[] {Materials.Naquadria, Materials.NaquadahEnriched, Materials.Naquadah}, new int[] {10 * 100, 10 * 100, 15 * 100}, new int[] {}, Voltage.LUV, NI, 30 * 100); + addCentrifugeToMaterial(GTPP_CombType.THORIUM,new Materials[] {Materials.Thorium, Materials.Uranium, Materials.Coal}, new int[] {75 * 100, 75 * 100 * 100, 95 * 100}, new int[] {}, Voltage.EV, NI, 30 * 100); + addCentrifugeToMaterial(GTPP_CombType.LUTETIUM,new Materials[] {Materials.Lutetium, Materials.Thorium}, new int[] {35 * 100, 55 * 100}, new int[] {}, Voltage.IV, NI, 30 * 100); + addCentrifugeToMaterial(GTPP_CombType.AMERICIUM,new Materials[] {Materials.Americium, Materials.Lutetium}, new int[] {25 * 100, 45 * 100}, new int[] {}, Voltage.LUV, NI, 30 * 100); + addCentrifugeToMaterial(GTPP_CombType.NEUTRONIUM,new Materials[] {Materials.Neutronium, Materials.Americium}, new int[] {15 * 100, 35 * 100}, new int[] {}, Voltage.UV, NI, 30 * 100); + } + + // Twilight + addCentrifugeToItemStack(GTPP_CombType.NAGA, new ItemStack[] { GT_ModHandler.getModItem("MagicBees", "propolis", 1L, 4), GT_ModHandler.getModItem(MOD_ID_DC, "item.NagaScaleChip", 1L, 0), GT_ModHandler.getModItem(MOD_ID_DC, "item.NagaScaleFragment", 1L, 0), ItemList.FR_Wax.get(1)}, new int[]{5 * 100, 33 * 100, 8 * 100, 30 * 100}, Voltage.MV); + addCentrifugeToItemStack(GTPP_CombType.LICH, new ItemStack[] { GT_ModHandler.getModItem("MagicBees", "propolis", 1L, 5), GT_ModHandler.getModItem(MOD_ID_DC, "item.LichBoneChip", 1L, 0), GT_ModHandler.getModItem(MOD_ID_DC, "item.LichBoneFragment", 1L, 0), ItemList.FR_Wax.get(1)}, new int[]{5 * 100, 33 * 100, 8 * 100, 30 * 100}, Voltage.HV); + addCentrifugeToItemStack(GTPP_CombType.HYDRA, new ItemStack[] { GT_ModHandler.getModItem("MagicBees", "propolis", 1L, 1), GT_ModHandler.getModItem(MOD_ID_DC, "item.FieryBloodDrop", 1L, 0), GTPP_Bees.drop.getStackForType(GTPP_DropType.HYDRA), ItemList.FR_Wax.get(1)}, new int[]{5 * 100, 33 * 100, 8 * 100, 30 * 100}, Voltage.HV); + addCentrifugeToItemStack(GTPP_CombType.URGHAST, new ItemStack[] { GT_ModHandler.getModItem("MagicBees", "propolis", 1L, 2), GT_ModHandler.getModItem(MOD_ID_DC, "item.CarminiteChip", 1L, 0), GT_ModHandler.getModItem(MOD_ID_DC, "item.CarminiteFragment", 1L, 0), ItemList.FR_Wax.get(1)}, new int[]{5 * 100, 33 * 100, 8 * 100, 30 * 100}, Voltage.EV); + addCentrifugeToItemStack(GTPP_CombType.SNOWQUEEN, new ItemStack[] { GT_ModHandler.getModItem("MagicBees", "propolis", 1L, 3), GT_ModHandler.getModItem(MOD_ID_DC, "item.SnowQueenBloodDrop", 1L, 0), GTPP_Bees.drop.getStackForType(GTPP_DropType.SNOW_QUEEN), ItemList.FR_Wax.get(1)}, new int[]{5 * 100, 33 * 100, 8 * 100, 30 * 100}, Voltage.EV); + + // HEE + addCentrifugeToItemStack(GTPP_CombType.ENDDUST, new ItemStack[] { GT_ModHandler.getModItem("MagicBees", "wax", 1L, 0), GTPP_Bees.propolis.getStackForType(GTPP_PropolisType.End), GTPP_Bees.drop.getStackForType(GTPP_DropType.ENDERGOO), }, new int[]{20 * 100, 15 * 100, 10 * 100}, Voltage.HV); + addCentrifugeToItemStack(GTPP_CombType.STARDUST, new ItemStack[] { GT_ModHandler.getModItem("MagicBees", "wax", 1L, 0), GTPP_Bees.propolis.getStackForType(GTPP_PropolisType.Stardust), GTPP_Bees.drop.getStackForType(GTPP_DropType.ENDERGOO) }, new int[]{20 * 100, 15 * 100, 10 * 100}, Voltage.HV); + addCentrifugeToItemStack(GTPP_CombType.ECTOPLASMA, new ItemStack[] { GT_ModHandler.getModItem("MagicBees", "wax", 1L, 0), GTPP_Bees.propolis.getStackForType(GTPP_PropolisType.Ectoplasma), GTPP_Bees.drop.getStackForType(GTPP_DropType.ENDERGOO) }, new int[]{25 * 100, 10 * 100, 15 * 100}, Voltage.EV); + addCentrifugeToItemStack(GTPP_CombType.ARCANESHARD, new ItemStack[] { GT_ModHandler.getModItem("MagicBees", "wax", 1L, 0), GTPP_Bees.propolis.getStackForType(GTPP_PropolisType.Arcaneshard), GTPP_Bees.drop.getStackForType(GTPP_DropType.ENDERGOO) }, new int[]{25 * 100, 10 * 100, 15 * 100}, Voltage.EV); + addCentrifugeToItemStack(GTPP_CombType.DRAGONESSENCE, new ItemStack[] { GT_ModHandler.getModItem("MagicBees", "wax", 1L, 0), GTPP_Bees.propolis.getStackForType(GTPP_PropolisType.Dragonessence), GTPP_Bees.drop.getStackForType(GTPP_DropType.ENDERGOO) }, new int[]{30 * 100, (int) (7.5 * 100), 20 * 100}, Voltage.IV); + addCentrifugeToItemStack(GTPP_CombType.ENDERMAN, new ItemStack[] { GT_ModHandler.getModItem("MagicBees", "wax", 1L, 0), GTPP_Bees.propolis.getStackForType(GTPP_PropolisType.Enderman), GTPP_Bees.drop.getStackForType(GTPP_DropType.ENDERGOO) }, new int[]{3000, 750, 2000}, Voltage.IV); + addCentrifugeToItemStack(GTPP_CombType.SILVERFISH, new ItemStack[] { GT_ModHandler.getModItem("MagicBees", "wax", 1L, 0), GTPP_Bees.propolis.getStackForType(GTPP_PropolisType.Silverfish), GTPP_Bees.drop.getStackForType(GTPP_DropType.ENDERGOO), new ItemStack(Items.spawn_egg, 1,60) }, new int[]{25 * 100, 10 * 100, 20 * 100, 15 * 100}, Voltage.EV); + addProcessGT(GTPP_CombType.ENDIUM,new Materials[] {Materials.HeeEndium}, Voltage.HV); + if(!GT_Mod.gregtechproxy.mNerfedCombs) { + addCentrifugeToMaterial(GTPP_CombType.ENDIUM,new Materials[] {Materials.HeeEndium}, new int[] {50 * 100}, new int[] {}, Voltage.HV, GT_ModHandler.getModItem("MagicBees", "wax", 1L, 0), 20 * 100); + } + addCentrifugeToItemStack(GTPP_CombType.RUNEI, new ItemStack[] { GT_ModHandler.getModItem("MagicBees", "wax", 1L, 0), GT_ModHandler.getModItem(MOD_ID_DC, "item.RuneOfPowerFragment", 1L, 0), GT_ModHandler.getModItem(MOD_ID_DC, "item.RuneOfAgilityFragment", 1L, 0), GT_ModHandler.getModItem(MOD_ID_DC, "item.RuneOfVigorFragment", 1L, 0), GT_ModHandler.getModItem(MOD_ID_DC, "item.RuneOfDefenseFragment", 1L, 0), GT_ModHandler.getModItem(MOD_ID_DC, "item.RuneOfMagicFragment", 1L, 0) }, new int[]{25 * 100, 5 * 100, 5 * 100, 5 * 100, 5 * 100, 5 * 100}, Voltage.IV); + addCentrifugeToItemStack(GTPP_CombType.RUNEII, new ItemStack[] { GT_ModHandler.getModItem("MagicBees", "wax", 1L, 0), GT_ModHandler.getModItem(MOD_ID_DC, "item.RuneOfVoidFragment", 1L, 0) }, new int[]{50 * 100, (int) (2.5 * 100)}, Voltage.IV); + addCentrifugeToItemStack(GTPP_CombType.FIREESSENSE, new ItemStack[] { GT_ModHandler.getModItem("MagicBees", "wax", 1L, 0), GTPP_Bees.propolis.getStackForType(GTPP_PropolisType.Fireessence), GTPP_Bees.drop.getStackForType(GTPP_DropType.ENDERGOO) }, new int[]{30 * 100, (int) (7.5 * 100), 20 * 100}, Voltage.IV); + + //Space Line + addCentrifugeToItemStack(GTPP_CombType.SPACE, new ItemStack[] { ItemList.FR_Wax.get(1L), ItemList.FR_RefractoryWax.get(1L), GTPP_Bees.drop.getStackForType(GTPP_DropType.OXYGEN), GT_ModHandler.getModItem(MOD_ID_DC, "item.CoinSpace", 1L, 0)}, new int[]{50 * 100, 30 * 100, 15 * 100, 5 * 100}, Voltage.HV); + addProcessGT(GTPP_CombType.METEORICIRON, new Materials[] {Materials.MeteoricIron, Materials.Iron}, Voltage.HV); + addProcessGT(GTPP_CombType.DESH, new Materials[] {Materials.Desh, Materials.Titanium}, Voltage.EV); + addProcessGT(GTPP_CombType.LEDOX, new Materials[] {Materials.Ledox, Materials.CallistoIce, Materials.Lead}, Voltage.EV); + addProcessGT(GTPP_CombType.CALLISTOICE, new Materials[] {Materials.CallistoIce, Materials.Ledox, Materials.Lead}, Voltage.IV); + addProcessGT(GTPP_CombType.MYTRYL, new Materials[] {Materials.Mytryl, Materials.Mithril}, Voltage.IV); + addProcessGT(GTPP_CombType.QUANTIUM, new Materials[] {Materials.Quantium, Materials.Osmium}, Voltage.IV); + addProcessGT(GTPP_CombType.ORIHARUKON, new Materials[] {Materials.Oriharukon, Materials.Lead}, Voltage.IV); + addProcessGT(GTPP_CombType.MYSTERIOUSCRYSTAL, new Materials[] {Materials.MysteriousCrystal, Materials.Emerald}, Voltage.LUV); + addCentrifugeToMaterial(GTPP_CombType.MYSTERIOUSCRYSTAL, new Materials[] {Materials.MysteriousCrystal, Materials.Emerald}, new int[] {(GT_Mod.gregtechproxy.mNerfedCombs ? 10 : 40) * 100, (GT_Mod.gregtechproxy.mNerfedCombs ? 15 : 50) * 100}, new int[] {}, Voltage.LUV, 512, NI, 50 * 100); + addProcessGT(GTPP_CombType.BLACKPLUTONIUM, new Materials[] {Materials.BlackPlutonium, Materials.Plutonium}, Voltage.LUV); + addProcessGT(GTPP_CombType.TRINIUM, new Materials[] {Materials.Trinium, Materials.Iridium}, Voltage.ZPM); + if(!GT_Mod.gregtechproxy.mNerfedCombs) { + addCentrifugeToMaterial(GTPP_CombType.METEORICIRON, new Materials[] {Materials.MeteoricIron, Materials.Iron}, new int[] {85 * 100, 100 * 100}, new int[] {}, Voltage.HV, NI, 30 * 100); + addCentrifugeToMaterial(GTPP_CombType.DESH, new Materials[] {Materials.Desh, Materials.Titanium}, new int[] {75 * 100, 50 * 100}, new int[] {}, Voltage.EV, NI, 30 * 100); + addCentrifugeToMaterial(GTPP_CombType.LEDOX, new Materials[] {Materials.Ledox, Materials.CallistoIce, Materials.Lead}, new int[] {65 * 100, 55 * 100, 85 *100}, new int[] {}, Voltage.EV, NI, 30 * 100); + addCentrifugeToMaterial(GTPP_CombType.CALLISTOICE, new Materials[] {Materials.CallistoIce, Materials.Ledox, Materials.Lead}, new int[] {65 * 100, 75 * 100, 100 *100}, new int[] {}, Voltage.IV, NI, 30 * 100); + addCentrifugeToMaterial(GTPP_CombType.MYTRYL, new Materials[] {Materials.Mytryl, Materials.Mithril}, new int[] {55 * 100, 50 * 100}, new int[] {}, Voltage.IV, NI, 30 * 100); + addCentrifugeToMaterial(GTPP_CombType.QUANTIUM, new Materials[] {Materials.Quantium, Materials.Osmium}, new int[] {50 * 100, 60 * 100}, new int[] {}, Voltage.IV, NI, 30 * 100); + addCentrifugeToMaterial(GTPP_CombType.ORIHARUKON, new Materials[] {Materials.Oriharukon, Materials.Lead}, new int[] {50 * 100, 75 * 100}, new int[] {}, Voltage.IV, NI, 30 * 100); + addCentrifugeToMaterial(GTPP_CombType.BLACKPLUTONIUM, new Materials[] {Materials.BlackPlutonium, Materials.Plutonium}, new int[] {25 * 100, 50 * 100}, new int[] {}, Voltage.LUV, NI, 30 * 100); + addCentrifugeToMaterial(GTPP_CombType.TRINIUM, new Materials[] {Materials.Trinium, Materials.Iridium}, new int[] {35 * 100, 45 * 100}, new int[] {}, Voltage.ZPM, NI, 30 * 100); + } + + //Planet Line + addCentrifugeToItemStack(GTPP_CombType.MOON, new ItemStack[] {ItemList.FR_Wax.get(1L), GT_ModHandler.getModItem(MOD_ID_DC, "item.MoonStoneDust", 1L, 0)}, new int[]{50 * 100, 30 * 100 }, Voltage.MV, 300); + addCentrifugeToItemStack(GTPP_CombType.MARS, new ItemStack[] {ItemList.FR_Wax.get(1L), GT_ModHandler.getModItem(MOD_ID_DC, "item.MarsStoneDust", 1L, 0)}, new int[]{50 * 100, 30 * 100 }, Voltage.HV, 300); + addCentrifugeToItemStack(GTPP_CombType.JUPITER, new ItemStack[] { GT_ModHandler.getModItem(MOD_ID_DC, "item.IoStoneDust", 1L, 0), GT_ModHandler.getModItem(MOD_ID_DC, "item.EuropaIceDust", 1L, 0), GT_ModHandler.getModItem(MOD_ID_DC, "item.EuropaStoneDust", 1L, 0), GT_ModHandler.getModItem(MOD_ID_DC, "item.GanymedeStoneDust", 1L, 0), GT_ModHandler.getModItem(MOD_ID_DC, "item.CallistoStoneDust", 1L, 0), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.CallistoIce, 1L), ItemList.FR_Wax.get(1L)}, new int[]{30 * 100, 30 * 100, 30 * 100, 30 * 100, 30 * 100, 5 * 100, 50 * 100 }, Voltage.HV, 300); + addCentrifugeToItemStack(GTPP_CombType.MERCURY, new ItemStack[] {ItemList.FR_Wax.get(1L), GT_ModHandler.getModItem(MOD_ID_DC, "item.MercuryCoreDust", 1L, 0), GT_ModHandler.getModItem(MOD_ID_DC, "item.MercuryStoneDust", 1L, 0)}, new int[]{50 * 100, 30 * 100, 30 * 100 }, Voltage.EV, 300); + addCentrifugeToItemStack(GTPP_CombType.VENUS, new ItemStack[] {ItemList.FR_Wax.get(1L), GT_ModHandler.getModItem(MOD_ID_DC, "item.VenusStoneDust", 1L, 0)}, new int[]{50 * 100, 30 * 100 }, Voltage.EV, 300); + addCentrifugeToItemStack(GTPP_CombType.SATURN, new ItemStack[] {ItemList.FR_Wax.get(1L), GT_ModHandler.getModItem(MOD_ID_DC, "item.EnceladusStoneDust", 1L, 0), GT_ModHandler.getModItem(MOD_ID_DC, "item.TitanStoneDust", 1L, 0)}, new int[]{50 * 100, 30 * 100, 30 * 100 }, Voltage.IV, 300); + addCentrifugeToItemStack(GTPP_CombType.URANUS, new ItemStack[] {ItemList.FR_Wax.get(1L), GT_ModHandler.getModItem(MOD_ID_DC, "item.MirandaStoneDust", 1L, 0), GT_ModHandler.getModItem(MOD_ID_DC, "item.OberonStoneDust", 1L, 0)}, new int[]{50 * 100, 30 * 100, 30 * 100 }, Voltage.IV, 300); + addCentrifugeToItemStack(GTPP_CombType.NEPTUN, new ItemStack[] {ItemList.FR_Wax.get(1L), GT_ModHandler.getModItem(MOD_ID_DC, "item.ProteusStoneDust", 1L, 0), GT_ModHandler.getModItem(MOD_ID_DC, "item.TritonStoneDust", 1L, 0)}, new int[]{50 * 100, 30 * 100, 30 * 100 }, Voltage.IV, 300); + addCentrifugeToItemStack(GTPP_CombType.PLUTO, new ItemStack[] {ItemList.FR_Wax.get(1L), GT_ModHandler.getModItem(MOD_ID_DC, "item.PlutoStoneDust", 1L, 0), GT_ModHandler.getModItem(MOD_ID_DC, "item.PlutoIceDust", 1L, 0)}, new int[]{50 * 100, 30 * 100, 30 * 100 }, Voltage.LUV, 300); + addCentrifugeToItemStack(GTPP_CombType.HAUMEA, new ItemStack[] {ItemList.FR_Wax.get(1L), GT_ModHandler.getModItem(MOD_ID_DC, "item.HaumeaStoneDust", 1L, 0)}, new int[]{50 * 100, 30 * 100 }, Voltage.LUV, 300); + addCentrifugeToItemStack(GTPP_CombType.MAKEMAKE, new ItemStack[] {ItemList.FR_Wax.get(1L), GT_ModHandler.getModItem(MOD_ID_DC, "item.MakeMakeStoneDust", 1L, 0)}, new int[]{50 * 100, 30 * 100 }, Voltage.LUV, 300); + addCentrifugeToItemStack(GTPP_CombType.CENTAURI, new ItemStack[] {ItemList.FR_Wax.get(1L), GT_ModHandler.getModItem(MOD_ID_DC, "item.CentauriASurfaceDust", 1L, 0), GT_ModHandler.getModItem(MOD_ID_DC, "item.CentauriAStoneDust", 1L, 0)}, new int[]{50 * 100, 30 * 100, 30 * 100 }, Voltage.ZPM, 300); + addCentrifugeToItemStack(GTPP_CombType.TCETI, new ItemStack[] {ItemList.FR_Wax.get(1L), GT_ModHandler.getModItem(MOD_ID_DC, "item.TCetiEStoneDust", 1L, 0)}, new int[]{50 * 100, 30 * 100 }, Voltage.ZPM, 300); + addCentrifugeToItemStack(GTPP_CombType.BARNARDA, new ItemStack[] {ItemList.FR_Wax.get(1L), GT_ModHandler.getModItem(MOD_ID_DC, "item.BarnardaEStoneDust", 1L, 0), GT_ModHandler.getModItem(MOD_ID_DC, "item.BarnardaFStoneDust", 1L, 0)}, new int[]{50 * 100, 30 * 100, 30 * 100 }, Voltage.ZPM, 300); + addCentrifugeToItemStack(GTPP_CombType.VEGA, new ItemStack[] {ItemList.FR_Wax.get(1L), GT_ModHandler.getModItem(MOD_ID_DC, "item.VegaBStoneDust", 1L, 0)}, new int[]{50 * 100, 30 * 100 }, Voltage.ZPM, 300); + + //Infinity Line + addCentrifugeToMaterial(GTPP_CombType.COSMICNEUTRONIUM, new Materials[] {Materials.CosmicNeutronium, Materials.Neutronium}, new int[] {(int) (0.5 * 100), 1 * 100}, new int[] {}, Voltage.UHV, 12000, NI, 50 * 100); + addCentrifugeToMaterial(GTPP_CombType.INFINITYCATALYST, new Materials[] {Materials.InfinityCatalyst, Materials.Neutronium}, new int[] {(int) (0.05 * 100), 1 * 100}, new int[] {}, Voltage.UEV, 48000, NI, 50 * 100); + addCentrifugeToMaterial(GTPP_CombType.INFINITY, new Materials[] {Materials.Infinity, Materials.InfinityCatalyst}, new int[] {(int) (0.01 * 100), (int) (0.05 * 100)}, new int[] {}, Voltage.UIV, 96000, NI, 50 * 100); + } + + /** + * Currently use for STEEL, GOLD, MOLYBDENUM, PLUTONIUM + * **/ + public void addChemicalProcess(GTPP_CombType comb, Materials aInMaterial, Materials aOutMaterial, Voltage volt){ + if(GT_OreDictUnificator.get(OrePrefixes.crushedPurified, aOutMaterial, 4) == NI) return; + RA.addChemicalRecipe(GT_Utility.copyAmount(9, getStackForType(comb)), GT_OreDictUnificator.get(OrePrefixes.crushed, aInMaterial, 1), volt.getComplexChemical(), aInMaterial.mOreByProducts.isEmpty() ? null : aInMaterial.mOreByProducts.get(0).getMolten(144), GT_OreDictUnificator.get(OrePrefixes.crushedPurified, aOutMaterial, 4), NI, volt.getComplexTime(), volt.getChemicalEnergy(), volt.compareTo(Voltage.IV) > 0); + } + + /** + * Currently only used for GTPP_CombType.MOLYBDENUM + * @param circuitNumber should not conflict with addProcessGT + * + * **/ + public void addAutoclaveProcess(GTPP_CombType comb, Materials aMaterial, Voltage volt, int circuitNumber){ + if(GT_OreDictUnificator.get(OrePrefixes.crushedPurified, aMaterial, 4) == NI) return; + RA.addAutoclaveRecipe(GT_Utility.copyAmount(9, getStackForType(comb)), GT_Utility.getIntegratedCircuit(circuitNumber), Materials.UUMatter.getFluid(Math.max(1, ((aMaterial.getMass()+volt.getUUAmplifier())/10))), GT_OreDictUnificator.get(OrePrefixes.crushedPurified, aMaterial, 4), 10000, (int) (aMaterial.getMass() * 128), volt.getAutoClaveEnergy(), volt.compareTo(Voltage.HV) > 0); + } + + /** + * this only adds Chemical and AutoClave process. + * If you need Centrifuge recipe. use addCentrifugeToMaterial or addCentrifugeToItemStack + * @param volt This determine the required Tier of process for this recipes. This decide the required aEU/t, progress time, required additional UU-Matter, requirement of cleanRoom, needed fluid stack for Chemical. + * @param aMaterial result of Material that should be generated by this process. + * **/ + public void addProcessGT(GTPP_CombType comb, Materials[] aMaterial, Voltage volt) { + ItemStack tComb = getStackForType(comb); + for(int i=0; i < aMaterial.length; i++) { + if(GT_OreDictUnificator.get(OrePrefixes.crushedPurified, aMaterial[i], 4)!= NI) { + RA.addChemicalRecipe(GT_Utility.copyAmount(9, tComb), GT_OreDictUnificator.get(OrePrefixes.crushed, aMaterial[i], 1), volt.getComplexChemical(), aMaterial[i].mOreByProducts.isEmpty() ? null : aMaterial[i].mOreByProducts.get(0).getMolten(144), GT_OreDictUnificator.get(OrePrefixes.crushedPurified, aMaterial[i], 4), NI, volt.getComplexTime(), volt.getChemicalEnergy(), volt.compareTo(Voltage.IV) > 0); + RA.addAutoclaveRecipe(GT_Utility.copyAmount(9, tComb), GT_Utility.getIntegratedCircuit(i+1), Materials.UUMatter.getFluid(Math.max(1, ((aMaterial[i].getMass()+volt.getUUAmplifier())/10))), GT_OreDictUnificator.get(OrePrefixes.crushedPurified, aMaterial[i], 4), 10000, (int) (aMaterial[i].getMass() * 128), volt.getAutoClaveEnergy(), volt.compareTo(Voltage.HV) > 0); + } + } + } + + /** + * this method only adds Centrifuge based on Material. If volt is lower than MV than it will also adds forestry centrifuge recipe. + * @param comb BeeComb + * @param aMaterial resulting Material of processing. can be more than 6. but over 6 will be ignored in Gregtech Centrifuge. + * @param chance chance to get result, 10000 == 100% + * @param volt required Voltage Tier for this recipe, this also affect the duration, amount of UU-Matter, and needed liquid type and amount for chemical reactor + * @param stackSize This parameter can be null, in that case stack size will be just 1. This handle the stackSize of the resulting Item, and Also the Type of Item. if this value is multiple of 9, than related Material output will be dust, if this value is multiple of 4 than output will be Small dust, else the output will be Tiny dust + * @param beeWax if this is null, than the comb will product default Bee wax. But if aMaterial is more than 5, beeWax will be ignored in Gregtech Centrifuge. + * @param waxChance have same format like "chance" + **/ + public void addCentrifugeToMaterial(GTPP_CombType comb, Materials[] aMaterial, int[] chance, int[] stackSize, Voltage volt, ItemStack beeWax, int waxChance) { + addCentrifugeToMaterial(comb, aMaterial, chance, stackSize, volt, volt.getSimpleTime(), beeWax, waxChance); + } + public void addCentrifugeToMaterial(GTPP_CombType comb, Materials[] aMaterial, int[] chance, int[] stackSize, Voltage volt, int duration, ItemStack beeWax, int waxChance) { + ItemStack[] aOutPut = new ItemStack[aMaterial.length+1]; + stackSize = Arrays.copyOf(stackSize, aMaterial.length); + chance = Arrays.copyOf(chance, aOutPut.length); + chance[chance.length - 1] = waxChance; + for(int i = 0; i < (aMaterial.length); i++) { + if(chance[i] == 0) { + continue; + } + if(Math.max(1, stackSize[i]) % 9 == 0) { + aOutPut[i] = GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial[i], (Math.max(1, stackSize[i])/9) ); + }else if(Math.max(1, stackSize[i]) % 4 == 0) { + aOutPut[i] = GT_OreDictUnificator.get(OrePrefixes.dustSmall, aMaterial[i], (Math.max(1, stackSize[i])/4) ); + }else { + aOutPut[i] = GT_OreDictUnificator.get(OrePrefixes.dustTiny, aMaterial[i], Math.max(1, stackSize[i])); + } + } + if(beeWax != NI) { + aOutPut[aOutPut.length - 1] = beeWax; + }else { + aOutPut[aOutPut.length - 1] = ItemList.FR_Wax.get(1); + } + + addCentrifugeToItemStack(comb, aOutPut, chance, volt, duration); + } + + /** + * @param volt required Tier of system. If it's lower than MV, it will also add forestry centrifuge. + * @param aItem can be more than 6. but Over 6 will be ignored in Gregtech Centrifuge. + **/ + public void addCentrifugeToItemStack(GTPP_CombType comb, ItemStack[] aItem, int[] chance, Voltage volt) { + addCentrifugeToItemStack(comb, aItem, chance, volt, volt.getSimpleTime()); + } + public void addCentrifugeToItemStack(GTPP_CombType comb, ItemStack[] aItem, int[] chance, Voltage volt, int duration) { + ItemStack tComb = getStackForType(comb); + Builder Product = new ImmutableMap.Builder(); + for(int i=0; i < aItem.length; i++) { + if(aItem[i] == NI) { continue; } + Product.put(aItem[i],chance[i]/10000.0f); + } + + if(volt.compareTo(Voltage.MV) < 0 || !GT_Mod.gregtechproxy.mNerfedCombs) { + RecipeManagers.centrifugeManager.addRecipe(40, tComb, Product.build()); + } + + aItem = Arrays.copyOf(aItem, 6); + if(aItem.length > 6) { + chance = Arrays.copyOf(chance, 6); + } + + RA.addCentrifugeRecipe(tComb, NI, NF, NF, aItem[0], aItem[1], aItem[2], aItem[3], aItem[4], aItem[5], chance, duration, volt.getSimpleEnergy()); + } + + enum Voltage { + ULV, LV, MV, + HV, EV, IV, + LUV, ZPM, UV, + UHV, UEV, UIV, + UMV, UXV, OpV, + MAX; + public int getVoltage() { + return (int) V[this.ordinal()]; + } + /**@return aEU/t needed for chemical and autoclave process related to the Tier**/ + public int getChemicalEnergy() { + return this.getVoltage()*3/4; + } + public int getAutoClaveEnergy() { + return (int) ((this.getVoltage()*3/4) * (Math.max(1, Math.pow(2, 5 - this.ordinal())))); + } + /**@return FluidStack needed for chemical process related to the Tier**/ + public FluidStack getComplexChemical() { + if(this.compareTo(Voltage.MV) < 0) { + return Materials.Water.getFluid((this.compareTo(Voltage.ULV) > 0) ? 1000 : 500); + }else if(this.compareTo(Voltage.HV) < 0) { + return GT_ModHandler.getDistilledWater(1000L); + }else if(this.compareTo(Voltage.LUV) < 0) { + return Materials.Mercury.getFluid((long) (Math.pow(2, this.compareTo(Voltage.HV)) * L)); + }else if(this.compareTo(Voltage.UHV) < 0) { + return FluidRegistry.getFluidStack("mutagen", (int) (Math.pow(2, this.compareTo(Voltage.LUV)) * L)); + }else { + return NF; + } + } + /**@return additional required UU-Matter amount for Autoclave process related to the Tier**/ + public int getUUAmplifier() { + return 9 * ( (this.compareTo(Voltage.MV) < 0) ? 1 : this.compareTo(Voltage.MV)); + } + /**@return duration needed for Chemical process related to the Tier**/ + public int getComplexTime() { + return 64 + this.ordinal() * 32; + } + /**@return duration needed for Centrifuge process related to the Tier**/ + public int getSimpleTime() { + if(!GT_Mod.gregtechproxy.mNerfedCombs) { + return 96 + this.ordinal() * 32; + } else { + //ULV, LV needs 128ticks, MV need 256 ticks, HV need 384 ticks, EV need 512 ticks, IV need 640 ticks + return 128 * (Math.max(1, this.ordinal())); + } + } + /**@return aEU/t needed for Centrifuge process related to the Tier**/ + public int getSimpleEnergy() { + if(this == Voltage.ULV) { + return 5; + }else { + return (int) (this.getVoltage() / 16) * 15; + } + } + } +} diff --git a/src/main/java/gtPlusPlus/xmod/forestry/bees/items/output/GTPP_Drop.java b/src/main/java/gtPlusPlus/xmod/forestry/bees/items/output/GTPP_Drop.java new file mode 100644 index 0000000000..3cd65969d8 --- /dev/null +++ b/src/main/java/gtPlusPlus/xmod/forestry/bees/items/output/GTPP_Drop.java @@ -0,0 +1,136 @@ +package gtPlusPlus.xmod.forestry.bees.items.output; + +import static gregtech.api.enums.GT_Values.MOD_ID_DC; + +import java.util.List; + +import cpw.mods.fml.common.Loader; +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import forestry.api.core.Tabs; +import forestry.api.recipes.RecipeManagers; +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.Materials; +import gregtech.api.util.GT_ModHandler; +import gtPlusPlus.core.lib.CORE; +import gtPlusPlus.xmod.forestry.bees.handler.GTPP_DropType; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; + +public class GTPP_Drop extends Item { + + @SideOnly(Side.CLIENT) + private IIcon secondIcon; + + public GTPP_Drop() { + super(); + this.setCreativeTab(Tabs.tabApiculture); + this.setHasSubtypes(true); + this.setUnlocalizedName("gtpp.drop"); + GameRegistry.registerItem(this, "gtpp.drop", CORE.MODID); + } + + public ItemStack getStackForType(GTPP_DropType type) { + return new ItemStack(this, 1, type.ordinal()); + } + + public ItemStack getStackForType(GTPP_DropType type, int count) { + return new ItemStack(this, count, type.ordinal()); + } + + @Override + @SideOnly(Side.CLIENT) + public void getSubItems(Item item, CreativeTabs tabs, List list) { + for (GTPP_DropType type : GTPP_DropType.values()) { + if (type.showInList) { + list.add(this.getStackForType(type)); + } + } + } + + @Override + @SideOnly(Side.CLIENT) + public boolean requiresMultipleRenderPasses() { + return true; + } + + @Override + public int getRenderPasses(int meta) { + return 2; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister par1IconRegister) { + this.itemIcon = par1IconRegister.registerIcon("forestry:honeyDrop.0"); + this.secondIcon = par1IconRegister.registerIcon("forestry:honeyDrop.1"); + } + + @Override + public IIcon getIcon(ItemStack stack, int pass) { + return (pass == 0) ? itemIcon : secondIcon; + } + + @Override + @SideOnly(Side.CLIENT) + public int getColorFromItemStack(ItemStack stack, int pass) { + int meta = Math.max(0, Math.min(GTPP_DropType.values().length - 1, stack.getItemDamage())); + int colour = GTPP_DropType.values()[meta].getColours()[0]; + + if (pass >= 1) { + colour = GTPP_DropType.values()[meta].getColours()[1]; + } + + return colour; + } + + @Override + public String getItemStackDisplayName(ItemStack stack) { + return GTPP_DropType.values()[stack.getItemDamage()].getName(); + } + public void initDropsRecipes() { + ItemStack tDrop; + + tDrop = getStackForType(GTPP_DropType.OIL); + addProcessLV(tDrop, Materials.OilHeavy.getFluid(100L), GT_ModHandler.getModItem("Forestry", "propolis", 1L, 0), 3000, 8); + RecipeManagers.squeezerManager.addRecipe(40, new ItemStack[]{tDrop}, Materials.OilHeavy.getFluid(100L), GT_ModHandler.getModItem("Forestry", "propolis", 1L, 0), 30); + tDrop = getStackForType(GTPP_DropType.COOLANT); + addProcessLV(tDrop, new FluidStack(FluidRegistry.getFluid("ic2coolant"), 100), GT_ModHandler.getModItem("MagicBees", "propolis", 1L, 0), 3000, 8); + RecipeManagers.squeezerManager.addRecipe(40, new ItemStack[]{tDrop}, new FluidStack(FluidRegistry.getFluid("ic2coolant"), 100), GT_ModHandler.getModItem("MagicBees", "propolis", 1L, 0), 30); + tDrop = getStackForType(GTPP_DropType.HOT_COOLANT); + addProcessLV(tDrop, new FluidStack(FluidRegistry.getFluid("ic2hotcoolant"), 100), GT_ModHandler.getModItem("MagicBees", "propolis", 1L, 2), 3000, 8); + RecipeManagers.squeezerManager.addRecipe(40, new ItemStack[]{tDrop}, new FluidStack(FluidRegistry.getFluid("ic2hotcoolant"), 100), GT_ModHandler.getModItem("MagicBees", "propolis", 1L, 2), 30); + tDrop = getStackForType(GTPP_DropType.SNOW_QUEEN); + addProcessMV(tDrop, Materials.FierySteel.getFluid(200L), GT_ModHandler.getModItem(MOD_ID_DC, "SnowQueenBloodDrop", 1L, 0), 1500, 48); + tDrop = getStackForType(GTPP_DropType.LAPIS); + addProcessLV(tDrop,new FluidStack(FluidRegistry.getFluid("ic2coolant"), 200), GT_ModHandler.getModItem("MagicBees", "propolis", 1L, 3), 5000, 1200,2); + RecipeManagers.squeezerManager.addRecipe(400, new ItemStack[]{tDrop}, new FluidStack(FluidRegistry.getFluid("ic2coolant"), 100), GT_ModHandler.getModItem("MagicBees", "propolis", 1L, 3), 30); + tDrop = getStackForType(GTPP_DropType.HYDRA); + addProcessMV(tDrop, Materials.FierySteel.getFluid(50L), GT_ModHandler.getModItem("MagicBees", "propolis", 1L, 2), 3000, 8); + tDrop = getStackForType(GTPP_DropType.OXYGEN); + addProcessLV(tDrop, new FluidStack(FluidRegistry.getFluid("liquidoxygen"), 100), GT_ModHandler.getModItem("ExtraBees", "propolis", 1L, 2), 250, 1200,8); + RecipeManagers.squeezerManager.addRecipe(400, new ItemStack[]{tDrop}, new FluidStack(FluidRegistry.getFluid("ic2coolant"), 100), GT_ModHandler.getModItem("ExtraBees", "propolis", 1L, 2), 30); + tDrop = getStackForType(GTPP_DropType.ENDERGOO); + if ( Loader.isModLoaded("HardcoreEnderExpansion")) + addProcessHV(tDrop, new FluidStack(FluidRegistry.getFluid("endergoo"), 500), GT_Values.NI ,1000); + } + + public void addProcessLV(ItemStack tDrop, FluidStack aOutput, ItemStack aOutput2, int aChance, int aEUt) { + GT_Values.RA.addFluidExtractionRecipe(tDrop, aOutput2, aOutput, aChance, 32, aEUt); + } + public void addProcessLV(ItemStack tDrop, FluidStack aOutput, ItemStack aOutput2, int aChance, int aDuration, int aEUt) { + GT_Values.RA.addFluidExtractionRecipe(tDrop, aOutput2, aOutput, aChance, aDuration, aEUt); + } + public void addProcessMV(ItemStack tDrop, FluidStack aOutput, ItemStack aOutput2, int aChance, int aEUt) { + GT_Values.RA.addFluidExtractionRecipe(tDrop, aOutput2, aOutput, aChance, 128, aEUt); + } + public void addProcessHV(ItemStack tDrop, FluidStack aOutput, ItemStack aOutput2, int aChance) { + GT_Values.RA.addFluidExtractionRecipe(tDrop, aOutput2, aOutput, aChance, 480, 480); + } +} diff --git a/src/main/java/gtPlusPlus/xmod/forestry/bees/items/output/GTPP_Pollen.java b/src/main/java/gtPlusPlus/xmod/forestry/bees/items/output/GTPP_Pollen.java new file mode 100644 index 0000000000..f7766b2aff --- /dev/null +++ b/src/main/java/gtPlusPlus/xmod/forestry/bees/items/output/GTPP_Pollen.java @@ -0,0 +1,90 @@ +package gtPlusPlus.xmod.forestry.bees.items.output; + +import java.util.List; + +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import forestry.api.core.Tabs; +import gtPlusPlus.core.lib.CORE; +import gtPlusPlus.xmod.forestry.bees.handler.GTPP_PollenType; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; + +public class GTPP_Pollen extends Item { + + @SideOnly(Side.CLIENT) + private IIcon secondIcon; + + public GTPP_Pollen() { + super(); + this.setCreativeTab(Tabs.tabApiculture); + this.setHasSubtypes(true); + this.setUnlocalizedName("gtpp.pollen"); + GameRegistry.registerItem(this, "gtpp.pollen", CORE.MODID); + } + + public ItemStack getStackForType(GTPP_PollenType type) { + return new ItemStack(this, 1, type.ordinal()); + } + + public ItemStack getStackForType(GTPP_PollenType type, int count) { + return new ItemStack(this, count, type.ordinal()); + } + + @Override + @SideOnly(Side.CLIENT) + public void getSubItems(Item item, CreativeTabs tabs, List list) { + for (GTPP_PollenType type : GTPP_PollenType.values()) { + if (type.showInList) { + list.add(this.getStackForType(type)); + } + } + } + + @Override + @SideOnly(Side.CLIENT) + public boolean requiresMultipleRenderPasses() { + return true; + } + + @Override + public int getRenderPasses(int meta) { + return 2; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister par1IconRegister) { + this.itemIcon = par1IconRegister.registerIcon("forestry:pollen.0"); + this.secondIcon = par1IconRegister.registerIcon("forestry:pollen.1"); + } + + @Override + public IIcon getIcon(ItemStack stack, int pass) { + return (pass == 0) ? itemIcon : secondIcon; + } + + @Override + @SideOnly(Side.CLIENT) + public int getColorFromItemStack(ItemStack stack, int pass) { + int meta = Math.max(0, Math.min(GTPP_PollenType.values().length - 1, stack.getItemDamage())); + int colour = GTPP_PollenType.values()[meta].getColours()[0]; + + if (pass >= 1) { + colour = GTPP_PollenType.values()[meta].getColours()[1]; + } + + return colour; + } + + @Override + public String getItemStackDisplayName(ItemStack stack) { + return GTPP_PollenType.values()[stack.getItemDamage()].getName(); + } + + +} diff --git a/src/main/java/gtPlusPlus/xmod/forestry/bees/items/output/GTPP_Propolis.java b/src/main/java/gtPlusPlus/xmod/forestry/bees/items/output/GTPP_Propolis.java new file mode 100644 index 0000000000..279c6b92fc --- /dev/null +++ b/src/main/java/gtPlusPlus/xmod/forestry/bees/items/output/GTPP_Propolis.java @@ -0,0 +1,111 @@ +package gtPlusPlus.xmod.forestry.bees.items.output; + +import static gregtech.api.enums.GT_Values.MOD_ID_DC; + +import java.util.List; + +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import forestry.api.core.Tabs; +import gregtech.api.enums.*; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gtPlusPlus.core.lib.CORE; +import gtPlusPlus.xmod.forestry.bees.handler.GTPP_PropolisType; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraftforge.fluids.FluidRegistry; + +public class GTPP_Propolis extends Item { + + @SideOnly(Side.CLIENT) + private IIcon secondIcon; + + public GTPP_Propolis() { + super(); + this.setCreativeTab(Tabs.tabApiculture); + this.setHasSubtypes(true); + this.setUnlocalizedName("gtpp.propolis"); + GameRegistry.registerItem(this, "gtpp.propolis", CORE.MODID); + } + + public ItemStack getStackForType(GTPP_PropolisType type) { + return new ItemStack(this, 1, type.ordinal()); + } + + public ItemStack getStackForType(GTPP_PropolisType type, int count) { + return new ItemStack(this, count, type.ordinal()); + } + + @Override + @SideOnly(Side.CLIENT) + public void getSubItems(Item item, CreativeTabs tabs, List list) { + for (GTPP_PropolisType type : GTPP_PropolisType.values()) { + if (type.showInList) { + list.add(this.getStackForType(type)); + } + } + } + + + @Override + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister par1IconRegister) { + this.itemIcon = par1IconRegister.registerIcon("forestry:propolis.0"); + } + + @Override + public IIcon getIcon(ItemStack stack, int pass) { + return itemIcon; + } + + @Override + @SideOnly(Side.CLIENT) + public int getColorFromItemStack(ItemStack stack, int pass) { + int meta = Math.max(0, Math.min(GTPP_PropolisType.values().length - 1, stack.getItemDamage())); + return GTPP_PropolisType.values()[meta].getColours(); + } + + @Override + public String getItemStackDisplayName(ItemStack stack) { + return GTPP_PropolisType.values()[stack.getItemDamage()].getName(); + } + public void initPropolisRecipes() { + ItemStack tPropolis; + + tPropolis = getStackForType(GTPP_PropolisType.End); + addProcessHV(tPropolis, GT_ModHandler.getModItem("HardcoreEnderExpansion", "end_powder", 1, 0)); + tPropolis = getStackForType(GTPP_PropolisType.Stardust); + addProcessHV(tPropolis, GT_ModHandler.getModItem("HardcoreEnderExpansion", "stardust", 1, 0)); + tPropolis = getStackForType(GTPP_PropolisType.Ectoplasma); + addProcessEV(tPropolis, GT_ModHandler.getModItem(MOD_ID_DC, "item.EctoplasmaChip", 1, 0)); + tPropolis = getStackForType(GTPP_PropolisType.Arcaneshard); + addProcessEV(tPropolis, GT_ModHandler.getModItem(MOD_ID_DC, "item.ArcaneShardChip", 1, 0)); + tPropolis = getStackForType(GTPP_PropolisType.Dragonessence); + addProcessIV(tPropolis, GT_ModHandler.getModItem("HardcoreEnderExpansion", "essence", 16, 0)); + tPropolis = getStackForType(GTPP_PropolisType.Enderman); + addProcessIV(tPropolis, GT_ModHandler.getModItem("HardcoreEnderExpansion", "enderman_head", 1, 0)); + tPropolis = getStackForType(GTPP_PropolisType.Silverfish); + addProcessEV(tPropolis, GT_ModHandler.getModItem("HardcoreEnderExpansion", "silverfish_blood", 1, 0)); + tPropolis = getStackForType(GTPP_PropolisType.Endium); + addProcessHV(tPropolis, GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.HeeEndium, 1)); + tPropolis = getStackForType(GTPP_PropolisType.Fireessence); + addProcessIV(tPropolis, GT_ModHandler.getModItem("HardcoreEnderExpansion", "essence", 16, 1)); + + //addRecipe(tDrop, aOutput, aOutput2, aChance, aDuration, aEUt); + } + + public void addProcessHV(ItemStack tPropolis, ItemStack aOutput2) { + GT_Values.RA.addFluidExtractionRecipe(tPropolis, aOutput2, FluidRegistry.getFluidStack("endergoo",100), 5000, 50, 480); + } + public void addProcessEV(ItemStack tPropolis, ItemStack aOutput2) { + GT_Values.RA.addFluidExtractionRecipe(tPropolis, aOutput2, FluidRegistry.getFluidStack("endergoo",200), 2500, 100, 1920); + } + public void addProcessIV(ItemStack tPropolis, ItemStack aOutput2) { + GT_Values.RA.addFluidExtractionRecipe(tPropolis, aOutput2, FluidRegistry.getFluidStack("endergoo",300), 1500, 150, 7680); + } +} diff --git a/src/main/java/gtPlusPlus/xmod/forestry/bees/registry/GTPP_BeeDefinition.java b/src/main/java/gtPlusPlus/xmod/forestry/bees/registry/GTPP_BeeDefinition.java new file mode 100644 index 0000000000..ca11b00cff --- /dev/null +++ b/src/main/java/gtPlusPlus/xmod/forestry/bees/registry/GTPP_BeeDefinition.java @@ -0,0 +1,392 @@ +package gtPlusPlus.xmod.forestry.bees.registry; + +import static forestry.api.apiculture.EnumBeeChromosome.*; +import static forestry.api.core.EnumHumidity.ARID; +import static forestry.api.core.EnumHumidity.DAMP; +import static forestry.api.core.EnumTemperature.*; + +import java.awt.Color; +import java.lang.reflect.Field; +import java.util.Arrays; +import java.util.Locale; +import java.util.function.Consumer; + +import org.apache.commons.lang3.reflect.FieldUtils; +import org.apache.commons.lang3.text.WordUtils; + +import cpw.mods.fml.common.Loader; +import cpw.mods.fml.common.registry.GameRegistry; +import forestry.api.apiculture.*; +import forestry.api.core.EnumHumidity; +import forestry.api.core.EnumTemperature; +import forestry.api.genetics.*; +import forestry.apiculture.genetics.*; +import forestry.apiculture.genetics.alleles.AlleleEffect; +import forestry.core.genetics.alleles.AlleleHelper; +import forestry.core.genetics.alleles.EnumAllele.*; +import gregtech.api.GregTech_API; +import gregtech.api.enums.GT_Values; +import gregtech.api.util.GT_LanguageManager; +import gregtech.api.util.GT_ModHandler; +import gregtech.common.bees.GT_AlleleBeeSpecies; +import gregtech.common.bees.GT_Bee_Mutation; +import gregtech.common.items.CombType; +import gregtech.loaders.misc.GT_BeeDefinition; +import gregtech.loaders.misc.GT_BranchDefinition; +import gtPlusPlus.core.util.reflect.ReflectionUtils; +import net.minecraft.item.ItemStack; + + + +public enum GTPP_BeeDefinition implements IBeeDefinition { + + DIVIDED(GT_BranchDefinition.THAUMIC, "Unstable", true, new Color(0xF0F0F0), new Color(0xDCDCDC), + beeSpecies -> { + beeSpecies.addProduct(GT_ModHandler.getModItem("ExtraBees", "honeyComb", 1, 61), 0.20f); + beeSpecies.addSpecialty(GTPP_Bees.combs.getStackForType(CombType.DIVIDED), 0.125f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(EnumTemperature.NORMAL); + beeSpecies.setHasEffect(); + }, + template -> { + AlleleHelper.instance.set(template, SPEED, Speed.SLOWER); + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORT); + AlleleHelper.instance.set(template, FLOWERING, Flowering.SLOW); + AlleleHelper.instance.set(template, NOCTURNAL, true); + }, + dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(DIAMOND, IRON, 3); + if (Loader.isModLoaded("ExtraUtilities")) + tMutation.requireResource(GameRegistry.findBlock("ExtraUtilities", "decorativeBlock1"), 5); + } + ), + NEUTRONIUM(GT_BranchDefinition.RADIOACTIVE, "Neutronium", false, new Color(0xFFF0F0), new Color(0xFAFAFA), + beeSpecies -> { + beeSpecies.addProduct(GTPP_Bees.combs.getStackForType(CombType.NEUTRONIUM), 0.0001f); + beeSpecies.setHumidity(DAMP); + beeSpecies.setTemperature(HELLISH); + beeSpecies.setHasEffect(); + }, + template -> { + AlleleHelper.instance.set(template, SPEED, Speed.SLOWEST); + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.LONGEST); + AlleleHelper.instance.set(template, NOCTURNAL, true); + }, + dis -> { + IMutationCustom tMutation = dis.registerMutation(NAQUADRIA, AMERICIUM, 1, 2).setIsSecret(); + tMutation.requireResource(GregTech_API.sBlockMetal5, 2); + } + ), + DRAGONESSENCE(GT_BranchDefinition.HEE, "Dragonessence", true, new Color(0xFFA12B), new Color(0x911ECE), + beeSpecies -> { + beeSpecies.addProduct(GT_ModHandler.getModItem(GT_Values.MOD_ID_FR, "beeCombs", 1, 8), 0.30f); + beeSpecies.addSpecialty(GTPP_Bees.combs.getStackForType(CombType.DRAGONESSENCE), 0.10f); + beeSpecies.setHumidity(ARID); + beeSpecies.setTemperature(EnumTemperature.NORMAL); + beeSpecies.setHasEffect(); + }, + template -> { + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.LONGER); + AlleleHelper.instance.set(template, EFFECT, AlleleEffect.effectBeatific); + AlleleHelper.instance.set(template, TEMPERATURE_TOLERANCE, Tolerance.BOTH_3); + AlleleHelper.instance.set(template, HUMIDITY_TOLERANCE, Tolerance.BOTH_3); + }, + dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(GT_BeeDefinition.ECTOPLASMA, GT_BeeDefinition.ARCANESHARDS, 4); + tMutation.restrictHumidity(ARID); + if (Loader.isModLoaded("HardcoreEnderExpansion")) + tMutation.requireResource(GameRegistry.findBlock("HardcoreEnderExpansion", "essence_altar"), 1); + tMutation.addMutationCondition(new GTPP_Bees.DimensionMutationCondition(1, "End"));//End Dim + } + ), + TRINIUM(GT_BranchDefinition.SPACE, "Trinium", false, new Color(0xB0E0E6), new Color(0xC8C8D2), + beeSpecies -> { + beeSpecies.addProduct(GTPP_Bees.combs.getStackForType(CombType.TRINIUM), 0.75f); + beeSpecies.addSpecialty(GTPP_Bees.combs.getStackForType(CombType.QUANTIUM), 0.10f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(COLD); + beeSpecies.setNocturnal(); + beeSpecies.setHasEffect(); + }, + template -> AlleleHelper.instance.set(template, SPEED, GTPP_Bees.speedBlinding), + new Consumer() { + @Override + public void accept(GTPP_BeeDefinition dis) { + IBeeMutationCustom tMutation = dis.registerMutation(ENCELADUS, IRIDIUM, 4); + tMutation.requireResource(GregTech_API.sBlockMetal4, 9); + tMutation.addMutationCondition(new GTPP_Bees.DimensionMutationCondition(41, "Enceladus"));//Enceladus Dim + } + } + ), + + //Infinity Line + COSMICNEUTRONIUM(GT_BranchDefinition.PLANET, "CosmicNeutronium", false, new Color(0x484848), new Color(0x323232), + beeSpecies -> { + beeSpecies.addProduct(GTPP_Bees.combs.getStackForType(CombType.COSMICNEUTRONIUM), 0.25f); + beeSpecies.setHumidity(DAMP); + beeSpecies.setTemperature(ICY); + beeSpecies.setNocturnal(); + beeSpecies.setHasEffect(); + }, + template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST), + dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(NEUTRONIUM, BARNARDAF, 7, 10); + if (Loader.isModLoaded("Avaritia")) + tMutation.requireResource(GameRegistry.findBlock("Avaritia", "Resource_Block"), 0); + } + ), + INFINITYCATALYST(GT_BranchDefinition.PLANET, "InfinityCatalyst", false, new Color(0xFFFFFF), new Color(0xFFFFFF), + beeSpecies -> { + beeSpecies.addProduct(GTPP_Bees.combs.getStackForType(CombType.INFINITYCATALYST), 0.0000005f); + beeSpecies.setHumidity(DAMP); + beeSpecies.setTemperature(HELLISH); + beeSpecies.setNocturnal(); + beeSpecies.setHasEffect(); + }, + template -> { + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST); + AlleleHelper.instance.set(template, EFFECT, getEffect(EXTRABEES, "blindness")); + }, + dis -> { + IMutationCustom tMutation = dis.registerMutation(DOB, COSMICNEUTRONIUM, 3, 10).setIsSecret(); + if (Loader.isModLoaded("Avaritia")) + tMutation.requireResource(GameRegistry.findBlock("Avaritia", "Resource_Block"), 1); + } + ), + INFINITY(GT_BranchDefinition.PLANET, "Infinity", false, new Color(0xFFFFFF), new Color(0xFFFFFF), + beeSpecies -> { + beeSpecies.addProduct(GTPP_Bees.combs.getStackForType(CombType.INFINITY), 0.00000005f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(ICY); + beeSpecies.setNocturnal(); + beeSpecies.setHasEffect(); + }, + template -> AlleleHelper.instance.set(template, LIFESPAN, Lifespan.SHORTEST), + dis -> { + IBeeMutationCustom tMutation = dis.registerMutation(INFINITYCATALYST, COSMICNEUTRONIUM, 1, 100); + if (Loader.isModLoaded("avaritiaddons")) + tMutation.requireResource(GameRegistry.findBlock("avaritiaddons", "InfinityChest"), 0); + } + ), + ; + private final GT_BranchDefinition branch; + private final GT_AlleleBeeSpecies species; + private final Consumer mSpeciesProperties; + private final Consumer mAlleles; + private final Consumer mMutations; + private IAllele[] template; + private IBeeGenome genome; + + GTPP_BeeDefinition(GT_BranchDefinition branch, + String binomial, + boolean dominant, + Color primary, + Color secondary, + Consumer aSpeciesProperties, + Consumer aAlleles, + Consumer aMutations + ) { + this.mAlleles = aAlleles; + this.mMutations = aMutations; + this.mSpeciesProperties = aSpeciesProperties; + String lowercaseName = this.toString().toLowerCase(Locale.ENGLISH); + String species = WordUtils.capitalize(lowercaseName); + + String uid = "gtpp.bee.species" + species; + String description = "for.description." + species; + String name = "for.bees.species." + lowercaseName; + GT_LanguageManager.addStringLocalization("for.bees.species." + lowercaseName, species, true); + + this.branch = branch; + this.species = new GT_AlleleBeeSpecies(uid, dominant, name, "GT++", description, branch.getBranch(), binomial, primary, secondary); + } + + public static void initBees() { + for (GTPP_BeeDefinition bee : values()) { + bee.init(); + } + for (GTPP_BeeDefinition bee : values()) { + bee.registerMutations(); + } + } + + protected static IAlleleBeeEffect getEffect(byte modid, String name) { + String s; + switch (modid) { + case GTPP_Bees.EXTRABEES: + s = "extrabees.effect." + name; + break; + case GTPP_Bees.GENDUSTRY: + s = "gendustry.effect." + name; + break; + case GTPP_Bees.MAGICBEES: + s = "magicbees.effect" + name; + break; + case GTPP_Bees.GREGTECH: + s = "gregtech.effect" + name; + break; + default: + s = "forestry.effect" + name; + break; + + } + return (IAlleleBeeEffect) AlleleManager.alleleRegistry.getAllele(s); + } + + protected static IAlleleFlowers getFlowers(byte modid, String name) { + String s; + switch (modid) { + case GTPP_Bees.EXTRABEES: + s = "extrabees.flower." + name; + break; + case GTPP_Bees.GENDUSTRY: + s = "gendustry.flower." + name; + break; + case GTPP_Bees.MAGICBEES: + s = "magicbees.flower" + name; + break; + case GTPP_Bees.GREGTECH: + s = "gregtech.flower" + name; + break; + default: + s = "forestry.flowers" + name; + break; + + } + return (IAlleleFlowers) AlleleManager.alleleRegistry.getAllele(s); + } + + protected static IAlleleBeeSpecies getSpecies(byte modid, String name) { + String s; + switch (modid) { + case GTPP_Bees.EXTRABEES: + s = "extrabees.species." + name; + break; + case GTPP_Bees.GENDUSTRY: + s = "gendustry.bee." + name; + break; + case GTPP_Bees.MAGICBEES: + s = "magicbees.species" + name; + break; + case GTPP_Bees.GREGTECH: + s = "gregtech.species" + name; + break; + default: + s = "forestry.species" + name; + break; + + } + IAlleleBeeSpecies ret = (IAlleleBeeSpecies) AlleleManager.alleleRegistry.getAllele(s); + return ret; + } + + + protected final void setSpeciesProperties(GT_AlleleBeeSpecies beeSpecies) { + this.mSpeciesProperties.accept(beeSpecies); + } + + protected final void setAlleles(IAllele[] template) { + this.mAlleles.accept(template); + } + + protected final void registerMutations() { + this.mMutations.accept(this); + } + + private void init() { + setSpeciesProperties(species); + + template = branch.getTemplate(); + AlleleHelper.instance.set(template, SPECIES, species); + setAlleles(template); + + genome = BeeManager.beeRoot.templateAsGenome(template); + + BeeManager.beeRoot.registerTemplate(template); + } + + protected final IBeeMutationCustom registerMutation(IAlleleBeeSpecies parent1, IAlleleBeeSpecies parent2, int chance) { + return registerMutation(parent1, parent2, chance, 1f); + } + + protected final IBeeMutationCustom registerMutation(GTPP_BeeDefinition parent1, IAlleleBeeSpecies parent2, int chance) { + return registerMutation(parent1, parent2, chance, 1f); + } + + protected final IBeeMutationCustom registerMutation(IAlleleBeeSpecies parent1, GTPP_BeeDefinition parent2, int chance) { + return registerMutation(parent1, parent2, chance, 1f); + } + + protected final IBeeMutationCustom registerMutation(GTPP_BeeDefinition parent1, GTPP_BeeDefinition parent2, int chance) { + return registerMutation(parent1, parent2, chance, 1f); + } + + protected final IBeeMutationCustom registerMutation(String parent1, String parent2, int chance) { + return registerMutation(getGregtechBeeType(parent1), getGregtechBeeType(parent2), chance, 1f); + } + + /** + * Diese neue Funtion erlaubt Mutationsraten unter 1%. Setze dazu die Mutationsrate als Bruch mit chance / chancedivider + * This new function allows Mutation percentages under 1%. Set them as a fraction with chance / chancedivider + */ + protected final IBeeMutationCustom registerMutation(IAlleleBeeSpecies parent1, IAlleleBeeSpecies parent2, int chance, float chancedivider) { + return new GT_Bee_Mutation(parent1, parent2, this.getTemplate(), chance, chancedivider); + } + + protected final IBeeMutationCustom registerMutation(GTPP_BeeDefinition parent1, IAlleleBeeSpecies parent2, int chance, float chancedivider) { + return registerMutation(parent1.species, parent2, chance, chancedivider); + } + + protected final IBeeMutationCustom registerMutation(IAlleleBeeSpecies parent1, GTPP_BeeDefinition parent2, int chance, float chancedivider) { + return registerMutation(parent1, parent2.species, chance, chancedivider); + } + + protected final IBeeMutationCustom registerMutation(GTPP_BeeDefinition parent1, GTPP_BeeDefinition parent2, int chance, float chancedivider) { + return registerMutation(parent1.species, parent2, chance, chancedivider); + } + + protected final IBeeMutationCustom registerMutation(String parent1, String parent2, int chance, float chancedivider) { + return registerMutation(getGregtechBeeType(parent1), getGregtechBeeType(parent2), chance, chancedivider); + } + + @Override + public final IAllele[] getTemplate() { + return Arrays.copyOf(template, template.length); + } + + @Override + public final IBeeGenome getGenome() { + return genome; + } + + @Override + public final IBee getIndividual() { + return new Bee(genome); + } + + @Override + public final ItemStack getMemberStack(EnumBeeType beeType) { + return BeeManager.beeRoot.getMemberStack(getIndividual(), beeType.ordinal()); + } + + public final IBeeDefinition getRainResist() { + return new BeeVariation.RainResist(this); + } + + public static IAlleleBeeSpecies getGregtechBeeType(String name){ + Class gtBees; + try { + Class gtBeeTypes = Class.forName("gregtech.loaders.misc.GT_BeeDefinition"); + Enum gtBeeEnumObject = Enum.valueOf(gtBeeTypes, name); + Field gtBeesField = FieldUtils.getDeclaredField(gtBeeTypes, "species", true); + gtBeesField.setAccessible(true); + ReflectionUtils.makeFieldAccessible(gtBeesField); + Object beeType = gtBeesField.get(gtBeeEnumObject); + return (IAlleleBeeSpecies) beeType; + } + catch (ClassNotFoundException | IllegalArgumentException | IllegalAccessException e) { + e.printStackTrace(); + } + return null; + } +} diff --git a/src/main/java/gtPlusPlus/xmod/forestry/bees/registry/GTPP_Bees.java b/src/main/java/gtPlusPlus/xmod/forestry/bees/registry/GTPP_Bees.java new file mode 100644 index 0000000000..35dbb1ded6 --- /dev/null +++ b/src/main/java/gtPlusPlus/xmod/forestry/bees/registry/GTPP_Bees.java @@ -0,0 +1,33 @@ +package gtPlusPlus.xmod.forestry.bees.registry; + +import static gregtech.api.enums.GT_Values.MOD_ID_FR; + +import cpw.mods.fml.common.Loader; +import gregtech.GT_Mod; +import gtPlusPlus.xmod.forestry.bees.items.output.*; + +public class GTPP_Bees { + + public final static byte FORESTRY = 0; + public final static byte EXTRABEES = 1; + public final static byte GENDUSTRY = 2; + public final static byte MAGICBEES = 3; + public final static byte GREGTECH = 4; + + public static GTPP_Propolis propolis; + public static GTPP_Pollen pollen; + public static GTPP_Drop drop; + public static GTPP_Comb combs; + + public GTPP_Bees() { + if (Loader.isModLoaded(MOD_ID_FR) && GT_Mod.gregtechproxy.mGTBees) { + propolis = new GTPP_Propolis(); + pollen = new GTPP_Pollen(); + drop = new GTPP_Drop(); + drop.initDropsRecipes(); + combs = new GTPP_Comb(); + combs.initCombsRecipes(); + GTPP_BeeDefinition.initBees(); + } + } +} diff --git a/src/main/java/gtPlusPlus/xmod/forestry/bees/registry/GTPP_BranchDefinition.java b/src/main/java/gtPlusPlus/xmod/forestry/bees/registry/GTPP_BranchDefinition.java new file mode 100644 index 0000000000..36ea72d1d1 --- /dev/null +++ b/src/main/java/gtPlusPlus/xmod/forestry/bees/registry/GTPP_BranchDefinition.java @@ -0,0 +1,87 @@ +package gtPlusPlus.xmod.forestry.bees.registry; + +import forestry.api.apiculture.BeeManager; +import forestry.api.apiculture.EnumBeeChromosome; +import forestry.api.genetics.IAllele; +import forestry.api.genetics.IClassification; +import forestry.apiculture.genetics.alleles.AlleleEffect; +import forestry.core.genetics.alleles.AlleleHelper; + +import java.util.Arrays; +import java.util.function.Consumer; + +import static forestry.api.apiculture.EnumBeeChromosome.*; +import static forestry.core.genetics.alleles.EnumAllele.*; +import static gtPlusPlus.xmod.forestry.bees.registry.GTPP_BeeDefinition.getEffect; +import static gtPlusPlus.xmod.forestry.bees.registry.GTPP_BeeDefinition.getFlowers; +import static gtPlusPlus.xmod.forestry.bees.registry.GTPP_Bees.EXTRABEES; + +public enum GTPP_BranchDefinition { + + HEE("Finis Expansiones", alleles -> { + AlleleHelper.instance.set(alleles, TEMPERATURE_TOLERANCE, Tolerance.BOTH_2); + AlleleHelper.instance.set(alleles, HUMIDITY_TOLERANCE, Tolerance.BOTH_2); + AlleleHelper.instance.set(alleles, NOCTURNAL, true); + AlleleHelper.instance.set(alleles, FLOWER_PROVIDER, getFlowers(EXTRABEES, "book")); + AlleleHelper.instance.set(alleles, LIFESPAN, Lifespan.SHORT); + AlleleHelper.instance.set(alleles, FLOWERING, Flowering.SLOW); + AlleleHelper.instance.set(alleles, SPEED, Speed.FASTEST); + AlleleHelper.instance.set(alleles, TERRITORY, Territory.LARGER); + } + ), + SPACE("Cosmicis", alleles -> { + AlleleHelper.instance.set(alleles, TEMPERATURE_TOLERANCE, Tolerance.DOWN_2); + AlleleHelper.instance.set(alleles, TOLERANT_FLYER, true); + AlleleHelper.instance.set(alleles, NOCTURNAL, true); + AlleleHelper.instance.set(alleles, FLOWER_PROVIDER, getFlowers(EXTRABEES, "rock")); + AlleleHelper.instance.set(alleles, FLOWERING, Flowering.FASTEST); + AlleleHelper.instance.set(alleles, LIFESPAN, Lifespan.LONGEST); + AlleleHelper.instance.set(alleles, SPEED, Speed.FAST); + AlleleHelper.instance.set(alleles, TERRITORY, Territory.LARGEST); + } + ), + ; + + private static IAllele[] defaultTemplate; + private final IClassification branch; + private final Consumer mBranchProperties; + + GTPP_BranchDefinition(String scientific, Consumer aBranchProperties) { + this.branch = BeeManager.beeFactory.createBranch(this.name().toLowerCase(), scientific); + this.mBranchProperties = aBranchProperties; + } + + private static IAllele[] getDefaultTemplate() { + if (defaultTemplate == null) { + defaultTemplate = new IAllele[EnumBeeChromosome.values().length]; + + AlleleHelper.instance.set(defaultTemplate, SPEED, Speed.SLOWEST); + AlleleHelper.instance.set(defaultTemplate, LIFESPAN, Lifespan.SHORTER); + AlleleHelper.instance.set(defaultTemplate, FERTILITY, Fertility.NORMAL); + AlleleHelper.instance.set(defaultTemplate, TEMPERATURE_TOLERANCE, Tolerance.NONE); + AlleleHelper.instance.set(defaultTemplate, NOCTURNAL, false); + AlleleHelper.instance.set(defaultTemplate, HUMIDITY_TOLERANCE, Tolerance.NONE); + AlleleHelper.instance.set(defaultTemplate, TOLERANT_FLYER, false); + AlleleHelper.instance.set(defaultTemplate, CAVE_DWELLING, false); + AlleleHelper.instance.set(defaultTemplate, FLOWER_PROVIDER, Flowers.VANILLA); + AlleleHelper.instance.set(defaultTemplate, FLOWERING, Flowering.SLOWEST); + AlleleHelper.instance.set(defaultTemplate, TERRITORY, Territory.AVERAGE); + AlleleHelper.instance.set(defaultTemplate, EFFECT, AlleleEffect.effectNone); + } + return Arrays.copyOf(defaultTemplate, defaultTemplate.length); + } + + protected final void setBranchProperties(IAllele[] template) { + this.mBranchProperties.accept(template); + } + + public final IAllele[] getTemplate() { + IAllele[] template = getDefaultTemplate(); + setBranchProperties(template); + return template; + } + + public final IClassification getBranch() { + return branch; + } +} diff --git a/wip/1.png b/wip/1.png new file mode 100644 index 0000000000..9cc599d929 Binary files /dev/null and b/wip/1.png differ diff --git a/wip/10.png b/wip/10.png new file mode 100644 index 0000000000..28621050ce Binary files /dev/null and b/wip/10.png differ diff --git a/wip/11.png b/wip/11.png new file mode 100644 index 0000000000..b0252c6aaf Binary files /dev/null and b/wip/11.png differ diff --git a/wip/12.png b/wip/12.png new file mode 100644 index 0000000000..e222c0a5db Binary files /dev/null and b/wip/12.png differ diff --git a/wip/13.png b/wip/13.png new file mode 100644 index 0000000000..fd1b9dde50 Binary files /dev/null and b/wip/13.png differ diff --git a/wip/14.png b/wip/14.png new file mode 100644 index 0000000000..7cafa36d20 Binary files /dev/null and b/wip/14.png differ diff --git a/wip/15.png b/wip/15.png new file mode 100644 index 0000000000..df8a0c3b47 Binary files /dev/null and b/wip/15.png differ diff --git a/wip/16.png b/wip/16.png new file mode 100644 index 0000000000..a2019f80f4 Binary files /dev/null and b/wip/16.png differ diff --git a/wip/17.png b/wip/17.png new file mode 100644 index 0000000000..9b81d5b216 Binary files /dev/null and b/wip/17.png differ diff --git a/wip/18.png b/wip/18.png new file mode 100644 index 0000000000..fb4b26ab9d Binary files /dev/null and b/wip/18.png differ diff --git a/wip/19.png b/wip/19.png new file mode 100644 index 0000000000..5ee1c6e68f Binary files /dev/null and b/wip/19.png differ diff --git a/wip/2.png b/wip/2.png new file mode 100644 index 0000000000..74dc5dc47a Binary files /dev/null and b/wip/2.png differ diff --git a/wip/20.png b/wip/20.png new file mode 100644 index 0000000000..51e3403d55 Binary files /dev/null and b/wip/20.png differ diff --git a/wip/21.png b/wip/21.png new file mode 100644 index 0000000000..e880295bd9 Binary files /dev/null and b/wip/21.png differ diff --git a/wip/22.png b/wip/22.png new file mode 100644 index 0000000000..6e7d05a508 Binary files /dev/null and b/wip/22.png differ diff --git a/wip/23.png b/wip/23.png new file mode 100644 index 0000000000..c6200e584c Binary files /dev/null and b/wip/23.png differ diff --git a/wip/24.png b/wip/24.png new file mode 100644 index 0000000000..9351b847d5 Binary files /dev/null and b/wip/24.png differ diff --git a/wip/25.png b/wip/25.png new file mode 100644 index 0000000000..bcc34ad1e7 Binary files /dev/null and b/wip/25.png differ diff --git a/wip/26_off.png b/wip/26_off.png new file mode 100644 index 0000000000..9105e410bc Binary files /dev/null and b/wip/26_off.png differ diff --git a/wip/26_on.png b/wip/26_on.png new file mode 100644 index 0000000000..772e514cbb Binary files /dev/null and b/wip/26_on.png differ diff --git a/wip/27_off.png b/wip/27_off.png new file mode 100644 index 0000000000..a6b70919f3 Binary files /dev/null and b/wip/27_off.png differ diff --git a/wip/27_on.png b/wip/27_on.png new file mode 100644 index 0000000000..858d64afdd Binary files /dev/null and b/wip/27_on.png differ diff --git a/wip/28_off.png b/wip/28_off.png new file mode 100644 index 0000000000..df71eb8524 Binary files /dev/null and b/wip/28_off.png differ diff --git a/wip/28_on.png b/wip/28_on.png new file mode 100644 index 0000000000..169120fb99 Binary files /dev/null and b/wip/28_on.png differ diff --git a/wip/29_off.png b/wip/29_off.png new file mode 100644 index 0000000000..c2759c6ac8 Binary files /dev/null and b/wip/29_off.png differ diff --git a/wip/29_on.png b/wip/29_on.png new file mode 100644 index 0000000000..96cc9d5ba2 Binary files /dev/null and b/wip/29_on.png differ diff --git a/wip/3.png b/wip/3.png new file mode 100644 index 0000000000..fdc76e9fcb Binary files /dev/null and b/wip/3.png differ diff --git a/wip/4.png b/wip/4.png new file mode 100644 index 0000000000..f2029146a9 Binary files /dev/null and b/wip/4.png differ diff --git a/wip/5.png b/wip/5.png new file mode 100644 index 0000000000..a6116c4616 Binary files /dev/null and b/wip/5.png differ diff --git a/wip/6.png b/wip/6.png new file mode 100644 index 0000000000..0d24ec3248 Binary files /dev/null and b/wip/6.png differ diff --git a/wip/7.png b/wip/7.png new file mode 100644 index 0000000000..36c7ed703e Binary files /dev/null and b/wip/7.png differ diff --git a/wip/8.png b/wip/8.png new file mode 100644 index 0000000000..0f39bd84a9 Binary files /dev/null and b/wip/8.png differ diff --git a/wip/9.png b/wip/9.png new file mode 100644 index 0000000000..3a11db434f Binary files /dev/null and b/wip/9.png differ diff --git a/wip/switch_1.png b/wip/switch_1.png new file mode 100644 index 0000000000..b454c0586c Binary files /dev/null and b/wip/switch_1.png differ diff --git a/wip/switch_2.png b/wip/switch_2.png new file mode 100644 index 0000000000..f6258403a9 Binary files /dev/null and b/wip/switch_2.png differ diff --git a/wip/switch_3.png b/wip/switch_3.png new file mode 100644 index 0000000000..62ae25851b Binary files /dev/null and b/wip/switch_3.png differ diff --git a/wip/switch_4.png b/wip/switch_4.png new file mode 100644 index 0000000000..91e9078cd8 Binary files /dev/null and b/wip/switch_4.png differ -- cgit