aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlkalus <3060479+draknyte1@users.noreply.github.com>2022-01-23 14:59:04 +0000
committerAlkalus <3060479+draknyte1@users.noreply.github.com>2022-01-23 15:00:44 +0000
commit0af6401544c94989f3913c9ea6638a304f7596ef (patch)
treec216b5f8413e8f0e05eb825c75fe2b89bd880650
parent888f07c5796b860bb7e0fbb507a5728950e941fd (diff)
downloadGT5-Unofficial-0af6401544c94989f3913c9ea6638a304f7596ef.tar.gz
GT5-Unofficial-0af6401544c94989f3913c9ea6638a304f7596ef.tar.bz2
GT5-Unofficial-0af6401544c94989f3913c9ea6638a304f7596ef.zip
Bee basework.
-rw-r--r--src/main/java/gtPlusPlus/xmod/forestry/HANDLER_FR.java9
-rw-r--r--src/main/java/gtPlusPlus/xmod/forestry/bees/handler/GTPP_CombType.java194
-rw-r--r--src/main/java/gtPlusPlus/xmod/forestry/bees/handler/GTPP_DropType.java51
-rw-r--r--src/main/java/gtPlusPlus/xmod/forestry/bees/handler/GTPP_PollenType.java34
-rw-r--r--src/main/java/gtPlusPlus/xmod/forestry/bees/handler/GTPP_PropolisType.java52
-rw-r--r--src/main/java/gtPlusPlus/xmod/forestry/bees/items/output/GTPP_Comb.java569
-rw-r--r--src/main/java/gtPlusPlus/xmod/forestry/bees/items/output/GTPP_Drop.java136
-rw-r--r--src/main/java/gtPlusPlus/xmod/forestry/bees/items/output/GTPP_Pollen.java90
-rw-r--r--src/main/java/gtPlusPlus/xmod/forestry/bees/items/output/GTPP_Propolis.java111
-rw-r--r--src/main/java/gtPlusPlus/xmod/forestry/bees/registry/GTPP_BeeDefinition.java392
-rw-r--r--src/main/java/gtPlusPlus/xmod/forestry/bees/registry/GTPP_Bees.java33
-rw-r--r--src/main/java/gtPlusPlus/xmod/forestry/bees/registry/GTPP_BranchDefinition.java87
-rw-r--r--wip/1.pngbin0 -> 214 bytes
-rw-r--r--wip/10.pngbin0 -> 346 bytes
-rw-r--r--wip/11.pngbin0 -> 316 bytes
-rw-r--r--wip/12.pngbin0 -> 219 bytes
-rw-r--r--wip/13.pngbin0 -> 261 bytes
-rw-r--r--wip/14.pngbin0 -> 339 bytes
-rw-r--r--wip/15.pngbin0 -> 387 bytes
-rw-r--r--wip/16.pngbin0 -> 191 bytes
-rw-r--r--wip/17.pngbin0 -> 382 bytes
-rw-r--r--wip/18.pngbin0 -> 283 bytes
-rw-r--r--wip/19.pngbin0 -> 341 bytes
-rw-r--r--wip/2.pngbin0 -> 197 bytes
-rw-r--r--wip/20.pngbin0 -> 277 bytes
-rw-r--r--wip/21.pngbin0 -> 331 bytes
-rw-r--r--wip/22.pngbin0 -> 464 bytes
-rw-r--r--wip/23.pngbin0 -> 213 bytes
-rw-r--r--wip/24.pngbin0 -> 228 bytes
-rw-r--r--wip/25.pngbin0 -> 774 bytes
-rw-r--r--wip/26_off.pngbin0 -> 222 bytes
-rw-r--r--wip/26_on.pngbin0 -> 325 bytes
-rw-r--r--wip/27_off.pngbin0 -> 300 bytes
-rw-r--r--wip/27_on.pngbin0 -> 234 bytes
-rw-r--r--wip/28_off.pngbin0 -> 332 bytes
-rw-r--r--wip/28_on.pngbin0 -> 325 bytes
-rw-r--r--wip/29_off.pngbin0 -> 363 bytes
-rw-r--r--wip/29_on.pngbin0 -> 386 bytes
-rw-r--r--wip/3.pngbin0 -> 252 bytes
-rw-r--r--wip/4.pngbin0 -> 351 bytes
-rw-r--r--wip/5.pngbin0 -> 344 bytes
-rw-r--r--wip/6.pngbin0 -> 912 bytes
-rw-r--r--wip/7.pngbin0 -> 376 bytes
-rw-r--r--wip/8.pngbin0 -> 355 bytes
-rw-r--r--wip/9.pngbin0 -> 222 bytes
-rw-r--r--wip/switch_1.pngbin0 -> 356 bytes
-rw-r--r--wip/switch_2.pngbin0 -> 365 bytes
-rw-r--r--wip/switch_3.pngbin0 -> 459 bytes
-rw-r--r--wip/switch_4.pngbin0 -> 523 bytes
49 files changed, 1753 insertions, 5 deletions
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<ItemStack,Float> Product = new ImmutableMap.Builder<ItemStack, Float>();
+ 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<GTPP_BeeDefinition>() {
+ @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<GT_AlleleBeeSpecies> mSpeciesProperties;
+ private final Consumer<IAllele[]> mAlleles;
+ private final Consumer<GTPP_BeeDefinition> mMutations;
+ private IAllele[] template;
+ private IBeeGenome genome;
+
+ GTPP_BeeDefinition(GT_BranchDefinition branch,
+ String binomial,
+ boolean dominant,
+ Color primary,
+ Color secondary,
+ Consumer<GT_AlleleBeeSpecies> aSpeciesProperties,
+ Consumer<IAllele[]> aAlleles,
+ Consumer<GTPP_BeeDefinition> 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<IAllele[]> mBranchProperties;
+
+ GTPP_BranchDefinition(String scientific, Consumer<IAllele[]> 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
--- /dev/null
+++ b/wip/1.png
Binary files differ
diff --git a/wip/10.png b/wip/10.png
new file mode 100644
index 0000000000..28621050ce
--- /dev/null
+++ b/wip/10.png
Binary files differ
diff --git a/wip/11.png b/wip/11.png
new file mode 100644
index 0000000000..b0252c6aaf
--- /dev/null
+++ b/wip/11.png
Binary files differ
diff --git a/wip/12.png b/wip/12.png
new file mode 100644
index 0000000000..e222c0a5db
--- /dev/null
+++ b/wip/12.png
Binary files differ
diff --git a/wip/13.png b/wip/13.png
new file mode 100644
index 0000000000..fd1b9dde50
--- /dev/null
+++ b/wip/13.png
Binary files differ
diff --git a/wip/14.png b/wip/14.png
new file mode 100644
index 0000000000..7cafa36d20
--- /dev/null
+++ b/wip/14.png
Binary files differ
diff --git a/wip/15.png b/wip/15.png
new file mode 100644
index 0000000000..df8a0c3b47
--- /dev/null
+++ b/wip/15.png
Binary files differ
diff --git a/wip/16.png b/wip/16.png
new file mode 100644
index 0000000000..a2019f80f4
--- /dev/null
+++ b/wip/16.png
Binary files differ
diff --git a/wip/17.png b/wip/17.png
new file mode 100644
index 0000000000..9b81d5b216
--- /dev/null
+++ b/wip/17.png
Binary files differ
diff --git a/wip/18.png b/wip/18.png
new file mode 100644
index 0000000000..fb4b26ab9d
--- /dev/null
+++ b/wip/18.png
Binary files differ
diff --git a/wip/19.png b/wip/19.png
new file mode 100644
index 0000000000..5ee1c6e68f
--- /dev/null
+++ b/wip/19.png
Binary files differ
diff --git a/wip/2.png b/wip/2.png
new file mode 100644
index 0000000000..74dc5dc47a
--- /dev/null
+++ b/wip/2.png
Binary files differ
diff --git a/wip/20.png b/wip/20.png
new file mode 100644
index 0000000000..51e3403d55
--- /dev/null
+++ b/wip/20.png
Binary files differ
diff --git a/wip/21.png b/wip/21.png
new file mode 100644
index 0000000000..e880295bd9
--- /dev/null
+++ b/wip/21.png
Binary files differ
diff --git a/wip/22.png b/wip/22.png
new file mode 100644
index 0000000000..6e7d05a508
--- /dev/null
+++ b/wip/22.png
Binary files differ
diff --git a/wip/23.png b/wip/23.png
new file mode 100644
index 0000000000..c6200e584c
--- /dev/null
+++ b/wip/23.png
Binary files differ
diff --git a/wip/24.png b/wip/24.png
new file mode 100644
index 0000000000..9351b847d5
--- /dev/null
+++ b/wip/24.png
Binary files differ
diff --git a/wip/25.png b/wip/25.png
new file mode 100644
index 0000000000..bcc34ad1e7
--- /dev/null
+++ b/wip/25.png
Binary files differ
diff --git a/wip/26_off.png b/wip/26_off.png
new file mode 100644
index 0000000000..9105e410bc
--- /dev/null
+++ b/wip/26_off.png
Binary files differ
diff --git a/wip/26_on.png b/wip/26_on.png
new file mode 100644
index 0000000000..772e514cbb
--- /dev/null
+++ b/wip/26_on.png
Binary files differ
diff --git a/wip/27_off.png b/wip/27_off.png
new file mode 100644
index 0000000000..a6b70919f3
--- /dev/null
+++ b/wip/27_off.png
Binary files differ
diff --git a/wip/27_on.png b/wip/27_on.png
new file mode 100644
index 0000000000..858d64afdd
--- /dev/null
+++ b/wip/27_on.png
Binary files differ
diff --git a/wip/28_off.png b/wip/28_off.png
new file mode 100644
index 0000000000..df71eb8524
--- /dev/null
+++ b/wip/28_off.png
Binary files differ
diff --git a/wip/28_on.png b/wip/28_on.png
new file mode 100644
index 0000000000..169120fb99
--- /dev/null
+++ b/wip/28_on.png
Binary files differ
diff --git a/wip/29_off.png b/wip/29_off.png
new file mode 100644
index 0000000000..c2759c6ac8
--- /dev/null
+++ b/wip/29_off.png
Binary files differ
diff --git a/wip/29_on.png b/wip/29_on.png
new file mode 100644
index 0000000000..96cc9d5ba2
--- /dev/null
+++ b/wip/29_on.png
Binary files differ
diff --git a/wip/3.png b/wip/3.png
new file mode 100644
index 0000000000..fdc76e9fcb
--- /dev/null
+++ b/wip/3.png
Binary files differ
diff --git a/wip/4.png b/wip/4.png
new file mode 100644
index 0000000000..f2029146a9
--- /dev/null
+++ b/wip/4.png
Binary files differ
diff --git a/wip/5.png b/wip/5.png
new file mode 100644
index 0000000000..a6116c4616
--- /dev/null
+++ b/wip/5.png
Binary files differ
diff --git a/wip/6.png b/wip/6.png
new file mode 100644
index 0000000000..0d24ec3248
--- /dev/null
+++ b/wip/6.png
Binary files differ
diff --git a/wip/7.png b/wip/7.png
new file mode 100644
index 0000000000..36c7ed703e
--- /dev/null
+++ b/wip/7.png
Binary files differ
diff --git a/wip/8.png b/wip/8.png
new file mode 100644
index 0000000000..0f39bd84a9
--- /dev/null
+++ b/wip/8.png
Binary files differ
diff --git a/wip/9.png b/wip/9.png
new file mode 100644
index 0000000000..3a11db434f
--- /dev/null
+++ b/wip/9.png
Binary files differ
diff --git a/wip/switch_1.png b/wip/switch_1.png
new file mode 100644
index 0000000000..b454c0586c
--- /dev/null
+++ b/wip/switch_1.png
Binary files differ
diff --git a/wip/switch_2.png b/wip/switch_2.png
new file mode 100644
index 0000000000..f6258403a9
--- /dev/null
+++ b/wip/switch_2.png
Binary files differ
diff --git a/wip/switch_3.png b/wip/switch_3.png
new file mode 100644
index 0000000000..62ae25851b
--- /dev/null
+++ b/wip/switch_3.png
Binary files differ
diff --git a/wip/switch_4.png b/wip/switch_4.png
new file mode 100644
index 0000000000..91e9078cd8
--- /dev/null
+++ b/wip/switch_4.png
Binary files differ