aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/common/items
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/common/items')
-rw-r--r--src/main/java/gregtech/common/items/CombType.java287
-rw-r--r--src/main/java/gregtech/common/items/DropType.java45
-rw-r--r--src/main/java/gregtech/common/items/GT_AdvancedSensorCard_Item.java330
-rw-r--r--src/main/java/gregtech/common/items/GT_DepletetCell_Item.java49
-rw-r--r--src/main/java/gregtech/common/items/GT_FluidDisplayItem.java181
-rw-r--r--src/main/java/gregtech/common/items/GT_IntegratedCircuit_Item.java328
-rw-r--r--src/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java4583
-rw-r--r--src/main/java/gregtech/common/items/GT_MetaGenerated_Item_02.java3115
-rw-r--r--src/main/java/gregtech/common/items/GT_MetaGenerated_Item_03.java1482
-rw-r--r--src/main/java/gregtech/common/items/GT_MetaGenerated_Item_98.java352
-rw-r--r--src/main/java/gregtech/common/items/GT_MetaGenerated_Item_99.java214
-rw-r--r--src/main/java/gregtech/common/items/GT_MetaGenerated_Tool_01.java746
-rw-r--r--src/main/java/gregtech/common/items/GT_NeutronReflector_Item.java54
-rw-r--r--src/main/java/gregtech/common/items/GT_SensorCard_Item.java111
-rw-r--r--src/main/java/gregtech/common/items/GT_TierDrone.java18
-rw-r--r--src/main/java/gregtech/common/items/GT_VolumetricFlask.java360
-rw-r--r--src/main/java/gregtech/common/items/GT_WirelessHeadphones.java118
-rw-r--r--src/main/java/gregtech/common/items/ID_MetaItem_01.java433
-rw-r--r--src/main/java/gregtech/common/items/ID_MetaItem_02.java208
-rw-r--r--src/main/java/gregtech/common/items/ID_MetaItem_03.java239
-rw-r--r--src/main/java/gregtech/common/items/ID_MetaTool_01.java73
-rw-r--r--src/main/java/gregtech/common/items/ItemComb.java1249
-rw-r--r--src/main/java/gregtech/common/items/ItemDrop.java241
-rw-r--r--src/main/java/gregtech/common/items/ItemPollen.java89
-rw-r--r--src/main/java/gregtech/common/items/ItemPropolis.java141
-rw-r--r--src/main/java/gregtech/common/items/PollenType.java35
-rw-r--r--src/main/java/gregtech/common/items/PropolisType.java46
-rw-r--r--src/main/java/gregtech/common/items/behaviors/Behaviour_Cover_Tool.java193
-rw-r--r--src/main/java/gregtech/common/items/behaviors/Behaviour_Crowbar.java61
-rw-r--r--src/main/java/gregtech/common/items/behaviors/Behaviour_DataOrb.java105
-rw-r--r--src/main/java/gregtech/common/items/behaviors/Behaviour_DataStick.java52
-rw-r--r--src/main/java/gregtech/common/items/behaviors/Behaviour_Hoe.java72
-rw-r--r--src/main/java/gregtech/common/items/behaviors/Behaviour_Lighter.java140
-rw-r--r--src/main/java/gregtech/common/items/behaviors/Behaviour_None.java90
-rw-r--r--src/main/java/gregtech/common/items/behaviors/Behaviour_Plunger_Essentia.java54
-rw-r--r--src/main/java/gregtech/common/items/behaviors/Behaviour_Plunger_Fluid.java75
-rw-r--r--src/main/java/gregtech/common/items/behaviors/Behaviour_Plunger_Item.java88
-rw-r--r--src/main/java/gregtech/common/items/behaviors/Behaviour_PrintedPages.java39
-rw-r--r--src/main/java/gregtech/common/items/behaviors/Behaviour_Prospecting.java159
-rw-r--r--src/main/java/gregtech/common/items/behaviors/Behaviour_Scanner.java65
-rw-r--r--src/main/java/gregtech/common/items/behaviors/Behaviour_Scoop.java63
-rw-r--r--src/main/java/gregtech/common/items/behaviors/Behaviour_Screwdriver.java52
-rw-r--r--src/main/java/gregtech/common/items/behaviors/Behaviour_Sense.java56
-rw-r--r--src/main/java/gregtech/common/items/behaviors/Behaviour_SensorKit.java56
-rw-r--r--src/main/java/gregtech/common/items/behaviors/Behaviour_SoftHammer.java131
-rw-r--r--src/main/java/gregtech/common/items/behaviors/Behaviour_Sonictron.java135
-rw-r--r--src/main/java/gregtech/common/items/behaviors/Behaviour_Spray_Color.java218
-rw-r--r--src/main/java/gregtech/common/items/behaviors/Behaviour_Spray_Color_Remover.java48
-rw-r--r--src/main/java/gregtech/common/items/behaviors/Behaviour_Switch_Metadata.java67
-rw-r--r--src/main/java/gregtech/common/items/behaviors/Behaviour_Switch_Mode.java53
-rw-r--r--src/main/java/gregtech/common/items/behaviors/Behaviour_Wrench.java278
-rw-r--r--src/main/java/gregtech/common/items/behaviors/Behaviour_WrittenBook.java40
52 files changed, 17517 insertions, 0 deletions
diff --git a/src/main/java/gregtech/common/items/CombType.java b/src/main/java/gregtech/common/items/CombType.java
new file mode 100644
index 0000000000..d227c6c4ae
--- /dev/null
+++ b/src/main/java/gregtech/common/items/CombType.java
@@ -0,0 +1,287 @@
+package gregtech.common.items;
+
+import java.util.Arrays;
+
+import org.apache.commons.lang3.text.WordUtils;
+
+import gregtech.api.enums.Materials;
+import gregtech.api.util.GT_LanguageManager;
+
+public enum CombType {
+
+ // Organic Line
+ LIGNIE(0, "lignite", true, Materials.Lignite, 100, 0x58300B, 0x906237, ItemComb.Voltage.LV),
+ COAL(1, "coal", true, Materials.Coal, 100, 0x525252, 0x666666, ItemComb.Voltage.LV),
+ STICKY(2, "sticky_resin", true, Materials._NULL, 50, 0x2E8F5B, 0xDCC289, ItemComb.Voltage.LV),
+ OIL(3, "oil", true, Materials._NULL, 100, 0x333333, 0x4C4C4C, ItemComb.Voltage.LV),
+ APATITE(4, "apatite", true, Materials.Apatite, 100, 0xc1c1f6, 0x676784, ItemComb.Voltage.LV),
+ ASH(5, "ash", true, Materials.Ash, 100, 0x1e1a18, 0xc6c6c6, ItemComb.Voltage.LV),
+
+ // IC2 Line
+ COOLANT(6, "coolant", true, Materials._NULL, 100, 0x144F5A, 0x2494A2, ItemComb.Voltage.HV),
+ ENERGY(7, "energy", true, Materials._NULL, 80, 0xC11F1F, 0xEBB9B9, ItemComb.Voltage.HV),
+ LAPOTRON(8, "lapotron", true, Materials._NULL, 60, 0x1414FF, 0x6478FF, ItemComb.Voltage.HV),
+ PYROTHEUM(9, "pyrotheum", true, Materials.Pyrotheum, 50, 0xffebc4, 0xe36400, ItemComb.Voltage.HV),
+ CRYOTHEUM(10, "cryotheum", true, Materials.Cryotheum, 50, 0x2660ff, 0x5af7ff, ItemComb.Voltage.HV),
+
+ // Alloy Line
+ REDALLOY(11, "red_alloy", true, Materials.RedAlloy, 100, 0xE60000, 0xB80000, ItemComb.Voltage.LV),
+ REDSTONEALLOY(12, "redstone_alloy", true, Materials.RedstoneAlloy, 90, 0xB80000, 0xA50808, ItemComb.Voltage.LV),
+ CONDUCTIVEIRON(13, "conductive_iron", true, Materials.ConductiveIron, 80, 0x817671, 0xCEADA3, ItemComb.Voltage.MV),
+ VIBRANTALLOY(14, "vibrant_alloy", true, Materials.VibrantAlloy, 50, 0x86A12D, 0xC4F2AE, ItemComb.Voltage.HV),
+ ENERGETICALLOY(15, "energetic_alloy", true, Materials.EnergeticAlloy, 70, 0xFF9933, 0xFFAD5C, ItemComb.Voltage.HV),
+ ELECTRICALSTEEL(16, "electrical_steel", true, Materials.ElectricalSteel, 90, 0x787878, 0xD8D8D8,
+ ItemComb.Voltage.LV),
+ DARKSTEEL(17, "dark_steel", true, Materials.DarkSteel, 80, 0x252525, 0x443B44, ItemComb.Voltage.MV),
+ PULSATINGIRON(18, "pulsating_iron", true, Materials.PulsatingIron, 80, 0x006600, 0x6DD284, ItemComb.Voltage.HV),
+ STAINLESSSTEEL(19, "stainless_steel", true, Materials.StainlessSteel, 75, 0x778899, 0xC8C8DC, ItemComb.Voltage.HV),
+ ENDERIUM(20, "enderium", true, Materials.Enderium, 40, 0x2E8B57, 0x599087, ItemComb.Voltage.HV),
+
+ // Thaumcraft Line
+ THAUMIUMDUST(21, "thaumium_dust", true, Materials.Thaumium, 100, 0x7A007A, 0x5C005C, ItemComb.Voltage.MV),
+ THAUMIUMSHARD(22, "thaumium_shard", true, Materials._NULL, 85, 0x9966FF, 0xAD85FF, ItemComb.Voltage.LV),
+ AMBER(23, "amber", true, Materials.Amber, 90, 0x774B15, 0xEE7700, ItemComb.Voltage.LV),
+ QUICKSILVER(24, "quicksilver", true, Materials.Mercury, 90, 0xc7c7ea, 0xb5b3df, ItemComb.Voltage.LV),
+ SALISMUNDUS(25, "salis_mundus", true, Materials._NULL, 75, 0xF7ADDE, 0x592582, ItemComb.Voltage.MV),
+ TAINTED(26, "tainted", true, Materials._NULL, 80, 0x904BB8, 0xE800FF, ItemComb.Voltage.LV),
+ MITHRIL(27, "mithril", true, Materials.Mithril, 70, 0xF0E68C, 0xFFFFD2, ItemComb.Voltage.HV),
+ ASTRALSILVER(28, "astral_silver", true, Materials.AstralSilver, 70, 0xAFEEEE, 0xE6E6FF, ItemComb.Voltage.HV),
+ THAUMINITE(29, "thauminite", true, Materials._NULL, 50, 0x2E2D79, 0x7581E0, ItemComb.Voltage.HV),
+ SHADOWMETAL(30, "shadow_metal", true, Materials.Shadow, 50, 0x100322, 0x100342, ItemComb.Voltage.HV),
+ DIVIDED(31, "divided", true, Materials.Unstable, 40, 0xF0F0F0, 0xDCDCDC, ItemComb.Voltage.HV),
+ SPARKLING(32, "nether_star", true, Materials.NetherStar, 40, 0x7A007A, 0xFFFFFF, ItemComb.Voltage.EV),
+
+ // Gem Line
+ STONE(33, "stone", true, Materials._NULL, 70, 0x808080, 0x999999, ItemComb.Voltage.LV),
+ CERTUS(34, "certus", true, Materials.CertusQuartz, 100, 0x57CFFB, 0xBBEEFF, ItemComb.Voltage.LV),
+ FLUIX(35, "fluix", true, Materials.Fluix, 100, 0xA375FF, 0xB591FF, ItemComb.Voltage.LV),
+ REDSTONE(36, "redstone", true, Materials.Redstone, 100, 0x7D0F0F, 0xD11919, ItemComb.Voltage.LV),
+ RAREEARTH(37, "rare_earth", true, Materials.RareEarth, 100, 0x555643, 0x343428, ItemComb.Voltage.LV),
+ LAPIS(38, "lapis", true, Materials.Lapis, 100, 0x1947D1, 0x476CDA, ItemComb.Voltage.LV),
+ RUBY(39, "ruby", true, Materials.Ruby, 100, 0xE6005C, 0xCC0052, ItemComb.Voltage.LV),
+ REDGARNET(40, "red_garnet", true, Materials.GarnetRed, 100, 0xBD4C4C, 0xECCECE, ItemComb.Voltage.LV),
+ YELLOWGARNET(41, "yellow_garnet", true, Materials.GarnetYellow, 100, 0xA3A341, 0xEDEDCE, ItemComb.Voltage.LV),
+ SAPPHIRE(42, "sapphire", true, Materials.Sapphire, 100, 0x0033CC, 0x00248F, ItemComb.Voltage.LV),
+ DIAMOND(43, "diamond", true, Materials.Diamond, 100, 0xCCFFFF, 0xA3CCCC, ItemComb.Voltage.LV),
+ OLIVINE(44, "olivine", true, Materials.Olivine, 100, 0x248F24, 0xCCFFCC, ItemComb.Voltage.LV),
+ EMERALD(45, "emerald", true, Materials.Emerald, 100, 0x248F24, 0x2EB82E, ItemComb.Voltage.LV),
+ PYROPE(46, "pyrope", true, Materials.Pyrope, 100, 0x763162, 0x8B8B8B, ItemComb.Voltage.LV),
+ GROSSULAR(47, "grossular", true, Materials.Grossular, 100, 0x9B4E00, 0x8B8B8B, ItemComb.Voltage.LV),
+ FIRESTONE(48, "firestone", true, Materials.Firestone, 100, 0xC00000, 0xFF0000, ItemComb.Voltage.LV),
+
+ // Metals Line
+ SLAG(49, "slag", true, Materials._NULL, 50, 0xD4D4D4, 0x58300B, ItemComb.Voltage.LV),
+ COPPER(50, "copper", true, Materials.Copper, 100, 0xFF6600, 0xE65C00, ItemComb.Voltage.LV),
+ TIN(51, "tin", true, Materials.Tin, 100, 0xD4D4D4, 0xDDDDDD, ItemComb.Voltage.LV),
+ LEAD(52, "lead", true, Materials.Lead, 100, 0x666699, 0xA3A3CC, ItemComb.Voltage.LV),
+ IRON(53, "iron", true, Materials.Iron, 100, 0xDA9147, 0xDE9C59, ItemComb.Voltage.LV),
+ STEEL(54, "steel", true, Materials.Steel, 95, 0x808080, 0x999999, ItemComb.Voltage.LV),
+ NICKEL(55, "nickel", true, Materials.Nickel, 100, 0x8585AD, 0x9D9DBD, ItemComb.Voltage.LV),
+ ZINC(56, "zinc", true, Materials.Zinc, 100, 0xF0DEF0, 0xF2E1F2, ItemComb.Voltage.LV),
+ SILVER(57, "silver", true, Materials.Silver, 100, 0xC2C2D6, 0xCECEDE, ItemComb.Voltage.LV),
+ GOLD(58, "gold", true, Materials.Gold, 100, 0xE6B800, 0xCFA600, ItemComb.Voltage.LV),
+ SULFUR(59, "sulfur", true, Materials.Sulfur, 100, 0x6F6F01, 0x8B8B8B, ItemComb.Voltage.LV),
+ GALLIUM(60, "gallium", true, Materials.Gallium, 75, 0x8B8B8B, 0xC5C5E4, ItemComb.Voltage.LV),
+ ARSENIC(61, "arsenic", true, Materials.Arsenic, 75, 0x736C52, 0x292412, ItemComb.Voltage.LV),
+
+ // Rare Metals Line
+ BAUXITE(62, "bauxite", true, Materials.Bauxite, 85, 0x6B3600, 0x8B8B8B, ItemComb.Voltage.LV),
+ ALUMINIUM(63, "aluminium", true, Materials.Aluminium, 60, 0x008AB8, 0xD6D6FF, ItemComb.Voltage.LV),
+ MANGANESE(64, "manganese", true, Materials.Manganese, 30, 0xD5D5D5, 0xAAAAAA, ItemComb.Voltage.LV),
+ MAGNESIUM(65, "magnesium", true, Materials.Magnesium, 75, 0xF1D9D9, 0x8B8B8B, ItemComb.Voltage.LV),
+ TITANIUM(66, "titanium", true, Materials.Ilmenite, 100, 0xCC99FF, 0xDBB8FF, ItemComb.Voltage.IV),
+ CHROME(67, "chrome", true, Materials.Chrome, 50, 0xEBA1EB, 0xF2C3F2, ItemComb.Voltage.HV),
+ TUNGSTEN(68, "tungsten", true, Materials.Tungstate, 100, 0x62626D, 0x161620, ItemComb.Voltage.IV),
+ PLATINUM(69, "platinum", true, Materials.Platinum, 40, 0xE6E6E6, 0xFFFFCC, ItemComb.Voltage.HV),
+ IRIDIUM(70, "iridium", true, Materials.Iridium, 20, 0xDADADA, 0xD1D1E0, ItemComb.Voltage.IV),
+ MOLYBDENUM(71, "molybdenum", true, Materials.Molybdenum, 20, 0xAEAED4, 0x8B8B8B, ItemComb.Voltage.LV),
+ OSMIUM(72, "osmium", true, Materials.Osmium, 15, 0x2B2BDA, 0x8B8B8B, ItemComb.Voltage.IV),
+ LITHIUM(73, "lithium", true, Materials.Lithium, 75, 0xF0328C, 0xE1DCFF, ItemComb.Voltage.MV),
+ SALT(74, "salt", true, Materials.Salt, 90, 0xF0C8C8, 0xFAFAFA, ItemComb.Voltage.MV),
+ ELECTROTINE(75, "electrotine", true, Materials.Electrotine, 75, 0x1E90FF, 0x3CB4C8, ItemComb.Voltage.HV),
+ ALMANDINE(76, "almandine", true, Materials.Almandine, 85, 0xC60000, 0x8B8B8B, ItemComb.Voltage.LV),
+
+ // Radioactive Line
+ URANIUM(77, "uranium", true, Materials.Uranium, 50, 0x19AF19, 0x169E16, ItemComb.Voltage.IV),
+ PLUTONIUM(78, "plutonium", true, Materials.Plutonium, 10, 0x240000, 0x570000, ItemComb.Voltage.IV),
+ NAQUADAH(79, "naquadah", true, Materials.Naquadah, 10, 0x000000, 0x004400, ItemComb.Voltage.IV),
+ NAQUADRIA(80, "naquadria", true, Materials.Naquadria, 5, 0x000000, 0x002400, ItemComb.Voltage.IV),
+ DOB(81, "d-o-b", true, Materials._NULL, 50, 0x007700, 0x002400, ItemComb.Voltage.LV),
+ THORIUM(82, "thorium", true, Materials.Thorium, 75, 0x001E00, 0x005000, ItemComb.Voltage.EV),
+ LUTETIUM(83, "lutetium", true, Materials.Lutetium, 10, 0xE6FFE6, 0xFFFFFF, ItemComb.Voltage.IV),
+ AMERICIUM(84, "americium", true, Materials.Americium, 5, 0xE6E6FF, 0xC8C8C8, ItemComb.Voltage.LuV),
+ NEUTRONIUM(85, "neutronium", true, Materials.Neutronium, 2, 0xFFF0F0, 0xFAFAFA, ItemComb.Voltage.ZPM),
+
+ // Twilight
+ NAGA(86, "naga", true, Materials._NULL, 100, 0x0D5A0D, 0x28874B, ItemComb.Voltage.MV),
+ LICH(87, "lich", true, Materials._NULL, 90, 0x5C605E, 0xC5C5C5, ItemComb.Voltage.HV),
+ HYDRA(88, "hydra", true, Materials._NULL, 80, 0x872836, 0xB8132C, ItemComb.Voltage.HV),
+ URGHAST(89, "ur_ghast", true, Materials._NULL, 70, 0x7C0618, 0xA7041C, ItemComb.Voltage.EV),
+ SNOWQUEEN(90, "snow_queen", true, Materials._NULL, 60, 0x9C0018, 0xD02001, ItemComb.Voltage.EV),
+
+ // Space
+ SPACE(91, "space", true, Materials._NULL, 100, 0x003366, 0xC0C0C0, ItemComb.Voltage.HV),
+ METEORICIRON(92, "meteoric_iron", true, Materials.MeteoricIron, 100, 0x321928, 0x643250, ItemComb.Voltage.EV),
+ DESH(93, "desh", true, Materials.Desh, 90, 0x282828, 0x323232, ItemComb.Voltage.IV),
+ LEDOX(94, "ledox", true, Materials.Ledox, 75, 0x0000CD, 0x0074FF, ItemComb.Voltage.IV),
+ CALLISTOICE(95, "callisto_ice", true, Materials.CallistoIce, 75, 0x0074FF, 0x1EB1FF, ItemComb.Voltage.IV),
+ MYTRYL(96, "mytryl", true, Materials.Mytryl, 65, 0xDAA520, 0xF26404, ItemComb.Voltage.IV),
+ QUANTIUM(97, "quantium", true, Materials.Quantium, 50, 0x00FF00, 0x00D10B, ItemComb.Voltage.IV),
+ ORIHARUKON(98, "oriharukon", true, Materials.Oriharukon, 50, 0x228B22, 0x677D68, ItemComb.Voltage.IV),
+ MYSTERIOUSCRYSTAL(99, "mysterious_crystal", true, Materials.MysteriousCrystal, 45, 0x3CB371, 0x16856C,
+ ItemComb.Voltage.LuV),
+ BLACKPLUTONIUM(100, "black_plutonium", true, Materials.Quantium, 25, 0x000000, 0x323232, ItemComb.Voltage.LuV),
+ TRINIUM(101, "trinium", true, Materials.Trinium, 25, 0xB0E0E6, 0xC8C8D2, ItemComb.Voltage.ZPM),
+
+ // Planet
+ MERCURY(102, "mercury", true, Materials._NULL, 65, 0x4A4033, 0xB5A288, ItemComb.Voltage.EV),
+ VENUS(103, "venus", true, Materials._NULL, 65, 0x120E07, 0x272010, ItemComb.Voltage.EV),
+ MOON(104, "moon", true, Materials._NULL, 90, 0x373735, 0x7E7E78, ItemComb.Voltage.MV),
+ MARS(105, "mars", true, Materials._NULL, 80, 0x220D05, 0x3A1505, ItemComb.Voltage.MV),
+ JUPITER(106, "jupiter", true, Materials._NULL, 75, 0x734B2E, 0xD0CBC4, ItemComb.Voltage.MV),
+ SATURN(107, "saturn", true, Materials._NULL, 55, 0xD2A472, 0xF8C37B, ItemComb.Voltage.IV),
+ URANUS(108, "uranus", true, Materials._NULL, 45, 0x75C0C9, 0x84D8EC, ItemComb.Voltage.IV),
+ NEPTUNE(109, "neptune", true, Materials._NULL, 35, 0x334CFF, 0x576DFF, ItemComb.Voltage.IV),
+ PLUTO(110, "pluto", true, Materials._NULL, 25, 0x34271E, 0x69503D, ItemComb.Voltage.LuV),
+ HAUMEA(111, "haumea", true, Materials._NULL, 20, 0x1C1413, 0x392B28, ItemComb.Voltage.LuV),
+ MAKEMAKE(112, "makemake", true, Materials._NULL, 20, 0x301811, 0x120A07, ItemComb.Voltage.LuV),
+ CENTAURI(113, "centauri", true, Materials._NULL, 15, 0x2F2A14, 0xB06B32, ItemComb.Voltage.ZPM),
+ TCETI(114, "tceti", true, Materials._NULL, 10, 0x46241A, 0x7B412F, ItemComb.Voltage.ZPM),
+ BARNARDA(115, "barnarda", true, Materials._NULL, 10, 0x0D5A0D, 0xE6C18D, ItemComb.Voltage.ZPM),
+ VEGA(116, "vega", true, Materials._NULL, 10, 0x1A2036, 0xB5C0DE, ItemComb.Voltage.ZPM),
+
+ // Infinity
+ COSMICNEUTRONIUM(117, "cosmic_neutronium", true, Materials.CosmicNeutronium, 5, 0x484848, 0x323232,
+ ItemComb.Voltage.UV),
+ INFINITYCATALYST(118, "infinity_catalyst", true, Materials.InfinityCatalyst, 2, 0xFFFFFF, 0xFFFFFF,
+ ItemComb.Voltage.UHV),
+ INFINITY(119, "infinity", true, Materials.Infinity, 1, 0xFFFFFF, 0xFFFFFF, ItemComb.Voltage.UEV),
+
+ // HEE
+ ENDDUST(120, "end_dust", true, Materials._NULL, 50, 0x003A7D, 0xCC00FA, ItemComb.Voltage.HV),
+ ECTOPLASMA(121, "ectoplasma", true, Materials._NULL, 35, 0x381C40, 0xDCB0E5, ItemComb.Voltage.EV),
+ ARCANESHARD(122, "arcane_shard", true, Materials._NULL, 35, 0x333D82, 0x9010AD, ItemComb.Voltage.EV),
+ STARDUST(123, "stardust", true, Materials._NULL, 60, 0xDCBE13, 0xffff00, ItemComb.Voltage.HV),
+ DRAGONESSENCE(124, "dragon_essence", true, Materials._NULL, 30, 0x911ECE, 0xFFA12B, ItemComb.Voltage.IV),
+ ENDERMAN(125, "enderman", true, Materials._NULL, 25, 0x6200e7, 0x161616, ItemComb.Voltage.IV),
+ SILVERFISH(126, "silverfish", true, Materials._NULL, 25, 0x0000000, 0xEE053D, ItemComb.Voltage.EV),
+ ENDIUM(127, "endium", true, Materials.HeeEndium, 50, 0x2F5A6C, 0xa0ffff, ItemComb.Voltage.HV),
+ RUNEI(128, "rune_type_1", true, Materials._NULL, 10, 0x0104D9, 0xE31010, ItemComb.Voltage.IV),
+ RUNEII(129, "rune_type_2", true, Materials._NULL, 10, 0xE31010, 0x0104D9, ItemComb.Voltage.IV),
+ FIREESSENSE(130, "fire_essence", true, Materials._NULL, 30, 0xFFA157, 0xD41238, ItemComb.Voltage.IV),
+ CRYOLITE(131, "cryolite", true, Materials.Cryolite, 90, 0xBFEFFF, 0x73B9D0, ItemComb.Voltage.LV),
+ // (NOBLE) GAS LINE
+ HELIUM(132, "helium", true, Materials.Helium, 90, 0xFFA9FF, 0xFFFFC3, ItemComb.Voltage.HV),
+ ARGON(133, "argon", true, Materials.Argon, 95, 0x89D9E1, 0x160822, ItemComb.Voltage.MV),
+ // XENON, NEON and KRYPTON Fluid extractor Recipes are located in GT_MachineRecipeLoader.java
+ XENON(134, "xenon", true, Materials._NULL, 85, 0x160822, 0x8A97B0, ItemComb.Voltage.IV),
+ NEON(135, "neon", true, Materials._NULL, 90, 0xFF7200, 0xFFC826, ItemComb.Voltage.IV),
+ KRYPTON(136, "krypton", true, Materials._NULL, 85, 0x160822, 0x8A97B0, ItemComb.Voltage.IV),
+ NITROGEN(137, "nitrogen", true, Materials.Nitrogen, 100, 0xA52A2A, 0xFFC832, ItemComb.Voltage.MV),
+ OXYGEN(138, "oxygen", true, Materials.Oxygen, 100, 0x8F8FFF, 0xFFFFFF, ItemComb.Voltage.MV),
+ HYDROGEN(139, "hydrogen", true, Materials.Hydrogen, 100, 0xFF1493, 0xFFFFFF, ItemComb.Voltage.MV),
+ // Those are supposed to be in the organic branch, but that would require shifting all comb IDs and we don't want to
+ // risk it.
+ PHOSPHORUS(140, "phosphorus", true, Materials.Phosphorus, 100, 0xC1C1F6, 0xFFC826, ItemComb.Voltage.HV),
+ MICA(141, "mica", true, Materials.Mica, 100, 0x8A97B0, 0x2F3641, ItemComb.Voltage.HV),
+ // Seaweed is located in the planet line
+ SEAWEED(142, "seaweed", true, Materials._NULL, 90, 0x83FF83, 0xCBCBCB, ItemComb.Voltage.UV),
+ // just Walrus
+ WALRUS(143, "walrus", true, Materials._NULL, 100, 0xB5CFC9, 0xD6D580, ItemComb.Voltage.LV),
+ // TC infused Air shards line. Recipes in GT_MachineRecipeLoader.java Lines 1500+ + Nether/Endershard
+ INFUSEDAER(144, "infused_air", true, Materials._NULL, 100, 0x60602F, 0xFFFF7E, ItemComb.Voltage.LV),
+ INFUSEDTERRA(145, "infused_terra", true, Materials._NULL, 100, 0x003300, 0x008600, ItemComb.Voltage.LV),
+ INFUSEDIGNIS(146, "infused_ignis", true, Materials._NULL, 100, 0x3B0E00, 0xED3801, ItemComb.Voltage.LV),
+ INFUSEDAQUA(147, "infused_aqua", true, Materials._NULL, 100, 0x002542, 0x0090FF, ItemComb.Voltage.LV),
+ INFUSEDORDO(148, "infused_ordo", true, Materials._NULL, 100, 0x5C5F62, 0x8A97B0, ItemComb.Voltage.LV),
+ INFUSEDPERDITIO(149, "infused_perditio", true, Materials._NULL, 100, 0x232129, 0x2E2E41, ItemComb.Voltage.LV),
+ FLUORINE(150, "fluorine", true, Materials.Fluorine, 100, 0xFF6D00, 0x86AFF0, ItemComb.Voltage.MV),
+ BEDROCKIUM(151, "bedrockium", true, Materials.Bedrockium, 100, 0xC6C6C6, 0x0C0C0C, ItemComb.Voltage.EV),
+ NETHERSHARD(152, "nether_shard", true, Materials.Netherrack, 100, 0x350211, 0xBE0135, ItemComb.Voltage.HV),
+ ENDERSHARD(153, "ender_shard", true, Materials.EnderEye, 100, 0x232129, 0x2E2E41, ItemComb.Voltage.HV),
+ CAELESTISRED(154, "caelestis_red", true, Materials._NULL, 100, 0xFF0000, 0xFF00FF, ItemComb.Voltage.LV),
+ CAELESTISGREEN(155, "caelestis_green", true, Materials._NULL, 100, 0x00FF00, 0xB233FF, ItemComb.Voltage.LV),
+ CAELESTISBLUE(156, "caelestis_blue", true, Materials._NULL, 100, 0x0000FF, 0xFF99A5, ItemComb.Voltage.LV),
+ UNKNOWNLIQUID(157, "unknown_liquid", true, Materials._NULL, 100, 0x36ABFF, 0x4333A5, ItemComb.Voltage.ZPM),
+ // ESSENTIA gets a use soon. Dont remove.
+ ESSENTIA(158, "essentia", true, Materials._NULL, 100, 0xED3601, 0xFF6D50, ItemComb.Voltage.MV),
+ INDIUM(159, "indium", true, Materials.Indium, 100, 0x8F5D99, 0xFFA9FF, ItemComb.Voltage.ZPM),
+ BLIZZ(160, "blizz", true, Materials.Blizz, 50, 0xFF99A5, 0x5af7ff, ItemComb.Voltage.MV),
+ KEVLAR(161, "kevlar", true, Materials._NULL, 50, 0xa2baa3, 0x2d542f, ItemComb.Voltage.MV),
+ DRACONIC(162, "draconium", true, Materials.Draconium, 50, 0x161616, 0x6200e7, ItemComb.Voltage.MV),
+ AWAKENEDDRACONIUM(163, "awakened_draconium", true, Materials.DraconiumAwakened, 50, 0xD41238, 0xFFA157,
+ ItemComb.Voltage.MV),
+ PALLADIUM(164, "palladium", true, Materials.Palladium, 50, 0x8B8B8B, 0xF1D9D9, ItemComb.Voltage.MV),
+ INFUSEDGOLD(165, "infused_gold", true, Materials.InfusedGold, 50, 0x80641E, 0xFFC83C, ItemComb.Voltage.IV),
+
+ // Additions to rare metals, moved here so we don't shift all comb IDs
+ NEODYMIUM(166, "neodymium", true, Materials.Neodymium, 50, 0x555555, 0x4F4F4F, ItemComb.Voltage.HV),
+ EUROPIUM(167, "europium", true, Materials.Europium, 10, 0xDAA0E2, 0xAB7EB1, ItemComb.Voltage.LuV),
+
+ // ALWAYS KEEP _NULL AT THE BOTTOM
+ _NULL(-1, "INVALIDCOMB", false, Materials._NULL, 0, 0, 0);
+
+ public boolean showInList;
+ public final ItemComb.Voltage voltage;
+ public final Materials material;
+ public final int chance;
+
+ private final int id;
+ private final String localizedName;
+ private final int[] color;
+
+ CombType(int id, String pName, boolean show, Materials material, int chance, int color1, int color2) {
+ this(id, pName, show, material, chance, color1, color2, null);
+ }
+
+ CombType(int id, String pName, boolean show, Materials material, int chance, int color1, int color2,
+ ItemComb.Voltage voltage) {
+ if (id < 0 && !"INVALIDCOMB".equals(pName)) throw new IllegalArgumentException();
+ this.id = id;
+ this.voltage = voltage;
+ this.material = material;
+ this.chance = chance;
+ this.showInList = show;
+ this.color = new int[] { color1, color2 };
+ this.localizedName = GT_LanguageManager
+ .addStringLocalization("comb." + pName, WordUtils.capitalize(pName.replaceAll("_", " ")) + " Comb");
+ }
+
+ public void setHidden() {
+ this.showInList = false;
+ }
+
+ public String getName() {
+
+ return this.localizedName;
+ }
+
+ public int[] getColours() {
+ return color == null || color.length != 2 ? new int[] { 0, 0 } : color;
+ }
+
+ public int getId() {
+ return id;
+ }
+
+ public static CombType valueOf(int id) {
+ return id < 0 || id >= Companion.VALUES.length ? _NULL : Companion.VALUES[id];
+ }
+
+ private static final class Companion {
+
+ private static final CombType[] VALUES;
+
+ static {
+ int biggestId = Arrays.stream(CombType.values())
+ .mapToInt(CombType::getId)
+ .max()
+ .getAsInt();
+ VALUES = new CombType[biggestId + 1];
+ Arrays.fill(VALUES, _NULL);
+ for (CombType type : CombType.values()) {
+ if (type != _NULL) VALUES[type.getId()] = type;
+ }
+ }
+ }
+}
diff --git a/src/main/java/gregtech/common/items/DropType.java b/src/main/java/gregtech/common/items/DropType.java
new file mode 100644
index 0000000000..1f9523a5b7
--- /dev/null
+++ b/src/main/java/gregtech/common/items/DropType.java
@@ -0,0 +1,45 @@
+package gregtech.common.items;
+
+import org.apache.commons.lang3.text.WordUtils;
+
+import gregtech.api.enums.Materials;
+import gregtech.api.util.GT_LanguageManager;
+
+public enum DropType {
+
+ OIL("oil", true),
+ MUTAGEN("small mutagen catalyst", true),
+ COOLANT("coolant", true),
+ HOT_COOLANT("hot coolant", true),
+ HYDRA("hydra blood", true),
+ SNOW_QUEEN("snow queen blood", true),
+ OXYGEN("oxygen", true),
+ LAPIS("lapis coolant", true),
+ ENDERGOO("ender goo", true);
+
+ private static final 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 final String name;
+
+ 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, WordUtils.capitalize(this.name) + " Drop");
+ }
+
+ public int[] getColours() {
+ return colours[this.ordinal()];
+ }
+}
diff --git a/src/main/java/gregtech/common/items/GT_AdvancedSensorCard_Item.java b/src/main/java/gregtech/common/items/GT_AdvancedSensorCard_Item.java
new file mode 100644
index 0000000000..723a7ffad5
--- /dev/null
+++ b/src/main/java/gregtech/common/items/GT_AdvancedSensorCard_Item.java
@@ -0,0 +1,330 @@
+package gregtech.common.items;
+
+import static gregtech.api.enums.Mods.GregTech;
+import static gregtech.common.covers.GT_Cover_Metrics_Transmitter.CARD_STATE_KEY;
+import static gregtech.common.covers.GT_Cover_Metrics_Transmitter.FREQUENCY_LSB_KEY;
+import static gregtech.common.covers.GT_Cover_Metrics_Transmitter.FREQUENCY_MSB_KEY;
+import static gregtech.common.covers.GT_Cover_Metrics_Transmitter.MACHINE_KEY;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Optional;
+import java.util.UUID;
+import java.util.function.Predicate;
+import java.util.stream.IntStream;
+
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.util.EnumChatFormatting;
+import net.minecraft.util.IIcon;
+import net.minecraft.util.StatCollector;
+import net.minecraft.world.World;
+
+import org.jetbrains.annotations.NotNull;
+
+import com.google.common.collect.ImmutableList;
+
+import cpw.mods.fml.common.registry.GameRegistry;
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import gregtech.common.misc.GlobalMetricsCoverDatabase;
+import gregtech.common.misc.GlobalMetricsCoverDatabase.State;
+import shedar.mods.ic2.nuclearcontrol.api.CardState;
+import shedar.mods.ic2.nuclearcontrol.api.ICardWrapper;
+import shedar.mods.ic2.nuclearcontrol.api.IPanelDataSource;
+import shedar.mods.ic2.nuclearcontrol.api.PanelSetting;
+import shedar.mods.ic2.nuclearcontrol.api.PanelString;
+
+@SuppressWarnings("unused")
+public class GT_AdvancedSensorCard_Item extends Item implements IPanelDataSource {
+
+ public static final UUID CARD_TYPE_ID = UUID.fromString("ff952e84-7608-4c4a-85af-dd6e1aa27fc7");
+
+ // This has obfuscated formatting, so no need to localize it.
+ private static final String SELF_DESTRUCTED_OUTPUT = EnumChatFormatting.OBFUSCATED + "critical error"
+ + EnumChatFormatting.RESET;
+
+ private static final ImmutableList<String> DECONSTRUCTED_OUTPUT = ImmutableList.of(
+ StatCollector.translateToLocal("gt.item.adv_sensor_card.error.deconstructed.1"),
+ StatCollector.translateToLocal("gt.item.adv_sensor_card.error.deconstructed.2"));
+
+ private static final String NO_DATA_FOUND = StatCollector.translateToLocal("gt.item.adv_sensor_card.error.no_data");
+
+ private static final String MACHINE_NAME_KEY = "client_machine_name";
+ private static final String OUTPUT_ENTRY_KEY = "client_entry_%d";
+ private static final String OUTPUT_ENTRY_LENGTH_KEY = "client_entry_length";
+
+ private int payloadSize = 0;
+
+ @SideOnly(Side.CLIENT)
+ private IIcon normalIcon;
+ @SideOnly(Side.CLIENT)
+ private IIcon selfDestructedIcon;
+
+ @SuppressWarnings("unused")
+ public GT_AdvancedSensorCard_Item() {
+ super();
+
+ GameRegistry.registerItem(this, "gt.advancedsensorcard", GregTech.ID);
+ setUnlocalizedName("gt.advancedsensorcard");
+ setMaxStackSize(1);
+ setNoRepair();
+ }
+
+ @Override
+ public void addInformation(final ItemStack itemStack, final EntityPlayer player, final List<String> tooltip,
+ final boolean p_77624_4_) {
+ super.addInformation(itemStack, player, tooltip, p_77624_4_);
+
+ final Optional<State> cardState = getCardState(itemStack);
+ if (cardState.isPresent()) {
+ final State state = cardState.get();
+
+ if (state == State.SELF_DESTRUCTED) {
+ tooltip.add(StatCollector.translateToLocal("gt.item.adv_sensor_card.tooltip.fried.1"));
+ tooltip.add(StatCollector.translateToLocal("gt.item.adv_sensor_card.tooltip.fried.2"));
+ tooltip.add(StatCollector.translateToLocal("gt.item.adv_sensor_card.tooltip.fried.3"));
+ } else {
+ getMachineName(itemStack).ifPresent(
+ machineName -> tooltip.add(
+ StatCollector
+ .translateToLocalFormatted("gt.item.adv_sensor_card.tooltip.machine", machineName)));
+ getUUID(itemStack).ifPresent(
+ uuid -> tooltip.add(
+ StatCollector
+ .translateToLocalFormatted("gt.item.adv_sensor_card.tooltip.frequency", uuid.toString())));
+ }
+ } else {
+ tooltip.add(StatCollector.translateToLocal("gt.item.adv_sensor_card.tooltip.recipe_hint"));
+ }
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void getSubItems(Item aItem, CreativeTabs aCreativeTab, List<ItemStack> aOutputSubItems) {}
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void registerIcons(final IIconRegister aIconRegister) {
+ super.registerIcons(aIconRegister);
+ itemIcon = aIconRegister.registerIcon(GregTech.ID + ":gt.advancedsensorcard");
+ normalIcon = itemIcon;
+ selfDestructedIcon = aIconRegister.registerIcon(GregTech.ID + ":gt.advancedsensorcardburned");
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public IIcon getIcon(final ItemStack stack, final int renderPass) {
+ return getIconIndex(stack);
+ }
+
+ @Override
+ public IIcon getIconIndex(final ItemStack itemStack) {
+ return getCardState(itemStack).filter(Predicate.isEqual(State.SELF_DESTRUCTED))
+ .map(ignored -> selfDestructedIcon)
+ .orElse(normalIcon);
+ }
+
+ @Override
+ public CardState update(TileEntity tileEntity, ICardWrapper card, int maxRange) {
+ return update(tileEntity.getWorldObj(), card, maxRange);
+ }
+
+ @Override
+ public CardState update(World world, ICardWrapper card, int maxRange) {
+ final Optional<GlobalMetricsCoverDatabase.Data> optionalData = getDataFromDatabase(card);
+
+ optionalData.ifPresent(data -> {
+ final State machineState = data.getState();
+ reconcileSelfDestructedCard(card.getItemStack(), machineState);
+ card.setInt(CARD_STATE_KEY, machineState.getType());
+
+ getMachineName(card.getItemStack())
+ .ifPresent(name -> card.setString(MACHINE_NAME_KEY, machineState == State.SELF_DESTRUCTED ? "" : name));
+
+ final ImmutableList.Builder<String> builder = ImmutableList.builder();
+ switch (machineState) {
+ case SELF_DESTRUCTED -> builder.add(SELF_DESTRUCTED_OUTPUT);
+ case HOST_DECONSTRUCTED -> builder.addAll(DECONSTRUCTED_OUTPUT);
+ case OPERATIONAL -> {
+ data.getCoordinates()
+ .ifPresent(
+ coordinates -> builder.add(
+ StatCollector.translateToLocalFormatted(
+ "gt.item.adv_sensor_card.dimension",
+ coordinates.getDimension()),
+ StatCollector.translateToLocalFormatted(
+ "gt.item.adv_sensor_card.coords",
+ coordinates.getLocalizedCoordinates())));
+
+ data.getPayload()
+ .ifPresent(builder::addAll);
+ }
+ default -> builder.add(NO_DATA_FOUND);
+ }
+
+ final List<String> payload = builder.build();
+ card.setInt(OUTPUT_ENTRY_LENGTH_KEY, payload.size());
+ for (int i = 0; i < payload.size(); i++) {
+ final String payloadItem = payload.get(i);
+ if (!payloadItem.isEmpty()) {
+ card.setString(String.format(OUTPUT_ENTRY_KEY, i), payloadItem);
+ }
+ }
+ });
+
+ return CardState.OK;
+ }
+
+ @Override
+ public List<PanelString> getStringData(final int displaySettings, final ICardWrapper card,
+ final boolean showLabels) {
+ final List<PanelString> returned = new ArrayList<>();
+ final String machineName = card.getString(MACHINE_NAME_KEY);
+ final int bitmaskOffset;
+
+ payloadSize = card.getInt(OUTPUT_ENTRY_LENGTH_KEY);
+
+ if (!machineName.isEmpty() && (displaySettings & 1) != 0) {
+ returned.add(panelString(machineName, true));
+ payloadSize += 1;
+ bitmaskOffset = 1;
+ } else {
+ bitmaskOffset = 0;
+ }
+
+ // Not reusing payloadSize here because it can be conditionally mutated.
+ IntStream.range(0, card.getInt(OUTPUT_ENTRY_LENGTH_KEY))
+ .forEach(i -> {
+ if ((displaySettings & 1 << (i + bitmaskOffset)) != 0) {
+ returned.add(panelString(card.getString(String.format(OUTPUT_ENTRY_KEY, i))));
+ }
+ });
+
+ return returned;
+ }
+
+ @Override
+ public List<PanelSetting> getSettingsList() {
+ return payloadSize == 0 ? ImmutableList.of()
+ : ImmutableList.copyOf(
+ IntStream.range(0, Math.min(payloadSize, 31))
+ .mapToObj(i -> new PanelSetting(String.valueOf(i + 1), 1 << i, getCardType()))
+ .iterator());
+ }
+
+ @Override
+ public UUID getCardType() {
+ return CARD_TYPE_ID;
+ }
+
+ @Override
+ public void onUpdate(ItemStack stack, World worldIn, Entity entityIn, int slot, boolean isHeld) {
+ super.onUpdate(stack, worldIn, entityIn, slot, isHeld);
+ // At the time of this comment's writing, there are 52 matches of the regex:
+ // /% \d+0 \)?\s*== 0/ in the code base, indicating an over-reliance on events happening on either the 10th or
+ // 20th tick. Let's tick on something slightly off of that. A prime number will do nicely.
+ if ((worldIn.getWorldTime() % 20) == 13) {
+ getDataFromDatabase(stack).ifPresent(data -> {
+ reconcileSelfDestructedCard(stack, data.getState());
+ if (!stack.hasTagCompound()) {
+ stack.setTagCompound(new NBTTagCompound());
+ }
+
+ stack.getTagCompound()
+ .setInteger(
+ CARD_STATE_KEY,
+ data.getState()
+ .getType());
+ });
+ }
+ }
+
+ private void reconcileSelfDestructedCard(ItemStack stack, State newState) {
+ getUUID(stack).ifPresent(uuid -> getCardState(stack).ifPresent(oldState -> {
+ if (newState == State.SELF_DESTRUCTED && oldState != State.SELF_DESTRUCTED) {
+ GlobalMetricsCoverDatabase.clearSelfDestructedFrequency(uuid);
+ }
+ }));
+
+ }
+
+ @NotNull
+ private Optional<State> getCardState(ICardWrapper card) {
+ return getCardState(card.getItemStack());
+ }
+
+ @NotNull
+ private Optional<State> getCardState(ItemStack itemStack) {
+ if (itemStack.hasTagCompound() && itemStack.getTagCompound()
+ .hasKey(CARD_STATE_KEY)) {
+ return State.find(
+ itemStack.getTagCompound()
+ .getInteger(CARD_STATE_KEY));
+ }
+
+ return Optional.empty();
+ }
+
+ @NotNull
+ private Optional<UUID> getUUID(ItemStack stack) {
+ if (stack.hasTagCompound()) {
+ NBTTagCompound nbt = stack.getTagCompound();
+ if (nbt.hasKey(FREQUENCY_LSB_KEY) && nbt.hasKey(FREQUENCY_MSB_KEY)) {
+ return Optional.of(new UUID(nbt.getLong(FREQUENCY_MSB_KEY), nbt.getLong(FREQUENCY_LSB_KEY)));
+ }
+ }
+
+ return Optional.empty();
+ }
+
+ @NotNull
+ private Optional<String> getMachineName(ItemStack stack) {
+ if (stack.hasTagCompound() && stack.getTagCompound()
+ .hasKey(MACHINE_KEY)) {
+ try {
+ final ItemStack machine = ItemStack.loadItemStackFromNBT(
+ stack.getTagCompound()
+ .getCompoundTag(MACHINE_KEY));
+ if (machine != null) {
+ return Optional.of(machine.getDisplayName());
+ }
+ } catch (Exception ignored) {}
+ }
+
+ return Optional.empty();
+ }
+
+ @NotNull
+ private Optional<GlobalMetricsCoverDatabase.Data> getDataFromDatabase(ICardWrapper card) {
+ return getDataFromDatabase(card.getItemStack());
+ }
+
+ @NotNull
+ private Optional<GlobalMetricsCoverDatabase.Data> getDataFromDatabase(ItemStack stack) {
+ return getUUID(stack).flatMap(GlobalMetricsCoverDatabase::getData);
+ }
+
+ @NotNull
+ private static PanelString panelString(String info) {
+ return panelString(info, false);
+ }
+
+ @NotNull
+ private static PanelString panelString(String info, boolean center) {
+ final PanelString panelString = new PanelString();
+ if (center) {
+ panelString.textCenter = info;
+ } else {
+ panelString.textLeft = info;
+ }
+ return panelString;
+
+ }
+}
diff --git a/src/main/java/gregtech/common/items/GT_DepletetCell_Item.java b/src/main/java/gregtech/common/items/GT_DepletetCell_Item.java
new file mode 100644
index 0000000000..df14adc39b
--- /dev/null
+++ b/src/main/java/gregtech/common/items/GT_DepletetCell_Item.java
@@ -0,0 +1,49 @@
+package gregtech.common.items;
+
+import net.minecraft.item.ItemStack;
+
+import gregtech.api.items.GT_RadioactiveCellIC_Item;
+import ic2.api.reactor.IReactor;
+
+public class GT_DepletetCell_Item extends GT_RadioactiveCellIC_Item {
+
+ public GT_DepletetCell_Item(String aUnlocalized, String aEnglish, int aRadiation) {
+ super(aUnlocalized, aEnglish, 1, 1, 0, aRadiation, 0, null, false);
+ }
+
+ @Override
+ public void processChamber(IReactor paramIReactor, ItemStack paramItemStack, int paramInt1, int paramInt2,
+ boolean paramBoolean) {}
+
+ @Override
+ public boolean acceptUraniumPulse(IReactor paramIReactor, ItemStack paramItemStack1, ItemStack paramItemStack2,
+ int paramInt1, int paramInt2, int paramInt3, int paramInt4, boolean paramBoolean) {
+ return false;
+ }
+
+ @Override
+ public boolean canStoreHeat(IReactor paramIReactor, ItemStack paramItemStack, int paramInt1, int paramInt2) {
+ return false;
+ }
+
+ @Override
+ public int getMaxHeat(IReactor paramIReactor, ItemStack paramItemStack, int paramInt1, int paramInt2) {
+ return 0;
+ }
+
+ @Override
+ public int getCurrentHeat(IReactor paramIReactor, ItemStack paramItemStack, int paramInt1, int paramInt2) {
+ return 0;
+ }
+
+ @Override
+ public int alterHeat(IReactor paramIReactor, ItemStack paramItemStack, int paramInt1, int paramInt2,
+ int paramInt3) {
+ return 0;
+ }
+
+ @Override
+ public float influenceExplosion(IReactor paramIReactor, ItemStack paramItemStack) {
+ return 0.0F;
+ }
+}
diff --git a/src/main/java/gregtech/common/items/GT_FluidDisplayItem.java b/src/main/java/gregtech/common/items/GT_FluidDisplayItem.java
new file mode 100644
index 0000000000..850fe21811
--- /dev/null
+++ b/src/main/java/gregtech/common/items/GT_FluidDisplayItem.java
@@ -0,0 +1,181 @@
+package gregtech.common.items;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.stream.Stream;
+
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.util.EnumChatFormatting;
+import net.minecraft.util.IIcon;
+import net.minecraftforge.fluids.Fluid;
+import net.minecraftforge.fluids.FluidRegistry;
+import net.minecraftforge.fluids.FluidStack;
+import net.minecraftforge.oredict.OreDictionary;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import gregtech.api.enums.GT_Values;
+import gregtech.api.enums.ItemList;
+import gregtech.api.enums.Materials;
+import gregtech.api.items.GT_Generic_Item;
+import gregtech.api.util.GT_Utility;
+
+public class GT_FluidDisplayItem extends GT_Generic_Item {
+
+ private static final Map<Fluid, String> sFluidTooltips = new HashMap<>();
+
+ public GT_FluidDisplayItem() {
+ super("GregTech_FluidDisplay", "Fluid Display", null);
+ ItemList.Display_Fluid.set(this);
+ }
+
+ @Override
+ protected void addAdditionalToolTips(List<String> aList, ItemStack aStack, EntityPlayer aPlayer) {
+ if (FluidRegistry.getFluid(aStack.getItemDamage()) != null) {
+ String tChemicalFormula = getChemicalFormula(
+ new FluidStack(FluidRegistry.getFluid(aStack.getItemDamage()), 1));
+ if (!tChemicalFormula.isEmpty())
+ aList.add(EnumChatFormatting.YELLOW + tChemicalFormula + EnumChatFormatting.RESET);
+ }
+ NBTTagCompound aNBT = aStack.getTagCompound();
+ if (GT_Values.D1 || Minecraft.getMinecraft().gameSettings.advancedItemTooltips) {
+ Fluid tFluid = FluidRegistry.getFluid(aStack.getItemDamage());
+ if (tFluid != null) {
+ aList.add("Registry: " + tFluid.getName());
+ }
+ }
+ if (aNBT != null) {
+ long tToolTipAmount = aNBT.getLong("mFluidDisplayAmount");
+ if (tToolTipAmount > 0L) {
+ aList.add(
+ EnumChatFormatting.BLUE + "Amount: "
+ + GT_Utility.formatNumbers(tToolTipAmount)
+ + " L"
+ + EnumChatFormatting.GRAY);
+ }
+ aList.add(
+ EnumChatFormatting.RED + "Temperature: "
+ + GT_Utility.formatNumbers(aNBT.getLong("mFluidDisplayHeat"))
+ + " K"
+ + EnumChatFormatting.GRAY);
+ aList.add(
+ EnumChatFormatting.GREEN
+ + String.format(transItem("018", "State: %s"), aNBT.getBoolean("mFluidState") ? "Gas" : "Liquid")
+ + EnumChatFormatting.GRAY);
+ }
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void registerIcons(IIconRegister aIconRegister) {}
+
+ @Override
+ public IIcon getIconFromDamage(int aMetaData) {
+ return Stream.of(FluidRegistry.getFluid(aMetaData), FluidRegistry.WATER)
+ .filter(Objects::nonNull)
+ .map(Fluid::getStillIcon)
+ .filter(Objects::nonNull)
+ .findFirst()
+ .orElseThrow(IllegalStateException::new);
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public int getColorFromItemStack(ItemStack aStack, int aRenderPass) {
+ Fluid tFluid = FluidRegistry.getFluid(aStack.getItemDamage());
+ return tFluid == null ? 16777215 : tFluid.getColor();
+ }
+
+ @Override
+ public int getSpriteNumber() {
+ return 0;
+ }
+
+ @Override
+ public String getUnlocalizedName(ItemStack aStack) {
+ if (aStack != null) {
+ return GT_Utility.getFluidName(FluidRegistry.getFluid(aStack.getItemDamage()), false);
+ }
+ return "";
+ }
+
+ @Override
+ public String getItemStackDisplayName(ItemStack aStack) {
+ if (aStack != null) {
+ return GT_Utility.getFluidName(FluidRegistry.getFluid(aStack.getItemDamage()), true);
+ }
+ return "";
+ }
+
+ @SideOnly(Side.CLIENT)
+ public static String getChemicalFormula(FluidStack aRealFluid) {
+ return sFluidTooltips.computeIfAbsent(aRealFluid.getFluid(), fluid -> {
+ for (ItemStack tContainer : GT_Utility.getContainersFromFluid(aRealFluid)) {
+ if (isCell(tContainer)) {
+ Materials tMaterial = getMaterialFromCell(tContainer);
+ if (!tMaterial.equals(Materials._NULL)) {
+ if (tMaterial.mChemicalFormula.equals("?")) {
+ return "";
+ } else {
+ return tMaterial.mChemicalFormula;
+ }
+ } else {
+ // For GT++ Fluid Display
+ // GT++ didn't register a Material in GT, so I have too find the Chemical Formula in its cell's
+ // tooltip
+ List<String> tTooltip = tContainer.getTooltip(null, true);
+ for (String tInfo : tTooltip) {
+ if (!tInfo.contains(" ") && !tInfo.contains(":") && tTooltip.indexOf(tInfo) != 0) {
+ return tInfo;
+ }
+ }
+ }
+ }
+ }
+ return "";
+ });
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void getSubItems(Item aItem, CreativeTabs aTab, List<ItemStack> aList) {
+ if (GT_Values.D1) {
+ int i = 0;
+ for (int j = FluidRegistry.getMaxID(); i < j; i++) {
+ ItemStack tStack = GT_Utility.getFluidDisplayStack(FluidRegistry.getFluid(i));
+ if (tStack != null) {
+ aList.add(tStack);
+ }
+ }
+ }
+ }
+
+ public static boolean isCell(ItemStack tItemStack) {
+ for (int tOreDict : OreDictionary.getOreIDs(tItemStack)) {
+ String tOreDictName = OreDictionary.getOreName(tOreDict);
+ if (tOreDictName.startsWith("cell")) return true;
+ }
+ return false;
+ }
+
+ public static Materials getMaterialFromCell(ItemStack tItemStack) {
+ for (int tOreDict : OreDictionary.getOreIDs(tItemStack)) {
+ String tOreDictName = OreDictionary.getOreName(tOreDict);
+ if (tOreDictName.startsWith("cell")) {
+ return Materials.getRealMaterial(
+ tOreDictName.replace("cell", "")
+ .replace("Molten", "")
+ .replace("Plasma", ""));
+ }
+ }
+ return Materials._NULL;
+ }
+}
diff --git a/src/main/java/gregtech/common/items/GT_IntegratedCircuit_Item.java b/src/main/java/gregtech/common/items/GT_IntegratedCircuit_Item.java
new file mode 100644
index 0000000000..d0ef03a1ae
--- /dev/null
+++ b/src/main/java/gregtech/common/items/GT_IntegratedCircuit_Item.java
@@ -0,0 +1,328 @@
+package gregtech.common.items;
+
+import static gregtech.GT_Mod.GT_FML_LOGGER;
+import static gregtech.api.enums.Mods.GregTech;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.function.BiFunction;
+import java.util.function.Predicate;
+
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.entity.player.EntityPlayerMP;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.util.ChatComponentText;
+import net.minecraft.util.ChatComponentTranslation;
+import net.minecraft.util.IIcon;
+import net.minecraft.util.StatCollector;
+import net.minecraft.world.World;
+import net.minecraftforge.common.util.Constants;
+import net.minecraftforge.common.util.FakePlayer;
+
+import org.apache.commons.lang3.tuple.Pair;
+
+import com.gtnewhorizons.modularui.api.UIInfos;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import gregtech.api.GregTech_API;
+import gregtech.api.enums.GT_Values;
+import gregtech.api.enums.ItemList;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.OrePrefixes;
+import gregtech.api.interfaces.INetworkUpdatableItem;
+import gregtech.api.items.GT_Generic_Item;
+import gregtech.api.net.GT_Packet_UpdateItem;
+import gregtech.api.objects.XSTR;
+import gregtech.api.util.GT_Config;
+import gregtech.api.util.GT_LanguageManager;
+import gregtech.api.util.GT_Log;
+import gregtech.api.util.GT_ModHandler;
+import gregtech.api.util.GT_Utility;
+import gregtech.common.gui.modularui.uifactory.SelectItemUIFactory;
+
+public class GT_IntegratedCircuit_Item extends GT_Generic_Item implements INetworkUpdatableItem {
+
+ private static final String aTextEmptyRow = " ";
+ private static final List<ItemStack> ALL_VARIANTS = new ArrayList<>();
+ protected final IIcon[] mIconDamage = new IIcon[25];
+
+ public GT_IntegratedCircuit_Item() {
+ super("integrated_circuit", "Programmed Circuit", "");
+ setHasSubtypes(true);
+ setMaxDamage(0);
+
+ ItemList.Circuit_Integrated.set(this);
+
+ ALL_VARIANTS.add(new ItemStack(this, 0, 0));
+ for (int i = 1; i <= 24; i++) {
+ ItemStack aStack = new ItemStack(this, 0, i);
+ GregTech_API.registerConfigurationCircuit(aStack, 1);
+ ALL_VARIANTS.add(aStack);
+ }
+
+ GT_ModHandler.addShapelessCraftingRecipe(
+ ItemList.Circuit_Integrated.getWithDamage(1L, 0L),
+ GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { OrePrefixes.circuit.get(Materials.LV) });
+ long bits = GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE;
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Circuit_Integrated.getWithDamage(1L, 1L),
+ bits,
+ new Object[] { "d ", " P ", aTextEmptyRow, 'P', ItemList.Circuit_Integrated.getWildcard(1L) });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Circuit_Integrated.getWithDamage(1L, 2L),
+ bits,
+ new Object[] { " d ", " P ", aTextEmptyRow, 'P', ItemList.Circuit_Integrated.getWildcard(1L) });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Circuit_Integrated.getWithDamage(1L, 3L),
+ bits,
+ new Object[] { " d", " P ", aTextEmptyRow, 'P', ItemList.Circuit_Integrated.getWildcard(1L) });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Circuit_Integrated.getWithDamage(1L, 4L),
+ bits,
+ new Object[] { aTextEmptyRow, " Pd", aTextEmptyRow, 'P', ItemList.Circuit_Integrated.getWildcard(1L) });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Circuit_Integrated.getWithDamage(1L, 5L),
+ bits,
+ new Object[] { aTextEmptyRow, " P ", " d", 'P', ItemList.Circuit_Integrated.getWildcard(1L) });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Circuit_Integrated.getWithDamage(1L, 6L),
+ bits,
+ new Object[] { aTextEmptyRow, " P ", " d ", 'P', ItemList.Circuit_Integrated.getWildcard(1L) });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Circuit_Integrated.getWithDamage(1L, 7L),
+ bits,
+ new Object[] { aTextEmptyRow, " P ", "d ", 'P', ItemList.Circuit_Integrated.getWildcard(1L) });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Circuit_Integrated.getWithDamage(1L, 8L),
+ bits,
+ new Object[] { aTextEmptyRow, "dP ", aTextEmptyRow, 'P', ItemList.Circuit_Integrated.getWildcard(1L) });
+
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Circuit_Integrated.getWithDamage(1L, 9L),
+ bits,
+ new Object[] { "P d", aTextEmptyRow, aTextEmptyRow, 'P', ItemList.Circuit_Integrated.getWildcard(1L) });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Circuit_Integrated.getWithDamage(1L, 10L),
+ bits,
+ new Object[] { "P ", " d", aTextEmptyRow, 'P', ItemList.Circuit_Integrated.getWildcard(1L) });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Circuit_Integrated.getWithDamage(1L, 11L),
+ bits,
+ new Object[] { "P ", aTextEmptyRow, " d", 'P', ItemList.Circuit_Integrated.getWildcard(1L) });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Circuit_Integrated.getWithDamage(1L, 12L),
+ bits,
+ new Object[] { "P ", aTextEmptyRow, " d ", 'P', ItemList.Circuit_Integrated.getWildcard(1L) });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Circuit_Integrated.getWithDamage(1L, 13L),
+ bits,
+ new Object[] { " P", aTextEmptyRow, " d", 'P', ItemList.Circuit_Integrated.getWildcard(1L) });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Circuit_Integrated.getWithDamage(1L, 14L),
+ bits,
+ new Object[] { " P", aTextEmptyRow, " d ", 'P', ItemList.Circuit_Integrated.getWildcard(1L) });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Circuit_Integrated.getWithDamage(1L, 15L),
+ bits,
+ new Object[] { " P", aTextEmptyRow, "d ", 'P', ItemList.Circuit_Integrated.getWildcard(1L) });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Circuit_Integrated.getWithDamage(1L, 16L),
+ bits,
+ new Object[] { " P", "d ", aTextEmptyRow, 'P', ItemList.Circuit_Integrated.getWildcard(1L) });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Circuit_Integrated.getWithDamage(1L, 17L),
+ bits,
+ new Object[] { aTextEmptyRow, aTextEmptyRow, "d P", 'P', ItemList.Circuit_Integrated.getWildcard(1L) });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Circuit_Integrated.getWithDamage(1L, 18L),
+ bits,
+ new Object[] { aTextEmptyRow, "d ", " P", 'P', ItemList.Circuit_Integrated.getWildcard(1L) });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Circuit_Integrated.getWithDamage(1L, 19L),
+ bits,
+ new Object[] { "d ", aTextEmptyRow, " P", 'P', ItemList.Circuit_Integrated.getWildcard(1L) });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Circuit_Integrated.getWithDamage(1L, 20L),
+ bits,
+ new Object[] { " d ", aTextEmptyRow, " P", 'P', ItemList.Circuit_Integrated.getWildcard(1L) });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Circuit_Integrated.getWithDamage(1L, 21L),
+ bits,
+ new Object[] { "d ", aTextEmptyRow, "P ", 'P', ItemList.Circuit_Integrated.getWildcard(1L) });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Circuit_Integrated.getWithDamage(1L, 22L),
+ bits,
+ new Object[] { " d ", aTextEmptyRow, "P ", 'P', ItemList.Circuit_Integrated.getWildcard(1L) });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Circuit_Integrated.getWithDamage(1L, 23L),
+ bits,
+ new Object[] { " d", aTextEmptyRow, "P ", 'P', ItemList.Circuit_Integrated.getWildcard(1L) });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Circuit_Integrated.getWithDamage(1L, 24L),
+ bits,
+ new Object[] { aTextEmptyRow, " d", "P ", 'P', ItemList.Circuit_Integrated.getWildcard(1L) });
+ }
+
+ private static String getModeString(int aMetaData) {
+ return switch ((byte) (aMetaData >>> 8)) {
+ case 0 -> "==";
+ case 1 -> "<=";
+ case 2 -> ">=";
+ case 3 -> "<";
+ case 4 -> ">";
+ default -> "";
+ };
+ }
+
+ private static String getConfigurationString(int aMetaData) {
+ return getModeString(aMetaData) + " " + (byte) (aMetaData & 0xFF);
+ }
+
+ @Override
+ public void addAdditionalToolTips(List<String> aList, ItemStack aStack, EntityPlayer aPlayer) {
+ super.addAdditionalToolTips(aList, aStack, aPlayer);
+ aList.add(
+ GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".configuration", "Configuration: ")
+ + getConfigurationString(getDamage(aStack)));
+ aList.add(
+ GT_LanguageManager
+ .addStringLocalization(getUnlocalizedName() + ".tooltip.0", "Right click to reconfigure"));
+ aList.add(
+ GT_LanguageManager.addStringLocalization(
+ getUnlocalizedName() + ".tooltip.1",
+ "Needs a screwdriver or circuit programming tool"));
+ }
+
+ @Override
+ public String getUnlocalizedName(ItemStack aStack) {
+ return getUnlocalizedName();
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public final void getSubItems(Item aItem, CreativeTabs aCreativeTab, List<ItemStack> aList) {
+ aList.add(new ItemStack(this, 1, 0));
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void registerIcons(IIconRegister aIconRegister) {
+ super.registerIcons(aIconRegister);
+ for (int i = 0; i < mIconDamage.length; i++) {
+ mIconDamage[i] = aIconRegister
+ .registerIcon(GregTech.getResourcePath(GT_Config.troll ? "troll" : getUnlocalizedName() + "/" + i));
+ }
+ if (GregTech_API.sPostloadFinished) {
+ GT_Log.out.println("GT_Mod: Starting Item Icon Load Phase");
+ GT_FML_LOGGER.info("GT_Mod: Starting Item Icon Load Phase");
+ GregTech_API.sItemIcons = aIconRegister;
+ try {
+ for (Runnable tRunnable : GregTech_API.sGTItemIconload) {
+ tRunnable.run();
+ }
+ } catch (Throwable e) {
+ e.printStackTrace(GT_Log.err);
+ }
+ GT_Log.out.println("GT_Mod: Finished Item Icon Load Phase");
+ GT_FML_LOGGER.info("GT_Mod: Finished Item Icon Load Phase");
+ }
+ }
+
+ @Override
+ public IIcon getIconFromDamage(int aMetaData) {
+ byte circuitMode = ((byte) (aMetaData & 0xFF)); // Mask out the MSB Comparison Mode Bits. See: getModeString
+ return mIconDamage[circuitMode < mIconDamage.length ? circuitMode : 0];
+ }
+
+ @Override
+ public boolean receive(ItemStack stack, EntityPlayerMP player, NBTTagCompound tag) {
+ int meta = tag.hasKey("meta", Constants.NBT.TAG_BYTE) ? tag.getByte("meta") : -1;
+ if (meta < 0 || meta > 24) return true;
+
+ if (!player.capabilities.isCreativeMode) {
+ Pair<Integer, BiFunction<ItemStack, EntityPlayerMP, ItemStack>> toolIndex = findConfiguratorInInv(player);
+ if (toolIndex == null) return true;
+
+ ItemStack[] mainInventory = player.inventory.mainInventory;
+ mainInventory[toolIndex.getKey()] = toolIndex.getValue()
+ .apply(mainInventory[toolIndex.getKey()], player);
+ }
+ stack.setItemDamage(meta);
+
+ return true;
+ }
+
+ @Override
+ public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) {
+ // nothing on server side or fake player
+ if (player instanceof FakePlayer || !world.isRemote) return stack;
+ // check if any screwdriver
+ ItemStack configuratorStack;
+ if (player.capabilities.isCreativeMode) {
+ configuratorStack = null;
+ } else {
+ Pair<Integer, ?> configurator = findConfiguratorInInv(player);
+ if (configurator == null) {
+ int count;
+ try {
+ count = Integer
+ .parseInt(StatCollector.translateToLocal("GT5U.item.programmed_circuit.no_screwdriver.count"));
+ } catch (NumberFormatException e) {
+ player.addChatComponentMessage(
+ new ChatComponentText(
+ "Error in translation GT5U.item.programmed_circuit.no_screwdriver.count: "
+ + e.getMessage()));
+ count = 1;
+ }
+ player.addChatComponentMessage(
+ new ChatComponentTranslation(
+ "GT5U.item.programmed_circuit.no_screwdriver." + XSTR.XSTR_INSTANCE.nextInt(count)));
+ return stack;
+ }
+ configuratorStack = player.inventory.mainInventory[configurator.getKey()];
+ }
+ openSelectorGui(configuratorStack, stack.getItemDamage(), player);
+ return stack;
+ }
+
+ private void openSelectorGui(ItemStack configurator, int meta, EntityPlayer player) {
+ UIInfos.openClientUI(
+ player,
+ buildContext -> new SelectItemUIFactory(
+ StatCollector.translateToLocal("GT5U.item.programmed_circuit.select.header"),
+ configurator,
+ GT_IntegratedCircuit_Item::onConfigured,
+ ALL_VARIANTS,
+ meta,
+ true).createWindow(buildContext));
+ }
+
+ private static void onConfigured(ItemStack stack) {
+ NBTTagCompound tag = new NBTTagCompound();
+ tag.setByte("meta", (byte) stack.getItemDamage());
+ GT_Values.NW.sendToServer(new GT_Packet_UpdateItem(tag));
+ }
+
+ private static Pair<Integer, BiFunction<ItemStack, EntityPlayerMP, ItemStack>> findConfiguratorInInv(
+ EntityPlayer player) {
+ ItemStack[] mainInventory = player.inventory.mainInventory;
+ for (int j = 0, mainInventoryLength = mainInventory.length; j < mainInventoryLength; j++) {
+ ItemStack toolStack = mainInventory[j];
+
+ if (!GT_Utility.isStackValid(toolStack)) continue;
+
+ for (Map.Entry<Predicate<ItemStack>, BiFunction<ItemStack, EntityPlayerMP, ItemStack>> p : GregTech_API.sCircuitProgrammerList
+ .entrySet())
+ if (p.getKey()
+ .test(toolStack)) return Pair.of(j, p.getValue());
+ }
+ return null;
+ }
+}
diff --git a/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java b/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java
new file mode 100644
index 0000000000..f7463ae576
--- /dev/null
+++ b/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java
@@ -0,0 +1,4583 @@
+package gregtech.common.items;
+
+import static gregtech.api.enums.Textures.BlockIcons.COVER_WOOD_PLATE;
+import static gregtech.api.enums.Textures.BlockIcons.MACHINE_CASINGS;
+import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_ACTIVITYDETECTOR;
+import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_ACTIVITYDETECTOR_GLOW;
+import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_ARM;
+import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_CONTROLLER;
+import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_CONVEYOR;
+import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_CRAFTING;
+import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_DRAIN;
+import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_ENERGYDETECTOR;
+import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FLUIDDETECTOR;
+import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FLUID_STORAGE_MONITOR0;
+import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_ITEMDETECTOR;
+import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_MAINTENANCE_DETECTOR;
+import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_PUMP;
+import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_REDSTONE_RECEIVER;
+import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_REDSTONE_TRANSMITTER;
+import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_SCREEN;
+import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_SCREEN_GLOW;
+import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_SHUTTER;
+import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_VALVE;
+import static gregtech.api.enums.Textures.BlockIcons.SOLARPANEL;
+import static gregtech.api.enums.Textures.BlockIcons.SOLARPANEL_8V;
+import static gregtech.api.enums.Textures.BlockIcons.SOLARPANEL_EV;
+import static gregtech.api.enums.Textures.BlockIcons.SOLARPANEL_HV;
+import static gregtech.api.enums.Textures.BlockIcons.SOLARPANEL_IV;
+import static gregtech.api.enums.Textures.BlockIcons.SOLARPANEL_LV;
+import static gregtech.api.enums.Textures.BlockIcons.SOLARPANEL_LuV;
+import static gregtech.api.enums.Textures.BlockIcons.SOLARPANEL_MV;
+import static gregtech.api.enums.Textures.BlockIcons.SOLARPANEL_UV;
+import static gregtech.api.enums.Textures.BlockIcons.SOLARPANEL_ZPM;
+import static gregtech.client.GT_TooltipHandler.Tier.ERV;
+import static gregtech.client.GT_TooltipHandler.Tier.EV;
+import static gregtech.client.GT_TooltipHandler.Tier.HV;
+import static gregtech.client.GT_TooltipHandler.Tier.IV;
+import static gregtech.client.GT_TooltipHandler.Tier.LV;
+import static gregtech.client.GT_TooltipHandler.Tier.LuV;
+import static gregtech.client.GT_TooltipHandler.Tier.MAX;
+import static gregtech.client.GT_TooltipHandler.Tier.MV;
+import static gregtech.client.GT_TooltipHandler.Tier.UEV;
+import static gregtech.client.GT_TooltipHandler.Tier.UHV;
+import static gregtech.client.GT_TooltipHandler.Tier.UIV;
+import static gregtech.client.GT_TooltipHandler.Tier.ULV;
+import static gregtech.client.GT_TooltipHandler.Tier.UMV;
+import static gregtech.client.GT_TooltipHandler.Tier.UV;
+import static gregtech.client.GT_TooltipHandler.Tier.UXV;
+import static gregtech.client.GT_TooltipHandler.Tier.ZPM;
+import static gregtech.client.GT_TooltipHandler.registerTieredTooltip;
+import static gregtech.common.items.ID_MetaItem_01.BatteryHull_EV;
+import static gregtech.common.items.ID_MetaItem_01.BatteryHull_EV_Full;
+import static gregtech.common.items.ID_MetaItem_01.BatteryHull_IV;
+import static gregtech.common.items.ID_MetaItem_01.BatteryHull_IV_Full;
+import static gregtech.common.items.ID_MetaItem_01.BatteryHull_LuV;
+import static gregtech.common.items.ID_MetaItem_01.BatteryHull_LuV_Full;
+import static gregtech.common.items.ID_MetaItem_01.BatteryHull_UEV;
+import static gregtech.common.items.ID_MetaItem_01.BatteryHull_UEV_Full;
+import static gregtech.common.items.ID_MetaItem_01.BatteryHull_UHV;
+import static gregtech.common.items.ID_MetaItem_01.BatteryHull_UHV_Full;
+import static gregtech.common.items.ID_MetaItem_01.BatteryHull_UIV;
+import static gregtech.common.items.ID_MetaItem_01.BatteryHull_UIV_Full;
+import static gregtech.common.items.ID_MetaItem_01.BatteryHull_UMV;
+import static gregtech.common.items.ID_MetaItem_01.BatteryHull_UMV_Full;
+import static gregtech.common.items.ID_MetaItem_01.BatteryHull_UV;
+import static gregtech.common.items.ID_MetaItem_01.BatteryHull_UV_Full;
+import static gregtech.common.items.ID_MetaItem_01.BatteryHull_UxV;
+import static gregtech.common.items.ID_MetaItem_01.BatteryHull_UxV_Full;
+import static gregtech.common.items.ID_MetaItem_01.BatteryHull_ZPM;
+import static gregtech.common.items.ID_MetaItem_01.BatteryHull_ZPM_Full;
+import static gregtech.common.items.ID_MetaItem_01.Battery_Hull_HV;
+import static gregtech.common.items.ID_MetaItem_01.Battery_Hull_LV;
+import static gregtech.common.items.ID_MetaItem_01.Battery_Hull_MV;
+import static gregtech.common.items.ID_MetaItem_01.Battery_RE_HV_Cadmium;
+import static gregtech.common.items.ID_MetaItem_01.Battery_RE_HV_Lithium;
+import static gregtech.common.items.ID_MetaItem_01.Battery_RE_HV_Sodium;
+import static gregtech.common.items.ID_MetaItem_01.Battery_RE_LV_Cadmium;
+import static gregtech.common.items.ID_MetaItem_01.Battery_RE_LV_Lithium;
+import static gregtech.common.items.ID_MetaItem_01.Battery_RE_LV_Sodium;
+import static gregtech.common.items.ID_MetaItem_01.Battery_RE_MV_Cadmium;
+import static gregtech.common.items.ID_MetaItem_01.Battery_RE_MV_Lithium;
+import static gregtech.common.items.ID_MetaItem_01.Battery_RE_MV_Sodium;
+import static gregtech.common.items.ID_MetaItem_01.Battery_RE_ULV_Tantalum;
+import static gregtech.common.items.ID_MetaItem_01.Battery_SU_HV_Mercury;
+import static gregtech.common.items.ID_MetaItem_01.Battery_SU_HV_Sulfuric_Acid;
+import static gregtech.common.items.ID_MetaItem_01.Battery_SU_LV_Mercury;
+import static gregtech.common.items.ID_MetaItem_01.Battery_SU_LV_Sulfuric_Acid;
+import static gregtech.common.items.ID_MetaItem_01.Battery_SU_MV_Mercury;
+import static gregtech.common.items.ID_MetaItem_01.Battery_SU_MV_Sulfuric_Acid;
+import static gregtech.common.items.ID_MetaItem_01.Black_Hole_Closer;
+import static gregtech.common.items.ID_MetaItem_01.Black_Hole_Opener;
+import static gregtech.common.items.ID_MetaItem_01.Book_Written_01;
+import static gregtech.common.items.ID_MetaItem_01.Book_Written_02;
+import static gregtech.common.items.ID_MetaItem_01.Book_Written_03;
+import static gregtech.common.items.ID_MetaItem_01.Circuit_Advanced;
+import static gregtech.common.items.ID_MetaItem_01.Circuit_Basic;
+import static gregtech.common.items.ID_MetaItem_01.Circuit_Board_Advanced;
+import static gregtech.common.items.ID_MetaItem_01.Circuit_Board_Basic;
+import static gregtech.common.items.ID_MetaItem_01.Circuit_Board_Elite;
+import static gregtech.common.items.ID_MetaItem_01.Circuit_Data;
+import static gregtech.common.items.ID_MetaItem_01.Circuit_Elite;
+import static gregtech.common.items.ID_MetaItem_01.Circuit_Good;
+import static gregtech.common.items.ID_MetaItem_01.Circuit_Master;
+import static gregtech.common.items.ID_MetaItem_01.Circuit_Parts_Advanced;
+import static gregtech.common.items.ID_MetaItem_01.Circuit_Parts_Crystal_Chip_Elite;
+import static gregtech.common.items.ID_MetaItem_01.Circuit_Parts_Crystal_Chip_Master;
+import static gregtech.common.items.ID_MetaItem_01.Circuit_Parts_Crystal_Chip_Wetware;
+import static gregtech.common.items.ID_MetaItem_01.Circuit_Parts_Wiring_Advanced;
+import static gregtech.common.items.ID_MetaItem_01.Circuit_Parts_Wiring_Basic;
+import static gregtech.common.items.ID_MetaItem_01.Circuit_Parts_Wiring_Elite;
+import static gregtech.common.items.ID_MetaItem_01.Circuit_Primitive;
+import static gregtech.common.items.ID_MetaItem_01.Component_Filter;
+import static gregtech.common.items.ID_MetaItem_01.Component_Grinder_Diamond;
+import static gregtech.common.items.ID_MetaItem_01.Component_Grinder_Tungsten;
+import static gregtech.common.items.ID_MetaItem_01.Component_Minecraft_Wheels_Iron;
+import static gregtech.common.items.ID_MetaItem_01.Component_Minecraft_Wheels_Steel;
+import static gregtech.common.items.ID_MetaItem_01.Component_Sawblade_Diamond;
+import static gregtech.common.items.ID_MetaItem_01.Compressed_Fireclay;
+import static gregtech.common.items.ID_MetaItem_01.Conveyor_Module_EV;
+import static gregtech.common.items.ID_MetaItem_01.Conveyor_Module_HV;
+import static gregtech.common.items.ID_MetaItem_01.Conveyor_Module_IV;
+import static gregtech.common.items.ID_MetaItem_01.Conveyor_Module_LV;
+import static gregtech.common.items.ID_MetaItem_01.Conveyor_Module_LuV;
+import static gregtech.common.items.ID_MetaItem_01.Conveyor_Module_MAX;
+import static gregtech.common.items.ID_MetaItem_01.Conveyor_Module_MV;
+import static gregtech.common.items.ID_MetaItem_01.Conveyor_Module_UEV;
+import static gregtech.common.items.ID_MetaItem_01.Conveyor_Module_UHV;
+import static gregtech.common.items.ID_MetaItem_01.Conveyor_Module_UIV;
+import static gregtech.common.items.ID_MetaItem_01.Conveyor_Module_UMV;
+import static gregtech.common.items.ID_MetaItem_01.Conveyor_Module_UV;
+import static gregtech.common.items.ID_MetaItem_01.Conveyor_Module_UXV;
+import static gregtech.common.items.ID_MetaItem_01.Conveyor_Module_ZPM;
+import static gregtech.common.items.ID_MetaItem_01.Cover_ActivityDetector;
+import static gregtech.common.items.ID_MetaItem_01.Cover_Chest_Advanced;
+import static gregtech.common.items.ID_MetaItem_01.Cover_Chest_Basic;
+import static gregtech.common.items.ID_MetaItem_01.Cover_Chest_Good;
+import static gregtech.common.items.ID_MetaItem_01.Cover_Controller;
+import static gregtech.common.items.ID_MetaItem_01.Cover_Crafting;
+import static gregtech.common.items.ID_MetaItem_01.Cover_Drain;
+import static gregtech.common.items.ID_MetaItem_01.Cover_EnergyDetector;
+import static gregtech.common.items.ID_MetaItem_01.Cover_FLuidStorageMonitor;
+import static gregtech.common.items.ID_MetaItem_01.Cover_FluidDetector;
+import static gregtech.common.items.ID_MetaItem_01.Cover_FluidLimiter;
+import static gregtech.common.items.ID_MetaItem_01.Cover_ItemDetector;
+import static gregtech.common.items.ID_MetaItem_01.Cover_NeedsMaintenance;
+import static gregtech.common.items.ID_MetaItem_01.Cover_PlayerDetector;
+import static gregtech.common.items.ID_MetaItem_01.Cover_RedstoneReceiverExternal;
+import static gregtech.common.items.ID_MetaItem_01.Cover_RedstoneReceiverInternal;
+import static gregtech.common.items.ID_MetaItem_01.Cover_RedstoneTransmitterExternal;
+import static gregtech.common.items.ID_MetaItem_01.Cover_RedstoneTransmitterInternal;
+import static gregtech.common.items.ID_MetaItem_01.Cover_Screen;
+import static gregtech.common.items.ID_MetaItem_01.Cover_Shutter;
+import static gregtech.common.items.ID_MetaItem_01.Cover_SolarPanel;
+import static gregtech.common.items.ID_MetaItem_01.Cover_SolarPanel_8V;
+import static gregtech.common.items.ID_MetaItem_01.Cover_SolarPanel_EV;
+import static gregtech.common.items.ID_MetaItem_01.Cover_SolarPanel_HV;
+import static gregtech.common.items.ID_MetaItem_01.Cover_SolarPanel_IV;
+import static gregtech.common.items.ID_MetaItem_01.Cover_SolarPanel_LV;
+import static gregtech.common.items.ID_MetaItem_01.Cover_SolarPanel_LuV;
+import static gregtech.common.items.ID_MetaItem_01.Cover_SolarPanel_MV;
+import static gregtech.common.items.ID_MetaItem_01.Cover_SolarPanel_UV;
+import static gregtech.common.items.ID_MetaItem_01.Cover_SolarPanel_ZPM;
+import static gregtech.common.items.ID_MetaItem_01.Crate_Empty;
+import static gregtech.common.items.ID_MetaItem_01.Duct_Tape;
+import static gregtech.common.items.ID_MetaItem_01.Electric_Motor_EV;
+import static gregtech.common.items.ID_MetaItem_01.Electric_Motor_HV;
+import static gregtech.common.items.ID_MetaItem_01.Electric_Motor_IV;
+import static gregtech.common.items.ID_MetaItem_01.Electric_Motor_LV;
+import static gregtech.common.items.ID_MetaItem_01.Electric_Motor_LuV;
+import static gregtech.common.items.ID_MetaItem_01.Electric_Motor_MAX;
+import static gregtech.common.items.ID_MetaItem_01.Electric_Motor_MV;
+import static gregtech.common.items.ID_MetaItem_01.Electric_Motor_UEV;
+import static gregtech.common.items.ID_MetaItem_01.Electric_Motor_UHV;
+import static gregtech.common.items.ID_MetaItem_01.Electric_Motor_UIV;
+import static gregtech.common.items.ID_MetaItem_01.Electric_Motor_UMV;
+import static gregtech.common.items.ID_MetaItem_01.Electric_Motor_UV;
+import static gregtech.common.items.ID_MetaItem_01.Electric_Motor_UXV;
+import static gregtech.common.items.ID_MetaItem_01.Electric_Motor_ZPM;
+import static gregtech.common.items.ID_MetaItem_01.Electric_Piston_EV;
+import static gregtech.common.items.ID_MetaItem_01.Electric_Piston_HV;
+import static gregtech.common.items.ID_MetaItem_01.Electric_Piston_IV;
+import static gregtech.common.items.ID_MetaItem_01.Electric_Piston_LV;
+import static gregtech.common.items.ID_MetaItem_01.Electric_Piston_LuV;
+import static gregtech.common.items.ID_MetaItem_01.Electric_Piston_MAX;
+import static gregtech.common.items.ID_MetaItem_01.Electric_Piston_MV;
+import static gregtech.common.items.ID_MetaItem_01.Electric_Piston_UEV;
+import static gregtech.common.items.ID_MetaItem_01.Electric_Piston_UHV;
+import static gregtech.common.items.ID_MetaItem_01.Electric_Piston_UIV;
+import static gregtech.common.items.ID_MetaItem_01.Electric_Piston_UMV;
+import static gregtech.common.items.ID_MetaItem_01.Electric_Piston_UV;
+import static gregtech.common.items.ID_MetaItem_01.Electric_Piston_UXV;
+import static gregtech.common.items.ID_MetaItem_01.Electric_Piston_ZPM;
+import static gregtech.common.items.ID_MetaItem_01.Electric_Pump_EV;
+import static gregtech.common.items.ID_MetaItem_01.Electric_Pump_HV;
+import static gregtech.common.items.ID_MetaItem_01.Electric_Pump_IV;
+import static gregtech.common.items.ID_MetaItem_01.Electric_Pump_LV;
+import static gregtech.common.items.ID_MetaItem_01.Electric_Pump_LuV;
+import static gregtech.common.items.ID_MetaItem_01.Electric_Pump_MAX;
+import static gregtech.common.items.ID_MetaItem_01.Electric_Pump_MV;
+import static gregtech.common.items.ID_MetaItem_01.Electric_Pump_UEV;
+import static gregtech.common.items.ID_MetaItem_01.Electric_Pump_UHV;
+import static gregtech.common.items.ID_MetaItem_01.Electric_Pump_UIV;
+import static gregtech.common.items.ID_MetaItem_01.Electric_Pump_UMV;
+import static gregtech.common.items.ID_MetaItem_01.Electric_Pump_UV;
+import static gregtech.common.items.ID_MetaItem_01.Electric_Pump_UXV;
+import static gregtech.common.items.ID_MetaItem_01.Electric_Pump_ZPM;
+import static gregtech.common.items.ID_MetaItem_01.Electromagnet_Iron;
+import static gregtech.common.items.ID_MetaItem_01.Electromagnet_Neodymium;
+import static gregtech.common.items.ID_MetaItem_01.Electromagnet_Samarium;
+import static gregtech.common.items.ID_MetaItem_01.Electromagnet_Steel;
+import static gregtech.common.items.ID_MetaItem_01.Electromagnet_Tengam;
+import static gregtech.common.items.ID_MetaItem_01.Emitter_EV;
+import static gregtech.common.items.ID_MetaItem_01.Emitter_HV;
+import static gregtech.common.items.ID_MetaItem_01.Emitter_IV;
+import static gregtech.common.items.ID_MetaItem_01.Emitter_LV;
+import static gregtech.common.items.ID_MetaItem_01.Emitter_LuV;
+import static gregtech.common.items.ID_MetaItem_01.Emitter_MAX;
+import static gregtech.common.items.ID_MetaItem_01.Emitter_MV;
+import static gregtech.common.items.ID_MetaItem_01.Emitter_UEV;
+import static gregtech.common.items.ID_MetaItem_01.Emitter_UHV;
+import static gregtech.common.items.ID_MetaItem_01.Emitter_UIV;
+import static gregtech.common.items.ID_MetaItem_01.Emitter_UMV;
+import static gregtech.common.items.ID_MetaItem_01.Emitter_UV;
+import static gregtech.common.items.ID_MetaItem_01.Emitter_UXV;
+import static gregtech.common.items.ID_MetaItem_01.Emitter_ZPM;
+import static gregtech.common.items.ID_MetaItem_01.Empty_Board_Basic;
+import static gregtech.common.items.ID_MetaItem_01.Empty_Board_Elite;
+import static gregtech.common.items.ID_MetaItem_01.EnergisedTesseract;
+import static gregtech.common.items.ID_MetaItem_01.Energy_Cluster;
+import static gregtech.common.items.ID_MetaItem_01.Energy_Lapotronic_Orb;
+import static gregtech.common.items.ID_MetaItem_01.Energy_Lapotronic_orb_2;
+import static gregtech.common.items.ID_MetaItem_01.Energy_Module;
+import static gregtech.common.items.ID_MetaItem_01.Field_Generator_EV;
+import static gregtech.common.items.ID_MetaItem_01.Field_Generator_HV;
+import static gregtech.common.items.ID_MetaItem_01.Field_Generator_IV;
+import static gregtech.common.items.ID_MetaItem_01.Field_Generator_LV;
+import static gregtech.common.items.ID_MetaItem_01.Field_Generator_LuV;
+import static gregtech.common.items.ID_MetaItem_01.Field_Generator_MAX;
+import static gregtech.common.items.ID_MetaItem_01.Field_Generator_MV;
+import static gregtech.common.items.ID_MetaItem_01.Field_Generator_UEV;
+import static gregtech.common.items.ID_MetaItem_01.Field_Generator_UHV;
+import static gregtech.common.items.ID_MetaItem_01.Field_Generator_UIV;
+import static gregtech.common.items.ID_MetaItem_01.Field_Generator_UMV;
+import static gregtech.common.items.ID_MetaItem_01.Field_Generator_UV;
+import static gregtech.common.items.ID_MetaItem_01.Field_Generator_UXV;
+import static gregtech.common.items.ID_MetaItem_01.Field_Generator_ZPM;
+import static gregtech.common.items.ID_MetaItem_01.Firebrick;
+import static gregtech.common.items.ID_MetaItem_01.FluidFilter;
+import static gregtech.common.items.ID_MetaItem_01.FluidRegulator_EV;
+import static gregtech.common.items.ID_MetaItem_01.FluidRegulator_HV;
+import static gregtech.common.items.ID_MetaItem_01.FluidRegulator_IV;
+import static gregtech.common.items.ID_MetaItem_01.FluidRegulator_LV;
+import static gregtech.common.items.ID_MetaItem_01.FluidRegulator_LuV;
+import static gregtech.common.items.ID_MetaItem_01.FluidRegulator_MV;
+import static gregtech.common.items.ID_MetaItem_01.FluidRegulator_UV;
+import static gregtech.common.items.ID_MetaItem_01.FluidRegulator_ZPM;
+import static gregtech.common.items.ID_MetaItem_01.Fuel_Can_Plastic_Empty;
+import static gregtech.common.items.ID_MetaItem_01.Fuel_Can_Plastic_Filled;
+import static gregtech.common.items.ID_MetaItem_01.GigaChad;
+import static gregtech.common.items.ID_MetaItem_01.Gravistar;
+import static gregtech.common.items.ID_MetaItem_01.Ingot_Heavy1;
+import static gregtech.common.items.ID_MetaItem_01.Ingot_Heavy2;
+import static gregtech.common.items.ID_MetaItem_01.Ingot_Heavy3;
+import static gregtech.common.items.ID_MetaItem_01.Ingot_Iridium_Alloy;
+import static gregtech.common.items.ID_MetaItem_01.ItemFilter_Export;
+import static gregtech.common.items.ID_MetaItem_01.ItemFilter_Import;
+import static gregtech.common.items.ID_MetaItem_01.Large_Fluid_Cell_Aluminium;
+import static gregtech.common.items.ID_MetaItem_01.Large_Fluid_Cell_Chrome;
+import static gregtech.common.items.ID_MetaItem_01.Large_Fluid_Cell_Iridium;
+import static gregtech.common.items.ID_MetaItem_01.Large_Fluid_Cell_Neutronium;
+import static gregtech.common.items.ID_MetaItem_01.Large_Fluid_Cell_Osmium;
+import static gregtech.common.items.ID_MetaItem_01.Large_Fluid_Cell_StainlessSteel;
+import static gregtech.common.items.ID_MetaItem_01.Large_Fluid_Cell_Steel;
+import static gregtech.common.items.ID_MetaItem_01.Large_Fluid_Cell_Titanium;
+import static gregtech.common.items.ID_MetaItem_01.Large_Fluid_Cell_TungstenSteel;
+import static gregtech.common.items.ID_MetaItem_01.McGuffium_239;
+import static gregtech.common.items.ID_MetaItem_01.NC_SensorKit;
+import static gregtech.common.items.ID_MetaItem_01.NaquadriaSupersolid;
+import static gregtech.common.items.ID_MetaItem_01.Paper_Magic_Empty;
+import static gregtech.common.items.ID_MetaItem_01.Paper_Magic_Page;
+import static gregtech.common.items.ID_MetaItem_01.Paper_Magic_Pages;
+import static gregtech.common.items.ID_MetaItem_01.Paper_Printed_Pages;
+import static gregtech.common.items.ID_MetaItem_01.Paper_Punch_Card_Empty;
+import static gregtech.common.items.ID_MetaItem_01.Paper_Punch_Card_Encoded;
+import static gregtech.common.items.ID_MetaItem_01.QuantumEye;
+import static gregtech.common.items.ID_MetaItem_01.QuantumStar;
+import static gregtech.common.items.ID_MetaItem_01.Robot_Arm_EV;
+import static gregtech.common.items.ID_MetaItem_01.Robot_Arm_HV;
+import static gregtech.common.items.ID_MetaItem_01.Robot_Arm_IV;
+import static gregtech.common.items.ID_MetaItem_01.Robot_Arm_LV;
+import static gregtech.common.items.ID_MetaItem_01.Robot_Arm_LuV;
+import static gregtech.common.items.ID_MetaItem_01.Robot_Arm_MAX;
+import static gregtech.common.items.ID_MetaItem_01.Robot_Arm_MV;
+import static gregtech.common.items.ID_MetaItem_01.Robot_Arm_UEV;
+import static gregtech.common.items.ID_MetaItem_01.Robot_Arm_UHV;
+import static gregtech.common.items.ID_MetaItem_01.Robot_Arm_UIV;
+import static gregtech.common.items.ID_MetaItem_01.Robot_Arm_UMV;
+import static gregtech.common.items.ID_MetaItem_01.Robot_Arm_UV;
+import static gregtech.common.items.ID_MetaItem_01.Robot_Arm_UXV;
+import static gregtech.common.items.ID_MetaItem_01.Robot_Arm_ZPM;
+import static gregtech.common.items.ID_MetaItem_01.Schematic;
+import static gregtech.common.items.ID_MetaItem_01.Schematic_1by1;
+import static gregtech.common.items.ID_MetaItem_01.Schematic_2by2;
+import static gregtech.common.items.ID_MetaItem_01.Schematic_3by3;
+import static gregtech.common.items.ID_MetaItem_01.Schematic_Crafting;
+import static gregtech.common.items.ID_MetaItem_01.Schematic_Dust;
+import static gregtech.common.items.ID_MetaItem_01.Sensor_EV;
+import static gregtech.common.items.ID_MetaItem_01.Sensor_HV;
+import static gregtech.common.items.ID_MetaItem_01.Sensor_IV;
+import static gregtech.common.items.ID_MetaItem_01.Sensor_LV;
+import static gregtech.common.items.ID_MetaItem_01.Sensor_LuV;
+import static gregtech.common.items.ID_MetaItem_01.Sensor_MAX;
+import static gregtech.common.items.ID_MetaItem_01.Sensor_MV;
+import static gregtech.common.items.ID_MetaItem_01.Sensor_UEV;
+import static gregtech.common.items.ID_MetaItem_01.Sensor_UHV;
+import static gregtech.common.items.ID_MetaItem_01.Sensor_UIV;
+import static gregtech.common.items.ID_MetaItem_01.Sensor_UMV;
+import static gregtech.common.items.ID_MetaItem_01.Sensor_UV;
+import static gregtech.common.items.ID_MetaItem_01.Sensor_UXV;
+import static gregtech.common.items.ID_MetaItem_01.Sensor_ZPM;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Empty;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Extruder_Axe;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Extruder_Block;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Extruder_Bolt;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Extruder_Bottle;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Extruder_Casing;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Extruder_Cell;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Extruder_File;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Extruder_Gear;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Extruder_Hammer;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Extruder_Hoe;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Extruder_Ingot;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Extruder_Pickaxe;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Extruder_Pipe_Huge;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Extruder_Pipe_Large;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Extruder_Pipe_Medium;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Extruder_Pipe_Small;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Extruder_Pipe_Tiny;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Extruder_Plate;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Extruder_Ring;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Extruder_Rod;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Extruder_Rotor;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Extruder_Saw;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Extruder_Shovel;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Extruder_Small_Gear;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Extruder_Sword;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Extruder_Tool_Head_Drill;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Extruder_Turbine_Blade;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Extruder_Wire;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Anvil;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Arrow;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Baguette;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Ball;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Block;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Bolt;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Bottle;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Bread;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Bun;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Casing;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Credit;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Cylinder;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Gear;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Gear_Small;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Ingot;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Name;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Nugget;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Pipe_Huge;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Pipe_Large;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Pipe_Medium;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Pipe_Small;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Pipe_Tiny;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Plate;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Ring;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Rod;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Rod_Long;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Rotor;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Round;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Screw;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Tool_Head_Drill;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Mold_Turbine_Blade;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Slicer_Flat;
+import static gregtech.common.items.ID_MetaItem_01.Shape_Slicer_Stripes;
+import static gregtech.common.items.ID_MetaItem_01.Spray_Color_0;
+import static gregtech.common.items.ID_MetaItem_01.Spray_Color_1;
+import static gregtech.common.items.ID_MetaItem_01.Spray_Color_10;
+import static gregtech.common.items.ID_MetaItem_01.Spray_Color_11;
+import static gregtech.common.items.ID_MetaItem_01.Spray_Color_12;
+import static gregtech.common.items.ID_MetaItem_01.Spray_Color_13;
+import static gregtech.common.items.ID_MetaItem_01.Spray_Color_14;
+import static gregtech.common.items.ID_MetaItem_01.Spray_Color_15;
+import static gregtech.common.items.ID_MetaItem_01.Spray_Color_2;
+import static gregtech.common.items.ID_MetaItem_01.Spray_Color_3;
+import static gregtech.common.items.ID_MetaItem_01.Spray_Color_4;
+import static gregtech.common.items.ID_MetaItem_01.Spray_Color_5;
+import static gregtech.common.items.ID_MetaItem_01.Spray_Color_6;
+import static gregtech.common.items.ID_MetaItem_01.Spray_Color_7;
+import static gregtech.common.items.ID_MetaItem_01.Spray_Color_8;
+import static gregtech.common.items.ID_MetaItem_01.Spray_Color_9;
+import static gregtech.common.items.ID_MetaItem_01.Spray_Color_Remover;
+import static gregtech.common.items.ID_MetaItem_01.Spray_Color_Remover_Empty;
+import static gregtech.common.items.ID_MetaItem_01.Spray_Color_Used_0;
+import static gregtech.common.items.ID_MetaItem_01.Spray_Color_Used_1;
+import static gregtech.common.items.ID_MetaItem_01.Spray_Color_Used_10;
+import static gregtech.common.items.ID_MetaItem_01.Spray_Color_Used_11;
+import static gregtech.common.items.ID_MetaItem_01.Spray_Color_Used_12;
+import static gregtech.common.items.ID_MetaItem_01.Spray_Color_Used_13;
+import static gregtech.common.items.ID_MetaItem_01.Spray_Color_Used_14;
+import static gregtech.common.items.ID_MetaItem_01.Spray_Color_Used_15;
+import static gregtech.common.items.ID_MetaItem_01.Spray_Color_Used_2;
+import static gregtech.common.items.ID_MetaItem_01.Spray_Color_Used_3;
+import static gregtech.common.items.ID_MetaItem_01.Spray_Color_Used_4;
+import static gregtech.common.items.ID_MetaItem_01.Spray_Color_Used_5;
+import static gregtech.common.items.ID_MetaItem_01.Spray_Color_Used_6;
+import static gregtech.common.items.ID_MetaItem_01.Spray_Color_Used_7;
+import static gregtech.common.items.ID_MetaItem_01.Spray_Color_Used_8;
+import static gregtech.common.items.ID_MetaItem_01.Spray_Color_Used_9;
+import static gregtech.common.items.ID_MetaItem_01.Spray_Color_Used_Remover;
+import static gregtech.common.items.ID_MetaItem_01.Spray_Empty;
+import static gregtech.common.items.ID_MetaItem_01.StableAdhesive;
+import static gregtech.common.items.ID_MetaItem_01.Steam_Regulator_EV;
+import static gregtech.common.items.ID_MetaItem_01.Steam_Regulator_HV;
+import static gregtech.common.items.ID_MetaItem_01.Steam_Regulator_IV;
+import static gregtech.common.items.ID_MetaItem_01.Steam_Regulator_LV;
+import static gregtech.common.items.ID_MetaItem_01.Steam_Regulator_MV;
+import static gregtech.common.items.ID_MetaItem_01.Steam_Valve_EV;
+import static gregtech.common.items.ID_MetaItem_01.Steam_Valve_HV;
+import static gregtech.common.items.ID_MetaItem_01.Steam_Valve_IV;
+import static gregtech.common.items.ID_MetaItem_01.Steam_Valve_LV;
+import static gregtech.common.items.ID_MetaItem_01.Steam_Valve_MV;
+import static gregtech.common.items.ID_MetaItem_01.SuperconductorComposite;
+import static gregtech.common.items.ID_MetaItem_01.Tesseract;
+import static gregtech.common.items.ID_MetaItem_01.Thermos_Can_Empty;
+import static gregtech.common.items.ID_MetaItem_01.Tool_Cheat;
+import static gregtech.common.items.ID_MetaItem_01.Tool_Cover_Copy_Paste;
+import static gregtech.common.items.ID_MetaItem_01.Tool_DataOrb;
+import static gregtech.common.items.ID_MetaItem_01.Tool_DataStick;
+import static gregtech.common.items.ID_MetaItem_01.Tool_Lighter_Invar_Empty;
+import static gregtech.common.items.ID_MetaItem_01.Tool_Lighter_Invar_Full;
+import static gregtech.common.items.ID_MetaItem_01.Tool_Lighter_Invar_Used;
+import static gregtech.common.items.ID_MetaItem_01.Tool_Lighter_Platinum_Empty;
+import static gregtech.common.items.ID_MetaItem_01.Tool_Lighter_Platinum_Full;
+import static gregtech.common.items.ID_MetaItem_01.Tool_Lighter_Platinum_Used;
+import static gregtech.common.items.ID_MetaItem_01.Tool_MatchBox_Full;
+import static gregtech.common.items.ID_MetaItem_01.Tool_MatchBox_Used;
+import static gregtech.common.items.ID_MetaItem_01.Tool_Matches;
+import static gregtech.common.items.ID_MetaItem_01.Tool_Scanner;
+import static gregtech.common.items.ID_MetaItem_01.Tool_Sonictron;
+import static gregtech.common.items.ID_MetaItem_01.Upgrade_Lock;
+import static gregtech.common.items.ID_MetaItem_01.Upgrade_Muffler;
+import static gregtech.common.items.ID_MetaItem_01.ZPM2;
+import static gregtech.common.items.ID_MetaItem_01.ZPM3;
+import static gregtech.common.items.ID_MetaItem_01.ZPM4;
+import static gregtech.common.items.ID_MetaItem_01.ZPM5;
+import static gregtech.common.items.ID_MetaItem_01.ZPM6;
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import net.minecraft.block.Block;
+import net.minecraft.enchantment.Enchantment;
+import net.minecraft.entity.item.EntityItem;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.init.Blocks;
+import net.minecraft.item.EnumAction;
+import net.minecraft.item.ItemStack;
+import net.minecraft.potion.Potion;
+import net.minecraft.util.EnumChatFormatting;
+import net.minecraft.util.MathHelper;
+
+import gregtech.api.GregTech_API;
+import gregtech.api.enums.Dyes;
+import gregtech.api.enums.GT_Values;
+import gregtech.api.enums.ItemList;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.OreDictNames;
+import gregtech.api.enums.OrePrefixes;
+import gregtech.api.enums.SubTag;
+import gregtech.api.enums.TC_Aspects;
+import gregtech.api.enums.Textures;
+import gregtech.api.interfaces.IItemBehaviour;
+import gregtech.api.interfaces.ITexture;
+import gregtech.api.items.GT_MetaBase_Item;
+import gregtech.api.items.GT_MetaGenerated_Item_X32;
+import gregtech.api.objects.ItemData;
+import gregtech.api.objects.MaterialStack;
+import gregtech.api.recipe.RecipeMaps;
+import gregtech.api.render.TextureFactory;
+import gregtech.api.util.GT_FoodStat;
+import gregtech.api.util.GT_LanguageManager;
+import gregtech.api.util.GT_ModHandler;
+import gregtech.api.util.GT_OreDictUnificator;
+import gregtech.api.util.GT_Recipe;
+import gregtech.api.util.GT_Utility;
+import gregtech.common.config.other.ConfigGeneral;
+import gregtech.common.covers.GT_Cover_Arm;
+import gregtech.common.covers.GT_Cover_Chest;
+import gregtech.common.covers.GT_Cover_ControlsWork;
+import gregtech.common.covers.GT_Cover_Conveyor;
+import gregtech.common.covers.GT_Cover_Crafting;
+import gregtech.common.covers.GT_Cover_DoesWork;
+import gregtech.common.covers.GT_Cover_Drain;
+import gregtech.common.covers.GT_Cover_EUMeter;
+import gregtech.common.covers.GT_Cover_FluidLimiter;
+import gregtech.common.covers.GT_Cover_FluidRegulator;
+import gregtech.common.covers.GT_Cover_FluidStorageMonitor;
+import gregtech.common.covers.GT_Cover_Fluidfilter;
+import gregtech.common.covers.GT_Cover_ItemFilter;
+import gregtech.common.covers.GT_Cover_ItemMeter;
+import gregtech.common.covers.GT_Cover_LiquidMeter;
+import gregtech.common.covers.GT_Cover_NeedMaintainance;
+import gregtech.common.covers.GT_Cover_PlayerDetector;
+import gregtech.common.covers.GT_Cover_Pump;
+import gregtech.common.covers.GT_Cover_RedstoneReceiverExternal;
+import gregtech.common.covers.GT_Cover_RedstoneReceiverInternal;
+import gregtech.common.covers.GT_Cover_RedstoneTransmitterExternal;
+import gregtech.common.covers.GT_Cover_RedstoneTransmitterInternal;
+import gregtech.common.covers.GT_Cover_Screen;
+import gregtech.common.covers.GT_Cover_Shutter;
+import gregtech.common.covers.GT_Cover_SolarPanel;
+import gregtech.common.covers.GT_Cover_SteamRegulator;
+import gregtech.common.covers.GT_Cover_SteamValve;
+import gregtech.common.items.behaviors.Behaviour_Cover_Tool;
+import gregtech.common.items.behaviors.Behaviour_DataOrb;
+import gregtech.common.items.behaviors.Behaviour_DataStick;
+import gregtech.common.items.behaviors.Behaviour_Lighter;
+import gregtech.common.items.behaviors.Behaviour_PrintedPages;
+import gregtech.common.items.behaviors.Behaviour_Scanner;
+import gregtech.common.items.behaviors.Behaviour_SensorKit;
+import gregtech.common.items.behaviors.Behaviour_Sonictron;
+import gregtech.common.items.behaviors.Behaviour_Spray_Color;
+import gregtech.common.items.behaviors.Behaviour_Spray_Color_Remover;
+import gregtech.common.items.behaviors.Behaviour_WrittenBook;
+import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_IndustrialElectromagneticSeparator.MagnetTiers;
+
+public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 {
+
+ public static GT_MetaGenerated_Item_01 INSTANCE;
+ private final String mToolTipPurify = GT_LanguageManager
+ .addStringLocalization("metaitem.01.tooltip.purify", "Throw into Cauldron to get clean Dust");
+ private static final String aTextEmptyRow = " ";
+ private static final String aTextShape = " P ";
+ private static final String PartCoverText = " L/t (";
+ private static final String PartCoverText2 = " L/s) as Cover";
+ private static final String PartNotCoverText = "Cannot be used as a Cover";
+ private static final String RAText = "Grabs from and inserts into specific slots";
+ private static final String FRText1 = "Configurable up to ";
+ private static final String FRText2 = " L/sec (as Cover)/n Rightclick/Screwdriver-rightclick/Shift-screwdriver-rightclick/n to adjust the pump speed by 1/16/256 L/sec per click";
+
+ private static final int[] Spray_Colors = new int[] { Spray_Color_0.ID, Spray_Color_1.ID, Spray_Color_2.ID,
+ Spray_Color_3.ID, Spray_Color_4.ID, Spray_Color_5.ID, Spray_Color_6.ID, Spray_Color_7.ID, Spray_Color_8.ID,
+ Spray_Color_9.ID, Spray_Color_10.ID, Spray_Color_11.ID, Spray_Color_12.ID, Spray_Color_13.ID, Spray_Color_14.ID,
+ Spray_Color_15.ID };
+ private static final int[] Spray_Colors_Used = new int[] { Spray_Color_Used_0.ID, Spray_Color_Used_1.ID,
+ Spray_Color_Used_2.ID, Spray_Color_Used_3.ID, Spray_Color_Used_4.ID, Spray_Color_Used_5.ID,
+ Spray_Color_Used_6.ID, Spray_Color_Used_7.ID, Spray_Color_Used_8.ID, Spray_Color_Used_9.ID,
+ Spray_Color_Used_10.ID, Spray_Color_Used_11.ID, Spray_Color_Used_12.ID, Spray_Color_Used_13.ID,
+ Spray_Color_Used_14.ID, Spray_Color_Used_15.ID };
+
+ public GT_MetaGenerated_Item_01() {
+ super(
+ "metaitem.01",
+ OrePrefixes.dustTiny,
+ OrePrefixes.dustSmall,
+ OrePrefixes.dust,
+ OrePrefixes.dustImpure,
+ OrePrefixes.dustPure,
+ OrePrefixes.crushed,
+ OrePrefixes.crushedPurified,
+ OrePrefixes.crushedCentrifuged,
+ OrePrefixes.gem,
+ OrePrefixes.nugget,
+ null,
+ OrePrefixes.ingot,
+ OrePrefixes.ingotHot,
+ OrePrefixes.ingotDouble,
+ OrePrefixes.ingotTriple,
+ OrePrefixes.ingotQuadruple,
+ OrePrefixes.ingotQuintuple,
+ OrePrefixes.plate,
+ OrePrefixes.plateDouble,
+ OrePrefixes.plateTriple,
+ OrePrefixes.plateQuadruple,
+ OrePrefixes.plateQuintuple,
+ OrePrefixes.plateDense,
+ OrePrefixes.stick,
+ OrePrefixes.lens,
+ OrePrefixes.round,
+ OrePrefixes.bolt,
+ OrePrefixes.screw,
+ OrePrefixes.ring,
+ OrePrefixes.foil,
+ OrePrefixes.cell,
+ OrePrefixes.cellPlasma);
+ INSTANCE = this;
+
+ ItemList.Credit_Greg_Copper
+ .set(addItem(ID_MetaItem_01.Credit_Greg_Copper.ID, "Copper GT Credit", "0.125 Credits"));
+ ItemList.Credit_Greg_Cupronickel.set(
+ addItem(
+ ID_MetaItem_01.Credit_Greg_Cupronickel.ID,
+ "Cupronickel GT Credit",
+ "1 Credit",
+ new ItemData(Materials.Cupronickel, 907200L)));
+ ItemList.Credit_Greg_Silver.set(
+ addItem(
+ ID_MetaItem_01.Credit_Greg_Silver.ID,
+ "Silver GT Credit",
+ "8 Credits",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.LUCRUM, 1L)));
+ ItemList.Credit_Greg_Gold.set(addItem(ID_MetaItem_01.Credit_Greg_Gold.ID, "Gold GT Credit", "64 Credits"));
+ ItemList.Credit_Greg_Platinum
+ .set(addItem(ID_MetaItem_01.Credit_Greg_Platinum.ID, "Platinum GT Credit", "512 Credits"));
+ ItemList.Credit_Greg_Osmium
+ .set(addItem(ID_MetaItem_01.Credit_Greg_Osmium.ID, "Osmium GT Credit", "4,096 Credits"));
+ ItemList.Credit_Greg_Naquadah
+ .set(addItem(ID_MetaItem_01.Credit_Greg_Naquadah.ID, "Naquadah GT Credit", "32,768 Credits"));
+ ItemList.Credit_Greg_Neutronium
+ .set(addItem(ID_MetaItem_01.Credit_Greg_Neutronium.ID, "Neutronium GT Credit", "262,144 Credits"));
+ ItemList.Coin_Gold_Ancient.set(
+ addItem(
+ ID_MetaItem_01.Coin_Gold_Ancient.ID,
+ "Ancient Gold Coin",
+ "Found in ancient Ruins",
+ new ItemData(Materials.Gold, 907200L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.LUCRUM, 8L)));
+ ItemList.Coin_Doge.set(
+ addItem(
+ ID_MetaItem_01.Coin_Doge.ID,
+ "Doge Coin",
+ "wow much coin how money so crypto plz mine v rich very currency wow",
+ new ItemData(Materials.Brass, 907200L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.LUCRUM, 1L)));
+ ItemList.Coin_Chocolate.set(
+ addItem(
+ ID_MetaItem_01.Coin_Chocolate.ID,
+ "Chocolate Coin",
+ "Wrapped in Gold",
+ new ItemData(Materials.Gold, OrePrefixes.foil.mMaterialAmount),
+ new GT_FoodStat(
+ 1,
+ 0.1F,
+ EnumAction.eat,
+ GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Gold, 1L),
+ true,
+ false,
+ false,
+ Potion.moveSpeed.id,
+ 200,
+ 1,
+ 100)));
+ ItemList.Credit_Copper
+ .set(addItem(ID_MetaItem_01.Credit_Copper.ID, "Industrial Copper Credit", "0.125 Credits"));
+
+ ItemList.Credit_Silver.set(
+ addItem(
+ ID_MetaItem_01.Credit_Silver.ID,
+ "Industrial Silver Credit",
+ "8 Credits",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.LUCRUM, 1L)));
+ ItemList.Credit_Gold.set(addItem(ID_MetaItem_01.Credit_Gold.ID, "Industrial Gold Credit", "64 Credits"));
+ ItemList.Credit_Platinum
+ .set(addItem(ID_MetaItem_01.Credit_Platinum.ID, "Industrial Platinum Credit", "512 Credits"));
+ ItemList.Credit_Osmium
+ .set(addItem(ID_MetaItem_01.Credit_Osmium.ID, "Industrial Osmium Credit", "4096 Credits"));
+
+ ItemList.Component_Minecart_Wheels_Iron.set(
+ addItem(
+ Component_Minecraft_Wheels_Iron.ID,
+ "Iron Minecart Wheels",
+ "To get things rolling",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L)));
+ ItemList.Component_Minecart_Wheels_Steel.set(
+ addItem(
+ Component_Minecraft_Wheels_Steel.ID,
+ "Steel Minecart Wheels",
+ "To get things rolling",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L)));
+
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Component_Minecart_Wheels_Iron.get(1L),
+ GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE
+ | GT_ModHandler.RecipeBits.REVERSIBLE,
+ new Object[] { " h ", "RSR", " w ", 'R', OrePrefixes.ring.get(Materials.AnyIron), 'S',
+ OrePrefixes.stick.get(Materials.AnyIron) });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Component_Minecart_Wheels_Steel.get(1L),
+ GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE
+ | GT_ModHandler.RecipeBits.REVERSIBLE,
+ new Object[] { " h ", "RSR", " w ", 'R', OrePrefixes.ring.get(Materials.Steel), 'S',
+ OrePrefixes.stick.get(Materials.Steel) });
+
+ ItemList.CompressedFireclay.set(addItem(Compressed_Fireclay.ID, "Compressed Fireclay", "Brick-shaped"));
+ GT_OreDictUnificator.addItemDataFromInputs(ItemList.CompressedFireclay.get(1), Materials.Fireclay.getDust(1));
+
+ ItemList.Firebrick.set(addItem(Firebrick.ID, "Firebrick", "Heat resistant"));
+ GT_OreDictUnificator.addItemDataFromInputs(ItemList.Firebrick.get(1), Materials.Fireclay.getDust(1));
+
+ ItemList.Shape_Empty.set(
+ addItem(
+ Shape_Empty.ID,
+ "Empty Shape Plate",
+ "Raw Plate to make Molds and Extruder Shapes",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 4L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L)));
+
+ ItemList.Shape_Mold_Plate.set(addItem(Shape_Mold_Plate.ID, "Mold (Plate)", "Mold for making Plates"));
+ ItemList.Shape_Mold_Casing.set(addItem(Shape_Mold_Casing.ID, "Mold (Casing)", "Mold for making Item Casings"));
+ ItemList.Shape_Mold_Gear.set(addItem(Shape_Mold_Gear.ID, "Mold (Gear)", "Mold for making Gears"));
+ ItemList.Shape_Mold_Credit
+ .set(addItem(Shape_Mold_Credit.ID, "Mold (Coinage)", "Secure Mold for making Coins (Don't lose it!)"));
+ ItemList.Shape_Mold_Bottle.set(addItem(Shape_Mold_Bottle.ID, "Mold (Bottle)", "Mold for making Bottles"));
+ ItemList.Shape_Mold_Ingot.set(addItem(Shape_Mold_Ingot.ID, "Mold (Ingot)", "Mold for making Ingots"));
+ ItemList.Shape_Mold_Ball.set(addItem(Shape_Mold_Ball.ID, "Mold (Ball)", "Mold for making Balls"));
+ ItemList.Shape_Mold_Block.set(addItem(Shape_Mold_Block.ID, "Mold (Block)", "Mold for making Blocks"));
+ ItemList.Shape_Mold_Nugget.set(addItem(Shape_Mold_Nugget.ID, "Mold (Nuggets)", "Mold for making Nuggets"));
+ ItemList.Shape_Mold_Bun.set(addItem(Shape_Mold_Bun.ID, "Mold (Buns)", "Mold for shaping Buns"));
+ ItemList.Shape_Mold_Bread.set(addItem(Shape_Mold_Bread.ID, "Mold (Bread)", "Mold for shaping Breads"));
+ ItemList.Shape_Mold_Baguette
+ .set(addItem(Shape_Mold_Baguette.ID, "Mold (Baguette)", "Mold for shaping Baguettes"));
+ ItemList.Shape_Mold_Cylinder
+ .set(addItem(Shape_Mold_Cylinder.ID, "Mold (Cylinder)", "Mold for shaping Cylinders"));
+ ItemList.Shape_Mold_Anvil.set(addItem(Shape_Mold_Anvil.ID, "Mold (Anvil)", "Mold for shaping Anvils"));
+ ItemList.Shape_Mold_Name
+ .set(addItem(Shape_Mold_Name.ID, "Mold (Name)", "Mold for naming Items (rename Mold with Anvil)"));
+ ItemList.Shape_Mold_Arrow.set(addItem(Shape_Mold_Arrow.ID, "Mold (Arrow Head)", "Mold for making Arrow Heads"));
+ ItemList.Shape_Mold_Gear_Small
+ .set(addItem(Shape_Mold_Gear_Small.ID, "Mold (Small Gear)", "Mold for making small Gears"));
+ ItemList.Shape_Mold_Rod.set(addItem(Shape_Mold_Rod.ID, "Mold (Rod)", "Mold for making Rods"));
+ ItemList.Shape_Mold_Bolt.set(addItem(Shape_Mold_Bolt.ID, "Mold (Bolt)", "Mold for making Bolts"));
+ ItemList.Shape_Mold_Round.set(addItem(Shape_Mold_Round.ID, "Mold (Round)", "Mold for making Rounds"));
+ ItemList.Shape_Mold_Screw.set(addItem(Shape_Mold_Screw.ID, "Mold (Screw)", "Mold for making Screws"));
+ ItemList.Shape_Mold_Ring.set(addItem(Shape_Mold_Ring.ID, "Mold (Ring)", "Mold for making Rings"));
+ ItemList.Shape_Mold_Rod_Long
+ .set(addItem(Shape_Mold_Rod_Long.ID, "Mold (Long Rod)", "Mold for making Long Rods"));
+ ItemList.Shape_Mold_Rotor.set(addItem(Shape_Mold_Rotor.ID, "Mold (Rotor)", "Mold for making a Rotor"));
+ ItemList.Shape_Mold_Turbine_Blade
+ .set(addItem(Shape_Mold_Turbine_Blade.ID, "Mold (Turbine Blade)", "Mold for making a Turbine Blade"));
+ ItemList.Shape_Mold_Pipe_Tiny
+ .set(addItem(Shape_Mold_Pipe_Tiny.ID, "Mold (Tiny Pipe)", "Mold for making tiny Pipes"));
+ ItemList.Shape_Mold_Pipe_Small
+ .set(addItem(Shape_Mold_Pipe_Small.ID, "Mold (Small Pipe)", "Mold for making small Pipes"));
+ ItemList.Shape_Mold_Pipe_Medium
+ .set(addItem(Shape_Mold_Pipe_Medium.ID, "Mold (Normal Pipe)", "Mold for making Pipes"));
+ ItemList.Shape_Mold_Pipe_Large
+ .set(addItem(Shape_Mold_Pipe_Large.ID, "Mold (Large Pipe)", "Mold for making large Pipes"));
+ ItemList.Shape_Mold_Pipe_Huge
+ .set(addItem(Shape_Mold_Pipe_Huge.ID, "Mold (Huge Pipe)", "Mold for making full Block Pipes"));
+ ItemList.Shape_Mold_ToolHeadDrill
+ .set(addItem(Shape_Mold_Tool_Head_Drill.ID, "Mold (Drill Head)", "Mold for making Drill Heads"));
+
+ ItemList.Shape_Extruder_Plate
+ .set(addItem(Shape_Extruder_Plate.ID, "Extruder Shape (Plate)", "Extruder Shape for making Plates"));
+ ItemList.Shape_Extruder_Rod
+ .set(addItem(Shape_Extruder_Rod.ID, "Extruder Shape (Rod)", "Extruder Shape for making Rods"));
+ ItemList.Shape_Extruder_Bolt
+ .set(addItem(Shape_Extruder_Bolt.ID, "Extruder Shape (Bolt)", "Extruder Shape for making Bolts"));
+ ItemList.Shape_Extruder_Ring
+ .set(addItem(Shape_Extruder_Ring.ID, "Extruder Shape (Ring)", "Extruder Shape for making Rings"));
+ ItemList.Shape_Extruder_Cell
+ .set(addItem(Shape_Extruder_Cell.ID, "Extruder Shape (Cell)", "Extruder Shape for making Cells"));
+ ItemList.Shape_Extruder_Ingot.set(
+ addItem(
+ Shape_Extruder_Ingot.ID,
+ "Extruder Shape (Ingot)",
+ "Extruder Shape for, wait, can't we just use a Furnace?"));
+ ItemList.Shape_Extruder_Wire
+ .set(addItem(Shape_Extruder_Wire.ID, "Extruder Shape (Wire)", "Extruder Shape for making Wires"));
+ ItemList.Shape_Extruder_Casing.set(
+ addItem(Shape_Extruder_Casing.ID, "Extruder Shape (Casing)", "Extruder Shape for making Item Casings"));
+ ItemList.Shape_Extruder_Pipe_Tiny.set(
+ addItem(Shape_Extruder_Pipe_Tiny.ID, "Extruder Shape (Tiny Pipe)", "Extruder Shape for making tiny Pipes"));
+ ItemList.Shape_Extruder_Pipe_Small.set(
+ addItem(
+ Shape_Extruder_Pipe_Small.ID,
+ "Extruder Shape (Small Pipe)",
+ "Extruder Shape for making small Pipes"));
+ ItemList.Shape_Extruder_Pipe_Medium.set(
+ addItem(Shape_Extruder_Pipe_Medium.ID, "Extruder Shape (Normal Pipe)", "Extruder Shape for making Pipes"));
+ ItemList.Shape_Extruder_Pipe_Large.set(
+ addItem(
+ Shape_Extruder_Pipe_Large.ID,
+ "Extruder Shape (Large Pipe)",
+ "Extruder Shape for making large Pipes"));
+ ItemList.Shape_Extruder_Pipe_Huge.set(
+ addItem(
+ Shape_Extruder_Pipe_Huge.ID,
+ "Extruder Shape (Huge Pipe)",
+ "Extruder Shape for making full Block Pipes"));
+ ItemList.Shape_Extruder_Block
+ .set(addItem(Shape_Extruder_Block.ID, "Extruder Shape (Block)", "Extruder Shape for making Blocks"));
+ ItemList.Shape_Extruder_Sword
+ .set(addItem(Shape_Extruder_Sword.ID, "Extruder Shape (Sword Blade)", "Extruder Shape for making Swords"));
+ ItemList.Shape_Extruder_Pickaxe.set(
+ addItem(Shape_Extruder_Pickaxe.ID, "Extruder Shape (Pickaxe Head)", "Extruder Shape for making Pickaxes"));
+ ItemList.Shape_Extruder_Shovel.set(
+ addItem(Shape_Extruder_Shovel.ID, "Extruder Shape (Shovel Head)", "Extruder Shape for making Shovels"));
+ ItemList.Shape_Extruder_Axe
+ .set(addItem(Shape_Extruder_Axe.ID, "Extruder Shape (Axe Head)", "Extruder Shape for making Axes"));
+ ItemList.Shape_Extruder_Hoe
+ .set(addItem(Shape_Extruder_Hoe.ID, "Extruder Shape (Hoe Head)", "Extruder Shape for making Hoes"));
+ ItemList.Shape_Extruder_Hammer.set(
+ addItem(Shape_Extruder_Hammer.ID, "Extruder Shape (Hammer Head)", "Extruder Shape for making Hammers"));
+ ItemList.Shape_Extruder_File
+ .set(addItem(Shape_Extruder_File.ID, "Extruder Shape (File Head)", "Extruder Shape for making Files"));
+ ItemList.Shape_Extruder_Saw
+ .set(addItem(Shape_Extruder_Saw.ID, "Extruder Shape (Saw Blade)", "Extruder Shape for making Saws"));
+ ItemList.Shape_Extruder_Gear
+ .set(addItem(Shape_Extruder_Gear.ID, "Extruder Shape (Gear)", "Extruder Shape for making Gears"));
+ ItemList.Shape_Extruder_Bottle
+ .set(addItem(Shape_Extruder_Bottle.ID, "Extruder Shape (Bottle)", "Extruder Shape for making Bottles"));
+ ItemList.Shape_Extruder_Rotor
+ .set(addItem(Shape_Extruder_Rotor.ID, "Extruder Shape (Rotor)", "Extruder Shape for a Rotor"));
+ ItemList.Shape_Extruder_Small_Gear.set(
+ addItem(Shape_Extruder_Small_Gear.ID, "Extruder Shape (Small Gear)", "Extruder Shape for a Small Gear"));
+ ItemList.Shape_Extruder_Turbine_Blade.set(
+ addItem(
+ Shape_Extruder_Turbine_Blade.ID,
+ "Extruder Shape (Turbine Blade)",
+ "Extruder Shape for a Turbine Blade"));
+ ItemList.Shape_Extruder_ToolHeadDrill.set(
+ addItem(
+ Shape_Extruder_Tool_Head_Drill.ID,
+ "Extruder Shape (Drill Head)",
+ "Extruder Shape for a Drill Head"));
+
+ ItemList.Shape_Slicer_Flat
+ .set(addItem(Shape_Slicer_Flat.ID, "Slicer Blade (Flat)", "Slicer Blade for cutting Flat"));
+ ItemList.Shape_Slicer_Stripes
+ .set(addItem(Shape_Slicer_Stripes.ID, "Slicer Blade (Stripes)", "Slicer Blade for cutting Stripes"));
+
+ ItemList.Fuel_Can_Plastic_Empty.set(
+ addItem(
+ Fuel_Can_Plastic_Empty.ID,
+ "Empty Plastic Fuel Can",
+ "Used to store Fuels",
+ new ItemData(Materials.Plastic, OrePrefixes.plate.mMaterialAmount * 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 1L)));
+ ItemList.Fuel_Can_Plastic_Filled.set(
+ addItem(
+ Fuel_Can_Plastic_Filled.ID,
+ "Plastic Fuel Can",
+ "Burns well in Diesel Generators",
+ new ItemData(Materials.Plastic, OrePrefixes.plate.mMaterialAmount * 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 1L)));
+
+ ItemList.Spray_Empty.set(
+ addItem(
+ Spray_Empty.ID,
+ "Empty Spray Can",
+ "Used for making Sprays",
+ new ItemData(
+ Materials.Tin,
+ OrePrefixes.plate.mMaterialAmount * 2L,
+ Materials.Redstone,
+ OrePrefixes.dust.mMaterialAmount),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 1L)));
+
+ ItemList.Crate_Empty.set(
+ addItem(
+ Crate_Empty.ID,
+ "Empty Crate",
+ "To Package lots of Material",
+ new ItemData(Materials.Wood, 3628800L, Materials.Iron, OrePrefixes.screw.mMaterialAmount),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 2L)));
+
+ ItemList.ThermosCan_Empty.set(
+ addItem(
+ Thermos_Can_Empty.ID,
+ "Empty Thermos Can",
+ "Keeping hot things hot and cold things cold",
+ new ItemData(
+ Materials.Aluminium,
+ OrePrefixes.plateDouble.mMaterialAmount * 1L + 2L * OrePrefixes.ring.mMaterialAmount),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.GELUM, 1L)));
+
+ ItemList.Large_Fluid_Cell_Steel.set(
+ addItem(
+ Large_Fluid_Cell_Steel.ID,
+ "Large Steel Fluid Cell",
+ "",
+ new ItemData(
+ Materials.Steel,
+ OrePrefixes.plateDouble.mMaterialAmount * 4L,
+ new MaterialStack(Materials.Bronze, OrePrefixes.ring.mMaterialAmount * 4L)),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 4L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 2L)));
+
+ ItemList.Large_Fluid_Cell_TungstenSteel.set(
+ addItem(
+ Large_Fluid_Cell_TungstenSteel.ID,
+ "Large Tungstensteel Fluid Cell",
+ "",
+ new ItemData(
+ Materials.TungstenSteel,
+ OrePrefixes.plateDouble.mMaterialAmount * 4L,
+ new MaterialStack(Materials.Platinum, OrePrefixes.ring.mMaterialAmount * 4L)),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 9L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 7L)));
+
+ ItemList.Large_Fluid_Cell_Aluminium.set(
+ addItem(
+ Large_Fluid_Cell_Aluminium.ID,
+ "Large Aluminium Fluid Cell",
+ "",
+ new ItemData(
+ Materials.Aluminium,
+ OrePrefixes.plateDouble.mMaterialAmount * 4L,
+ new MaterialStack(Materials.Silver, OrePrefixes.ring.mMaterialAmount * 4L)),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 5L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 3L)));
+
+ ItemList.Large_Fluid_Cell_StainlessSteel.set(
+ addItem(
+ Large_Fluid_Cell_StainlessSteel.ID,
+ "Large Stainless Steel Fluid Cell",
+ "",
+ new ItemData(
+ Materials.StainlessSteel,
+ OrePrefixes.plateDouble.mMaterialAmount * 4L,
+ new MaterialStack(Materials.Electrum, OrePrefixes.ring.mMaterialAmount * 4L)),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 6L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 4L)));
+
+ ItemList.Large_Fluid_Cell_Titanium.set(
+ addItem(
+ Large_Fluid_Cell_Titanium.ID,
+ "Large Titanium Fluid Cell",
+ "",
+ new ItemData(
+ Materials.Titanium,
+ OrePrefixes.plateDouble.mMaterialAmount * 4L,
+ new MaterialStack(Materials.RoseGold, OrePrefixes.ring.mMaterialAmount * 4L)),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 7L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 5L)));
+
+ ItemList.Large_Fluid_Cell_Chrome.set(
+ addItem(
+ Large_Fluid_Cell_Chrome.ID,
+ "Large Chrome Fluid Cell",
+ "",
+ new ItemData(
+ Materials.Chrome,
+ OrePrefixes.plateDouble.mMaterialAmount * 4L,
+ new MaterialStack(Materials.Palladium, OrePrefixes.ring.mMaterialAmount * 4L)),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 8L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 6L)));
+
+ ItemList.Large_Fluid_Cell_Iridium.set(
+ addItem(
+ Large_Fluid_Cell_Iridium.ID,
+ "Large Iridium Fluid Cell",
+ "",
+ new ItemData(
+ Materials.Iridium,
+ OrePrefixes.plateDouble.mMaterialAmount * 4L,
+ new MaterialStack(Materials.Naquadah, OrePrefixes.ring.mMaterialAmount * 4L)),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 10L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 8L)));
+
+ ItemList.Large_Fluid_Cell_Osmium.set(
+ addItem(
+ Large_Fluid_Cell_Osmium.ID,
+ "Large Osmium Fluid Cell",
+ "",
+ new ItemData(
+ Materials.Osmium,
+ OrePrefixes.plateDouble.mMaterialAmount * 4L,
+ new MaterialStack(Materials.ElectrumFlux, OrePrefixes.ring.mMaterialAmount * 4L)),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 11L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 9L)));
+
+ ItemList.Large_Fluid_Cell_Neutronium.set(
+ addItem(
+ Large_Fluid_Cell_Neutronium.ID,
+ "Large Neutronium Fluid Cell",
+ "",
+ new ItemData(
+ Materials.Neutronium,
+ OrePrefixes.plateDouble.mMaterialAmount * 4L,
+ new MaterialStack(Materials.Draconium, OrePrefixes.ring.mMaterialAmount * 4L)),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 12L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 10L)));
+
+ for (byte i = 0; i < 16; i = (byte) (i + 1)) {
+ ItemList.SPRAY_CAN_DYES[i].set(
+ addItem(
+ Spray_Colors[i],
+ "Spray Can (" + Dyes.get(i).mName + ")",
+ "Full",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 4L)));
+ ItemList.SPRAY_CAN_DYES_USED[i].set(
+ addItem(
+ Spray_Colors_Used[i],
+ "Spray Can (" + Dyes.get(i).mName + ")",
+ "Used",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 3L),
+ SubTag.INVISIBLE));
+ }
+
+ ItemList.Spray_Color_Remover.set(
+ addItem(
+ Spray_Color_Remover.ID,
+ "Spray Can Solvent",
+ "Full",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 4L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.PERDITIO, 8L)));
+ ItemList.Spray_Color_Used_Remover.set(
+ addItem(
+ Spray_Color_Used_Remover.ID,
+ "Spray Can Solvent",
+ "Used",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 3L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.PERDITIO, 6L),
+ SubTag.INVISIBLE));
+
+ ItemList.Spray_Color_Remover_Empty.set(
+ addItem(
+ Spray_Color_Remover_Empty.ID,
+ "Empty Spray Can Solvent Cannister",
+ "Used for making Spray Can Solvent",
+ new ItemData(
+ Materials.Aluminium,
+ OrePrefixes.plateDouble.mMaterialAmount * 4L,
+ Materials.Redstone,
+ OrePrefixes.dust.mMaterialAmount),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 1L)));
+
+ ItemList.Tool_Matches.set(
+ addItem(
+ Tool_Matches.ID,
+ "Match",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 1L)));
+
+ ItemList.Tool_MatchBox_Used.set(
+ addItem(
+ Tool_MatchBox_Used.ID,
+ "Match Box",
+ "This is not a Car",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 1L),
+ SubTag.INVISIBLE));
+
+ ItemList.Tool_MatchBox_Full.set(
+ addItem(
+ Tool_MatchBox_Full.ID,
+ "Match Box (Full)",
+ "This is not a Car",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 2L)));
+
+ ItemList.Tool_Lighter_Invar_Empty.set(
+ addItem(
+ Tool_Lighter_Invar_Empty.ID,
+ "Lighter (Empty)",
+ "",
+ new ItemData(Materials.Invar, OrePrefixes.plate.mMaterialAmount * 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 1L)));
+ ItemList.Tool_Lighter_Invar_Used.set(
+ addItem(
+ Tool_Lighter_Invar_Used.ID,
+ "Lighter",
+ "",
+ new ItemData(Materials.Invar, OrePrefixes.plate.mMaterialAmount * 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 1L),
+ SubTag.INVISIBLE));
+ ItemList.Tool_Lighter_Invar_Full.set(
+ addItem(
+ Tool_Lighter_Invar_Full.ID,
+ "Lighter (Full)",
+ "",
+ new ItemData(Materials.Invar, OrePrefixes.plate.mMaterialAmount * 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 2L)));
+
+ ItemList.Tool_Lighter_Platinum_Empty.set(
+ addItem(
+ Tool_Lighter_Platinum_Empty.ID,
+ "Platinum Lighter (Empty)",
+ "A known Prank Master is engraved on it",
+ new ItemData(Materials.Platinum, OrePrefixes.plate.mMaterialAmount * 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.NEBRISUM, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 1L)));
+ ItemList.Tool_Lighter_Platinum_Used.set(
+ addItem(
+ Tool_Lighter_Platinum_Used.ID,
+ "Platinum Lighter",
+ "A known Prank Master is engraved on it",
+ new ItemData(Materials.Platinum, OrePrefixes.plate.mMaterialAmount * 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.NEBRISUM, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 1L),
+ SubTag.INVISIBLE));
+ ItemList.Tool_Lighter_Platinum_Full.set(
+ addItem(
+ Tool_Lighter_Platinum_Full.ID,
+ "Platinum Lighter (Full)",
+ "A known Prank Master is engraved on it",
+ new ItemData(Materials.Platinum, OrePrefixes.plate.mMaterialAmount * 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.NEBRISUM, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 2L)));
+
+ ItemList.Ingot_Heavy1
+ .set(addItem(Ingot_Heavy1.ID, "Heavy Duty Alloy Ingot T1", "Used to make Heavy Duty Plates T1"));
+ ItemList.Ingot_Heavy2
+ .set(addItem(Ingot_Heavy2.ID, "Heavy Duty Alloy Ingot T2", "Used to make Heavy Duty Plates T2"));
+ ItemList.Ingot_Heavy3
+ .set(addItem(Ingot_Heavy3.ID, "Heavy Duty Alloy Ingot T3", "Used to make Heavy Duty Plates T3"));
+
+ ItemList.Ingot_IridiumAlloy.set(
+ addItem(
+ Ingot_Iridium_Alloy.ID,
+ "Iridium Alloy Ingot",
+ "Used to make Iridium Plates",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.TUTAMEN, 4L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L)));
+
+ ItemList.Paper_Printed_Pages.set(
+ addItem(
+ Paper_Printed_Pages.ID,
+ "Printed Pages",
+ "Used to make written Books",
+ new ItemData(Materials.Paper, 10886400L),
+ new Behaviour_PrintedPages(),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITIO, 2L)));
+ ItemList.Paper_Magic_Empty.set(
+ addItem(
+ Paper_Magic_Empty.ID,
+ "Magic Paper",
+ "",
+ SubTag.INVISIBLE,
+ new ItemData(Materials.Paper, 3628800L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITIO, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.PRAECANTATIO, 1L)));
+ ItemList.Paper_Magic_Page.set(
+ addItem(
+ Paper_Magic_Page.ID,
+ "Enchanted Page",
+ "",
+ SubTag.INVISIBLE,
+ new ItemData(Materials.Paper, 3628800L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITIO, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.PRAECANTATIO, 2L)));
+ ItemList.Paper_Magic_Pages.set(
+ addItem(
+ Paper_Magic_Pages.ID,
+ "Enchanted Pages",
+ "",
+ SubTag.INVISIBLE,
+ new ItemData(Materials.Paper, 10886400L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITIO, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.PRAECANTATIO, 4L)));
+ ItemList.Paper_Punch_Card_Empty.set(
+ addItem(
+ Paper_Punch_Card_Empty.ID,
+ "Punch Card",
+ "",
+ SubTag.INVISIBLE,
+ new ItemData(Materials.Paper, 7257600L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITIO, 1L)));
+ ItemList.Paper_Punch_Card_Encoded.set(
+ addItem(
+ Paper_Punch_Card_Encoded.ID,
+ "Punched Card",
+ "",
+ SubTag.INVISIBLE,
+ new ItemData(Materials.Paper, 7257600L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITIO, 2L)));
+ ItemList.Book_Written_01.set(
+ addItem(
+ Book_Written_01.ID,
+ "Book",
+ "",
+ new ItemData(Materials.Paper, 10886400L),
+ "bookWritten",
+ OreDictNames.craftingBook,
+ new Behaviour_WrittenBook(),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITIO, 2L)));
+ ItemList.Book_Written_02.set(
+ addItem(
+ Book_Written_02.ID,
+ "Book",
+ "",
+ new ItemData(Materials.Paper, 10886400L),
+ "bookWritten",
+ OreDictNames.craftingBook,
+ new Behaviour_WrittenBook(),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITIO, 2L)));
+ ItemList.Book_Written_03.set(
+ addItem(
+ Book_Written_03.ID,
+ "Book",
+ "",
+ new ItemData(Materials.Paper, 10886400L),
+ "bookWritten",
+ OreDictNames.craftingBook,
+ new Behaviour_WrittenBook(),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITIO, 2L)));
+
+ ItemList.Schematic.set(
+ addItem(
+ Schematic.ID,
+ "Schematic",
+ "EMPTY",
+ new ItemData(Materials.Steel, 7257600L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.STRONTIO, 1L)));
+ ItemList.Schematic_Crafting.set(
+ addItem(
+ Schematic_Crafting.ID,
+ "Schematic (Crafting)",
+ "Crafts the Programmed Recipe",
+ new ItemData(Materials.Steel, 7257600L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITIO, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 1L)));
+ ItemList.Schematic_1by1.set(
+ addItem(
+ Schematic_1by1.ID,
+ "Schematic (1x1)",
+ "Crafts 1 Items as 1x1 (use in Packager)",
+ new ItemData(Materials.Steel, 7257600L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITIO, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 1L)));
+ ItemList.Schematic_2by2.set(
+ addItem(
+ Schematic_2by2.ID,
+ "Schematic (2x2)",
+ "Crafts 4 Items as 2x2 (use in Packager)",
+ new ItemData(Materials.Steel, 7257600L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITIO, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 1L)));
+ ItemList.Schematic_3by3.set(
+ addItem(
+ Schematic_3by3.ID,
+ "Schematic (3x3)",
+ "Crafts 9 Items as 3x3 (use in Packager)",
+ new ItemData(Materials.Steel, 7257600L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITIO, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 1L)));
+ ItemList.Schematic_Dust.set(
+ addItem(
+ Schematic_Dust.ID,
+ "Schematic (Dusts)",
+ "Combines Dusts (use in Packager)",
+ new ItemData(Materials.Steel, 7257600L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITIO, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 1L)));
+
+ ItemList.Battery_Hull_LV.set(
+ addItem(
+ Battery_Hull_LV.ID,
+ "Small Battery Hull",
+ "An empty LV Battery Hull",
+ new ItemData(Materials.BatteryAlloy, OrePrefixes.plate.mMaterialAmount * 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 1L)));
+ ItemList.Battery_Hull_MV.set(
+ addItem(
+ Battery_Hull_MV.ID,
+ "Medium Battery Hull",
+ "An empty MV Battery Hull",
+ new ItemData(Materials.BatteryAlloy, OrePrefixes.plate.mMaterialAmount * 3L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 1L)));
+ ItemList.Battery_Hull_HV.set(
+ addItem(
+ Battery_Hull_HV.ID,
+ "Large Battery Hull",
+ "An empty HV Battery Hull",
+ new ItemData(Materials.BatteryAlloy, OrePrefixes.plate.mMaterialAmount * 9L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 1L)));
+
+ // ULV Batteries
+ ItemList.Battery_RE_ULV_Tantalum.set(
+ addItem(
+ Battery_RE_ULV_Tantalum.ID,
+ "Tantalum Capacitor",
+ "Reusable",
+ "batteryULV",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 1L)));
+
+ // LV Batteries
+ ItemList.Battery_SU_LV_SulfuricAcid.set(
+ addItem(
+ Battery_SU_LV_Sulfuric_Acid.ID,
+ "Small Acid Battery",
+ "Single Use",
+ "batteryLV",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 2L)));
+
+ ItemList.Battery_SU_LV_Mercury.set(
+ addItem(
+ Battery_SU_LV_Mercury.ID,
+ "Small Mercury Battery",
+ "Single Use",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 2L)));
+
+ ItemList.Battery_RE_LV_Cadmium.set(
+ addItem(
+ Battery_RE_LV_Cadmium.ID,
+ "Small Cadmium Battery",
+ "Reusable",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 1L),
+ "batteryLV"));
+
+ ItemList.Battery_RE_LV_Lithium.set(
+ addItem(
+ Battery_RE_LV_Lithium.ID,
+ "Small Lithium Battery",
+ "Reusable",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 1L),
+ "batteryLV"));
+
+ ItemList.Battery_RE_LV_Sodium.set(
+ addItem(
+ Battery_RE_LV_Sodium.ID,
+ "Small Sodium Battery",
+ "Reusable",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 1L),
+ "batteryLV"));
+
+ // MV Batteries
+ ItemList.Battery_SU_MV_SulfuricAcid.set(
+ addItem(
+ Battery_SU_MV_Sulfuric_Acid.ID,
+ "Medium Acid Battery",
+ "Single Use",
+ "batteryMV",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 4L)));
+
+ ItemList.Battery_SU_MV_Mercury.set(
+ addItem(
+ Battery_SU_MV_Mercury.ID,
+ "Medium Mercury Battery",
+ "Single Use",
+ "batteryMV",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 4L)));
+
+ ItemList.Battery_RE_MV_Cadmium.set(
+ addItem(
+ Battery_RE_MV_Cadmium.ID,
+ "Medium Cadmium Battery",
+ "Reusable",
+ "batteryMV",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 2L)));
+
+ ItemList.Battery_RE_MV_Lithium.set(
+ addItem(
+ Battery_RE_MV_Lithium.ID,
+ "Medium Lithium Battery",
+ "Reusable",
+ "batteryMV",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 2L)));
+
+ ItemList.Battery_RE_MV_Sodium.set(
+ addItem(
+ Battery_RE_MV_Sodium.ID,
+ "Medium Sodium Battery",
+ "Reusable",
+ "batteryMV",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 2L)));
+
+ // HV Batteries
+ ItemList.Battery_SU_HV_SulfuricAcid.set(
+ addItem(
+ Battery_SU_HV_Sulfuric_Acid.ID,
+ "Large Acid Battery",
+ "Single Use",
+ "batteryHV",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 8L)));
+
+ ItemList.Battery_SU_HV_Mercury.set(
+ addItem(
+ Battery_SU_HV_Mercury.ID,
+ "Large Mercury Battery",
+ "Single Use",
+ "batteryHV",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 8L)));
+
+ ItemList.Battery_RE_HV_Cadmium.set(
+ addItem(
+ Battery_RE_HV_Cadmium.ID,
+ "Large Cadmium Battery",
+ "Reusable",
+ "batteryHV",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 4L)));
+
+ ItemList.Battery_RE_HV_Lithium.set(
+ addItem(
+ Battery_RE_HV_Lithium.ID,
+ "Large Lithium Battery",
+ "Reusable",
+ "batteryHV",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 4L)));
+
+ ItemList.Battery_RE_HV_Sodium.set(
+ addItem(
+ Battery_RE_HV_Sodium.ID,
+ "Large Sodium Battery",
+ "Reusable",
+ "batteryHV",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 4L)));
+
+ // IV Battery
+ ItemList.Energy_LapotronicOrb.set(
+ addItem(
+ Energy_Lapotronic_Orb.ID,
+ "Lapotronic Energy Orb",
+ "Reusable battery",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 16L),
+ OrePrefixes.battery.get(Materials.IV)));
+
+ // ZPM Module
+ ItemList.ZPM.set(
+ addItem(
+ ID_MetaItem_01.ZPM.ID,
+ "Zero Point Module",
+ "Single use battery",
+ "batteryZPM",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 64L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 64L)));
+
+ // LuV Lapotron orb cluster battery
+ ItemList.Energy_LapotronicOrb2.set(
+ addItem(
+ Energy_Lapotronic_orb_2.ID,
+ "Lapotronic Energy Orb Cluster",
+ "Reusable battery",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 16L),
+ OrePrefixes.battery.get(Materials.LuV)));
+
+ // UV Battery
+ ItemList.ZPM2.set(
+ addItem(
+ ZPM2.ID,
+ "Ultimate Battery",
+ "Fill this to win minecraft",
+ "batteryUV",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 64L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 64L)));
+
+ // UMV Battery
+ ItemList.ZPM3.set(
+ addItem(
+ ZPM3.ID,
+ "Really Ultimate Battery",
+ "Fill this to be way older",
+ "batteryUMV",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 64L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 64L)));
+
+ // UXV Battery
+ ItemList.ZPM4.set(
+ addItem(
+ ZPM4.ID,
+ "Extremely Ultimate Battery",
+ "Fill this to be older",
+ "batteryUXV",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 64L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 64L)));
+
+ // MAX Battery
+ ItemList.ZPM5.set(
+ addItem(
+ ZPM5.ID,
+ "Insanely Ultimate Battery",
+ "Fill this for fun",
+ "batteryMAX",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 64L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 64L)));
+
+ // ERROR Battery
+ ItemList.ZPM6.set(
+ addItem(
+ ZPM6.ID,
+ "Mega Ultimate Battery",
+ "Fill the capacitor to reach enlightenment",
+ "batteryERV",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 64L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 64L)));
+
+ // ZPM Cluster
+ ItemList.Energy_Module.set(
+ addItem(
+ Energy_Module.ID,
+ "Energy Module",
+ "Reusable battery",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 16L),
+ OrePrefixes.battery.get(Materials.ZPM)));
+
+ // UV Cluster
+ ItemList.Energy_Cluster.set(
+ addItem(
+ Energy_Cluster.ID,
+ "Energy Cluster",
+ "Reusable battery",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 64L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 64L),
+ OrePrefixes.battery.get(Materials.UV)));
+
+ // UIV, UMV, UXV and MAX component textures backported from gregicality.
+ ItemList.Electric_Motor_LV.set(
+ addItem(
+ Electric_Motor_LV.ID,
+ "Electric Motor (LV)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 1L)));
+ ItemList.Electric_Motor_MV.set(
+ addItem(
+ Electric_Motor_MV.ID,
+ "Electric Motor (MV)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 2L)));
+ ItemList.Electric_Motor_HV.set(
+ addItem(
+ Electric_Motor_HV.ID,
+ "Electric Motor (HV)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 4L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 4L)));
+ ItemList.Electric_Motor_EV.set(
+ addItem(
+ Electric_Motor_EV.ID,
+ "Electric Motor (EV)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 8L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 8L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 8L)));
+ ItemList.Electric_Motor_IV.set(
+ addItem(
+ Electric_Motor_IV.ID,
+ "Electric Motor (IV)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 16L)));
+ ItemList.Electric_Motor_LuV.set(
+ addItem(
+ Electric_Motor_LuV.ID,
+ "Electric Motor (LuV)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 32L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 32L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 32L)));
+ ItemList.Electric_Motor_ZPM.set(
+ addItem(
+ Electric_Motor_ZPM.ID,
+ "Electric Motor (ZPM)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 64L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 64L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 64L)));
+ ItemList.Electric_Motor_UV.set(
+ addItem(
+ Electric_Motor_UV.ID,
+ "Electric Motor (UV)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 128L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 128L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 128L)));
+ ItemList.Electric_Motor_UHV.set(
+ addItem(
+ Electric_Motor_UHV.ID,
+ "Electric Motor (UHV)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 256L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 256L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 256L)));
+ ItemList.Electric_Motor_UEV.set(
+ addItem(
+ Electric_Motor_UEV.ID,
+ "Electric Motor (UEV)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 512L)));
+ ItemList.Electric_Motor_UIV.set(
+ addItem(
+ Electric_Motor_UIV.ID,
+ "Electric Motor (UIV)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 512L)));
+ ItemList.Electric_Motor_UMV.set(
+ addItem(
+ Electric_Motor_UMV.ID,
+ "Electric Motor (UMV)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 512L)));
+ ItemList.Electric_Motor_UXV.set(
+ addItem(
+ Electric_Motor_UXV.ID,
+ "Electric Motor (UXV)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 512L)));
+ ItemList.Electric_Motor_MAX.set(
+ addItem(
+ Electric_Motor_MAX.ID,
+ "Electric Motor (MAX)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 512L)));
+
+ ItemList.Tesseract.set(
+ addItem(
+ Tesseract.ID,
+ "Raw Tesseract",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 1L)));
+ ItemList.GigaChad.set(
+ addItem(
+ GigaChad.ID,
+ "Giga Chad Token",
+ "You are worthy",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITIO, 1000L)));
+ ItemList.EnergisedTesseract.set(
+ addItem(
+ EnergisedTesseract.ID,
+ "Energised Tesseract",
+ "Higher dimensional engineering",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 10L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 1L)));
+
+ ItemList.Electric_Piston_LV.set(
+ addItem(
+ Electric_Piston_LV.ID,
+ "Electric Piston (LV)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 1L)));
+ ItemList.Electric_Piston_MV.set(
+ addItem(
+ Electric_Piston_MV.ID,
+ "Electric Piston (MV)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 4L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 2L)));
+ ItemList.Electric_Piston_HV.set(
+ addItem(
+ Electric_Piston_HV.ID,
+ "Electric Piston (HV)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 8L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 4L)));
+ ItemList.Electric_Piston_EV.set(
+ addItem(
+ Electric_Piston_EV.ID,
+ "Electric Piston (EV)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 8L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 8L)));
+ ItemList.Electric_Piston_IV.set(
+ addItem(
+ Electric_Piston_IV.ID,
+ "Electric Piston (IV)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 32L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 16L)));
+ ItemList.Electric_Piston_LuV.set(
+ addItem(
+ Electric_Piston_LuV.ID,
+ "Electric Piston (LuV)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 32L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 64L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 32L)));
+ ItemList.Electric_Piston_ZPM.set(
+ addItem(
+ Electric_Piston_ZPM.ID,
+ "Electric Piston (ZPM)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 64L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 64L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 64L)));
+ ItemList.Electric_Piston_UV.set(
+ addItem(
+ Electric_Piston_UV.ID,
+ "Electric Piston (UV)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 128L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 128L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 128L)));
+ ItemList.Electric_Piston_UHV.set(
+ addItem(
+ Electric_Piston_UHV.ID,
+ "Electric Piston (UHV)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 256L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 256L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 256L)));
+ ItemList.Electric_Piston_UEV.set(
+ addItem(
+ Electric_Piston_UEV.ID,
+ "Electric Piston (UEV)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 512L)));
+ ItemList.Electric_Piston_UIV.set(
+ addItem(
+ Electric_Piston_UIV.ID,
+ "Electric Piston (UIV)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 512L)));
+ ItemList.Electric_Piston_UMV.set(
+ addItem(
+ Electric_Piston_UMV.ID,
+ "Electric Piston (UMV)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 512L)));
+ ItemList.Electric_Piston_UXV.set(
+ addItem(
+ Electric_Piston_UXV.ID,
+ "Electric Piston (UXV)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 512L)));
+ ItemList.Electric_Piston_MAX.set(
+ addItem(
+ Electric_Piston_MAX.ID,
+ "Electric Piston (MAX)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 512L)));
+
+ ItemList.Electric_Pump_LV.set(
+ addItem(
+ Electric_Pump_LV.ID,
+ "Electric Pump (LV)",
+ GT_Utility.formatNumbers(32) + PartCoverText + GT_Utility.formatNumbers(32 * 20) + PartCoverText2,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L)));
+ ItemList.Electric_Pump_MV.set(
+ addItem(
+ Electric_Pump_MV.ID,
+ "Electric Pump (MV)",
+ GT_Utility.formatNumbers(128) + PartCoverText + GT_Utility.formatNumbers(128 * 20) + PartCoverText2,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 2L)));
+ ItemList.Electric_Pump_HV.set(
+ addItem(
+ Electric_Pump_HV.ID,
+ "Electric Pump (HV)",
+ GT_Utility.formatNumbers(512) + PartCoverText + GT_Utility.formatNumbers(512 * 20) + PartCoverText2,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 4L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 4L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 4L)));
+ ItemList.Electric_Pump_EV.set(
+ addItem(
+ Electric_Pump_EV.ID,
+ "Electric Pump (EV)",
+ GT_Utility.formatNumbers(2048) + PartCoverText + GT_Utility.formatNumbers(2048 * 20) + PartCoverText2,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 8L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 8L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 8L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 8L)));
+ ItemList.Electric_Pump_IV.set(
+ addItem(
+ Electric_Pump_IV.ID,
+ "Electric Pump (IV)",
+ GT_Utility.formatNumbers(8192) + PartCoverText + GT_Utility.formatNumbers(8192 * 20) + PartCoverText2,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 16L)));
+ ItemList.Electric_Pump_LuV.set(
+ addItem(
+ Electric_Pump_LuV.ID,
+ "Electric Pump (LuV)",
+ GT_Utility.formatNumbers(32768) + PartCoverText + GT_Utility.formatNumbers(32768 * 20) + PartCoverText2,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 32L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 32L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 32L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 32L)));
+ ItemList.Electric_Pump_ZPM.set(
+ addItem(
+ Electric_Pump_ZPM.ID,
+ "Electric Pump (ZPM)",
+ GT_Utility.formatNumbers(131072) + PartCoverText
+ + GT_Utility.formatNumbers(131072 * 20)
+ + PartCoverText2,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 64L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 64L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 64L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 64L)));
+ ItemList.Electric_Pump_UV.set(
+ addItem(
+ Electric_Pump_UV.ID,
+ "Electric Pump (UV)",
+ GT_Utility.formatNumbers(524288) + PartCoverText
+ + GT_Utility.formatNumbers(524288 * 20)
+ + PartCoverText2,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 128L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 128L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 128L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 128L)));
+ ItemList.Electric_Pump_UHV.set(
+ addItem(
+ Electric_Pump_UHV.ID,
+ "Electric Pump (UHV)",
+ GT_Utility.formatNumbers(1048576) + PartCoverText
+ + GT_Utility.formatNumbers(1048576 * 20)
+ + PartCoverText2,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 256L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 256L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 256L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 256L)));
+ ItemList.Electric_Pump_UEV.set(
+ addItem(
+ Electric_Pump_UEV.ID,
+ "Electric Pump (UEV)",
+ GT_Utility.formatNumbers(2097152) + PartCoverText
+ + GT_Utility.formatNumbers(2097152 * 20)
+ + PartCoverText2,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 512L)));
+ ItemList.Electric_Pump_UIV.set(
+ addItem(
+ Electric_Pump_UIV.ID,
+ "Electric Pump (UIV)",
+ PartNotCoverText,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 512L)));
+ ItemList.Electric_Pump_UMV.set(
+ addItem(
+ Electric_Pump_UMV.ID,
+ "Electric Pump (UMV)",
+ PartNotCoverText,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 512L)));
+ ItemList.Electric_Pump_UXV.set(
+ addItem(
+ Electric_Pump_UXV.ID,
+ "Electric Pump (UXV)",
+ PartNotCoverText,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 512L)));
+ ItemList.Electric_Pump_MAX.set(
+ addItem(
+ Electric_Pump_MAX.ID,
+ "Electric Pump (MAX)",
+ PartNotCoverText,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 512L)));
+
+ ItemList.Steam_Valve_LV.set(
+ addItem(
+ Steam_Valve_LV.ID,
+ "Steam Valve (LV)",
+ GT_Utility.formatNumbers(1024) + PartCoverText + GT_Utility.formatNumbers(1024 * 20) + PartCoverText2,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L)));
+ ItemList.Steam_Valve_MV.set(
+ addItem(
+ Steam_Valve_MV.ID,
+ "Steam Valve (MV)",
+ GT_Utility.formatNumbers(2048) + PartCoverText + GT_Utility.formatNumbers(2048 * 20) + PartCoverText2,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 2L)));
+ ItemList.Steam_Valve_HV.set(
+ addItem(
+ Steam_Valve_HV.ID,
+ "Steam Valve (HV)",
+ GT_Utility.formatNumbers(4096) + PartCoverText + GT_Utility.formatNumbers(4096 * 20) + PartCoverText2,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 4L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 4L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 4L)));
+ ItemList.Steam_Valve_EV.set(
+ addItem(
+ Steam_Valve_EV.ID,
+ "Steam Valve (EV)",
+ GT_Utility.formatNumbers(8192) + PartCoverText + GT_Utility.formatNumbers(8192 * 20) + PartCoverText2,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 8L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 8L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 8L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 8L)));
+ ItemList.Steam_Valve_IV.set(
+ addItem(
+ Steam_Valve_IV.ID,
+ "Steam Valve (IV)",
+ GT_Utility.formatNumbers(16384) + PartCoverText + GT_Utility.formatNumbers(16384 * 20) + PartCoverText2,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 16L)));
+
+ ItemList.FluidRegulator_LV.set(
+ addItem(FluidRegulator_LV.ID, "Fluid Regulator (LV)", FRText1 + GT_Utility.formatNumbers(640) + FRText2));
+ ItemList.FluidRegulator_MV.set(
+ addItem(FluidRegulator_MV.ID, "Fluid Regulator (MV)", FRText1 + GT_Utility.formatNumbers(2560) + FRText2));
+ ItemList.FluidRegulator_HV.set(
+ addItem(FluidRegulator_HV.ID, "Fluid Regulator (HV)", FRText1 + GT_Utility.formatNumbers(10240) + FRText2));
+ ItemList.FluidRegulator_EV.set(
+ addItem(FluidRegulator_EV.ID, "Fluid Regulator (EV)", FRText1 + GT_Utility.formatNumbers(40960) + FRText2));
+ ItemList.FluidRegulator_IV.set(
+ addItem(
+ FluidRegulator_IV.ID,
+ "Fluid Regulator (IV)",
+ FRText1 + GT_Utility.formatNumbers(163840) + FRText2));
+ ItemList.FluidRegulator_LuV.set(
+ addItem(
+ FluidRegulator_LuV.ID,
+ "Fluid Regulator (LuV)",
+ FRText1 + GT_Utility.formatNumbers(655360) + FRText2));
+ ItemList.FluidRegulator_ZPM.set(
+ addItem(
+ FluidRegulator_ZPM.ID,
+ "Fluid Regulator (ZPM)",
+ FRText1 + GT_Utility.formatNumbers(2621440) + FRText2));
+ ItemList.FluidRegulator_UV.set(
+ addItem(
+ FluidRegulator_UV.ID,
+ "Fluid Regulator (UV)",
+ FRText1 + GT_Utility.formatNumbers(10485760) + FRText2));
+
+ ItemList.FluidFilter.set(
+ addItem(FluidFilter.ID, "Fluid Filter Cover", "Set with Fluid Container to only accept one Fluid Type"));
+
+ ItemList.ItemFilter_Export.set(
+ addItem(
+ ItemFilter_Export.ID,
+ "Filtered Conveyor Cover (Export)",
+ "Right click with an item to set filter (Only supports Export Mode)"));
+
+ ItemList.ItemFilter_Import.set(
+ addItem(
+ ItemFilter_Import.ID,
+ "Filtered Conveyor Cover (Import)",
+ "Right click with an item to set filter (Only supports Import Mode)"));
+
+ ItemList.Cover_FluidLimiter
+ .set(addItem(Cover_FluidLimiter.ID, "Fluid Limiter Cover", "Limits fluid input depending on fill level"));
+
+ ItemList.Conveyor_Module_LV.set(
+ addItem(
+ Conveyor_Module_LV.ID,
+ "Conveyor Module (LV)",
+ "1 stack every 20 secs (as Cover)",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 1L)));
+ ItemList.Conveyor_Module_MV.set(
+ addItem(
+ Conveyor_Module_MV.ID,
+ "Conveyor Module (MV)",
+ "1 stack every 5 secs (as Cover)",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 2L)));
+ ItemList.Conveyor_Module_HV.set(
+ addItem(
+ Conveyor_Module_HV.ID,
+ "Conveyor Module (HV)",
+ "1 stack every 1 sec (as Cover)",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 4L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 4L)));
+ ItemList.Conveyor_Module_EV.set(
+ addItem(
+ Conveyor_Module_EV.ID,
+ "Conveyor Module (EV)",
+ "1 stack every 1/5 sec (as Cover)",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 8L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 8L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 8L)));
+ ItemList.Conveyor_Module_IV.set(
+ addItem(
+ Conveyor_Module_IV.ID,
+ "Conveyor Module (IV)",
+ "1 stack every 1/20 sec (as Cover)",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 16L)));
+ ItemList.Conveyor_Module_LuV.set(
+ addItem(
+ Conveyor_Module_LuV.ID,
+ "Conveyor Module (LuV)",
+ "2 stacks every 1/20 sec (as Cover)",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 32L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 32L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 32L)));
+ ItemList.Conveyor_Module_ZPM.set(
+ addItem(
+ Conveyor_Module_ZPM.ID,
+ "Conveyor Module (ZPM)",
+ "4 stacks every 1/20 sec (as Cover)",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 64L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 64L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 64L)));
+ ItemList.Conveyor_Module_UV.set(
+ addItem(
+ Conveyor_Module_UV.ID,
+ "Conveyor Module (UV)",
+ "8 stacks every 1/20 sec (as Cover)",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 128L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 128L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 128L)));
+ ItemList.Conveyor_Module_UHV.set(
+ addItem(
+ Conveyor_Module_UHV.ID,
+ "Conveyor Module (UHV)",
+ "16 stacks every 1/20 sec (as Cover)",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 256L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 256L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 256L)));
+ ItemList.Conveyor_Module_UEV.set(
+ addItem(
+ Conveyor_Module_UEV.ID,
+ "Conveyor Module (UEV)",
+ "32 stacks every 1/20 sec (as Cover)",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 512L)));
+ ItemList.Conveyor_Module_UIV.set(
+ addItem(
+ Conveyor_Module_UIV.ID,
+ "Conveyor Module (UIV)",
+ PartNotCoverText,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 512L)));
+ ItemList.Conveyor_Module_UMV.set(
+ addItem(
+ Conveyor_Module_UMV.ID,
+ "Conveyor Module (UMV)",
+ PartNotCoverText,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 512L)));
+ ItemList.Conveyor_Module_UXV.set(
+ addItem(
+ Conveyor_Module_UXV.ID,
+ "Conveyor Module (UXV)",
+ PartNotCoverText,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 512L)));
+ ItemList.Conveyor_Module_MAX.set(
+ addItem(
+ Conveyor_Module_MAX.ID,
+ "Conveyor Module (MAX)",
+ PartNotCoverText,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 512L)));
+
+ ItemList.Robot_Arm_LV.set(
+ addItem(
+ Robot_Arm_LV.ID,
+ "Robot Arm (LV)",
+ "1 stack every 20 secs (as Cover)/n " + RAText,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITIO, 1L)));
+ ItemList.Robot_Arm_MV.set(
+ addItem(
+ Robot_Arm_MV.ID,
+ "Robot Arm (MV)",
+ "1 stack every 5 secs (as Cover)/n " + RAText,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 4L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITIO, 2L)));
+ ItemList.Robot_Arm_HV.set(
+ addItem(
+ Robot_Arm_HV.ID,
+ "Robot Arm (HV)",
+ "1 stack every 1 sec (as Cover)/n " + RAText,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 8L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 4L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITIO, 4L)));
+ ItemList.Robot_Arm_EV.set(
+ addItem(
+ Robot_Arm_EV.ID,
+ "Robot Arm (EV)",
+ "1 stack every 1/5 sec (as Cover)/n " + RAText,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 8L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 8L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITIO, 8L)));
+ ItemList.Robot_Arm_IV.set(
+ addItem(
+ Robot_Arm_IV.ID,
+ "Robot Arm (IV)",
+ "1 stack every 1/20 sec (as Cover)/n " + RAText,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 32L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITIO, 16L)));
+ ItemList.Robot_Arm_LuV.set(
+ addItem(
+ Robot_Arm_LuV.ID,
+ "Robot Arm (LuV)",
+ PartNotCoverText,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 32L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 64L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 32L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITIO, 32L)));
+ ItemList.Robot_Arm_ZPM.set(
+ addItem(
+ Robot_Arm_ZPM.ID,
+ "Robot Arm (ZPM)",
+ PartNotCoverText,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 64L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 128L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 64L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITIO, 64L)));
+ ItemList.Robot_Arm_UV.set(
+ addItem(
+ Robot_Arm_UV.ID,
+ "Robot Arm (UV)",
+ PartNotCoverText,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 128L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 256L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 128L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITIO, 128L)));
+ ItemList.Robot_Arm_UHV.set(
+ addItem(
+ Robot_Arm_UHV.ID,
+ "Robot Arm (UHV)",
+ PartNotCoverText,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 256L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 256L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITIO, 256L)));
+ ItemList.Robot_Arm_UEV.set(
+ addItem(
+ Robot_Arm_UEV.ID,
+ "Robot Arm (UEV)",
+ PartNotCoverText,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 1024L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITIO, 512L)));
+ ItemList.Robot_Arm_UIV.set(
+ addItem(
+ Robot_Arm_UIV.ID,
+ "Robot Arm (UIV)",
+ PartNotCoverText,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 1024L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITIO, 512L)));
+ ItemList.Robot_Arm_UMV.set(
+ addItem(
+ Robot_Arm_UMV.ID,
+ "Robot Arm (UMV)",
+ PartNotCoverText,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 1024L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITIO, 512L)));
+ ItemList.Robot_Arm_UXV.set(
+ addItem(
+ Robot_Arm_UXV.ID,
+ "Robot Arm (UXV)",
+ PartNotCoverText,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 1024L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITIO, 512L)));
+ ItemList.Robot_Arm_MAX.set(
+ addItem(
+ Robot_Arm_MAX.ID,
+ "Robot Arm (MAX)",
+ PartNotCoverText,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 1024L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITIO, 512L)));
+
+ ItemList.QuantumEye.set(addItem(QuantumEye.ID, "Quantum Eye", "Improved Ender Eye"));
+ ItemList.QuantumStar.set(addItem(QuantumStar.ID, "Quantum Star", "Improved Nether Star"));
+ ItemList.Gravistar.set(addItem(Gravistar.ID, "Gravi Star", "Ultimate Nether Star"));
+
+ ItemList.Emitter_LV.set(
+ addItem(
+ Emitter_LV.ID,
+ "Emitter (LV)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.LUX, 1L)));
+ ItemList.Emitter_MV.set(
+ addItem(
+ Emitter_MV.ID,
+ "Emitter (MV)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.LUX, 2L)));
+ ItemList.Emitter_HV.set(
+ addItem(
+ Emitter_HV.ID,
+ "Emitter (HV)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 4L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.LUX, 4L)));
+ ItemList.Emitter_EV.set(
+ addItem(
+ Emitter_EV.ID,
+ "Emitter (EV)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 8L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 8L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.LUX, 8L)));
+ ItemList.Emitter_IV.set(
+ addItem(
+ Emitter_IV.ID,
+ "Emitter (IV)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.LUX, 16L)));
+ ItemList.Emitter_LuV.set(
+ addItem(
+ Emitter_LuV.ID,
+ "Emitter (LuV)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 32L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 32L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.LUX, 32L)));
+ ItemList.Emitter_ZPM.set(
+ addItem(
+ Emitter_ZPM.ID,
+ "Emitter (ZPM)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 64L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 64L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.LUX, 64L)));
+ ItemList.Emitter_UV.set(
+ addItem(
+ Emitter_UV.ID,
+ "Emitter (UV)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 128L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 128L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.LUX, 128L)));
+ ItemList.Emitter_UHV.set(
+ addItem(
+ Emitter_UHV.ID,
+ "Emitter (UHV)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 256L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 256L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.LUX, 256L)));
+ ItemList.Emitter_UEV.set(
+ addItem(
+ Emitter_UEV.ID,
+ "Emitter (UEV)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.LUX, 512L)));
+ ItemList.Emitter_UIV.set(
+ addItem(
+ Emitter_UIV.ID,
+ "Emitter (UIV)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.LUX, 512L)));
+ ItemList.Emitter_UMV.set(
+ addItem(
+ Emitter_UMV.ID,
+ "Emitter (UMV)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.LUX, 512L)));
+ ItemList.Emitter_UXV.set(
+ addItem(
+ Emitter_UXV.ID,
+ "Emitter (UXV)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.LUX, 512L)));
+ ItemList.Emitter_MAX.set(
+ addItem(
+ Emitter_MAX.ID,
+ "Emitter (MAX)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.LUX, 512L)));
+
+ ItemList.Sensor_LV.set(
+ addItem(
+ Sensor_LV.ID,
+ "Sensor (LV)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 1L)));
+
+ ItemList.Sensor_MV.set(
+ addItem(
+ Sensor_MV.ID,
+ "Sensor (MV)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 2L)));
+ ItemList.Sensor_HV.set(
+ addItem(
+ Sensor_HV.ID,
+ "Sensor (HV)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 4L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 4L)));
+ ItemList.Sensor_EV.set(
+ addItem(
+ Sensor_EV.ID,
+ "Sensor (EV)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 8L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 8L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 8L)));
+ ItemList.Sensor_IV.set(
+ addItem(
+ Sensor_IV.ID,
+ "Sensor (IV)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 16L)));
+ ItemList.Sensor_LuV.set(
+ addItem(
+ Sensor_LuV.ID,
+ "Sensor (LuV)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 32L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 32L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 32L)));
+ ItemList.Sensor_ZPM.set(
+ addItem(
+ Sensor_ZPM.ID,
+ "Sensor (ZPM)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 64L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 64L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 64L)));
+ ItemList.Sensor_UV.set(
+ addItem(
+ Sensor_UV.ID,
+ "Sensor (UV)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 128L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 128L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 128L)));
+ ItemList.Sensor_UHV.set(
+ addItem(
+ Sensor_UHV.ID,
+ "Sensor (UHV)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 256L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 256L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 256L)));
+ ItemList.Sensor_UEV.set(
+ addItem(
+ Sensor_UEV.ID,
+ "Sensor (UEV)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 512L)));
+ ItemList.Sensor_UIV.set(
+ addItem(
+ Sensor_UIV.ID,
+ "Sensor (UIV)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 512L)));
+ ItemList.Sensor_UMV.set(
+ addItem(
+ Sensor_UMV.ID,
+ "Sensor (UMV)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 512L)));
+ ItemList.Sensor_UXV.set(
+ addItem(
+ Sensor_UXV.ID,
+ "Sensor (UXV)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 512L)));
+ ItemList.Sensor_MAX.set(
+ addItem(
+ Sensor_MAX.ID,
+ "Sensor (MAX)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 512L)));
+
+ ItemList.Field_Generator_LV.set(
+ addItem(
+ Field_Generator_LV.ID,
+ "Field Generator (LV)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.TUTAMEN, 1L)));
+ ItemList.Field_Generator_MV.set(
+ addItem(
+ Field_Generator_MV.ID,
+ "Field Generator (MV)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.TUTAMEN, 2L)));
+ ItemList.Field_Generator_HV.set(
+ addItem(
+ Field_Generator_HV.ID,
+ "Field Generator (HV)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 8L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 4L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.TUTAMEN, 4L)));
+ ItemList.Field_Generator_EV.set(
+ addItem(
+ Field_Generator_EV.ID,
+ "Field Generator (EV)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 8L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.TUTAMEN, 8L)));
+ ItemList.Field_Generator_IV.set(
+ addItem(
+ Field_Generator_IV.ID,
+ "Field Generator (IV)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 32L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.TUTAMEN, 16L)));
+ ItemList.Field_Generator_LuV.set(
+ addItem(
+ Field_Generator_LuV.ID,
+ "Field Generator (LuV)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 64L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 32L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.TUTAMEN, 32L)));
+ ItemList.Field_Generator_ZPM.set(
+ addItem(
+ Field_Generator_ZPM.ID,
+ "Field Generator (ZPM)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 128L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 64L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.TUTAMEN, 64L)));
+ ItemList.Field_Generator_UV.set(
+ addItem(
+ Field_Generator_UV.ID,
+ "Field Generator (UV)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 256L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 128L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.TUTAMEN, 128L)));
+ ItemList.Field_Generator_UHV.set(
+ addItem(
+ Field_Generator_UHV.ID,
+ "Field Generator (UHV)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 256L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.TUTAMEN, 256L)));
+ ItemList.Field_Generator_UEV.set(
+ addItem(
+ Field_Generator_UEV.ID,
+ "Field Generator (UEV)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1024L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.TUTAMEN, 512L)));
+ ItemList.Field_Generator_UIV.set(
+ addItem(
+ Field_Generator_UIV.ID,
+ "Field Generator (UIV)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1024L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.TUTAMEN, 512L)));
+ ItemList.Field_Generator_UMV.set(
+ addItem(
+ Field_Generator_UMV.ID,
+ "Field Generator (UMV)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1024L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.TUTAMEN, 512L)));
+ ItemList.Field_Generator_UXV.set(
+ addItem(
+ Field_Generator_UXV.ID,
+ "Field Generator (UXV)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1024L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.TUTAMEN, 512L)));
+ ItemList.Field_Generator_MAX.set(
+ addItem(
+ Field_Generator_MAX.ID,
+ "Field Generator (MAX)",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1024L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.TUTAMEN, 512L)));
+
+ ItemList.StableAdhesive.set(
+ addItem(
+ StableAdhesive.ID,
+ "Hyper-Stable Self-Healing Adhesive",
+ "Complete and selective adhesion, even when torn or damaged",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 30L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.SANO, 20L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.LIMUS, 10L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VINCULUM, 5L)));
+ ItemList.SuperconductorComposite.set(
+ addItem(
+ SuperconductorComposite.ID,
+ "Superconductor Rare-Earth Composite",
+ "Zero resistance to electrical and quantum flow, regardless of temperature",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 50L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 25L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.TERRA, 15L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 10L)));
+ ItemList.NaquadriaSupersolid.set(
+ addItem(
+ NaquadriaSupersolid.ID,
+ "Black Body Naquadria Supersolid",
+ "Flows like a fluid and reflects nothing, perfect absorption and transfer",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.TENEBRAE, 100L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 60L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 40L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.RADIO, 20L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ALIENIS, 10L)));
+
+ // Circuits ULV - LuV.
+ ItemList.Circuit_Primitive.set(
+ addItem(
+ Circuit_Primitive.ID,
+ "Vacuum Tube",
+ "A very simple Circuit",
+ OrePrefixes.circuit.get(Materials.ULV),
+ SubTag.NO_UNIFICATION));
+ ItemList.Circuit_Basic.set(
+ addItem(
+ Circuit_Basic.ID,
+ "Integrated Logic Circuit",
+ "A Basic Circuit",
+ OrePrefixes.circuit.get(Materials.LV),
+ SubTag.NO_UNIFICATION));
+ ItemList.Circuit_Good.set(
+ addItem(
+ Circuit_Good.ID,
+ "Good Electronic Circuit",
+ "A Good Circuit",
+ OrePrefixes.circuit.get(Materials.MV),
+ SubTag.NO_UNIFICATION));
+ ItemList.Circuit_Advanced.set(
+ addItem(
+ Circuit_Advanced.ID,
+ "Processor Assembly",
+ "An Advanced Circuit",
+ OrePrefixes.circuit.get(Materials.HV),
+ SubTag.NO_UNIFICATION));
+ ItemList.Circuit_Data.set(
+ addItem(
+ Circuit_Data.ID,
+ "Workstation",
+ "An Extreme Circuit",
+ OrePrefixes.circuit.get(Materials.EV),
+ SubTag.NO_UNIFICATION));
+ ItemList.Circuit_Elite.set(
+ addItem(
+ Circuit_Elite.ID,
+ "Mainframe",
+ "An Elite Circuit",
+ OrePrefixes.circuit.get(Materials.IV),
+ SubTag.NO_UNIFICATION));
+ ItemList.Circuit_Master.set(
+ addItem(
+ Circuit_Master.ID,
+ "Nanoprocessor Mainframe",
+ "A Master Circuit",
+ OrePrefixes.circuit.get(Materials.LuV),
+ SubTag.NO_UNIFICATION));
+
+ // Backwards compatibility.
+ ItemList.Circuit_Parts_Vacuum_Tube.set(ItemList.Circuit_Primitive.get(1));
+ ItemList.Circuit_Computer.set(ItemList.Circuit_Advanced.get(1));
+
+ ItemList.Tool_DataOrb.set(
+ addItem(
+ Tool_DataOrb.ID,
+ "Data Orb",
+ "A High Capacity Data Storage",
+ SubTag.NO_UNIFICATION,
+ new Behaviour_DataOrb()));
+
+ ItemList.Tool_DataStick.set(
+ addItem(
+ Tool_DataStick.ID,
+ "Data Stick",
+ "A Low Capacity Data Storage",
+ SubTag.NO_UNIFICATION,
+ new Behaviour_DataStick()));
+
+ ItemList.Tool_Cover_Copy_Paste.set(
+ addItem(
+ Tool_Cover_Copy_Paste.ID,
+ "Cover Copy/Paste tool",
+ "Set Cover Massively.",
+ Behaviour_Cover_Tool.INSTANCE,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 6L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 6L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 6L)));
+
+ ItemList.Circuit_Board_Basic.set(addItem(Circuit_Board_Basic.ID, "Coated Circuit Board", "A Basic Board"));
+ ItemList.Circuit_Board_Coated.set(ItemList.Circuit_Board_Basic.get(1));
+ ItemList.Circuit_Board_Advanced
+ .set(addItem(Circuit_Board_Advanced.ID, "Epoxy Circuit Board", "An Advanced Board"));
+ ItemList.Circuit_Board_Epoxy.set(ItemList.Circuit_Board_Advanced.get(1));
+ ItemList.Circuit_Board_Elite
+ .set(addItem(Circuit_Board_Elite.ID, "Multilayer Fiber-Reinforced Circuit Board", "An Elite Board"));
+ ItemList.Circuit_Board_Multifiberglass.set(ItemList.Circuit_Board_Elite.get(1));
+ ItemList.Circuit_Parts_Crystal_Chip_Elite
+ .set(addItem(Circuit_Parts_Crystal_Chip_Elite.ID, "Engraved Crystal Chip", "Needed for Circuits"));
+ ItemList.Circuit_Parts_Crystal_Chip_Master
+ .set(addItem(Circuit_Parts_Crystal_Chip_Master.ID, "Engraved Lapotron Chip", "Needed for Circuits"));
+ ItemList.Circuit_Parts_Crystal_Chip_Wetware
+ .set(addItem(Circuit_Parts_Crystal_Chip_Wetware.ID, "Living Crystal Chip", "Needed for Circuits"));
+ ItemList.Circuit_Parts_Advanced.set(addItem(Circuit_Parts_Advanced.ID, "Diode", "Basic Electronic Component"));
+ ItemList.Circuit_Parts_Diode.set(ItemList.Circuit_Parts_Advanced.get(1));
+ ItemList.Circuit_Parts_Wiring_Basic
+ .set(addItem(Circuit_Parts_Wiring_Basic.ID, "Resistor", "Basic Electronic Component"));
+ ItemList.Circuit_Parts_Resistor.set(ItemList.Circuit_Parts_Wiring_Basic.get(1));
+ ItemList.Circuit_Parts_Wiring_Advanced
+ .set(addItem(Circuit_Parts_Wiring_Advanced.ID, "Transistor", "Basic Electronic Component"));
+ ItemList.Circuit_Parts_Transistor.set(ItemList.Circuit_Parts_Wiring_Advanced.get(1));
+ ItemList.Circuit_Parts_Wiring_Elite
+ .set(addItem(Circuit_Parts_Wiring_Elite.ID, "Capacitor", "Electronic Component"));
+ ItemList.Circuit_Parts_Capacitor.set(ItemList.Circuit_Parts_Wiring_Elite.get(1));
+ ItemList.Empty_Board_Basic.set(addItem(Empty_Board_Basic.ID, "Phenolic Circuit Board", "A Good Board"));
+ ItemList.Circuit_Board_Phenolic.set(ItemList.Empty_Board_Basic.get(1));
+ ItemList.Empty_Board_Elite
+ .set(addItem(Empty_Board_Elite.ID, "Fiber-Reinforced Circuit Board", "An Extreme Board"));
+ ItemList.Circuit_Board_Fiberglass.set(ItemList.Empty_Board_Elite.get(1));
+
+ ItemList.Component_Sawblade_Diamond.set(
+ addItem(
+ Component_Sawblade_Diamond.ID,
+ "Diamond Sawblade",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.PERDITIO, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 4L),
+ OreDictNames.craftingDiamondBlade));
+ ItemList.Component_Grinder_Diamond.set(
+ addItem(
+ Component_Grinder_Diamond.ID,
+ "Diamond Grinding Head",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.PERDITIO, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 6L),
+ OreDictNames.craftingGrinder));
+ ItemList.Component_Grinder_Tungsten.set(
+ addItem(
+ Component_Grinder_Tungsten.ID,
+ "Tungsten Grinding Head",
+ "",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.PERDITIO, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 6L),
+ OreDictNames.craftingGrinder));
+
+ ItemList.Upgrade_Muffler.set(
+ addItem(
+ Upgrade_Muffler.ID,
+ "Muffler Upgrade",
+ "Makes Machines silent",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 2L)));
+ ItemList.Upgrade_Lock.set(
+ addItem(
+ Upgrade_Lock.ID,
+ "Lock Upgrade",
+ "Protects your Machines",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.TUTAMEN, 4L)));
+
+ ItemList.Component_Filter.set(
+ addItem(
+ Component_Filter.ID,
+ "Item Filter",
+ "",
+ new ItemData(Materials.Zinc, OrePrefixes.foil.mMaterialAmount * 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITIO, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 1L),
+ OreDictNames.craftingFilter));
+
+ ItemList.Cover_Controller.set(
+ addItem(
+ Cover_Controller.ID,
+ "Machine Controller Cover",
+ "Turns Machines ON/OFF",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 1L)));
+ ItemList.Cover_ActivityDetector.set(
+ addItem(
+ Cover_ActivityDetector.ID,
+ "Activity Detector Cover",
+ "Gives out Activity as Redstone",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 1L)));
+ ItemList.Cover_FluidDetector.set(
+ addItem(
+ Cover_FluidDetector.ID,
+ "Fluid Detector Cover",
+ "Gives out Fluid Amount as Redstone",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L)));
+ ItemList.Cover_ItemDetector.set(
+ addItem(
+ Cover_ItemDetector.ID,
+ "Item Detector Cover",
+ "Gives out Item Amount as Redstone",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.TERRA, 1L)));
+ ItemList.Cover_EnergyDetector.set(
+ addItem(
+ Cover_EnergyDetector.ID,
+ "Energy Detector Cover",
+ "Gives out Energy Amount as Redstone",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 1L)));
+ ItemList.Cover_PlayerDetector.set(
+ addItem(
+ Cover_PlayerDetector.ID,
+ "Player Detector Cover",
+ "Gives out close Players as Redstone",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 1L)));
+ ItemList.Cover_FluidStorageMonitor.set(
+ addItem(
+ Cover_FLuidStorageMonitor.ID,
+ "Fluid Storage Monitor Cover",
+ "Displays the fluid stored in the Tank",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L)));
+ ItemList.Cover_Chest_Basic.set(
+ addItem(
+ Cover_Chest_Basic.ID,
+ "Basic Item Holder",
+ "Hold a few item for use within machine GUI",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 2L)));
+ ItemList.Cover_Chest_Good.set(
+ addItem(
+ Cover_Chest_Good.ID,
+ "Good Item Holder",
+ "Hold a few item for use within machine GUI",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 2L)));
+ ItemList.Cover_Chest_Advanced.set(
+ addItem(
+ Cover_Chest_Advanced.ID,
+ "Advanced Item Holder",
+ "Hold a few item for use within machine GUI",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 2L)));
+
+ ItemList.Cover_Screen.set(
+ addItem(
+ Cover_Screen.ID,
+ "Computer Monitor Cover",
+ "Displays Data and GUI",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITIO, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.LUX, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L)));
+ ItemList.Cover_Crafting.set(
+ addItem(
+ Cover_Crafting.ID,
+ "Crafting Table Cover",
+ "Better than a wooden Workbench",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 4L)));
+ ItemList.Cover_Drain.set(
+ addItem(
+ Cover_Drain.ID,
+ "Drain Module Cover",
+ "Absorbs Fluids and collects Rain",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 2L)));
+
+ ItemList.Cover_Shutter.set(
+ addItem(
+ Cover_Shutter.ID,
+ "Shutter Module Cover",
+ "Blocks Inventory/Tank Side. Use together with Machine Controller.",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 1L)));
+
+ ItemList.Cover_SolarPanel.set(
+ addItem(
+ Cover_SolarPanel.ID,
+ "Solar Panel",
+ "May the Sun be with you (Needs cleaning with right click)",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.TENEBRAE, 1L)));
+ ItemList.Cover_SolarPanel_8V.set(
+ addItem(
+ Cover_SolarPanel_8V.ID,
+ "Solar Panel (8V)",
+ "8 Volt Solar Panel (Needs cleaning with right click)",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.TENEBRAE, 2L)));
+ ItemList.Cover_SolarPanel_LV.set(
+ addItem(
+ Cover_SolarPanel_LV.ID,
+ "Solar Panel (LV)",
+ "Low Voltage Solar Panel (Needs cleaning with right click)",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 4L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.TENEBRAE, 4L)));
+ ItemList.Cover_SolarPanel_MV.set(
+ addItem(
+ Cover_SolarPanel_MV.ID,
+ "Solar Panel (MV)",
+ "Medium Voltage Solar Panel (Needs cleaning with right click)",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 8L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 8L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.TENEBRAE, 8L)));
+ ItemList.Cover_SolarPanel_HV.set(
+ addItem(
+ Cover_SolarPanel_HV.ID,
+ "Solar Panel (HV)",
+ "High Voltage Solar Panel (Needs cleaning with right click)",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.TENEBRAE, 16L)));
+ ItemList.Cover_SolarPanel_EV.set(
+ addItem(
+ Cover_SolarPanel_EV.ID,
+ "Solar Panel (EV)",
+ "Extreme Solar Panel (Needs cleaning with right click)",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 32L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 32L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.TENEBRAE, 32L)));
+ ItemList.Cover_SolarPanel_IV.set(
+ addItem(
+ Cover_SolarPanel_IV.ID,
+ "Solar Panel (IV)",
+ "Insane Solar Panel (Needs cleaning with right click)",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 64L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 64L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.TENEBRAE, 64L)));
+ ItemList.Cover_SolarPanel_LuV.set(
+ addItem(
+ Cover_SolarPanel_LuV.ID,
+ "Solar Panel (LuV)",
+ "Ludicrous Solar Panel (Needs cleaning with right click)",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 64L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 64L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.TENEBRAE, 64L)));
+ ItemList.Cover_SolarPanel_ZPM.set(
+ addItem(
+ Cover_SolarPanel_ZPM.ID,
+ "Solar Panel (ZPM)",
+ "ZPM Voltage Solar Panel (Needs cleaning with right click)",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 64L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 64L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.TENEBRAE, 64L)));
+ ItemList.Cover_SolarPanel_UV.set(
+ addItem(
+ Cover_SolarPanel_UV.ID,
+ "Solar Panel (UV)",
+ "Ultimate Solar Panel (Needs cleaning with right click)",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 64L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 64L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.TENEBRAE, 64L)));
+
+ ItemList.Tool_Sonictron.set(
+ addItem(
+ Tool_Sonictron.ID,
+ "Sonictron",
+ "Bring your Music with you",
+ Behaviour_Sonictron.INSTANCE,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 4L)));
+ ItemList.Tool_Cheat.set(
+ addItem(
+ Tool_Cheat.ID,
+ "Debug Scanner",
+ "Also an Infinite Energy Source",
+ Behaviour_Scanner.INSTANCE,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.NEBRISUM, 64L)));
+ ItemList.Tool_Scanner.set(
+ addItem(
+ Tool_Scanner.ID,
+ "Portable Scanner",
+ "Tricorder",
+ Behaviour_Scanner.INSTANCE,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 6L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 6L)));
+
+ ItemList.NC_SensorKit.set(addItem(NC_SensorKit.ID, "GregTech Sensor Kit", "", new Behaviour_SensorKit()));
+ ItemList.Duct_Tape.set(
+ addItem(
+ Duct_Tape.ID,
+ "BrainTech Aerospace Advanced Reinforced Duct Tape FAL-84",
+ "If you can't fix it with this, use more of it!",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L),
+ OreDictNames.craftingDuctTape));
+ ItemList.McGuffium_239.set(
+ addItem(
+ McGuffium_239.ID,
+ "Mc Guffium 239",
+ "42% better than Phlebotnium",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ALIENIS, 8L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 8L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.SPIRITUS, 8L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AURAM, 8L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VITIUM, 8L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.RADIO, 8L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MAGNETO, 8L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 8L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.NEBRISUM, 8L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.STRONTIO, 8L)));
+
+ ItemList.Cover_RedstoneTransmitterExternal.set(
+ addItem(
+ Cover_RedstoneTransmitterExternal.ID,
+ "Redstone Transmitter (External)",
+ "Transfers Redstone signals wireless",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 1L)));
+ ItemList.Cover_RedstoneTransmitterInternal.set(
+ addItem(
+ Cover_RedstoneTransmitterInternal.ID,
+ "Redstone Transmitter (Internal)",
+ "Transfers Redstone signals wireless",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 1L)));
+ ItemList.Cover_RedstoneReceiverExternal.set(
+ addItem(
+ Cover_RedstoneReceiverExternal.ID,
+ "Redstone Receiver (External)",
+ "Transfers Redstone signals wireless",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 1L)));
+ ItemList.Cover_RedstoneReceiverInternal.set(
+ addItem(
+ Cover_RedstoneReceiverInternal.ID,
+ "Redstone Receiver (Internal)",
+ "Transfers Redstone signals wireless",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 1L)));
+
+ ItemList.Cover_NeedsMaintainance.set(
+ addItem(
+ Cover_NeedsMaintenance.ID,
+ "Needs Maintenance Cover",
+ "Attach to Multiblock Controller. Emits Redstone Signal if needs Maintenance",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 1L)));
+
+ ItemList.Steam_Regulator_LV.set(
+ addItem(
+ Steam_Regulator_LV.ID,
+ "Steam Regulator (LV)",
+ GT_Utility.formatNumbers(1024) + PartCoverText + GT_Utility.formatNumbers(1024 * 20) + PartCoverText2,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L)));
+ ItemList.Steam_Regulator_MV.set(
+ addItem(
+ Steam_Regulator_MV.ID,
+ "Steam Regulator (MV)",
+ GT_Utility.formatNumbers(2048) + PartCoverText + GT_Utility.formatNumbers(2048 * 20) + PartCoverText2,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 2L)));
+ ItemList.Steam_Regulator_HV.set(
+ addItem(
+ Steam_Regulator_HV.ID,
+ "Steam Regulator (HV)",
+ GT_Utility.formatNumbers(4096) + PartCoverText + GT_Utility.formatNumbers(4096 * 20) + PartCoverText2,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 4L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 4L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 4L)));
+ ItemList.Steam_Regulator_EV.set(
+ addItem(
+ Steam_Regulator_EV.ID,
+ "Steam Regulator (EV)",
+ GT_Utility.formatNumbers(8192) + PartCoverText + GT_Utility.formatNumbers(8192 * 20) + PartCoverText2,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 8L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 8L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 8L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 8L)));
+ ItemList.Steam_Regulator_IV.set(
+ addItem(
+ Steam_Regulator_IV.ID,
+ "Steam Regulator (IV)",
+ GT_Utility.formatNumbers(16384) + PartCoverText + GT_Utility.formatNumbers(16384 * 20) + PartCoverText2,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 16L)));
+ ItemList.Electromagnet_Iron.set(
+ addItem(
+ Electromagnet_Iron.ID,
+ "Iron Electromagnet",
+ MagnetTiers.buildMagnetTooltip(MagnetTiers.Iron),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MAGNETO, 8)));
+ ItemList.Electromagnet_Steel.set(
+ addItem(
+ Electromagnet_Steel.ID,
+ "Steel Electromagnet",
+ MagnetTiers.buildMagnetTooltip(MagnetTiers.Steel),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MAGNETO, 16)));
+ ItemList.Electromagnet_Neodymium.set(
+ addItem(
+ Electromagnet_Neodymium.ID,
+ "Neodymium Electromagnet",
+ MagnetTiers.buildMagnetTooltip(MagnetTiers.Neodymium),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MAGNETO, 24)));
+ ItemList.Electromagnet_Samarium.set(
+ addItem(
+ Electromagnet_Samarium.ID,
+ EnumChatFormatting.YELLOW + "Samarium Electromagnet",
+ MagnetTiers.buildMagnetTooltip(MagnetTiers.Samarium),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MAGNETO, 32)));
+ ItemList.Electromagnet_Tengam.set(
+ addItem(
+ Electromagnet_Tengam.ID,
+ EnumChatFormatting.GREEN + "Tengam Electromagnet",
+ MagnetTiers.buildMagnetTooltip(MagnetTiers.Tengam),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MAGNETO, 40)));
+ ItemList.Black_Hole_Opener.set(
+ addItem(
+ Black_Hole_Opener.ID,
+ "Black Hole Activation Catalyst",
+ "Opens a semi-stable black hole",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ALIENIS, 32),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 64)));
+ ItemList.Black_Hole_Closer.set(
+ addItem(
+ Black_Hole_Closer.ID,
+ "Black Hole Deactivation Catalyst",
+ "Safely closes a semi-stable black hole",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ALIENIS, 32),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.PERDITIO, 64)));
+
+ // Empty battery hulls
+ ItemList.BatteryHull_EV.set(
+ addItem(
+ BatteryHull_EV.ID,
+ "Small Sunnarium Battery (Empty)",
+ "An empty EV Battery Container",
+ new ItemData(Materials.BlueSteel, OrePrefixes.plate.mMaterialAmount * 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 8L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 8L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 8L)));
+ ItemList.BatteryHull_IV.set(
+ addItem(
+ BatteryHull_IV.ID,
+ "Medium Sunnarium Battery (Empty)",
+ "An empty IV Battery Container",
+ new ItemData(Materials.RoseGold, OrePrefixes.plate.mMaterialAmount * 6L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 16L)));
+ ItemList.BatteryHull_LuV.set(
+ addItem(
+ BatteryHull_LuV.ID,
+ "Large Sunnarium Battery (Empty)",
+ "An empty LuV Battery Container",
+ new ItemData(Materials.RedSteel, OrePrefixes.plate.mMaterialAmount * 18L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 32L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 32L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 32L)));
+ ItemList.BatteryHull_ZPM.set(
+ addItem(
+ BatteryHull_ZPM.ID,
+ "Medium Naquadria Battery (Empty)",
+ "An empty ZPM Energy Storage",
+ new ItemData(Materials.Europium, OrePrefixes.plate.mMaterialAmount * 6L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 64L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 64L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 64L)));
+ ItemList.BatteryHull_UV.set(
+ addItem(
+ BatteryHull_UV.ID,
+ "Large Naquadria Battery (Empty)",
+ "An empty UV Energy Storage",
+ new ItemData(Materials.Americium, OrePrefixes.plate.mMaterialAmount * 18L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 128L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 128L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 128L)));
+ ItemList.BatteryHull_UHV.set(
+ addItem(
+ BatteryHull_UHV.ID,
+ "Small Neutronium Battery (Empty)",
+ "An empty UHV Energy Storage",
+ new ItemData(Materials.Naquadah, OrePrefixes.plate.mMaterialAmount * 24L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 256L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 256L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 256L)));
+ ItemList.BatteryHull_UEV.set(
+ addItem(
+ BatteryHull_UEV.ID,
+ "Medium Neutronium Battery (Empty)",
+ "An empty UEV Energy Storage",
+ new ItemData(Materials.NaquadahEnriched, OrePrefixes.plate.mMaterialAmount * 36L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 512L)));
+ ItemList.BatteryHull_UIV.set(
+ addItem(
+ BatteryHull_UIV.ID,
+ "Large Neutronium Battery (Empty)",
+ "An empty UIV Energy Storage",
+ new ItemData(Materials.NaquadahAlloy, OrePrefixes.plate.mMaterialAmount * 48L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1024L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 1024L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 1024L)));
+ ItemList.BatteryHull_UMV.set(
+ addItem(
+ BatteryHull_UMV.ID,
+ "Medium Plasma Battery (Empty)",
+ "An empty UMV Energy Storage",
+ new ItemData(Materials.Neutronium, OrePrefixes.plate.mMaterialAmount * 56L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 2048L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2048L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 2048L)));
+ ItemList.BatteryHull_UxV.set(
+ addItem(
+ BatteryHull_UxV.ID,
+ "Large Plasma Battery (Empty)",
+ "An empty UXV Energy Storage",
+ new ItemData(Materials.DraconiumAwakened, OrePrefixes.plate.mMaterialAmount * 64L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4096L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4096L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 4096L)));
+
+ ItemList.BatteryHull_EV_Full.set(
+ addItem(
+ BatteryHull_EV_Full.ID,
+ "Small Sunnarium Battery",
+ "Reusable",
+ "batteryEV",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 32L)));
+
+ ItemList.BatteryHull_IV_Full.set(
+ addItem(
+ BatteryHull_IV_Full.ID,
+ "Medium Sunnarium Battery",
+ "Reusable",
+ "batteryIV",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 32L)));
+
+ ItemList.BatteryHull_LuV_Full.set(
+ addItem(
+ BatteryHull_LuV_Full.ID,
+ "Large Sunnarium Battery",
+ "Reusable",
+ "batteryLuV",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 32L)));
+
+ ItemList.BatteryHull_ZPM_Full.set(
+ addItem(
+ BatteryHull_ZPM_Full.ID,
+ "Medium Naquadria Battery",
+ "Reusable",
+ "batteryZPM",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 32L)));
+
+ ItemList.BatteryHull_UV_Full.set(
+ addItem(
+ BatteryHull_UV_Full.ID,
+ "Large Naquadria Battery",
+ "Reusable",
+ "batteryUV",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 32L)));
+
+ ItemList.BatteryHull_UHV_Full.set(
+ addItem(
+ BatteryHull_UHV_Full.ID,
+ "Small Neutronium Battery",
+ "Reusable",
+ "batteryUHV",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 32L)));
+
+ ItemList.BatteryHull_UEV_Full.set(
+ addItem(
+ BatteryHull_UEV_Full.ID,
+ "Medium Neutronium Battery",
+ "Reusable",
+ "batteryUEV",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 32L)));
+
+ ItemList.BatteryHull_UIV_Full.set(
+ addItem(
+ BatteryHull_UIV_Full.ID,
+ "Large Neutronium Battery",
+ "Reusable",
+ "batteryUIV",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 32L)));
+
+ ItemList.BatteryHull_UMV_Full.set(
+ addItem(
+ BatteryHull_UMV_Full.ID,
+ "Medium Infinity Battery",
+ "Reusable",
+ "batteryUMV",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 32L)));
+
+ ItemList.BatteryHull_UxV_Full.set(
+ addItem(
+ BatteryHull_UxV_Full.ID,
+ "Large Infinity Battery",
+ "Reusable",
+ "batteryUXV",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 32L)));
+
+ removeRecipes();
+ setBurnValues();
+ oredictBlacklistEntries();
+ registerCovers();
+ registerBehaviors();
+ setAllFluidContainerStats();
+ setAllElectricStats();
+ registerTieredTooltips();
+
+ craftingShapedRecipes();
+ craftingShapelessRecipes();
+ }
+
+ private static final Map<Materials, Materials> cauldronRemap = new HashMap<>();
+
+ public static void registerCauldronCleaningFor(Materials in, Materials out) {
+ cauldronRemap.put(in, out);
+ }
+
+ @Override
+ public boolean onEntityItemUpdate(EntityItem aItemEntity) {
+ int aDamage = aItemEntity.getEntityItem()
+ .getItemDamage();
+ if ((aDamage < 32000) && (aDamage >= 0) && (!aItemEntity.worldObj.isRemote)) {
+ Materials aMaterial = GregTech_API.sGeneratedMaterials[(aDamage % 1000)];
+ if ((aMaterial != null) && (aMaterial != Materials.Empty) && (aMaterial != Materials._NULL)) {
+ int tX = MathHelper.floor_double(aItemEntity.posX);
+ int tY = MathHelper.floor_double(aItemEntity.posY);
+ int tZ = MathHelper.floor_double(aItemEntity.posZ);
+ OrePrefixes aPrefix = this.mGeneratedPrefixList[(aDamage / 1000)];
+ if ((aPrefix == OrePrefixes.dustImpure) || (aPrefix == OrePrefixes.dustPure)) {
+ Block tBlock = aItemEntity.worldObj.getBlock(tX, tY, tZ);
+ byte tMetaData = (byte) aItemEntity.worldObj.getBlockMetadata(tX, tY, tZ);
+ if ((tBlock == Blocks.cauldron) && (tMetaData > 0)) {
+
+ aMaterial = cauldronRemap.getOrDefault(aMaterial, aMaterial);
+
+ aItemEntity.setEntityItemStack(
+ GT_OreDictUnificator
+ .get(OrePrefixes.dust, aMaterial, aItemEntity.getEntityItem().stackSize));
+ aItemEntity.worldObj.setBlockMetadataWithNotify(tX, tY, tZ, tMetaData - 1, 3);
+ return true;
+ }
+ } else if (aPrefix == OrePrefixes.crushed) {
+ Block tBlock = aItemEntity.worldObj.getBlock(tX, tY, tZ);
+ byte tMetaData = (byte) aItemEntity.worldObj.getBlockMetadata(tX, tY, tZ);
+ if ((tBlock == Blocks.cauldron) && (tMetaData > 0)) {
+ aItemEntity.setEntityItemStack(
+ GT_OreDictUnificator
+ .get(OrePrefixes.crushedPurified, aMaterial, aItemEntity.getEntityItem().stackSize));
+ aItemEntity.worldObj.setBlockMetadataWithNotify(tX, tY, tZ, tMetaData - 1, 3);
+ return true;
+ }
+ } else if (aPrefix == OrePrefixes.dust && aMaterial == Materials.Wheat) {
+ Block tBlock = aItemEntity.worldObj.getBlock(tX, tY, tZ);
+ byte tMetaData = (byte) aItemEntity.worldObj.getBlockMetadata(tX, tY, tZ);
+ if ((tBlock == Blocks.cauldron) && (tMetaData > 0)) {
+ aItemEntity.setEntityItemStack(ItemList.Food_Dough.get(aItemEntity.getEntityItem().stackSize));
+ aItemEntity.worldObj.setBlockMetadataWithNotify(tX, tY, tZ, tMetaData - 1, 3);
+ return true;
+ }
+ }
+ }
+ }
+ return false;
+ }
+
+ @Override
+ protected void addAdditionalToolTips(List<String> aList, ItemStack aStack, EntityPlayer aPlayer) {
+ super.addAdditionalToolTips(aList, aStack, aPlayer);
+ int aDamage = aStack.getItemDamage();
+ if ((aDamage < 32000) && (aDamage >= 0)) {
+ Materials aMaterial = GregTech_API.sGeneratedMaterials[(aDamage % 1000)];
+ if ((aMaterial != null) && (aMaterial != Materials.Empty) && (aMaterial != Materials._NULL)) {
+ OrePrefixes aPrefix = this.mGeneratedPrefixList[(aDamage / 1000)];
+ if ((aPrefix == OrePrefixes.dustImpure) || (aPrefix == OrePrefixes.dustPure)) {
+ aList.add(this.mToolTipPurify);
+ }
+ }
+ }
+ }
+
+ public boolean isPlasmaCellUsed(OrePrefixes aPrefix, Materials aMaterial) {
+ Collection<GT_Recipe> fusionRecipes = RecipeMaps.fusionRecipes.getAllRecipes();
+ if (aPrefix == OrePrefixes.cellPlasma && aMaterial.getPlasma(1L) != null) { // Materials has a plasma fluid
+ for (GT_Recipe recipe : fusionRecipes) { // Loop through fusion recipes
+ if (recipe.getFluidOutput(0) != null) { // Make sure fluid output can't be null (not sure if possible)
+ if (recipe.getFluidOutput(0)
+ .isFluidEqual(aMaterial.getPlasma(1L))) return true; // Fusion recipe
+ // output matches
+ // current plasma
+ // cell fluid
+ }
+ }
+ }
+ return false;
+ }
+
+ @Override
+ public boolean doesShowInCreative(OrePrefixes aPrefix, Materials aMaterial, boolean aDoShowAllItems) {
+ return (aDoShowAllItems) || (((aPrefix != OrePrefixes.gem) || (!aMaterial.mName.startsWith("Infused")))
+ && (aPrefix != OrePrefixes.dustTiny)
+ && (aPrefix != OrePrefixes.dustSmall)
+ && (aPrefix != OrePrefixes.dustImpure)
+ && (aPrefix != OrePrefixes.dustPure)
+ && (aPrefix != OrePrefixes.crushed)
+ && (aPrefix != OrePrefixes.crushedPurified)
+ && (aPrefix != OrePrefixes.crushedCentrifuged)
+ && (aPrefix != OrePrefixes.ingotHot)
+ && !(aPrefix == OrePrefixes.cellPlasma && !isPlasmaCellUsed(aPrefix, aMaterial)));
+ }
+
+ @Override
+ public ItemStack getContainerItem(ItemStack aStack) {
+ int aDamage = aStack.getItemDamage();
+ if (((aDamage >= 32430) && (aDamage <= 32461)) || (aDamage == 32465 || aDamage == 32466)) {
+ return ItemList.Spray_Empty.get(1L);
+ }
+ if ((aDamage == 32479) || (aDamage == 32476)) {
+ return new ItemStack(this, 1, aDamage - 2);
+ }
+ if (aDamage == 32401) {
+ return new ItemStack(this, 1, aDamage - 1);
+ }
+ return super.getContainerItem(aStack);
+ }
+
+ @Override
+ public boolean doesMaterialAllowGeneration(OrePrefixes aPrefix, Materials aMaterial) {
+ return (super.doesMaterialAllowGeneration(aPrefix, aMaterial));
+ }
+
+ private void setBurnValues() {
+ setBurnValue(17000 + Materials.Wood.mMetaItemSubID, 1600);
+ }
+
+ private void setAllFluidContainerStats() {
+ setFluidContainerStats(32000 + Large_Fluid_Cell_Steel.ID, 8_000L, 64L);
+ setFluidContainerStats(32000 + Large_Fluid_Cell_TungstenSteel.ID, 512_000L, 32L);
+ setFluidContainerStats(32000 + Large_Fluid_Cell_Aluminium.ID, 32_000L, 64L);
+ setFluidContainerStats(32000 + Large_Fluid_Cell_StainlessSteel.ID, 64_000L, 64L);
+ setFluidContainerStats(32000 + Large_Fluid_Cell_Titanium.ID, 128_000L, 64L);
+ setFluidContainerStats(32000 + Large_Fluid_Cell_Chrome.ID, 2_048_000L, 8L);
+ setFluidContainerStats(32000 + Large_Fluid_Cell_Iridium.ID, 8_192_000L, 2L);
+ setFluidContainerStats(32000 + Large_Fluid_Cell_Osmium.ID, 32_768_000L, 1L);
+ setFluidContainerStats(32000 + Large_Fluid_Cell_Neutronium.ID, 131_072_000L, 1L);
+ setFluidContainerStats(32000 + Electromagnet_Iron.ID, 0L, 1L);
+ setFluidContainerStats(32000 + Electromagnet_Steel.ID, 0L, 1L);
+ setFluidContainerStats(32000 + Electromagnet_Neodymium.ID, 0L, 1L);
+ setFluidContainerStats(32000 + Electromagnet_Samarium.ID, 0L, 1L);
+ setFluidContainerStats(32000 + Electromagnet_Tengam.ID, 0L, 1L);
+ }
+
+ private void oredictBlacklistEntries() {
+ GT_OreDictUnificator.addToBlacklist(new ItemStack(this, 1, 17000 + Materials.Wood.mMetaItemSubID));
+ }
+
+ private void registerCovers() {
+ final ITexture doesWorkCoverTexture = TextureFactory.of(
+ TextureFactory.of(OVERLAY_ACTIVITYDETECTOR),
+ TextureFactory.builder()
+ .addIcon(OVERLAY_ACTIVITYDETECTOR_GLOW)
+ .glow()
+ .build());
+
+ final ITexture playerDectectorCoverTexture = TextureFactory.of(
+ TextureFactory.of(OVERLAY_ACTIVITYDETECTOR),
+ TextureFactory.builder()
+ .addIcon(OVERLAY_ACTIVITYDETECTOR_GLOW)
+ .glow()
+ .build());
+ final ITexture screenCoverTexture = TextureFactory.of(
+ TextureFactory.of(OVERLAY_SCREEN),
+ TextureFactory.builder()
+ .addIcon(OVERLAY_SCREEN_GLOW)
+ .glow()
+ .build());
+
+ GregTech_API.registerCover(
+ new ItemStack(this, 1, 17000 + Materials.Wood.mMetaItemSubID),
+ TextureFactory.of(COVER_WOOD_PLATE),
+ null);
+
+ GregTech_API.registerCover(
+ ItemList.Electric_Pump_LV.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[1][0], TextureFactory.of(OVERLAY_PUMP)),
+ new GT_Cover_Pump(32, TextureFactory.of(OVERLAY_PUMP)));
+ GregTech_API.registerCover(
+ ItemList.Electric_Pump_MV.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[2][0], TextureFactory.of(OVERLAY_PUMP)),
+ new GT_Cover_Pump(128, TextureFactory.of(OVERLAY_PUMP)));
+ GregTech_API.registerCover(
+ ItemList.Electric_Pump_HV.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[3][0], TextureFactory.of(OVERLAY_PUMP)),
+ new GT_Cover_Pump(512, TextureFactory.of(OVERLAY_PUMP)));
+ GregTech_API.registerCover(
+ ItemList.Electric_Pump_EV.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[4][0], TextureFactory.of(OVERLAY_PUMP)),
+ new GT_Cover_Pump(2048, TextureFactory.of(OVERLAY_PUMP)));
+ GregTech_API.registerCover(
+ ItemList.Electric_Pump_IV.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[5][0], TextureFactory.of(OVERLAY_PUMP)),
+ new GT_Cover_Pump(8192, TextureFactory.of(OVERLAY_PUMP)));
+ GregTech_API.registerCover(
+ ItemList.Electric_Pump_LuV.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[6][0], TextureFactory.of(OVERLAY_PUMP)),
+ new GT_Cover_Pump(32768, TextureFactory.of(OVERLAY_PUMP)));
+ GregTech_API.registerCover(
+ ItemList.Electric_Pump_ZPM.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[7][0], TextureFactory.of(OVERLAY_PUMP)),
+ new GT_Cover_Pump(131072, TextureFactory.of(OVERLAY_PUMP)));
+ GregTech_API.registerCover(
+ ItemList.Electric_Pump_UV.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[8][0], TextureFactory.of(OVERLAY_PUMP)),
+ new GT_Cover_Pump(524288, TextureFactory.of(OVERLAY_PUMP)));
+ GregTech_API.registerCover(
+ ItemList.Electric_Pump_UHV.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[9][0], TextureFactory.of(OVERLAY_PUMP)),
+ new GT_Cover_Pump(1048576, TextureFactory.of(OVERLAY_PUMP)));
+ GregTech_API.registerCover(
+ ItemList.Electric_Pump_UEV.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[10][0], TextureFactory.of(OVERLAY_PUMP)),
+ new GT_Cover_Pump(2097152, TextureFactory.of(OVERLAY_PUMP)));
+
+ GregTech_API.registerCover(
+ ItemList.Steam_Valve_LV.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[1][0], TextureFactory.of(OVERLAY_VALVE)),
+ new GT_Cover_SteamValve(1024, TextureFactory.of(OVERLAY_VALVE)));
+ GregTech_API.registerCover(
+ ItemList.Steam_Valve_MV.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[2][0], TextureFactory.of(OVERLAY_VALVE)),
+ new GT_Cover_SteamValve(2048, TextureFactory.of(OVERLAY_VALVE)));
+ GregTech_API.registerCover(
+ ItemList.Steam_Valve_HV.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[3][0], TextureFactory.of(OVERLAY_VALVE)),
+ new GT_Cover_SteamValve(4096, TextureFactory.of(OVERLAY_VALVE)));
+ GregTech_API.registerCover(
+ ItemList.Steam_Valve_EV.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[4][0], TextureFactory.of(OVERLAY_VALVE)),
+ new GT_Cover_SteamValve(8192, TextureFactory.of(OVERLAY_VALVE)));
+ GregTech_API.registerCover(
+ ItemList.Steam_Valve_IV.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[5][0], TextureFactory.of(OVERLAY_VALVE)),
+ new GT_Cover_SteamValve(16384, TextureFactory.of(OVERLAY_VALVE)));
+
+ GregTech_API.registerCover(
+ ItemList.FluidRegulator_LV.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[1][0], TextureFactory.of(OVERLAY_PUMP)),
+ new GT_Cover_FluidRegulator(32, TextureFactory.of(OVERLAY_PUMP)));
+ GregTech_API.registerCover(
+ ItemList.FluidRegulator_MV.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[2][0], TextureFactory.of(OVERLAY_PUMP)),
+ new GT_Cover_FluidRegulator(128, TextureFactory.of(OVERLAY_PUMP)));
+ GregTech_API.registerCover(
+ ItemList.FluidRegulator_HV.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[3][0], TextureFactory.of(OVERLAY_PUMP)),
+ new GT_Cover_FluidRegulator(512, TextureFactory.of(OVERLAY_PUMP)));
+ GregTech_API.registerCover(
+ ItemList.FluidRegulator_EV.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[4][0], TextureFactory.of(OVERLAY_PUMP)),
+ new GT_Cover_FluidRegulator(2048, TextureFactory.of(OVERLAY_PUMP)));
+ GregTech_API.registerCover(
+ ItemList.FluidRegulator_IV.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[5][0], TextureFactory.of(OVERLAY_PUMP)),
+ new GT_Cover_FluidRegulator(8192, TextureFactory.of(OVERLAY_PUMP)));
+ GregTech_API.registerCover(
+ ItemList.FluidRegulator_LuV.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[6][0], TextureFactory.of(OVERLAY_PUMP)),
+ new GT_Cover_FluidRegulator(32768, TextureFactory.of(OVERLAY_PUMP)));
+ GregTech_API.registerCover(
+ ItemList.FluidRegulator_ZPM.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[7][0], TextureFactory.of(OVERLAY_PUMP)),
+ new GT_Cover_FluidRegulator(131072, TextureFactory.of(OVERLAY_PUMP)));
+ GregTech_API.registerCover(
+ ItemList.FluidRegulator_UV.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[8][0], TextureFactory.of(OVERLAY_PUMP)),
+ new GT_Cover_FluidRegulator(524288, TextureFactory.of(OVERLAY_PUMP)));
+
+ GregTech_API.registerCover(
+ ItemList.FluidFilter.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[1][0], TextureFactory.of(OVERLAY_SHUTTER)),
+ new GT_Cover_Fluidfilter(TextureFactory.of(OVERLAY_SHUTTER)));
+
+ GregTech_API.registerCover(
+ ItemList.ItemFilter_Export.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[5][0], TextureFactory.of(OVERLAY_CONVEYOR)),
+ new GT_Cover_ItemFilter(true, TextureFactory.of(OVERLAY_CONVEYOR)));
+
+ GregTech_API.registerCover(
+ ItemList.ItemFilter_Import.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[5][0], TextureFactory.of(OVERLAY_CONVEYOR)),
+ new GT_Cover_ItemFilter(false, TextureFactory.of(OVERLAY_CONVEYOR)));
+
+ GregTech_API.registerCover(
+ ItemList.Cover_FluidLimiter.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[1][0], TextureFactory.of(OVERLAY_SHUTTER)),
+ new GT_Cover_FluidLimiter(TextureFactory.of(OVERLAY_SHUTTER)));
+
+ GregTech_API.registerCover(
+ ItemList.Conveyor_Module_LV.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[1][0], TextureFactory.of(OVERLAY_CONVEYOR)),
+ new GT_Cover_Conveyor(400, 1, TextureFactory.of(OVERLAY_CONVEYOR)));
+ GregTech_API.registerCover(
+ ItemList.Conveyor_Module_MV.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[2][0], TextureFactory.of(OVERLAY_CONVEYOR)),
+ new GT_Cover_Conveyor(100, 1, TextureFactory.of(OVERLAY_CONVEYOR)));
+ GregTech_API.registerCover(
+ ItemList.Conveyor_Module_HV.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[3][0], TextureFactory.of(OVERLAY_CONVEYOR)),
+ new GT_Cover_Conveyor(20, 1, TextureFactory.of(OVERLAY_CONVEYOR)));
+ GregTech_API.registerCover(
+ ItemList.Conveyor_Module_EV.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[4][0], TextureFactory.of(OVERLAY_CONVEYOR)),
+ new GT_Cover_Conveyor(4, 1, TextureFactory.of(OVERLAY_CONVEYOR)));
+ GregTech_API.registerCover(
+ ItemList.Conveyor_Module_IV.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[5][0], TextureFactory.of(OVERLAY_CONVEYOR)),
+ new GT_Cover_Conveyor(1, 1, TextureFactory.of(OVERLAY_CONVEYOR)));
+ GregTech_API.registerCover(
+ ItemList.Conveyor_Module_LuV.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[6][0], TextureFactory.of(OVERLAY_CONVEYOR)),
+ new GT_Cover_Conveyor(1, 2, TextureFactory.of(OVERLAY_CONVEYOR)));
+ GregTech_API.registerCover(
+ ItemList.Conveyor_Module_ZPM.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[7][0], TextureFactory.of(OVERLAY_CONVEYOR)),
+ new GT_Cover_Conveyor(1, 4, TextureFactory.of(OVERLAY_CONVEYOR)));
+ GregTech_API.registerCover(
+ ItemList.Conveyor_Module_UV.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[8][0], TextureFactory.of(OVERLAY_CONVEYOR)),
+ new GT_Cover_Conveyor(1, 8, TextureFactory.of(OVERLAY_CONVEYOR)));
+ GregTech_API.registerCover(
+ ItemList.Conveyor_Module_UHV.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[9][0], TextureFactory.of(OVERLAY_CONVEYOR)),
+ new GT_Cover_Conveyor(1, 16, TextureFactory.of(OVERLAY_CONVEYOR)));
+ GregTech_API.registerCover(
+ ItemList.Conveyor_Module_UEV.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[10][0], TextureFactory.of(OVERLAY_CONVEYOR)),
+ new GT_Cover_Conveyor(1, 32, TextureFactory.of(OVERLAY_CONVEYOR)));
+
+ GregTech_API.registerCover(
+ ItemList.Robot_Arm_LV.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[1][0], TextureFactory.of(OVERLAY_ARM)),
+ new GT_Cover_Arm(400, TextureFactory.of(OVERLAY_ARM)));
+ GregTech_API.registerCover(
+ ItemList.Robot_Arm_MV.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[2][0], TextureFactory.of(OVERLAY_ARM)),
+ new GT_Cover_Arm(100, TextureFactory.of(OVERLAY_ARM)));
+ GregTech_API.registerCover(
+ ItemList.Robot_Arm_HV.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[3][0], TextureFactory.of(OVERLAY_ARM)),
+ new GT_Cover_Arm(20, TextureFactory.of(OVERLAY_ARM)));
+ GregTech_API.registerCover(
+ ItemList.Robot_Arm_EV.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[4][0], TextureFactory.of(OVERLAY_ARM)),
+ new GT_Cover_Arm(4, TextureFactory.of(OVERLAY_ARM)));
+ GregTech_API.registerCover(
+ ItemList.Robot_Arm_IV.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[5][0], TextureFactory.of(OVERLAY_ARM)),
+ new GT_Cover_Arm(1, TextureFactory.of(OVERLAY_ARM)));
+
+ GregTech_API.registerCover(
+ ItemList.Cover_Controller.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[2][0], TextureFactory.of(OVERLAY_CONTROLLER)),
+ new GT_Cover_ControlsWork(TextureFactory.of(OVERLAY_CONTROLLER)));
+
+ GregTech_API.registerCover(
+ ItemList.Cover_Chest_Basic.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[1][0], TextureFactory.of(Textures.BlockIcons.OVERLAY_COVER_CHEST_1)),
+ new GT_Cover_Chest(9, TextureFactory.of(Textures.BlockIcons.OVERLAY_COVER_CHEST_1)));
+ GregTech_API.registerCover(
+ ItemList.Cover_Chest_Good.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[2][0], TextureFactory.of(Textures.BlockIcons.OVERLAY_COVER_CHEST_2)),
+ new GT_Cover_Chest(12, TextureFactory.of(Textures.BlockIcons.OVERLAY_COVER_CHEST_2)));
+ GregTech_API.registerCover(
+ ItemList.Cover_Chest_Advanced.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[3][0], TextureFactory.of(Textures.BlockIcons.OVERLAY_COVER_CHEST_3)),
+ new GT_Cover_Chest(15, TextureFactory.of(Textures.BlockIcons.OVERLAY_COVER_CHEST_3)));
+ GregTech_API.registerCover(
+ ItemList.Cover_ActivityDetector.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[2][0], doesWorkCoverTexture),
+ new GT_Cover_DoesWork(doesWorkCoverTexture));
+ GregTech_API.registerCover(
+ ItemList.Cover_FluidDetector.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[2][0], TextureFactory.of(OVERLAY_FLUIDDETECTOR)),
+ new GT_Cover_LiquidMeter(TextureFactory.of(OVERLAY_FLUIDDETECTOR)));
+ GregTech_API.registerCover(
+ ItemList.Cover_ItemDetector.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[2][0], TextureFactory.of(OVERLAY_ITEMDETECTOR)),
+ new GT_Cover_ItemMeter(TextureFactory.of(OVERLAY_ITEMDETECTOR)));
+ GregTech_API.registerCover(
+ ItemList.Cover_EnergyDetector.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[2][0], TextureFactory.of(OVERLAY_ENERGYDETECTOR)),
+ new GT_Cover_EUMeter(TextureFactory.of(OVERLAY_ENERGYDETECTOR)));
+
+ GregTech_API.registerCover(
+ ItemList.Cover_PlayerDetector.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[2][0], playerDectectorCoverTexture),
+ new GT_Cover_PlayerDetector(playerDectectorCoverTexture));
+ GregTech_API.registerCover(
+ ItemList.Cover_FluidStorageMonitor.get(1L),
+ TextureFactory.of(OVERLAY_FLUID_STORAGE_MONITOR0),
+ new GT_Cover_FluidStorageMonitor());
+
+ GregTech_API.registerCover(
+ ItemList.Cover_Screen.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[2][0], screenCoverTexture),
+ new GT_Cover_Screen(screenCoverTexture));
+ GregTech_API.registerCover(
+ ItemList.Cover_Crafting.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[1][0], TextureFactory.of(OVERLAY_CRAFTING)),
+ new GT_Cover_Crafting(TextureFactory.of(OVERLAY_CRAFTING)));
+ GregTech_API.registerCover(
+ ItemList.Cover_Drain.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[0][0], TextureFactory.of(OVERLAY_DRAIN)),
+ new GT_Cover_Drain(TextureFactory.of(OVERLAY_DRAIN)));
+ GregTech_API.registerCover(
+ ItemList.Cover_Shutter.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[1][0], TextureFactory.of(OVERLAY_SHUTTER)),
+ new GT_Cover_Shutter(TextureFactory.of(OVERLAY_SHUTTER)));
+
+ GregTech_API.registerCover(
+ ItemList.Cover_SolarPanel.get(1L),
+ TextureFactory.of(SOLARPANEL),
+ new GT_Cover_SolarPanel(1));
+ GregTech_API.registerCover(
+ ItemList.Cover_SolarPanel_8V.get(1L),
+ TextureFactory.of(SOLARPANEL_8V),
+ new GT_Cover_SolarPanel(8));
+ GregTech_API.registerCover(
+ ItemList.Cover_SolarPanel_LV.get(1L),
+ TextureFactory.of(SOLARPANEL_LV),
+ new GT_Cover_SolarPanel(32));
+ GregTech_API.registerCover(
+ ItemList.Cover_SolarPanel_MV.get(1L),
+ TextureFactory.of(SOLARPANEL_MV),
+ new GT_Cover_SolarPanel(128));
+ GregTech_API.registerCover(
+ ItemList.Cover_SolarPanel_HV.get(1L),
+ TextureFactory.of(SOLARPANEL_HV),
+ new GT_Cover_SolarPanel(512));
+ GregTech_API.registerCover(
+ ItemList.Cover_SolarPanel_EV.get(1L),
+ TextureFactory.of(SOLARPANEL_EV),
+ new GT_Cover_SolarPanel(2048));
+ GregTech_API.registerCover(
+ ItemList.Cover_SolarPanel_IV.get(1L),
+ TextureFactory.of(SOLARPANEL_IV),
+ new GT_Cover_SolarPanel(8192));
+ GregTech_API.registerCover(
+ ItemList.Cover_SolarPanel_LuV.get(1L),
+ TextureFactory.of(SOLARPANEL_LuV),
+ new GT_Cover_SolarPanel(32768));
+ GregTech_API.registerCover(
+ ItemList.Cover_SolarPanel_ZPM.get(1L),
+ TextureFactory.of(SOLARPANEL_ZPM),
+ new GT_Cover_SolarPanel(131072));
+ GregTech_API.registerCover(
+ ItemList.Cover_SolarPanel_UV.get(1L),
+ TextureFactory.of(SOLARPANEL_UV),
+ new GT_Cover_SolarPanel(524288));
+
+ GregTech_API.registerCover(
+ ItemList.Cover_RedstoneTransmitterExternal.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[2][0], TextureFactory.of(OVERLAY_REDSTONE_TRANSMITTER)),
+ new GT_Cover_RedstoneTransmitterExternal(TextureFactory.of(OVERLAY_REDSTONE_TRANSMITTER)));
+ GregTech_API.registerCover(
+ ItemList.Cover_RedstoneTransmitterInternal.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[2][0], TextureFactory.of(OVERLAY_REDSTONE_TRANSMITTER)),
+ new GT_Cover_RedstoneTransmitterInternal(TextureFactory.of(OVERLAY_REDSTONE_TRANSMITTER)));
+ GregTech_API.registerCover(
+ ItemList.Cover_RedstoneReceiverExternal.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[2][0], TextureFactory.of(OVERLAY_REDSTONE_RECEIVER)),
+ new GT_Cover_RedstoneReceiverExternal(TextureFactory.of(OVERLAY_REDSTONE_RECEIVER)));
+ GregTech_API.registerCover(
+ ItemList.Cover_RedstoneReceiverInternal.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[2][0], TextureFactory.of(OVERLAY_REDSTONE_RECEIVER)),
+ new GT_Cover_RedstoneReceiverInternal(TextureFactory.of(OVERLAY_REDSTONE_RECEIVER)));
+
+ GregTech_API.registerCover(
+ ItemList.Steam_Regulator_LV.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[1][0], TextureFactory.of(OVERLAY_VALVE)),
+ new GT_Cover_SteamRegulator(1024, TextureFactory.of(OVERLAY_VALVE)));
+ GregTech_API.registerCover(
+ ItemList.Steam_Regulator_MV.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[2][0], TextureFactory.of(OVERLAY_VALVE)),
+ new GT_Cover_SteamRegulator(2048, TextureFactory.of(OVERLAY_VALVE)));
+ GregTech_API.registerCover(
+ ItemList.Steam_Regulator_HV.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[3][0], TextureFactory.of(OVERLAY_VALVE)),
+ new GT_Cover_SteamRegulator(4096, TextureFactory.of(OVERLAY_VALVE)));
+ GregTech_API.registerCover(
+ ItemList.Steam_Regulator_EV.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[4][0], TextureFactory.of(OVERLAY_VALVE)),
+ new GT_Cover_SteamRegulator(8192, TextureFactory.of(OVERLAY_VALVE)));
+ GregTech_API.registerCover(
+ ItemList.Steam_Regulator_IV.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[5][0], TextureFactory.of(OVERLAY_VALVE)),
+ new GT_Cover_SteamRegulator(16384, TextureFactory.of(OVERLAY_VALVE)));
+
+ GregTech_API.registerCover(
+ ItemList.Cover_NeedsMaintainance.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[2][0], TextureFactory.of(OVERLAY_MAINTENANCE_DETECTOR)),
+ new GT_Cover_NeedMaintainance(TextureFactory.of(OVERLAY_MAINTENANCE_DETECTOR)));
+
+ }
+
+ private void removeRecipes() {
+ GT_ModHandler.removeRecipe(
+ new ItemStack(Blocks.glass),
+ null,
+ new ItemStack(Blocks.glass),
+ null,
+ new ItemStack(Blocks.glass));
+ }
+
+ private void craftingShapedRecipes() {
+ ItemStack tStack = new ItemStack(this, 1, 17000 + Materials.Wood.mMetaItemSubID);
+ tStack.setStackDisplayName("The holy Planks of Sengir");
+ GT_Utility.ItemNBT.addEnchantment(tStack, Enchantment.smite, 10);
+ GT_ModHandler.addCraftingRecipe(
+ tStack,
+ GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { "XXX", "XDX", "XXX", 'X', OrePrefixes.gem.get(Materials.NetherStar), 'D',
+ new ItemStack(Blocks.dragon_egg, 1, 32767) });
+
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Shape_Slicer_Flat.get(1L),
+ GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE
+ | GT_ModHandler.RecipeBits.REVERSIBLE,
+ new Object[] { "hXS", aTextShape, "fXd", 'P', ItemList.Shape_Extruder_Block, 'X',
+ OrePrefixes.plate.get(Materials.StainlessSteel), 'S',
+ OrePrefixes.screw.get(Materials.StainlessSteel) });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Shape_Slicer_Stripes.get(1L),
+ GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE
+ | GT_ModHandler.RecipeBits.REVERSIBLE,
+ new Object[] { "hXS", "XPX", "fXd", 'P', ItemList.Shape_Extruder_Block, 'X',
+ OrePrefixes.plate.get(Materials.StainlessSteel), 'S',
+ OrePrefixes.screw.get(Materials.StainlessSteel) });
+
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Fuel_Can_Plastic_Empty.get(7L),
+ GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { " PP", "P P", "PPP", 'P', OrePrefixes.plate.get(Materials.Plastic) });
+
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Crate_Empty.get(4L),
+ GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { "SWS", "WdW", "SWS", 'W', OrePrefixes.plank.get(Materials.Wood), 'S',
+ OrePrefixes.screw.get(Materials.AnyIron) });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Crate_Empty.get(4L),
+ GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { "SWS", "WdW", "SWS", 'W', OrePrefixes.plank.get(Materials.Wood), 'S',
+ OrePrefixes.screw.get(Materials.Steel) });
+
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Schematic_1by1.get(1L),
+ GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { "d ", aTextShape, aTextEmptyRow, 'P', ItemList.Schematic });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Schematic_2by2.get(1L),
+ GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { " d ", aTextShape, aTextEmptyRow, 'P', ItemList.Schematic });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Schematic_3by3.get(1L),
+ GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { " d", aTextShape, aTextEmptyRow, 'P', ItemList.Schematic });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Schematic_Dust.get(1L),
+ GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { aTextEmptyRow, aTextShape, " d", 'P', ItemList.Schematic });
+
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Battery_Hull_LV.get(1L),
+ GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { "Cf ", "Ph ", "Ps ", 'P', OrePrefixes.plate.get(Materials.BatteryAlloy), 'C',
+ OreDictNames.craftingWireTin });
+
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Electric_Motor_LV.get(1L),
+ GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE
+ | GT_ModHandler.RecipeBits.REVERSIBLE,
+ new Object[] { "CWR", "WIW", "RWC", 'I', OrePrefixes.stick.get(Materials.IronMagnetic), 'R',
+ OrePrefixes.stick.get(Materials.AnyIron), 'W', OrePrefixes.wireGt01.get(Materials.AnyCopper), 'C',
+ OrePrefixes.cableGt01.get(Materials.Tin) });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Electric_Motor_LV.get(1L),
+ GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE
+ | GT_ModHandler.RecipeBits.REVERSIBLE,
+ new Object[] { "CWR", "WIW", "RWC", 'I', OrePrefixes.stick.get(Materials.SteelMagnetic), 'R',
+ OrePrefixes.stick.get(Materials.Steel), 'W', OrePrefixes.wireGt01.get(Materials.AnyCopper), 'C',
+ OrePrefixes.cableGt01.get(Materials.Tin) });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Electric_Motor_MV.get(1L),
+ GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE
+ | GT_ModHandler.RecipeBits.REVERSIBLE,
+ new Object[] { "CWR", "WIW", "RWC", 'I', OrePrefixes.stick.get(Materials.SteelMagnetic), 'R',
+ OrePrefixes.stick.get(Materials.Aluminium), 'W', OrePrefixes.wireGt02.get(Materials.Cupronickel), 'C',
+ OrePrefixes.cableGt01.get(Materials.AnyCopper) });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Electric_Motor_HV.get(1L),
+ GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE
+ | GT_ModHandler.RecipeBits.REVERSIBLE,
+ new Object[] { "CWR", "WIW", "RWC", 'I', OrePrefixes.stick.get(Materials.SteelMagnetic), 'R',
+ OrePrefixes.stick.get(Materials.StainlessSteel), 'W', OrePrefixes.wireGt04.get(Materials.Electrum), 'C',
+ OrePrefixes.cableGt02.get(Materials.Silver) });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Electric_Motor_EV.get(1L),
+ GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE
+ | GT_ModHandler.RecipeBits.REVERSIBLE,
+ new Object[] { "CWR", "WIW", "RWC", 'I', OrePrefixes.stick.get(Materials.NeodymiumMagnetic), 'R',
+ OrePrefixes.stick.get(Materials.Titanium), 'W', OrePrefixes.wireGt04.get(Materials.BlackSteel), 'C',
+ OrePrefixes.cableGt02.get(Materials.Aluminium) });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Electric_Motor_IV.get(1L),
+ GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE
+ | GT_ModHandler.RecipeBits.REVERSIBLE,
+ new Object[] { "CWR", "WIW", "RWC", 'I', OrePrefixes.stick.get(Materials.NeodymiumMagnetic), 'R',
+ OrePrefixes.stick.get(Materials.TungstenSteel), 'W', OrePrefixes.wireGt04.get(Materials.Graphene), 'C',
+ OrePrefixes.cableGt02.get(Materials.Tungsten) });
+
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Electric_Piston_LV.get(1L),
+ GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE
+ | GT_ModHandler.RecipeBits.REVERSIBLE,
+ new Object[] { "PPP", "CSS", "CMG", 'P', OrePrefixes.plate.get(Materials.Steel), 'S',
+ OrePrefixes.stick.get(Materials.Steel), 'G', OrePrefixes.gearGtSmall.get(Materials.Steel), 'M',
+ ItemList.Electric_Motor_LV, 'C', OrePrefixes.cableGt01.get(Materials.Tin) });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Electric_Piston_MV.get(1L),
+ GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE
+ | GT_ModHandler.RecipeBits.REVERSIBLE,
+ new Object[] { "PPP", "CSS", "CMG", 'P', OrePrefixes.plate.get(Materials.Aluminium), 'S',
+ OrePrefixes.stick.get(Materials.Aluminium), 'G', OrePrefixes.gearGtSmall.get(Materials.Aluminium), 'M',
+ ItemList.Electric_Motor_MV, 'C', OrePrefixes.cableGt01.get(Materials.AnyCopper) });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Electric_Piston_HV.get(1L),
+ GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE
+ | GT_ModHandler.RecipeBits.REVERSIBLE,
+ new Object[] { "PPP", "CSS", "CMG", 'P', OrePrefixes.plate.get(Materials.StainlessSteel), 'S',
+ OrePrefixes.stick.get(Materials.StainlessSteel), 'G',
+ OrePrefixes.gearGtSmall.get(Materials.StainlessSteel), 'M', ItemList.Electric_Motor_HV, 'C',
+ OrePrefixes.cableGt01.get(Materials.Gold) });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Electric_Piston_EV.get(1L),
+ GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE
+ | GT_ModHandler.RecipeBits.REVERSIBLE,
+ new Object[] { "PPP", "CSS", "CMG", 'P', OrePrefixes.plate.get(Materials.Titanium), 'S',
+ OrePrefixes.stick.get(Materials.Titanium), 'G', OrePrefixes.gearGtSmall.get(Materials.Titanium), 'M',
+ ItemList.Electric_Motor_EV, 'C', OrePrefixes.cableGt01.get(Materials.Aluminium) });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Electric_Piston_IV.get(1L),
+ GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE
+ | GT_ModHandler.RecipeBits.REVERSIBLE,
+ new Object[] { "PPP", "CSS", "CMG", 'P', OrePrefixes.plate.get(Materials.TungstenSteel), 'S',
+ OrePrefixes.stick.get(Materials.TungstenSteel), 'G',
+ OrePrefixes.gearGtSmall.get(Materials.TungstenSteel), 'M', ItemList.Electric_Motor_IV, 'C',
+ OrePrefixes.cableGt01.get(Materials.Tungsten) });
+
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Electric_Pump_LV.get(1L),
+ GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE
+ | GT_ModHandler.RecipeBits.REVERSIBLE,
+ new Object[] { "SXO", "dPw", "OMW", 'M', ItemList.Electric_Motor_LV, 'O',
+ OrePrefixes.ring.get(Materials.AnyRubber), 'X', OrePrefixes.rotor.get(Materials.Tin), 'S',
+ OrePrefixes.screw.get(Materials.Tin), 'W', OrePrefixes.cableGt01.get(Materials.Tin), 'P',
+ OrePrefixes.pipeMedium.get(Materials.Bronze) });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Electric_Pump_MV.get(1L),
+ GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE
+ | GT_ModHandler.RecipeBits.REVERSIBLE,
+ new Object[] { "SXO", "dPw", "OMW", 'M', ItemList.Electric_Motor_MV, 'O',
+ OrePrefixes.ring.get(Materials.AnyRubber), 'X', OrePrefixes.rotor.get(Materials.Bronze), 'S',
+ OrePrefixes.screw.get(Materials.Bronze), 'W', OrePrefixes.cableGt01.get(Materials.AnyCopper), 'P',
+ OrePrefixes.pipeMedium.get(Materials.Steel) });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Electric_Pump_HV.get(1L),
+ GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE
+ | GT_ModHandler.RecipeBits.REVERSIBLE,
+ new Object[] { "SXO", "dPw", "OMW", 'M', ItemList.Electric_Motor_HV, 'O',
+ OrePrefixes.ring.get(Materials.AnyRubber), 'X', OrePrefixes.rotor.get(Materials.Steel), 'S',
+ OrePrefixes.screw.get(Materials.Steel), 'W', OrePrefixes.cableGt01.get(Materials.Gold), 'P',
+ OrePrefixes.pipeMedium.get(Materials.StainlessSteel) });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Electric_Pump_EV.get(1L),
+ GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE
+ | GT_ModHandler.RecipeBits.REVERSIBLE,
+ new Object[] { "SXO", "dPw", "OMW", 'M', ItemList.Electric_Motor_EV, 'O',
+ OrePrefixes.ring.get(Materials.AnyRubber), 'X', OrePrefixes.rotor.get(Materials.StainlessSteel), 'S',
+ OrePrefixes.screw.get(Materials.StainlessSteel), 'W', OrePrefixes.cableGt01.get(Materials.Aluminium),
+ 'P', OrePrefixes.pipeMedium.get(Materials.Titanium) });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Electric_Pump_IV.get(1L),
+ GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE
+ | GT_ModHandler.RecipeBits.REVERSIBLE,
+ new Object[] { "SXO", "dPw", "OMW", 'M', ItemList.Electric_Motor_IV, 'O',
+ OrePrefixes.ring.get(Materials.AnySyntheticRubber), 'X', OrePrefixes.rotor.get(Materials.TungstenSteel),
+ 'S', OrePrefixes.screw.get(Materials.TungstenSteel), 'W', OrePrefixes.cableGt01.get(Materials.Tungsten),
+ 'P', OrePrefixes.pipeMedium.get(Materials.TungstenSteel) });
+
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Conveyor_Module_LV.get(1L),
+ GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE
+ | GT_ModHandler.RecipeBits.REVERSIBLE,
+ new Object[] { "RRR", "MCM", "RRR", 'M', ItemList.Electric_Motor_LV, 'C',
+ OrePrefixes.cableGt01.get(Materials.Tin), 'R', OrePrefixes.plate.get(Materials.AnyRubber) });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Conveyor_Module_MV.get(1L),
+ GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE
+ | GT_ModHandler.RecipeBits.REVERSIBLE,
+ new Object[] { "RRR", "MCM", "RRR", 'M', ItemList.Electric_Motor_MV, 'C',
+ OrePrefixes.cableGt01.get(Materials.AnyCopper), 'R', OrePrefixes.plate.get(Materials.AnyRubber) });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Conveyor_Module_HV.get(1L),
+ GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE
+ | GT_ModHandler.RecipeBits.REVERSIBLE,
+ new Object[] { "RRR", "MCM", "RRR", 'M', ItemList.Electric_Motor_HV, 'C',
+ OrePrefixes.cableGt01.get(Materials.Gold), 'R', OrePrefixes.plate.get(Materials.AnyRubber) });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Conveyor_Module_EV.get(1L),
+ GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE
+ | GT_ModHandler.RecipeBits.REVERSIBLE,
+ new Object[] { "RRR", "MCM", "RRR", 'M', ItemList.Electric_Motor_EV, 'C',
+ OrePrefixes.cableGt01.get(Materials.Aluminium), 'R', OrePrefixes.plate.get(Materials.AnyRubber) });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Conveyor_Module_IV.get(1L),
+ GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE
+ | GT_ModHandler.RecipeBits.REVERSIBLE,
+ new Object[] { "RRR", "MCM", "RRR", 'M', ItemList.Electric_Motor_IV, 'C',
+ OrePrefixes.cableGt01.get(Materials.Tungsten), 'R',
+ OrePrefixes.plate.get(Materials.AnySyntheticRubber) });
+
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Robot_Arm_LV.get(1L),
+ GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE
+ | GT_ModHandler.RecipeBits.REVERSIBLE,
+ new Object[] { "CCC", "MSM", "PES", 'S', OrePrefixes.stick.get(Materials.Steel), 'M',
+ ItemList.Electric_Motor_LV, 'P', ItemList.Electric_Piston_LV, 'E',
+ OrePrefixes.circuit.get(Materials.LV), 'C', OrePrefixes.cableGt01.get(Materials.Tin) });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Robot_Arm_MV.get(1L),
+ GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE
+ | GT_ModHandler.RecipeBits.REVERSIBLE,
+ new Object[] { "CCC", "MSM", "PES", 'S', OrePrefixes.stick.get(Materials.Aluminium), 'M',
+ ItemList.Electric_Motor_MV, 'P', ItemList.Electric_Piston_MV, 'E',
+ OrePrefixes.circuit.get(Materials.MV), 'C', OrePrefixes.cableGt01.get(Materials.AnyCopper) });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Robot_Arm_HV.get(1L),
+ GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE
+ | GT_ModHandler.RecipeBits.REVERSIBLE,
+ new Object[] { "CCC", "MSM", "PES", 'S', OrePrefixes.stick.get(Materials.StainlessSteel), 'M',
+ ItemList.Electric_Motor_HV, 'P', ItemList.Electric_Piston_HV, 'E',
+ OrePrefixes.circuit.get(Materials.HV), 'C', OrePrefixes.cableGt01.get(Materials.Gold) });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Robot_Arm_EV.get(1L),
+ GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE
+ | GT_ModHandler.RecipeBits.REVERSIBLE,
+ new Object[] { "CCC", "MSM", "PES", 'S', OrePrefixes.stick.get(Materials.Titanium), 'M',
+ ItemList.Electric_Motor_EV, 'P', ItemList.Electric_Piston_EV, 'E',
+ OrePrefixes.circuit.get(Materials.EV), 'C', OrePrefixes.cableGt01.get(Materials.Aluminium) });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Robot_Arm_IV.get(1L),
+ GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE
+ | GT_ModHandler.RecipeBits.REVERSIBLE,
+ new Object[] { "CCC", "MSM", "PES", 'S', OrePrefixes.stick.get(Materials.TungstenSteel), 'M',
+ ItemList.Electric_Motor_IV, 'P', ItemList.Electric_Piston_IV, 'E',
+ OrePrefixes.circuit.get(Materials.IV), 'C', OrePrefixes.cableGt01.get(Materials.Tungsten) });
+
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Emitter_LV.get(1L),
+ GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE
+ | GT_ModHandler.RecipeBits.REVERSIBLE,
+ new Object[] { "SSC", "WQS", "CWS", 'Q', OrePrefixes.gem.get(Materials.CertusQuartz), 'S',
+ OrePrefixes.stick.get(Materials.Brass), 'C', OrePrefixes.circuit.get(Materials.LV), 'W',
+ OrePrefixes.cableGt01.get(Materials.Tin) });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Emitter_MV.get(1L),
+ GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE
+ | GT_ModHandler.RecipeBits.REVERSIBLE,
+ new Object[] { "SSC", "WQS", "CWS", 'Q', OrePrefixes.gem.get(Materials.EnderPearl), 'S',
+ OrePrefixes.stick.get(Materials.Electrum), 'C', OrePrefixes.circuit.get(Materials.MV), 'W',
+ OrePrefixes.cableGt01.get(Materials.AnyCopper) });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Emitter_HV.get(1L),
+ GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE
+ | GT_ModHandler.RecipeBits.REVERSIBLE,
+ new Object[] { "SSC", "WQS", "CWS", 'Q', OrePrefixes.gem.get(Materials.EnderEye), 'S',
+ OrePrefixes.stick.get(Materials.Chrome), 'C', OrePrefixes.circuit.get(Materials.HV), 'W',
+ OrePrefixes.cableGt01.get(Materials.Gold) });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Emitter_EV.get(1L),
+ GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE
+ | GT_ModHandler.RecipeBits.REVERSIBLE,
+ new Object[] { "SSC", "WQS", "CWS", 'Q', ItemList.QuantumEye, 'S',
+ OrePrefixes.stick.get(Materials.Platinum), 'C', OrePrefixes.circuit.get(Materials.EV), 'W',
+ OrePrefixes.cableGt01.get(Materials.Aluminium) });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Emitter_IV.get(1L),
+ GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE
+ | GT_ModHandler.RecipeBits.REVERSIBLE,
+ new Object[] { "SSC", "WQS", "CWS", 'Q', ItemList.QuantumStar, 'S',
+ OrePrefixes.stick.get(Materials.Iridium), 'C', OrePrefixes.circuit.get(Materials.IV), 'W',
+ OrePrefixes.cableGt01.get(Materials.Tungsten) });
+
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Sensor_LV.get(1L),
+ GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE
+ | GT_ModHandler.RecipeBits.REVERSIBLE,
+ new Object[] { "P Q", "PS ", "CPP", 'Q', OrePrefixes.gem.get(Materials.CertusQuartz), 'S',
+ OrePrefixes.stick.get(Materials.Brass), 'P', OrePrefixes.plate.get(Materials.Steel), 'C',
+ OrePrefixes.circuit.get(Materials.LV) });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Sensor_MV.get(1L),
+ GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE
+ | GT_ModHandler.RecipeBits.REVERSIBLE,
+ new Object[] { "P Q", "PS ", "CPP", 'Q', OrePrefixes.gemFlawless.get(Materials.Emerald), 'S',
+ OrePrefixes.stick.get(Materials.Electrum), 'P', OrePrefixes.plate.get(Materials.Aluminium), 'C',
+ OrePrefixes.circuit.get(Materials.MV) });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Sensor_HV.get(1L),
+ GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE
+ | GT_ModHandler.RecipeBits.REVERSIBLE,
+ new Object[] { "P Q", "PS ", "CPP", 'Q', OrePrefixes.gem.get(Materials.EnderEye), 'S',
+ OrePrefixes.stick.get(Materials.Chrome), 'P', OrePrefixes.plate.get(Materials.StainlessSteel), 'C',
+ OrePrefixes.circuit.get(Materials.HV) });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Sensor_EV.get(1L),
+ GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE
+ | GT_ModHandler.RecipeBits.REVERSIBLE,
+ new Object[] { "P Q", "PS ", "CPP", 'Q', ItemList.QuantumEye, 'S',
+ OrePrefixes.stick.get(Materials.Platinum), 'P', OrePrefixes.plate.get(Materials.Titanium), 'C',
+ OrePrefixes.circuit.get(Materials.EV) });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Sensor_IV.get(1L),
+ GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE
+ | GT_ModHandler.RecipeBits.REVERSIBLE,
+ new Object[] { "P Q", "PS ", "CPP", 'Q', ItemList.QuantumStar, 'S',
+ OrePrefixes.stick.get(Materials.Iridium), 'P', OrePrefixes.plate.get(Materials.TungstenSteel), 'C',
+ OrePrefixes.circuit.get(Materials.IV) });
+
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Component_Sawblade_Diamond.get(1L),
+ GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE
+ | GT_ModHandler.RecipeBits.REVERSIBLE,
+ new Object[] { " D ", "DGD", " D ", 'D', OrePrefixes.dustSmall.get(Materials.Diamond), 'G',
+ OrePrefixes.gearGt.get(Materials.CobaltBrass) });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Component_Grinder_Diamond.get(1L),
+ GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE
+ | GT_ModHandler.RecipeBits.REVERSIBLE,
+ new Object[] { "DSD", "SIS", "DSD", 'I', OrePrefixes.gem.get(Materials.Diamond), 'D',
+ OrePrefixes.dust.get(Materials.Diamond), 'S', OrePrefixes.plateDouble.get(Materials.Steel) });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Component_Grinder_Tungsten.get(1L),
+ GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE
+ | GT_ModHandler.RecipeBits.REVERSIBLE,
+ new Object[] { "TST", "SIS", "TST", 'I', OreDictNames.craftingIndustrialDiamond, 'T',
+ OrePrefixes.plate.get(Materials.Tungsten), 'S', OrePrefixes.plateDouble.get(Materials.Steel) });
+
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Cover_Screen.get(1L),
+ GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE
+ | GT_ModHandler.RecipeBits.REVERSIBLE,
+ new Object[] { "AGA", "RPB", "ALA", 'A', OrePrefixes.plate.get(Materials.Aluminium), 'L',
+ OrePrefixes.dust.get(Materials.Glowstone), 'R', Dyes.dyeRed, 'G', Dyes.dyeLime, 'B', Dyes.dyeBlue, 'P',
+ OrePrefixes.plate.get(Materials.Glass) });
+
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Tool_Scanner.get(1L),
+ GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE
+ | GT_ModHandler.RecipeBits.REVERSIBLE,
+ new Object[] { "EPR", "CSC", "PBP", 'C', OrePrefixes.circuit.get(Materials.HV), 'P',
+ OrePrefixes.plate.get(Materials.Aluminium), 'E', ItemList.Emitter_MV, 'R', ItemList.Sensor_MV, 'S',
+ ItemList.Cover_Screen, 'B', ItemList.Battery_RE_MV_Lithium });
+
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.ItemFilter_Export.get(1L),
+ new Object[] { "SPS", "dIC", "SPS", 'P', OrePrefixes.plate.get(Materials.Tin), 'S',
+ OrePrefixes.screw.get(Materials.Iron), 'I', ItemList.Component_Filter, 'C',
+ ItemList.Conveyor_Module_LV });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.ItemFilter_Import.get(1L),
+ new Object[] { "SPS", "CId", "SPS", 'P', OrePrefixes.plate.get(Materials.Tin), 'S',
+ OrePrefixes.screw.get(Materials.Iron), 'I', ItemList.Component_Filter, 'C',
+ ItemList.Conveyor_Module_LV });
+
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Tool_Cover_Copy_Paste.get(1L),
+ GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.REVERSIBLE,
+ new Object[] { "PSP", "PCP", "PBP", 'P', OrePrefixes.plate.get(Materials.Aluminium), 'S',
+ ItemList.Tool_DataStick.get(1L), 'C', ItemList.Cover_Screen.get(1L), 'B',
+ ItemList.Battery_RE_MV_Lithium.get(1L) });
+ }
+
+ private void craftingShapelessRecipes() {
+
+ GT_ModHandler.addShapelessCraftingRecipe(
+ ItemList.Coin_Chocolate.get(1L),
+ new Object[] { OrePrefixes.dust.get(Materials.Cocoa), OrePrefixes.dust.get(Materials.Milk),
+ OrePrefixes.dust.get(Materials.Sugar), OrePrefixes.foil.get(Materials.Gold) });
+
+ GT_ModHandler.addShapelessCraftingRecipe(
+ ItemList.Credit_Copper.get(8L),
+ GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { ItemList.Credit_Iron });
+ GT_ModHandler.addShapelessCraftingRecipe(
+ ItemList.Credit_Iron.get(8L),
+ GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { ItemList.Credit_Silver });
+ GT_ModHandler.addShapelessCraftingRecipe(
+ ItemList.Credit_Silver.get(8L),
+ GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { ItemList.Credit_Gold });
+ GT_ModHandler.addShapelessCraftingRecipe(
+ ItemList.Credit_Gold.get(8L),
+ GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { ItemList.Credit_Platinum });
+ GT_ModHandler.addShapelessCraftingRecipe(
+ ItemList.Credit_Platinum.get(8L),
+ GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { ItemList.Credit_Osmium });
+
+ GT_ModHandler.addShapelessCraftingRecipe(
+ ItemList.Credit_Iron.get(1L),
+ GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { ItemList.Credit_Copper, ItemList.Credit_Copper, ItemList.Credit_Copper,
+ ItemList.Credit_Copper, ItemList.Credit_Copper, ItemList.Credit_Copper, ItemList.Credit_Copper,
+ ItemList.Credit_Copper });
+ GT_ModHandler.addShapelessCraftingRecipe(
+ ItemList.Credit_Silver.get(1L),
+ GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { ItemList.Credit_Iron, ItemList.Credit_Iron, ItemList.Credit_Iron, ItemList.Credit_Iron,
+ ItemList.Credit_Iron, ItemList.Credit_Iron, ItemList.Credit_Iron, ItemList.Credit_Iron });
+ GT_ModHandler.addShapelessCraftingRecipe(
+ ItemList.Credit_Gold.get(1L),
+ GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { ItemList.Credit_Silver, ItemList.Credit_Silver, ItemList.Credit_Silver,
+ ItemList.Credit_Silver, ItemList.Credit_Silver, ItemList.Credit_Silver, ItemList.Credit_Silver,
+ ItemList.Credit_Silver });
+ GT_ModHandler.addShapelessCraftingRecipe(
+ ItemList.Credit_Platinum.get(1L),
+ GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { ItemList.Credit_Gold, ItemList.Credit_Gold, ItemList.Credit_Gold, ItemList.Credit_Gold,
+ ItemList.Credit_Gold, ItemList.Credit_Gold, ItemList.Credit_Gold, ItemList.Credit_Gold });
+ GT_ModHandler.addShapelessCraftingRecipe(
+ ItemList.Credit_Osmium.get(1L),
+ GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { ItemList.Credit_Platinum, ItemList.Credit_Platinum, ItemList.Credit_Platinum,
+ ItemList.Credit_Platinum, ItemList.Credit_Platinum, ItemList.Credit_Platinum, ItemList.Credit_Platinum,
+ ItemList.Credit_Platinum });
+
+ GT_ModHandler.addShapelessCraftingRecipe(
+ ItemList.Credit_Greg_Copper.get(8L),
+ GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { ItemList.Credit_Greg_Cupronickel });
+ GT_ModHandler.addShapelessCraftingRecipe(
+ ItemList.Credit_Greg_Cupronickel.get(8L),
+ GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { ItemList.Credit_Greg_Silver });
+ GT_ModHandler.addShapelessCraftingRecipe(
+ ItemList.Credit_Greg_Silver.get(8L),
+ GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { ItemList.Credit_Greg_Gold });
+ GT_ModHandler.addShapelessCraftingRecipe(
+ ItemList.Credit_Greg_Gold.get(8L),
+ GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { ItemList.Credit_Greg_Platinum });
+ GT_ModHandler.addShapelessCraftingRecipe(
+ ItemList.Credit_Greg_Platinum.get(8L),
+ GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { ItemList.Credit_Greg_Osmium });
+ GT_ModHandler.addShapelessCraftingRecipe(
+ ItemList.Credit_Greg_Osmium.get(8L),
+ GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { ItemList.Credit_Greg_Naquadah });
+ GT_ModHandler.addShapelessCraftingRecipe(
+ ItemList.Credit_Greg_Naquadah.get(8L),
+ GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { ItemList.Credit_Greg_Neutronium });
+
+ GT_ModHandler.addShapelessCraftingRecipe(
+ ItemList.Credit_Greg_Cupronickel.get(1L),
+ GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { ItemList.Credit_Greg_Copper, ItemList.Credit_Greg_Copper, ItemList.Credit_Greg_Copper,
+ ItemList.Credit_Greg_Copper, ItemList.Credit_Greg_Copper, ItemList.Credit_Greg_Copper,
+ ItemList.Credit_Greg_Copper, ItemList.Credit_Greg_Copper });
+ GT_ModHandler.addShapelessCraftingRecipe(
+ ItemList.Credit_Greg_Silver.get(1L),
+ GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { ItemList.Credit_Greg_Cupronickel, ItemList.Credit_Greg_Cupronickel,
+ ItemList.Credit_Greg_Cupronickel, ItemList.Credit_Greg_Cupronickel, ItemList.Credit_Greg_Cupronickel,
+ ItemList.Credit_Greg_Cupronickel, ItemList.Credit_Greg_Cupronickel, ItemList.Credit_Greg_Cupronickel });
+ GT_ModHandler.addShapelessCraftingRecipe(
+ ItemList.Credit_Greg_Gold.get(1L),
+ GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { ItemList.Credit_Greg_Silver, ItemList.Credit_Greg_Silver, ItemList.Credit_Greg_Silver,
+ ItemList.Credit_Greg_Silver, ItemList.Credit_Greg_Silver, ItemList.Credit_Greg_Silver,
+ ItemList.Credit_Greg_Silver, ItemList.Credit_Greg_Silver });
+ GT_ModHandler.addShapelessCraftingRecipe(
+ ItemList.Credit_Greg_Platinum.get(1L),
+ GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { ItemList.Credit_Greg_Gold, ItemList.Credit_Greg_Gold, ItemList.Credit_Greg_Gold,
+ ItemList.Credit_Greg_Gold, ItemList.Credit_Greg_Gold, ItemList.Credit_Greg_Gold,
+ ItemList.Credit_Greg_Gold, ItemList.Credit_Greg_Gold });
+ GT_ModHandler.addShapelessCraftingRecipe(
+ ItemList.Credit_Greg_Osmium.get(1L),
+ GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { ItemList.Credit_Greg_Platinum, ItemList.Credit_Greg_Platinum, ItemList.Credit_Greg_Platinum,
+ ItemList.Credit_Greg_Platinum, ItemList.Credit_Greg_Platinum, ItemList.Credit_Greg_Platinum,
+ ItemList.Credit_Greg_Platinum, ItemList.Credit_Greg_Platinum });
+ GT_ModHandler.addShapelessCraftingRecipe(
+ ItemList.Credit_Greg_Naquadah.get(1L),
+ GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { ItemList.Credit_Greg_Osmium, ItemList.Credit_Greg_Osmium, ItemList.Credit_Greg_Osmium,
+ ItemList.Credit_Greg_Osmium, ItemList.Credit_Greg_Osmium, ItemList.Credit_Greg_Osmium,
+ ItemList.Credit_Greg_Osmium, ItemList.Credit_Greg_Osmium });
+ GT_ModHandler.addShapelessCraftingRecipe(
+ ItemList.Credit_Greg_Neutronium.get(1L),
+ GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { ItemList.Credit_Greg_Naquadah, ItemList.Credit_Greg_Naquadah, ItemList.Credit_Greg_Naquadah,
+ ItemList.Credit_Greg_Naquadah, ItemList.Credit_Greg_Naquadah, ItemList.Credit_Greg_Naquadah,
+ ItemList.Credit_Greg_Naquadah, ItemList.Credit_Greg_Naquadah });
+
+ GT_ModHandler.addShapelessCraftingRecipe(
+ ItemList.Schematic.get(1L),
+ GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { ItemList.Schematic_Crafting });
+ GT_ModHandler.addShapelessCraftingRecipe(
+ ItemList.Schematic.get(1L),
+ GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { ItemList.Schematic_1by1 });
+ GT_ModHandler.addShapelessCraftingRecipe(
+ ItemList.Schematic.get(1L),
+ GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { ItemList.Schematic_2by2 });
+ GT_ModHandler.addShapelessCraftingRecipe(
+ ItemList.Schematic.get(1L),
+ GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { ItemList.Schematic_3by3 });
+ GT_ModHandler.addShapelessCraftingRecipe(
+ ItemList.Schematic.get(1L),
+ GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { ItemList.Schematic_Dust });
+
+ GT_ModHandler.addShapelessCraftingRecipe(
+ ItemList.Tool_DataOrb.get(1L),
+ GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { ItemList.Tool_DataOrb.get(1L) });
+
+ GT_ModHandler.addShapelessCraftingRecipe(
+ ItemList.Tool_DataStick.get(1L),
+ GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { ItemList.Tool_DataStick.get(1L) });
+
+ GT_ModHandler.addShapelessCraftingRecipe(
+ ItemList.Cover_RedstoneTransmitterInternal.get(1L),
+ new Object[] { ItemList.Cover_RedstoneTransmitterExternal.get(1L) });
+ GT_ModHandler.addShapelessCraftingRecipe(
+ ItemList.Cover_RedstoneReceiverInternal.get(1L),
+ new Object[] { ItemList.Cover_RedstoneReceiverExternal.get(1L) });
+ GT_ModHandler.addShapelessCraftingRecipe(
+ ItemList.Cover_RedstoneTransmitterExternal.get(1L),
+ new Object[] { ItemList.Cover_RedstoneTransmitterInternal.get(1L) });
+ GT_ModHandler.addShapelessCraftingRecipe(
+ ItemList.Cover_RedstoneReceiverExternal.get(1L),
+ new Object[] { ItemList.Cover_RedstoneReceiverInternal.get(1L) });
+
+ GT_ModHandler.addShapelessCraftingRecipe(
+ ItemList.ItemFilter_Export.get(1L),
+ new Object[] { ItemList.ItemFilter_Import.get(1L) });
+ GT_ModHandler.addShapelessCraftingRecipe(
+ ItemList.ItemFilter_Import.get(1L),
+ new Object[] { ItemList.ItemFilter_Export.get(1L) });
+
+ }
+
+ private void registerBehaviors() {
+ IItemBehaviour<GT_MetaBase_Item> behaviourSprayColorRemover = new Behaviour_Spray_Color_Remover(
+ ItemList.Spray_Empty.get(1L),
+ ItemList.Spray_Color_Used_Remover.get(1L),
+ ItemList.Spray_Color_Remover.get(1L),
+ 1024L);
+ addItemBehavior(32000 + Spray_Color_Remover.ID, behaviourSprayColorRemover);
+ addItemBehavior(32000 + Spray_Color_Used_Remover.ID, behaviourSprayColorRemover);
+
+ IItemBehaviour<GT_MetaBase_Item> behaviourMatches = new Behaviour_Lighter(
+ null,
+ ItemList.Tool_Matches.get(1L),
+ ItemList.Tool_Matches.get(1L),
+ 1L);
+ addItemBehavior(32000 + Tool_Matches.ID, behaviourMatches);
+ IItemBehaviour<GT_MetaBase_Item> behaviourMatchBox = new Behaviour_Lighter(
+ null,
+ ItemList.Tool_MatchBox_Used.get(1L),
+ ItemList.Tool_MatchBox_Full.get(1L),
+ 16L);
+ addItemBehavior(32000 + Tool_MatchBox_Used.ID, behaviourMatchBox);
+ addItemBehavior(32000 + Tool_MatchBox_Full.ID, behaviourMatchBox);
+
+ IItemBehaviour<GT_MetaBase_Item> behaviourLighterInvar = new Behaviour_Lighter(
+ ItemList.Tool_Lighter_Invar_Empty.get(1L),
+ ItemList.Tool_Lighter_Invar_Used.get(1L),
+ ItemList.Tool_Lighter_Invar_Full.get(1L),
+ 100L);
+ addItemBehavior(32000 + Tool_Lighter_Invar_Used.ID, behaviourLighterInvar);
+ addItemBehavior(32000 + Tool_Lighter_Invar_Full.ID, behaviourLighterInvar);
+
+ IItemBehaviour<GT_MetaBase_Item> behaviourLighterPlatinum = new Behaviour_Lighter(
+ ItemList.Tool_Lighter_Platinum_Empty.get(1L),
+ ItemList.Tool_Lighter_Platinum_Used.get(1L),
+ ItemList.Tool_Lighter_Platinum_Full.get(1L),
+ 1000L);
+ addItemBehavior(32000 + Tool_Lighter_Platinum_Used.ID, behaviourLighterPlatinum);
+ addItemBehavior(32000 + Tool_Lighter_Platinum_Full.ID, behaviourLighterPlatinum);
+
+ for (int i = 0; i < 16; i++) {
+ IItemBehaviour<GT_MetaBase_Item> behaviourSprayColor = new Behaviour_Spray_Color(
+ ItemList.Spray_Empty.get(1L),
+ ItemList.SPRAY_CAN_DYES_USED[i].get(1L),
+ ItemList.SPRAY_CAN_DYES[i].get(1L),
+ ConfigGeneral.sprayCanUses,
+ i);
+ addItemBehavior(32000 + Spray_Colors[i], behaviourSprayColor);
+ addItemBehavior(32000 + Spray_Colors_Used[i], behaviourSprayColor);
+ }
+ }
+
+ private void setAllElectricStats() {
+ setElectricStats(32000 + Battery_RE_ULV_Tantalum.ID, 1000L, GT_Values.V[0], 0L, -3L, false);
+ setElectricStats(32000 + Battery_SU_LV_Sulfuric_Acid.ID, 18000L, GT_Values.V[1], 1L, -2L, true);
+ setElectricStats(32000 + Battery_SU_LV_Mercury.ID, 32000L, GT_Values.V[1], 1L, -2L, true);
+ setElectricStats(32000 + Battery_RE_LV_Cadmium.ID, 75000L, GT_Values.V[1], 1L, -3L, true);
+ setElectricStats(32000 + Battery_RE_LV_Lithium.ID, 100000L, GT_Values.V[1], 1L, -3L, true);
+ setElectricStats(32000 + Battery_RE_LV_Sodium.ID, 50000L, GT_Values.V[1], 1L, -3L, true);
+ setElectricStats(32000 + Battery_SU_MV_Sulfuric_Acid.ID, 72000L, GT_Values.V[2], 2L, -2L, true);
+ setElectricStats(32000 + Battery_SU_MV_Mercury.ID, 128000L, GT_Values.V[2], 2L, -2L, true);
+ setElectricStats(32000 + Battery_RE_MV_Cadmium.ID, 300000L, GT_Values.V[2], 2L, -3L, true);
+ setElectricStats(32000 + Battery_RE_MV_Lithium.ID, 400000L, GT_Values.V[2], 2L, -3L, true);
+ setElectricStats(32000 + Battery_RE_MV_Sodium.ID, 200000L, GT_Values.V[2], 2L, -3L, true);
+ setElectricStats(32000 + Battery_SU_HV_Sulfuric_Acid.ID, 288000L, GT_Values.V[3], 3L, -2L, true);
+ setElectricStats(32000 + Battery_SU_HV_Mercury.ID, 512000L, GT_Values.V[3], 3L, -2L, true);
+ setElectricStats(32000 + Battery_RE_HV_Cadmium.ID, 1200000L, GT_Values.V[3], 3L, -3L, true);
+ setElectricStats(32000 + Battery_RE_HV_Lithium.ID, 1600000L, GT_Values.V[3], 3L, -3L, true);
+ setElectricStats(32000 + Battery_RE_HV_Sodium.ID, 800000L, GT_Values.V[3], 3L, -3L, true);
+ setElectricStats(32000 + Energy_Lapotronic_Orb.ID, 100000000L, GT_Values.V[5], 5L, -3L, true);
+ setElectricStats(32000 + ID_MetaItem_01.ZPM.ID, 2000000000000L, GT_Values.V[7], 7L, -2L, true);
+ setElectricStats(32000 + Energy_Lapotronic_orb_2.ID, 1000000000L, GT_Values.V[6], 6L, -3L, true);
+ setElectricStats(32000 + ZPM2.ID, Long.MAX_VALUE, GT_Values.V[8], 8L, -3L, true);
+ setElectricStats(32000 + ZPM3.ID, Long.MAX_VALUE, GT_Values.V[12], 12L, -3L, true);
+ setElectricStats(32000 + ZPM4.ID, Long.MAX_VALUE, GT_Values.V[13], 13L, -3L, true);
+ setElectricStats(32000 + ZPM5.ID, Long.MAX_VALUE, GT_Values.V[14], 14L, -3L, true);
+ setElectricStats(32000 + ZPM6.ID, Long.MAX_VALUE, GT_Values.V[15], 15L, -3L, true);
+ setElectricStats(32000 + Energy_Module.ID, 10000000000L, GT_Values.V[7], 7L, -3L, true);
+ setElectricStats(32000 + Energy_Cluster.ID, 100000000000L, GT_Values.V[8], 8L, -3L, true);
+ setElectricStats(32000 + Tool_Cover_Copy_Paste.ID, 400000L, GT_Values.V[2], 2L, -1L, false);
+ setElectricStats(32000 + Tool_Cheat.ID, -2000000000L, 1000000000L, -1L, -3L, false);
+ setElectricStats(32000 + Tool_Scanner.ID, 400000L, GT_Values.V[2], 2L, -1L, false);
+ setElectricStats(32000 + BatteryHull_EV_Full.ID, 6400000L, GT_Values.V[4], 4L, -3L, true);
+ setElectricStats(32000 + BatteryHull_IV_Full.ID, 25600000L, GT_Values.V[5], 5L, -3L, true);
+ setElectricStats(32000 + BatteryHull_LuV_Full.ID, 102400000L, GT_Values.V[6], 6L, -3L, true);
+ setElectricStats(32000 + BatteryHull_ZPM_Full.ID, 409600000L, GT_Values.V[7], 7L, -3L, true);
+ setElectricStats(32000 + BatteryHull_UV_Full.ID, 1638400000L, GT_Values.V[8], 8L, -3L, true);
+ setElectricStats(32000 + BatteryHull_UHV_Full.ID, 6553600000L, GT_Values.V[9], 9L, -3L, true);
+ setElectricStats(32000 + BatteryHull_UEV_Full.ID, 26214400000L, GT_Values.V[10], 10L, -3L, true);
+ setElectricStats(32000 + BatteryHull_UIV_Full.ID, 104857600000L, GT_Values.V[11], 11L, -3L, true);
+ setElectricStats(32000 + BatteryHull_UMV_Full.ID, 419430400000L, GT_Values.V[12], 12L, -3L, true);
+ setElectricStats(32000 + BatteryHull_UxV_Full.ID, 1677721600000L, GT_Values.V[13], 13L, -3L, true);
+ }
+
+ private void registerTieredTooltips() {
+ registerTieredTooltip(ItemList.Battery_RE_ULV_Tantalum.get(1), ULV);
+ registerTieredTooltip(ItemList.Battery_SU_LV_SulfuricAcid.get(1), LV);
+ registerTieredTooltip(ItemList.Battery_SU_LV_Mercury.get(1), LV);
+ registerTieredTooltip(ItemList.Battery_RE_LV_Cadmium.get(1), LV);
+ registerTieredTooltip(ItemList.Battery_RE_LV_Lithium.get(1), LV);
+ registerTieredTooltip(ItemList.Battery_RE_LV_Sodium.get(1), LV);
+ registerTieredTooltip(ItemList.Battery_SU_MV_SulfuricAcid.get(1), MV);
+ registerTieredTooltip(ItemList.Battery_SU_MV_Mercury.get(1), MV);
+ registerTieredTooltip(ItemList.Battery_RE_MV_Cadmium.get(1), MV);
+ registerTieredTooltip(ItemList.Battery_RE_MV_Lithium.get(1), MV);
+ registerTieredTooltip(ItemList.Battery_RE_MV_Sodium.get(1), MV);
+ registerTieredTooltip(ItemList.Battery_SU_HV_SulfuricAcid.get(1), HV);
+ registerTieredTooltip(ItemList.Battery_SU_HV_Mercury.get(1), HV);
+ registerTieredTooltip(ItemList.Battery_RE_HV_Cadmium.get(1), HV);
+ registerTieredTooltip(ItemList.Battery_RE_HV_Lithium.get(1), HV);
+ registerTieredTooltip(ItemList.Battery_RE_HV_Sodium.get(1), HV);
+ registerTieredTooltip(ItemList.Energy_LapotronicOrb.get(1), IV);
+ registerTieredTooltip(ItemList.ZPM.get(1), ZPM);
+ registerTieredTooltip(ItemList.Energy_LapotronicOrb2.get(1), LuV);
+ registerTieredTooltip(ItemList.ZPM2.get(1), UV);
+ registerTieredTooltip(ItemList.ZPM3.get(1), UMV);
+ registerTieredTooltip(ItemList.ZPM4.get(1), UXV);
+ registerTieredTooltip(ItemList.ZPM5.get(1), MAX);
+ registerTieredTooltip(ItemList.ZPM6.get(1), ERV);
+ registerTieredTooltip(ItemList.Energy_Module.get(1), ZPM);
+ registerTieredTooltip(ItemList.Energy_Cluster.get(1), UV);
+ registerTieredTooltip(ItemList.Circuit_Primitive.get(1), ULV);
+ registerTieredTooltip(ItemList.Circuit_Basic.get(1), LV);
+ registerTieredTooltip(ItemList.Circuit_Good.get(1), MV);
+ registerTieredTooltip(ItemList.Circuit_Advanced.get(1), HV);
+ registerTieredTooltip(ItemList.Circuit_Data.get(1), EV);
+ registerTieredTooltip(ItemList.Circuit_Elite.get(1), IV);
+ registerTieredTooltip(ItemList.Circuit_Master.get(1), LuV);
+ registerTieredTooltip(ItemList.BatteryHull_EV_Full.get(1), EV);
+ registerTieredTooltip(ItemList.BatteryHull_IV_Full.get(1), IV);
+ registerTieredTooltip(ItemList.BatteryHull_LuV_Full.get(1), LuV);
+ registerTieredTooltip(ItemList.BatteryHull_ZPM_Full.get(1), ZPM);
+ registerTieredTooltip(ItemList.BatteryHull_UV_Full.get(1), UV);
+ registerTieredTooltip(ItemList.BatteryHull_UHV_Full.get(1), UHV);
+ registerTieredTooltip(ItemList.BatteryHull_UEV_Full.get(1), UEV);
+ registerTieredTooltip(ItemList.BatteryHull_UIV_Full.get(1), UIV);
+ registerTieredTooltip(ItemList.BatteryHull_UMV_Full.get(1), UMV);
+ registerTieredTooltip(ItemList.BatteryHull_UxV_Full.get(1), UXV);
+
+ }
+}
diff --git a/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_02.java b/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_02.java
new file mode 100644
index 0000000000..857de00e6a
--- /dev/null
+++ b/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_02.java
@@ -0,0 +1,3115 @@
+package gregtech.common.items;
+
+import static gregtech.api.enums.GT_Values.RA;
+import static gregtech.api.enums.Mods.Forestry;
+import static gregtech.api.enums.Textures.BlockIcons.MACHINE_CASINGS;
+import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_ADVANCED_REDSTONE_RECEIVER;
+import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_ADVANCED_REDSTONE_TRANSMITTER;
+import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_WIRELESS_ACTIVITYDETECTOR;
+import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_WIRELESS_FLUID_DETECTOR;
+import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_WIRELESS_ITEM_DETECTOR;
+import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_WIRELESS_MAINTENANCE_DETECTOR;
+import static gregtech.api.recipe.RecipeMaps.assemblerRecipes;
+import static gregtech.api.recipe.RecipeMaps.compressorRecipes;
+import static gregtech.api.recipe.RecipeMaps.extractorRecipes;
+import static gregtech.api.recipe.RecipeMaps.maceratorRecipes;
+import static gregtech.api.util.GT_RecipeBuilder.MINUTES;
+import static gregtech.api.util.GT_RecipeBuilder.SECONDS;
+import static gregtech.api.util.GT_RecipeBuilder.WILDCARD;
+import static gregtech.common.items.ID_MetaItem_02.Bottle_Alcopops;
+import static gregtech.common.items.ID_MetaItem_02.Bottle_Apple_Juice;
+import static gregtech.common.items.ID_MetaItem_02.Bottle_Beer;
+import static gregtech.common.items.ID_MetaItem_02.Bottle_Cave_Johnsons_Grenade_Juice;
+import static gregtech.common.items.ID_MetaItem_02.Bottle_Chilly_Sauce;
+import static gregtech.common.items.ID_MetaItem_02.Bottle_Cider;
+import static gregtech.common.items.ID_MetaItem_02.Bottle_Dark_Beer;
+import static gregtech.common.items.ID_MetaItem_02.Bottle_Diablo_Sauce;
+import static gregtech.common.items.ID_MetaItem_02.Bottle_Diabolo_Sauce;
+import static gregtech.common.items.ID_MetaItem_02.Bottle_Dragon_Blood;
+import static gregtech.common.items.ID_MetaItem_02.Bottle_Glen_McKenner;
+import static gregtech.common.items.ID_MetaItem_02.Bottle_Golden_Apple_Juice;
+import static gregtech.common.items.ID_MetaItem_02.Bottle_Golden_Cider;
+import static gregtech.common.items.ID_MetaItem_02.Bottle_Grape_Juice;
+import static gregtech.common.items.ID_MetaItem_02.Bottle_Holy_Water;
+import static gregtech.common.items.ID_MetaItem_02.Bottle_Hops_Juice;
+import static gregtech.common.items.ID_MetaItem_02.Bottle_Hot_Sauce;
+import static gregtech.common.items.ID_MetaItem_02.Bottle_Iduns_Apple_Juice;
+import static gregtech.common.items.ID_MetaItem_02.Bottle_Lemon_Juice;
+import static gregtech.common.items.ID_MetaItem_02.Bottle_Lemonade;
+import static gregtech.common.items.ID_MetaItem_02.Bottle_Leninade;
+import static gregtech.common.items.ID_MetaItem_02.Bottle_Limoncello;
+import static gregtech.common.items.ID_MetaItem_02.Bottle_Milk;
+import static gregtech.common.items.ID_MetaItem_02.Bottle_Mineral_Water;
+import static gregtech.common.items.ID_MetaItem_02.Bottle_Notches_Brew;
+import static gregtech.common.items.ID_MetaItem_02.Bottle_Pirate_Brew;
+import static gregtech.common.items.ID_MetaItem_02.Bottle_Potato_Juice;
+import static gregtech.common.items.ID_MetaItem_02.Bottle_Purple_Drink;
+import static gregtech.common.items.ID_MetaItem_02.Bottle_Reed_Water;
+import static gregtech.common.items.ID_MetaItem_02.Bottle_Rum;
+import static gregtech.common.items.ID_MetaItem_02.Bottle_Salty_Water;
+import static gregtech.common.items.ID_MetaItem_02.Bottle_Scotch;
+import static gregtech.common.items.ID_MetaItem_02.Bottle_Snitches_Glitch_Sauce;
+import static gregtech.common.items.ID_MetaItem_02.Bottle_Vinegar;
+import static gregtech.common.items.ID_MetaItem_02.Bottle_Vodka;
+import static gregtech.common.items.ID_MetaItem_02.Bottle_Wheaty_Hops_Juice;
+import static gregtech.common.items.ID_MetaItem_02.Bottle_Wheaty_Juice;
+import static gregtech.common.items.ID_MetaItem_02.Bottle_Wine;
+import static gregtech.common.items.ID_MetaItem_02.Cover_AdvancedRedstoneReceiverExternal;
+import static gregtech.common.items.ID_MetaItem_02.Cover_AdvancedRedstoneReceiverInternal;
+import static gregtech.common.items.ID_MetaItem_02.Cover_AdvancedRedstoneTransmitterExternal;
+import static gregtech.common.items.ID_MetaItem_02.Cover_AdvancedRedstoneTransmitterInternal;
+import static gregtech.common.items.ID_MetaItem_02.Cover_WirelessActivityDetector;
+import static gregtech.common.items.ID_MetaItem_02.Cover_WirelessFluidDetector;
+import static gregtech.common.items.ID_MetaItem_02.Cover_WirelessItemDetector;
+import static gregtech.common.items.ID_MetaItem_02.Cover_WirelessNeedsMaintainance;
+import static gregtech.common.items.ID_MetaItem_02.Crop_Drop_Argentia;
+import static gregtech.common.items.ID_MetaItem_02.Crop_Drop_Aurelia;
+import static gregtech.common.items.ID_MetaItem_02.Crop_Drop_Bauxite;
+import static gregtech.common.items.ID_MetaItem_02.Crop_Drop_BobsYerUncleRanks;
+import static gregtech.common.items.ID_MetaItem_02.Crop_Drop_Chilly;
+import static gregtech.common.items.ID_MetaItem_02.Crop_Drop_Coppon;
+import static gregtech.common.items.ID_MetaItem_02.Crop_Drop_Cucumber;
+import static gregtech.common.items.ID_MetaItem_02.Crop_Drop_Ferru;
+import static gregtech.common.items.ID_MetaItem_02.Crop_Drop_Grapes;
+import static gregtech.common.items.ID_MetaItem_02.Crop_Drop_Ilmenite;
+import static gregtech.common.items.ID_MetaItem_02.Crop_Drop_Indigo;
+import static gregtech.common.items.ID_MetaItem_02.Crop_Drop_Iridium;
+import static gregtech.common.items.ID_MetaItem_02.Crop_Drop_Lemon;
+import static gregtech.common.items.ID_MetaItem_02.Crop_Drop_MTomato;
+import static gregtech.common.items.ID_MetaItem_02.Crop_Drop_Manganese;
+import static gregtech.common.items.ID_MetaItem_02.Crop_Drop_Mica;
+import static gregtech.common.items.ID_MetaItem_02.Crop_Drop_MilkWart;
+import static gregtech.common.items.ID_MetaItem_02.Crop_Drop_Naquadah;
+import static gregtech.common.items.ID_MetaItem_02.Crop_Drop_Nickel;
+import static gregtech.common.items.ID_MetaItem_02.Crop_Drop_OilBerry;
+import static gregtech.common.items.ID_MetaItem_02.Crop_Drop_Onion;
+import static gregtech.common.items.ID_MetaItem_02.Crop_Drop_Osmium;
+import static gregtech.common.items.ID_MetaItem_02.Crop_Drop_Pitchblende;
+import static gregtech.common.items.ID_MetaItem_02.Crop_Drop_Platinum;
+import static gregtech.common.items.ID_MetaItem_02.Crop_Drop_Plumbilia;
+import static gregtech.common.items.ID_MetaItem_02.Crop_Drop_Rape;
+import static gregtech.common.items.ID_MetaItem_02.Crop_Drop_Scheelite;
+import static gregtech.common.items.ID_MetaItem_02.Crop_Drop_TeaLeaf;
+import static gregtech.common.items.ID_MetaItem_02.Crop_Drop_Thorium;
+import static gregtech.common.items.ID_MetaItem_02.Crop_Drop_Tine;
+import static gregtech.common.items.ID_MetaItem_02.Crop_Drop_Tomato;
+import static gregtech.common.items.ID_MetaItem_02.Crop_Drop_UUABerry;
+import static gregtech.common.items.ID_MetaItem_02.Crop_Drop_UUMBerry;
+import static gregtech.common.items.ID_MetaItem_02.Crop_Drop_Uraninite;
+import static gregtech.common.items.ID_MetaItem_02.Crop_Drop_Zinc;
+import static gregtech.common.items.ID_MetaItem_02.Display_ITS_FREE;
+import static gregtech.common.items.ID_MetaItem_02.Dye_Color_00;
+import static gregtech.common.items.ID_MetaItem_02.Dye_Color_01;
+import static gregtech.common.items.ID_MetaItem_02.Dye_Color_02;
+import static gregtech.common.items.ID_MetaItem_02.Dye_Color_03;
+import static gregtech.common.items.ID_MetaItem_02.Dye_Color_04;
+import static gregtech.common.items.ID_MetaItem_02.Dye_Color_05;
+import static gregtech.common.items.ID_MetaItem_02.Dye_Color_06;
+import static gregtech.common.items.ID_MetaItem_02.Dye_Color_07;
+import static gregtech.common.items.ID_MetaItem_02.Dye_Color_08;
+import static gregtech.common.items.ID_MetaItem_02.Dye_Color_09;
+import static gregtech.common.items.ID_MetaItem_02.Dye_Color_10;
+import static gregtech.common.items.ID_MetaItem_02.Dye_Color_11;
+import static gregtech.common.items.ID_MetaItem_02.Dye_Color_12;
+import static gregtech.common.items.ID_MetaItem_02.Dye_Color_13;
+import static gregtech.common.items.ID_MetaItem_02.Dye_Color_14;
+import static gregtech.common.items.ID_MetaItem_02.Dye_Color_15;
+import static gregtech.common.items.ID_MetaItem_02.Dye_Indigo;
+import static gregtech.common.items.ID_MetaItem_02.Food_Baked_Baguette;
+import static gregtech.common.items.ID_MetaItem_02.Food_Baked_Bun;
+import static gregtech.common.items.ID_MetaItem_02.Food_Baked_Cake;
+import static gregtech.common.items.ID_MetaItem_02.Food_Baked_Pizza_Cheese;
+import static gregtech.common.items.ID_MetaItem_02.Food_Baked_Pizza_Meat;
+import static gregtech.common.items.ID_MetaItem_02.Food_Baked_Pizza_Veggie;
+import static gregtech.common.items.ID_MetaItem_02.Food_Burger_Cheese;
+import static gregtech.common.items.ID_MetaItem_02.Food_Burger_Chum;
+import static gregtech.common.items.ID_MetaItem_02.Food_Burger_Meat;
+import static gregtech.common.items.ID_MetaItem_02.Food_Burger_Veggie;
+import static gregtech.common.items.ID_MetaItem_02.Food_Cheese;
+import static gregtech.common.items.ID_MetaItem_02.Food_ChiliChips;
+import static gregtech.common.items.ID_MetaItem_02.Food_Chum;
+import static gregtech.common.items.ID_MetaItem_02.Food_Chum_On_Stick;
+import static gregtech.common.items.ID_MetaItem_02.Food_Dough;
+import static gregtech.common.items.ID_MetaItem_02.Food_Dough_Chocolate;
+import static gregtech.common.items.ID_MetaItem_02.Food_Dough_Sugar;
+import static gregtech.common.items.ID_MetaItem_02.Food_Flat_Dough;
+import static gregtech.common.items.ID_MetaItem_02.Food_Fries;
+import static gregtech.common.items.ID_MetaItem_02.Food_Large_Sandwich_Bacon;
+import static gregtech.common.items.ID_MetaItem_02.Food_Large_Sandwich_Cheese;
+import static gregtech.common.items.ID_MetaItem_02.Food_Large_Sandwich_Steak;
+import static gregtech.common.items.ID_MetaItem_02.Food_Large_Sandwich_Veggie;
+import static gregtech.common.items.ID_MetaItem_02.Food_Packaged_ChiliChips;
+import static gregtech.common.items.ID_MetaItem_02.Food_Packaged_Fries;
+import static gregtech.common.items.ID_MetaItem_02.Food_Packaged_PotatoChips;
+import static gregtech.common.items.ID_MetaItem_02.Food_PotatoChips;
+import static gregtech.common.items.ID_MetaItem_02.Food_Potato_On_Stick;
+import static gregtech.common.items.ID_MetaItem_02.Food_Potato_On_Stick_Roasted;
+import static gregtech.common.items.ID_MetaItem_02.Food_Raw_Baguette;
+import static gregtech.common.items.ID_MetaItem_02.Food_Raw_Bread;
+import static gregtech.common.items.ID_MetaItem_02.Food_Raw_Bun;
+import static gregtech.common.items.ID_MetaItem_02.Food_Raw_Cake;
+import static gregtech.common.items.ID_MetaItem_02.Food_Raw_Cookie;
+import static gregtech.common.items.ID_MetaItem_02.Food_Raw_Fries;
+import static gregtech.common.items.ID_MetaItem_02.Food_Raw_Pizza_Cheese;
+import static gregtech.common.items.ID_MetaItem_02.Food_Raw_Pizza_Meat;
+import static gregtech.common.items.ID_MetaItem_02.Food_Raw_Pizza_Veggie;
+import static gregtech.common.items.ID_MetaItem_02.Food_Raw_PotatoChips;
+import static gregtech.common.items.ID_MetaItem_02.Food_Sandwich_Bacon;
+import static gregtech.common.items.ID_MetaItem_02.Food_Sandwich_Cheese;
+import static gregtech.common.items.ID_MetaItem_02.Food_Sandwich_Steak;
+import static gregtech.common.items.ID_MetaItem_02.Food_Sandwich_Veggie;
+import static gregtech.common.items.ID_MetaItem_02.Food_Sliced_Baguette;
+import static gregtech.common.items.ID_MetaItem_02.Food_Sliced_Baguettes;
+import static gregtech.common.items.ID_MetaItem_02.Food_Sliced_Bread;
+import static gregtech.common.items.ID_MetaItem_02.Food_Sliced_Breads;
+import static gregtech.common.items.ID_MetaItem_02.Food_Sliced_Bun;
+import static gregtech.common.items.ID_MetaItem_02.Food_Sliced_Buns;
+import static gregtech.common.items.ID_MetaItem_02.Food_Sliced_Cheese;
+import static gregtech.common.items.ID_MetaItem_02.Food_Sliced_Cucumber;
+import static gregtech.common.items.ID_MetaItem_02.Food_Sliced_Lemon;
+import static gregtech.common.items.ID_MetaItem_02.Food_Sliced_Onion;
+import static gregtech.common.items.ID_MetaItem_02.Food_Sliced_Tomato;
+import static gregtech.common.items.ID_MetaItem_02.GelledToluene;
+import static gregtech.common.items.ID_MetaItem_02.MSFMixture;
+import static gregtech.common.items.ID_MetaItem_02.Plank_Acacia;
+import static gregtech.common.items.ID_MetaItem_02.Plank_Acacia_Green;
+import static gregtech.common.items.ID_MetaItem_02.Plank_Balsa;
+import static gregtech.common.items.ID_MetaItem_02.Plank_Baobab;
+import static gregtech.common.items.ID_MetaItem_02.Plank_Birch;
+import static gregtech.common.items.ID_MetaItem_02.Plank_Cherry;
+import static gregtech.common.items.ID_MetaItem_02.Plank_Chestnut;
+import static gregtech.common.items.ID_MetaItem_02.Plank_Citrus;
+import static gregtech.common.items.ID_MetaItem_02.Plank_DarkOak;
+import static gregtech.common.items.ID_MetaItem_02.Plank_Ebony;
+import static gregtech.common.items.ID_MetaItem_02.Plank_Greenheart;
+import static gregtech.common.items.ID_MetaItem_02.Plank_Jungle;
+import static gregtech.common.items.ID_MetaItem_02.Plank_Kapok;
+import static gregtech.common.items.ID_MetaItem_02.Plank_Larch;
+import static gregtech.common.items.ID_MetaItem_02.Plank_Lime;
+import static gregtech.common.items.ID_MetaItem_02.Plank_Mahagony;
+import static gregtech.common.items.ID_MetaItem_02.Plank_Mahoe;
+import static gregtech.common.items.ID_MetaItem_02.Plank_Maple;
+import static gregtech.common.items.ID_MetaItem_02.Plank_Oak;
+import static gregtech.common.items.ID_MetaItem_02.Plank_Palm;
+import static gregtech.common.items.ID_MetaItem_02.Plank_Papaya;
+import static gregtech.common.items.ID_MetaItem_02.Plank_Pine;
+import static gregtech.common.items.ID_MetaItem_02.Plank_Plum;
+import static gregtech.common.items.ID_MetaItem_02.Plank_Poplar;
+import static gregtech.common.items.ID_MetaItem_02.Plank_Sequoia;
+import static gregtech.common.items.ID_MetaItem_02.Plank_Spruce;
+import static gregtech.common.items.ID_MetaItem_02.Plank_Teak;
+import static gregtech.common.items.ID_MetaItem_02.Plank_Walnut;
+import static gregtech.common.items.ID_MetaItem_02.Plank_Wenge;
+import static gregtech.common.items.ID_MetaItem_02.Plank_Willow;
+import static gregtech.common.items.ID_MetaItem_02.SFMixture;
+import static gregtech.common.items.ID_MetaItem_02.ThermosCan_Cafe_au_lait;
+import static gregtech.common.items.ID_MetaItem_02.ThermosCan_Chocolate_Milk;
+import static gregtech.common.items.ID_MetaItem_02.ThermosCan_Coffee;
+import static gregtech.common.items.ID_MetaItem_02.ThermosCan_Dark_Cafe_au_lait;
+import static gregtech.common.items.ID_MetaItem_02.ThermosCan_Dark_Chocolate_Milk;
+import static gregtech.common.items.ID_MetaItem_02.ThermosCan_Dark_Coffee;
+import static gregtech.common.items.ID_MetaItem_02.ThermosCan_Ice_Tea;
+import static gregtech.common.items.ID_MetaItem_02.ThermosCan_Lait_au_cafe;
+import static gregtech.common.items.ID_MetaItem_02.ThermosCan_Sweet_Tea;
+import static gregtech.common.items.ID_MetaItem_02.ThermosCan_Tea;
+
+import net.minecraft.enchantment.Enchantment;
+import net.minecraft.enchantment.EnumEnchantmentType;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.init.Blocks;
+import net.minecraft.init.Items;
+import net.minecraft.item.EnumAction;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.potion.Potion;
+
+import gregtech.api.GregTech_API;
+import gregtech.api.enums.Dyes;
+import gregtech.api.enums.GT_Values;
+import gregtech.api.enums.ItemList;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.MaterialsUEVplus;
+import gregtech.api.enums.OrePrefixes;
+import gregtech.api.enums.SubTag;
+import gregtech.api.enums.TC_Aspects;
+import gregtech.api.enums.TierEU;
+import gregtech.api.items.GT_MetaGenerated_Item_X32;
+import gregtech.api.objects.ItemData;
+import gregtech.api.render.TextureFactory;
+import gregtech.api.util.GT_FoodStat;
+import gregtech.api.util.GT_Log;
+import gregtech.api.util.GT_ModHandler;
+import gregtech.api.util.GT_OreDictUnificator;
+import gregtech.api.util.GT_Utility;
+import gregtech.common.covers.redstone.GT_Cover_AdvancedRedstoneReceiverExternal;
+import gregtech.common.covers.redstone.GT_Cover_AdvancedRedstoneReceiverInternal;
+import gregtech.common.covers.redstone.GT_Cover_AdvancedRedstoneTransmitterExternal;
+import gregtech.common.covers.redstone.GT_Cover_AdvancedRedstoneTransmitterInternal;
+import gregtech.common.covers.redstone.GT_Cover_WirelessDoesWorkDetector;
+import gregtech.common.covers.redstone.GT_Cover_WirelessFluidDetector;
+import gregtech.common.covers.redstone.GT_Cover_WirelessItemDetector;
+import gregtech.common.covers.redstone.GT_Cover_WirelessMaintenanceDetector;
+import ic2.api.crops.CropCard;
+import ic2.api.crops.Crops;
+
+public class GT_MetaGenerated_Item_02 extends GT_MetaGenerated_Item_X32 {
+
+ public static GT_MetaGenerated_Item_02 INSTANCE;
+ private static final String aTextCover = "Usable as Cover";
+
+ public GT_MetaGenerated_Item_02() {
+ super(
+ "metaitem.02",
+ OrePrefixes.toolHeadSword,
+ OrePrefixes.toolHeadPickaxe,
+ OrePrefixes.toolHeadShovel,
+ OrePrefixes.toolHeadAxe,
+ OrePrefixes.toolHeadHoe,
+ OrePrefixes.toolHeadHammer,
+ OrePrefixes.toolHeadFile,
+ OrePrefixes.toolHeadSaw,
+ OrePrefixes.toolHeadDrill,
+ OrePrefixes.toolHeadChainsaw,
+ OrePrefixes.toolHeadWrench,
+ OrePrefixes.toolHeadUniversalSpade,
+ OrePrefixes.toolHeadSense,
+ OrePrefixes.toolHeadPlow,
+ OrePrefixes.___placeholder___,
+ OrePrefixes.toolHeadBuzzSaw,
+ OrePrefixes.turbineBlade,
+ null,
+ OrePrefixes.itemCasing,
+ OrePrefixes.wireFine,
+ OrePrefixes.gearGtSmall,
+ OrePrefixes.rotor,
+ OrePrefixes.stickLong,
+ OrePrefixes.springSmall,
+ OrePrefixes.spring,
+ OrePrefixes.___placeholder___,
+ OrePrefixes.___placeholder___,
+ OrePrefixes.gemChipped,
+ OrePrefixes.gemFlawed,
+ OrePrefixes.gemFlawless,
+ OrePrefixes.gemExquisite,
+ OrePrefixes.gearGt);
+ INSTANCE = this;
+
+ ItemList.ThermosCan_Dark_Coffee.set(
+ addItem(
+ ThermosCan_Dark_Coffee.ID,
+ "Dark Coffee",
+ "Coffee, dark, without anything else",
+ new GT_FoodStat(
+ 2,
+ 0.2F,
+ EnumAction.drink,
+ ItemList.ThermosCan_Empty.get(1L),
+ GregTech_API.sDrinksAlwaysDrinkable,
+ false,
+ false,
+ Potion.moveSpeed.id,
+ 400,
+ 1,
+ 70,
+ Potion.digSpeed.id,
+ 400,
+ 1,
+ 70),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.GELUM, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 2L)));
+ ItemList.ThermosCan_Dark_Cafe_au_lait.set(
+ addItem(
+ ThermosCan_Dark_Cafe_au_lait.ID,
+ "Dark Coffee au lait",
+ "Keeping you awake the whole night",
+ new GT_FoodStat(
+ 2,
+ 0.2F,
+ EnumAction.drink,
+ ItemList.ThermosCan_Empty.get(1L),
+ GregTech_API.sDrinksAlwaysDrinkable,
+ false,
+ false,
+ Potion.moveSpeed.id,
+ 400,
+ 2,
+ 90,
+ Potion.digSpeed.id,
+ 400,
+ 2,
+ 90),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.GELUM, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 3L)));
+ ItemList.ThermosCan_Coffee.set(
+ addItem(
+ ThermosCan_Coffee.ID,
+ "Coffee",
+ "Just the regular morning Coffee",
+ new GT_FoodStat(
+ 3,
+ 0.4F,
+ EnumAction.drink,
+ ItemList.ThermosCan_Empty.get(1L),
+ GregTech_API.sDrinksAlwaysDrinkable,
+ false,
+ false,
+ Potion.moveSpeed.id,
+ 400,
+ 0,
+ 50,
+ Potion.digSpeed.id,
+ 400,
+ 0,
+ 50),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.GELUM, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 1L)));
+ ItemList.ThermosCan_Cafe_au_lait.set(
+ addItem(
+ ThermosCan_Cafe_au_lait.ID,
+ "Cafe au lait",
+ "Sweet Coffee",
+ new GT_FoodStat(
+ 3,
+ 0.4F,
+ EnumAction.drink,
+ ItemList.ThermosCan_Empty.get(1L),
+ GregTech_API.sDrinksAlwaysDrinkable,
+ false,
+ false,
+ Potion.moveSpeed.id,
+ 400,
+ 1,
+ 70,
+ Potion.digSpeed.id,
+ 400,
+ 1,
+ 70),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.GELUM, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 2L)));
+ ItemList.ThermosCan_Lait_au_cafe.set(
+ addItem(
+ ThermosCan_Lait_au_cafe.ID,
+ "Lait au cafe",
+ "You want Coffee to your Sugar?",
+ new GT_FoodStat(
+ 3,
+ 0.4F,
+ EnumAction.drink,
+ ItemList.ThermosCan_Empty.get(1L),
+ GregTech_API.sDrinksAlwaysDrinkable,
+ false,
+ false,
+ Potion.moveSpeed.id,
+ 400,
+ 2,
+ 90,
+ Potion.digSpeed.id,
+ 400,
+ 2,
+ 90),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.GELUM, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 3L)));
+ ItemList.ThermosCan_Dark_Chocolate_Milk.set(
+ addItem(
+ ThermosCan_Dark_Chocolate_Milk.ID,
+ "Dark Chocolate Milk",
+ "A bit bitter, better add a bit Sugar",
+ new GT_FoodStat(
+ 3,
+ 0.4F,
+ EnumAction.drink,
+ ItemList.ThermosCan_Empty.get(1L),
+ GregTech_API.sDrinksAlwaysDrinkable,
+ false,
+ false,
+ Potion.regeneration.id,
+ 50,
+ 1,
+ 60),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.GELUM, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.SANO, 1L)));
+ ItemList.ThermosCan_Chocolate_Milk.set(
+ addItem(
+ ThermosCan_Chocolate_Milk.ID,
+ "Chocolate Milk",
+ "Sweet Goodness",
+ new GT_FoodStat(
+ 3,
+ 0.4F,
+ EnumAction.drink,
+ ItemList.ThermosCan_Empty.get(1L),
+ GregTech_API.sDrinksAlwaysDrinkable,
+ false,
+ false,
+ Potion.regeneration.id,
+ 50,
+ 1,
+ 90),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.GELUM, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.SANO, 2L)));
+ ItemList.ThermosCan_Tea.set(
+ addItem(
+ ThermosCan_Tea.ID,
+ "Tea",
+ "Keep calm and carry on",
+ new GT_FoodStat(
+ 2,
+ 0.2F,
+ EnumAction.drink,
+ ItemList.ThermosCan_Empty.get(1L),
+ GregTech_API.sDrinksAlwaysDrinkable,
+ false,
+ false,
+ Potion.moveSlowdown.id,
+ 300,
+ 0,
+ 50),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.GELUM, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 2L)));
+ ItemList.ThermosCan_Sweet_Tea.set(
+ addItem(
+ ThermosCan_Sweet_Tea.ID,
+ "Sweet Tea",
+ "How about a Tea Party? In Boston?",
+ new GT_FoodStat(
+ 2,
+ 0.2F,
+ EnumAction.drink,
+ ItemList.ThermosCan_Empty.get(1L),
+ GregTech_API.sDrinksAlwaysDrinkable,
+ false,
+ false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.GELUM, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 2L)));
+ ItemList.ThermosCan_Ice_Tea.set(
+ addItem(
+ ThermosCan_Ice_Tea.ID,
+ "Ice Tea",
+ "Better than this purple Junk Drink from failed Potions",
+ new GT_FoodStat(
+ 2,
+ 0.2F,
+ EnumAction.drink,
+ ItemList.ThermosCan_Empty.get(1L),
+ GregTech_API.sDrinksAlwaysDrinkable,
+ false,
+ false,
+ Potion.moveSlowdown.id,
+ 300,
+ 0,
+ 50),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.GELUM, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 2L)));
+
+ ItemList.GelledToluene.set(addItem(GelledToluene.ID, "Gelled Toluene", "Raw Explosive"));
+
+ ItemList.Bottle_Purple_Drink.set(
+ addItem(
+ Bottle_Purple_Drink.ID,
+ "Purple Drink",
+ "How about Lemonade. Or some Ice Tea? I got Purple Drink!",
+ new GT_FoodStat(
+ 8,
+ 0.2F,
+ EnumAction.drink,
+ ItemList.Bottle_Empty.get(1L),
+ GregTech_API.sDrinksAlwaysDrinkable,
+ false,
+ false,
+ Potion.moveSlowdown.id,
+ 400,
+ 1,
+ 90),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VINCULUM, 1L)));
+ ItemList.Bottle_Grape_Juice.set(
+ addItem(
+ Bottle_Grape_Juice.ID,
+ "Grape Juice",
+ "This has a cleaning effect on your internals.",
+ new GT_FoodStat(
+ 4,
+ 0.2F,
+ EnumAction.drink,
+ ItemList.Bottle_Empty.get(1L),
+ GregTech_API.sDrinksAlwaysDrinkable,
+ false,
+ false,
+ Potion.hunger.id,
+ 400,
+ 1,
+ 60),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.SANO, 1L)));
+ ItemList.Bottle_Wine.set(
+ addItem(
+ Bottle_Wine.ID,
+ "Wine",
+ "Ordinary",
+ new GT_FoodStat(
+ 2,
+ 0.2F,
+ EnumAction.drink,
+ ItemList.Bottle_Empty.get(1L),
+ GregTech_API.sDrinksAlwaysDrinkable,
+ false,
+ false,
+ Potion.confusion.id,
+ 400,
+ 1,
+ 60,
+ Potion.heal.id,
+ 0,
+ 0,
+ 60,
+ Potion.poison.id,
+ 200,
+ 1,
+ 5),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.SANO, 1L)));
+ ItemList.Bottle_Vinegar.set(
+ addItem(
+ Bottle_Vinegar.ID,
+ "Vinegar",
+ "Exquisite",
+ new GT_FoodStat(
+ 2,
+ 0.2F,
+ EnumAction.drink,
+ ItemList.Bottle_Empty.get(1L),
+ GregTech_API.sDrinksAlwaysDrinkable,
+ false,
+ false,
+ Potion.confusion.id,
+ 400,
+ 1,
+ 90,
+ Potion.heal.id,
+ 0,
+ 1,
+ 90,
+ Potion.poison.id,
+ 200,
+ 2,
+ 10,
+ Potion.harm.id,
+ 0,
+ 2,
+ 5),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.SANO, 1L)));
+ ItemList.Bottle_Potato_Juice.set(
+ addItem(
+ Bottle_Potato_Juice.ID,
+ "Potato Juice",
+ "Ever seen Potato Juice in stores? No? That has a reason.",
+ new GT_FoodStat(
+ 3,
+ 0.3F,
+ EnumAction.drink,
+ ItemList.Bottle_Empty.get(1L),
+ GregTech_API.sDrinksAlwaysDrinkable,
+ false,
+ false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L)));
+ ItemList.Bottle_Vodka.set(
+ addItem(
+ Bottle_Vodka.ID,
+ "Vodka",
+ "Not to confuse with Water",
+ new GT_FoodStat(
+ 2,
+ 0.2F,
+ EnumAction.drink,
+ ItemList.Bottle_Empty.get(1L),
+ GregTech_API.sDrinksAlwaysDrinkable,
+ false,
+ false,
+ Potion.confusion.id,
+ 500,
+ 0,
+ 60,
+ Potion.damageBoost.id,
+ 500,
+ 1,
+ 60,
+ Potion.poison.id,
+ 200,
+ 1,
+ 5),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 1L)));
+ ItemList.Bottle_Leninade.set(
+ addItem(
+ Bottle_Leninade.ID,
+ "Leninade",
+ "Let the Communism flow through you!",
+ new GT_FoodStat(
+ 2,
+ 0.2F,
+ EnumAction.drink,
+ ItemList.Bottle_Empty.get(1L),
+ GregTech_API.sDrinksAlwaysDrinkable,
+ false,
+ false,
+ Potion.confusion.id,
+ 500,
+ 1,
+ 90,
+ Potion.damageBoost.id,
+ 500,
+ 2,
+ 90,
+ Potion.poison.id,
+ 200,
+ 2,
+ 10,
+ Potion.harm.id,
+ 0,
+ 2,
+ 5),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 2L)));
+ ItemList.Bottle_Mineral_Water.set(
+ addItem(
+ Bottle_Mineral_Water.ID,
+ "Mineral Water",
+ "The best Stuff you can drink to stay healthy",
+ new GT_FoodStat(
+ 1,
+ 0.1F,
+ EnumAction.drink,
+ ItemList.Bottle_Empty.get(1L),
+ GregTech_API.sDrinksAlwaysDrinkable,
+ false,
+ false,
+ Potion.regeneration.id,
+ 100,
+ 1,
+ 10),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.SANO, 1L)));
+ ItemList.Bottle_Salty_Water.set(
+ addItem(
+ Bottle_Salty_Water.ID,
+ "Salty Water",
+ "Like Sea Water but less dirty",
+ SubTag.INVISIBLE,
+ new GT_FoodStat(
+ 1,
+ 0.0F,
+ EnumAction.drink,
+ ItemList.Bottle_Empty.get(1L),
+ GregTech_API.sDrinksAlwaysDrinkable,
+ false,
+ false,
+ Potion.hunger.id,
+ 400,
+ 2,
+ 95),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.TEMPESTAS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L)));
+ ItemList.Bottle_Reed_Water.set(
+ addItem(
+ Bottle_Reed_Water.ID,
+ "Reed Water",
+ "I guess this tastes better when fermented",
+ new GT_FoodStat(
+ 1,
+ 0.1F,
+ EnumAction.drink,
+ ItemList.Bottle_Empty.get(1L),
+ GregTech_API.sDrinksAlwaysDrinkable,
+ false,
+ false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L)));
+ ItemList.Bottle_Rum.set(
+ addItem(
+ Bottle_Rum.ID,
+ "Rum",
+ "A buddle o' rum",
+ new GT_FoodStat(
+ 4,
+ 0.4F,
+ EnumAction.drink,
+ ItemList.Bottle_Empty.get(1L),
+ GregTech_API.sDrinksAlwaysDrinkable,
+ false,
+ false,
+ Potion.confusion.id,
+ 300,
+ 0,
+ 60,
+ Potion.damageBoost.id,
+ 300,
+ 1,
+ 60,
+ Potion.poison.id,
+ 200,
+ 1,
+ 5),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.LUCRUM, 1L)));
+ ItemList.Bottle_Pirate_Brew.set(
+ addItem(
+ Bottle_Pirate_Brew.ID,
+ "Pirate Brew",
+ "Set the Sails, we are going to Torrentuga!",
+ new GT_FoodStat(
+ 4,
+ 0.4F,
+ EnumAction.drink,
+ ItemList.Bottle_Empty.get(1L),
+ GregTech_API.sDrinksAlwaysDrinkable,
+ false,
+ false,
+ Potion.confusion.id,
+ 300,
+ 1,
+ 90,
+ Potion.damageBoost.id,
+ 300,
+ 2,
+ 90,
+ Potion.poison.id,
+ 200,
+ 2,
+ 10,
+ Potion.harm.id,
+ 0,
+ 2,
+ 5),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.LUCRUM, 2L)));
+ ItemList.Bottle_Hops_Juice.set(
+ addItem(
+ Bottle_Hops_Juice.ID,
+ "Hops Juice",
+ "Every Beer has a start",
+ new GT_FoodStat(
+ 1,
+ 0.1F,
+ EnumAction.drink,
+ ItemList.Bottle_Empty.get(1L),
+ GregTech_API.sDrinksAlwaysDrinkable,
+ false,
+ false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L)));
+ ItemList.Bottle_Dark_Beer.set(
+ addItem(
+ Bottle_Dark_Beer.ID,
+ "Dark Beer",
+ "Dark Beer, for the real Men",
+ new GT_FoodStat(
+ 4,
+ 0.4F,
+ EnumAction.drink,
+ ItemList.Bottle_Empty.get(1L),
+ GregTech_API.sDrinksAlwaysDrinkable,
+ false,
+ false,
+ Potion.confusion.id,
+ 300,
+ 1,
+ 60,
+ Potion.damageBoost.id,
+ 300,
+ 1,
+ 60,
+ Potion.poison.id,
+ 200,
+ 1,
+ 5),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 1L)));
+ ItemList.Bottle_Dragon_Blood.set(
+ addItem(
+ Bottle_Dragon_Blood.ID,
+ "Dragon Blood",
+ "FUS RO DAH!",
+ new GT_FoodStat(
+ 4,
+ 0.4F,
+ EnumAction.drink,
+ ItemList.Bottle_Empty.get(1L),
+ GregTech_API.sDrinksAlwaysDrinkable,
+ false,
+ false,
+ Potion.confusion.id,
+ 300,
+ 2,
+ 90,
+ Potion.damageBoost.id,
+ 300,
+ 2,
+ 90,
+ Potion.poison.id,
+ 200,
+ 2,
+ 10,
+ Potion.harm.id,
+ 0,
+ 2,
+ 5),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 2L)));
+ ItemList.Bottle_Wheaty_Juice.set(
+ addItem(
+ Bottle_Wheaty_Juice.ID,
+ "Wheaty Juice",
+ "Is this liquefied Bread or what?",
+ new GT_FoodStat(
+ 2,
+ 0.1F,
+ EnumAction.drink,
+ ItemList.Bottle_Empty.get(1L),
+ GregTech_API.sDrinksAlwaysDrinkable,
+ false,
+ false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L)));
+ ItemList.Bottle_Scotch.set(
+ addItem(
+ Bottle_Scotch.ID,
+ "Scotch",
+ "Technically this is just a Whisky",
+ new GT_FoodStat(
+ 2,
+ 0.1F,
+ EnumAction.drink,
+ ItemList.Bottle_Empty.get(1L),
+ GregTech_API.sDrinksAlwaysDrinkable,
+ false,
+ false,
+ Potion.confusion.id,
+ 400,
+ 0,
+ 60,
+ Potion.resistance.id,
+ 400,
+ 1,
+ 60,
+ Potion.poison.id,
+ 200,
+ 1,
+ 5),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.TUTAMEN, 1L)));
+ ItemList.Bottle_Glen_McKenner.set(
+ addItem(
+ Bottle_Glen_McKenner.ID,
+ "Glen McKenner",
+ "Don't hand to easily surprised people, they will shatter it.",
+ new GT_FoodStat(
+ 2,
+ 0.1F,
+ EnumAction.drink,
+ ItemList.Bottle_Empty.get(1L),
+ GregTech_API.sDrinksAlwaysDrinkable,
+ false,
+ false,
+ Potion.confusion.id,
+ 400,
+ 1,
+ 90,
+ Potion.resistance.id,
+ 400,
+ 2,
+ 90,
+ Potion.poison.id,
+ 200,
+ 2,
+ 10,
+ Potion.harm.id,
+ 0,
+ 2,
+ 5),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.TUTAMEN, 2L)));
+ ItemList.Bottle_Wheaty_Hops_Juice.set(
+ addItem(
+ Bottle_Wheaty_Hops_Juice.ID,
+ "Wheaty Hops Juice",
+ "Also known as 'Duff-Lite'",
+ new GT_FoodStat(
+ 1,
+ 0.1F,
+ EnumAction.drink,
+ ItemList.Bottle_Empty.get(1L),
+ GregTech_API.sDrinksAlwaysDrinkable,
+ false,
+ false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 2L)));
+ ItemList.Bottle_Beer.set(
+ addItem(
+ Bottle_Beer.ID,
+ "Beer",
+ "Good old Beer",
+ new GT_FoodStat(
+ 6,
+ 0.4F,
+ EnumAction.drink,
+ ItemList.Bottle_Empty.get(1L),
+ GregTech_API.sDrinksAlwaysDrinkable,
+ false,
+ false,
+ Potion.confusion.id,
+ 400,
+ 0,
+ 60,
+ Potion.digSpeed.id,
+ 400,
+ 2,
+ 60,
+ Potion.poison.id,
+ 100,
+ 0,
+ 5),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.PERFODIO, 1L)));
+ ItemList.Bottle_Chilly_Sauce.set(
+ addItem(
+ Bottle_Chilly_Sauce.ID,
+ "Chilly Sauce",
+ "Spicy",
+ new GT_FoodStat(
+ 2,
+ 0.1F,
+ EnumAction.drink,
+ ItemList.Bottle_Empty.get(1L),
+ GregTech_API.sDrinksAlwaysDrinkable,
+ false,
+ false,
+ Potion.confusion.id,
+ 1000,
+ 0,
+ 10,
+ Potion.fireResistance.id,
+ 1000,
+ 0,
+ 60),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)));
+ ItemList.Bottle_Hot_Sauce.set(
+ addItem(
+ Bottle_Hot_Sauce.ID,
+ "Hot Sauce",
+ "Very Spicy, I guess?",
+ new GT_FoodStat(
+ 2,
+ 0.1F,
+ EnumAction.drink,
+ ItemList.Bottle_Empty.get(1L),
+ GregTech_API.sDrinksAlwaysDrinkable,
+ false,
+ false,
+ Potion.confusion.id,
+ 2000,
+ 0,
+ 30,
+ Potion.fireResistance.id,
+ 2000,
+ 0,
+ 70),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 2L)));
+ ItemList.Bottle_Diabolo_Sauce.set(
+ addItem(
+ Bottle_Diabolo_Sauce.ID,
+ "Diabolo Sauce",
+ "As if the Devil made this Sauce",
+ new GT_FoodStat(
+ 2,
+ 0.1F,
+ EnumAction.drink,
+ ItemList.Bottle_Empty.get(1L),
+ GregTech_API.sDrinksAlwaysDrinkable,
+ false,
+ false,
+ Potion.confusion.id,
+ 3000,
+ 1,
+ 50,
+ Potion.fireResistance.id,
+ 3000,
+ 0,
+ 80),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 3L)));
+ ItemList.Bottle_Diablo_Sauce.set(
+ addItem(
+ Bottle_Diablo_Sauce.ID,
+ "Diablo Sauce",
+ "Diablo always comes back!",
+ new GT_FoodStat(
+ 2,
+ 0.1F,
+ EnumAction.drink,
+ ItemList.Bottle_Empty.get(1L),
+ GregTech_API.sDrinksAlwaysDrinkable,
+ false,
+ false,
+ Potion.confusion.id,
+ 4000,
+ 1,
+ 70,
+ Potion.fireResistance.id,
+ 4000,
+ 0,
+ 90),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 4L)));
+ ItemList.Bottle_Snitches_Glitch_Sauce.set(
+ addItem(
+ Bottle_Snitches_Glitch_Sauce.ID,
+ "Old Man Snitches glitched Diablo Sauce",
+ "[Missing No]",
+ SubTag.INVISIBLE,
+ new GT_FoodStat(
+ 2,
+ 0.1F,
+ EnumAction.drink,
+ ItemList.Bottle_Empty.get(1L),
+ GregTech_API.sDrinksAlwaysDrinkable,
+ false,
+ false,
+ Potion.confusion.id,
+ 9999,
+ 2,
+ 999,
+ Potion.fireResistance.id,
+ 9999,
+ 9,
+ 999),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 3L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 5L)));
+ ItemList.Bottle_Apple_Juice.set(
+ addItem(
+ Bottle_Apple_Juice.ID,
+ "Apple Juice",
+ "Made of the Apples from our best Oak Farms",
+ new GT_FoodStat(
+ 4,
+ 0.2F,
+ EnumAction.drink,
+ ItemList.Bottle_Empty.get(1L),
+ GregTech_API.sDrinksAlwaysDrinkable,
+ false,
+ false,
+ Potion.hunger.id,
+ 400,
+ 0,
+ 20),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L)));
+ ItemList.Bottle_Cider.set(
+ addItem(
+ Bottle_Cider.ID,
+ "Cider",
+ "If you have nothing better to do with your Apples",
+ new GT_FoodStat(
+ 4,
+ 0.2F,
+ EnumAction.drink,
+ ItemList.Bottle_Empty.get(1L),
+ GregTech_API.sDrinksAlwaysDrinkable,
+ false,
+ false,
+ Potion.confusion.id,
+ 400,
+ 0,
+ 60,
+ Potion.resistance.id,
+ 400,
+ 1,
+ 60,
+ Potion.poison.id,
+ 200,
+ 1,
+ 5),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.TUTAMEN, 1L)));
+ ItemList.Bottle_Golden_Apple_Juice.set(
+ addItem(
+ Bottle_Golden_Apple_Juice.ID,
+ "Golden Apple Juice",
+ "A golden Apple in liquid form",
+ new GT_FoodStat(
+ 4,
+ 0.2F,
+ EnumAction.drink,
+ ItemList.Bottle_Empty.get(1L),
+ GregTech_API.sDrinksAlwaysDrinkable,
+ false,
+ false,
+ Potion.hunger.id,
+ 400,
+ 0,
+ 20,
+ Potion.field_76444_x.id,
+ 2400,
+ 0,
+ 100,
+ Potion.regeneration.id,
+ 100,
+ 1,
+ 100),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.SANO, 1L)));
+ ItemList.Bottle_Golden_Cider.set(
+ addItem(
+ Bottle_Golden_Cider.ID,
+ "Golden Cider",
+ "More Resistance, less Regeneration",
+ new GT_FoodStat(
+ 4,
+ 0.2F,
+ EnumAction.drink,
+ ItemList.Bottle_Empty.get(1L),
+ GregTech_API.sDrinksAlwaysDrinkable,
+ false,
+ false,
+ Potion.confusion.id,
+ 400,
+ 0,
+ 60,
+ Potion.field_76444_x.id,
+ 2400,
+ 1,
+ 95,
+ Potion.poison.id,
+ 200,
+ 1,
+ 5),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.TUTAMEN, 1L)));
+ ItemList.Bottle_Iduns_Apple_Juice.set(
+ addItem(
+ Bottle_Iduns_Apple_Juice.ID,
+ "Idun's Apple Juice",
+ "So you got the Idea of using Notch Apples for a drink?",
+ new GT_FoodStat(
+ 4,
+ 0.2F,
+ EnumAction.drink,
+ ItemList.Bottle_Empty.get(1L),
+ GregTech_API.sDrinksAlwaysDrinkable,
+ false,
+ false,
+ Potion.regeneration.id,
+ 600,
+ 4,
+ 100,
+ Potion.field_76444_x.id,
+ 2400,
+ 0,
+ 100,
+ Potion.resistance.id,
+ 6000,
+ 0,
+ 100,
+ Potion.fireResistance.id,
+ 6000,
+ 0,
+ 100),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.NEBRISUM, 9L)));
+ ItemList.Bottle_Notches_Brew.set(
+ addItem(
+ Bottle_Notches_Brew.ID,
+ "Notches Brew",
+ "This is just overpowered",
+ new GT_FoodStat(
+ 4,
+ 0.2F,
+ EnumAction.drink,
+ ItemList.Bottle_Empty.get(1L),
+ GregTech_API.sDrinksAlwaysDrinkable,
+ false,
+ false,
+ Potion.regeneration.id,
+ 700,
+ 4,
+ 95,
+ Potion.field_76444_x.id,
+ 3000,
+ 1,
+ 95,
+ Potion.resistance.id,
+ 7000,
+ 1,
+ 95,
+ Potion.fireResistance.id,
+ 7000,
+ 0,
+ 95,
+ Potion.harm.id,
+ 0,
+ 2,
+ 20),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.NEBRISUM, 9L)));
+ ItemList.Bottle_Lemon_Juice.set(
+ addItem(
+ Bottle_Lemon_Juice.ID,
+ "Lemon Juice",
+ "Maybe adding Sugar will make it less sour",
+ new GT_FoodStat(
+ 2,
+ 0.4F,
+ EnumAction.drink,
+ ItemList.Bottle_Empty.get(1L),
+ GregTech_API.sDrinksAlwaysDrinkable,
+ false,
+ false,
+ Potion.digSpeed.id,
+ 1200,
+ 0,
+ 60),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.PERFODIO, 1L)));
+ ItemList.Bottle_Limoncello.set(
+ addItem(
+ Bottle_Limoncello.ID,
+ "Limoncello",
+ "An alcoholic Drink which tastes like Lemons",
+ new GT_FoodStat(
+ 2,
+ 0.4F,
+ EnumAction.drink,
+ ItemList.Bottle_Empty.get(1L),
+ GregTech_API.sDrinksAlwaysDrinkable,
+ false,
+ false,
+ Potion.digSpeed.id,
+ 1200,
+ 0,
+ 90,
+ Potion.poison.id,
+ 200,
+ 1,
+ 5),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.PERFODIO, 1L)));
+ ItemList.Bottle_Lemonade.set(
+ addItem(
+ Bottle_Lemonade.ID,
+ "Lemonade",
+ "Cold and refreshing Lemonade",
+ new GT_FoodStat(
+ 4,
+ 0.3F,
+ EnumAction.drink,
+ ItemList.Bottle_Empty.get(1L),
+ GregTech_API.sDrinksAlwaysDrinkable,
+ false,
+ false,
+ Potion.digSpeed.id,
+ 900,
+ 1,
+ 90),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.PERFODIO, 1L)));
+ ItemList.Bottle_Alcopops.set(
+ addItem(
+ Bottle_Alcopops.ID,
+ "Alcopops",
+ "Don't let your Children drink this junk!",
+ new GT_FoodStat(
+ 2,
+ 0.2F,
+ EnumAction.drink,
+ ItemList.Bottle_Empty.get(1L),
+ GregTech_API.sDrinksAlwaysDrinkable,
+ false,
+ false,
+ Potion.digSpeed.id,
+ 900,
+ 1,
+ 90,
+ Potion.poison.id,
+ 300,
+ 2,
+ 20),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VINCULUM, 1L)));
+ ItemList.Bottle_Cave_Johnsons_Grenade_Juice.set(
+ addItem(
+ Bottle_Cave_Johnsons_Grenade_Juice.ID,
+ "Cave Johnson's Grenade Juice",
+ "When life gives you Lemons, make Life take them Lemons back!",
+ new GT_FoodStat(
+ 0,
+ 0.0F,
+ EnumAction.drink,
+ ItemList.Bottle_Empty.get(1L),
+ GregTech_API.sDrinksAlwaysDrinkable,
+ false,
+ false).setExplosive(),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MORTUUS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.PERDITIO, 1L)));
+ ItemList.Bottle_Milk.set(
+ addItem(
+ Bottle_Milk.ID,
+ "Milk",
+ "Got Milk?",
+ OrePrefixes.bottle.get(Materials.Milk),
+ new GT_FoodStat(
+ 0,
+ 0.0F,
+ EnumAction.drink,
+ ItemList.Bottle_Empty.get(1L),
+ GregTech_API.sDrinksAlwaysDrinkable,
+ false,
+ false).setMilk(),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.SANO, 1L)));
+ ItemList.Bottle_Holy_Water.set(
+ addItem(
+ Bottle_Holy_Water.ID,
+ "Holy Water",
+ "May the holy Planks be with you",
+ OrePrefixes.bottle.get(Materials.HolyWater),
+ new GT_FoodStat(
+ 0,
+ 0.0F,
+ EnumAction.drink,
+ ItemList.Bottle_Empty.get(1L),
+ GregTech_API.sDrinksAlwaysDrinkable,
+ false,
+ false,
+ Potion.poison.id,
+ 100,
+ 1,
+ 100).setMilk(),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AURAM, 1L)));
+
+ ItemList.Food_Potato_On_Stick.set(
+ addItem(
+ Food_Potato_On_Stick.ID,
+ "Potato on a Stick",
+ "Totally looks like a Crab Claw",
+ new GT_FoodStat(1, 0.3F, EnumAction.eat, new ItemStack(Items.stick, 1), false, true, false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)));
+ ItemList.Food_Potato_On_Stick_Roasted.set(
+ addItem(
+ Food_Potato_On_Stick_Roasted.ID,
+ "Roasted Potato on a Stick",
+ "Still looks like a Crab Claw",
+ new GT_FoodStat(6, 0.6F, EnumAction.eat, new ItemStack(Items.stick, 1), false, true, false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)));
+ ItemList.Food_Raw_Fries.set(
+ addItem(
+ Food_Raw_Fries.ID,
+ "Potato Strips",
+ "It's Potato in Stripe Form",
+ new GT_FoodStat(1, 0.3F, EnumAction.eat, null, false, true, false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L)));
+ ItemList.Food_Fries.set(
+ addItem(
+ Food_Fries.ID,
+ "Fries",
+ "Not to confuse with Fry the Delivery Boy",
+ new GT_FoodStat(7, 0.5F, EnumAction.eat, null, false, true, false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)));
+ ItemList.Food_Packaged_Fries.set(
+ addItem(
+ Food_Packaged_Fries.ID,
+ "Fries",
+ "Ketchup not included",
+ new GT_FoodStat(
+ 7,
+ 0.5F,
+ EnumAction.eat,
+ GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Paper, 1L),
+ false,
+ true,
+ false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)));
+ ItemList.Food_Raw_PotatoChips.set(
+ addItem(
+ Food_Raw_PotatoChips.ID,
+ "Potato Chips (Raw)",
+ "Just like a Potato",
+ new GT_FoodStat(1, 0.3F, EnumAction.eat, null, false, true, false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L)));
+ ItemList.Food_PotatoChips.set(
+ addItem(
+ Food_PotatoChips.ID,
+ "Potato Chips",
+ "Crunchy",
+ new GT_FoodStat(7, 0.5F, EnumAction.eat, null, false, true, false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)));
+ ItemList.Food_ChiliChips.set(
+ addItem(
+ Food_ChiliChips.ID,
+ "Chili Chips",
+ "Spicy",
+ new GT_FoodStat(7, 0.6F, EnumAction.eat, null, false, true, false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)));
+ ItemList.Food_Packaged_PotatoChips.set(
+ addItem(
+ Food_Packaged_PotatoChips.ID,
+ "Bag of Potato Chips",
+ "Full of delicious Air",
+ new GT_FoodStat(
+ 7,
+ 0.5F,
+ EnumAction.eat,
+ GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Aluminium, 1L),
+ false,
+ true,
+ false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)));
+ ItemList.Food_Packaged_ChiliChips.set(
+ addItem(
+ Food_Packaged_ChiliChips.ID,
+ "Bag of Chili Chips",
+ "Stop making noises Baj!",
+ new GT_FoodStat(
+ 7,
+ 0.6F,
+ EnumAction.eat,
+ GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Aluminium, 1L),
+ false,
+ true,
+ false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)));
+ ItemList.Food_Chum.set(
+ addItem(
+ Food_Chum.ID,
+ "Chum",
+ "Chum is Fum!",
+ new GT_FoodStat(
+ 5,
+ 0.2F,
+ EnumAction.eat,
+ null,
+ true,
+ false,
+ true,
+ Potion.hunger.id,
+ 1000,
+ 4,
+ 100,
+ Potion.confusion.id,
+ 300,
+ 1,
+ 80),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)));
+ ItemList.Food_Chum_On_Stick.set(
+ addItem(
+ Food_Chum_On_Stick.ID,
+ "Chum on a Stick",
+ "Don't forget to try our Chum-balaya",
+ new GT_FoodStat(
+ 5,
+ 0.2F,
+ EnumAction.eat,
+ new ItemStack(Items.stick, 1),
+ true,
+ false,
+ true,
+ Potion.hunger.id,
+ 1000,
+ 4,
+ 100,
+ Potion.confusion.id,
+ 300,
+ 1,
+ 80),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)));
+ ItemList.Food_Dough_Sugar.set(
+ addItem(
+ Food_Dough_Sugar.ID,
+ "Sugary Dough",
+ "Don't eat the Dough before it is baken",
+ new GT_FoodStat(1, 0.1F, EnumAction.eat, null, false, true, false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L)));
+ ItemList.Food_Dough_Chocolate.set(
+ addItem(
+ Food_Dough_Chocolate.ID,
+ "Chocolate Dough",
+ "I said don't eat the Dough!",
+ new GT_FoodStat(1, 0.1F, EnumAction.eat, null, false, true, false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L)));
+ ItemList.Food_Raw_Cookie.set(
+ addItem(
+ Food_Raw_Cookie.ID,
+ "Cookie shaped Dough",
+ "For baking Cookies",
+ new GT_FoodStat(1, 0.1F, EnumAction.eat, null, false, true, false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L)));
+
+ ItemList.Food_Sliced_Buns.set(
+ addItem(
+ Food_Sliced_Buns.ID,
+ "Buns",
+ "Pre Sliced",
+ new GT_FoodStat(3, 0.5F, EnumAction.eat, null, false, true, false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)));
+ ItemList.Food_Burger_Veggie.set(
+ addItem(
+ Food_Burger_Veggie.ID,
+ "Veggieburger",
+ "No matter how you call this, this is NOT a Burger!",
+ new GT_FoodStat(3, 0.5F, EnumAction.eat, null, false, true, false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)));
+ ItemList.Food_Burger_Cheese.set(
+ addItem(
+ Food_Burger_Cheese.ID,
+ "Cheeseburger",
+ "Cheesy!",
+ new GT_FoodStat(3, 0.5F, EnumAction.eat, null, false, true, false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L),
+ new ItemData(Materials.Cheese, 907200L)));
+ ItemList.Food_Burger_Meat.set(
+ addItem(
+ Food_Burger_Meat.ID,
+ "Hamburger",
+ "The Mc Burger Queen Burger",
+ new GT_FoodStat(3, 0.5F, EnumAction.eat, null, false, true, false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.CORPUS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)));
+ ItemList.Food_Burger_Chum.set(
+ addItem(
+ Food_Burger_Chum.ID,
+ "Chumburger",
+ "Fum is Chum!",
+ new GT_FoodStat(
+ 5,
+ 0.2F,
+ EnumAction.eat,
+ null,
+ true,
+ false,
+ true,
+ Potion.hunger.id,
+ 1000,
+ 4,
+ 100,
+ Potion.confusion.id,
+ 300,
+ 1,
+ 80),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)));
+
+ ItemList.Food_Sliced_Breads.set(
+ addItem(
+ Food_Sliced_Breads.ID,
+ "Breads",
+ "Pre Sliced",
+ new GT_FoodStat(5, 0.6F, EnumAction.eat, null, false, true, false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)));
+ ItemList.Food_Sandwich_Veggie.set(
+ addItem(
+ Food_Sandwich_Veggie.ID,
+ "Veggie Sandwich",
+ "Meatless",
+ new GT_FoodStat(7, 0.6F, EnumAction.eat, null, false, true, false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)));
+ ItemList.Food_Sandwich_Cheese.set(
+ addItem(
+ Food_Sandwich_Cheese.ID,
+ "Cheese Sandwich",
+ "Say Cheese!",
+ new GT_FoodStat(7, 0.6F, EnumAction.eat, null, false, true, false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)));
+ ItemList.Food_Sandwich_Bacon.set(
+ addItem(
+ Food_Sandwich_Bacon.ID,
+ "Bacon Sandwich",
+ "The best Sandwich ever!",
+ new GT_FoodStat(10, 0.8F, EnumAction.eat, null, false, true, false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.CORPUS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)));
+ ItemList.Food_Sandwich_Steak.set(
+ addItem(
+ Food_Sandwich_Steak.ID,
+ "Steak Sandwich",
+ "Not a 'Steam Sandwich'",
+ new GT_FoodStat(10, 0.8F, EnumAction.eat, null, false, true, false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.CORPUS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)));
+ ItemList.Food_Sliced_Baguettes.set(
+ addItem(
+ Food_Sliced_Baguettes.ID,
+ "Baguettes",
+ "Pre Sliced",
+ new GT_FoodStat(8, 0.5F, EnumAction.eat, null, false, true, false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)));
+ ItemList.Food_Large_Sandwich_Veggie.set(
+ addItem(
+ Food_Large_Sandwich_Veggie.ID,
+ "Large Veggie Sandwich",
+ "Just not worth it",
+ new GT_FoodStat(15, 0.8F, EnumAction.eat, null, false, true, false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 3L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)));
+ ItemList.Food_Large_Sandwich_Cheese.set(
+ addItem(
+ Food_Large_Sandwich_Cheese.ID,
+ "Large Cheese Sandwich",
+ "I need another cheesy tooltip for this",
+ new GT_FoodStat(15, 0.8F, EnumAction.eat, null, false, true, false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 3L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)));
+ ItemList.Food_Large_Sandwich_Bacon.set(
+ addItem(
+ Food_Large_Sandwich_Bacon.ID,
+ "Large Bacon Sandwich",
+ "For Men! (and manly Women)",
+ new GT_FoodStat(20, 1.0F, EnumAction.eat, null, false, true, false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.CORPUS, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)));
+ ItemList.Food_Large_Sandwich_Steak.set(
+ addItem(
+ Food_Large_Sandwich_Steak.ID,
+ "Large Steak Sandwich",
+ "Yes, I once accidentially called it 'Steam Sandwich'",
+ new GT_FoodStat(20, 1.0F, EnumAction.eat, null, false, true, false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.CORPUS, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)));
+ ItemList.Food_Raw_Pizza_Veggie.set(
+ addItem(
+ Food_Raw_Pizza_Veggie.ID,
+ "Raw Veggie Pizza",
+ "Into the Oven with it!",
+ new GT_FoodStat(1, 0.2F, EnumAction.eat, null, false, true, false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)));
+ ItemList.Food_Raw_Pizza_Cheese.set(
+ addItem(
+ Food_Raw_Pizza_Cheese.ID,
+ "Raw Cheese Pizza",
+ "Into the Oven with it!",
+ new GT_FoodStat(2, 0.2F, EnumAction.eat, null, false, true, false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)));
+ ItemList.Food_Raw_Pizza_Meat.set(
+ addItem(
+ Food_Raw_Pizza_Meat.ID,
+ "Raw Mince Meat Pizza",
+ "Into the Oven with it!",
+ new GT_FoodStat(2, 0.2F, EnumAction.eat, null, false, true, false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.CORPUS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)));
+
+ ItemList.Food_Baked_Pizza_Veggie.set(
+ addItem(
+ Food_Baked_Pizza_Veggie.ID,
+ "Veggie Pizza",
+ "The next they want is Gluten Free Pizzas...",
+ new GT_FoodStat(3, 0.3F, EnumAction.eat, null, false, true, false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)));
+ ItemList.Food_Baked_Pizza_Cheese.set(
+ addItem(
+ Food_Baked_Pizza_Cheese.ID,
+ "Cheese Pizza",
+ "Pizza Magarita",
+ new GT_FoodStat(4, 0.4F, EnumAction.eat, null, false, true, false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)));
+ ItemList.Food_Baked_Pizza_Meat.set(
+ addItem(
+ Food_Baked_Pizza_Meat.ID,
+ "Mince Meat Pizza",
+ "Emo Pizza, it cuts itself!",
+ new GT_FoodStat(5, 0.5F, EnumAction.eat, null, false, true, false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.CORPUS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)));
+
+ ItemList.Dye_Indigo.set(
+ addItem(
+ Dye_Indigo.ID,
+ "Indigo Dye",
+ "Blue Dye",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 1L),
+ Dyes.dyeBlue));
+
+ int[] Dye_Colors = new int[] { Dye_Color_00.ID, Dye_Color_01.ID, Dye_Color_02.ID, Dye_Color_03.ID,
+ Dye_Color_04.ID, Dye_Color_05.ID, Dye_Color_06.ID, Dye_Color_07.ID, Dye_Color_08.ID, Dye_Color_09.ID,
+ Dye_Color_10.ID, Dye_Color_11.ID, Dye_Color_12.ID, Dye_Color_13.ID, Dye_Color_14.ID, Dye_Color_15.ID };
+ for (int i = 0; i < 16; i = i + 1) {
+ ItemList.DYE_ONLY_ITEMS[i].set(
+ addItem(
+ Dye_Colors[i],
+ Dyes.get(i).mName + " Dye",
+ "",
+ Dyes.get(i)
+ .name(),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 1L)));
+ }
+
+ ItemList.Plank_Oak
+ .set(addItem(Plank_Oak.ID, "Oak Plank", aTextCover, new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)));
+ ItemList.Plank_Spruce.set(
+ addItem(Plank_Spruce.ID, "Spruce Plank", aTextCover, new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)));
+ ItemList.Plank_Birch.set(
+ addItem(Plank_Birch.ID, "Birch Plank", aTextCover, new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)));
+ ItemList.Plank_Jungle.set(
+ addItem(Plank_Jungle.ID, "Jungle Plank", aTextCover, new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)));
+ ItemList.Plank_Acacia.set(
+ addItem(Plank_Acacia.ID, "Acacia Plank", aTextCover, new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)));
+ ItemList.Plank_DarkOak.set(
+ addItem(
+ Plank_DarkOak.ID,
+ "Dark Oak Plank",
+ aTextCover,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)));
+ ItemList.Plank_Larch.set(
+ addItem(Plank_Larch.ID, "Larch Plank", aTextCover, new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)));
+ ItemList.Plank_Teak
+ .set(addItem(Plank_Teak.ID, "Teak Plank", aTextCover, new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)));
+ ItemList.Plank_Acacia_Green.set(
+ addItem(
+ Plank_Acacia_Green.ID,
+ "Green Acacia Plank",
+ aTextCover,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)));
+ ItemList.Plank_Lime
+ .set(addItem(Plank_Lime.ID, "Lime Plank", aTextCover, new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)));
+ ItemList.Plank_Chestnut.set(
+ addItem(
+ Plank_Chestnut.ID,
+ "Chestnut Plank",
+ aTextCover,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)));
+ ItemList.Plank_Wenge.set(
+ addItem(Plank_Wenge.ID, "Wenge Plank", aTextCover, new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)));
+ ItemList.Plank_Baobab.set(
+ addItem(Plank_Baobab.ID, "Baobab Plank", aTextCover, new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)));
+ ItemList.Plank_Sequoia.set(
+ addItem(
+ Plank_Sequoia.ID,
+ "Sequoia Plank",
+ aTextCover,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)));
+ ItemList.Plank_Kapok.set(
+ addItem(Plank_Kapok.ID, "Kapok Plank", aTextCover, new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)));
+ ItemList.Plank_Ebony.set(
+ addItem(Plank_Ebony.ID, "Ebony Plank", aTextCover, new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)));
+ ItemList.Plank_Mahagony.set(
+ addItem(
+ Plank_Mahagony.ID,
+ "Mahagony Plank",
+ aTextCover,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)));
+ ItemList.Plank_Balsa.set(
+ addItem(Plank_Balsa.ID, "Balsa Plank", aTextCover, new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)));
+ ItemList.Plank_Willow.set(
+ addItem(Plank_Willow.ID, "Willow Plank", aTextCover, new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)));
+ ItemList.Plank_Walnut.set(
+ addItem(Plank_Walnut.ID, "Walnut Plank", aTextCover, new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)));
+ ItemList.Plank_Greenheart.set(
+ addItem(
+ Plank_Greenheart.ID,
+ "Greenheart Plank",
+ aTextCover,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)));
+ ItemList.Plank_Cherry.set(
+ addItem(Plank_Cherry.ID, "Cherry Plank", aTextCover, new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)));
+ ItemList.Plank_Mahoe.set(
+ addItem(Plank_Mahoe.ID, "Mahoe Plank", aTextCover, new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)));
+ ItemList.Plank_Poplar.set(
+ addItem(Plank_Poplar.ID, "Poplar Plank", aTextCover, new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)));
+ ItemList.Plank_Palm
+ .set(addItem(Plank_Palm.ID, "Palm Plank", aTextCover, new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)));
+ ItemList.Plank_Papaya.set(
+ addItem(Plank_Papaya.ID, "Papaya Plank", aTextCover, new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)));
+ ItemList.Plank_Pine
+ .set(addItem(Plank_Pine.ID, "Pine Plank", aTextCover, new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)));
+ ItemList.Plank_Plum
+ .set(addItem(Plank_Plum.ID, "Plum Plank", aTextCover, new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)));
+ ItemList.Plank_Maple.set(
+ addItem(Plank_Maple.ID, "Maple Plank", aTextCover, new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)));
+ ItemList.Plank_Citrus.set(
+ addItem(Plank_Citrus.ID, "Citrus Plank", aTextCover, new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)));
+ ItemList.SFMixture.set(addItem(SFMixture.ID, "Super Fuel Binder", "Raw Material"));
+ ItemList.MSFMixture.set(addItem(MSFMixture.ID, "Magic Super Fuel Binder", "Raw Material"));
+
+ ItemList.Crop_Drop_Plumbilia.set(
+ addItem(
+ Crop_Drop_Plumbilia.ID,
+ "Plumbilia Leaf",
+ "Source of Lead",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 1L)));
+ ItemList.Crop_Drop_Argentia.set(
+ addItem(
+ Crop_Drop_Argentia.ID,
+ "Argentia Leaf",
+ "Source of Silver",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.LUCRUM, 1L)));
+ ItemList.Crop_Drop_Indigo.set(
+ addItem(
+ Crop_Drop_Indigo.ID,
+ "Indigo Blossom",
+ "Used for making Blue Dye",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 1L)));
+ ItemList.Crop_Drop_Ferru.set(
+ addItem(
+ Crop_Drop_Ferru.ID,
+ "Ferru Leaf",
+ "Source of Iron",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L)));
+ ItemList.Crop_Drop_Aurelia.set(
+ addItem(
+ Crop_Drop_Aurelia.ID,
+ "Aurelia Leaf",
+ "Source of Gold",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.LUCRUM, 1L)));
+ ItemList.Crop_Drop_TeaLeaf.set(
+ addItem(
+ Crop_Drop_TeaLeaf.ID,
+ "Tea Leaf",
+ "Source of Tea",
+ "cropTea",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.SANO, 1L)));
+
+ ItemList.Crop_Drop_OilBerry.set(
+ addItem(
+ Crop_Drop_OilBerry.ID,
+ "Oil Berry",
+ "Oil in Berry form",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 1L)));
+ ItemList.Crop_Drop_BobsYerUncleRanks.set(
+ addItem(
+ Crop_Drop_BobsYerUncleRanks.ID,
+ "Bobs-Yer-Uncle-Berry",
+ "Source of Emeralds",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.LUCRUM, 1L)));
+ ItemList.Crop_Drop_UUMBerry.set(
+ addItem(
+ Crop_Drop_UUMBerry.ID,
+ "UUM Berry",
+ "UUM in Berry form",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 1L)));
+ ItemList.Crop_Drop_UUABerry.set(
+ addItem(
+ Crop_Drop_UUABerry.ID,
+ "UUA Berry",
+ "UUA in Berry form",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 1L)));
+
+ ItemList.Crop_Drop_MilkWart.set(
+ addItem(
+ Crop_Drop_MilkWart.ID,
+ "Milk Wart",
+ "Source of Milk",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.SANO, 1L)));
+
+ ItemList.Crop_Drop_Coppon.set(
+ addItem(
+ Crop_Drop_Coppon.ID,
+ "Coppon Fiber",
+ "ORANGE WOOOOOOOL!!!",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 1L)));
+
+ ItemList.Crop_Drop_Tine.set(
+ addItem(
+ Crop_Drop_Tine.ID,
+ "Tine Twig",
+ "Source of Tin",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)));
+
+ ItemList.Crop_Drop_Mica.set(
+ addItem(
+ Crop_Drop_Mica.ID,
+ "Micadia Twig",
+ "Source of Mica",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.TUTAMEN, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)));
+
+ ItemList.Crop_Drop_Bauxite.set(addItem(Crop_Drop_Bauxite.ID, "Bauxia Leaf", "Source of Aluminium"));
+ ItemList.Crop_Drop_Ilmenite.set(addItem(Crop_Drop_Ilmenite.ID, "Titania Leaf", "Source of Titanium"));
+ ItemList.Crop_Drop_Pitchblende.set(addItem(Crop_Drop_Pitchblende.ID, "Reactoria Leaf", "Source of Uranium"));
+ ItemList.Crop_Drop_Uraninite.set(addItem(Crop_Drop_Uraninite.ID, "Uranium Leaf", "Source of Uranite"));
+ ItemList.Crop_Drop_Thorium.set(addItem(Crop_Drop_Thorium.ID, "Thunder Leaf", "Source of Thorium"));
+ ItemList.Crop_Drop_Nickel.set(addItem(Crop_Drop_Nickel.ID, "Nickelback Leaf", "Source of Nickel"));
+ ItemList.Crop_Drop_Zinc.set(addItem(Crop_Drop_Zinc.ID, "Galvania Leaf", "Source of Zinc"));
+ ItemList.Crop_Drop_Manganese.set(addItem(Crop_Drop_Manganese.ID, "Pyrolusium Leaf", "Source of Manganese"));
+ ItemList.Crop_Drop_Scheelite.set(addItem(Crop_Drop_Scheelite.ID, "Scheelinium Leaf", "Source of Tungsten"));
+ ItemList.Crop_Drop_Platinum.set(addItem(Crop_Drop_Platinum.ID, "Platina Leaf", "Source of Platinum"));
+ ItemList.Crop_Drop_Iridium.set(addItem(Crop_Drop_Iridium.ID, "Quantaria Leaf", "Source of Iridium"));
+ ItemList.Crop_Drop_Osmium.set(addItem(Crop_Drop_Osmium.ID, "Quantaria Leaf", "Source of Osmium"));
+ ItemList.Crop_Drop_Naquadah.set(addItem(Crop_Drop_Naquadah.ID, "Stargatium Leaf", "Source of Naquadah"));
+
+ ItemList.Crop_Drop_Chilly.set(
+ addItem(
+ Crop_Drop_Chilly.ID,
+ "Chilly Pepper",
+ "It is red and hot",
+ "cropChilipepper",
+ new GT_FoodStat(1, 0.3F, EnumAction.eat, null, false, true, false, Potion.confusion.id, 200, 1, 40),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L)));
+ ItemList.Crop_Drop_Lemon.set(
+ addItem(
+ Crop_Drop_Lemon.ID,
+ "Lemon",
+ "Don't make Lemonade",
+ "cropLemon",
+ new GT_FoodStat(1, 0.3F, EnumAction.eat, null, false, true, false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L)));
+ ItemList.Crop_Drop_Tomato.set(
+ addItem(
+ Crop_Drop_Tomato.ID,
+ "Tomato",
+ "Solid Ketchup",
+ "cropTomato",
+ new GT_FoodStat(1, 0.2F, EnumAction.eat, null, false, true, false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L)));
+ ItemList.Crop_Drop_MTomato.set(
+ addItem(
+ Crop_Drop_MTomato.ID,
+ "Max Tomato",
+ "Full Health in one Tomato",
+ "cropTomato",
+ new GT_FoodStat(
+ 9,
+ 1.0F,
+ EnumAction.eat,
+ null,
+ false,
+ true,
+ false,
+ Potion.regeneration.id,
+ 100,
+ 100,
+ 100),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.SANO, 3L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L)));
+ ItemList.Crop_Drop_Grapes.set(
+ addItem(
+ Crop_Drop_Grapes.ID,
+ "Grapes",
+ "Source of Wine",
+ "cropGrape",
+ new GT_FoodStat(2, 0.3F, EnumAction.eat, null, false, true, false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L)));
+ ItemList.Crop_Drop_Onion.set(
+ addItem(
+ Crop_Drop_Onion.ID,
+ "Onion",
+ "Taking over the whole Taste",
+ "cropOnion",
+ new GT_FoodStat(2, 0.2F, EnumAction.eat, null, false, true, false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L)));
+ ItemList.Crop_Drop_Cucumber.set(
+ addItem(
+ Crop_Drop_Cucumber.ID,
+ "Cucumber",
+ "Not a Sea Cucumber!",
+ "cropCucumber",
+ new GT_FoodStat(1, 0.2F, EnumAction.eat, null, false, true, false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L)));
+ ItemList.Crop_Drop_Rape.set(
+ addItem(
+ Crop_Drop_Rape.ID,
+ "Rape",
+ "Also known as Canola.",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 1L)));
+
+ ItemList.Food_Cheese.set(
+ addItem(
+ Food_Cheese.ID,
+ "Cheese",
+ "Click the Cheese",
+ "foodCheese",
+ new GT_FoodStat(3, 0.6F, EnumAction.eat, null, false, true, false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 2L)));
+ ItemList.Food_Dough.set(
+ addItem(
+ Food_Dough.ID,
+ "Dough",
+ "For making Breads",
+ "foodDough",
+ new GT_FoodStat(1, 0.1F, EnumAction.eat, null, false, true, false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L)));
+ ItemList.Food_Flat_Dough.set(
+ addItem(
+ Food_Flat_Dough.ID,
+ "Flattened Dough",
+ "For making Pizza",
+ new GT_FoodStat(1, 0.1F, EnumAction.eat, null, false, true, false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L)));
+ ItemList.Food_Raw_Bread.set(
+ addItem(
+ Food_Raw_Bread.ID,
+ "Dough",
+ "In Bread Shape",
+ new GT_FoodStat(1, 0.2F, EnumAction.eat, null, false, true, false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L)));
+ ItemList.Food_Raw_Bun.set(
+ addItem(
+ Food_Raw_Bun.ID,
+ "Dough",
+ "In Bun Shape",
+ new GT_FoodStat(1, 0.1F, EnumAction.eat, null, false, true, false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L)));
+ ItemList.Food_Raw_Baguette.set(
+ addItem(
+ Food_Raw_Baguette.ID,
+ "Dough",
+ "In Baguette Shape",
+ new GT_FoodStat(1, 0.3F, EnumAction.eat, null, false, true, false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L)));
+ ItemList.Food_Baked_Bun.set(
+ addItem(
+ Food_Baked_Bun.ID,
+ "Bun",
+ "Do not teleport Bread!",
+ new GT_FoodStat(3, 0.5F, EnumAction.eat, null, false, true, false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)));
+ ItemList.Food_Baked_Baguette.set(
+ addItem(
+ Food_Baked_Baguette.ID,
+ "Baguette",
+ "I teleported nothing BUT Bread!!!",
+ new GT_FoodStat(8, 0.5F, EnumAction.eat, null, false, true, false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)));
+ ItemList.Food_Sliced_Bread.set(
+ addItem(
+ Food_Sliced_Bread.ID,
+ "Sliced Bread",
+ "Just half a Bread",
+ new GT_FoodStat(2, 0.3F, EnumAction.eat, null, false, true, false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)));
+ ItemList.Food_Sliced_Bun.set(
+ addItem(
+ Food_Sliced_Bun.ID,
+ "Sliced Bun",
+ "Just half a Bun",
+ new GT_FoodStat(1, 0.3F, EnumAction.eat, null, false, true, false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)));
+ ItemList.Food_Sliced_Baguette.set(
+ addItem(
+ Food_Sliced_Baguette.ID,
+ "Sliced Baguette",
+ "Just half a Baguette",
+ new GT_FoodStat(4, 0.3F, EnumAction.eat, null, false, true, false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L)));
+ ItemList.Food_Raw_Cake.set(
+ addItem(
+ Food_Raw_Cake.ID,
+ "Cake Bottom",
+ "For making Cake",
+ new GT_FoodStat(2, 0.2F, EnumAction.eat, null, false, true, false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L)));
+ ItemList.Food_Baked_Cake.set(
+ addItem(
+ Food_Baked_Cake.ID,
+ "Baked Cake Bottom",
+ "I know I promised you an actual Cake, but well...",
+ new GT_FoodStat(3, 0.3F, EnumAction.eat, null, false, true, false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L)));
+ ItemList.Food_Sliced_Lemon.set(
+ addItem(
+ Food_Sliced_Lemon.ID,
+ "Lemon Slice",
+ "Ideal to put on your Drink",
+ new GT_FoodStat(1, 0.075F, EnumAction.eat, null, false, true, false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L)));
+ ItemList.Food_Sliced_Tomato.set(
+ addItem(
+ Food_Sliced_Tomato.ID,
+ "Tomato Slice",
+ "Solid Ketchup",
+ new GT_FoodStat(1, 0.05F, EnumAction.eat, null, false, true, false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L)));
+ ItemList.Food_Sliced_Onion.set(
+ addItem(
+ Food_Sliced_Onion.ID,
+ "Onion Slice",
+ "ONIONS, UNITE!",
+ new GT_FoodStat(1, 0.05F, EnumAction.eat, null, false, true, false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L)));
+ ItemList.Food_Sliced_Cucumber.set(
+ addItem(
+ Food_Sliced_Cucumber.ID,
+ "Cucumber Slice",
+ "QUEWWW-CUMMM-BERRR!!!",
+ new GT_FoodStat(1, 0.05F, EnumAction.eat, null, false, true, false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L)));
+
+ ItemList.Food_Sliced_Cheese.set(
+ addItem(
+ Food_Sliced_Cheese.ID,
+ "Cheese Slice",
+ "ALIEN ATTACK!!!, throw the CHEEEEESE!!!",
+ new GT_FoodStat(1, 0.1F, EnumAction.eat, null, false, true, false),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L)));
+
+ ItemList.Cover_AdvancedRedstoneTransmitterExternal.set(
+ addItem(
+ Cover_AdvancedRedstoneTransmitterExternal.ID,
+ "Advanced Redstone Transmitter (External)",
+ "Transfers Redstone signals wirelessly/n Can only connect with advanced wireless covers",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L)));
+ ItemList.Cover_AdvancedRedstoneTransmitterInternal.set(
+ addItem(
+ Cover_AdvancedRedstoneTransmitterInternal.ID,
+ "Advanced Redstone Transmitter (Internal)",
+ "Transfers Redstone signals wirelessly/n Can only connect with advanced wireless covers",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L)));
+ ItemList.Cover_AdvancedRedstoneReceiverExternal.set(
+ addItem(
+ Cover_AdvancedRedstoneReceiverExternal.ID,
+ "Advanced Redstone Receiver (External)",
+ "Transfers Redstone signals wirelessly/n Can only connect with advanced wireless covers",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L)));
+ ItemList.Cover_AdvancedRedstoneReceiverInternal.set(
+ addItem(
+ Cover_AdvancedRedstoneReceiverInternal.ID,
+ "Advanced Redstone Receiver (Internal)",
+ "Transfers Redstone signals wirelessly/n Can only connect with advanced wireless covers",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L)));
+
+ ItemList.Cover_WirelessFluidDetector.set(
+ addItem(
+ Cover_WirelessFluidDetector.ID,
+ "Wireless Fluid Detector Cover",
+ "Transfers Fluid Amount as Redstone wirelessly/n Can only connect with advanced wireless covers",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L)));
+ ItemList.Cover_WirelessItemDetector.set(
+ addItem(
+ Cover_WirelessItemDetector.ID,
+ "Wireless Item Detector Cover",
+ "Transfers Item Amount as Redstone wirelessly/n Can only connect with advanced wireless covers",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.TERRA, 1L)));
+
+ ItemList.Cover_WirelessNeedsMaintainance.set(
+ addItem(
+ Cover_WirelessNeedsMaintainance.ID,
+ "Wireless Needs Maintenance Cover",
+ "Transfers Maintenance Issues as Redstone wirelessly/n Can only connect with advanced wireless covers",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 4L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 3L)));
+
+ ItemList.Cover_WirelessActivityDetector.set(
+ addItem(
+ Cover_WirelessActivityDetector.ID,
+ "Wireless Activity Detector Cover",
+ "Transfers Activity as Redstone wirelessly/n Can only connect with advanced wireless covers",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.TERRA, 1L)));
+
+ ItemList.Display_ITS_FREE.set(
+ addItem(
+ Display_ITS_FREE.ID,
+ "ITS FREE",
+ "(or at least almost free)",
+ SubTag.INVISIBLE,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.LUCRUM, 1L)));
+
+ try {
+ CropCard tCrop;
+ GT_Utility.getField(tCrop = Crops.instance.getCropList()[13], "mDrop")
+ .set(tCrop, ItemList.Crop_Drop_Ferru.get(1L));
+ GT_Utility.getField(tCrop = Crops.instance.getCropList()[14], "mDrop")
+ .set(tCrop, ItemList.Crop_Drop_Aurelia.get(1L));
+ } catch (Throwable e) {
+ if (GT_Values.D1) {
+ e.printStackTrace(GT_Log.err);
+ }
+ }
+
+ setAllFluidContainerStats();
+ setBurnValues();
+ registerCovers();
+ initCraftingShapedRecipes();
+ initCraftingShapelessRecipes();
+ initAssemblerRecipes();
+ initExtractorRecipes();
+ initMaceratorRecipes();
+ initCompressorRecipes();
+ }
+
+ @Override
+ public boolean onLeftClickEntity(ItemStack aStack, EntityPlayer aPlayer, Entity aEntity) {
+ super.onLeftClickEntity(aStack, aPlayer, aEntity);
+ return false;
+ }
+
+ @Override
+ public boolean hasProjectile(SubTag aProjectileType, ItemStack aStack) {
+ int aDamage = aStack.getItemDamage();
+ return ((aDamage >= 25000) && (aDamage < 27000)) || (super.hasProjectile(aProjectileType, aStack));
+ }
+
+ @Override
+ public boolean isItemStackUsable(ItemStack aStack) {
+ int aDamage = aStack.getItemDamage();
+ Materials aMaterial = GregTech_API.sGeneratedMaterials[(aDamage % 1000)];
+ if ((aDamage >= 25000) && (aDamage < 27000) && (aMaterial != null) && (aMaterial.mEnchantmentTools != null)) {
+ Enchantment tEnchant = aMaterial.mEnchantmentTools == Enchantment.fortune ? Enchantment.looting
+ : aMaterial.mEnchantmentTools;
+ if (tEnchant.type == EnumEnchantmentType.weapon) {
+ NBTTagCompound tNBT = GT_Utility.ItemNBT.getNBT(aStack);
+ if (!tNBT.getBoolean("GT.HasBeenUpdated")) {
+ tNBT.setBoolean("GT.HasBeenUpdated", true);
+ GT_Utility.ItemNBT.setNBT(aStack, tNBT);
+ GT_Utility.ItemNBT.addEnchantment(aStack, tEnchant, aMaterial.mEnchantmentToolsLevel);
+ }
+ }
+ }
+ return super.isItemStackUsable(aStack);
+ }
+
+ private void setAllFluidContainerStats() {
+ setFluidContainerStats(32000 + Food_Raw_Fries.ID, 0L, 16L);
+ setFluidContainerStats(32000 + Food_Fries.ID, 0L, 16L);
+ setFluidContainerStats(32000 + Food_Raw_PotatoChips.ID, 0L, 16L);
+ setFluidContainerStats(32000 + Food_PotatoChips.ID, 0L, 16L);
+ setFluidContainerStats(32000 + Food_ChiliChips.ID, 0L, 16L);
+ setFluidContainerStats(32000 + Food_Sandwich_Veggie.ID, 0L, 32L);
+ setFluidContainerStats(32000 + Food_Sandwich_Cheese.ID, 0L, 32L);
+ setFluidContainerStats(32000 + Food_Sandwich_Bacon.ID, 0L, 32L);
+ setFluidContainerStats(32000 + Food_Sandwich_Steak.ID, 0L, 32L);
+ setFluidContainerStats(32000 + Food_Large_Sandwich_Veggie.ID, 0L, 16L);
+ setFluidContainerStats(32000 + Food_Large_Sandwich_Cheese.ID, 0L, 16L);
+ setFluidContainerStats(32000 + Food_Large_Sandwich_Bacon.ID, 0L, 16L);
+ setFluidContainerStats(32000 + Food_Large_Sandwich_Steak.ID, 0L, 16L);
+ }
+
+ private void setBurnValues() {
+ setBurnValue(32000 + Plank_Oak.ID, 75);
+ setBurnValue(32000 + Plank_Spruce.ID, 75);
+ setBurnValue(32000 + Plank_Birch.ID, 75);
+ setBurnValue(32000 + Plank_Jungle.ID, 75);
+ setBurnValue(32000 + Plank_Acacia.ID, 75);
+ setBurnValue(32000 + Plank_DarkOak.ID, 75);
+ setBurnValue(32000 + Plank_Larch.ID, 75);
+ setBurnValue(32000 + Plank_Teak.ID, 75);
+ setBurnValue(32000 + Plank_Acacia_Green.ID, 75);
+ setBurnValue(32000 + Plank_Lime.ID, 75);
+ setBurnValue(32000 + Plank_Chestnut.ID, 75);
+ setBurnValue(32000 + Plank_Wenge.ID, 75);
+ setBurnValue(32000 + Plank_Baobab.ID, 75);
+ setBurnValue(32000 + Plank_Sequoia.ID, 75);
+ setBurnValue(32000 + Plank_Kapok.ID, 75);
+ setBurnValue(32000 + Plank_Ebony.ID, 75);
+ setBurnValue(32000 + Plank_Mahagony.ID, 75);
+ setBurnValue(32000 + Plank_Balsa.ID, 75);
+ setBurnValue(32000 + Plank_Willow.ID, 75);
+ setBurnValue(32000 + Plank_Walnut.ID, 75);
+ setBurnValue(32000 + Plank_Greenheart.ID, 75);
+ setBurnValue(32000 + Plank_Cherry.ID, 75);
+ setBurnValue(32000 + Plank_Mahoe.ID, 75);
+ setBurnValue(32000 + Plank_Poplar.ID, 75);
+ setBurnValue(32000 + Plank_Palm.ID, 75);
+ setBurnValue(32000 + Plank_Papaya.ID, 75);
+ setBurnValue(32000 + Plank_Pine.ID, 75);
+ setBurnValue(32000 + Plank_Plum.ID, 75);
+ setBurnValue(32000 + Plank_Maple.ID, 75);
+ setBurnValue(32000 + Plank_Citrus.ID, 75);
+ setBurnValue(32000 + Crop_Drop_Tine.ID, 100);
+ setBurnValue(32000 + Crop_Drop_Mica.ID, 240);
+ }
+
+ public void initCraftingShapedRecipes() {
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Plank_Oak.get(2L),
+ GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE,
+ new Object[] { "s ", " P", 'P', new ItemStack(Blocks.wooden_slab, 1, 0) });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Plank_Spruce.get(2L),
+ GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE,
+ new Object[] { "s ", " P", 'P', new ItemStack(Blocks.wooden_slab, 1, 1) });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Plank_Birch.get(2L),
+ GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE,
+ new Object[] { "s ", " P", 'P', new ItemStack(Blocks.wooden_slab, 1, 2) });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Plank_Jungle.get(2L),
+ GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE,
+ new Object[] { "s ", " P", 'P', new ItemStack(Blocks.wooden_slab, 1, 3) });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Plank_Acacia.get(2L),
+ GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE,
+ new Object[] { "s ", " P", 'P', new ItemStack(Blocks.wooden_slab, 1, 4) });
+ GT_ModHandler.addCraftingRecipe(
+ ItemList.Plank_DarkOak.get(2L),
+ GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE,
+ new Object[] { "s ", " P", 'P', new ItemStack(Blocks.wooden_slab, 1, 5) });
+ }
+
+ public void initAssemblerRecipes() {
+ RA.stdBuilder()
+ .itemInputs(
+ ItemList.Cover_RedstoneTransmitterExternal.get(1L),
+ GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.EV, 1L),
+ GT_Utility.getIntegratedCircuit(1))
+ .itemOutputs(ItemList.Cover_AdvancedRedstoneTransmitterExternal.get(1L))
+ .duration(2 * MINUTES + 40 * SECONDS)
+ .eut(TierEU.RECIPE_MV)
+ .addTo(assemblerRecipes);
+ RA.stdBuilder()
+ .itemInputs(
+ ItemList.Cover_RedstoneReceiverExternal.get(1L),
+ GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.EV, 1L),
+ GT_Utility.getIntegratedCircuit(1))
+ .itemOutputs(ItemList.Cover_AdvancedRedstoneReceiverExternal.get(1L))
+ .duration(2 * MINUTES + 40 * SECONDS)
+ .eut(TierEU.RECIPE_MV)
+ .addTo(assemblerRecipes);
+ RA.stdBuilder()
+ .itemInputs(
+ ItemList.Cover_FluidDetector.get(1L),
+ ItemList.Emitter_EV.get(1L),
+ GT_Utility.getIntegratedCircuit(1))
+ .itemOutputs(ItemList.Cover_WirelessFluidDetector.get(1L))
+ .duration(2 * MINUTES + 40 * SECONDS)
+ .eut(TierEU.RECIPE_MV)
+ .addTo(assemblerRecipes);
+ RA.stdBuilder()
+ .itemInputs(
+ ItemList.Cover_ItemDetector.get(1L),
+ ItemList.Emitter_EV.get(1L),
+ GT_Utility.getIntegratedCircuit(1))
+ .itemOutputs(ItemList.Cover_WirelessItemDetector.get(1L))
+ .duration(2 * MINUTES + 40 * SECONDS)
+ .eut(TierEU.RECIPE_MV)
+ .addTo(assemblerRecipes);
+ RA.stdBuilder()
+ .itemInputs(
+ ItemList.Cover_NeedsMaintainance.get(1L),
+ ItemList.Emitter_EV.get(1L),
+ GT_Utility.getIntegratedCircuit(1))
+ .itemOutputs(ItemList.Cover_WirelessNeedsMaintainance.get(1L))
+ .duration(2 * MINUTES + 40 * SECONDS)
+ .eut(TierEU.RECIPE_MV)
+ .addTo(assemblerRecipes);
+ RA.stdBuilder()
+ .itemInputs(
+ ItemList.Cover_ActivityDetector.get(1L),
+ ItemList.Emitter_EV.get(1L),
+ GT_Utility.getIntegratedCircuit(1))
+ .itemOutputs(ItemList.Cover_WirelessActivityDetector.get(1L))
+ .duration(2 * MINUTES + 40 * SECONDS)
+ .eut(TierEU.RECIPE_MV)
+ .addTo(assemblerRecipes);
+ }
+
+ public void initCraftingShapelessRecipes() {
+ GT_ModHandler.addShapelessCraftingRecipe(
+ ItemList.Cover_AdvancedRedstoneReceiverExternal.get(1L),
+ new Object[] { ItemList.Cover_AdvancedRedstoneReceiverInternal.get(1L) });
+ GT_ModHandler.addShapelessCraftingRecipe(
+ ItemList.Cover_AdvancedRedstoneReceiverInternal.get(1L),
+ new Object[] { ItemList.Cover_AdvancedRedstoneReceiverExternal.get(1L) });
+ GT_ModHandler.addShapelessCraftingRecipe(
+ ItemList.Cover_AdvancedRedstoneTransmitterExternal.get(1L),
+ new Object[] { ItemList.Cover_AdvancedRedstoneTransmitterInternal.get(1L) });
+ GT_ModHandler.addShapelessCraftingRecipe(
+ ItemList.Cover_AdvancedRedstoneTransmitterInternal.get(1L),
+ new Object[] { ItemList.Cover_AdvancedRedstoneTransmitterExternal.get(1L) });
+ }
+
+ public void initExtractorRecipes() {
+ RA.stdBuilder()
+ .itemInputs(new ItemStack(Blocks.red_flower, 1, 0))
+ .itemOutputs(new ItemStack(Items.dye, 2, 1))
+ .duration(15 * SECONDS)
+ .eut(2)
+ .addTo(extractorRecipes);
+ RA.stdBuilder()
+ .itemInputs(new ItemStack(Blocks.red_flower, 1, 1))
+ .itemOutputs(new ItemStack(Items.dye, 2, 12))
+ .duration(15 * SECONDS)
+ .eut(2)
+ .addTo(extractorRecipes);
+ RA.stdBuilder()
+ .itemInputs(new ItemStack(Blocks.red_flower, 1, 2))
+ .itemOutputs(new ItemStack(Items.dye, 2, 13))
+ .duration(15 * SECONDS)
+ .eut(2)
+ .addTo(extractorRecipes);
+ RA.stdBuilder()
+ .itemInputs(new ItemStack(Blocks.red_flower, 1, 3))
+ .itemOutputs(new ItemStack(Items.dye, 2, 7))
+ .duration(15 * SECONDS)
+ .eut(2)
+ .addTo(extractorRecipes);
+ RA.stdBuilder()
+ .itemInputs(new ItemStack(Blocks.red_flower, 1, 4))
+ .itemOutputs(new ItemStack(Items.dye, 2, 1))
+ .duration(15 * SECONDS)
+ .eut(2)
+ .addTo(extractorRecipes);
+ RA.stdBuilder()
+ .itemInputs(new ItemStack(Blocks.red_flower, 1, 5))
+ .itemOutputs(new ItemStack(Items.dye, 2, 14))
+ .duration(15 * SECONDS)
+ .eut(2)
+ .addTo(extractorRecipes);
+ RA.stdBuilder()
+ .itemInputs(new ItemStack(Blocks.red_flower, 1, 6))
+ .itemOutputs(new ItemStack(Items.dye, 2, 7))
+ .duration(15 * SECONDS)
+ .eut(2)
+ .addTo(extractorRecipes);
+ RA.stdBuilder()
+ .itemInputs(new ItemStack(Blocks.red_flower, 1, 7))
+ .itemOutputs(new ItemStack(Items.dye, 2, 9))
+ .duration(15 * SECONDS)
+ .eut(2)
+ .addTo(extractorRecipes);
+ RA.stdBuilder()
+ .itemInputs(new ItemStack(Blocks.red_flower, 1, 8))
+ .itemOutputs(new ItemStack(Items.dye, 2, 7))
+ .duration(15 * SECONDS)
+ .eut(2)
+ .addTo(extractorRecipes);
+ RA.stdBuilder()
+ .itemInputs(new ItemStack(Blocks.yellow_flower, 1, 0))
+ .itemOutputs(new ItemStack(Items.dye, 2, 11))
+ .duration(15 * SECONDS)
+ .eut(2)
+ .addTo(extractorRecipes);
+ RA.stdBuilder()
+ .itemInputs(new ItemStack(Blocks.double_plant, 1, 0))
+ .itemOutputs(new ItemStack(Items.dye, 3, 11))
+ .duration(15 * SECONDS)
+ .eut(2)
+ .addTo(extractorRecipes);
+ RA.stdBuilder()
+ .itemInputs(new ItemStack(Blocks.double_plant, 1, 1))
+ .itemOutputs(new ItemStack(Items.dye, 3, 13))
+ .duration(15 * SECONDS)
+ .eut(2)
+ .addTo(extractorRecipes);
+ RA.stdBuilder()
+ .itemInputs(new ItemStack(Blocks.double_plant, 1, 4))
+ .itemOutputs(new ItemStack(Items.dye, 3, 1))
+ .duration(15 * SECONDS)
+ .eut(2)
+ .addTo(extractorRecipes);
+ RA.stdBuilder()
+ .itemInputs(new ItemStack(Blocks.double_plant, 1, 5))
+ .itemOutputs(new ItemStack(Items.dye, 3, 9))
+ .duration(15 * SECONDS)
+ .eut(2)
+ .addTo(extractorRecipes);
+ RA.stdBuilder()
+ .itemInputs(ItemList.Crop_Drop_Plumbilia.get(1L))
+ .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Lead, 1L))
+ .duration(15 * SECONDS)
+ .eut(2)
+ .addTo(extractorRecipes);
+ RA.stdBuilder()
+ .itemInputs(ItemList.Crop_Drop_Argentia.get(1L))
+ .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Silver, 1L))
+ .duration(15 * SECONDS)
+ .eut(2)
+ .addTo(extractorRecipes);
+ RA.stdBuilder()
+ .itemInputs(ItemList.Crop_Drop_Indigo.get(1L))
+ .itemOutputs(ItemList.Dye_Indigo.get(1L))
+ .duration(15 * SECONDS)
+ .eut(2)
+ .addTo(extractorRecipes);
+ RA.stdBuilder()
+ .itemInputs(ItemList.Crop_Drop_MilkWart.get(1L))
+ .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Milk, 1L))
+ .duration(15 * SECONDS)
+ .eut(2)
+ .addTo(extractorRecipes);
+ RA.stdBuilder()
+ .itemInputs(ItemList.Crop_Drop_Coppon.get(1L))
+ .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Copper, 1L))
+ .duration(15 * SECONDS)
+ .eut(2)
+ .addTo(extractorRecipes);
+ RA.stdBuilder()
+ .itemInputs(ItemList.Crop_Drop_Tine.get(1L))
+ .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Tin, 1L))
+ .duration(15 * SECONDS)
+ .eut(2)
+ .addTo(extractorRecipes);
+
+ }
+
+ public void initCompressorRecipes() {
+ RA.stdBuilder()
+ .itemInputs(ItemList.Crop_Drop_Coppon.get(4L))
+ .itemOutputs(new ItemStack(Blocks.wool, 1, 1))
+ .duration(15 * SECONDS)
+ .eut(2)
+ .addTo(compressorRecipes);
+
+ RA.stdBuilder()
+ .itemInputs(ItemList.Crop_Drop_Plumbilia.get(4L))
+ .itemOutputs(ItemList.IC2_PlantballCompressed.get(1L))
+ .duration(15 * SECONDS)
+ .eut(2)
+ .addTo(compressorRecipes);
+
+ RA.stdBuilder()
+ .itemInputs(ItemList.Crop_Drop_Argentia.get(4L))
+ .itemOutputs(ItemList.IC2_PlantballCompressed.get(1L))
+ .duration(15 * SECONDS)
+ .eut(2)
+ .addTo(compressorRecipes);
+
+ RA.stdBuilder()
+ .itemInputs(ItemList.Crop_Drop_Indigo.get(4L))
+ .itemOutputs(ItemList.IC2_PlantballCompressed.get(1L))
+ .duration(15 * SECONDS)
+ .eut(2)
+ .addTo(compressorRecipes);
+
+ RA.stdBuilder()
+ .itemInputs(ItemList.Crop_Drop_Ferru.get(4L))
+ .itemOutputs(ItemList.IC2_PlantballCompressed.get(1L))
+ .duration(15 * SECONDS)
+ .eut(2)
+ .addTo(compressorRecipes);
+
+ RA.stdBuilder()
+ .itemInputs(ItemList.Crop_Drop_Aurelia.get(4L))
+ .itemOutputs(ItemList.IC2_PlantballCompressed.get(1L))
+ .duration(15 * SECONDS)
+ .eut(2)
+ .addTo(compressorRecipes);
+
+ RA.stdBuilder()
+ .itemInputs(ItemList.Crop_Drop_OilBerry.get(4L))
+ .itemOutputs(ItemList.IC2_PlantballCompressed.get(1L))
+ .duration(15 * SECONDS)
+ .eut(2)
+ .addTo(compressorRecipes);
+
+ RA.stdBuilder()
+ .itemInputs(ItemList.Crop_Drop_BobsYerUncleRanks.get(4L))
+ .itemOutputs(ItemList.IC2_PlantballCompressed.get(1L))
+ .duration(15 * SECONDS)
+ .eut(2)
+ .addTo(compressorRecipes);
+
+ RA.stdBuilder()
+ .itemInputs(ItemList.Crop_Drop_Tine.get(4L))
+ .itemOutputs(ItemList.IC2_PlantballCompressed.get(1L))
+ .duration(15 * SECONDS)
+ .eut(2)
+ .addTo(compressorRecipes);
+
+ RA.stdBuilder()
+ .itemInputs(ItemList.Crop_Drop_Rape.get(4L))
+ .itemOutputs(ItemList.IC2_PlantballCompressed.get(1L))
+ .duration(15 * SECONDS)
+ .eut(2)
+ .addTo(compressorRecipes);
+
+ RA.stdBuilder()
+ .itemInputs(new ItemStack(Blocks.red_flower, 8, 32767))
+ .itemOutputs(ItemList.IC2_PlantballCompressed.get(1L))
+ .duration(15 * SECONDS)
+ .eut(2)
+ .addTo(compressorRecipes);
+
+ RA.stdBuilder()
+ .itemInputs(new ItemStack(Blocks.yellow_flower, 8, 32767))
+ .itemOutputs(ItemList.IC2_PlantballCompressed.get(1L))
+ .duration(15 * SECONDS)
+ .eut(2)
+ .addTo(compressorRecipes);
+ }
+
+ public void initMaceratorRecipes() {
+ RA.stdBuilder()
+ .itemInputs(ItemList.Food_Sliced_Cheese.get(1L))
+ .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Cheese, 1L))
+ .duration(20 * SECONDS)
+ .eut(2)
+ .addTo(maceratorRecipes);
+
+ RA.stdBuilder()
+ .itemInputs(ItemList.Dye_Cocoa.get(1L))
+ .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Cocoa, 1L))
+ .duration(20 * SECONDS)
+ .eut(2)
+ .addTo(maceratorRecipes);
+
+ RA.stdBuilder()
+ .itemInputs(ItemList.Crop_Drop_Tine.get(1L))
+ .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Wood, 2L))
+ .duration(20 * SECONDS)
+ .eut(2)
+ .addTo(maceratorRecipes);
+
+ RA.stdBuilder()
+ .itemInputs(new ItemStack(Blocks.pumpkin, 1, 0))
+ .itemOutputs(new ItemStack(Items.pumpkin_seeds, 4, 0))
+ .duration(20 * SECONDS)
+ .eut(2)
+ .addTo(maceratorRecipes);
+
+ RA.stdBuilder()
+ .itemInputs(new ItemStack(Items.melon, 1, 0))
+ .itemOutputs(new ItemStack(Items.melon_seeds, 1, 0))
+ .duration(20 * SECONDS)
+ .eut(2)
+ .addTo(maceratorRecipes);
+
+ RA.stdBuilder()
+ .itemInputs(GT_ModHandler.getIC2Item("crop", 1L))
+ .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 1L))
+ .duration(20 * SECONDS)
+ .eut(2)
+ .addTo(maceratorRecipes);
+
+ RA.stdBuilder()
+ .itemInputs(new ItemStack(Items.stick, 1))
+ .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Wood, 2L))
+ .duration(20 * SECONDS)
+ .eut(2)
+ .addTo(maceratorRecipes);
+
+ RA.stdBuilder()
+ .itemInputs(new ItemStack(Blocks.wool, 1, WILDCARD))
+ .itemOutputs(new ItemStack(Items.string, 2), new ItemStack(Items.string, 1))
+ .outputChances(10000, 5000)
+ .duration(20 * SECONDS)
+ .eut(2)
+ .addTo(maceratorRecipes);
+
+ RA.stdBuilder()
+ .itemInputs(ItemList.Tesseract.get(1))
+ .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, MaterialsUEVplus.TranscendentMetal, 8L))
+ .duration(5 * SECONDS)
+ .eut(TierEU.RECIPE_UIV)
+ .addTo(maceratorRecipes);
+ }
+
+ public void registerCovers() {
+ GregTech_API.registerCover(ItemList.Plank_Oak.get(1L), TextureFactory.of(Blocks.planks, 0), null);
+ GregTech_API.registerCover(ItemList.Plank_Spruce.get(1L), TextureFactory.of(Blocks.planks, 1), null);
+ GregTech_API.registerCover(ItemList.Plank_Birch.get(1L), TextureFactory.of(Blocks.planks, 2), null);
+ GregTech_API.registerCover(ItemList.Plank_Jungle.get(1L), TextureFactory.of(Blocks.planks, 3), null);
+ GregTech_API.registerCover(ItemList.Plank_Acacia.get(1L), TextureFactory.of(Blocks.planks, 4), null);
+ GregTech_API.registerCover(ItemList.Plank_DarkOak.get(1L), TextureFactory.of(Blocks.planks, 5), null);
+ GregTech_API.registerCover(
+ ItemList.Plank_Larch.get(1L),
+ TextureFactory.of(
+ GT_Utility.getBlockFromStack(
+ GT_ModHandler.getModItem(Forestry.ID, "planks", 1L, 0, new ItemStack(Blocks.planks, 1, 0))),
+ 0),
+ null);
+ GregTech_API.registerCover(
+ ItemList.Plank_Teak.get(1L),
+ TextureFactory.of(
+ GT_Utility.getBlockFromStack(
+ GT_ModHandler.getModItem(Forestry.ID, "planks", 1L, 1, new ItemStack(Blocks.planks, 1, 0))),
+ 1),
+ null);
+ GregTech_API.registerCover(
+ ItemList.Plank_Acacia_Green.get(1L),
+ TextureFactory.of(
+ GT_Utility.getBlockFromStack(
+ GT_ModHandler.getModItem(Forestry.ID, "planks", 1L, 2, new ItemStack(Blocks.planks, 1, 0))),
+ 2),
+ null);
+ GregTech_API.registerCover(
+ ItemList.Plank_Lime.get(1L),
+ TextureFactory.of(
+ GT_Utility.getBlockFromStack(
+ GT_ModHandler.getModItem(Forestry.ID, "planks", 1L, 3, new ItemStack(Blocks.planks, 1, 0))),
+ 3),
+ null);
+ GregTech_API.registerCover(
+ ItemList.Plank_Chestnut.get(1L),
+ TextureFactory.of(
+ GT_Utility.getBlockFromStack(
+ GT_ModHandler.getModItem(Forestry.ID, "planks", 1L, 4, new ItemStack(Blocks.planks, 1, 0))),
+ 4),
+ null);
+ GregTech_API.registerCover(
+ ItemList.Plank_Wenge.get(1L),
+ TextureFactory.of(
+ GT_Utility.getBlockFromStack(
+ GT_ModHandler.getModItem(Forestry.ID, "planks", 1L, 5, new ItemStack(Blocks.planks, 1, 0))),
+ 5),
+ null);
+ GregTech_API.registerCover(
+ ItemList.Plank_Baobab.get(1L),
+ TextureFactory.of(
+ GT_Utility.getBlockFromStack(
+ GT_ModHandler.getModItem(Forestry.ID, "planks", 1L, 6, new ItemStack(Blocks.planks, 1, 0))),
+ 6),
+ null);
+ GregTech_API.registerCover(
+ ItemList.Plank_Sequoia.get(1L),
+ TextureFactory.of(
+ GT_Utility.getBlockFromStack(
+ GT_ModHandler.getModItem(Forestry.ID, "planks", 1L, 7, new ItemStack(Blocks.planks, 1, 0))),
+ 7),
+ null);
+ GregTech_API.registerCover(
+ ItemList.Plank_Kapok.get(1L),
+ TextureFactory.of(
+ GT_Utility.getBlockFromStack(
+ GT_ModHandler.getModItem(Forestry.ID, "planks", 1L, 8, new ItemStack(Blocks.planks, 1, 0))),
+ 8),
+ null);
+ GregTech_API.registerCover(
+ ItemList.Plank_Ebony.get(1L),
+ TextureFactory.of(
+ GT_Utility.getBlockFromStack(
+ GT_ModHandler.getModItem(Forestry.ID, "planks", 1L, 9, new ItemStack(Blocks.planks, 1, 0))),
+ 9),
+ null);
+ GregTech_API.registerCover(
+ ItemList.Plank_Mahagony.get(1L),
+ TextureFactory.of(
+ GT_Utility.getBlockFromStack(
+ GT_ModHandler.getModItem(Forestry.ID, "planks", 1L, 10, new ItemStack(Blocks.planks, 1, 0))),
+ 10),
+ null);
+ GregTech_API.registerCover(
+ ItemList.Plank_Balsa.get(1L),
+ TextureFactory.of(
+ GT_Utility.getBlockFromStack(
+ GT_ModHandler.getModItem(Forestry.ID, "planks", 1L, 11, new ItemStack(Blocks.planks, 1, 0))),
+ 11),
+ null);
+ GregTech_API.registerCover(
+ ItemList.Plank_Willow.get(1L),
+ TextureFactory.of(
+ GT_Utility.getBlockFromStack(
+ GT_ModHandler.getModItem(Forestry.ID, "planks", 1L, 12, new ItemStack(Blocks.planks, 1, 0))),
+ 12),
+ null);
+ GregTech_API.registerCover(
+ ItemList.Plank_Walnut.get(1L),
+ TextureFactory.of(
+ GT_Utility.getBlockFromStack(
+ GT_ModHandler.getModItem(Forestry.ID, "planks", 1L, 13, new ItemStack(Blocks.planks, 1, 0))),
+ 13),
+ null);
+ GregTech_API.registerCover(
+ ItemList.Plank_Greenheart.get(1L),
+ TextureFactory.of(
+ GT_Utility.getBlockFromStack(
+ GT_ModHandler.getModItem(Forestry.ID, "planks", 1L, 14, new ItemStack(Blocks.planks, 1, 0))),
+ 14),
+ null);
+ GregTech_API.registerCover(
+ ItemList.Plank_Cherry.get(1L),
+ TextureFactory.of(
+ GT_Utility.getBlockFromStack(
+ GT_ModHandler.getModItem(Forestry.ID, "planks", 1L, 15, new ItemStack(Blocks.planks, 1, 0))),
+ 15),
+ null);
+ GregTech_API.registerCover(
+ ItemList.Plank_Mahoe.get(1L),
+ TextureFactory.of(
+ GT_Utility.getBlockFromStack(
+ GT_ModHandler.getModItem(Forestry.ID, "planks", 1L, 16, new ItemStack(Blocks.planks, 1, 0))),
+ 0),
+ null);
+ GregTech_API.registerCover(
+ ItemList.Plank_Poplar.get(1L),
+ TextureFactory.of(
+ GT_Utility.getBlockFromStack(
+ GT_ModHandler.getModItem(Forestry.ID, "planks", 1L, 17, new ItemStack(Blocks.planks, 1, 0))),
+ 1),
+ null);
+ GregTech_API.registerCover(
+ ItemList.Plank_Palm.get(1L),
+ TextureFactory.of(
+ GT_Utility.getBlockFromStack(
+ GT_ModHandler.getModItem(Forestry.ID, "planks", 1L, 18, new ItemStack(Blocks.planks, 1, 0))),
+ 2),
+ null);
+ GregTech_API.registerCover(
+ ItemList.Plank_Papaya.get(1L),
+ TextureFactory.of(
+ GT_Utility.getBlockFromStack(
+ GT_ModHandler.getModItem(Forestry.ID, "planks", 1L, 19, new ItemStack(Blocks.planks, 1, 0))),
+ 3),
+ null);
+ GregTech_API.registerCover(
+ ItemList.Plank_Pine.get(1L),
+ TextureFactory.of(
+ GT_Utility.getBlockFromStack(
+ GT_ModHandler.getModItem(Forestry.ID, "planks", 1L, 20, new ItemStack(Blocks.planks, 1, 0))),
+ 4),
+ null);
+ GregTech_API.registerCover(
+ ItemList.Plank_Plum.get(1L),
+ TextureFactory.of(
+ GT_Utility.getBlockFromStack(
+ GT_ModHandler.getModItem(Forestry.ID, "planks", 1L, 21, new ItemStack(Blocks.planks, 1, 0))),
+ 5),
+ null);
+ GregTech_API.registerCover(
+ ItemList.Plank_Maple.get(1L),
+ TextureFactory.of(
+ GT_Utility.getBlockFromStack(
+ GT_ModHandler.getModItem(Forestry.ID, "planks", 1L, 22, new ItemStack(Blocks.planks, 1, 0))),
+ 6),
+ null);
+ GregTech_API.registerCover(
+ ItemList.Plank_Citrus.get(1L),
+ TextureFactory.of(
+ GT_Utility.getBlockFromStack(
+ GT_ModHandler.getModItem(Forestry.ID, "planks", 1L, 23, new ItemStack(Blocks.planks, 1, 0))),
+ 7),
+ null);
+
+ GregTech_API.registerCover(
+ ItemList.Cover_AdvancedRedstoneTransmitterExternal.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[2][0], TextureFactory.of(OVERLAY_ADVANCED_REDSTONE_TRANSMITTER)),
+ new GT_Cover_AdvancedRedstoneTransmitterExternal(TextureFactory.of(OVERLAY_ADVANCED_REDSTONE_TRANSMITTER)));
+
+ GregTech_API.registerCover(
+ ItemList.Cover_AdvancedRedstoneTransmitterInternal.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[2][0], TextureFactory.of(OVERLAY_ADVANCED_REDSTONE_TRANSMITTER)),
+ new GT_Cover_AdvancedRedstoneTransmitterInternal(TextureFactory.of(OVERLAY_ADVANCED_REDSTONE_TRANSMITTER)));
+
+ GregTech_API.registerCover(
+ ItemList.Cover_AdvancedRedstoneReceiverExternal.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[2][0], TextureFactory.of(OVERLAY_ADVANCED_REDSTONE_RECEIVER)),
+ new GT_Cover_AdvancedRedstoneReceiverExternal(TextureFactory.of(OVERLAY_ADVANCED_REDSTONE_RECEIVER)));
+
+ GregTech_API.registerCover(
+ ItemList.Cover_AdvancedRedstoneReceiverInternal.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[2][0], TextureFactory.of(OVERLAY_ADVANCED_REDSTONE_RECEIVER)),
+ new GT_Cover_AdvancedRedstoneReceiverInternal(TextureFactory.of(OVERLAY_ADVANCED_REDSTONE_RECEIVER)));
+
+ GregTech_API.registerCover(
+ ItemList.Cover_WirelessFluidDetector.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[2][0], TextureFactory.of(OVERLAY_WIRELESS_FLUID_DETECTOR)),
+ new GT_Cover_WirelessFluidDetector(TextureFactory.of(OVERLAY_WIRELESS_FLUID_DETECTOR)));
+
+ GregTech_API.registerCover(
+ ItemList.Cover_WirelessItemDetector.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[2][0], TextureFactory.of(OVERLAY_WIRELESS_ITEM_DETECTOR)),
+ new GT_Cover_WirelessItemDetector(TextureFactory.of(OVERLAY_WIRELESS_ITEM_DETECTOR)));
+
+ GregTech_API.registerCover(
+ ItemList.Cover_WirelessActivityDetector.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[2][0], TextureFactory.of(OVERLAY_WIRELESS_ACTIVITYDETECTOR)),
+ new GT_Cover_WirelessDoesWorkDetector(TextureFactory.of(OVERLAY_WIRELESS_ACTIVITYDETECTOR)));
+
+ GregTech_API.registerCover(
+ ItemList.Cover_WirelessNeedsMaintainance.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[2][0], TextureFactory.of(OVERLAY_WIRELESS_MAINTENANCE_DETECTOR)),
+ new GT_Cover_WirelessMaintenanceDetector(TextureFactory.of(OVERLAY_WIRELESS_MAINTENANCE_DETECTOR)));
+ }
+
+ @Override
+ public boolean doesShowInCreative(OrePrefixes aPrefix, Materials aMaterial, boolean aDoShowAllItems) {
+ return (aDoShowAllItems) || (!aPrefix.name()
+ .startsWith("toolHead"));
+ }
+
+ @Override
+ public final ItemStack getContainerItem(ItemStack aStack) {
+ int aDamage = aStack.getItemDamage();
+ if (aDamage < 32000) {
+ return null;
+ }
+ if (aDamage < 32100) {
+ return ItemList.ThermosCan_Empty.get(1L);
+ }
+ if (aDamage < 32200) {
+ return ItemList.Bottle_Empty.get(1L);
+ }
+ return null;
+ }
+}
diff --git a/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_03.java b/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_03.java
new file mode 100644
index 0000000000..a5301179c2
--- /dev/null
+++ b/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_03.java
@@ -0,0 +1,1482 @@
+package gregtech.common.items;
+
+import static com.gtnewhorizon.gtnhlib.util.AnimatedTooltipHandler.addItemTooltip;
+import static gregtech.api.enums.Textures.BlockIcons.MACHINE_CASINGS;
+import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_METRICS_TRANSMITTER;
+import static gregtech.api.enums.Textures.BlockIcons.SOLARPANEL_UEV;
+import static gregtech.api.enums.Textures.BlockIcons.SOLARPANEL_UHV;
+import static gregtech.api.enums.Textures.BlockIcons.SOLARPANEL_UIV;
+import static gregtech.client.GT_TooltipHandler.Tier.EV;
+import static gregtech.client.GT_TooltipHandler.Tier.HV;
+import static gregtech.client.GT_TooltipHandler.Tier.IV;
+import static gregtech.client.GT_TooltipHandler.Tier.LV;
+import static gregtech.client.GT_TooltipHandler.Tier.LuV;
+import static gregtech.client.GT_TooltipHandler.Tier.MAX;
+import static gregtech.client.GT_TooltipHandler.Tier.MV;
+import static gregtech.client.GT_TooltipHandler.Tier.UEV;
+import static gregtech.client.GT_TooltipHandler.Tier.UHV;
+import static gregtech.client.GT_TooltipHandler.Tier.UIV;
+import static gregtech.client.GT_TooltipHandler.Tier.ULV;
+import static gregtech.client.GT_TooltipHandler.Tier.UMV;
+import static gregtech.client.GT_TooltipHandler.Tier.UV;
+import static gregtech.client.GT_TooltipHandler.Tier.UXV;
+import static gregtech.client.GT_TooltipHandler.Tier.ZPM;
+import static gregtech.client.GT_TooltipHandler.registerTieredTooltip;
+import static gregtech.common.items.ID_MetaItem_03.Activated_Carbon_Filter_Mesh;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Biomainframe;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Bioprocessor;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Biowarecomputer;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Biowaresupercomputer;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Board_Bio;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Board_Bio_Ultra;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Board_Coated_Basic;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Board_Epoxy_Advanced;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Board_Fiberglass_Advanced;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Board_Multifiberglass_Elite;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Board_Optical;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Board_Phenolic_Good;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Board_Plastic;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Board_Plastic_Advanced;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Board_Wetware;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Board_Wetware_Extreme;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Chip_BioCPU;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Chip_Biocell;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Chip_CPU;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Chip_CrystalCPU;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Chip_CrystalSoC;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Chip_CrystalSoC2;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Chip_HPIC;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Chip_ILC;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Chip_LPIC;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Chip_NAND;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Chip_NOR;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Chip_NPIC;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Chip_NanoCPU;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Chip_NeuroCPU;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Chip_Optical;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Chip_PIC;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Chip_PPIC;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Chip_QPIC;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Chip_QuantumCPU;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Chip_Ram;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Chip_Simple_SoC;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Chip_SoC;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Chip_SoC2;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Chip_Stemcell;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Chip_UHPIC;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Chip_ULPIC;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_CosmicAssembly;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_CosmicComputer;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_CosmicMainframe;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_CosmicProcessor;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Crystalcomputer;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Crystalmainframe;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Crystalprocessor;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Elitenanocomputer;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_ExoticAssembly;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_ExoticComputer;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_ExoticMainframe;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_ExoticProcessor;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Integrated_Good;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Masterquantumcomputer;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Microprocessor;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Nanocomputer;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Nanoprocessor;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Neuroprocessor;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_OpticalAssembly;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_OpticalComputer;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_OpticalMainframe;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_OpticalProcessor;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Parts_CapacitorASMD;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Parts_CapacitorSMD;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Parts_CapacitorXSMD;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Parts_Chip_Bioware;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Parts_Coil;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Parts_DiodeASMD;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Parts_DiodeSMD;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Parts_DiodeXSMD;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Parts_GlassFiber;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Parts_Glass_Tube;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Parts_InductorASMD;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Parts_InductorSMD;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Parts_InductorXSMD;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Parts_PetriDish;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Parts_RawCrystalChip;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Parts_RawCrystalParts;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Parts_Reinforced_Glass_Tube;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Parts_ResistorASMD;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Parts_ResistorSMD;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Parts_ResistorXSMD;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Parts_TransistorASMD;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Parts_TransistorSMD;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Parts_TransistorXSMD;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Processor;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Quantumcomputer;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Quantummainframe;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Quantumprocessor;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Silicon_Ingot;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Silicon_Ingot2;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Silicon_Ingot3;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Silicon_Ingot4;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Silicon_Ingot5;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Silicon_Ingot6;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Silicon_Wafer;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Silicon_Wafer2;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Silicon_Wafer3;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Silicon_Wafer4;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Silicon_Wafer5;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Silicon_Wafer6;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Silicon_Wafer7;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_TranscendentAssembly;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_TranscendentComputer;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_TranscendentMainframe;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_TranscendentProcessor;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Ultimatecrystalcomputer;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Wafer_Bioware;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Wafer_CPU;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Wafer_HPIC;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Wafer_ILC;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Wafer_LPIC;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Wafer_NAND;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Wafer_NOR;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Wafer_NPIC;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Wafer_NanoCPU;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Wafer_PIC;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Wafer_PPIC;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Wafer_QPIC;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Wafer_QuantumCPU;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Wafer_Ram;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Wafer_Simple_SoC;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Wafer_SoC;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Wafer_SoC2;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Wafer_UHPIC;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Wafer_ULPIC;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Wetwarecomputer;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Wetwaremainframe;
+import static gregtech.common.items.ID_MetaItem_03.Circuit_Wetwaresupercomputer;
+import static gregtech.common.items.ID_MetaItem_03.Cover_Metrics_Transmitter;
+import static gregtech.common.items.ID_MetaItem_03.Cover_SolarPanel_UEV;
+import static gregtech.common.items.ID_MetaItem_03.Cover_SolarPanel_UHV;
+import static gregtech.common.items.ID_MetaItem_03.Cover_SolarPanel_UIV;
+import static gregtech.common.items.ID_MetaItem_03.EV_Coil;
+import static gregtech.common.items.ID_MetaItem_03.GalliumArsenideCrystal;
+import static gregtech.common.items.ID_MetaItem_03.GalliumArsenideCrystalSmallPart;
+import static gregtech.common.items.ID_MetaItem_03.HV_Coil;
+import static gregtech.common.items.ID_MetaItem_03.IV_Coil;
+import static gregtech.common.items.ID_MetaItem_03.IndustrialApiary_Upgrade_AUTOMATION;
+import static gregtech.common.items.ID_MetaItem_03.IndustrialApiary_Upgrade_Acceleration_1;
+import static gregtech.common.items.ID_MetaItem_03.IndustrialApiary_Upgrade_Acceleration_2;
+import static gregtech.common.items.ID_MetaItem_03.IndustrialApiary_Upgrade_Acceleration_3;
+import static gregtech.common.items.ID_MetaItem_03.IndustrialApiary_Upgrade_Acceleration_4;
+import static gregtech.common.items.ID_MetaItem_03.IndustrialApiary_Upgrade_Acceleration_5;
+import static gregtech.common.items.ID_MetaItem_03.IndustrialApiary_Upgrade_Acceleration_6;
+import static gregtech.common.items.ID_MetaItem_03.IndustrialApiary_Upgrade_Acceleration_7;
+import static gregtech.common.items.ID_MetaItem_03.IndustrialApiary_Upgrade_Acceleration_8;
+import static gregtech.common.items.ID_MetaItem_03.IndustrialApiary_Upgrade_Acceleration_8_Upgraded;
+import static gregtech.common.items.ID_MetaItem_03.IndustrialApiary_Upgrade_COOLER;
+import static gregtech.common.items.ID_MetaItem_03.IndustrialApiary_Upgrade_DESERT;
+import static gregtech.common.items.ID_MetaItem_03.IndustrialApiary_Upgrade_DRYER;
+import static gregtech.common.items.ID_MetaItem_03.IndustrialApiary_Upgrade_FLOWERING;
+import static gregtech.common.items.ID_MetaItem_03.IndustrialApiary_Upgrade_Frame;
+import static gregtech.common.items.ID_MetaItem_03.IndustrialApiary_Upgrade_HEATER;
+import static gregtech.common.items.ID_MetaItem_03.IndustrialApiary_Upgrade_HELL;
+import static gregtech.common.items.ID_MetaItem_03.IndustrialApiary_Upgrade_HUMIDIFIER;
+import static gregtech.common.items.ID_MetaItem_03.IndustrialApiary_Upgrade_JUNGLE;
+import static gregtech.common.items.ID_MetaItem_03.IndustrialApiary_Upgrade_LIFESPAN;
+import static gregtech.common.items.ID_MetaItem_03.IndustrialApiary_Upgrade_LIGHT;
+import static gregtech.common.items.ID_MetaItem_03.IndustrialApiary_Upgrade_OCEAN;
+import static gregtech.common.items.ID_MetaItem_03.IndustrialApiary_Upgrade_PLAINS;
+import static gregtech.common.items.ID_MetaItem_03.IndustrialApiary_Upgrade_POLLEN;
+import static gregtech.common.items.ID_MetaItem_03.IndustrialApiary_Upgrade_PRODUCTION;
+import static gregtech.common.items.ID_MetaItem_03.IndustrialApiary_Upgrade_SEAL;
+import static gregtech.common.items.ID_MetaItem_03.IndustrialApiary_Upgrade_SIEVE;
+import static gregtech.common.items.ID_MetaItem_03.IndustrialApiary_Upgrade_SKY;
+import static gregtech.common.items.ID_MetaItem_03.IndustrialApiary_Upgrade_STABILIZER;
+import static gregtech.common.items.ID_MetaItem_03.IndustrialApiary_Upgrade_TERRITORY;
+import static gregtech.common.items.ID_MetaItem_03.IndustrialApiary_Upgrade_UNLIGHT;
+import static gregtech.common.items.ID_MetaItem_03.IndustrialApiary_Upgrade_WINTER;
+import static gregtech.common.items.ID_MetaItem_03.KevlarFiber;
+import static gregtech.common.items.ID_MetaItem_03.LV_Coil;
+import static gregtech.common.items.ID_MetaItem_03.LuV_Coil;
+import static gregtech.common.items.ID_MetaItem_03.MV_Coil;
+import static gregtech.common.items.ID_MetaItem_03.NandChip;
+import static gregtech.common.items.ID_MetaItem_03.NuclearStar;
+import static gregtech.common.items.ID_MetaItem_03.Optical_Cpu_Containment_Housing;
+import static gregtech.common.items.ID_MetaItem_03.Optically_Compatible_Memory;
+import static gregtech.common.items.ID_MetaItem_03.Optically_Perfected_CPU;
+import static gregtech.common.items.ID_MetaItem_03.Quark_Catalyst_Housing;
+import static gregtech.common.items.ID_MetaItem_03.Quark_Creation_Catalyst_Bottom;
+import static gregtech.common.items.ID_MetaItem_03.Quark_Creation_Catalyst_Charm;
+import static gregtech.common.items.ID_MetaItem_03.Quark_Creation_Catalyst_Down;
+import static gregtech.common.items.ID_MetaItem_03.Quark_Creation_Catalyst_Strange;
+import static gregtech.common.items.ID_MetaItem_03.Quark_Creation_Catalyst_Top;
+import static gregtech.common.items.ID_MetaItem_03.Quark_Creation_Catalyst_Unaligned;
+import static gregtech.common.items.ID_MetaItem_03.Quark_Creation_Catalyst_Up;
+import static gregtech.common.items.ID_MetaItem_03.Spinneret;
+import static gregtech.common.items.ID_MetaItem_03.Timepiece;
+import static gregtech.common.items.ID_MetaItem_03.Transdimensional_Alignment_Matrix;
+import static gregtech.common.items.ID_MetaItem_03.Tube_Wires;
+import static gregtech.common.items.ID_MetaItem_03.UHV_Coil;
+import static gregtech.common.items.ID_MetaItem_03.ULV_Coil;
+import static gregtech.common.items.ID_MetaItem_03.UV_Coil;
+import static gregtech.common.items.ID_MetaItem_03.White_Dwarf_Shape_Extruder_Axe;
+import static gregtech.common.items.ID_MetaItem_03.White_Dwarf_Shape_Extruder_Block;
+import static gregtech.common.items.ID_MetaItem_03.White_Dwarf_Shape_Extruder_Bolt;
+import static gregtech.common.items.ID_MetaItem_03.White_Dwarf_Shape_Extruder_Bottle;
+import static gregtech.common.items.ID_MetaItem_03.White_Dwarf_Shape_Extruder_Casing;
+import static gregtech.common.items.ID_MetaItem_03.White_Dwarf_Shape_Extruder_Cell;
+import static gregtech.common.items.ID_MetaItem_03.White_Dwarf_Shape_Extruder_File;
+import static gregtech.common.items.ID_MetaItem_03.White_Dwarf_Shape_Extruder_Gear;
+import static gregtech.common.items.ID_MetaItem_03.White_Dwarf_Shape_Extruder_Hammer;
+import static gregtech.common.items.ID_MetaItem_03.White_Dwarf_Shape_Extruder_Hoe;
+import static gregtech.common.items.ID_MetaItem_03.White_Dwarf_Shape_Extruder_Ingot;
+import static gregtech.common.items.ID_MetaItem_03.White_Dwarf_Shape_Extruder_Pickaxe;
+import static gregtech.common.items.ID_MetaItem_03.White_Dwarf_Shape_Extruder_Pipe_Huge;
+import static gregtech.common.items.ID_MetaItem_03.White_Dwarf_Shape_Extruder_Pipe_Large;
+import static gregtech.common.items.ID_MetaItem_03.White_Dwarf_Shape_Extruder_Pipe_Medium;
+import static gregtech.common.items.ID_MetaItem_03.White_Dwarf_Shape_Extruder_Pipe_Small;
+import static gregtech.common.items.ID_MetaItem_03.White_Dwarf_Shape_Extruder_Pipe_Tiny;
+import static gregtech.common.items.ID_MetaItem_03.White_Dwarf_Shape_Extruder_Plate;
+import static gregtech.common.items.ID_MetaItem_03.White_Dwarf_Shape_Extruder_Ring;
+import static gregtech.common.items.ID_MetaItem_03.White_Dwarf_Shape_Extruder_Rod;
+import static gregtech.common.items.ID_MetaItem_03.White_Dwarf_Shape_Extruder_Rotor;
+import static gregtech.common.items.ID_MetaItem_03.White_Dwarf_Shape_Extruder_Saw;
+import static gregtech.common.items.ID_MetaItem_03.White_Dwarf_Shape_Extruder_Shovel;
+import static gregtech.common.items.ID_MetaItem_03.White_Dwarf_Shape_Extruder_Small_Gear;
+import static gregtech.common.items.ID_MetaItem_03.White_Dwarf_Shape_Extruder_Sword;
+import static gregtech.common.items.ID_MetaItem_03.White_Dwarf_Shape_Extruder_ToolHeadDrill;
+import static gregtech.common.items.ID_MetaItem_03.White_Dwarf_Shape_Extruder_Turbine_Blade;
+import static gregtech.common.items.ID_MetaItem_03.White_Dwarf_Shape_Extruder_Wire;
+import static gregtech.common.items.ID_MetaItem_03.WovenKevlar;
+import static gregtech.common.items.ID_MetaItem_03.ZPM_Coil;
+
+import gregtech.api.GregTech_API;
+import gregtech.api.enums.GT_Values;
+import gregtech.api.enums.ItemList;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.OrePrefixes;
+import gregtech.api.enums.SubTag;
+import gregtech.api.enums.TC_Aspects;
+import gregtech.api.items.GT_MetaGenerated_Item_X32;
+import gregtech.api.render.TextureFactory;
+import gregtech.api.util.GT_OreDictUnificator;
+import gregtech.common.covers.GT_Cover_Metrics_Transmitter;
+import gregtech.common.covers.GT_Cover_SolarPanel;
+
+public class GT_MetaGenerated_Item_03 extends GT_MetaGenerated_Item_X32 {
+
+ public static GT_MetaGenerated_Item_03 INSTANCE;
+
+ public GT_MetaGenerated_Item_03() {
+ super(
+ "metaitem.03",
+ OrePrefixes.___placeholder___,
+ OrePrefixes.___placeholder___,
+ OrePrefixes.___placeholder___,
+ OrePrefixes.___placeholder___,
+ OrePrefixes.nanite,
+ OrePrefixes.rawOre);
+ INSTANCE = this;
+ Object[] o = new Object[0];
+
+ /*
+ * circuit boards tier 1-7: coated circuit board / wood plate + resin Plastic Circuit Board / Plastic + Copper
+ * Foil + Sulfuric Acid phenolic circuit board /carton+glue+chemical bath epoxy circuit board /epoxy plate +
+ * copper foil + sulfuric acid fiberglass circuit board (simple + multilayer) / glass + plastic + electrum foil
+ * + sulfuric acid wetware lifesupport board / fiberglass CB + teflon +
+ */
+ ItemList.Circuit_Board_Wetware.set(
+ addItem(Circuit_Board_Wetware.ID, "Wetware Lifesupport Circuit Board", "The Board that keeps life", o));
+ ItemList.Circuit_Board_Plastic
+ .set(addItem(Circuit_Board_Plastic.ID, "Plastic Circuit Board", "A Good Board", o));
+ ItemList.Circuit_Board_Bio
+ .set(addItem(Circuit_Board_Bio.ID, "Bio Circuit Board", "Bio genetic mutated Board", o));
+
+ /*
+ * electronic components: vacuum tube (glass tube + red alloy cables) basic electronic circuits normal+smd coils
+ * diodes normal+smd transistors normal+smd capacitors normal+smd Glass Fibers
+ */
+ ItemList.Circuit_Parts_ResistorSMD.set(
+ addItem(
+ Circuit_Parts_ResistorSMD.ID,
+ "SMD Resistor",
+ "Electronic Component",
+ OrePrefixes.componentCircuit.get(Materials.Resistor),
+ SubTag.NO_UNIFICATION));
+ ItemList.Circuit_Parts_Glass_Tube.set(addItem(Circuit_Parts_Glass_Tube.ID, "Glass Tube", "", o));
+ ItemList.Circuit_Parts_Coil.set(addItem(Circuit_Parts_Coil.ID, "Small Coil", "Basic Electronic Component", o));
+ ItemList.Circuit_Parts_DiodeSMD.set(
+ addItem(
+ Circuit_Parts_DiodeSMD.ID,
+ "SMD Diode",
+ "Electronic Component",
+ OrePrefixes.componentCircuit.get(Materials.Diode),
+ SubTag.NO_UNIFICATION));
+ ItemList.Circuit_Parts_TransistorSMD.set(
+ addItem(
+ Circuit_Parts_TransistorSMD.ID,
+ "SMD Transistor",
+ "Electronic Component",
+ OrePrefixes.componentCircuit.get(Materials.Transistor),
+ SubTag.NO_UNIFICATION));
+ ItemList.Circuit_Parts_CapacitorSMD.set(
+ addItem(
+ Circuit_Parts_CapacitorSMD.ID,
+ "SMD Capacitor",
+ "Electronic Component",
+ OrePrefixes.componentCircuit.get(Materials.Capacitor),
+ SubTag.NO_UNIFICATION));
+ ItemList.Circuit_Parts_GlassFiber
+ .set(addItem(Circuit_Parts_GlassFiber.ID, "Glass Fiber", Materials.BorosilicateGlass.mChemicalFormula, o));
+ ItemList.Circuit_Parts_PetriDish
+ .set(addItem(Circuit_Parts_PetriDish.ID, "Petri Dish", "For cultivating cells", o));
+ ItemList.Circuit_Parts_Reinforced_Glass_Tube
+ .set(addItem(Circuit_Parts_Reinforced_Glass_Tube.ID, "Reinforced Glass Tube", "", o));
+
+ ItemList.Circuit_Parts_ResistorASMD
+ .set(addItem(Circuit_Parts_ResistorASMD.ID, "Advanced SMD Resistor", "Advanced Electronic Component", o));
+ ItemList.Circuit_Parts_DiodeASMD
+ .set(addItem(Circuit_Parts_DiodeASMD.ID, "Advanced SMD Diode", "Advanced Electronic Component", o));
+ ItemList.Circuit_Parts_TransistorASMD.set(
+ addItem(Circuit_Parts_TransistorASMD.ID, "Advanced SMD Transistor", "Advanced Electronic Component", o));
+ ItemList.Circuit_Parts_CapacitorASMD
+ .set(addItem(Circuit_Parts_CapacitorASMD.ID, "Advanced SMD Capacitor", "Advanced Electronic Component", o));
+
+ ItemList.Circuit_Parts_ResistorXSMD.set(
+ addItem(Circuit_Parts_ResistorXSMD.ID, "Optical SMD Resistor", "Highly Advanced Electronic Component", o));
+ ItemList.Circuit_Parts_DiodeXSMD
+ .set(addItem(Circuit_Parts_DiodeXSMD.ID, "Optical SMD Diode", "Highly Advanced Electronic Component", o));
+ ItemList.Circuit_Parts_TransistorXSMD.set(
+ addItem(
+ Circuit_Parts_TransistorXSMD.ID,
+ "Optical SMD Transistor",
+ "Highly Advanced Electronic Component",
+ o));
+ ItemList.Circuit_Parts_CapacitorXSMD.set(
+ addItem(
+ Circuit_Parts_CapacitorXSMD.ID,
+ "Optical SMD Capacitor",
+ "Highly Advanced Electronic Component",
+ o));
+
+ ItemList.Circuit_Parts_InductorSMD.set(
+ addItem(
+ Circuit_Parts_InductorSMD.ID,
+ "SMD Inductor",
+ "Electronic Component",
+ OrePrefixes.componentCircuit.get(Materials.Inductor),
+ SubTag.NO_UNIFICATION));
+ ItemList.Circuit_Parts_InductorASMD
+ .set(addItem(Circuit_Parts_InductorASMD.ID, "Advanced SMD Inductor", "Advanced Electronic Component", o));
+ ItemList.Circuit_Parts_InductorXSMD.set(
+ addItem(Circuit_Parts_InductorXSMD.ID, "Optical SMD Inductor", "Highly Advanced Electronic Component", o));
+
+ /*
+ * ICs Lenses made from perfect crystals first instead of plates Monocrystalline silicon ingot
+ * (normal+glowstone+naquadah) EBF, normal silicon no EBF need anymore wafer(normal+glowstone+naquadah) cut mono
+ * silicon ingot in cutting machine
+ * Integrated Logic Circuit(8bit DIP) RAM NAND Memory NOR Memory CPU (4 sizes) SoCs(2 sizes, high tier cheap low
+ * tech component) Power IC/High Power IC/Ultra High power
+ * nanotube interconnected circuit (H-IC + nanotubes)
+ * quantum chips
+ */
+ ItemList.Circuit_Silicon_Ingot
+ .set(addItem(Circuit_Silicon_Ingot.ID, "Monocrystalline Silicon Boule", "Raw Circuit", o));
+ ItemList.Circuit_Silicon_Ingot2.set(
+ addItem(Circuit_Silicon_Ingot2.ID, "Phosphorus doped Monocrystalline Silicon Boule", "Raw Circuit", o));
+ ItemList.Circuit_Silicon_Ingot3
+ .set(addItem(Circuit_Silicon_Ingot3.ID, "Naquadah doped Monocrystalline Silicon Boule", "Raw Circuit", o));
+ ItemList.Circuit_Silicon_Ingot4
+ .set(addItem(Circuit_Silicon_Ingot4.ID, "Europium doped Monocrystalline Silicon Boule", "Raw Circuit", o));
+ ItemList.Circuit_Silicon_Ingot5
+ .set(addItem(Circuit_Silicon_Ingot5.ID, "Americium doped Monocrystalline Silicon Boule", "Raw Circuit", o));
+ ItemList.Circuit_Silicon_Ingot6
+ .set(addItem(Circuit_Silicon_Ingot6.ID, "Optically Enriched Crystalline Boule", "Raw Circuit", o));
+
+ ItemList.Circuit_Silicon_Wafer.set(addItem(Circuit_Silicon_Wafer.ID, "Wafer", "Raw Circuit", o));
+ ItemList.Circuit_Silicon_Wafer2
+ .set(addItem(Circuit_Silicon_Wafer2.ID, "Phosphorus doped Wafer", "Raw Circuit", o));
+ ItemList.Circuit_Silicon_Wafer3
+ .set(addItem(Circuit_Silicon_Wafer3.ID, "Naquadah doped Wafer", "Raw Circuit", o));
+ ItemList.Circuit_Silicon_Wafer4
+ .set(addItem(Circuit_Silicon_Wafer4.ID, "Europium doped Wafer", "Raw Circuit", o));
+ ItemList.Circuit_Silicon_Wafer5
+ .set(addItem(Circuit_Silicon_Wafer5.ID, "Americium doped Wafer", "Raw Circuit", o));
+ ItemList.Circuit_Silicon_Wafer6
+ .set(addItem(Circuit_Silicon_Wafer6.ID, "Photonically Prepared Wafer", "Raw Circuit", o));
+ ItemList.Circuit_Silicon_Wafer7
+ .set(addItem(Circuit_Silicon_Wafer7.ID, "Photonically Enhanced Wafer", "Raw Circuit", o));
+
+ ItemList.Circuit_Wafer_ILC
+ .set(addItem(Circuit_Wafer_ILC.ID, "Integrated Logic Circuit (Wafer)", "Raw Circuit", o));
+ ItemList.Circuit_Chip_ILC
+ .set(addItem(Circuit_Chip_ILC.ID, "Integrated Logic Circuit", "Integrated Circuit", o));
+
+ ItemList.Circuit_Wafer_Ram
+ .set(addItem(Circuit_Wafer_Ram.ID, "Random Access Memory Chip (Wafer)", "Raw Circuit", o));
+ ItemList.Circuit_Chip_Ram
+ .set(addItem(Circuit_Chip_Ram.ID, "Random Access Memory Chip", "Integrated Circuit", o));
+
+ ItemList.Circuit_Wafer_NAND.set(addItem(Circuit_Wafer_NAND.ID, "NAND Memory Chip (Wafer)", "Raw Circuit", o));
+ ItemList.Circuit_Chip_NAND.set(addItem(Circuit_Chip_NAND.ID, "NAND Memory Chip", "Integrated Circuit", o));
+
+ ItemList.Circuit_Wafer_NOR.set(addItem(Circuit_Wafer_NOR.ID, "NOR Memory Chip (Wafer)", "Raw Circuit", o));
+ ItemList.Circuit_Chip_NOR.set(addItem(Circuit_Chip_NOR.ID, "NOR Memory Chip", "Integrated Circuit", o));
+
+ ItemList.Circuit_Wafer_CPU
+ .set(addItem(Circuit_Wafer_CPU.ID, "Central Processing Unit (Wafer)", "Raw Circuit", o));
+ ItemList.Circuit_Chip_CPU.set(addItem(Circuit_Chip_CPU.ID, "Central Processing Unit", "Integrated Circuit", o));
+
+ ItemList.Circuit_Wafer_SoC.set(addItem(Circuit_Wafer_SoC.ID, "SoC Wafer", "Raw Circuit", o));
+ ItemList.Circuit_Chip_SoC.set(addItem(Circuit_Chip_SoC.ID, "SoC", "System on a Chip", o));
+
+ ItemList.Circuit_Wafer_SoC2.set(addItem(Circuit_Wafer_SoC2.ID, "ASoC Wafer", "Raw Circuit", o));
+ ItemList.Circuit_Chip_SoC2.set(addItem(Circuit_Chip_SoC2.ID, "ASoC", "Advanced System on a Chip", o));
+
+ ItemList.Circuit_Wafer_PIC.set(addItem(Circuit_Wafer_PIC.ID, "PIC Wafer", "Raw Circuit", o));
+ ItemList.Circuit_Chip_PIC.set(addItem(Circuit_Chip_PIC.ID, "Power IC", "Power Circuit", o));
+
+ ItemList.Circuit_Wafer_HPIC.set(addItem(Circuit_Wafer_HPIC.ID, "HPIC Wafer", "Raw Circuit", o));
+ ItemList.Circuit_Chip_HPIC.set(addItem(Circuit_Chip_HPIC.ID, "High Power IC", "High Power Circuit", o));
+
+ ItemList.Circuit_Wafer_NanoCPU.set(addItem(Circuit_Wafer_NanoCPU.ID, "NanoCPU Wafer", "Raw Circuit", o));
+ ItemList.Circuit_Chip_NanoCPU
+ .set(addItem(Circuit_Chip_NanoCPU.ID, "Nanocomponent Central Processing Unit", "Power Circuit", o));
+
+ ItemList.Circuit_Wafer_QuantumCPU.set(addItem(Circuit_Wafer_QuantumCPU.ID, "QBit Wafer", "Raw Circuit", o));
+ ItemList.Circuit_Chip_QuantumCPU
+ .set(addItem(Circuit_Chip_QuantumCPU.ID, "QBit Processing Unit", "Quantum CPU", o));
+
+ ItemList.Circuit_Wafer_UHPIC.set(addItem(Circuit_Wafer_UHPIC.ID, "UHPIC Wafer", "Raw Circuit", o));
+ ItemList.Circuit_Chip_UHPIC
+ .set(addItem(Circuit_Chip_UHPIC.ID, "Ultra High Power IC", "Ultra High Power Circuit", o));
+
+ ItemList.Circuit_Wafer_Simple_SoC
+ .set(addItem(Circuit_Wafer_Simple_SoC.ID, "Simple SoC Wafer", "Raw Primitive Circuit", o));
+ ItemList.Circuit_Chip_Simple_SoC
+ .set(addItem(Circuit_Chip_Simple_SoC.ID, "Simple SoC", "Simple System on a Chip", o));
+
+ ItemList.Circuit_Wafer_ULPIC.set(addItem(Circuit_Wafer_ULPIC.ID, "ULPIC Wafer", "Raw Circuit", o));
+ ItemList.Circuit_Chip_ULPIC
+ .set(addItem(Circuit_Chip_ULPIC.ID, "Ultra Low Power IC", "Ultra Low Power Circuit", o));
+
+ ItemList.Circuit_Wafer_LPIC.set(addItem(Circuit_Wafer_LPIC.ID, "LPIC Wafer", "Raw Circuit", o));
+ ItemList.Circuit_Chip_LPIC.set(addItem(Circuit_Chip_LPIC.ID, "Low Power IC", "Low Power Circuit", o));
+
+ ItemList.Circuit_Wafer_NPIC.set(addItem(Circuit_Wafer_NPIC.ID, "NPIC Wafer", "Raw Circuit", o));
+ ItemList.Circuit_Chip_NPIC.set(addItem(Circuit_Chip_NPIC.ID, "Nano Power IC", "Nano Power Circuit", o));
+
+ ItemList.Circuit_Wafer_PPIC.set(addItem(Circuit_Wafer_PPIC.ID, "PPIC Wafer", "Raw Circuit", o));
+ ItemList.Circuit_Chip_PPIC.set(addItem(Circuit_Chip_PPIC.ID, "Piko Power IC", "Piko Power Circuit", o));
+
+ ItemList.Circuit_Wafer_QPIC.set(addItem(Circuit_Wafer_QPIC.ID, "QPIC Wafer", "Raw Circuit", o));
+ ItemList.Circuit_Chip_QPIC.set(addItem(Circuit_Chip_QPIC.ID, "Quantum Power IC", "Quantum Power Circuit", o));
+
+ ItemList.Circuit_Wafer_Bioware.set(addItem(Circuit_Wafer_Bioware.ID, "Living Bio Wafer", "Raw Circuit", o));
+ ItemList.Circuit_Parts_Chip_Bioware
+ .set(addItem(Circuit_Parts_Chip_Bioware.ID, "Living Bio Chip", "Needed for Circuits", o));
+ /*
+ * Engraved Crystal Chip Engraved Lapotron Chip Crystal CPU SoCrystal stem cells (disassemble eggs)
+ */
+ ItemList.Circuit_Chip_CrystalSoC2.set(
+ addItem(Circuit_Chip_CrystalSoC2.ID, "Raw Advanced Crystal Chip", "Raw Advanced Crystal Processor", o));
+ ItemList.Circuit_Parts_RawCrystalChip
+ .set(addItem(Circuit_Parts_RawCrystalChip.ID, "Raw Crystal Chip", "Raw Crystal Processor", o));
+ ItemList.Circuit_Chip_CrystalCPU
+ .set(addItem(Circuit_Chip_CrystalCPU.ID, "Crystal Processing Unit", "Crystal CPU", o)); // Crystal
+ // chip
+ // elite
+ // part
+ ItemList.Circuit_Chip_CrystalSoC
+ .set(addItem(Circuit_Chip_CrystalSoC.ID, "Crystal SoC", "Crystal System on a Chip", o));
+ ItemList.Circuit_Chip_NeuroCPU.set(addItem(Circuit_Chip_NeuroCPU.ID, "Neuro Processing Unit", "Neuro CPU", o));
+ ItemList.Circuit_Chip_Stemcell.set(addItem(Circuit_Chip_Stemcell.ID, "Stemcells", "Raw inteligence", o));
+ ItemList.Circuit_Parts_RawCrystalParts
+ .set(addItem(Circuit_Parts_RawCrystalParts.ID, "Raw Crystal Chip Parts", "Raw Crystal Processor Parts", o));
+ ItemList.Circuit_Chip_Biocell.set(addItem(Circuit_Chip_Biocell.ID, "Biocells", "Mutated Raw inteligence", o));
+ ItemList.Circuit_Chip_BioCPU.set(addItem(Circuit_Chip_BioCPU.ID, "Bio Processing Unit", "Bio CPU", o));
+ ItemList.Circuit_Chip_Optical
+ .set(addItem(Circuit_Chip_Optical.ID, "Raw Exposed Optical Chip", "Raw Optical Chip", o));
+
+ // Nand Chip
+ ItemList.NandChip.set(
+ addItem(
+ NandChip.ID,
+ "NAND Chip",
+ "A very simple Circuit",
+ OrePrefixes.circuit.get(Materials.ULV),
+ SubTag.NO_UNIFICATION));
+
+ // Vacuum Tube Item01
+ // Basic Circuit IC2
+ // Good Circuit Item01
+
+ // Integrated Logic Circuit Item01
+ ItemList.Circuit_Integrated_Good.set(
+ addItem(
+ Circuit_Integrated_Good.ID,
+ "Good Integrated Circuit",
+ "Good Circuit",
+ OrePrefixes.circuit.get(Materials.MV),
+ SubTag.NO_UNIFICATION));
+
+ // Good Integrated Circuit Item01
+ // Advanced Circuit IC2
+
+ ItemList.Circuit_Microprocessor.set(
+ addItem(
+ Circuit_Microprocessor.ID,
+ "Microprocessor",
+ "A Basic Circuit",
+ OrePrefixes.circuit.get(Materials.LV),
+ SubTag.NO_UNIFICATION));
+
+ ItemList.Circuit_Processor.set(
+ addItem(
+ Circuit_Processor.ID,
+ "Integrated Processor",
+ "A Good Circuit",
+ OrePrefixes.circuit.get(Materials.MV),
+ SubTag.NO_UNIFICATION));
+
+ ItemList.Circuit_Nanoprocessor.set(
+ addItem(
+ Circuit_Nanoprocessor.ID,
+ "Nanoprocessor",
+ "An Advanced Circuit",
+ OrePrefixes.circuit.get(Materials.HV),
+ SubTag.NO_UNIFICATION));
+
+ ItemList.Circuit_Nanocomputer.set(
+ addItem(
+ Circuit_Nanocomputer.ID,
+ "Nanoprocessor Assembly",
+ "An Extreme Circuit",
+ OrePrefixes.circuit.get(Materials.EV),
+ SubTag.NO_UNIFICATION));
+
+ ItemList.Circuit_Elitenanocomputer.set(
+ addItem(
+ Circuit_Elitenanocomputer.ID,
+ "Elite Nanocomputer",
+ "An Elite Circuit",
+ OrePrefixes.circuit.get(Materials.IV),
+ SubTag.NO_UNIFICATION));
+
+ // Quantum circuits
+ ItemList.Circuit_Quantumprocessor.set(
+ addItem(
+ Circuit_Quantumprocessor.ID,
+ "Quantumprocessor",
+ "An Extreme Circuit",
+ OrePrefixes.circuit.get(Materials.EV),
+ SubTag.NO_UNIFICATION));
+
+ ItemList.Circuit_Quantumcomputer.set(
+ addItem(
+ Circuit_Quantumcomputer.ID,
+ "Quantumprocessor Assembly",
+ "An Elite Circuit",
+ OrePrefixes.circuit.get(Materials.IV),
+ SubTag.NO_UNIFICATION));
+
+ ItemList.Circuit_Masterquantumcomputer.set(
+ addItem(
+ Circuit_Masterquantumcomputer.ID,
+ "Master Quantumcomputer",
+ "A Master Circuit",
+ OrePrefixes.circuit.get(Materials.LuV),
+ SubTag.NO_UNIFICATION));
+
+ ItemList.Circuit_Quantummainframe.set(
+ addItem(
+ Circuit_Quantummainframe.ID,
+ "Quantumprocessor Mainframe",
+ "An Ultimate Circuit",
+ OrePrefixes.circuit.get(Materials.ZPM),
+ SubTag.NO_UNIFICATION));
+
+ // Crystal circuits
+ ItemList.Circuit_Crystalprocessor.set(
+ addItem(
+ Circuit_Crystalprocessor.ID,
+ "Crystalprocessor",
+ "An Elite Circuit",
+ OrePrefixes.circuit.get(Materials.IV),
+ SubTag.NO_UNIFICATION));
+
+ ItemList.Circuit_Crystalcomputer.set(
+ addItem(
+ Circuit_Crystalcomputer.ID,
+ "Crystalprocessor Assembly",
+ "A Master Circuit",
+ OrePrefixes.circuit.get(Materials.LuV),
+ SubTag.NO_UNIFICATION));
+
+ ItemList.Circuit_Ultimatecrystalcomputer.set(
+ addItem(
+ Circuit_Ultimatecrystalcomputer.ID,
+ "Ultimate Crystalcomputer",
+ "An Ultimate Circuit",
+ OrePrefixes.circuit.get(Materials.ZPM),
+ SubTag.NO_UNIFICATION));
+
+ ItemList.Circuit_Crystalmainframe.set(
+ addItem(
+ Circuit_Crystalmainframe.ID,
+ "Crystalprocessor Mainframe",
+ "A Super Circuit",
+ OrePrefixes.circuit.get(Materials.UV),
+ SubTag.NO_UNIFICATION));
+
+ // ???? Scared to remove.
+ ItemList.Circuit_Ultimate.set(ItemList.Circuit_Ultimatecrystalcomputer.get(1L)); // maybe should be removed
+
+ // Wetware circuits
+ ItemList.Circuit_Neuroprocessor.set(
+ addItem(
+ Circuit_Neuroprocessor.ID,
+ "Wetwareprocessor",
+ "A Master Circuit",
+ OrePrefixes.circuit.get(Materials.LuV),
+ SubTag.NO_UNIFICATION));
+
+ ItemList.Circuit_Wetwarecomputer.set(
+ addItem(
+ Circuit_Wetwarecomputer.ID,
+ "Wetwareprocessor Assembly",
+ "An Ultimate Circuit",
+ OrePrefixes.circuit.get(Materials.ZPM),
+ SubTag.NO_UNIFICATION));
+
+ ItemList.Circuit_Wetwaresupercomputer.set(
+ addItem(
+ Circuit_Wetwaresupercomputer.ID,
+ "Wetware Supercomputer",
+ "A Super Circuit",
+ OrePrefixes.circuit.get(Materials.UV),
+ SubTag.NO_UNIFICATION));
+
+ ItemList.Circuit_Wetwaremainframe.set(
+ addItem(
+ Circuit_Wetwaremainframe.ID,
+ "Wetware Mainframe",
+ "An Infinite Circuit",
+ OrePrefixes.circuit.get(Materials.UHV),
+ SubTag.NO_UNIFICATION));
+
+ // Bioware circuits.
+ ItemList.Circuit_Bioprocessor.set(
+ addItem(
+ Circuit_Bioprocessor.ID,
+ "Bioprocessor",
+ "An Ultimate Circuit",
+ OrePrefixes.circuit.get(Materials.ZPM),
+ SubTag.NO_UNIFICATION));
+
+ ItemList.Circuit_Biowarecomputer.set(
+ addItem(
+ Circuit_Biowarecomputer.ID,
+ "Biowareprocessor Assembly",
+ "A Super Circuit",
+ OrePrefixes.circuit.get(Materials.UV),
+ SubTag.NO_UNIFICATION));
+
+ ItemList.Circuit_Biowaresupercomputer.set(
+ addItem(
+ Circuit_Biowaresupercomputer.ID,
+ "Bioware Supercomputer",
+ "An Infinite Circuit",
+ OrePrefixes.circuit.get(Materials.UHV),
+ SubTag.NO_UNIFICATION));
+
+ ItemList.Circuit_Biomainframe.set(
+ addItem(
+ Circuit_Biomainframe.ID,
+ "Bio Mainframe",
+ "A Bio Circuit",
+ OrePrefixes.circuit.get(Materials.UEV),
+ SubTag.NO_UNIFICATION));
+
+ ItemList.Circuit_Board_Coated_Basic
+ .set(addItem(Circuit_Board_Coated_Basic.ID, "Circuit Board", "A basic Circuit Board", o));
+ ItemList.Circuit_Board_Phenolic_Good
+ .set(addItem(Circuit_Board_Phenolic_Good.ID, "Good Circuit Board", "A good Circuit Board", o));
+ ItemList.Circuit_Board_Epoxy_Advanced
+ .set(addItem(Circuit_Board_Epoxy_Advanced.ID, "Advanced Circuit Board", "A advanced Circuit Board", o));
+ ItemList.Circuit_Board_Fiberglass_Advanced.set(
+ addItem(
+ Circuit_Board_Fiberglass_Advanced.ID,
+ "More Advanced Circuit Board",
+ "A more advanced Circuit Board",
+ o));
+ ItemList.Circuit_Board_Multifiberglass_Elite
+ .set(addItem(Circuit_Board_Multifiberglass_Elite.ID, "Elite Circuit Board", "A elite Circuit Board", o));
+ ItemList.Circuit_Board_Wetware_Extreme.set(
+ addItem(
+ Circuit_Board_Wetware_Extreme.ID,
+ "Extreme Wetware Lifesupport Circuit Board",
+ "The Board that keeps life",
+ o));
+ ItemList.Circuit_Board_Plastic_Advanced
+ .set(addItem(Circuit_Board_Plastic_Advanced.ID, "Plastic Circuit Board", "A good Board", o));
+ ItemList.Circuit_Board_Bio_Ultra.set(
+ addItem(Circuit_Board_Bio_Ultra.ID, "Ultra Bio Mutated Circuit Board", "Bio genetic mutated Board", o));
+ ItemList.Circuit_Board_Optical
+ .set(addItem(Circuit_Board_Optical.ID, "Optical Circuit Board", "Optically Infused Board", o));
+
+ // Optical circuits
+ ItemList.Circuit_OpticalProcessor.set(
+ addItem(
+ Circuit_OpticalProcessor.ID,
+ "Optical Processor",
+ "An Optical Circuit",
+ OrePrefixes.circuit.get(Materials.UV),
+ SubTag.NO_UNIFICATION));
+
+ ItemList.Circuit_OpticalAssembly.set(
+ addItem(
+ Circuit_OpticalAssembly.ID,
+ "Optical Assembly",
+ "An Optical Circuit",
+ OrePrefixes.circuit.get(Materials.UHV),
+ SubTag.NO_UNIFICATION));
+
+ ItemList.Circuit_OpticalComputer.set(
+ addItem(
+ Circuit_OpticalComputer.ID,
+ "Optical Computer",
+ "An Optical Circuit",
+ OrePrefixes.circuit.get(Materials.UEV),
+ SubTag.NO_UNIFICATION));
+
+ ItemList.Circuit_OpticalMainframe.set(
+ addItem(
+ Circuit_OpticalMainframe.ID,
+ "Optical Mainframe",
+ "An Optical Circuit",
+ OrePrefixes.circuit.get(Materials.UIV),
+ SubTag.NO_UNIFICATION));
+
+ // Exotic circuits
+ ItemList.Circuit_ExoticProcessor.set(
+ addItem(
+ Circuit_ExoticProcessor.ID,
+ "Exotic Processor",
+ "An Exotic Circuit",
+ OrePrefixes.circuit.get(Materials.UHV),
+ SubTag.NO_UNIFICATION));
+
+ ItemList.Circuit_ExoticAssembly.set(
+ addItem(
+ Circuit_ExoticAssembly.ID,
+ "Exotic Assembly",
+ "An Exotic Circuit",
+ OrePrefixes.circuit.get(Materials.UEV),
+ SubTag.NO_UNIFICATION));
+
+ ItemList.Circuit_ExoticComputer.set(
+ addItem(
+ Circuit_ExoticComputer.ID,
+ "Exotic Computer",
+ "An Exotic Circuit",
+ OrePrefixes.circuit.get(Materials.UIV),
+ SubTag.NO_UNIFICATION));
+
+ ItemList.Circuit_ExoticMainframe.set(
+ addItem(
+ Circuit_ExoticMainframe.ID,
+ "Exotic Mainframe",
+ "An Exotic Circuit",
+ OrePrefixes.circuit.get(Materials.UMV),
+ SubTag.NO_UNIFICATION));
+
+ // Cosmic circuits
+ ItemList.Circuit_CosmicProcessor.set(
+ addItem(
+ Circuit_CosmicProcessor.ID,
+ "Cosmic Processor",
+ "A Cosmic Circuit",
+ OrePrefixes.circuit.get(Materials.UEV),
+ SubTag.NO_UNIFICATION));
+
+ ItemList.Circuit_CosmicAssembly.set(
+ addItem(
+ Circuit_CosmicAssembly.ID,
+ "Cosmic Assembly",
+ "A Cosmic Circuit",
+ OrePrefixes.circuit.get(Materials.UIV),
+ SubTag.NO_UNIFICATION));
+
+ ItemList.Circuit_CosmicComputer.set(
+ addItem(
+ Circuit_CosmicComputer.ID,
+ "Cosmic Computer",
+ "A Cosmic Circuit",
+ OrePrefixes.circuit.get(Materials.UMV),
+ SubTag.NO_UNIFICATION));
+
+ ItemList.Circuit_CosmicMainframe.set(
+ addItem(
+ Circuit_CosmicMainframe.ID,
+ "Cosmic Mainframe",
+ "A Cosmic Circuit",
+ OrePrefixes.circuit.get(Materials.UXV),
+ SubTag.NO_UNIFICATION));
+
+ // Transcendent circuits
+ ItemList.Circuit_TranscendentProcessor.set(
+ addItem(
+ Circuit_TranscendentProcessor.ID,
+ "Temporally Transcendent Processor",
+ "A circuit operating outside of known spacetime",
+ OrePrefixes.circuit.get(Materials.UIV),
+ SubTag.NO_UNIFICATION));
+
+ ItemList.Circuit_TranscendentAssembly.set(
+ addItem(
+ Circuit_TranscendentAssembly.ID,
+ "Temporally Transcendent Assembly",
+ "A circuit operating outside of known spacetime",
+ OrePrefixes.circuit.get(Materials.UMV),
+ SubTag.NO_UNIFICATION));
+
+ ItemList.Circuit_TranscendentComputer.set(
+ addItem(
+ Circuit_TranscendentComputer.ID,
+ "Temporally Transcendent Computer",
+ "A circuit operating outside of known spacetime",
+ OrePrefixes.circuit.get(Materials.UXV),
+ SubTag.NO_UNIFICATION));
+
+ ItemList.Circuit_TranscendentMainframe.set(
+ addItem(
+ Circuit_TranscendentMainframe.ID,
+ "Temporally Transcendent Mainframe",
+ "A circuit operating outside of known spacetime",
+ OrePrefixes.circuit.get(Materials.MAX),
+ SubTag.NO_UNIFICATION));
+
+ ItemList.Tube_Wires.set(addItem(Tube_Wires.ID, "Tube Wires", "For the Vacuum Tubes", o));
+
+ ItemList.Cover_SolarPanel_UHV.set(
+ addItem(
+ Cover_SolarPanel_UHV.ID,
+ "Solar Panel (UHV)",
+ "Ultimate High Voltage Solar Panel (Needs cleaning with right click)",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 128L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 128L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.TENEBRAE, 128L)));
+ ItemList.Cover_SolarPanel_UEV.set(
+ addItem(
+ Cover_SolarPanel_UEV.ID,
+ "Solar Panel (UEV)",
+ "Ultimate Extreme Voltage Solar Panel (Needs cleaning with right click)",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 256L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 256L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.TENEBRAE, 256L)));
+ ItemList.Cover_SolarPanel_UIV.set(
+ addItem(
+ Cover_SolarPanel_UIV.ID,
+ "Solar Panel (UIV)",
+ "Ultimate Insane Voltage Solar Panel (Needs cleaning with right click)",
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 512L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.TENEBRAE, 512L)));
+
+ ItemList.ULV_Coil.set(addItem(ULV_Coil.ID, "Ultra Low Voltage Coil", "Primitive Coil", o));
+ ItemList.LV_Coil.set(addItem(LV_Coil.ID, "Low Voltage Coil", "Basic Coil", o));
+ ItemList.MV_Coil.set(addItem(MV_Coil.ID, "Medium Voltage Coil", "Good Coil", o));
+ ItemList.HV_Coil.set(addItem(HV_Coil.ID, "High Voltage Coil", "Advanced Coil", o));
+ ItemList.EV_Coil.set(addItem(EV_Coil.ID, "Extreme Voltage Coil", "Extreme Coil", o));
+ ItemList.IV_Coil.set(addItem(IV_Coil.ID, "Insane Voltage Coil", "Elite Coil", o));
+ ItemList.LuV_Coil.set(addItem(LuV_Coil.ID, "Ludicrous Voltage Coil", "Master Coil", o));
+ ItemList.ZPM_Coil.set(addItem(ZPM_Coil.ID, "ZPM Voltage Coil", "Ultimate Coil", o));
+ ItemList.UV_Coil.set(addItem(UV_Coil.ID, "Ultimate Voltage Coil", "Super Coil", o));
+ ItemList.UHV_Coil.set(addItem(UHV_Coil.ID, "Highly Ultimate Voltage Coil", "Infinite Coil", o));
+
+ ItemList.GalliumArsenideCrystal
+ .set(addItem(GalliumArsenideCrystal.ID, "Gallium Arsenide Crystal", "For making boules", o));
+ ItemList.GalliumArsenideCrystalSmallPart
+ .set(addItem(GalliumArsenideCrystalSmallPart.ID, "Small Gallium Arsenide Crystal", "For making boules", o));
+ ItemList.KevlarFiber.set(addItem(KevlarFiber.ID, "Kevlar Fiber", "For making Kevlar Plates", o));
+ ItemList.WovenKevlar.set(addItem(WovenKevlar.ID, "Woven Kevlar", "For making Kevlar Plates", o));
+ ItemList.Spinneret.set(addItem(Spinneret.ID, "Spinneret", "For making Kevlar Fiber", o));
+
+ ItemList.IndustrialApiary_Upgrade_Frame
+ .set(addItem(IndustrialApiary_Upgrade_Frame.ID, "Upgrade Frame", "Crafting component", o));
+
+ ItemList.IndustrialApiary_Upgrade_Acceleration_1.set(
+ addItem(
+ IndustrialApiary_Upgrade_Acceleration_1.ID,
+ "Acceleration Upgrade x2",
+ "Acceleration upgrade for Industrial Apiary/n Maximum Installed: 1/n * Unlocks 2x acceleration level/n * Energy Consumption +1 AMP LV",
+ OrePrefixes.apiaryUpgrade.name()));
+ ItemList.IndustrialApiary_Upgrade_Acceleration_2.set(
+ addItem(
+ IndustrialApiary_Upgrade_Acceleration_2.ID,
+ "Acceleration Upgrade x4",
+ "Acceleration upgrade for Industrial Apiary/n Maximum Installed: 1/n * Unlocks 4x acceleration level/n * Energy Consumption +1 AMP MV",
+ OrePrefixes.apiaryUpgrade.name()));
+ ItemList.IndustrialApiary_Upgrade_Acceleration_3.set(
+ addItem(
+ IndustrialApiary_Upgrade_Acceleration_3.ID,
+ "Acceleration Upgrade x8",
+ "Acceleration upgrade for Industrial Apiary/n Maximum Installed: 1/n * Unlocks 8x acceleration level/n * Energy Consumption +1 AMP HV",
+ OrePrefixes.apiaryUpgrade.name()));
+ ItemList.IndustrialApiary_Upgrade_Acceleration_4.set(
+ addItem(
+ IndustrialApiary_Upgrade_Acceleration_4.ID,
+ "Acceleration Upgrade x16",
+ "Acceleration upgrade for Industrial Apiary/n Maximum Installed: 1/n * Unlocks 16x acceleration level/n * Energy Consumption +1 AMP EV",
+ OrePrefixes.apiaryUpgrade.name()));
+ ItemList.IndustrialApiary_Upgrade_Acceleration_5.set(
+ addItem(
+ IndustrialApiary_Upgrade_Acceleration_5.ID,
+ "Acceleration Upgrade x32",
+ "Acceleration upgrade for Industrial Apiary/n Maximum Installed: 1/n * Unlocks 32x acceleration level/n * Energy Consumption +1 AMP IV",
+ OrePrefixes.apiaryUpgrade.name()));
+ ItemList.IndustrialApiary_Upgrade_Acceleration_6.set(
+ addItem(
+ IndustrialApiary_Upgrade_Acceleration_6.ID,
+ "Acceleration Upgrade x64",
+ "Acceleration upgrade for Industrial Apiary/n Maximum Installed: 1/n * Unlocks 64x acceleration level/n * Energy Consumption +1 AMP LuV",
+ OrePrefixes.apiaryUpgrade.name()));
+ ItemList.IndustrialApiary_Upgrade_Acceleration_7.set(
+ addItem(
+ IndustrialApiary_Upgrade_Acceleration_7.ID,
+ "Acceleration Upgrade x128",
+ "Acceleration upgrade for Industrial Apiary/n Maximum Installed: 1/n * Unlocks 128x acceleration level/n * Energy Consumption +1 AMP ZPM",
+ OrePrefixes.apiaryUpgrade.name()));
+ ItemList.IndustrialApiary_Upgrade_Acceleration_8.set(
+ addItem(
+ IndustrialApiary_Upgrade_Acceleration_8.ID,
+ "Acceleration Upgrade x256",
+ "Acceleration upgrade for Industrial Apiary/n Maximum Installed: 1/n * Unlocks 256x acceleration level/n * Energy Consumption +1 AMP UV",
+ OrePrefixes.apiaryUpgrade.name()));
+ ItemList.IndustrialApiary_Upgrade_Acceleration_8_Upgraded.set(
+ addItem(
+ IndustrialApiary_Upgrade_Acceleration_8_Upgraded.ID,
+ "Upgraded Acceleration Upgrade x256",
+ "Acceleration upgrade for Industrial Apiary/n Maximum Installed: 1/n * Unlocks 256x acceleration level/n * Will also grant 8x production upgrade/n * Energy Consumption +1 AMP UV",
+ OrePrefixes.apiaryUpgrade.name()));
+ ItemList.IndustrialApiary_Upgrade_PRODUCTION.set(
+ addItem(
+ IndustrialApiary_Upgrade_PRODUCTION.ID,
+ "Production Upgrade",
+ "Production upgrade for Industrial Apiary/n Maximum Installed: 8/n Increases production modifier by 0.25/n Energy Consumption +40%",
+ OrePrefixes.apiaryUpgrade.name()));
+ ItemList.IndustrialApiary_Upgrade_PLAINS.set(
+ addItem(
+ IndustrialApiary_Upgrade_PLAINS.ID,
+ "Plains Emulation Upgrade",
+ "Plains emulation upgrade for Industrial Apiary/n Maximum Installed: 1/n * Biome Override: Plains/n * Energy Consumption +40%",
+ OrePrefixes.apiaryUpgrade.name()));
+ ItemList.IndustrialApiary_Upgrade_LIGHT.set(
+ addItem(
+ IndustrialApiary_Upgrade_LIGHT.ID,
+ "Light Upgrade",
+ "Light upgrade for Industrial Apiary/n Maximum Installed: 1/n * Internal Lighting/n * Energy Consumption +5%",
+ OrePrefixes.apiaryUpgrade.name()));
+ ItemList.IndustrialApiary_Upgrade_FLOWERING.set(
+ addItem(
+ IndustrialApiary_Upgrade_FLOWERING.ID,
+ "Flowering Upgrade",
+ "Flowering upgrade for Industrial Apiary/n Maximum Installed: 8/n * Flowering and Pollination +20%/n * Energy Consumption +10%",
+ OrePrefixes.apiaryUpgrade.name()));
+ ItemList.IndustrialApiary_Upgrade_WINTER.set(
+ addItem(
+ IndustrialApiary_Upgrade_WINTER.ID,
+ "Winter Emulation Upgrade",
+ "Winter emulation upgrade for Industrial Apiary/n Maximum Installed: 1/n * Biome Override: Taiga/n * Energy Consumption +50%",
+ OrePrefixes.apiaryUpgrade.name()));
+ ItemList.IndustrialApiary_Upgrade_DRYER.set(
+ addItem(
+ IndustrialApiary_Upgrade_DRYER.ID,
+ "Dryer Upgrade",
+ "Dryer upgrade for Industrial Apiary/n Maximum Installed: 16/n * Humidity -12.5%/n * Energy Consumption +2.5%",
+ OrePrefixes.apiaryUpgrade.name()));
+ ItemList.IndustrialApiary_Upgrade_AUTOMATION.set(
+ addItem(
+ IndustrialApiary_Upgrade_AUTOMATION.ID,
+ "Automation Upgrade",
+ "Automation upgrade for Industrial Apiary/n Maximum Installed: 1/n * Automation/n * Energy Consumption +10%",
+ OrePrefixes.apiaryUpgrade.name()));
+ ItemList.IndustrialApiary_Upgrade_HUMIDIFIER.set(
+ addItem(
+ IndustrialApiary_Upgrade_HUMIDIFIER.ID,
+ "Humidifier Upgrade",
+ "Humidifier upgrade for Industrial Apiary/n Maximum Installed: 16/n * Humidity +12.5%/n * Energy Consumption +2.5%",
+ OrePrefixes.apiaryUpgrade.name()));
+ ItemList.IndustrialApiary_Upgrade_HELL.set(
+ addItem(
+ IndustrialApiary_Upgrade_HELL.ID,
+ "HELL Emulation Upgrade",
+ "HELL emulation upgrade for Industrial Apiary/n Maximum Installed: 1/n * Biome Override: HELL/n * Energy Consumption +50%",
+ OrePrefixes.apiaryUpgrade.name()));
+ ItemList.IndustrialApiary_Upgrade_POLLEN.set(
+ addItem(
+ IndustrialApiary_Upgrade_POLLEN.ID,
+ "Pollen Scrubber Upgrade",
+ "Pollen scrubber upgrade for Industrial Apiary/n Maximum Installed: 1/n * Flowering and Pollination -100%/n * Energy Consumption +30%",
+ OrePrefixes.apiaryUpgrade.name()));
+ ItemList.IndustrialApiary_Upgrade_DESERT.set(
+ addItem(
+ IndustrialApiary_Upgrade_DESERT.ID,
+ "Desert Emulation Upgrade",
+ "Desert emulation upgrade for Industrial Apiary/n Maximum Installed: 1/n * Biome Override: Desert/n * Energy Consumption +20%",
+ OrePrefixes.apiaryUpgrade.name()));
+ ItemList.IndustrialApiary_Upgrade_COOLER.set(
+ addItem(
+ IndustrialApiary_Upgrade_COOLER.ID,
+ "Cooler Upgrade",
+ "Cooler upgrade for Industrial Apiary/n Maximum Installed: 16/n * Temperature -12.5%/n * Energy Consumption +2.5%",
+ OrePrefixes.apiaryUpgrade.name()));
+ ItemList.IndustrialApiary_Upgrade_LIFESPAN.set(
+ addItem(
+ IndustrialApiary_Upgrade_LIFESPAN.ID,
+ "Lifespan Upgrade",
+ "Lifespan upgrade for Industrial Apiary/n Maximum Installed: 4/n * Lifespan -33%/n * Energy Consumption +5%",
+ OrePrefixes.apiaryUpgrade.name()));
+ ItemList.IndustrialApiary_Upgrade_SEAL.set(
+ addItem(
+ IndustrialApiary_Upgrade_SEAL.ID,
+ "Seal Upgrade",
+ "Seal upgrade for Industrial Apiary/n Maximum Installed: 1/n * Rain Protection/n * Energy Consumption +5%",
+ OrePrefixes.apiaryUpgrade.name()));
+ ItemList.IndustrialApiary_Upgrade_STABILIZER.set(
+ addItem(
+ IndustrialApiary_Upgrade_STABILIZER.ID,
+ "Genetic Stabilizer Upgrade",
+ "Genetic stabilizer upgrade for Industrial Apiary/n Maximum Installed: 1/n * Genetic Decay -100%/n * Energy Consumption +150%",
+ OrePrefixes.apiaryUpgrade.name()));
+ ItemList.IndustrialApiary_Upgrade_JUNGLE.set(
+ addItem(
+ IndustrialApiary_Upgrade_JUNGLE.ID,
+ "Jungle Emulation Upgrade",
+ "Jungle emulation upgrade for Industrial Apiary/n Maximum Installed: 1/n * Biome Override: Jungle/n * Energy Consumption +20%",
+ OrePrefixes.apiaryUpgrade.name()));
+ ItemList.IndustrialApiary_Upgrade_TERRITORY.set(
+ addItem(
+ IndustrialApiary_Upgrade_TERRITORY.ID,
+ "Territory Upgrade",
+ "Territory upgrade for Industrial Apiary/n Maximum Installed: 4/n * Territory +50%/n * Energy Consumption +5%",
+ OrePrefixes.apiaryUpgrade.name()));
+ ItemList.IndustrialApiary_Upgrade_OCEAN.set(
+ addItem(
+ IndustrialApiary_Upgrade_OCEAN.ID,
+ "Ocean Emulation Upgrade",
+ "Ocean emulation upgrade for Industrial Apiary/n Maximum Installed: 1/n * Biome Override: Ocean/n * Energy Consumption +20%",
+ OrePrefixes.apiaryUpgrade.name()));
+ ItemList.IndustrialApiary_Upgrade_SKY.set(
+ addItem(
+ IndustrialApiary_Upgrade_SKY.ID,
+ "Open Sky Upgrade",
+ "Open sky upgrade for Industrial Apiary/n Maximum Installed: 1/n * Open Sky Simulation/n * Energy Consumption +5%",
+ OrePrefixes.apiaryUpgrade.name()));
+ ItemList.IndustrialApiary_Upgrade_HEATER.set(
+ addItem(
+ IndustrialApiary_Upgrade_HEATER.ID,
+ "Heater Upgrade",
+ "Heater upgrade for Industrial Apiary/n Maximum Installed: 16/n * Temperature +12.5%/n * Energy Consumption +2.5%",
+ OrePrefixes.apiaryUpgrade.name()));
+ ItemList.IndustrialApiary_Upgrade_SIEVE.set(
+ addItem(
+ IndustrialApiary_Upgrade_SIEVE.ID,
+ "Sieve Upgrade",
+ "Sieve upgrade for Industrial Apiary/n Maximum Installed: 1/n * Pollen Collection/n * Energy Consumption +25%",
+ OrePrefixes.apiaryUpgrade.name()));
+ ItemList.IndustrialApiary_Upgrade_UNLIGHT.set(
+ addItem(
+ IndustrialApiary_Upgrade_UNLIGHT.ID,
+ "Night Upgrade",
+ "Night upgrade for Industrial Apiary/n Maximum Installed: 1/n * Internal Darkness/n * Energy Consumption +5%",
+ OrePrefixes.apiaryUpgrade.name()));
+
+ ItemList.NuclearStar.set(
+ addItem(
+ NuclearStar.ID,
+ "Nuclear Star",
+ "By the powers of Greg, I command this star to be really hot.",
+ SubTag.NO_UNIFICATION));
+
+ ItemList.Cover_Metrics_Transmitter.set(
+ addItem(
+ Cover_Metrics_Transmitter.ID,
+ "Metrics Transmitter Cover",
+ String.join(
+ "/n ",
+ "Taking Information Panels to the next level!",
+ "Creates a GregTech Advanced Sensor Card when attached",
+ "Works across dimensions or if machine is dismantled",
+ "Removing this cover will destroy the linked card",
+ GT_Values.AuthorQuerns)));
+
+ ItemList.ActivatedCarbonFilterMesh.set(
+ addItem(
+ Activated_Carbon_Filter_Mesh.ID,
+ "Activated Carbon Filter Mesh",
+ "The most granular filter you could possibly make.",
+ SubTag.NO_UNIFICATION));
+
+ ItemList.Quark_Catalyst_Housing.set(
+ addItem(
+ Quark_Catalyst_Housing.ID,
+ "Empty Quark Release Catalyst Housing",
+ "Capable of holding Quark Release Catalysts",
+ SubTag.NO_UNIFICATION));
+ ItemList.Quark_Creation_Catalyst_Up.set(
+ addItem(
+ Quark_Creation_Catalyst_Up.ID,
+ "Up-Quark Releasing Catalyst",
+ "Can release up-quarks into environment to reshape matter",
+ SubTag.NO_UNIFICATION));
+ ItemList.Quark_Creation_Catalyst_Down.set(
+ addItem(
+ Quark_Creation_Catalyst_Down.ID,
+ "Down-Quark Releasing Catalyst",
+ "Can release down-quarks into environment to reshape matter",
+ SubTag.NO_UNIFICATION));
+ ItemList.Quark_Creation_Catalyst_Strange.set(
+ addItem(
+ Quark_Creation_Catalyst_Strange.ID,
+ "Strange-Quark Releasing Catalyst",
+ "Can release strange-quarks into environment to reshape matter",
+ SubTag.NO_UNIFICATION));
+ ItemList.Quark_Creation_Catalyst_Charm.set(
+ addItem(
+ Quark_Creation_Catalyst_Charm.ID,
+ "Charm-Quark Releasing Catalyst",
+ "Can release charm-quarks into environment to reshape matter",
+ SubTag.NO_UNIFICATION));
+ ItemList.Quark_Creation_Catalyst_Bottom.set(
+ addItem(
+ Quark_Creation_Catalyst_Bottom.ID,
+ "Bottom-Quark Releasing Catalyst",
+ "Can release top-quarks into environment to reshape matter",
+ SubTag.NO_UNIFICATION));
+ ItemList.Quark_Creation_Catalyst_Top.set(
+ addItem(
+ Quark_Creation_Catalyst_Top.ID,
+ "Top-Quark Releasing Catalyst",
+ "Can release bottom-quarks into environment to reshape matter",
+ SubTag.NO_UNIFICATION));
+ ItemList.Quark_Creation_Catalyst_Unaligned.set(
+ addItem(
+ Quark_Creation_Catalyst_Unaligned.ID,
+ "Unaligned Quark Releasing Catalyst",
+ "Needs to be realigned before use",
+ SubTag.NO_UNIFICATION));
+
+ ItemList.Optical_Cpu_Containment_Housing
+ .set(addItem(Optical_Cpu_Containment_Housing.ID, "Optical CPU Containment Housing", "CPU Housing", o));
+ ItemList.Optically_Perfected_CPU
+ .set(addItem(Optically_Perfected_CPU.ID, "Optically Perfected CPU", "Perfected CPU!", o));
+ ItemList.Optically_Compatible_Memory
+ .set(addItem(Optically_Compatible_Memory.ID, "Optically Compatible Memory", "Its in the name!", o));
+
+ ItemList.Timepiece.set(addItem(Timepiece.ID, "Timepiece", "Beware of the kid with the hat", o));
+ ItemList.Transdimensional_Alignment_Matrix.set(
+ addItem(
+ Transdimensional_Alignment_Matrix.ID,
+ "Transdimensional Alignment Matrix",
+ String.join(
+ "/n ",
+ "Device supporting the alignment of transdimensional spaces.",
+ "Enables Dimensional Convergence on the DTPF."),
+ o));
+
+ ItemList.White_Dwarf_Shape_Extruder_Plate.set(
+ addItem(
+ White_Dwarf_Shape_Extruder_Plate.ID,
+ "White Dwarf Extruder Shape (Plate)",
+ "Ultra Strong Stellar Shape for making Plates"));
+ ItemList.White_Dwarf_Shape_Extruder_Rod.set(
+ addItem(
+ White_Dwarf_Shape_Extruder_Rod.ID,
+ "White Dwarf Extruder Shape (Rod)",
+ "Ultra Strong Stellar Shape for making Rods"));
+ ItemList.White_Dwarf_Shape_Extruder_Bolt.set(
+ addItem(
+ White_Dwarf_Shape_Extruder_Bolt.ID,
+ "White Dwarf Extruder Shape (Bolt)",
+ "Ultra Strong Stellar Shape for making Bolts"));
+ ItemList.White_Dwarf_Shape_Extruder_Ring.set(
+ addItem(
+ White_Dwarf_Shape_Extruder_Ring.ID,
+ "White Dwarf Extruder Shape (Ring)",
+ "Ultra Strong Stellar Shape for making Rings"));
+ ItemList.White_Dwarf_Shape_Extruder_Cell.set(
+ addItem(
+ White_Dwarf_Shape_Extruder_Cell.ID,
+ "White Dwarf Extruder Shape (Cell)",
+ "Ultra Strong Stellar Shape for making Cells"));
+ ItemList.White_Dwarf_Shape_Extruder_Ingot.set(
+ addItem(
+ White_Dwarf_Shape_Extruder_Ingot.ID,
+ "White Dwarf Extruder Shape (Ingot)",
+ "Ultra Strong Stellar Shape for, wait, can't we just use a Furnace?"));
+ ItemList.White_Dwarf_Shape_Extruder_Wire.set(
+ addItem(
+ White_Dwarf_Shape_Extruder_Wire.ID,
+ "White Dwarf Extruder Shape (Wire)",
+ "Ultra Strong Stellar Shape for making Wires"));
+ ItemList.White_Dwarf_Shape_Extruder_Casing.set(
+ addItem(
+ White_Dwarf_Shape_Extruder_Casing.ID,
+ "White Dwarf Extruder Shape (Casing)",
+ "Ultra Strong Stellar Shape for making Item Casings"));
+ ItemList.White_Dwarf_Shape_Extruder_Pipe_Tiny.set(
+ addItem(
+ White_Dwarf_Shape_Extruder_Pipe_Tiny.ID,
+ "White Dwarf Extruder Shape (Tiny Pipe)",
+ "Ultra Strong Stellar Shape for making tiny Pipes"));
+ ItemList.White_Dwarf_Shape_Extruder_Pipe_Small.set(
+ addItem(
+ White_Dwarf_Shape_Extruder_Pipe_Small.ID,
+ "White Dwarf Extruder Shape (Small Pipe)",
+ "Ultra Strong Stellar Shape for making small Pipes"));
+ ItemList.White_Dwarf_Shape_Extruder_Pipe_Medium.set(
+ addItem(
+ White_Dwarf_Shape_Extruder_Pipe_Medium.ID,
+ "White Dwarf Extruder Shape (Normal Pipe)",
+ "Ultra Strong Stellar Shape for making Pipes"));
+ ItemList.White_Dwarf_Shape_Extruder_Pipe_Large.set(
+ addItem(
+ White_Dwarf_Shape_Extruder_Pipe_Large.ID,
+ "White Dwarf Extruder Shape (Large Pipe)",
+ "Ultra Strong Stellar Shape for making large Pipes"));
+ ItemList.White_Dwarf_Shape_Extruder_Pipe_Huge.set(
+ addItem(
+ White_Dwarf_Shape_Extruder_Pipe_Huge.ID,
+ "White Dwarf Extruder Shape (Huge Pipe)",
+ "Ultra Strong Stellar Shape for making full Block Pipes"));
+ ItemList.White_Dwarf_Shape_Extruder_Block.set(
+ addItem(
+ White_Dwarf_Shape_Extruder_Block.ID,
+ "White Dwarf Extruder Shape (Block)",
+ "Ultra Strong Stellar Shape for making Blocks"));
+ ItemList.White_Dwarf_Shape_Extruder_Sword.set(
+ addItem(
+ White_Dwarf_Shape_Extruder_Sword.ID,
+ "White Dwarf Extruder Shape (Sword Blade)",
+ "Ultra Strong Stellar Shape for making Swords"));
+ ItemList.White_Dwarf_Shape_Extruder_Pickaxe.set(
+ addItem(
+ White_Dwarf_Shape_Extruder_Pickaxe.ID,
+ "White Dwarf Extruder Shape (Pickaxe Head)",
+ "Ultra Strong Stellar Shape for making Pickaxes"));
+ ItemList.White_Dwarf_Shape_Extruder_Shovel.set(
+ addItem(
+ White_Dwarf_Shape_Extruder_Shovel.ID,
+ "White Dwarf Extruder Shape (Shovel Head)",
+ "Ultra Strong Stellar Shape for making Shovels"));
+ ItemList.White_Dwarf_Shape_Extruder_Axe.set(
+ addItem(
+ White_Dwarf_Shape_Extruder_Axe.ID,
+ "White Dwarf Extruder Shape (Axe Head)",
+ "Ultra Strong Stellar Shape for making Axes"));
+ ItemList.White_Dwarf_Shape_Extruder_Hoe.set(
+ addItem(
+ White_Dwarf_Shape_Extruder_Hoe.ID,
+ "White Dwarf Extruder Shape (Hoe Head)",
+ "Ultra Strong Stellar Shape for making Hoes"));
+ ItemList.White_Dwarf_Shape_Extruder_Hammer.set(
+ addItem(
+ White_Dwarf_Shape_Extruder_Hammer.ID,
+ "White Dwarf Extruder Shape (Hammer Head)",
+ "Ultra Strong Stellar Shape for making Hammers"));
+ ItemList.White_Dwarf_Shape_Extruder_File.set(
+ addItem(
+ White_Dwarf_Shape_Extruder_File.ID,
+ "White Dwarf Extruder Shape (File Head)",
+ "Ultra Strong Stellar Shape for making Files"));
+ ItemList.White_Dwarf_Shape_Extruder_Saw.set(
+ addItem(
+ White_Dwarf_Shape_Extruder_Saw.ID,
+ "White Dwarf Extruder Shape (Saw Blade)",
+ "Ultra Strong Stellar Shape for making Saws"));
+ ItemList.White_Dwarf_Shape_Extruder_Gear.set(
+ addItem(
+ White_Dwarf_Shape_Extruder_Gear.ID,
+ "White Dwarf Extruder Shape (Gear)",
+ "Ultra Strong Stellar Shape for making Gears"));
+ ItemList.White_Dwarf_Shape_Extruder_Bottle.set(
+ addItem(
+ White_Dwarf_Shape_Extruder_Bottle.ID,
+ "White Dwarf Extruder Shape (Bottle)",
+ "Ultra Strong Stellar Shape for making Bottles"));
+ ItemList.White_Dwarf_Shape_Extruder_Rotor.set(
+ addItem(
+ White_Dwarf_Shape_Extruder_Rotor.ID,
+ "White Dwarf Extruder Shape (Rotor)",
+ "Ultra Strong Stellar Shape for a Rotor"));
+ ItemList.White_Dwarf_Shape_Extruder_Small_Gear.set(
+ addItem(
+ White_Dwarf_Shape_Extruder_Small_Gear.ID,
+ "White Dwarf Extruder Shape (Small Gear)",
+ "Ultra Strong Stellar Shape for a Small Gear"));
+ ItemList.White_Dwarf_Shape_Extruder_Turbine_Blade.set(
+ addItem(
+ White_Dwarf_Shape_Extruder_Turbine_Blade.ID,
+ "White Dwarf Extruder Shape (Turbine Blade)",
+ "Ultra Strong Stellar Extruder Shape for a Turbine Blade"));
+ ItemList.White_Dwarf_Shape_Extruder_ToolHeadDrill.set(
+ addItem(
+ White_Dwarf_Shape_Extruder_ToolHeadDrill.ID,
+ "White Dwarf Extruder Shape (Drill Head)",
+ "White Dwarf Extruder Shape for a Drill Head"));
+ registerAllTieredTooltips();
+ registerAllAnimatedTooltips();
+ initOrePrefixes();
+ initOreDictUnificatorEntries();
+ registerCovers();
+ }
+
+ private void registerAllTieredTooltips() {
+ registerTieredTooltip(ItemList.NandChip.get(1), ULV);
+ registerTieredTooltip(ItemList.Circuit_Integrated_Good.get(1), MV);
+ registerTieredTooltip(ItemList.Circuit_Microprocessor.get(1), LV);
+ registerTieredTooltip(ItemList.Circuit_Processor.get(1), MV);
+ registerTieredTooltip(ItemList.Circuit_Nanoprocessor.get(1), HV);
+ registerTieredTooltip(ItemList.Circuit_Nanocomputer.get(1), EV);
+ registerTieredTooltip(ItemList.Circuit_Elitenanocomputer.get(1), IV);
+ registerTieredTooltip(ItemList.Circuit_Quantumprocessor.get(1), EV);
+ registerTieredTooltip(ItemList.Circuit_Quantumcomputer.get(1), IV);
+ registerTieredTooltip(ItemList.Circuit_Masterquantumcomputer.get(1), LuV);
+ registerTieredTooltip(ItemList.Circuit_Quantummainframe.get(1), ZPM);
+ registerTieredTooltip(ItemList.Circuit_Crystalprocessor.get(1), IV);
+ registerTieredTooltip(ItemList.Circuit_Crystalcomputer.get(1), LuV);
+ registerTieredTooltip(ItemList.Circuit_Ultimatecrystalcomputer.get(1), ZPM);
+ registerTieredTooltip(ItemList.Circuit_Crystalmainframe.get(1), UV);
+ registerTieredTooltip(ItemList.Circuit_Neuroprocessor.get(1), LuV);
+ registerTieredTooltip(ItemList.Circuit_Wetwarecomputer.get(1), ZPM);
+ registerTieredTooltip(ItemList.Circuit_Wetwaresupercomputer.get(1), UV);
+ registerTieredTooltip(ItemList.Circuit_Wetwaremainframe.get(1), UHV);
+ registerTieredTooltip(ItemList.Circuit_Bioprocessor.get(1), ZPM);
+ registerTieredTooltip(ItemList.Circuit_Biowarecomputer.get(1), UV);
+ registerTieredTooltip(ItemList.Circuit_Biowaresupercomputer.get(1), UHV);
+ registerTieredTooltip(ItemList.Circuit_Biomainframe.get(1), UEV);
+ registerTieredTooltip(ItemList.Circuit_OpticalProcessor.get(1), UV);
+ registerTieredTooltip(ItemList.Circuit_OpticalAssembly.get(1), UHV);
+ registerTieredTooltip(ItemList.Circuit_OpticalComputer.get(1), UEV);
+ registerTieredTooltip(ItemList.Circuit_OpticalMainframe.get(1), UIV);
+ registerTieredTooltip(ItemList.Circuit_ExoticProcessor.get(1), UHV);
+ registerTieredTooltip(ItemList.Circuit_ExoticAssembly.get(1), UEV);
+ registerTieredTooltip(ItemList.Circuit_ExoticComputer.get(1), UIV);
+ registerTieredTooltip(ItemList.Circuit_ExoticMainframe.get(1), UMV);
+ registerTieredTooltip(ItemList.Circuit_CosmicProcessor.get(1), UEV);
+ registerTieredTooltip(ItemList.Circuit_CosmicAssembly.get(1), UIV);
+ registerTieredTooltip(ItemList.Circuit_CosmicComputer.get(1), UMV);
+ registerTieredTooltip(ItemList.Circuit_CosmicMainframe.get(1), UXV);
+ registerTieredTooltip(ItemList.Circuit_TranscendentProcessor.get(1), UIV);
+ registerTieredTooltip(ItemList.Circuit_TranscendentAssembly.get(1), UMV);
+ registerTieredTooltip(ItemList.Circuit_TranscendentComputer.get(1), UXV);
+ registerTieredTooltip(ItemList.Circuit_TranscendentMainframe.get(1), MAX);
+ }
+
+ private void registerAllAnimatedTooltips() {
+ addItemTooltip(ItemList.Transdimensional_Alignment_Matrix.get(1), GT_Values.AuthorCloud);
+ }
+
+ private void initOreDictUnificatorEntries() {
+ GT_OreDictUnificator
+ .set(OrePrefixes.componentCircuit, Materials.Resistor, ItemList.Circuit_Parts_Resistor.get(1L));
+ GT_OreDictUnificator.set(OrePrefixes.componentCircuit, Materials.Diode, ItemList.Circuit_Parts_Diode.get(1L));
+ GT_OreDictUnificator
+ .set(OrePrefixes.componentCircuit, Materials.Transistor, ItemList.Circuit_Parts_Transistor.get(1L));
+ GT_OreDictUnificator.set(OrePrefixes.componentCircuit, Materials.Inductor, ItemList.Circuit_Parts_Coil.get(1L));
+ GT_OreDictUnificator
+ .set(OrePrefixes.componentCircuit, Materials.Capacitor, ItemList.Circuit_Parts_Capacitor.get(1L));
+
+ GT_OreDictUnificator.addAssociation(
+ OrePrefixes.componentCircuit,
+ Materials.Resistor,
+ ItemList.Circuit_Parts_ResistorSMD.get(1L),
+ true);
+ GT_OreDictUnificator.addAssociation(
+ OrePrefixes.componentCircuit,
+ Materials.Diode,
+ ItemList.Circuit_Parts_DiodeSMD.get(1L),
+ true);
+ GT_OreDictUnificator.addAssociation(
+ OrePrefixes.componentCircuit,
+ Materials.Transistor,
+ ItemList.Circuit_Parts_TransistorSMD.get(1L),
+ true);
+ GT_OreDictUnificator.addAssociation(
+ OrePrefixes.componentCircuit,
+ Materials.Capacitor,
+ ItemList.Circuit_Parts_CapacitorSMD.get(1L),
+ true);
+ GT_OreDictUnificator.addAssociation(
+ OrePrefixes.componentCircuit,
+ Materials.Inductor,
+ ItemList.Circuit_Parts_InductorSMD.get(1L),
+ true);
+
+ }
+
+ private void initOrePrefixes() {
+ OrePrefixes.apiaryUpgrade.add(ItemList.IndustrialApiary_Upgrade_Acceleration_1.get(1L));
+ OrePrefixes.apiaryUpgrade.add(ItemList.IndustrialApiary_Upgrade_Acceleration_2.get(1L));
+ OrePrefixes.apiaryUpgrade.add(ItemList.IndustrialApiary_Upgrade_Acceleration_3.get(1L));
+ OrePrefixes.apiaryUpgrade.add(ItemList.IndustrialApiary_Upgrade_Acceleration_4.get(1L));
+ OrePrefixes.apiaryUpgrade.add(ItemList.IndustrialApiary_Upgrade_Acceleration_5.get(1L));
+ OrePrefixes.apiaryUpgrade.add(ItemList.IndustrialApiary_Upgrade_Acceleration_6.get(1L));
+ OrePrefixes.apiaryUpgrade.add(ItemList.IndustrialApiary_Upgrade_Acceleration_7.get(1L));
+ OrePrefixes.apiaryUpgrade.add(ItemList.IndustrialApiary_Upgrade_Acceleration_8.get(1L));
+ OrePrefixes.apiaryUpgrade.add(ItemList.IndustrialApiary_Upgrade_Acceleration_8_Upgraded.get(1L));
+ OrePrefixes.apiaryUpgrade.add(ItemList.IndustrialApiary_Upgrade_PRODUCTION.get(1L));
+ OrePrefixes.apiaryUpgrade.add(ItemList.IndustrialApiary_Upgrade_PLAINS.get(1L));
+ OrePrefixes.apiaryUpgrade.add(ItemList.IndustrialApiary_Upgrade_LIGHT.get(1L));
+ OrePrefixes.apiaryUpgrade.add(ItemList.IndustrialApiary_Upgrade_FLOWERING.get(1L));
+ OrePrefixes.apiaryUpgrade.add(ItemList.IndustrialApiary_Upgrade_WINTER.get(1L));
+ OrePrefixes.apiaryUpgrade.add(ItemList.IndustrialApiary_Upgrade_DRYER.get(1L));
+ OrePrefixes.apiaryUpgrade.add(ItemList.IndustrialApiary_Upgrade_AUTOMATION.get(1L));
+ OrePrefixes.apiaryUpgrade.add(ItemList.IndustrialApiary_Upgrade_HUMIDIFIER.get(1L));
+ OrePrefixes.apiaryUpgrade.add(ItemList.IndustrialApiary_Upgrade_HELL.get(1L));
+ OrePrefixes.apiaryUpgrade.add(ItemList.IndustrialApiary_Upgrade_POLLEN.get(1L));
+ OrePrefixes.apiaryUpgrade.add(ItemList.IndustrialApiary_Upgrade_DESERT.get(1L));
+ OrePrefixes.apiaryUpgrade.add(ItemList.IndustrialApiary_Upgrade_COOLER.get(1L));
+ OrePrefixes.apiaryUpgrade.add(ItemList.IndustrialApiary_Upgrade_LIFESPAN.get(1L));
+ OrePrefixes.apiaryUpgrade.add(ItemList.IndustrialApiary_Upgrade_SEAL.get(1L));
+ OrePrefixes.apiaryUpgrade.add(ItemList.IndustrialApiary_Upgrade_STABILIZER.get(1L));
+ OrePrefixes.apiaryUpgrade.add(ItemList.IndustrialApiary_Upgrade_JUNGLE.get(1L));
+ OrePrefixes.apiaryUpgrade.add(ItemList.IndustrialApiary_Upgrade_TERRITORY.get(1L));
+ OrePrefixes.apiaryUpgrade.add(ItemList.IndustrialApiary_Upgrade_OCEAN.get(1L));
+ OrePrefixes.apiaryUpgrade.add(ItemList.IndustrialApiary_Upgrade_SKY.get(1L));
+ OrePrefixes.apiaryUpgrade.add(ItemList.IndustrialApiary_Upgrade_HEATER.get(1L));
+ OrePrefixes.apiaryUpgrade.add(ItemList.IndustrialApiary_Upgrade_SIEVE.get(1L));
+ OrePrefixes.apiaryUpgrade.add(ItemList.IndustrialApiary_Upgrade_UNLIGHT.get(1L));
+ }
+
+ private void registerCovers() {
+ GregTech_API.registerCover(
+ ItemList.Cover_Metrics_Transmitter.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[2][0], TextureFactory.of(OVERLAY_METRICS_TRANSMITTER)),
+ new GT_Cover_Metrics_Transmitter(TextureFactory.of(OVERLAY_METRICS_TRANSMITTER)));
+ GregTech_API.registerCover(
+ ItemList.Cover_SolarPanel_UHV.get(1L),
+ TextureFactory.of(SOLARPANEL_UHV),
+ new GT_Cover_SolarPanel(2097152));
+ GregTech_API.registerCover(
+ ItemList.Cover_SolarPanel_UEV.get(1L),
+ TextureFactory.of(SOLARPANEL_UEV),
+ new GT_Cover_SolarPanel(8388608));
+ GregTech_API.registerCover(
+ ItemList.Cover_SolarPanel_UIV.get(1L),
+ TextureFactory.of(SOLARPANEL_UIV),
+ new GT_Cover_SolarPanel(33554432));
+ }
+
+ @Override
+ public boolean doesShowInCreative(OrePrefixes aPrefix, Materials aMaterial, boolean aDoShowAllItems) {
+ return aDoShowAllItems || (aPrefix.toString()
+ .toLowerCase()
+ .contains("nanite"))
+ || (aPrefix.toString()
+ .toLowerCase()
+ .contains("rawore"));
+ }
+}
diff --git a/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_98.java b/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_98.java
new file mode 100644
index 0000000000..0dab2af2cf
--- /dev/null
+++ b/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_98.java
@@ -0,0 +1,352 @@
+package gregtech.common.items;
+
+import java.util.Arrays;
+import java.util.EnumMap;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+
+import javax.annotation.Nullable;
+
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.IIcon;
+import net.minecraftforge.fluids.Fluid;
+import net.minecraftforge.fluids.FluidContainerRegistry;
+import net.minecraftforge.fluids.FluidRegistry;
+import net.minecraftforge.fluids.FluidStack;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import gregtech.api.enums.ItemList;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.OrePrefixes;
+import gregtech.api.interfaces.IIconContainer;
+import gregtech.api.items.GT_MetaGenerated_Item;
+import gregtech.api.util.GT_LanguageManager;
+import gregtech.api.util.GT_ModHandler;
+import gregtech.api.util.GT_OreDictUnificator;
+import gregtech.api.util.GT_Util;
+import gregtech.api.util.GT_Utility;
+
+/** This class holds cells for non-GT fluids. */
+public class GT_MetaGenerated_Item_98 extends GT_MetaGenerated_Item {
+
+ public static GT_MetaGenerated_Item_98 INSTANCE;
+
+ /**
+ * Registered fluids.
+ *
+ * <p>
+ * When adding a fluid, don't forget to make sure that GregTech loads after the mod that adds that fluid!
+ *
+ * <p>
+ * In order to avoid breaking existing worlds, fluids must not have their IDs changed! The only safe modification
+ * that can be made to this enum is adding new fluids, or removing existing fluids. When removing fluids, maybe
+ * leave a comment mentioning the old ID, so that we don't re-use it for a new fluid.
+ */
+ public enum FluidCell {
+ // Next unused ID: 32
+
+ // GregTech
+ DRILLING_FLUID(5, "liquid_drillingfluid", CellType.REGULAR),
+ SQUID_INK(6, "squidink", CellType.SMALL),
+ BLUE_VITRIOL(22, "solution.bluevitriol", CellType.REGULAR),
+ NICKEL_SULFATE(23, "solution.nickelsulfate", CellType.REGULAR),
+ GREEN_VITRIOL(24, "solution.greenvitriol", CellType.REGULAR),
+ INDIUM_CONCENTRATE(25, "indiumconcentrate", CellType.REGULAR),
+ LEAD_ZINC_SOLUTION(26, "leadzincsolution", CellType.REGULAR),
+
+ // New Horizons Core Mod
+ UNKNOWN_NUTRIENT_AGAR(7, "unknownnutrientagar", CellType.REGULAR),
+ SEAWEED_BROTH(8, "seaweedbroth", CellType.REGULAR),
+ SUPER_HEAVY_RADOX(28, "superheavyradox", CellType.REGULAR),
+ HEAVY_RADOX(29, "heavyradox", CellType.REGULAR),
+ CRACKED_RADOX(30, "crackedradox", CellType.REGULAR),
+ LIGHT_RADOX(31, "lightradox", CellType.REGULAR),
+ SUPER_LIGHT_RADOX(9, "superlightradox", CellType.REGULAR),
+ SODIUM_POTASSIUM(18, "sodiumpotassium", CellType.REGULAR),
+ ENRICHED_BACTERIAL_SLUDGE(19, "enrichedbacterialsludge", CellType.REGULAR),
+ FERMENTED_BACTERIAL_SLUDGE(20, "fermentedbacterialsludge", CellType.REGULAR),
+ POLLUTION(21, "pollution", CellType.REGULAR),
+ XENOXENE(27, "xenoxene", CellType.REGULAR),
+
+ // BartWorks
+ ENZYME_SOLUTION(10, "enzymessollution", CellType.REGULAR),
+ ESCHERICHIA_COLI_FLUID(11, "escherichiakolifluid", CellType.REGULAR),
+ PENICILLIN(12, "penicillin", CellType.REGULAR),
+ FLUORESCENT_DNA(13, "fluorecentddna", CellType.REGULAR),
+ POLYMERASE(17, "polymerase", CellType.REGULAR),
+
+ // Good Generator
+ COMBUSTION_PROMOTER(14, "combustionpromotor", CellType.REGULAR),
+
+ // Galacticraft
+ BACTERIAL_SLUDGE(1, "bacterialsludge", CellType.REGULAR),
+
+ // Railcraft
+ STEAM(0, "steam", CellType.REGULAR),
+
+ // Gendustry
+ BACTERIA(15, "binnie.bacteria", CellType.REGULAR),
+ MUTAGEN(2, "mutagen", CellType.REGULAR),
+ LIQUID_DNA(16, "liquiddna", CellType.REGULAR),
+
+ // Tinker's Construct
+ LIQUID_ENDER(3, "ender", CellType.REGULAR),
+
+ // Hardcore Ender Expansion
+ ENDER_GOO(4, "endergoo", CellType.REGULAR),;
+
+ private final int mId;
+ /** This is the Forge internal fluid name. */
+ private final String mfluidName;
+
+ private final CellType mType;
+
+ @Nullable
+ private ItemStack mStack;
+
+ FluidCell(int aId, String aFluidName, CellType aType) {
+ mId = aId;
+ mfluidName = aFluidName;
+ mType = aType;
+ }
+
+ public int getId() {
+ return mId;
+ }
+
+ public String getFluidName() {
+ return mfluidName;
+ }
+
+ public CellType getDisplayType() {
+ return mType;
+ }
+
+ /**
+ * Get a copy of this stack with stack size 1.
+ * <p>
+ * Always returns non-null stack even if the fluid referenced doesn't exist, so don't assume it's always valid.
+ */
+ public ItemStack get() {
+ trySetStack();
+ return GT_Utility.copy(mStack);
+ }
+
+ /**
+ * Get a copy of this cell WITHOUT copy.
+ * <p>
+ * Always returns non-null stack even if the fluid referenced doesn't exist, so don't assume it's always valid.
+ * <p>
+ * Use with caution.
+ */
+ public ItemStack getNoCopy() {
+ trySetStack();
+ return mStack;
+ }
+
+ /**
+ * Get a copy of this cell with specified stack size.
+ * <p>
+ * Always returns non-null stack even if the fluid referenced doesn't exist, so don't assume it's always valid.
+ */
+ public ItemStack get(int aStackSize) {
+ trySetStack();
+ return GT_Utility.copyAmount(aStackSize, mStack);
+ }
+
+ private void trySetStack() {
+ if (mStack == null) {
+ mStack = new ItemStack(GT_MetaGenerated_Item_98.INSTANCE, 1, mId);
+ }
+ }
+ }
+
+ /** Cell type specifies the cell capacity, appearance, and item name format. */
+ private enum CellType {
+
+ REGULAR(1_000, OrePrefixes.cell),
+ SMALL(144, OrePrefixes.cell),
+ MOLTEN(144, OrePrefixes.cellMolten),
+ PLASMA(1_000, OrePrefixes.cellPlasma);
+
+ private final int capacity;
+ private final OrePrefixes prefix;
+
+ CellType(int capacity, OrePrefixes prefix) {
+ this.capacity = capacity;
+ this.prefix = prefix;
+ }
+ }
+
+ /** Struct class holding data that we need to properly handle a registered fluid cell item. */
+ private static class RegisteredFluidData {
+
+ private final short[] rgba;
+ private final IIconContainer iconContainer;
+
+ private RegisteredFluidData(short[] rgba, IIconContainer iconContainer) {
+ this.rgba = rgba;
+ this.iconContainer = iconContainer;
+ }
+ }
+
+ /**
+ * Map of ID to registered fluid data.
+ *
+ * <p>
+ * Only contains IDs that were successfully registered.
+ */
+ private final Map<Integer, RegisteredFluidData> registeredFluidDataMap;
+
+ private final EnumMap<CellType, IIconContainer> iconContainerMap;
+
+ private GT_MetaGenerated_Item_98() {
+ // For some reason, fluid cells will be rendered only if the metadata ID is less than the
+ // offset. So we will specify maximum offset here.
+ // See: GT_MetaGenerated_Item_Renderer.java
+ super("metaitem.98", (short) 32766, (short) 0);
+
+ registeredFluidDataMap = new HashMap<>();
+ iconContainerMap = new EnumMap<>(CellType.class);
+ }
+
+ /**
+ * Loading needs to happen after the fluids we need have been registered, which means during post-load. However,
+ * cell icons seem to be deleted some time between load and post-load, so we must pre-cache them.
+ */
+ public static synchronized void preInit() {
+ if (INSTANCE == null) INSTANCE = new GT_MetaGenerated_Item_98();
+
+ // We'll just steal the icons from Water. They are all the same anyway (except _NULL is broken for cells).
+ for (CellType cellType : CellType.values()) {
+ IIconContainer iconContainer = Materials.Water.mIconSet.mTextures[cellType.prefix.mTextureIndex];
+ INSTANCE.iconContainerMap.put(cellType, iconContainer);
+ }
+ }
+
+ public static synchronized void init() {
+ INSTANCE.createAllItems();
+ INSTANCE.registerOreDict();
+ }
+
+ private void createAllItems() {
+ for (FluidCell tCell : FluidCell.values()) {
+ tryToInitialize(tCell);
+ }
+
+ // We're not going to use these BitSets, so clear them to save memory.
+ mEnabledItems.clear();
+ mVisibleItems.clear();
+ }
+
+ private void tryToInitialize(FluidCell aCell) {
+ final boolean isStackAlreadySet = aCell.mStack != null;
+
+ int id = aCell.getId();
+ String fluidName = aCell.getFluidName();
+ CellType cellType = aCell.getDisplayType();
+
+ // We'll check for ID uniqueness. Better to throw an exception than silently overwrite some
+ // fluid cells with other fluids due to ID collision.
+ if (registeredFluidDataMap.containsKey(id)) {
+ throw new IllegalStateException("Got ID collision for ID: " + id);
+ }
+
+ aCell.trySetStack();
+
+ Fluid fluid = FluidRegistry.getFluid(fluidName);
+ if (fluid == null) {
+ // The fluid is not guaranteed to exist.
+ // These fluids are non-GT fluids, so the mod may not be present.
+ if (isStackAlreadySet) {
+ throw new RuntimeException(
+ "Cell item for fluid " + fluidName
+ + " has already been created, but the fluid doesn't exist during postload");
+ } else {
+ // fluid doesn't exist and this item has not been referenced
+ return;
+ }
+ }
+
+ FluidStack fluidStack = new FluidStack(fluid, cellType.capacity);
+
+ ItemStack emptyCell = ItemList.Cell_Empty.get(1L);
+ FluidContainerRegistry
+ .registerFluidContainer(new FluidContainerRegistry.FluidContainerData(fluidStack, aCell.mStack, emptyCell));
+
+ GT_LanguageManager.addStringLocalization(
+ getUnlocalizedName(aCell.mStack) + ".name",
+ cellType.prefix.mLocalizedMaterialPre + fluid.getLocalizedName(fluidStack)
+ + cellType.prefix.mLocalizedMaterialPost);
+
+ int color = fluid.getColor();
+ short[] rgba = GT_Util.getRGBaArray(color);
+
+ registeredFluidDataMap.put(id, new RegisteredFluidData(rgba, iconContainerMap.get(cellType)));
+ }
+
+ private void registerOreDict() {
+ // The GregTech ore dictionary requires an entry in the Materials enum, and since the whole
+ // point of this class is to add cell items for non-GregTech fluids, the vast majority of
+ // cell items won't have an associated material. So only a rare few cell items will need to
+ // be registered.
+
+ // Register IC2 steam cell and Railcraft steam cell as synonyms.
+ // There is no steam material, so we'll use Water.cellMolten instead.
+ GT_OreDictUnificator.add(OrePrefixes.cellMolten, Materials.Water, GT_ModHandler.getIC2Item("steamCell", 1L));
+ GT_OreDictUnificator.add(OrePrefixes.cellMolten, Materials.Water, FluidCell.STEAM.getNoCopy());
+ }
+
+ @Override
+ public short[] getRGBa(ItemStack aStack) {
+ RegisteredFluidData fluidData = registeredFluidDataMap.get(aStack.getItemDamage());
+ if (fluidData == null) {
+ return Materials._NULL.mRGBa;
+ }
+
+ return fluidData.rgba;
+ }
+
+ @Override
+ public ItemStack getContainerItem(ItemStack aStack) {
+ return ItemList.Cell_Empty.get(1L);
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void getSubItems(Item aItem, CreativeTabs aCreativeTab, List<ItemStack> aList) {
+ Arrays.stream(FluidCell.values())
+ .filter(fluid -> FluidRegistry.getFluid(fluid.getFluidName()) != null)
+ .map(FluidCell::get)
+ .filter(Objects::nonNull)
+ .forEach(aList::add);
+ }
+
+ @Override
+ public final IIcon getIconFromDamage(int aMetaData) {
+ IIconContainer iconContainer = getIconContainer(aMetaData);
+ if (iconContainer != null) {
+ return iconContainer.getIcon();
+ }
+ return null;
+ }
+
+ @Override
+ public IIconContainer getIconContainer(int aMetaData) {
+ RegisteredFluidData fluidData = registeredFluidDataMap.get(aMetaData);
+ if (fluidData == null) {
+ return null;
+ }
+ return fluidData.iconContainer;
+ }
+
+ @Override
+ public int getItemStackLimit(ItemStack aStack) {
+ return 64;
+ }
+}
diff --git a/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_99.java b/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_99.java
new file mode 100644
index 0000000000..08d6f23164
--- /dev/null
+++ b/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_99.java
@@ -0,0 +1,214 @@
+package gregtech.common.items;
+
+import static gregtech.api.enums.GT_Values.M;
+import static gregtech.api.enums.OrePrefixes.cellMolten;
+
+import java.util.BitSet;
+import java.util.List;
+
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.IIcon;
+
+import com.google.common.collect.ImmutableList;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import gregtech.api.GregTech_API;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.OrePrefixes;
+import gregtech.api.enums.SubTag;
+import gregtech.api.interfaces.IIconContainer;
+import gregtech.api.items.GT_MetaGenerated_Item;
+import gregtech.api.util.GT_LanguageManager;
+import gregtech.api.util.GT_OreDictUnificator;
+
+public class GT_MetaGenerated_Item_99 extends GT_MetaGenerated_Item {
+
+ public static GT_MetaGenerated_Item_99 INSTANCE;
+
+ /**
+ * Ore prefixes appear in this list in the order in which they will be assigned ID blocks.
+ *
+ * <p>
+ * In order to avoid breaking existing worlds, the entries in this list must not be re-ordered! The only safe
+ * modification that can be made to this list is adding new entries to the end.
+ */
+ private static final ImmutableList<OrePrefixes> CRACKED_CELL_TYPES = ImmutableList.of(
+ OrePrefixes.cellHydroCracked1,
+ OrePrefixes.cellHydroCracked2,
+ OrePrefixes.cellHydroCracked3,
+ OrePrefixes.cellSteamCracked1,
+ OrePrefixes.cellSteamCracked2,
+ OrePrefixes.cellSteamCracked3);
+
+ private static final int NUM_CRACKED_CELL_TYPES = CRACKED_CELL_TYPES.size();
+
+ /**
+ * Assignment of metadata IDs: 0 - 999: Molten cells 10_000 - 15_999: Cracked fluid cells (# IDs used is
+ * NUM_CRACKED_CELL_TYPES * 1_000; update this if you add any)
+ */
+ private final BitSet enabled = new BitSet();
+
+ public GT_MetaGenerated_Item_99() {
+ super("metaitem.99", (short) (10_000 + NUM_CRACKED_CELL_TYPES * 1_000), (short) 0);
+
+ INSTANCE = this;
+
+ for (Materials tMaterial : GregTech_API.sGeneratedMaterials) {
+ if (tMaterial == null || tMaterial.mMetaItemSubID < 0 || tMaterial.mMetaItemSubID >= 1_000) {
+ continue;
+ }
+
+ if ((tMaterial.contains(SubTag.SMELTING_TO_FLUID)) && (!tMaterial.contains(SubTag.NO_SMELTING))
+ && !tMaterial.contains(SubTag.SMELTING_TO_GEM)) {
+ registerMolten(tMaterial, tMaterial.mMetaItemSubID);
+ if (tMaterial.mSmeltInto != tMaterial && tMaterial.mSmeltInto.mMetaItemSubID >= 0
+ && tMaterial.mSmeltInto.mMetaItemSubID < 1_000) {
+ registerMolten(tMaterial.mSmeltInto, tMaterial.mSmeltInto.mMetaItemSubID);
+ }
+ }
+
+ if (tMaterial.canBeCracked()) {
+ registerCracked(tMaterial, tMaterial.mMetaItemSubID);
+ }
+ }
+
+ // We're not going to use these BitSets, so clear them to save memory.
+ mEnabledItems.clear();
+ mVisibleItems.clear();
+ }
+
+ private void registerMolten(Materials tMaterial, int i) {
+ ItemStack tStack = new ItemStack(this, 1, i);
+ enabled.set(i);
+
+ GT_LanguageManager.addStringLocalization(
+ getUnlocalizedName(tStack) + ".name",
+ cellMolten.getDefaultLocalNameFormatForItem(tMaterial));
+ GT_LanguageManager.addStringLocalization(
+ getUnlocalizedName(tStack) + ".tooltip",
+ tMaterial.getToolTip(cellMolten.mMaterialAmount / M));
+
+ if (cellMolten.mIsUnificatable) {
+ GT_OreDictUnificator.set(cellMolten, tMaterial, tStack);
+ } else {
+ GT_OreDictUnificator.registerOre(cellMolten.get(tMaterial), tStack);
+ }
+ }
+
+ private void registerCracked(Materials tMaterial, int i) {
+ int offset = 10_000;
+ for (OrePrefixes prefix : CRACKED_CELL_TYPES) {
+ ItemStack tStack = new ItemStack(this, 1, offset + i);
+ enabled.set(offset + i);
+
+ GT_LanguageManager.addStringLocalization(
+ getUnlocalizedName(tStack) + ".name",
+ prefix.getDefaultLocalNameFormatForItem(tMaterial));
+ GT_LanguageManager.addStringLocalization(
+ getUnlocalizedName(tStack) + ".tooltip",
+ tMaterial.getToolTip(prefix.mMaterialAmount / M));
+
+ if (prefix.mIsUnificatable) {
+ GT_OreDictUnificator.set(prefix, tMaterial, tStack);
+ } else {
+ GT_OreDictUnificator.registerOre(prefix.get(tMaterial), tStack);
+ }
+
+ offset += 1_000;
+ }
+ }
+
+ /** Returns null for item damage out of bounds. */
+ private Materials getMaterial(int damage) {
+ if (damage < 0) {
+ return null;
+ }
+ return GregTech_API.sGeneratedMaterials[damage % 1_000];
+ }
+
+ /** Returns null for item damage out of bounds. */
+ private OrePrefixes getOrePrefix(int damage) {
+ if (damage < 0) {
+ return null;
+ } else if (damage < 1_000) {
+ return cellMolten;
+ } else if (damage >= 10_000 && damage < 10_000 + (NUM_CRACKED_CELL_TYPES * 1_000)) {
+ return CRACKED_CELL_TYPES.get((damage / 1_000) - 10);
+ }
+ return null;
+ }
+
+ @Override
+ public short[] getRGBa(ItemStack aStack) {
+ OrePrefixes prefix = getOrePrefix(aStack.getItemDamage());
+ Materials material = getMaterial(aStack.getItemDamage());
+ if (material == null) {
+ material = Materials._NULL;
+ }
+
+ if (prefix == cellMolten) {
+ return material.mMoltenRGBa;
+ } else {
+ return material.mRGBa;
+ }
+ }
+
+ @Override
+ public String getItemStackDisplayName(ItemStack aStack) {
+ String aName = super.getItemStackDisplayName(aStack);
+ Materials material = getMaterial(aStack.getItemDamage());
+ if (material != null) {
+ return material.getLocalizedNameForItem(aName);
+ }
+ return aName;
+ }
+
+ @Override
+ public ItemStack getContainerItem(ItemStack aStack) {
+ OrePrefixes prefix = getOrePrefix(aStack.getItemDamage());
+ if (prefix != null) {
+ return prefix.mContainerItem;
+ }
+ return null;
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void getSubItems(Item aItem, CreativeTabs aCreativeTab, List<ItemStack> aList) {
+ enabled.stream()
+ .mapToObj(i -> new ItemStack(this, 1, i))
+ .forEach(aList::add);
+ }
+
+ @Override
+ public final IIcon getIconFromDamage(int aMetaData) {
+ IIconContainer iconContainer = getIconContainer(aMetaData);
+ if (iconContainer != null) {
+ return iconContainer.getIcon();
+ }
+ return null;
+ }
+
+ @Override
+ public IIconContainer getIconContainer(int aMetaData) {
+ Materials material = getMaterial(aMetaData);
+ OrePrefixes prefix = getOrePrefix(aMetaData);
+ if (material != null && prefix != null) {
+ return material.mIconSet.mTextures[prefix.mTextureIndex];
+ }
+ return null;
+ }
+
+ @Override
+ public int getItemStackLimit(ItemStack aStack) {
+ OrePrefixes prefix = getOrePrefix(aStack.getItemDamage());
+ if (prefix != null) {
+ return prefix.mDefaultStackSize;
+ } else {
+ return 64;
+ }
+ }
+}
diff --git a/src/main/java/gregtech/common/items/GT_MetaGenerated_Tool_01.java b/src/main/java/gregtech/common/items/GT_MetaGenerated_Tool_01.java
new file mode 100644
index 0000000000..f8777dcf58
--- /dev/null
+++ b/src/main/java/gregtech/common/items/GT_MetaGenerated_Tool_01.java
@@ -0,0 +1,746 @@
+package gregtech.common.items;
+
+import static gregtech.common.items.ID_MetaTool_01.AXE;
+import static gregtech.common.items.ID_MetaTool_01.BRANCHCUTTER;
+import static gregtech.common.items.ID_MetaTool_01.BUTCHERYKNIFE;
+import static gregtech.common.items.ID_MetaTool_01.BUZZSAW_HV;
+import static gregtech.common.items.ID_MetaTool_01.BUZZSAW_LV;
+import static gregtech.common.items.ID_MetaTool_01.BUZZSAW_MV;
+import static gregtech.common.items.ID_MetaTool_01.CHAINSAW_HV;
+import static gregtech.common.items.ID_MetaTool_01.CHAINSAW_LV;
+import static gregtech.common.items.ID_MetaTool_01.CHAINSAW_MV;
+import static gregtech.common.items.ID_MetaTool_01.CROWBAR;
+import static gregtech.common.items.ID_MetaTool_01.DRILL_HV;
+import static gregtech.common.items.ID_MetaTool_01.DRILL_LV;
+import static gregtech.common.items.ID_MetaTool_01.DRILL_MV;
+import static gregtech.common.items.ID_MetaTool_01.FILE;
+import static gregtech.common.items.ID_MetaTool_01.HARDHAMMER;
+import static gregtech.common.items.ID_MetaTool_01.HOE;
+import static gregtech.common.items.ID_MetaTool_01.JACKHAMMER;
+import static gregtech.common.items.ID_MetaTool_01.KNIFE;
+import static gregtech.common.items.ID_MetaTool_01.MORTAR;
+import static gregtech.common.items.ID_MetaTool_01.PICKAXE;
+import static gregtech.common.items.ID_MetaTool_01.PLOW;
+import static gregtech.common.items.ID_MetaTool_01.PLUNGER;
+import static gregtech.common.items.ID_MetaTool_01.POCKET_BRANCHCUTTER;
+import static gregtech.common.items.ID_MetaTool_01.POCKET_FILE;
+import static gregtech.common.items.ID_MetaTool_01.POCKET_KNIFE;
+import static gregtech.common.items.ID_MetaTool_01.POCKET_MULTITOOL;
+import static gregtech.common.items.ID_MetaTool_01.POCKET_SAW;
+import static gregtech.common.items.ID_MetaTool_01.POCKET_SCREWDRIVER;
+import static gregtech.common.items.ID_MetaTool_01.POCKET_WIRECUTTER;
+import static gregtech.common.items.ID_MetaTool_01.ROLLING_PIN;
+import static gregtech.common.items.ID_MetaTool_01.SAW;
+import static gregtech.common.items.ID_MetaTool_01.SCOOP;
+import static gregtech.common.items.ID_MetaTool_01.SCREWDRIVER;
+import static gregtech.common.items.ID_MetaTool_01.SCREWDRIVER_HV;
+import static gregtech.common.items.ID_MetaTool_01.SCREWDRIVER_LV;
+import static gregtech.common.items.ID_MetaTool_01.SCREWDRIVER_MV;
+import static gregtech.common.items.ID_MetaTool_01.SENSE;
+import static gregtech.common.items.ID_MetaTool_01.SHOVEL;
+import static gregtech.common.items.ID_MetaTool_01.SOFTMALLET;
+import static gregtech.common.items.ID_MetaTool_01.SOLDERING_IRON_HV;
+import static gregtech.common.items.ID_MetaTool_01.SOLDERING_IRON_LV;
+import static gregtech.common.items.ID_MetaTool_01.SOLDERING_IRON_MV;
+import static gregtech.common.items.ID_MetaTool_01.SWORD;
+import static gregtech.common.items.ID_MetaTool_01.TURBINE;
+import static gregtech.common.items.ID_MetaTool_01.TURBINE_HUGE;
+import static gregtech.common.items.ID_MetaTool_01.TURBINE_LARGE;
+import static gregtech.common.items.ID_MetaTool_01.TURBINE_SMALL;
+import static gregtech.common.items.ID_MetaTool_01.UNIVERSALSPADE;
+import static gregtech.common.items.ID_MetaTool_01.WIRECUTTER;
+import static gregtech.common.items.ID_MetaTool_01.WRENCH;
+import static gregtech.common.items.ID_MetaTool_01.WRENCH_HV;
+import static gregtech.common.items.ID_MetaTool_01.WRENCH_LV;
+import static gregtech.common.items.ID_MetaTool_01.WRENCH_MV;
+
+import net.minecraft.init.Blocks;
+import net.minecraft.init.Items;
+import net.minecraft.item.ItemStack;
+
+import gregtech.api.GregTech_API;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.OrePrefixes;
+import gregtech.api.enums.TC_Aspects;
+import gregtech.api.enums.ToolDictNames;
+import gregtech.api.items.GT_MetaGenerated_Tool;
+import gregtech.api.util.GT_ModHandler;
+import gregtech.api.util.GT_OreDictUnificator;
+import gregtech.common.tools.GT_Tool_Axe;
+import gregtech.common.tools.GT_Tool_BranchCutter;
+import gregtech.common.tools.GT_Tool_ButcheryKnife;
+import gregtech.common.tools.GT_Tool_BuzzSaw;
+import gregtech.common.tools.GT_Tool_Chainsaw_HV;
+import gregtech.common.tools.GT_Tool_Chainsaw_LV;
+import gregtech.common.tools.GT_Tool_Chainsaw_MV;
+import gregtech.common.tools.GT_Tool_Crowbar;
+import gregtech.common.tools.GT_Tool_Drill_HV;
+import gregtech.common.tools.GT_Tool_Drill_LV;
+import gregtech.common.tools.GT_Tool_Drill_MV;
+import gregtech.common.tools.GT_Tool_File;
+import gregtech.common.tools.GT_Tool_HardHammer;
+import gregtech.common.tools.GT_Tool_Hoe;
+import gregtech.common.tools.GT_Tool_JackHammer;
+import gregtech.common.tools.GT_Tool_Knife;
+import gregtech.common.tools.GT_Tool_Mortar;
+import gregtech.common.tools.GT_Tool_Pickaxe;
+import gregtech.common.tools.GT_Tool_Plow;
+import gregtech.common.tools.GT_Tool_Plunger;
+import gregtech.common.tools.GT_Tool_RollingPin;
+import gregtech.common.tools.GT_Tool_Saw;
+import gregtech.common.tools.GT_Tool_Scoop;
+import gregtech.common.tools.GT_Tool_Screwdriver;
+import gregtech.common.tools.GT_Tool_Screwdriver_LV;
+import gregtech.common.tools.GT_Tool_Sense;
+import gregtech.common.tools.GT_Tool_Shovel;
+import gregtech.common.tools.GT_Tool_SoftHammer;
+import gregtech.common.tools.GT_Tool_Soldering_Iron;
+import gregtech.common.tools.GT_Tool_Sword;
+import gregtech.common.tools.GT_Tool_Turbine_Huge;
+import gregtech.common.tools.GT_Tool_Turbine_Large;
+import gregtech.common.tools.GT_Tool_Turbine_Normal;
+import gregtech.common.tools.GT_Tool_Turbine_Small;
+import gregtech.common.tools.GT_Tool_UniversalSpade;
+import gregtech.common.tools.GT_Tool_WireCutter;
+import gregtech.common.tools.GT_Tool_Wrench;
+import gregtech.common.tools.GT_Tool_Wrench_HV;
+import gregtech.common.tools.GT_Tool_Wrench_LV;
+import gregtech.common.tools.GT_Tool_Wrench_MV;
+import gregtech.common.tools.pocket.GT_Tool_Pocket_BranchCutter;
+import gregtech.common.tools.pocket.GT_Tool_Pocket_File;
+import gregtech.common.tools.pocket.GT_Tool_Pocket_Knife;
+import gregtech.common.tools.pocket.GT_Tool_Pocket_Multitool;
+import gregtech.common.tools.pocket.GT_Tool_Pocket_Saw;
+import gregtech.common.tools.pocket.GT_Tool_Pocket_Screwdriver;
+import gregtech.common.tools.pocket.GT_Tool_Pocket_WireCutter;
+
+public class GT_MetaGenerated_Tool_01 extends GT_MetaGenerated_Tool {
+
+ public static GT_MetaGenerated_Tool_01 INSTANCE;
+
+ public GT_MetaGenerated_Tool_01() {
+ super("metatool.01");
+ INSTANCE = this;
+ addTool(
+ SWORD.ID,
+ "Sword",
+ "",
+ new GT_Tool_Sword(),
+ ToolDictNames.craftingToolSword,
+ ToolDictNames.craftingToolBlade,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 4L));
+ addTool(
+ PICKAXE.ID,
+ "Pickaxe",
+ "",
+ new GT_Tool_Pickaxe(),
+ ToolDictNames.craftingToolPickaxe,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.PERFODIO, 4L));
+ addTool(
+ SHOVEL.ID,
+ "Shovel",
+ "",
+ new GT_Tool_Shovel(),
+ ToolDictNames.craftingToolShovel,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.PERFODIO, 4L));
+ addTool(
+ AXE.ID,
+ "Axe",
+ "",
+ new GT_Tool_Axe(),
+ ToolDictNames.craftingToolAxe,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.METO, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 2L));
+ addTool(
+ HOE.ID,
+ "Hoe",
+ "",
+ new GT_Tool_Hoe(),
+ ToolDictNames.craftingToolHoe,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 4L));
+ addTool(
+ SAW.ID,
+ "Saw",
+ "Can also harvest Ice",
+ new GT_Tool_Saw(),
+ ToolDictNames.craftingToolSaw,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.METO, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 2L));
+ GregTech_API.registerTool(
+ addTool(
+ HARDHAMMER.ID,
+ "Hammer",
+ "Crushes Ores instead of harvesting them",
+ new GT_Tool_HardHammer(),
+ ToolDictNames.craftingToolHardHammer,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L)),
+ GregTech_API.sHardHammerList);
+ GregTech_API.registerTool(
+ addTool(
+ SOFTMALLET.ID,
+ "Soft Mallet",
+ "",
+ new GT_Tool_SoftHammer(),
+ ToolDictNames.craftingToolSoftHammer,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.LIMUS, 4L)),
+ GregTech_API.sSoftHammerList);
+ GregTech_API.registerTool(
+ addTool(
+ WRENCH.ID,
+ "Wrench",
+ "Hold Leftclick to dismantle Machines",
+ new GT_Tool_Wrench(),
+ ToolDictNames.craftingToolWrench,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L)),
+ GregTech_API.sWrenchList);
+ addTool(
+ FILE.ID,
+ "File",
+ "",
+ new GT_Tool_File(),
+ ToolDictNames.craftingToolFile,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L));
+ GregTech_API.registerTool(
+ addTool(
+ CROWBAR.ID,
+ "Crowbar",
+ "Dismounts Covers and Rotates Rails",
+ new GT_Tool_Crowbar(),
+ ToolDictNames.craftingToolCrowbar,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 2L)),
+ GregTech_API.sCrowbarList);
+ GregTech_API.registerTool(
+ addTool(
+ SCREWDRIVER.ID,
+ "Screwdriver",
+ "Adjusts Covers and Machines",
+ new GT_Tool_Screwdriver(),
+ ToolDictNames.craftingToolScrewdriver,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L)),
+ GregTech_API.sScrewdriverList);
+ addTool(
+ MORTAR.ID,
+ "Mortar",
+ "",
+ new GT_Tool_Mortar(),
+ ToolDictNames.craftingToolMortar,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.PERDITIO, 2L));
+ GregTech_API.registerTool(
+ addTool(
+ WIRECUTTER.ID,
+ "Wire Cutter",
+ "",
+ new GT_Tool_WireCutter(),
+ ToolDictNames.craftingToolWireCutter,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L)),
+ GregTech_API.sWireCutterList);
+ addTool(
+ SCOOP.ID,
+ "Scoop",
+ "",
+ new GT_Tool_Scoop(),
+ ToolDictNames.craftingToolScoop,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.BESTIA, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.PANNUS, 2L));
+ addTool(
+ BRANCHCUTTER.ID,
+ "Branch Cutter",
+ "",
+ new GT_Tool_BranchCutter(),
+ ToolDictNames.craftingToolBranchCutter,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.METO, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 2L));
+ GregTech_API.registerTool(
+ addTool(
+ UNIVERSALSPADE.ID,
+ "Universal Spade",
+ "",
+ new GT_Tool_UniversalSpade(),
+ ToolDictNames.craftingToolBlade,
+ ToolDictNames.craftingToolShovel,
+ ToolDictNames.craftingToolCrowbar,
+ ToolDictNames.craftingToolSaw,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.METO, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 1L)),
+ GregTech_API.sCrowbarList);
+ addTool(
+ KNIFE.ID,
+ "Knife",
+ "",
+ new GT_Tool_Knife(),
+ ToolDictNames.craftingToolBlade,
+ ToolDictNames.craftingToolKnife,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.CORPUS, 2L));
+ addTool(
+ BUTCHERYKNIFE.ID,
+ "Butchery Knife",
+ "Has a slow Attack Rate",
+ new GT_Tool_ButcheryKnife(),
+ ToolDictNames.craftingToolBlade,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.CORPUS, 4L));
+
+ addTool(
+ SENSE.ID,
+ "Sense",
+ "Because a Scythe doesn't make Sense",
+ new GT_Tool_Sense(),
+ ToolDictNames.craftingToolBlade,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.METO, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MORTUUS, 2L));
+ addTool(
+ PLOW.ID,
+ "Plow",
+ "Used to get rid of Snow",
+ new GT_Tool_Plow(),
+ ToolDictNames.craftingToolPlow,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.METO, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.GELUM, 2L));
+ addTool(
+ PLUNGER.ID,
+ "Plunger",
+ "",
+ new GT_Tool_Plunger(),
+ ToolDictNames.craftingToolPlunger,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 2L));
+ addTool(
+ ROLLING_PIN.ID,
+ "Rolling Pin",
+ "",
+ new GT_Tool_RollingPin(),
+ ToolDictNames.craftingToolRollingPin,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.LIMUS, 4L));
+
+ addTool(
+ DRILL_LV.ID,
+ "Drill (LV)",
+ "",
+ new GT_Tool_Drill_LV(),
+ ToolDictNames.craftingToolMiningDrill,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.PERFODIO, 4L));
+ addTool(
+ DRILL_MV.ID,
+ "Drill (MV)",
+ "",
+ new GT_Tool_Drill_MV(),
+ ToolDictNames.craftingToolMiningDrill,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.PERFODIO, 4L));
+ addTool(
+ DRILL_HV.ID,
+ "Drill (HV)",
+ "",
+ new GT_Tool_Drill_HV(),
+ ToolDictNames.craftingToolMiningDrill,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.PERFODIO, 4L));
+ addTool(
+ CHAINSAW_LV.ID,
+ "Chainsaw (LV)",
+ "Can also harvest Ice",
+ new GT_Tool_Chainsaw_LV(),
+ ToolDictNames.craftingToolSaw,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.METO, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 2L));
+ addTool(
+ CHAINSAW_MV.ID,
+ "Chainsaw (MV)",
+ "Can also harvest Ice",
+ new GT_Tool_Chainsaw_MV(),
+ ToolDictNames.craftingToolSaw,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.METO, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 2L));
+ addTool(
+ CHAINSAW_HV.ID,
+ "Chainsaw (HV)",
+ "Can also harvest Ice",
+ new GT_Tool_Chainsaw_HV(),
+ ToolDictNames.craftingToolSaw,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.METO, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 2L));
+ GregTech_API.registerTool(
+ addTool(
+ WRENCH_LV.ID,
+ "Wrench (LV)",
+ "Hold Left Button to dismantle Machines",
+ new GT_Tool_Wrench_LV(),
+ ToolDictNames.craftingToolWrench,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 4L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L)),
+ GregTech_API.sWrenchList);
+ GregTech_API.registerTool(
+ addTool(
+ WRENCH_MV.ID,
+ "Wrench (MV)",
+ "Hold Left Button to dismantle Machines",
+ new GT_Tool_Wrench_MV(),
+ ToolDictNames.craftingToolWrench,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 4L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L)),
+ GregTech_API.sWrenchList);
+ GregTech_API.registerTool(
+ addTool(
+ WRENCH_HV.ID,
+ "Wrench (HV)",
+ "Hold Left Button to dismantle Machines",
+ new GT_Tool_Wrench_HV(),
+ ToolDictNames.craftingToolWrench,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 4L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L)),
+ GregTech_API.sWrenchList);
+ GregTech_API.registerTool(
+ addTool(
+ JACKHAMMER.ID,
+ "JackHammer (HV)",
+ "Breaks Rocks into pieces",
+ new GT_Tool_JackHammer(),
+ ToolDictNames.craftingToolJackHammer,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.PERFODIO, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.PERDITIO, 2L)),
+ GregTech_API.sJackhammerList);
+ addTool(
+ BUZZSAW_LV.ID,
+ "Buzzsaw (LV)",
+ "Not suitable for harvesting Blocks",
+ new GT_Tool_BuzzSaw(),
+ ToolDictNames.craftingToolSaw,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 2L));
+ addTool(
+ BUZZSAW_MV.ID,
+ "Buzzsaw (MV)",
+ "Not suitable for harvesting Blocks",
+ new GT_Tool_BuzzSaw(),
+ ToolDictNames.craftingToolSaw,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 2L));
+ addTool(
+ BUZZSAW_HV.ID,
+ "Buzzsaw (HV)",
+ "Not suitable for harvesting Blocks",
+ new GT_Tool_BuzzSaw(),
+ ToolDictNames.craftingToolSaw,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 2L));
+ GregTech_API.registerTool(
+ addTool(
+ SCREWDRIVER_LV.ID,
+ "Screwdriver (LV)",
+ "Adjusts Covers and Machines",
+ new GT_Tool_Screwdriver_LV(),
+ ToolDictNames.craftingToolScrewdriver,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L)),
+ GregTech_API.sScrewdriverList);
+ GregTech_API.registerTool(
+ addTool(
+ SCREWDRIVER_MV.ID,
+ "Screwdriver (MV)",
+ "Adjusts Covers and Machines",
+ new GT_Tool_Screwdriver_LV(),
+ ToolDictNames.craftingToolScrewdriver,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L)),
+ GregTech_API.sScrewdriverList);
+ GregTech_API.registerTool(
+ addTool(
+ SCREWDRIVER_HV.ID,
+ "Screwdriver (HV)",
+ "Adjusts Covers and Machines",
+ new GT_Tool_Screwdriver_LV(),
+ ToolDictNames.craftingToolScrewdriver,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L)),
+ GregTech_API.sScrewdriverList);
+ GregTech_API.registerTool(
+ addTool(
+ SOLDERING_IRON_LV.ID,
+ "Soldering Iron (LV)",
+ "Fixes burned out Circuits. Needs soldering materials in inventory.",
+ new GT_Tool_Soldering_Iron(),
+ ToolDictNames.craftingToolSolderingIron,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L)),
+ GregTech_API.sSolderingToolList);
+ GregTech_API.registerTool(
+ addTool(
+ SOLDERING_IRON_MV.ID,
+ "Soldering Iron (MV)",
+ "Fixes burned out Circuits. Needs soldering materials in inventory.",
+ new GT_Tool_Soldering_Iron(),
+ ToolDictNames.craftingToolSolderingIron,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L)),
+ GregTech_API.sSolderingToolList);
+ GregTech_API.registerTool(
+ addTool(
+ SOLDERING_IRON_HV.ID,
+ "Soldering Iron (HV)",
+ "Fixes burned out Circuits. Needs soldering materials in inventory.",
+ new GT_Tool_Soldering_Iron(),
+ ToolDictNames.craftingToolSolderingIron,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L)),
+ GregTech_API.sSolderingToolList);
+
+ addTool(
+ TURBINE_SMALL.ID,
+ "Small Turbine",
+ "Turbine Rotors for your power station",
+ new GT_Tool_Turbine_Small());
+ addTool(TURBINE.ID, "Turbine", "Turbine Rotors for your power station", new GT_Tool_Turbine_Normal());
+ addTool(
+ TURBINE_LARGE.ID,
+ "Large Turbine",
+ "Turbine Rotors for your power station",
+ new GT_Tool_Turbine_Large());
+ addTool(TURBINE_HUGE.ID, "Huge Turbine", "Turbine Rotors for your power station", new GT_Tool_Turbine_Huge());
+
+ addTool(
+ POCKET_MULTITOOL.ID,
+ "Pocket Multitool",
+ "6 useful Tools in one!",
+ new GT_Tool_Pocket_Multitool(POCKET_KNIFE.ID),
+ null,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 6),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 3),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 3));
+ addTool(
+ POCKET_KNIFE.ID,
+ "Pocket Multitool (Knife)",
+ "",
+ new GT_Tool_Pocket_Knife(POCKET_SAW.ID),
+ ToolDictNames.craftingToolKnife,
+ ToolDictNames.craftingToolBlade,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 6),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 3),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 3));
+ addTool(
+ POCKET_SAW.ID,
+ "Pocket Multitool (Saw)",
+ "Can also harvest Ice",
+ new GT_Tool_Pocket_Saw(POCKET_FILE.ID),
+ ToolDictNames.craftingToolSaw,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 6),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 3),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 3));
+ addTool(
+ POCKET_FILE.ID,
+ "Pocket Multitool (File)",
+ "",
+ new GT_Tool_Pocket_File(POCKET_SCREWDRIVER.ID),
+ ToolDictNames.craftingToolFile,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 6),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 3),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 3));
+ GregTech_API.registerTool(
+ addTool(
+ POCKET_SCREWDRIVER.ID,
+ "Pocket Multitool (Screwdriver)",
+ "Adjusts Covers and Machines",
+ new GT_Tool_Pocket_Screwdriver(POCKET_WIRECUTTER.ID),
+ ToolDictNames.craftingToolScrewdriver,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 6),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 3),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 3)),
+ GregTech_API.sScrewdriverList);
+ GregTech_API.registerTool(
+ addTool(
+ POCKET_WIRECUTTER.ID,
+ "Pocket Multitool (Wire Cutter)",
+ "",
+ new GT_Tool_Pocket_WireCutter(POCKET_BRANCHCUTTER.ID),
+ ToolDictNames.craftingToolWireCutter,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 6),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 3),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 3)),
+ GregTech_API.sWireCutterList);
+ addTool(
+ POCKET_BRANCHCUTTER.ID,
+ "Pocket Multitool (Branch Cutter)",
+ "",
+ new GT_Tool_Pocket_BranchCutter(POCKET_MULTITOOL.ID),
+ ToolDictNames.craftingToolBranchCutter,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 6),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 3),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 3));
+ initCraftingShapedRecipes();
+ initCraftingShapelessRecipes();
+ }
+
+ private void initCraftingShapelessRecipes() {
+ GT_ModHandler.addShapelessCraftingRecipe(
+ GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coal, 1L),
+ GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { ToolDictNames.craftingToolMortar, new ItemStack(Items.coal, 1) });
+ GT_ModHandler.addShapelessCraftingRecipe(
+ GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Clay, 1L),
+ GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { ToolDictNames.craftingToolMortar, new ItemStack(Blocks.clay, 1) });
+ GT_ModHandler.addShapelessCraftingRecipe(
+ GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wheat, 1L),
+ GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { ToolDictNames.craftingToolMortar, new ItemStack(Items.wheat, 1) });
+ GT_ModHandler.addShapelessCraftingRecipe(
+ new ItemStack(Items.flint, 1),
+ GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { ToolDictNames.craftingToolMortar, new ItemStack(Blocks.gravel, 1) });
+ GT_ModHandler.addShapelessCraftingRecipe(
+ new ItemStack(Items.blaze_powder, 2),
+ GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { ToolDictNames.craftingToolMortar, new ItemStack(Items.blaze_rod, 1) });
+ }
+
+ private void initCraftingShapedRecipes() {
+ GT_ModHandler.addCraftingRecipe(
+ INSTANCE.getToolWithStats(MORTAR.ID, 1, Materials.Flint, Materials.Stone, null),
+ GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { " I ", "SIS", "SSS", 'I', new ItemStack(Items.flint, 1), 'S', OrePrefixes.stone });
+ GT_ModHandler.addCraftingRecipe(
+ INSTANCE.getToolWithStats(MORTAR.ID, 1, Materials.Bronze, Materials.Stone, null),
+ GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { " I ", "SIS", "SSS", 'I', OrePrefixes.ingot.get(Materials.Bronze), 'S', OrePrefixes.stone });
+ GT_ModHandler.addCraftingRecipe(
+ INSTANCE.getToolWithStats(MORTAR.ID, 1, Materials.Iron, Materials.Stone, null),
+ GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { " I ", "SIS", "SSS", 'I', OrePrefixes.ingot.get(Materials.Iron), 'S', OrePrefixes.stone });
+ GT_ModHandler.addCraftingRecipe(
+ INSTANCE.getToolWithStats(MORTAR.ID, 1, Materials.Steel, Materials.Stone, null),
+ GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { " I ", "SIS", "SSS", 'I', OrePrefixes.ingot.get(Materials.Steel), 'S', OrePrefixes.stone });
+ GT_ModHandler.addCraftingRecipe(
+ INSTANCE.getToolWithStats(MORTAR.ID, 1, Materials.WroughtIron, Materials.Stone, null),
+ GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { " I ", "SIS", "SSS", 'I', OrePrefixes.ingot.get(Materials.WroughtIron), 'S',
+ OrePrefixes.stone });
+ GT_ModHandler.addCraftingRecipe(
+ INSTANCE.getToolWithStats(MORTAR.ID, 1, Materials.RedSteel, Materials.Stone, null),
+ GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { " I ", "SIS", "SSS", 'I', OrePrefixes.ingot.get(Materials.RedSteel), 'S',
+ OrePrefixes.stone });
+ GT_ModHandler.addCraftingRecipe(
+ INSTANCE.getToolWithStats(MORTAR.ID, 1, Materials.BlueSteel, Materials.Stone, null),
+ GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { " I ", "SIS", "SSS", 'I', OrePrefixes.ingot.get(Materials.BlueSteel), 'S',
+ OrePrefixes.stone });
+ GT_ModHandler.addCraftingRecipe(
+ INSTANCE.getToolWithStats(MORTAR.ID, 1, Materials.BlackSteel, Materials.Stone, null),
+ GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { " I ", "SIS", "SSS", 'I', OrePrefixes.ingot.get(Materials.BlackSteel), 'S',
+ OrePrefixes.stone });
+ GT_ModHandler.addCraftingRecipe(
+ INSTANCE.getToolWithStats(MORTAR.ID, 1, Materials.DamascusSteel, Materials.Stone, null),
+ GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { " I ", "SIS", "SSS", 'I', OrePrefixes.ingot.get(Materials.DamascusSteel), 'S',
+ OrePrefixes.stone });
+ GT_ModHandler.addCraftingRecipe(
+ INSTANCE.getToolWithStats(MORTAR.ID, 1, Materials.Thaumium, Materials.Stone, null),
+ GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { " I ", "SIS", "SSS", 'I', OrePrefixes.ingot.get(Materials.Thaumium), 'S',
+ OrePrefixes.stone });
+
+ GT_ModHandler.addCraftingRecipe(
+ INSTANCE.getToolWithStats(ROLLING_PIN.ID, 1, Materials.Wood, Materials.Wood, null),
+ GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { " S", " I ", "S f", 'I', OrePrefixes.plank.get(Materials.Wood), 'S',
+ OrePrefixes.stick.get(Materials.Wood) });
+ GT_ModHandler.addCraftingRecipe(
+ INSTANCE.getToolWithStats(ROLLING_PIN.ID, 1, Materials.Plastic, Materials.Plastic, null),
+ GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { " S", " I ", "S f", 'I', OrePrefixes.ingot.get(Materials.Plastic), 'S',
+ OrePrefixes.stick.get(Materials.Plastic) });
+ GT_ModHandler.addCraftingRecipe(
+ INSTANCE.getToolWithStats(ROLLING_PIN.ID, 1, Materials.Aluminium, Materials.Aluminium, null),
+ GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { " S", " I ", "S f", 'I', OrePrefixes.ingot.get(Materials.Aluminium), 'S',
+ OrePrefixes.stick.get(Materials.Aluminium) });
+ GT_ModHandler.addCraftingRecipe(
+ INSTANCE.getToolWithStats(ROLLING_PIN.ID, 1, Materials.StainlessSteel, Materials.StainlessSteel, null),
+ GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { " S", " I ", "S f", 'I', OrePrefixes.ingot.get(Materials.StainlessSteel), 'S',
+ OrePrefixes.stick.get(Materials.StainlessSteel) });
+ GT_ModHandler.addCraftingRecipe(
+ INSTANCE.getToolWithStats(ROLLING_PIN.ID, 1, Materials.IronWood, Materials.IronWood, null),
+ GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { " S", " I ", "S f", 'I', OrePrefixes.ingot.get(Materials.IronWood), 'S',
+ OrePrefixes.stick.get(Materials.IronWood) });
+
+ GT_ModHandler.addCraftingRecipe(
+ INSTANCE.getToolWithStats(SWORD.ID, 1, Materials.Flint, Materials.Wood, null),
+ GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { "F", "F", "S", 'S', OrePrefixes.stick.get(Materials.Wood), 'F',
+ new ItemStack(Items.flint, 1) });
+ GT_ModHandler.addCraftingRecipe(
+ INSTANCE.getToolWithStats(PICKAXE.ID, 1, Materials.Flint, Materials.Wood, null),
+ GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { "FFF", " S ", " S ", 'S', OrePrefixes.stick.get(Materials.Wood), 'F',
+ new ItemStack(Items.flint, 1) });
+ GT_ModHandler.addCraftingRecipe(
+ INSTANCE.getToolWithStats(SHOVEL.ID, 1, Materials.Flint, Materials.Wood, null),
+ GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { "F", "S", "S", 'S', OrePrefixes.stick.get(Materials.Wood), 'F',
+ new ItemStack(Items.flint, 1) });
+ GT_ModHandler.addCraftingRecipe(
+ INSTANCE.getToolWithStats(AXE.ID, 1, Materials.Flint, Materials.Wood, null),
+ GT_ModHandler.RecipeBits.MIRRORED | GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { "FF", "FS", " S", 'S', OrePrefixes.stick.get(Materials.Wood), 'F',
+ new ItemStack(Items.flint, 1) });
+ GT_ModHandler.addCraftingRecipe(
+ INSTANCE.getToolWithStats(HOE.ID, 1, Materials.Flint, Materials.Wood, null),
+ GT_ModHandler.RecipeBits.MIRRORED | GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { "FF", " S", " S", 'S', OrePrefixes.stick.get(Materials.Wood), 'F',
+ new ItemStack(Items.flint, 1) });
+ GT_ModHandler.addCraftingRecipe(
+ INSTANCE.getToolWithStats(KNIFE.ID, 1, Materials.Flint, Materials.Wood, null),
+ GT_ModHandler.RecipeBits.NOT_REMOVABLE,
+ new Object[] { "F", "S", 'S', OrePrefixes.stick.get(Materials.Wood), 'F', new ItemStack(Items.flint, 1) });
+ }
+}
diff --git a/src/main/java/gregtech/common/items/GT_NeutronReflector_Item.java b/src/main/java/gregtech/common/items/GT_NeutronReflector_Item.java
new file mode 100644
index 0000000000..b2fd104917
--- /dev/null
+++ b/src/main/java/gregtech/common/items/GT_NeutronReflector_Item.java
@@ -0,0 +1,54 @@
+package gregtech.common.items;
+
+import net.minecraft.item.ItemStack;
+
+import gregtech.api.items.GT_Generic_Item;
+import ic2.api.reactor.IReactor;
+import ic2.api.reactor.IReactorComponent;
+
+public class GT_NeutronReflector_Item extends GT_Generic_Item implements IReactorComponent {
+
+ public GT_NeutronReflector_Item(String aUnlocalized, String aEnglish, int aMaxDamage) {
+ super(aUnlocalized, aEnglish, "Undestructable");
+ this.setMaxStackSize(64);
+ this.setMaxDamage(aMaxDamage);
+ }
+
+ @Override
+ public boolean acceptUraniumPulse(IReactor reactor, ItemStack yourStack, ItemStack pulsingStack, int youX, int youY,
+ int pulseX, int pulseY, boolean heatrun) {
+ if (!heatrun) {
+ ((IReactorComponent) pulsingStack.getItem())
+ .acceptUraniumPulse(reactor, pulsingStack, yourStack, pulseX, pulseY, youX, youY, heatrun);
+ }
+ return true;
+ }
+
+ @Override
+ public boolean canStoreHeat(IReactor aReactor, ItemStack aStack, int x, int y) {
+ return false;
+ }
+
+ @Override
+ public int getMaxHeat(IReactor aReactor, ItemStack aStack, int x, int y) {
+ return 0;
+ }
+
+ @Override
+ public int getCurrentHeat(IReactor aReactor, ItemStack aStack, int x, int y) {
+ return 0;
+ }
+
+ @Override
+ public float influenceExplosion(IReactor aReactor, ItemStack aStack) {
+ return -1.0F;
+ }
+
+ @Override
+ public int alterHeat(IReactor aReactor, ItemStack aStack, int x, int y, int aHeat) {
+ return aHeat;
+ }
+
+ @Override
+ public void processChamber(IReactor aReactor, ItemStack aStack, int x, int y, boolean aHeatRun) {}
+}
diff --git a/src/main/java/gregtech/common/items/GT_SensorCard_Item.java b/src/main/java/gregtech/common/items/GT_SensorCard_Item.java
new file mode 100644
index 0000000000..67e5b24a70
--- /dev/null
+++ b/src/main/java/gregtech/common/items/GT_SensorCard_Item.java
@@ -0,0 +1,111 @@
+package gregtech.common.items;
+
+import java.util.ArrayList;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.UUID;
+
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.util.ChunkCoordinates;
+import net.minecraft.world.World;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import gregtech.api.interfaces.tileentity.IGregTechDeviceInformation;
+import gregtech.api.items.GT_Generic_Item;
+import gregtech.api.util.GT_LanguageManager;
+import shedar.mods.ic2.nuclearcontrol.api.CardState;
+import shedar.mods.ic2.nuclearcontrol.api.ICardWrapper;
+import shedar.mods.ic2.nuclearcontrol.api.IPanelDataSource;
+import shedar.mods.ic2.nuclearcontrol.api.IRemoteSensor;
+import shedar.mods.ic2.nuclearcontrol.api.PanelSetting;
+import shedar.mods.ic2.nuclearcontrol.api.PanelString;
+
+public class GT_SensorCard_Item extends GT_Generic_Item implements IRemoteSensor, IPanelDataSource {
+
+ private static final UUID CARD_TYPE = new UUID(0L, 41L);
+
+ private int strCount;
+
+ public GT_SensorCard_Item(String aUnlocalized, String aEnglish) {
+ super(aUnlocalized, aEnglish, "Insert into Display Panel");
+ setMaxStackSize(1);
+ }
+
+ @Override
+ public void addAdditionalToolTips(List<String> aList, ItemStack aStack, EntityPlayer aPlayer) {
+ super.addAdditionalToolTips(aList, aStack, aPlayer);
+ if (aStack != null) {
+ NBTTagCompound tNBT = aStack.getTagCompound();
+ if (tNBT == null) {
+ aList.add(transItem("014", "Missing Coordinates!"));
+ } else {
+ aList.add(transItem("015", "Device at:"));
+ aList.add(
+ String.format(
+ "x: %d, y: %d, z: %d",
+ tNBT.getInteger("x"),
+ tNBT.getInteger("y"),
+ tNBT.getInteger("z")));
+ }
+ }
+ }
+
+ @Override
+ public CardState update(TileEntity aPanel, ICardWrapper aCard, int aMaxRange) {
+ return update(aPanel.getWorldObj(), aCard, aMaxRange);
+ }
+
+ @Override
+ public CardState update(World world, ICardWrapper aCard, int aMaxRange) {
+ ChunkCoordinates target = aCard.getTarget();
+
+ TileEntity tTileEntity = world.getTileEntity(target.posX, target.posY, target.posZ);
+ if (((tTileEntity instanceof IGregTechDeviceInformation))
+ && (((IGregTechDeviceInformation) tTileEntity).isGivingInformation())) {
+ String[] tInfoData = ((IGregTechDeviceInformation) tTileEntity).getInfoData();
+ for (int i = 0; i < tInfoData.length; i++) {
+ aCard.setString("mString" + i, tInfoData[i]);
+ }
+ aCard.setInt("mString", strCount = tInfoData.length);
+ return CardState.OK;
+ }
+ return CardState.NO_TARGET;
+ }
+
+ @Override
+ public List<PanelString> getStringData(int aSettings, ICardWrapper aCard, boolean aLabels) {
+ List<PanelString> rList = new LinkedList<>();
+ for (int i = 0; i < (strCount = aCard.getInt("mString")); i++) {
+ if ((aSettings & 1 << i) != 0) {
+ PanelString line = new PanelString();
+ line.textLeft = GT_LanguageManager.getTranslation(aCard.getString("mString" + i), "\\\\");
+ rList.add(line);
+ }
+ }
+ return rList;
+ }
+
+ @Override
+ public List<PanelSetting> getSettingsList() {
+ List<PanelSetting> rList = new ArrayList<>();
+ for (int i = 0; i < strCount; i++) {
+ rList.add(new PanelSetting(String.valueOf((i + 1)), 1 << i, getCardType()));
+ }
+ return rList;
+ }
+
+ @Override
+ public UUID getCardType() {
+ return CARD_TYPE;
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void getSubItems(Item aItem, CreativeTabs aCreativeTab, List<ItemStack> aOutputSubItems) {}
+}
diff --git a/src/main/java/gregtech/common/items/GT_TierDrone.java b/src/main/java/gregtech/common/items/GT_TierDrone.java
new file mode 100644
index 0000000000..58da852d0e
--- /dev/null
+++ b/src/main/java/gregtech/common/items/GT_TierDrone.java
@@ -0,0 +1,18 @@
+package gregtech.common.items;
+
+import gregtech.api.items.GT_Generic_Item;
+
+public class GT_TierDrone extends GT_Generic_Item {
+
+ private final int level;
+
+ public GT_TierDrone(String aUnlocalized, String aEnglish, String aEnglishTooltip, int level) {
+ super(aUnlocalized, aEnglish, aEnglishTooltip);
+ this.level = level;
+ this.setMaxStackSize(64);
+ }
+
+ public int getLevel() {
+ return level;
+ }
+}
diff --git a/src/main/java/gregtech/common/items/GT_VolumetricFlask.java b/src/main/java/gregtech/common/items/GT_VolumetricFlask.java
new file mode 100644
index 0000000000..5578214e65
--- /dev/null
+++ b/src/main/java/gregtech/common/items/GT_VolumetricFlask.java
@@ -0,0 +1,360 @@
+package gregtech.common.items;
+
+import static gregtech.api.enums.Mods.GregTech;
+import static gregtech.api.util.GT_Utility.formatNumbers;
+import static ic2.core.util.LiquidUtil.drainContainerStack;
+import static ic2.core.util.LiquidUtil.fillContainerStack;
+import static ic2.core.util.LiquidUtil.placeFluid;
+
+import java.util.List;
+
+import net.minecraft.block.Block;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.init.Blocks;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.util.IIcon;
+import net.minecraft.util.MovingObjectPosition;
+import net.minecraft.util.MovingObjectPosition.MovingObjectType;
+import net.minecraft.world.World;
+import net.minecraftforge.common.util.FakePlayer;
+import net.minecraftforge.common.util.ForgeDirection;
+import net.minecraftforge.fluids.Fluid;
+import net.minecraftforge.fluids.FluidRegistry;
+import net.minecraftforge.fluids.FluidStack;
+import net.minecraftforge.fluids.IFluidBlock;
+import net.minecraftforge.fluids.IFluidContainerItem;
+import net.minecraftforge.fluids.IFluidHandler;
+
+import com.gtnewhorizons.modularui.api.ModularUITextures;
+import com.gtnewhorizons.modularui.api.math.Alignment;
+import com.gtnewhorizons.modularui.api.math.Color;
+import com.gtnewhorizons.modularui.api.screen.IItemWithModularUI;
+import com.gtnewhorizons.modularui.api.screen.ModularWindow;
+import com.gtnewhorizons.modularui.api.screen.UIBuildContext;
+import com.gtnewhorizons.modularui.common.widget.TextWidget;
+import com.gtnewhorizons.modularui.common.widget.VanillaButtonWidget;
+import com.gtnewhorizons.modularui.common.widget.textfield.NumericWidget;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import gregtech.api.gui.modularui.GT_UIInfos;
+import gregtech.api.gui.modularui.GT_UITextures;
+import gregtech.api.items.GT_Generic_Item;
+import gregtech.api.util.GT_Utility;
+import ic2.core.util.LiquidUtil;
+
+public class GT_VolumetricFlask extends GT_Generic_Item implements IFluidContainerItem, IItemWithModularUI {
+
+ private final int maxCapacity;
+ private final String unlocalFlaskName;
+
+ @SideOnly(Side.CLIENT)
+ public IIcon iconWindow;
+
+ public GT_VolumetricFlask(String unlocalized, String english, int maxCapacity) {
+ super(unlocalized, english, null);
+ this.maxCapacity = maxCapacity;
+ unlocalFlaskName = unlocalized;
+ setMaxStackSize(64);
+ setNoRepair();
+ }
+
+ @Override
+ public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) {
+ if (!world.isRemote && isEmpty(stack) && getMovingObjectPositionFromPlayer(world, player, true) == null)
+ GT_UIInfos.openPlayerHeldItemUI(player);
+ return super.onItemRightClick(stack, world, player);
+ }
+
+ @Override
+ public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int ordinalSide,
+ float xOffset, float yOffset, float zOffset) {
+ if (player instanceof FakePlayer) {
+ return false;
+ }
+ if (world.isRemote) return false;
+ if (interactWithTank(stack, player, world, x, y, z, ordinalSide)) {
+ return true;
+ }
+ MovingObjectPosition mop = getMovingObjectPositionFromPlayer(world, player, true);
+ if (mop == null) {
+ return false;
+ }
+ if (mop.typeOfHit == MovingObjectType.BLOCK) {
+ x = mop.blockX;
+ y = mop.blockY;
+ z = mop.blockZ;
+ if (!world.canMineBlock(player, x, y, z) || !player.canPlayerEdit(x, y, z, mop.sideHit, stack)) {
+ return false;
+ }
+ if (collectFluidBlock(stack, player, world, x, y, z)) {
+ return true;
+ }
+ ForgeDirection dir = ForgeDirection.VALID_DIRECTIONS[mop.sideHit];
+ FluidStack fluidStack = drainContainerStack(stack, player, 1000, true);
+ if (placeFluid(fluidStack, world, x, y, z)
+ || (player.canPlayerEdit(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, mop.sideHit, stack)
+ && placeFluid(fluidStack, world, x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ))) {
+ if (!player.capabilities.isCreativeMode) drainContainerStack(stack, player, 1000, false);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public boolean isEmpty(ItemStack stack) {
+ return getFluid(stack) == null;
+ }
+
+ public int getFreeSpace(ItemStack stack) {
+ int capacity = getCapacity(stack);
+ if (capacity > 0) {
+ FluidStack fluidStack = getFluid(stack);
+ return fluidStack == null ? capacity : capacity - fluidStack.amount;
+ }
+ return 0;
+ }
+
+ public int getMaxCapacity() {
+ return this.maxCapacity;
+ }
+
+ @Override
+ public int getCapacity(ItemStack stack) {
+ int capacity = 1000;
+ if (stack.hasTagCompound()) {
+ NBTTagCompound nbt = stack.getTagCompound();
+ if (nbt.hasKey("Capacity", 3)) capacity = nbt.getInteger("Capacity");
+ }
+ return Math.min(getMaxCapacity(), capacity);
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void registerIcons(IIconRegister aIconRegister) {
+ super.registerIcons(aIconRegister);
+ iconWindow = aIconRegister.registerIcon(GregTech.getResourcePath("gt." + unlocalFlaskName + ".window"));
+ }
+
+ public void setCapacity(ItemStack stack, int capacity) {
+ capacity = Math.min(capacity, getMaxCapacity());
+ NBTTagCompound nbt = stack.getTagCompound();
+ if (nbt == null) {
+ stack.setTagCompound(nbt = new NBTTagCompound());
+ }
+ nbt.setInteger("Capacity", capacity);
+ }
+
+ @Override
+ public FluidStack getFluid(ItemStack stack) {
+ if (stack.hasTagCompound()) {
+ NBTTagCompound nbt = stack.getTagCompound();
+ if (nbt.hasKey("Fluid", 10)) return FluidStack.loadFluidStackFromNBT(nbt.getCompoundTag("Fluid"));
+ }
+ return null;
+ }
+
+ public void setFluid(ItemStack stack, FluidStack fluidStack) {
+ boolean removeFluid = (fluidStack == null) || (fluidStack.amount <= 0);
+ NBTTagCompound nbt = stack.getTagCompound();
+ if (nbt == null) {
+ if (removeFluid) return;
+ stack.setTagCompound(nbt = new NBTTagCompound());
+ }
+ if (removeFluid) {
+ nbt.removeTag("Fluid");
+ if (nbt.hasNoTags()) {
+ stack.setTagCompound(null);
+ }
+ } else {
+ nbt.setTag("Fluid", fluidStack.writeToNBT(new NBTTagCompound()));
+ }
+ }
+
+ @Override
+ public int fill(ItemStack stack, FluidStack resource, boolean doFill) {
+ if (stack.stackSize != 1) return 0;
+ if ((resource == null) || (resource.amount <= 0)) {
+ return 0;
+ }
+ FluidStack fluidStack = getFluid(stack);
+ if (fluidStack == null) {
+ fluidStack = new FluidStack(resource, 0);
+ } else if (!fluidStack.isFluidEqual(resource)) {
+ return 0;
+ }
+ int amount = Math.min(getCapacity(stack) - fluidStack.amount, resource.amount);
+ if ((doFill) && (amount > 0)) {
+ fluidStack.amount += amount;
+ setFluid(stack, fluidStack);
+ }
+ return amount;
+ }
+
+ @Override
+ public FluidStack drain(ItemStack stack, int maxDrain, boolean doDrain) {
+ if (stack.stackSize != 1) return null;
+ FluidStack fluidStack = getFluid(stack);
+ if (fluidStack == null) return null;
+ maxDrain = Math.min(fluidStack.amount, maxDrain);
+ if (doDrain) {
+ fluidStack.amount -= maxDrain;
+ setFluid(stack, fluidStack);
+ }
+ return new FluidStack(fluidStack, maxDrain);
+ }
+
+ @Override
+ protected void addAdditionalToolTips(List<String> info, ItemStack stack, EntityPlayer aPlayer) {
+ FluidStack fs = getFluid(stack);
+ if (fs != null) {
+ info.add(String.format("< %s, %s mB >", GT_Utility.getFluidName(fs, true), formatNumbers(fs.amount)));
+ } else {
+ info.add(String.format("< Empty, %s mB >", formatNumbers(getCapacity(stack))));
+ }
+ info.add("Rightclick on air to set volume (only while empty)");
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void getSubItems(Item item, CreativeTabs creativeTabs, List<ItemStack> itemList) {
+ itemList.add(new ItemStack(this));
+ for (Fluid fluid : FluidRegistry.getRegisteredFluids()
+ .values()) {
+ if (fluid != null) {
+ ItemStack stack = new ItemStack(this);
+ setCapacity(stack, getMaxCapacity());
+ fill(stack, new FluidStack(fluid, Integer.MAX_VALUE), true);
+ itemList.add(stack);
+ }
+ }
+ }
+
+ private boolean interactWithTank(ItemStack stack, EntityPlayer player, World world, int x, int y, int z,
+ int ordinalSide) {
+ if (world.isRemote) {
+ return false;
+ }
+ TileEntity te = world.getTileEntity(x, y, z);
+ if (!(te instanceof IFluidHandler handler)) {
+ return false;
+ }
+ ForgeDirection dir = ForgeDirection.getOrientation(ordinalSide);
+ FluidStack fs = this.getFluid(stack);
+ int capacity = getCapacity(stack);
+ if (fs != null && (!player.isSneaking() || fs.amount >= capacity)) {
+ int amount = handler.fill(dir, fs, false);
+ if (amount > 0) {
+ fs = LiquidUtil.drainContainerStack(stack, player, amount, false);
+ if (fs != null && fs.amount > 0) {
+ handler.fill(dir, fs, true);
+ }
+ }
+ } else {
+ int amount = fs == null ? capacity : capacity - fs.amount;
+ FluidStack input = handler.drain(dir, amount, false);
+ if (input != null && input.amount > 0) {
+ amount = LiquidUtil.fillContainerStack(stack, player, input, false);
+ if (amount > 0) {
+ handler.drain(dir, amount, true);
+ }
+ }
+ }
+ return true;
+ }
+
+ private boolean collectFluidBlock(ItemStack stack, EntityPlayer player, World world, int x, int y, int z) {
+ Block block = world.getBlock(x, y, z);
+ if (block instanceof IFluidBlock liquid) {
+ if (liquid.canDrain(world, x, y, z)) {
+ FluidStack fluid = liquid.drain(world, x, y, z, false);
+ int amount = fillContainerStack(stack, player, fluid, true);
+ if (amount == fluid.amount) {
+ fillContainerStack(stack, player, fluid, false);
+ liquid.drain(world, x, y, z, true);
+ return true;
+ }
+ }
+ } else if (world.getBlockMetadata(x, y, z) == 0) {
+ FluidStack fluid = null;
+ if (block != Blocks.water && block != Blocks.flowing_water) {
+ if (block == Blocks.lava || block == Blocks.flowing_lava) {
+ fluid = new FluidStack(FluidRegistry.LAVA, 1000);
+ }
+ } else {
+ fluid = new FluidStack(FluidRegistry.WATER, 1000);
+ }
+
+ if (fluid != null) {
+ int amount = fillContainerStack(stack, player, fluid, true);
+ if (amount == fluid.amount) {
+ fillContainerStack(stack, player, fluid, false);
+ world.setBlockToAir(x, y, z);
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ @Override
+ public ModularWindow createWindow(UIBuildContext buildContext, ItemStack stack) {
+ if (!(stack.getItem() instanceof GT_VolumetricFlask)) return null;
+ return new VolumetricFlaskUIFactory(buildContext, stack).createWindow();
+ }
+
+ private class VolumetricFlaskUIFactory {
+
+ private final UIBuildContext buildContext;
+ private int capacity;
+ private final int maxCapacity;
+
+ public VolumetricFlaskUIFactory(UIBuildContext buildContext, ItemStack flask) {
+ this.buildContext = buildContext;
+ GT_VolumetricFlask flaskItem = (GT_VolumetricFlask) flask.getItem();
+ this.capacity = flaskItem.getCapacity(flask);
+ this.maxCapacity = flaskItem.getMaxCapacity();
+ }
+
+ public ModularWindow createWindow() {
+ ModularWindow.Builder builder = ModularWindow.builder(150, 54);
+ builder.setBackground(ModularUITextures.VANILLA_BACKGROUND);
+
+ NumericWidget capacityWidget = new NumericWidget();
+ builder.widget(
+ capacityWidget.setGetter(() -> capacity)
+ .setSetter(value -> setCapacity(getCurrentItem(), capacity = (int) value))
+ .setBounds(1, maxCapacity)
+ .setScrollValues(1, 144, 1000)
+ .setDefaultValue(capacity)
+ .setTextColor(Color.WHITE.dark(1))
+ .setTextAlignment(Alignment.CenterLeft)
+ .setFocusOnGuiOpen(true)
+ .setBackground(GT_UITextures.BACKGROUND_TEXT_FIELD.withOffset(-1, -1, 2, 2))
+ .setPos(8, 8)
+ .setSize(77, 12))
+ .widget(new TextWidget("Capacity").setPos(88, 10))
+ .widget(
+ new VanillaButtonWidget().setDisplayString("Confirm")
+ .setOnClick((clickData, widget) -> {
+ capacityWidget.onRemoveFocus();
+ widget.getWindow()
+ .tryClose();
+ })
+ .setSynced(false, false)
+ .setPos(8, 26)
+ .setSize(48, 20));
+
+ return builder.build();
+ }
+
+ private ItemStack getCurrentItem() {
+ return buildContext.getPlayer().inventory.getCurrentItem();
+ }
+ }
+}
diff --git a/src/main/java/gregtech/common/items/GT_WirelessHeadphones.java b/src/main/java/gregtech/common/items/GT_WirelessHeadphones.java
new file mode 100644
index 0000000000..98a6eddb2c
--- /dev/null
+++ b/src/main/java/gregtech/common/items/GT_WirelessHeadphones.java
@@ -0,0 +1,118 @@
+package gregtech.common.items;
+
+import java.util.List;
+import java.util.UUID;
+
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.util.ChatComponentTranslation;
+import net.minecraft.util.StatCollector;
+import net.minecraft.world.World;
+import net.minecraftforge.common.util.Constants;
+
+import baubles.api.BaubleType;
+import baubles.api.IBauble;
+import gregtech.api.enums.ItemList;
+import gregtech.api.items.GT_Generic_Item;
+import gregtech.api.metatileentity.BaseMetaTileEntity;
+import gregtech.common.tileentities.machines.basic.GT_MetaTileEntity_BetterJukebox;
+
+public class GT_WirelessHeadphones extends GT_Generic_Item implements IBauble {
+
+ public static final String NBTKEY_JUKEBOX_COORDINATES = "jukeboxCoords";
+
+ public GT_WirelessHeadphones() {
+ super("WirelessHeadphones", "Wireless Headphones", null);
+ setMaxStackSize(1);
+
+ ItemList.WirelessHeadphones.set(this);
+ }
+
+ @Override
+ public void addInformation(ItemStack aStack, EntityPlayer aPlayer, List<String> aList, boolean aF3_H) {
+ if (aStack == null) {
+ return;
+ }
+ final NBTTagCompound tag = aStack.getTagCompound();
+ if (tag == null || !tag.hasKey(NBTKEY_JUKEBOX_COORDINATES, Constants.NBT.TAG_STRING)) {
+ aList.add(StatCollector.translateToLocal("GT5U.machines.betterjukebox.headphonesunbound"));
+ } else {
+ aList.add(StatCollector.translateToLocal("GT5U.machines.betterjukebox.headphonesbound"));
+ aList.add(tag.getString(NBTKEY_JUKEBOX_COORDINATES));
+ }
+ }
+
+ @Override
+ public boolean doesSneakBypassUse(World aWorld, int aX, int aY, int aZ, EntityPlayer aPlayer) {
+ return false;
+ }
+
+ @Override
+ public boolean onItemUseFirst(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side,
+ float hitX, float hitY, float hitZ) {
+ final TileEntity pointedTe = world.getTileEntity(x, y, z);
+ if (!(pointedTe instanceof BaseMetaTileEntity mte)) {
+ return false;
+ }
+ if (!(mte.getMetaTileEntity() instanceof GT_MetaTileEntity_BetterJukebox jukebox)) {
+ return false;
+ }
+ final UUID uuid = jukebox.jukeboxUuid;
+ if (uuid == GT_MetaTileEntity_BetterJukebox.UNSET_UUID) {
+ return false;
+ }
+ if (!world.isRemote) {
+ final NBTTagCompound tag = (stack.getTagCompound() == null) ? new NBTTagCompound() : stack.getTagCompound();
+ tag.setLong(GT_MetaTileEntity_BetterJukebox.NBTKEY_UUID_LOW, uuid.getLeastSignificantBits());
+ tag.setLong(GT_MetaTileEntity_BetterJukebox.NBTKEY_UUID_HIGH, uuid.getMostSignificantBits());
+ tag.setString(
+ NBTKEY_JUKEBOX_COORDINATES,
+ String.format("(%d, %d, %d) @ %d", x, y, z, world.provider.dimensionId));
+ stack.setTagCompound(tag);
+
+ player.addChatMessage(new ChatComponentTranslation("GT5U.machines.betterjukebox.headphonesbound"));
+ }
+ return true;
+ }
+
+ public static UUID getBoundJukeboxUUID(ItemStack stack) {
+ if (stack == null || stack.getTagCompound() == null) {
+ return null;
+ }
+ final NBTTagCompound tag = stack.getTagCompound();
+ if (!tag.hasKey(GT_MetaTileEntity_BetterJukebox.NBTKEY_UUID_LOW, Constants.NBT.TAG_ANY_NUMERIC)
+ || !tag.hasKey(GT_MetaTileEntity_BetterJukebox.NBTKEY_UUID_HIGH, Constants.NBT.TAG_ANY_NUMERIC)) {
+ return null;
+ }
+ final long idLow = tag.getLong(GT_MetaTileEntity_BetterJukebox.NBTKEY_UUID_LOW);
+ final long idHigh = tag.getLong(GT_MetaTileEntity_BetterJukebox.NBTKEY_UUID_HIGH);
+ return new UUID(idHigh, idLow);
+ }
+
+ @Override
+ public BaubleType getBaubleType(ItemStack itemStack) {
+ return BaubleType.UNIVERSAL;
+ }
+
+ @Override
+ public void onWornTick(ItemStack itemStack, EntityLivingBase entityLivingBase) {}
+
+ @Override
+ public void onEquipped(ItemStack itemStack, EntityLivingBase entityLivingBase) {}
+
+ @Override
+ public void onUnequipped(ItemStack itemStack, EntityLivingBase entityLivingBase) {}
+
+ @Override
+ public boolean canEquip(ItemStack itemStack, EntityLivingBase entityLivingBase) {
+ return true;
+ }
+
+ @Override
+ public boolean canUnequip(ItemStack itemStack, EntityLivingBase entityLivingBase) {
+ return true;
+ }
+}
diff --git a/src/main/java/gregtech/common/items/ID_MetaItem_01.java b/src/main/java/gregtech/common/items/ID_MetaItem_01.java
new file mode 100644
index 0000000000..5748442f86
--- /dev/null
+++ b/src/main/java/gregtech/common/items/ID_MetaItem_01.java
@@ -0,0 +1,433 @@
+package gregtech.common.items;
+
+public enum ID_MetaItem_01 {
+ // Please pretty please, add your entries while conserving the order
+
+ Credit_Greg_Copper(0),
+ Credit_Greg_Cupronickel(1),
+ Credit_Greg_Silver(2),
+ Credit_Greg_Gold(3),
+ Credit_Greg_Platinum(4),
+ Credit_Greg_Osmium(5),
+ Credit_Greg_Naquadah(6),
+ Credit_Greg_Neutronium(7),
+ Coin_Gold_Ancient(8),
+ Coin_Doge(9),
+ Coin_Chocolate(10),
+ Credit_Copper(11),
+ Credit_Silver(13),
+ Credit_Gold(14),
+ Credit_Platinum(15),
+ Credit_Osmium(16),
+ Electric_Motor_UIV(17),
+ Electric_Motor_UMV(18),
+ Electric_Motor_UXV(19),
+ Electric_Motor_MAX(20),
+ Electric_Piston_UIV(21),
+ Electric_Piston_UMV(22),
+ Electric_Piston_UXV(23),
+ Electric_Piston_MAX(24),
+ Electric_Pump_UIV(25),
+ Electric_Pump_UMV(26),
+ Electric_Pump_UXV(27),
+ Electric_Pump_MAX(28),
+ Conveyor_Module_UIV(29),
+ Conveyor_Module_UMV(30),
+ Conveyor_Module_UXV(31),
+ Conveyor_Module_MAX(32),
+ Robot_Arm_UIV(33),
+ Robot_Arm_UMV(34),
+ Robot_Arm_UXV(35),
+ Robot_Arm_MAX(36),
+ Emitter_UIV(37),
+ Emitter_UMV(38),
+ Emitter_UXV(39),
+ Emitter_MAX(40),
+ Sensor_UIV(41),
+ Sensor_UMV(42),
+ Sensor_UXV(43),
+ Sensor_MAX(44),
+ Field_Generator_UIV(45),
+ Field_Generator_UMV(46),
+ Field_Generator_UXV(47),
+ Field_Generator_MAX(48),
+ Component_Minecraft_Wheels_Iron(100),
+ Component_Minecraft_Wheels_Steel(101),
+ Compressed_Fireclay(110),
+ Firebrick(111),
+ ZPM5(145),
+ ZPM6(146),
+ ItemFilter_Export(270),
+ ItemFilter_Import(271),
+ Cover_FluidLimiter(272),
+ Shape_Empty(300),
+ Shape_Mold_Plate(301),
+ Shape_Mold_Casing(302),
+ Shape_Mold_Gear(303),
+ Shape_Mold_Credit(304),
+ Shape_Mold_Bottle(305),
+ Shape_Mold_Ingot(306),
+ Shape_Mold_Ball(307),
+ Shape_Mold_Block(308),
+ Shape_Mold_Nugget(309),
+ Shape_Mold_Bun(310),
+ Shape_Mold_Bread(311),
+ Shape_Mold_Baguette(312),
+ Shape_Mold_Cylinder(313),
+ Shape_Mold_Anvil(314),
+ Shape_Mold_Name(315),
+ Shape_Mold_Arrow(316),
+ Shape_Mold_Gear_Small(317),
+ Shape_Mold_Rod(318),
+ Shape_Mold_Bolt(319),
+ Shape_Mold_Round(320),
+ Shape_Mold_Screw(321),
+ Shape_Mold_Ring(322),
+ Shape_Mold_Rod_Long(323),
+ Shape_Mold_Rotor(324),
+ Shape_Mold_Turbine_Blade(325),
+ Shape_Mold_Pipe_Tiny(326),
+ Shape_Mold_Pipe_Small(327),
+ Shape_Mold_Pipe_Medium(328),
+ Shape_Mold_Pipe_Large(329),
+ Shape_Mold_Pipe_Huge(330),
+ Shape_Mold_Tool_Head_Drill(331),
+ Steam_Regulator_LV(332),
+ Steam_Regulator_MV(333),
+ Steam_Regulator_HV(334),
+ Steam_Regulator_EV(335),
+ Steam_Regulator_IV(336),
+ Electromagnet_Iron(345),
+ Electromagnet_Steel(346),
+ Electromagnet_Neodymium(347),
+ Electromagnet_Samarium(348),
+ Electromagnet_Tengam(349),
+ Shape_Extruder_Plate(350),
+ Shape_Extruder_Rod(351),
+ Shape_Extruder_Bolt(352),
+ Shape_Extruder_Ring(353),
+ Shape_Extruder_Cell(354),
+ Shape_Extruder_Ingot(355),
+ Shape_Extruder_Wire(356),
+ Shape_Extruder_Casing(357),
+ Shape_Extruder_Pipe_Tiny(358),
+ Shape_Extruder_Pipe_Small(359),
+ Shape_Extruder_Pipe_Medium(360),
+ Shape_Extruder_Pipe_Large(361),
+ Shape_Extruder_Pipe_Huge(362),
+ Shape_Extruder_Block(363),
+ Shape_Extruder_Sword(364),
+ Shape_Extruder_Pickaxe(365),
+ Shape_Extruder_Shovel(366),
+ Shape_Extruder_Axe(367),
+ Shape_Extruder_Hoe(368),
+ Shape_Extruder_Hammer(369),
+ Shape_Extruder_File(370),
+ Shape_Extruder_Saw(371),
+ Shape_Extruder_Gear(372),
+ Shape_Extruder_Bottle(373),
+ Shape_Extruder_Rotor(374),
+ Shape_Extruder_Small_Gear(375),
+ Shape_Extruder_Turbine_Blade(376),
+ Shape_Extruder_Tool_Head_Drill(377),
+ Cover_Chest_Basic(380),
+ Cover_Chest_Good(381),
+ Cover_Chest_Advanced(382),
+ Shape_Slicer_Flat(398),
+ Shape_Slicer_Stripes(399),
+ Fuel_Can_Plastic_Empty(400),
+ Fuel_Can_Plastic_Filled(401),
+ Spray_Empty(402),
+ Crate_Empty(403),
+ Thermos_Can_Empty(404),
+ Large_Fluid_Cell_Steel(405),
+ Large_Fluid_Cell_TungstenSteel(406),
+ Large_Fluid_Cell_Aluminium(407),
+ Large_Fluid_Cell_StainlessSteel(408),
+ Large_Fluid_Cell_Titanium(409),
+ Large_Fluid_Cell_Chrome(410),
+ Large_Fluid_Cell_Iridium(411),
+ Large_Fluid_Cell_Osmium(412),
+ Large_Fluid_Cell_Neutronium(413),
+ Tesseract(415),
+ GigaChad(416),
+ EnergisedTesseract(417),
+ Black_Hole_Opener(418),
+ Black_Hole_Closer(419),
+ StableAdhesive(427),
+ SuperconductorComposite(428),
+ NaquadriaSupersolid(429),
+ Spray_Color_0(430),
+ Spray_Color_Used_0(431),
+ Spray_Color_1(432),
+ Spray_Color_Used_1(433),
+ Spray_Color_2(434),
+ Spray_Color_Used_2(435),
+ Spray_Color_3(436),
+ Spray_Color_Used_3(437),
+ Spray_Color_4(438),
+ Spray_Color_Used_4(439),
+ Spray_Color_5(440),
+ Spray_Color_Used_5(441),
+ Spray_Color_6(442),
+ Spray_Color_Used_6(443),
+ Spray_Color_7(444),
+ Spray_Color_Used_7(445),
+ Spray_Color_8(446),
+ Spray_Color_Used_8(447),
+ Spray_Color_9(448),
+ Spray_Color_Used_9(449),
+ Spray_Color_10(450),
+ Spray_Color_Used_10(451),
+ Spray_Color_11(452),
+ Spray_Color_Used_11(453),
+ Spray_Color_12(454),
+ Spray_Color_Used_12(455),
+ Spray_Color_13(456),
+ Spray_Color_Used_13(457),
+ Spray_Color_14(458),
+ Spray_Color_Used_14(459),
+ Spray_Color_15(460),
+ Spray_Color_Used_15(461),
+ Ingot_Heavy1(462),
+ Ingot_Heavy2(463),
+ Ingot_Heavy3(464),
+ Spray_Color_Remover(465),
+ Spray_Color_Used_Remover(466),
+ Spray_Color_Remover_Empty(467),
+ Tool_Matches(471),
+ Tool_MatchBox_Used(472),
+ Tool_MatchBox_Full(473),
+ Tool_Lighter_Invar_Empty(474),
+ Tool_Lighter_Invar_Used(475),
+ Tool_Lighter_Invar_Full(476),
+ Tool_Lighter_Platinum_Empty(477),
+ Tool_Lighter_Platinum_Used(478),
+ Tool_Lighter_Platinum_Full(479),
+ Ingot_Iridium_Alloy(480),
+ Paper_Printed_Pages(481),
+ Paper_Magic_Empty(482),
+ Paper_Magic_Page(483),
+ Paper_Magic_Pages(484),
+ Paper_Punch_Card_Empty(485),
+ Paper_Punch_Card_Encoded(486),
+ Book_Written_01(487),
+ Book_Written_02(488),
+ Book_Written_03(489),
+ Schematic(490),
+ Schematic_Crafting(491),
+ Schematic_1by1(495),
+ Schematic_2by2(496),
+ Schematic_3by3(497),
+ Schematic_Dust(498),
+ Battery_RE_ULV_Tantalum(499),
+ Battery_Hull_LV(500),
+ Battery_Hull_MV(501),
+ Battery_Hull_HV(502),
+ BatteryHull_EV(503),
+ BatteryHull_IV(504),
+ BatteryHull_LuV(505),
+ BatteryHull_ZPM(506),
+ BatteryHull_UV(507),
+ Battery_SU_LV_Sulfuric_Acid(510),
+ Battery_SU_LV_Mercury(511),
+ Battery_RE_LV_Cadmium(517),
+ Battery_RE_LV_Lithium(518),
+ Battery_RE_LV_Sodium(519),
+ Battery_SU_MV_Sulfuric_Acid(520),
+ Battery_SU_MV_Mercury(521),
+ Battery_RE_MV_Cadmium(527),
+ Battery_RE_MV_Lithium(528),
+ Battery_RE_MV_Sodium(529),
+ Battery_SU_HV_Sulfuric_Acid(530),
+ Battery_SU_HV_Mercury(531),
+ Battery_RE_HV_Cadmium(537),
+ Battery_RE_HV_Lithium(538),
+ Battery_RE_HV_Sodium(539),
+ BatteryHull_EV_Full(540),
+ BatteryHull_IV_Full(545),
+ BatteryHull_LuV_Full(550),
+ BatteryHull_ZPM_Full(555),
+ BatteryHull_UV_Full(560),
+ BatteryHull_UHV(561),
+ BatteryHull_UEV(562),
+ BatteryHull_UIV(563),
+ BatteryHull_UMV(564),
+ BatteryHull_UxV(565),
+ BatteryHull_UHV_Full(570),
+ BatteryHull_UEV_Full(575),
+ Cover_FLuidStorageMonitor(577),
+ BatteryHull_UIV_Full(580),
+ BatteryHull_UMV_Full(585),
+ BatteryHull_UxV_Full(590),
+ ZPM4(594),
+ Electric_Motor_UEV(595),
+ Electric_Motor_UHV(596),
+ Energy_Lapotronic_Orb(597),
+ ZPM(598),
+ Energy_Lapotronic_orb_2(599),
+ Electric_Motor_LV(600),
+ Electric_Motor_MV(601),
+ Electric_Motor_HV(602),
+ Electric_Motor_EV(603),
+ Electric_Motor_IV(604),
+ ZPM2(605),
+ Electric_Motor_LuV(606),
+ Electric_Motor_ZPM(607),
+ Electric_Motor_UV(608),
+ ZPM3(609),
+ Electric_Pump_LV(610),
+ Electric_Pump_MV(611),
+ Electric_Pump_HV(612),
+ Electric_Pump_EV(613),
+ Electric_Pump_IV(614),
+ Electric_Pump_LuV(615),
+ Electric_Pump_ZPM(616),
+ Electric_Pump_UV(617),
+ Electric_Pump_UHV(618),
+ Electric_Pump_UEV(619),
+ Steam_Valve_LV(620),
+ Steam_Valve_MV(621),
+ Steam_Valve_HV(622),
+ Steam_Valve_EV(623),
+ Steam_Valve_IV(624),
+ Conveyor_Module_LV(630),
+ Conveyor_Module_MV(631),
+ Conveyor_Module_HV(632),
+ Conveyor_Module_EV(633),
+ Conveyor_Module_IV(634),
+ Conveyor_Module_LuV(635),
+ Conveyor_Module_ZPM(636),
+ Conveyor_Module_UV(637),
+ Conveyor_Module_UHV(638),
+ Conveyor_Module_UEV(639),
+ Electric_Piston_LV(640),
+ Electric_Piston_MV(641),
+ Electric_Piston_HV(642),
+ Electric_Piston_EV(643),
+ Electric_Piston_IV(644),
+ Electric_Piston_LuV(645),
+ Electric_Piston_ZPM(646),
+ Electric_Piston_UV(647),
+ Electric_Piston_UHV(648),
+ Electric_Piston_UEV(649),
+ Robot_Arm_LV(650),
+ Robot_Arm_MV(651),
+ Robot_Arm_HV(652),
+ Robot_Arm_EV(653),
+ Robot_Arm_IV(654),
+ Robot_Arm_LuV(655),
+ Robot_Arm_ZPM(656),
+ Robot_Arm_UV(657),
+ Robot_Arm_UHV(658),
+ Robot_Arm_UEV(659),
+ FluidRegulator_LV(660),
+ FluidRegulator_MV(661),
+ FluidRegulator_HV(662),
+ FluidRegulator_EV(663),
+ FluidRegulator_IV(664),
+ FluidRegulator_LuV(665),
+ FluidRegulator_ZPM(666),
+ FluidRegulator_UV(667),
+ Circuit_Parts_Crystal_Chip_Wetware(668),
+ FluidFilter(669),
+ Field_Generator_LV(670),
+ Field_Generator_MV(671),
+ Field_Generator_HV(672),
+ Field_Generator_EV(673),
+ Field_Generator_IV(674),
+ Field_Generator_LuV(675),
+ Field_Generator_ZPM(676),
+ Field_Generator_UV(677),
+ Field_Generator_UHV(678),
+ Field_Generator_UEV(679),
+ Emitter_LV(680),
+ Emitter_MV(681),
+ Emitter_HV(682),
+ Emitter_EV(683),
+ Emitter_IV(684),
+ Emitter_LuV(685),
+ Emitter_ZPM(686),
+ Emitter_UV(687),
+ Emitter_UHV(688),
+ Emitter_UEV(689),
+ Sensor_LV(690),
+ Sensor_MV(691),
+ Sensor_HV(692),
+ Sensor_EV(693),
+ Sensor_IV(694),
+ Sensor_LuV(695),
+ Sensor_ZPM(696),
+ Sensor_UV(697),
+ Sensor_UHV(698),
+ Sensor_UEV(699),
+ Circuit_Primitive(700),
+ Circuit_Basic(701),
+ Circuit_Good(702),
+ Circuit_Advanced(703),
+ Circuit_Data(704),
+ Circuit_Elite(705),
+ Circuit_Master(706),
+ Tool_DataOrb(707),
+ Tool_DataStick(708),
+ Tool_Cover_Copy_Paste(709),
+ Circuit_Board_Basic(710),
+ Circuit_Board_Advanced(711),
+ Circuit_Board_Elite(712),
+ Circuit_Parts_Crystal_Chip_Elite(713),
+ Circuit_Parts_Crystal_Chip_Master(714),
+ Circuit_Parts_Advanced(715),
+ Circuit_Parts_Wiring_Basic(716),
+ Circuit_Parts_Wiring_Advanced(717),
+ Circuit_Parts_Wiring_Elite(718),
+ Empty_Board_Basic(719),
+ Empty_Board_Elite(720),
+ Component_Sawblade_Diamond(721),
+ Component_Grinder_Diamond(722),
+ Component_Grinder_Tungsten(723),
+ QuantumEye(724),
+ QuantumStar(725),
+ Gravistar(726),
+ Upgrade_Muffler(727),
+ Upgrade_Lock(728),
+ Component_Filter(729),
+ Cover_Controller(730),
+ Cover_ActivityDetector(731),
+ Cover_FluidDetector(732),
+ Cover_ItemDetector(733),
+ Cover_EnergyDetector(734),
+ Cover_PlayerDetector(735),
+ Energy_Module(736),
+ Energy_Cluster(737),
+ Cover_Screen(740),
+ Cover_RedstoneTransmitterExternal(741),
+ Cover_RedstoneTransmitterInternal(742),
+ Cover_Crafting(744),
+ Cover_Drain(745),
+ Cover_RedstoneReceiverExternal(746),
+ Cover_RedstoneReceiverInternal(747),
+ Cover_NeedsMaintenance(748),
+ Cover_Shutter(749),
+ Cover_SolarPanel(750),
+ Cover_SolarPanel_8V(751),
+ Cover_SolarPanel_LV(752),
+ Cover_SolarPanel_MV(753),
+ Cover_SolarPanel_HV(754),
+ Cover_SolarPanel_EV(755),
+ Cover_SolarPanel_IV(756),
+ Cover_SolarPanel_LuV(757),
+ Cover_SolarPanel_ZPM(758),
+ Cover_SolarPanel_UV(759),
+ Tool_Sonictron(760),
+ Tool_Cheat(761),
+ Tool_Scanner(762),
+ NC_SensorKit(763),
+ Duct_Tape(764),
+ McGuffium_239(765);
+
+ public final int ID;
+
+ ID_MetaItem_01(int ID) {
+ this.ID = ID;
+ }
+}
diff --git a/src/main/java/gregtech/common/items/ID_MetaItem_02.java b/src/main/java/gregtech/common/items/ID_MetaItem_02.java
new file mode 100644
index 0000000000..a13b858bd7
--- /dev/null
+++ b/src/main/java/gregtech/common/items/ID_MetaItem_02.java
@@ -0,0 +1,208 @@
+package gregtech.common.items;
+
+public enum ID_MetaItem_02 {
+
+ // Please pretty please, add your entries while conserving the order
+ ThermosCan_Dark_Coffee(0),
+ ThermosCan_Dark_Cafe_au_lait(1),
+ ThermosCan_Coffee(2),
+ ThermosCan_Cafe_au_lait(3),
+ ThermosCan_Lait_au_cafe(4),
+ ThermosCan_Dark_Chocolate_Milk(5),
+ ThermosCan_Chocolate_Milk(6),
+ ThermosCan_Tea(7),
+ ThermosCan_Sweet_Tea(8),
+ ThermosCan_Ice_Tea(9),
+ GelledToluene(10),
+ Bottle_Purple_Drink(100),
+ Bottle_Grape_Juice(101),
+ Bottle_Wine(102),
+ Bottle_Vinegar(103),
+ Bottle_Potato_Juice(104),
+ Bottle_Vodka(105),
+ Bottle_Leninade(106),
+ Bottle_Mineral_Water(107),
+ Bottle_Salty_Water(108),
+ Bottle_Reed_Water(109),
+ Bottle_Rum(110),
+ Bottle_Pirate_Brew(111),
+ Bottle_Hops_Juice(112),
+ Bottle_Dark_Beer(113),
+ Bottle_Dragon_Blood(114),
+ Bottle_Wheaty_Juice(115),
+ Bottle_Scotch(116),
+ Bottle_Glen_McKenner(117),
+ Bottle_Wheaty_Hops_Juice(118),
+ Bottle_Beer(119),
+ Bottle_Chilly_Sauce(120),
+ Bottle_Hot_Sauce(121),
+ Bottle_Diabolo_Sauce(122),
+ Bottle_Diablo_Sauce(123),
+ Bottle_Snitches_Glitch_Sauce(124),
+ Bottle_Apple_Juice(125),
+ Bottle_Cider(126),
+ Bottle_Golden_Apple_Juice(127),
+ Bottle_Golden_Cider(128),
+ Bottle_Iduns_Apple_Juice(129),
+ Bottle_Notches_Brew(130),
+ Bottle_Lemon_Juice(131),
+ Bottle_Limoncello(132),
+ Bottle_Lemonade(133),
+ Bottle_Alcopops(134),
+ Bottle_Cave_Johnsons_Grenade_Juice(135),
+ Bottle_Milk(136),
+ Bottle_Holy_Water(137),
+ Food_Potato_On_Stick(200),
+ Food_Potato_On_Stick_Roasted(201),
+ Food_Raw_Fries(202),
+ Food_Fries(203),
+ Food_Packaged_Fries(204),
+ Food_Raw_PotatoChips(205),
+ Food_PotatoChips(206),
+ Food_ChiliChips(207),
+ Food_Packaged_PotatoChips(208),
+ Food_Packaged_ChiliChips(209),
+ Food_Chum(210),
+ Food_Chum_On_Stick(211),
+ Food_Dough_Sugar(212),
+ Food_Dough_Chocolate(213),
+ Food_Raw_Cookie(214),
+ Food_Sliced_Buns(220),
+ Food_Burger_Veggie(221),
+ Food_Burger_Cheese(222),
+ Food_Burger_Meat(223),
+ Food_Burger_Chum(224),
+ Food_Sliced_Breads(230),
+ Food_Sandwich_Veggie(231),
+ Food_Sandwich_Cheese(232),
+ Food_Sandwich_Bacon(233),
+ Food_Sandwich_Steak(234),
+ Food_Sliced_Baguettes(240),
+ Food_Large_Sandwich_Veggie(241),
+ Food_Large_Sandwich_Cheese(242),
+ Food_Large_Sandwich_Bacon(243),
+ Food_Large_Sandwich_Steak(244),
+ Food_Raw_Pizza_Veggie(250),
+ Food_Raw_Pizza_Cheese(251),
+ Food_Raw_Pizza_Meat(252),
+ Food_Baked_Pizza_Veggie(260),
+ Food_Baked_Pizza_Cheese(261),
+ Food_Baked_Pizza_Meat(262),
+ SFMixture(270),
+ MSFMixture(271),
+ Dye_Indigo(410),
+ Dye_Color_00(414),
+ Dye_Color_01(415),
+ Dye_Color_02(416),
+ Dye_Color_03(417),
+ Dye_Color_04(418),
+ Dye_Color_05(419),
+ Dye_Color_06(420),
+ Dye_Color_07(421),
+ Dye_Color_08(422),
+ Dye_Color_09(423),
+ Dye_Color_10(424),
+ Dye_Color_11(425),
+ Dye_Color_12(426),
+ Dye_Color_13(427),
+ Dye_Color_14(428),
+ Dye_Color_15(429),
+ Plank_Oak(470),
+ Plank_Spruce(471),
+ Plank_Birch(472),
+ Plank_Jungle(473),
+ Plank_Acacia(474),
+ Plank_DarkOak(475),
+ Plank_Larch(476),
+ Plank_Teak(477),
+ Plank_Acacia_Green(478),
+ Plank_Lime(479),
+ Plank_Chestnut(480),
+ Plank_Wenge(481),
+ Plank_Baobab(482),
+ Plank_Sequoia(483),
+ Plank_Kapok(484),
+ Plank_Ebony(485),
+ Plank_Mahagony(486),
+ Plank_Balsa(487),
+ Plank_Willow(488),
+ Plank_Walnut(489),
+ Plank_Greenheart(490),
+ Plank_Cherry(491),
+ Plank_Mahoe(492),
+ Plank_Poplar(493),
+ Plank_Palm(494),
+ Plank_Papaya(495),
+ Plank_Pine(496),
+ Plank_Plum(497),
+ Plank_Maple(498),
+ Plank_Citrus(499),
+ Crop_Drop_Plumbilia(500),
+ Crop_Drop_Argentia(501),
+ Crop_Drop_Indigo(502),
+ Crop_Drop_Ferru(503),
+ Crop_Drop_Aurelia(504),
+ Crop_Drop_TeaLeaf(505),
+ Crop_Drop_OilBerry(510),
+ Crop_Drop_BobsYerUncleRanks(511),
+ Crop_Drop_UUMBerry(512),
+ Crop_Drop_UUABerry(513),
+ Crop_Drop_MilkWart(520),
+ Crop_Drop_Bauxite(521),
+ Crop_Drop_Ilmenite(522),
+ Crop_Drop_Pitchblende(523),
+ Crop_Drop_Uraninite(524),
+ Crop_Drop_Thorium(526),
+ Crop_Drop_Nickel(527),
+ Crop_Drop_Zinc(528),
+ Crop_Drop_Manganese(529),
+ Crop_Drop_Coppon(530),
+ Crop_Drop_Scheelite(531),
+ Crop_Drop_Platinum(532),
+ Crop_Drop_Iridium(533),
+ Crop_Drop_Osmium(534),
+ Crop_Drop_Naquadah(535),
+ Crop_Drop_Mica(538),
+ Crop_Drop_Tine(540),
+ Crop_Drop_Chilly(550),
+ Crop_Drop_Lemon(551),
+ Crop_Drop_Tomato(552),
+ Crop_Drop_MTomato(553),
+ Crop_Drop_Grapes(554),
+ Crop_Drop_Onion(555),
+ Crop_Drop_Cucumber(556),
+ Crop_Drop_Rape(557),
+ Food_Cheese(558),
+ Food_Dough(559),
+ Food_Flat_Dough(560),
+ Food_Raw_Bread(561),
+ Food_Raw_Bun(562),
+ Food_Raw_Baguette(563),
+ Food_Baked_Bun(564),
+ Food_Baked_Baguette(565),
+ Food_Sliced_Bread(566),
+ Food_Sliced_Bun(567),
+ Food_Sliced_Baguette(568),
+ Food_Raw_Cake(569),
+ Food_Baked_Cake(570),
+ Food_Sliced_Lemon(571),
+ Food_Sliced_Tomato(572),
+ Food_Sliced_Onion(573),
+ Food_Sliced_Cucumber(574),
+ Food_Sliced_Cheese(576),
+ Cover_AdvancedRedstoneTransmitterExternal(577),
+ Cover_AdvancedRedstoneTransmitterInternal(578),
+ Cover_AdvancedRedstoneReceiverExternal(579),
+ Cover_AdvancedRedstoneReceiverInternal(580),
+ Cover_WirelessFluidDetector(581),
+ Cover_WirelessItemDetector(582),
+ Cover_WirelessNeedsMaintainance(583),
+ Cover_WirelessActivityDetector(584),
+ Display_ITS_FREE(765);
+
+ public final int ID;
+
+ ID_MetaItem_02(int ID) {
+ this.ID = ID;
+ }
+}
diff --git a/src/main/java/gregtech/common/items/ID_MetaItem_03.java b/src/main/java/gregtech/common/items/ID_MetaItem_03.java
new file mode 100644
index 0000000000..fea5a687df
--- /dev/null
+++ b/src/main/java/gregtech/common/items/ID_MetaItem_03.java
@@ -0,0 +1,239 @@
+package gregtech.common.items;
+
+public enum ID_MetaItem_03 {
+
+ // Please pretty please, add your entries while conserving the order
+ Circuit_Board_Wetware(6),
+ Circuit_Board_Plastic(7),
+ Circuit_Board_Bio(8),
+ Circuit_Parts_ResistorSMD(11),
+ Circuit_Parts_Glass_Tube(12),
+ Circuit_Parts_Coil(14),
+ Circuit_Parts_DiodeSMD(16),
+ Circuit_Parts_TransistorSMD(18),
+ Circuit_Parts_CapacitorSMD(20),
+ Circuit_Parts_GlassFiber(21),
+ Circuit_Parts_PetriDish(22),
+ Circuit_Parts_Reinforced_Glass_Tube(23),
+ Circuit_Parts_ResistorASMD(24),
+ Circuit_Parts_DiodeASMD(25),
+ Circuit_Parts_TransistorASMD(26),
+ Circuit_Parts_CapacitorASMD(27),
+ Circuit_Silicon_Ingot(30),
+ Circuit_Silicon_Ingot2(31),
+ Circuit_Silicon_Ingot3(32),
+ Circuit_Silicon_Wafer(33),
+ Circuit_Silicon_Wafer2(34),
+ Circuit_Silicon_Wafer3(35),
+ Circuit_Wafer_ILC(36),
+ Circuit_Chip_ILC(37),
+ Circuit_Wafer_Ram(38),
+ Circuit_Chip_Ram(39),
+ Circuit_Wafer_NAND(40),
+ Circuit_Chip_NAND(41),
+ Circuit_Wafer_NOR(42),
+ Circuit_Chip_NOR(43),
+ Circuit_Wafer_CPU(44),
+ Circuit_Chip_CPU(45),
+ Circuit_Wafer_SoC(46),
+ Circuit_Chip_SoC(47),
+ Circuit_Wafer_SoC2(48),
+ Circuit_Chip_SoC2(49),
+ Circuit_Wafer_PIC(50),
+ Circuit_Chip_PIC(51),
+ Circuit_Wafer_HPIC(52),
+ Circuit_Chip_HPIC(53),
+ Circuit_Wafer_NanoCPU(54),
+ Circuit_Chip_NanoCPU(55),
+ Circuit_Wafer_QuantumCPU(56),
+ Circuit_Chip_QuantumCPU(57),
+ Circuit_Wafer_UHPIC(58),
+ Circuit_Chip_UHPIC(59),
+ Circuit_Wafer_Simple_SoC(60),
+ Circuit_Chip_Simple_SoC(61),
+ Circuit_Wafer_ULPIC(62),
+ Circuit_Chip_ULPIC(63),
+ Circuit_Wafer_LPIC(64),
+ Circuit_Chip_LPIC(65),
+ Circuit_Chip_CrystalSoC2(68),
+ Circuit_Parts_RawCrystalChip(69),
+ Circuit_Chip_CrystalCPU(70),
+ Circuit_Chip_CrystalSoC(71),
+ Circuit_Chip_NeuroCPU(72),
+ Circuit_Chip_Stemcell(73),
+ Circuit_Parts_RawCrystalParts(74),
+ NandChip(75),
+ Circuit_Chip_Biocell(76),
+ Circuit_Chip_BioCPU(77),
+ Circuit_Microprocessor(78),
+ Circuit_Integrated_Good(79),
+ Circuit_Processor(80),
+ Circuit_Nanoprocessor(82),
+ Circuit_Nanocomputer(83),
+ Circuit_Elitenanocomputer(84),
+ Circuit_Quantumprocessor(85),
+ Circuit_Quantumcomputer(86),
+ Circuit_Masterquantumcomputer(87),
+ Circuit_Quantummainframe(88),
+ Circuit_Crystalprocessor(89),
+ Circuit_Ultimatecrystalcomputer(90),
+ Circuit_Crystalmainframe(91),
+ Circuit_Neuroprocessor(92),
+ Circuit_Wetwarecomputer(93),
+ Circuit_Wetwaresupercomputer(94),
+ Circuit_Wetwaremainframe(95),
+ Circuit_Crystalcomputer(96),
+ Circuit_Bioprocessor(97),
+ Circuit_Biowarecomputer(98),
+ Circuit_Biowaresupercomputer(99),
+ Circuit_Board_Coated_Basic(100),
+ Circuit_Board_Phenolic_Good(101),
+ Circuit_Board_Epoxy_Advanced(102),
+ Circuit_Board_Fiberglass_Advanced(103),
+ Circuit_Board_Multifiberglass_Elite(104),
+ Circuit_Board_Wetware_Extreme(105),
+ Circuit_Board_Plastic_Advanced(106),
+ Circuit_Board_Bio_Ultra(107),
+ Tube_Wires(110),
+ Circuit_Biomainframe(120),
+ Cover_SolarPanel_UHV(130),
+ Cover_SolarPanel_UEV(131),
+ Cover_SolarPanel_UIV(132),
+ ULV_Coil(140),
+ LV_Coil(141),
+ MV_Coil(142),
+ HV_Coil(143),
+ EV_Coil(144),
+ IV_Coil(145),
+ LuV_Coil(146),
+ ZPM_Coil(147),
+ UV_Coil(148),
+ UHV_Coil(149),
+ Circuit_Silicon_Ingot4(150),
+ Circuit_Silicon_Wafer4(151),
+ Circuit_Silicon_Ingot5(152),
+ Circuit_Silicon_Wafer5(153),
+ Circuit_OpticalProcessor(154),
+ Circuit_OpticalAssembly(155),
+ Circuit_OpticalComputer(156),
+ Circuit_OpticalMainframe(157),
+ Circuit_Wafer_NPIC(160),
+ Circuit_Chip_NPIC(161),
+ Circuit_Wafer_PPIC(162),
+ Circuit_Chip_PPIC(163),
+ Circuit_Wafer_QPIC(164),
+ Circuit_Chip_QPIC(165),
+ Circuit_ExoticProcessor(166),
+ Circuit_ExoticAssembly(167),
+ Circuit_ExoticComputer(168),
+ Circuit_ExoticMainframe(169),
+ Circuit_CosmicProcessor(170),
+ Circuit_CosmicAssembly(171),
+ Circuit_CosmicComputer(172),
+ Circuit_CosmicMainframe(173),
+ Circuit_TranscendentProcessor(174),
+ Circuit_TranscendentAssembly(175),
+ Circuit_TranscendentComputer(176),
+ Circuit_TranscendentMainframe(177),
+ Circuit_Parts_ResistorXSMD(178),
+ Circuit_Parts_DiodeXSMD(179),
+ Circuit_Parts_TransistorXSMD(180),
+ Circuit_Parts_CapacitorXSMD(181),
+ Circuit_Parts_InductorSMD(182),
+ Circuit_Parts_InductorASMD(183),
+ Circuit_Parts_InductorXSMD(184),
+ Circuit_Wafer_Bioware(188),
+ Circuit_Parts_Chip_Bioware(189),
+ GalliumArsenideCrystal(190),
+ GalliumArsenideCrystalSmallPart(191),
+ KevlarFiber(192),
+ WovenKevlar(193),
+ Spinneret(194),
+ IndustrialApiary_Upgrade_Frame(199),
+ IndustrialApiary_Upgrade_Acceleration_1(200),
+ IndustrialApiary_Upgrade_Acceleration_2(201),
+ IndustrialApiary_Upgrade_Acceleration_3(202),
+ IndustrialApiary_Upgrade_Acceleration_4(203),
+ IndustrialApiary_Upgrade_Acceleration_5(204),
+ IndustrialApiary_Upgrade_Acceleration_6(205),
+ IndustrialApiary_Upgrade_Acceleration_7(206),
+ IndustrialApiary_Upgrade_Acceleration_8(207),
+ IndustrialApiary_Upgrade_Acceleration_8_Upgraded(208),
+ IndustrialApiary_Upgrade_PRODUCTION(209),
+ IndustrialApiary_Upgrade_PLAINS(210),
+ IndustrialApiary_Upgrade_LIGHT(211),
+ IndustrialApiary_Upgrade_FLOWERING(212),
+ IndustrialApiary_Upgrade_WINTER(213),
+ IndustrialApiary_Upgrade_DRYER(214),
+ IndustrialApiary_Upgrade_AUTOMATION(215),
+ IndustrialApiary_Upgrade_HUMIDIFIER(216),
+ IndustrialApiary_Upgrade_HELL(217),
+ IndustrialApiary_Upgrade_POLLEN(218),
+ IndustrialApiary_Upgrade_DESERT(219),
+ IndustrialApiary_Upgrade_COOLER(220),
+ IndustrialApiary_Upgrade_LIFESPAN(221),
+ IndustrialApiary_Upgrade_SEAL(222),
+ IndustrialApiary_Upgrade_STABILIZER(223),
+ IndustrialApiary_Upgrade_JUNGLE(224),
+ IndustrialApiary_Upgrade_TERRITORY(225),
+ IndustrialApiary_Upgrade_OCEAN(226),
+ IndustrialApiary_Upgrade_SKY(227),
+ IndustrialApiary_Upgrade_HEATER(228),
+ IndustrialApiary_Upgrade_SIEVE(229),
+ NuclearStar(230),
+ IndustrialApiary_Upgrade_UNLIGHT(231),
+ Cover_Metrics_Transmitter(232),
+ Activated_Carbon_Filter_Mesh(233),
+ Quark_Catalyst_Housing(234),
+ Quark_Creation_Catalyst_Up(235),
+ Quark_Creation_Catalyst_Down(236),
+ Quark_Creation_Catalyst_Strange(237),
+ Quark_Creation_Catalyst_Charm(238),
+ Quark_Creation_Catalyst_Bottom(239),
+ Quark_Creation_Catalyst_Top(240),
+ Quark_Creation_Catalyst_Unaligned(241),
+ Circuit_Silicon_Ingot6(721),
+ Circuit_Silicon_Wafer6(722),
+ Circuit_Silicon_Wafer7(723),
+ Circuit_Chip_Optical(724),
+ Optically_Compatible_Memory(725),
+ Optically_Perfected_CPU(726),
+ Optical_Cpu_Containment_Housing(727),
+ Circuit_Board_Optical(728),
+ White_Dwarf_Shape_Extruder_Plate(729),
+ White_Dwarf_Shape_Extruder_Rod(730),
+ White_Dwarf_Shape_Extruder_Bolt(731),
+ White_Dwarf_Shape_Extruder_Ring(732),
+ White_Dwarf_Shape_Extruder_Cell(733),
+ White_Dwarf_Shape_Extruder_Ingot(734),
+ White_Dwarf_Shape_Extruder_Wire(735),
+ White_Dwarf_Shape_Extruder_Casing(736),
+ White_Dwarf_Shape_Extruder_Pipe_Tiny(737),
+ White_Dwarf_Shape_Extruder_Pipe_Small(738),
+ White_Dwarf_Shape_Extruder_Pipe_Medium(739),
+ White_Dwarf_Shape_Extruder_Pipe_Large(740),
+ White_Dwarf_Shape_Extruder_Pipe_Huge(741),
+ White_Dwarf_Shape_Extruder_Block(742),
+ White_Dwarf_Shape_Extruder_Sword(743),
+ White_Dwarf_Shape_Extruder_Pickaxe(744),
+ White_Dwarf_Shape_Extruder_Shovel(745),
+ White_Dwarf_Shape_Extruder_Axe(746),
+ White_Dwarf_Shape_Extruder_Hoe(747),
+ White_Dwarf_Shape_Extruder_Hammer(748),
+ White_Dwarf_Shape_Extruder_File(749),
+ White_Dwarf_Shape_Extruder_Saw(750),
+ White_Dwarf_Shape_Extruder_Gear(751),
+ White_Dwarf_Shape_Extruder_Bottle(752),
+ White_Dwarf_Shape_Extruder_Rotor(753),
+ White_Dwarf_Shape_Extruder_Small_Gear(754),
+ White_Dwarf_Shape_Extruder_Turbine_Blade(755),
+ White_Dwarf_Shape_Extruder_ToolHeadDrill(756),
+ Timepiece(757),
+ Transdimensional_Alignment_Matrix(758);
+
+ public final int ID;
+
+ ID_MetaItem_03(int ID) {
+ this.ID = ID;
+ }
+}
diff --git a/src/main/java/gregtech/common/items/ID_MetaTool_01.java b/src/main/java/gregtech/common/items/ID_MetaTool_01.java
new file mode 100644
index 0000000000..195bd1aef8
--- /dev/null
+++ b/src/main/java/gregtech/common/items/ID_MetaTool_01.java
@@ -0,0 +1,73 @@
+package gregtech.common.items;
+
+public enum ID_MetaTool_01 {
+
+ // Please pretty please, add your entries while conserving the order
+ SWORD(0),
+ PICKAXE(2),
+ SHOVEL(4),
+ AXE(6),
+ HOE(8),
+ SAW(10),
+ HARDHAMMER(12),
+ SOFTMALLET(14),
+ @Deprecated
+ SOFTHAMMER(14),
+ WRENCH(16),
+ FILE(18),
+ CROWBAR(20),
+ SCREWDRIVER(22),
+ MORTAR(24),
+ WIRECUTTER(26),
+ SCOOP(28),
+ BRANCHCUTTER(30),
+ UNIVERSALSPADE(32),
+ KNIFE(34),
+ BUTCHERYKNIFE(36),
+ @Deprecated
+ SICKLE(38),
+ SENSE(40),
+ PLOW(42),
+ PLUNGER(44),
+ ROLLING_PIN(46),
+ DRILL_LV(100),
+ DRILL_MV(102),
+ DRILL_HV(104),
+ CHAINSAW_LV(110),
+ CHAINSAW_MV(112),
+ CHAINSAW_HV(114),
+ WRENCH_LV(120),
+ WRENCH_MV(122),
+ WRENCH_HV(124),
+ JACKHAMMER(130),
+ BUZZSAW_LV(140),
+ @Deprecated
+ BUZZSAW(140),
+ BUZZSAW_MV(142),
+ BUZZSAW_HV(144),
+ SCREWDRIVER_LV(150),
+ SCREWDRIVER_MV(152),
+ SCREWDRIVER_HV(154),
+ SOLDERING_IRON_LV(160),
+ SOLDERING_IRON_MV(162),
+ SOLDERING_IRON_HV(164),
+ TURBINE_SMALL(170),
+ TURBINE(172),
+ TURBINE_LARGE(174),
+ TURBINE_HUGE(176),
+ @Deprecated
+ TURBINE_BLADE(178),
+ POCKET_MULTITOOL(180),
+ POCKET_BRANCHCUTTER(182),
+ POCKET_FILE(184),
+ POCKET_KNIFE(186),
+ POCKET_SAW(188),
+ POCKET_SCREWDRIVER(190),
+ POCKET_WIRECUTTER(192);
+
+ public final int ID;
+
+ ID_MetaTool_01(int ID) {
+ this.ID = ID;
+ }
+}
diff --git a/src/main/java/gregtech/common/items/ItemComb.java b/src/main/java/gregtech/common/items/ItemComb.java
new file mode 100644
index 0000000000..0d86237c2e
--- /dev/null
+++ b/src/main/java/gregtech/common/items/ItemComb.java
@@ -0,0 +1,1249 @@
+package gregtech.common.items;
+
+import static gregtech.api.enums.GT_Values.L;
+import static gregtech.api.enums.GT_Values.NF;
+import static gregtech.api.enums.GT_Values.NI;
+import static gregtech.api.enums.GT_Values.V;
+import static gregtech.api.enums.Mods.AE2FluidCraft;
+import static gregtech.api.enums.Mods.ExtraUtilities;
+import static gregtech.api.enums.Mods.GalaxySpace;
+import static gregtech.api.enums.Mods.GregTech;
+import static gregtech.api.enums.Mods.MagicBees;
+import static gregtech.api.enums.Mods.NewHorizonsCoreMod;
+import static gregtech.api.enums.Mods.Thaumcraft;
+import static gregtech.api.enums.Mods.ThaumicBases;
+import static gregtech.api.recipe.RecipeMaps.autoclaveRecipes;
+import static gregtech.api.recipe.RecipeMaps.centrifugeRecipes;
+import static gregtech.api.recipe.RecipeMaps.fluidExtractionRecipes;
+import static gregtech.api.util.GT_RecipeBuilder.TICKS;
+import static gregtech.api.util.GT_RecipeConstants.CLEANROOM;
+import static gregtech.api.util.GT_RecipeConstants.UniversalChemical;
+
+import java.util.Arrays;
+import java.util.List;
+
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.init.Items;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.EnumChatFormatting;
+import net.minecraft.util.IIcon;
+import net.minecraftforge.fluids.FluidRegistry;
+import net.minecraftforge.fluids.FluidStack;
+
+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.api.enums.GT_Values;
+import gregtech.api.enums.ItemList;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.OrePrefixes;
+import gregtech.api.interfaces.IGT_ItemWithMaterialRenderer;
+import gregtech.api.util.GT_ModHandler;
+import gregtech.api.util.GT_OreDictUnificator;
+import gregtech.api.util.GT_RecipeBuilder;
+import gregtech.api.util.GT_Utility;
+import gregtech.common.render.items.GT_GeneratedMaterial_Renderer;
+import gregtech.loaders.misc.GT_Bees;
+
+public class ItemComb extends Item implements IGT_ItemWithMaterialRenderer {
+
+ @SideOnly(Side.CLIENT)
+ private IIcon secondIcon;
+
+ public ItemComb() {
+ super();
+ this.setCreativeTab(Tabs.tabApiculture);
+ this.setHasSubtypes(true);
+ this.setUnlocalizedName("gt.comb");
+ GameRegistry.registerItem(this, "gt.comb", GregTech.ID);
+ }
+
+ public ItemStack getStackForType(CombType type) {
+ return new ItemStack(this, 1, type.getId());
+ }
+
+ public ItemStack getStackForType(CombType type, int count) {
+ return new ItemStack(this, count, type.getId());
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void getSubItems(Item item, CreativeTabs tabs, List<ItemStack> list) {
+ for (CombType type : 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 iconRegister) {
+ this.itemIcon = iconRegister.registerIcon("forestry:beeCombs.0");
+ this.secondIcon = iconRegister.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) {
+ CombType type = CombType.valueOf(stack.getItemDamage());
+ return type.getColours()[GT_Utility.clamp(pass, 0, 1)];
+ }
+
+ @Override
+ public String getItemStackDisplayName(ItemStack stack) {
+ return CombType.valueOf(stack.getItemDamage())
+ .getName();
+ }
+
+ @Override
+ public void addInformation(ItemStack stack, EntityPlayer player, List<String> tooltip, boolean debugInfo) {
+ tooltip.add(EnumChatFormatting.DARK_RED + "Forestry can't process it");
+ }
+
+ @Override
+ public boolean shouldUseCustomRenderer(int aMetaData) {
+ return CombType.valueOf(aMetaData).material.renderer != null;
+ }
+
+ @Override
+ public GT_GeneratedMaterial_Renderer getMaterialRenderer(int aMetaData) {
+ return CombType.valueOf(aMetaData).material.renderer;
+ }
+
+ @Override
+ public boolean allowMaterialRenderer(int aMetaData) {
+ return true;
+ }
+
+ @Override
+ public IIcon getIcon(int aMetaData, int pass) {
+ return (pass == 0) ? itemIcon : secondIcon;
+ }
+
+ @Override
+ public IIcon getOverlayIcon(int aMetaData, int pass) {
+ return null;
+ }
+
+ @Override
+ public short[] getRGBa(ItemStack aStack) {
+ return CombType.valueOf(aStack.getItemDamage()).material.mRGBa;
+ }
+
+ public void initCombsRecipes() {
+
+ // Organic
+ addProcessGT(CombType.LIGNIE, new Materials[] { Materials.Lignite }, Voltage.LV);
+ addProcessGT(CombType.COAL, new Materials[] { Materials.Coal }, Voltage.LV);
+ addCentrifugeToItemStack(
+ 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(CombType.OIL, new Materials[] { Materials.Oilsands }, Voltage.LV);
+ addProcessGT(CombType.APATITE, new Materials[] { Materials.Apatite }, Voltage.LV);
+ addCentrifugeToMaterial(
+ CombType.ASH,
+ new Materials[] { Materials.DarkAsh, Materials.Ash },
+ new int[] { 50 * 100, 50 * 100 },
+ new int[] {},
+ Voltage.ULV,
+ NI,
+ 50 * 100);
+ addCentrifugeToItemStack(
+ CombType.PHOSPHORUS,
+ new ItemStack[] { Materials.Phosphorus.getDust(1), Materials.TricalciumPhosphate.getDust(2),
+ ItemList.FR_Wax.get(1) },
+ new int[] { 100 * 100, 100 * 100, 100 * 100 },
+ Voltage.HV);
+ addCentrifugeToItemStack(
+ CombType.MICA,
+ new ItemStack[] { Materials.Mica.getDust(2), ItemList.FR_Wax.get(1) },
+ new int[] { 100 * 100, 75 * 100 },
+ Voltage.HV);
+
+ addCentrifugeToItemStack(
+ 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(
+ 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(
+ CombType.OIL,
+ new ItemStack[] { ItemList.Crop_Drop_OilBerry.get(6), GT_Bees.drop.getStackForType(DropType.OIL),
+ ItemList.FR_Wax.get(1) },
+ new int[] { 100 * 100, 100 * 100, 50 * 100 },
+ Voltage.ULV);
+
+ // ic2
+ addCentrifugeToItemStack(
+ CombType.COOLANT,
+ new ItemStack[] { GT_Bees.drop.getStackForType(DropType.COOLANT), ItemList.FR_Wax.get(1) },
+ new int[] { 100 * 100, 100 * 100 },
+ Voltage.HV,
+ 196);
+ addCentrifugeToItemStack(
+ CombType.ENERGY,
+ new ItemStack[] { GT_Bees.drop.getStackForType(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(
+ CombType.LAPOTRON,
+ new ItemStack[] { GT_Bees.drop.getStackForType(DropType.LAPIS),
+ GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.LapotronDust", 1, 0),
+ GT_ModHandler.getModItem(MagicBees.ID, "wax", 1, 2) },
+ new int[] { 20 * 100, 100 * 100, 40 * 100 },
+ Voltage.HV,
+ 240);
+ addCentrifugeToMaterial(
+ CombType.PYROTHEUM,
+ new Materials[] { Materials.Blaze, Materials.Pyrotheum },
+ new int[] { 25 * 100, 20 * 100 },
+ new int[] {},
+ Voltage.HV,
+ NI,
+ 30 * 100);
+ addCentrifugeToItemStack(
+ CombType.CRYOTHEUM,
+ new ItemStack[] { ItemList.FR_RefractoryWax.get(1), Materials.Cryotheum.getDust(1) },
+ new int[] { 50 * 100, 100 * 100 },
+ Voltage.MV);
+ addCentrifugeToItemStack(
+ CombType.BLIZZ,
+ new ItemStack[] { ItemList.FR_RefractoryWax.get(1), Materials.Blizz.getDust(1) },
+ new int[] { 50 * 100, 100 * 100 },
+ Voltage.MV);
+ // Alloy
+ addProcessGT(CombType.REDALLOY, new Materials[] { Materials.RedAlloy }, Voltage.LV);
+ addProcessGT(CombType.REDSTONEALLOY, new Materials[] { Materials.RedstoneAlloy }, Voltage.LV);
+ addProcessGT(CombType.CONDUCTIVEIRON, new Materials[] { Materials.ConductiveIron }, Voltage.MV);
+ addProcessGT(CombType.VIBRANTALLOY, new Materials[] { Materials.VibrantAlloy }, Voltage.HV);
+ addProcessGT(CombType.ENERGETICALLOY, new Materials[] { Materials.EnergeticAlloy }, Voltage.HV);
+ addProcessGT(CombType.ELECTRICALSTEEL, new Materials[] { Materials.ElectricalSteel }, Voltage.LV);
+ addProcessGT(CombType.DARKSTEEL, new Materials[] { Materials.DarkSteel }, Voltage.MV);
+ addProcessGT(CombType.PULSATINGIRON, new Materials[] { Materials.PulsatingIron }, Voltage.HV);
+ addProcessGT(CombType.STAINLESSSTEEL, new Materials[] { Materials.StainlessSteel }, Voltage.HV);
+ addProcessGT(CombType.BEDROCKIUM, new Materials[] { Materials.Bedrockium }, Voltage.EV);
+ addCentrifugeToItemStack(
+ 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);
+
+ addCentrifugeToMaterial(
+ CombType.REDALLOY,
+ new Materials[] { Materials.RedAlloy },
+ new int[] { 100 * 100 },
+ new int[] {},
+ Voltage.ULV,
+ ItemList.FR_RefractoryWax.get(1),
+ 50 * 100);
+ addCentrifugeToMaterial(
+ CombType.REDSTONEALLOY,
+ new Materials[] { Materials.RedstoneAlloy },
+ new int[] { 100 * 100 },
+ new int[] {},
+ Voltage.ULV,
+ ItemList.FR_RefractoryWax.get(1),
+ 50 * 100);
+ addCentrifugeToMaterial(
+ CombType.CONDUCTIVEIRON,
+ new Materials[] { Materials.ConductiveIron },
+ new int[] { 90 * 100 },
+ new int[] {},
+ Voltage.MV,
+ ItemList.FR_RefractoryWax.get(1),
+ 50 * 100);
+ addCentrifugeToMaterial(
+ CombType.VIBRANTALLOY,
+ new Materials[] { Materials.VibrantAlloy },
+ new int[] { 70 * 100 },
+ new int[] {},
+ Voltage.HV,
+ ItemList.FR_RefractoryWax.get(1),
+ 50 * 100);
+ addCentrifugeToMaterial(
+ CombType.ENERGETICALLOY,
+ new Materials[] { Materials.EnergeticAlloy },
+ new int[] { 80 * 100 },
+ new int[] {},
+ Voltage.HV,
+ ItemList.FR_RefractoryWax.get(1),
+ 50 * 100);
+ addCentrifugeToMaterial(
+ CombType.ELECTRICALSTEEL,
+ new Materials[] { Materials.ElectricalSteel },
+ new int[] { 100 * 100 },
+ new int[] {},
+ Voltage.ULV,
+ ItemList.FR_RefractoryWax.get(1),
+ 50 * 100);
+ addCentrifugeToMaterial(
+ CombType.DARKSTEEL,
+ new Materials[] { Materials.DarkSteel },
+ new int[] { 100 * 100 },
+ new int[] {},
+ Voltage.MV,
+ ItemList.FR_RefractoryWax.get(1),
+ 50 * 100);
+ addCentrifugeToMaterial(
+ CombType.PULSATINGIRON,
+ new Materials[] { Materials.PulsatingIron },
+ new int[] { 80 * 100 },
+ new int[] {},
+ Voltage.HV,
+ ItemList.FR_RefractoryWax.get(1),
+ 50 * 100);
+ addCentrifugeToMaterial(
+ CombType.STAINLESSSTEEL,
+ new Materials[] { Materials.StainlessSteel },
+ new int[] { 50 * 100 },
+ new int[] {},
+ Voltage.HV,
+ ItemList.FR_RefractoryWax.get(1),
+ 50 * 100);
+ addCentrifugeToMaterial(
+ CombType.BEDROCKIUM,
+ new Materials[] { Materials.Bedrockium },
+ new int[] { 50 * 100 },
+ new int[] {},
+ Voltage.EV,
+ ItemList.FR_RefractoryWax.get(1),
+ 50 * 100);
+
+ // Thaumic
+ addProcessGT(CombType.THAUMIUMDUST, new Materials[] { Materials.Thaumium }, Voltage.MV);
+ addCentrifugeToItemStack(
+ CombType.THAUMIUMSHARD,
+ new ItemStack[] { GT_ModHandler.getModItem(MagicBees.ID, "propolis", 1, 1),
+ GT_ModHandler.getModItem(MagicBees.ID, "propolis", 1, 2),
+ GT_ModHandler.getModItem(MagicBees.ID, "propolis", 1, 3),
+ GT_ModHandler.getModItem(MagicBees.ID, "propolis", 1, 4),
+ GT_ModHandler.getModItem(MagicBees.ID, "propolis", 1, 5),
+ GT_ModHandler.getModItem(MagicBees.ID, "propolis", 1, 6),
+ GT_ModHandler.getModItem(MagicBees.ID, "wax", 1, 0) },
+ new int[] { 20 * 100, 20 * 100, 20 * 100, 20 * 100, 20 * 100, 20 * 100, 50 * 100 },
+ Voltage.ULV);
+ addProcessGT(CombType.AMBER, new Materials[] { Materials.Amber }, Voltage.LV);
+ addProcessGT(CombType.QUICKSILVER, new Materials[] { Materials.Cinnabar }, Voltage.LV);
+ addCentrifugeToItemStack(
+ CombType.SALISMUNDUS,
+ new ItemStack[] { GT_ModHandler.getModItem(Thaumcraft.ID, "ItemResource", 1, 14),
+ GT_ModHandler.getModItem(MagicBees.ID, "wax", 1, 0) },
+ new int[] { 100 * 100, 50 * 100 },
+ Voltage.MV);
+ addCentrifugeToItemStack(
+ CombType.TAINTED,
+ new ItemStack[] { GT_ModHandler.getModItem(Thaumcraft.ID, "ItemResource", 1, 11),
+ GT_ModHandler.getModItem(Thaumcraft.ID, "ItemResource", 1, 12),
+ GT_ModHandler.getModItem(Thaumcraft.ID, "blockTaintFibres", 1, 0),
+ GT_ModHandler.getModItem(Thaumcraft.ID, "blockTaintFibres", 1, 1),
+ GT_ModHandler.getModItem(Thaumcraft.ID, "blockTaintFibres", 1, 2),
+ GT_ModHandler.getModItem(MagicBees.ID, "wax", 1, 0) },
+ new int[] { 15 * 100, 15 * 100, 15 * 100, 15 * 100, 15 * 100, 50 * 100 },
+ Voltage.ULV);
+ addProcessGT(CombType.MITHRIL, new Materials[] { Materials.Mithril }, Voltage.HV);
+ addProcessGT(CombType.ASTRALSILVER, new Materials[] { Materials.AstralSilver }, Voltage.HV);
+ addCentrifugeToMaterial(
+ CombType.ASTRALSILVER,
+ new Materials[] { Materials.AstralSilver, Materials.Silver },
+ new int[] { 20 * 100, 10 * 100 },
+ new int[] {},
+ Voltage.HV,
+ GT_ModHandler.getModItem(MagicBees.ID, "wax", 1, 0),
+ 50 * 100);
+ addCentrifugeToItemStack(
+ CombType.THAUMINITE,
+ new ItemStack[] { GT_ModHandler.getModItem(ThaumicBases.ID, "resource", 1, 0),
+ GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Thaumium, 1),
+ GT_ModHandler.getModItem(MagicBees.ID, "wax", 1, 0) },
+ new int[] { 20 * 100, 10 * 100, 50 * 100 },
+ Voltage.HV);
+ addProcessGT(CombType.SHADOWMETAL, new Materials[] { Materials.Shadow }, Voltage.HV);
+ addCentrifugeToMaterial(
+ CombType.SHADOWMETAL,
+ new Materials[] { Materials.Shadow, Materials.ShadowSteel },
+ new int[] { 20 * 100, 10 * 100 },
+ new int[] {},
+ Voltage.HV,
+ GT_ModHandler.getModItem(MagicBees.ID, "wax", 1, 0),
+ 50 * 100);
+ addProcessGT(CombType.DIVIDED, new Materials[] { Materials.Diamond }, Voltage.HV);
+ addCentrifugeToItemStack(
+ CombType.DIVIDED,
+ new ItemStack[] { GT_ModHandler.getModItem(MagicBees.ID, "wax", 1, 0),
+ GT_ModHandler.getModItem(ExtraUtilities.ID, "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, 10 * 100, 5 * 100 },
+ Voltage.HV);
+ addProcessGT(CombType.SPARKLING, new Materials[] { Materials.NetherStar }, Voltage.EV);
+ addCentrifugeToItemStack(
+ CombType.SPARKLING,
+ new ItemStack[] { GT_ModHandler.getModItem(MagicBees.ID, "wax", 1, 0),
+ GT_ModHandler.getModItem(MagicBees.ID, "miscResources", 2, 5),
+ GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.NetherStar, 1) },
+ new int[] { 50 * 100, 10 * 100, 10 * 100 },
+ Voltage.EV);
+
+ addCentrifugeToMaterial(
+ CombType.THAUMIUMDUST,
+ new Materials[] { Materials.Thaumium },
+ new int[] { 100 * 100 },
+ new int[] {},
+ Voltage.MV,
+ GT_ModHandler.getModItem(MagicBees.ID, "wax", 1, 0),
+ 50 * 100);
+ addCentrifugeToItemStack(
+ CombType.QUICKSILVER,
+ new ItemStack[] { GT_ModHandler.getModItem(MagicBees.ID, "wax", 1, 0),
+ GT_ModHandler.getModItem(Thaumcraft.ID, "ItemNugget", 1, 5) },
+ new int[] { 50 * 100, 100 * 100 },
+ Voltage.ULV);
+
+ // Gem Line
+ addProcessGT(CombType.STONE, new Materials[] { Materials.Soapstone }, Voltage.LV);
+ addProcessGT(CombType.CERTUS, new Materials[] { Materials.CertusQuartz }, Voltage.LV);
+ addProcessGT(CombType.FLUIX, new Materials[] { Materials.Fluix }, Voltage.LV);
+ addProcessGT(CombType.REDSTONE, new Materials[] { Materials.Redstone }, Voltage.LV);
+ addCentrifugeToMaterial(
+ CombType.RAREEARTH,
+ new Materials[] { Materials.RareEarth },
+ new int[] { 100 * 100 },
+ new int[] { 1 },
+ Voltage.ULV,
+ NI,
+ 30 * 100);
+ addProcessGT(CombType.LAPIS, new Materials[] { Materials.Lapis }, Voltage.LV);
+ addProcessGT(CombType.RUBY, new Materials[] { Materials.Ruby }, Voltage.LV);
+ addProcessGT(CombType.REDGARNET, new Materials[] { Materials.GarnetRed }, Voltage.LV);
+ addProcessGT(CombType.YELLOWGARNET, new Materials[] { Materials.GarnetYellow }, Voltage.LV);
+ addProcessGT(CombType.SAPPHIRE, new Materials[] { Materials.Sapphire }, Voltage.LV);
+ addProcessGT(CombType.DIAMOND, new Materials[] { Materials.Diamond }, Voltage.LV);
+ addProcessGT(CombType.OLIVINE, new Materials[] { Materials.Olivine }, Voltage.LV);
+ addProcessGT(CombType.EMERALD, new Materials[] { Materials.Emerald }, Voltage.LV);
+ addProcessGT(CombType.FIRESTONE, new Materials[] { Materials.Firestone }, Voltage.LV);
+ addProcessGT(CombType.PYROPE, new Materials[] { Materials.Pyrope }, Voltage.LV);
+ addProcessGT(CombType.GROSSULAR, new Materials[] { Materials.Grossular }, Voltage.LV);
+
+ addCentrifugeToMaterial(
+ 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(
+ CombType.FLUIX,
+ new Materials[] { Materials.Fluix },
+ new int[] { 25 * 100 },
+ new int[] { 9 },
+ Voltage.ULV,
+ NI,
+ 30 * 100);
+
+ // Metals Line
+ addProcessGT(CombType.SLAG, new Materials[] { Materials.Limestone }, Voltage.LV);
+ addProcessGT(CombType.COPPER, new Materials[] { Materials.Copper }, Voltage.LV);
+ addProcessGT(CombType.TIN, new Materials[] { Materials.Tin }, Voltage.LV);
+ addProcessGT(CombType.LEAD, new Materials[] { Materials.Lead }, Voltage.LV);
+ addProcessGT(CombType.INDIUM, new Materials[] { Materials.Indium }, Voltage.ZPM);
+ addProcessGT(CombType.NICKEL, new Materials[] { Materials.Nickel }, Voltage.LV);
+ addProcessGT(CombType.ZINC, new Materials[] { Materials.Zinc }, Voltage.LV);
+ addProcessGT(CombType.SILVER, new Materials[] { Materials.Silver }, Voltage.LV);
+ addProcessGT(CombType.CRYOLITE, new Materials[] { Materials.Cryolite }, Voltage.LV);
+ addProcessGT(CombType.GOLD, new Materials[] { Materials.Gold }, Voltage.LV);
+ addProcessGT(CombType.SULFUR, new Materials[] { Materials.Sulfur }, Voltage.LV);
+ addProcessGT(CombType.GALLIUM, new Materials[] { Materials.Gallium }, Voltage.LV);
+ addProcessGT(CombType.ARSENIC, new Materials[] { Materials.Arsenic }, Voltage.LV);
+ addProcessGT(CombType.IRON, new Materials[] { Materials.Iron }, Voltage.LV);
+ addProcessGT(CombType.STEEL, new Materials[] { Materials.Steel }, Voltage.LV);
+
+ addCentrifugeToMaterial(
+ 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(
+ CombType.COPPER,
+ new Materials[] { Materials.Copper },
+ new int[] { 70 * 100 },
+ new int[] {},
+ Voltage.ULV,
+ NI,
+ 30 * 100);
+ addCentrifugeToMaterial(
+ CombType.TIN,
+ new Materials[] { Materials.Tin },
+ new int[] { 60 * 100 },
+ new int[] {},
+ Voltage.ULV,
+ NI,
+ 30 * 100);
+ addCentrifugeToMaterial(
+ CombType.LEAD,
+ new Materials[] { Materials.Lead },
+ new int[] { 45 * 100 },
+ new int[] {},
+ Voltage.ULV,
+ NI,
+ 30 * 100);
+ addCentrifugeToMaterial(
+ CombType.IRON,
+ new Materials[] { Materials.Iron },
+ new int[] { 30 * 100 },
+ new int[] {},
+ Voltage.ULV,
+ NI,
+ 30 * 100);
+ addCentrifugeToMaterial(
+ CombType.STEEL,
+ new Materials[] { Materials.Steel },
+ new int[] { 40 * 100 },
+ new int[] {},
+ Voltage.ULV,
+ NI,
+ 30 * 100);
+ addCentrifugeToMaterial(
+ CombType.SILVER,
+ new Materials[] { Materials.Silver },
+ new int[] { 80 * 100 },
+ new int[] {},
+ Voltage.ULV,
+ NI,
+ 30 * 100);
+ addCentrifugeToMaterial(
+ CombType.CRYOLITE,
+ new Materials[] { Materials.Cryolite },
+ new int[] { 80 * 100 },
+ new int[] {},
+ Voltage.ULV,
+ NI,
+ 30 * 100);
+ addCentrifugeToMaterial(
+ CombType.SULFUR,
+ new Materials[] { Materials.Sulfur },
+ new int[] { 100 * 100 },
+ new int[] {},
+ Voltage.ULV,
+ NI,
+ 30 * 100);
+
+ // Rare Metals Line
+ addProcessGT(CombType.BAUXITE, new Materials[] { Materials.Bauxite }, Voltage.LV);
+ addProcessGT(CombType.ALUMINIUM, new Materials[] { Materials.Aluminium }, Voltage.LV);
+ addProcessGT(CombType.MANGANESE, new Materials[] { Materials.Manganese }, Voltage.LV);
+ addProcessGT(CombType.TITANIUM, new Materials[] { Materials.Titanium }, Voltage.EV);
+ addProcessGT(CombType.MAGNESIUM, new Materials[] { Materials.Magnesium }, Voltage.LV);
+ addProcessGT(CombType.CHROME, new Materials[] { Materials.Chrome }, Voltage.HV);
+ addProcessGT(CombType.TUNGSTEN, new Materials[] { Materials.Tungsten }, Voltage.IV);
+ addProcessGT(CombType.PLATINUM, new Materials[] { Materials.Platinum }, Voltage.HV);
+ addProcessGT(CombType.MOLYBDENUM, new Materials[] { Materials.Molybdenum }, Voltage.LV);
+ addProcessGT(CombType.IRIDIUM, new Materials[] { Materials.Iridium }, Voltage.IV);
+ addProcessGT(CombType.PALLADIUM, new Materials[] { Materials.Palladium }, Voltage.IV);
+ addProcessGT(CombType.OSMIUM, new Materials[] { Materials.Osmium }, Voltage.IV);
+ addProcessGT(CombType.NEODYMIUM, new Materials[] { Materials.Neodymium }, Voltage.MV);
+ addProcessGT(CombType.EUROPIUM, new Materials[] { Materials.Europium }, Voltage.LuV);
+ addProcessGT(CombType.LITHIUM, new Materials[] { Materials.Lithium }, Voltage.MV);
+ addProcessGT(CombType.ELECTROTINE, new Materials[] { Materials.Electrotine }, Voltage.MV);
+ addProcessGT(CombType.DRACONIC, new Materials[] { Materials.Draconium }, Voltage.IV);
+ addProcessGT(CombType.AWAKENEDDRACONIUM, new Materials[] { Materials.DraconiumAwakened }, Voltage.ZPM);
+
+ addCentrifugeToItemStack(
+ CombType.SALT,
+ new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Salt, 6),
+ GT_OreDictUnificator.get(OrePrefixes.dust, Materials.RockSalt, 6), ItemList.FR_Wax.get(1),
+ GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Saltpeter, 6) },
+ new int[] { 100 * 100, 100 * 100, 50 * 100, 25 * 100 },
+ Voltage.MV,
+ 160);
+
+ // Radioactive Line
+ addProcessGT(CombType.ALMANDINE, new Materials[] { Materials.Almandine }, Voltage.LV);
+ addProcessGT(CombType.URANIUM, new Materials[] { Materials.Uranium }, Voltage.EV);
+ addProcessGT(CombType.PLUTONIUM, new Materials[] { Materials.Plutonium }, Voltage.EV);
+ addProcessGT(CombType.NAQUADAH, new Materials[] { Materials.Naquadah }, Voltage.IV);
+ addProcessGT(CombType.NAQUADRIA, new Materials[] { Materials.Naquadria }, Voltage.LuV);
+ addProcessGT(CombType.THORIUM, new Materials[] { Materials.Thorium }, Voltage.EV);
+ addProcessGT(CombType.LUTETIUM, new Materials[] { Materials.Lutetium }, Voltage.IV);
+ addProcessGT(CombType.AMERICIUM, new Materials[] { Materials.Americium }, Voltage.LuV);
+ addProcessGT(CombType.NEUTRONIUM, new Materials[] { Materials.Neutronium }, Voltage.UHV);
+
+ // Twilight
+ addCentrifugeToItemStack(
+ CombType.NAGA,
+ new ItemStack[] { GT_ModHandler.getModItem(MagicBees.ID, "propolis", 1L, 4),
+ GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.NagaScaleChip", 1L, 0),
+ GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.NagaScaleFragment", 1L, 0),
+ ItemList.FR_Wax.get(1) },
+ new int[] { 5 * 100, 33 * 100, 8 * 100, 30 * 100 },
+ Voltage.MV);
+ addCentrifugeToItemStack(
+ CombType.LICH,
+ new ItemStack[] { GT_ModHandler.getModItem(MagicBees.ID, "propolis", 1L, 5),
+ GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.LichBoneChip", 1L, 0),
+ GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.LichBoneFragment", 1L, 0),
+ ItemList.FR_Wax.get(1) },
+ new int[] { 5 * 100, 33 * 100, 8 * 100, 30 * 100 },
+ Voltage.HV);
+ addCentrifugeToItemStack(
+ CombType.HYDRA,
+ new ItemStack[] { GT_ModHandler.getModItem(MagicBees.ID, "propolis", 1L, 1),
+ GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.FieryBloodDrop", 1L, 0),
+ GT_Bees.drop.getStackForType(DropType.HYDRA), ItemList.FR_Wax.get(1) },
+ new int[] { 5 * 100, 33 * 100, 8 * 100, 30 * 100 },
+ Voltage.HV);
+ addCentrifugeToItemStack(
+ CombType.URGHAST,
+ new ItemStack[] { GT_ModHandler.getModItem(MagicBees.ID, "propolis", 1L, 2),
+ GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.CarminiteChip", 1L, 0),
+ GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.CarminiteFragment", 1L, 0),
+ ItemList.FR_Wax.get(1) },
+ new int[] { 5 * 100, 33 * 100, 8 * 100, 30 * 100 },
+ Voltage.EV);
+ addCentrifugeToItemStack(
+ CombType.SNOWQUEEN,
+ new ItemStack[] { GT_ModHandler.getModItem(MagicBees.ID, "propolis", 1L, 3),
+ GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.SnowQueenBloodDrop", 1L, 0),
+ GT_Bees.drop.getStackForType(DropType.SNOW_QUEEN), ItemList.FR_Wax.get(1) },
+ new int[] { 5 * 100, 33 * 100, 8 * 100, 30 * 100 },
+ Voltage.EV);
+
+ // HEE
+ addCentrifugeToItemStack(
+ CombType.ENDDUST,
+ new ItemStack[] { GT_ModHandler.getModItem(MagicBees.ID, "wax", 1L, 0),
+ GT_Bees.propolis.getStackForType(PropolisType.End), GT_Bees.drop.getStackForType(DropType.ENDERGOO),
+ Materials.Endstone.getBlocks(4) },
+ new int[] { 20 * 100, 15 * 100, 10 * 100, 100 * 100 },
+ Voltage.HV);
+ addCentrifugeToItemStack(
+ CombType.STARDUST,
+ new ItemStack[] { GT_ModHandler.getModItem(MagicBees.ID, "wax", 1L, 0),
+ GT_Bees.propolis.getStackForType(PropolisType.Stardust),
+ GT_Bees.drop.getStackForType(DropType.ENDERGOO) },
+ new int[] { 20 * 100, 15 * 100, 10 * 100 },
+ Voltage.HV);
+ addCentrifugeToItemStack(
+ CombType.ECTOPLASMA,
+ new ItemStack[] { GT_ModHandler.getModItem(MagicBees.ID, "wax", 1L, 0),
+ GT_Bees.propolis.getStackForType(PropolisType.Ectoplasma),
+ GT_Bees.drop.getStackForType(DropType.ENDERGOO) },
+ new int[] { 25 * 100, 10 * 100, 15 * 100 },
+ Voltage.EV);
+ addCentrifugeToItemStack(
+ CombType.ARCANESHARD,
+ new ItemStack[] { GT_ModHandler.getModItem(MagicBees.ID, "wax", 1L, 0),
+ GT_Bees.propolis.getStackForType(PropolisType.Arcaneshard),
+ GT_Bees.drop.getStackForType(DropType.ENDERGOO) },
+ new int[] { 25 * 100, 10 * 100, 15 * 100 },
+ Voltage.EV);
+ addCentrifugeToItemStack(
+ CombType.DRAGONESSENCE,
+ new ItemStack[] { GT_ModHandler.getModItem(MagicBees.ID, "wax", 1L, 0),
+ GT_Bees.propolis.getStackForType(PropolisType.Dragonessence),
+ GT_Bees.drop.getStackForType(DropType.ENDERGOO) },
+ new int[] { 30 * 100, (int) (7.5 * 100), 20 * 100 },
+ Voltage.IV);
+ addCentrifugeToItemStack(
+ CombType.ENDERMAN,
+ new ItemStack[] { GT_ModHandler.getModItem(MagicBees.ID, "wax", 1L, 0),
+ GT_Bees.propolis.getStackForType(PropolisType.Enderman),
+ GT_Bees.drop.getStackForType(DropType.ENDERGOO) },
+ new int[] { 3000, 750, 2000 },
+ Voltage.IV);
+ addCentrifugeToItemStack(
+ CombType.SILVERFISH,
+ new ItemStack[] { GT_ModHandler.getModItem(MagicBees.ID, "wax", 1L, 0),
+ GT_Bees.propolis.getStackForType(PropolisType.Silverfish),
+ GT_Bees.drop.getStackForType(DropType.ENDERGOO), new ItemStack(Items.spawn_egg, 1, 60) },
+ new int[] { 25 * 100, 10 * 100, 20 * 100, 15 * 100 },
+ Voltage.EV);
+ addProcessGT(CombType.ENDIUM, new Materials[] { Materials.HeeEndium }, Voltage.HV);
+
+ addCentrifugeToItemStack(
+ CombType.RUNEI,
+ new ItemStack[] { GT_ModHandler.getModItem(MagicBees.ID, "wax", 1L, 0),
+ GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.RuneOfPowerFragment", 1L, 0),
+ GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.RuneOfAgilityFragment", 1L, 0),
+ GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.RuneOfVigorFragment", 1L, 0),
+ GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.RuneOfDefenseFragment", 1L, 0),
+ GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.RuneOfMagicFragment", 1L, 0) },
+ new int[] { 25 * 100, 5 * 100, 5 * 100, 5 * 100, 5 * 100, 5 * 100 },
+ Voltage.IV);
+ addCentrifugeToItemStack(
+ CombType.RUNEII,
+ new ItemStack[] { GT_ModHandler.getModItem(MagicBees.ID, "wax", 1L, 0),
+ GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.RuneOfVoidFragment", 1L, 0) },
+ new int[] { 50 * 100, (int) (2.5 * 100) },
+ Voltage.IV);
+ addCentrifugeToItemStack(
+ CombType.FIREESSENSE,
+ new ItemStack[] { GT_ModHandler.getModItem(MagicBees.ID, "wax", 1L, 0),
+ GT_Bees.propolis.getStackForType(PropolisType.Fireessence),
+ GT_Bees.drop.getStackForType(DropType.ENDERGOO) },
+ new int[] { 30 * 100, (int) (7.5 * 100), 20 * 100 },
+ Voltage.IV);
+ // Walrus Recipe
+ if (AE2FluidCraft.isModLoaded()) {
+ addCentrifugeToItemStack(
+ CombType.WALRUS,
+ new ItemStack[] { GT_ModHandler.getModItem(AE2FluidCraft.ID, "walrus", 1L, 0) },
+ new int[] { 100 * 100 },
+ Voltage.LV);
+ }
+ // Space Line
+ addCentrifugeToItemStack(
+ CombType.SPACE,
+ new ItemStack[] { ItemList.FR_Wax.get(1L), ItemList.FR_RefractoryWax.get(1L),
+ GT_Bees.drop.getStackForType(DropType.OXYGEN),
+ GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.CoinSpace", 1L, 0) },
+ new int[] { 50 * 100, 30 * 100, 15 * 100, 5 * 100 },
+ Voltage.HV);
+ addProcessGT(CombType.METEORICIRON, new Materials[] { Materials.MeteoricIron }, Voltage.HV);
+ addProcessGT(CombType.DESH, new Materials[] { Materials.Desh }, Voltage.EV);
+ addProcessGT(CombType.LEDOX, new Materials[] { Materials.Ledox }, Voltage.EV);
+ addProcessGT(CombType.CALLISTOICE, new Materials[] { Materials.CallistoIce }, Voltage.IV);
+ addProcessGT(CombType.MYTRYL, new Materials[] { Materials.Mytryl }, Voltage.IV);
+ addProcessGT(CombType.QUANTIUM, new Materials[] { Materials.Quantium }, Voltage.IV);
+ addProcessGT(CombType.ORIHARUKON, new Materials[] { Materials.Oriharukon }, Voltage.IV);
+ addProcessGT(CombType.INFUSEDGOLD, new Materials[] { Materials.InfusedGold }, Voltage.IV);
+ addCentrifugeToMaterial(
+ CombType.INFUSEDGOLD,
+ new Materials[] { Materials.InfusedGold, Materials.Gold },
+ new int[] { 20 * 100, 10 * 100 },
+ new int[] {},
+ Voltage.IV,
+ 200,
+ NI,
+ 10 * 100);
+ addProcessGT(CombType.MYSTERIOUSCRYSTAL, new Materials[] { Materials.MysteriousCrystal }, Voltage.LuV);
+ addCentrifugeToMaterial(
+ CombType.MYSTERIOUSCRYSTAL,
+ new Materials[] { Materials.MysteriousCrystal },
+ new int[] { 10 * 100, 15 * 100 },
+ new int[] {},
+ Voltage.LuV,
+ 512,
+ NI,
+ 50 * 100);
+ addProcessGT(CombType.BLACKPLUTONIUM, new Materials[] { Materials.BlackPlutonium }, Voltage.LuV);
+ addProcessGT(CombType.TRINIUM, new Materials[] { Materials.Trinium }, Voltage.ZPM);
+
+ // Planet Line
+ addCentrifugeToItemStack(
+ CombType.MOON,
+ new ItemStack[] { ItemList.FR_Wax.get(1L),
+ GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.MoonStoneDust", 1L, 0) },
+ new int[] { 50 * 100, 30 * 100 },
+ Voltage.MV,
+ 300);
+ addCentrifugeToItemStack(
+ CombType.MARS,
+ new ItemStack[] { ItemList.FR_Wax.get(1L),
+ GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.MarsStoneDust", 1L, 0) },
+ new int[] { 50 * 100, 30 * 100 },
+ Voltage.HV,
+ 300);
+ addCentrifugeToItemStack(
+ CombType.JUPITER,
+ new ItemStack[] { GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.IoStoneDust", 1L, 0),
+ GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.EuropaIceDust", 1L, 0),
+ GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.EuropaStoneDust", 1L, 0),
+ GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.GanymedeStoneDust", 1L, 0),
+ GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "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(
+ CombType.MERCURY,
+ new ItemStack[] { ItemList.FR_Wax.get(1L),
+ GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.MercuryCoreDust", 1L, 0),
+ GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.MercuryStoneDust", 1L, 0) },
+ new int[] { 50 * 100, 30 * 100, 30 * 100 },
+ Voltage.EV,
+ 300);
+ addCentrifugeToItemStack(
+ CombType.VENUS,
+ new ItemStack[] { ItemList.FR_Wax.get(1L),
+ GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.VenusStoneDust", 1L, 0) },
+ new int[] { 50 * 100, 30 * 100 },
+ Voltage.EV,
+ 300);
+ addCentrifugeToItemStack(
+ CombType.SATURN,
+ new ItemStack[] { ItemList.FR_Wax.get(1L),
+ GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.EnceladusStoneDust", 1L, 0),
+ GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.TitanStoneDust", 1L, 0) },
+ new int[] { 50 * 100, 30 * 100, 30 * 100 },
+ Voltage.IV,
+ 300);
+ addCentrifugeToItemStack(
+ CombType.URANUS,
+ new ItemStack[] { ItemList.FR_Wax.get(1L),
+ GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.MirandaStoneDust", 1L, 0),
+ GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.OberonStoneDust", 1L, 0) },
+ new int[] { 50 * 100, 30 * 100, 30 * 100 },
+ Voltage.IV,
+ 300);
+ addCentrifugeToItemStack(
+ CombType.NEPTUNE,
+ new ItemStack[] { ItemList.FR_Wax.get(1L),
+ GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.ProteusStoneDust", 1L, 0),
+ GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.TritonStoneDust", 1L, 0) },
+ new int[] { 50 * 100, 30 * 100, 30 * 100 },
+ Voltage.IV,
+ 300);
+ addCentrifugeToItemStack(
+ CombType.PLUTO,
+ new ItemStack[] { ItemList.FR_Wax.get(1L),
+ GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.PlutoStoneDust", 1L, 0),
+ GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.PlutoIceDust", 1L, 0) },
+ new int[] { 50 * 100, 30 * 100, 30 * 100 },
+ Voltage.LuV,
+ 300);
+ addCentrifugeToItemStack(
+ CombType.HAUMEA,
+ new ItemStack[] { ItemList.FR_Wax.get(1L),
+ GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.HaumeaStoneDust", 1L, 0) },
+ new int[] { 50 * 100, 30 * 100 },
+ Voltage.LuV,
+ 300);
+ addCentrifugeToItemStack(
+ CombType.MAKEMAKE,
+ new ItemStack[] { ItemList.FR_Wax.get(1L),
+ GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.MakeMakeStoneDust", 1L, 0) },
+ new int[] { 50 * 100, 30 * 100 },
+ Voltage.LuV,
+ 300);
+ addCentrifugeToItemStack(
+ CombType.CENTAURI,
+ new ItemStack[] { ItemList.FR_Wax.get(1L),
+ GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.CentauriASurfaceDust", 1L, 0),
+ GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.CentauriAStoneDust", 1L, 0) },
+ new int[] { 50 * 100, 30 * 100, 30 * 100 },
+ Voltage.ZPM,
+ 300);
+ addCentrifugeToItemStack(
+ CombType.TCETI,
+ new ItemStack[] { ItemList.FR_Wax.get(1L),
+ GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.TCetiEStoneDust", 1L, 0) },
+ new int[] { 50 * 100, 30 * 100 },
+ Voltage.ZPM,
+ 300);
+ addCentrifugeToItemStack(
+ CombType.BARNARDA,
+ new ItemStack[] { ItemList.FR_Wax.get(1L),
+ GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.BarnardaEStoneDust", 1L, 0),
+ GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.BarnardaFStoneDust", 1L, 0) },
+ new int[] { 50 * 100, 30 * 100, 30 * 100 },
+ Voltage.ZPM,
+ 300);
+ addCentrifugeToItemStack(
+ CombType.VEGA,
+ new ItemStack[] { ItemList.FR_Wax.get(1L),
+ GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.VegaBStoneDust", 1L, 0) },
+ new int[] { 50 * 100, 30 * 100 },
+ Voltage.ZPM,
+ 300);
+ if (GalaxySpace.isModLoaded()) {
+ addCentrifugeToItemStack(
+ CombType.SEAWEED,
+ new ItemStack[] { ItemList.FR_Wax.get(1L),
+ GT_ModHandler.getModItem(GalaxySpace.ID, "tcetiedandelions", 1L, 0) },
+ new int[] { 50 * 100, 100 * 100 },
+ Voltage.UV,
+ 100);
+ }
+ // Infinity Line
+ addCentrifugeToMaterial(
+ CombType.INFINITYCATALYST,
+ new Materials[] { Materials.InfinityCatalyst, Materials.Neutronium },
+ new int[] { 25 * 100, 20 * 100 },
+ new int[] {},
+ Voltage.ZPM,
+ 100,
+ NI,
+ 50 * 100);
+
+ // (Noble)gas Line
+ addFluidExtractorProcess(CombType.HELIUM, Materials.Helium.getGas(250), Voltage.HV);
+ addFluidExtractorProcess(CombType.ARGON, Materials.Argon.getGas(250), Voltage.MV);
+ addFluidExtractorProcess(CombType.NITROGEN, Materials.Nitrogen.getGas(500), Voltage.MV);
+ addFluidExtractorProcess(CombType.HYDROGEN, Materials.Hydrogen.getGas(500), Voltage.MV);
+ addFluidExtractorProcess(CombType.FLUORINE, Materials.Fluorine.getGas(250), Voltage.MV);
+ addFluidExtractorProcess(CombType.OXYGEN, Materials.Oxygen.getGas(500), Voltage.MV);
+ // Organic part 2, unknown liquid
+ // yes, unknowwater. It's not a typo, it's how it is spelled. Stupid game.
+ addFluidExtractorProcess(CombType.UNKNOWNLIQUID, FluidRegistry.getFluidStack("unknowwater", 250), Voltage.ZPM);
+ /*
+ * TODO: update this comment
+ * The Centrifuge Recipes for Infused Shards and Nether/End-Shard from the Infused Shard Line are below the
+ * NobleGas Lines for Xenon and co. in GT_MachineRecipeLoader.java In Lines 1525
+ */
+ }
+
+ /**
+ * Currently only used for CombType.MOLYBDENUM
+ *
+ * @param circuitNumber should not conflict with addProcessGT
+ *
+ **/
+ public void addAutoclaveProcess(CombType comb, Materials aMaterial, Voltage volt, int circuitNumber) {
+ if (GT_OreDictUnificator.get(OrePrefixes.crushedPurified, aMaterial, 4) == NI) {
+ return;
+ }
+ GT_RecipeBuilder recipeBuilder = GT_Values.RA.stdBuilder();
+ recipeBuilder
+ .itemInputs(GT_Utility.copyAmount(9, getStackForType(comb)), GT_Utility.getIntegratedCircuit(circuitNumber))
+ .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.crushedPurified, aMaterial, 4))
+ .fluidInputs(Materials.UUMatter.getFluid(Math.max(1, ((aMaterial.getMass() + volt.getUUAmplifier()) / 10))))
+ .duration(((int) (aMaterial.getMass() * 128)) * TICKS)
+ .eut(volt.getAutoClaveEnergy());
+ if (volt.compareTo(Voltage.HV) > 0) {
+ recipeBuilder.requiresCleanRoom();
+ }
+ recipeBuilder.addTo(autoclaveRecipes);
+ }
+
+ public void addFluidExtractorProcess(CombType comb, FluidStack fluid, Voltage volt) {
+ if (fluid == null) {
+ return;
+ }
+
+ int duration = (fluid.getFluid()
+ .getDensity() * 128 > 0
+ ? (fluid.getFluid()
+ .getDensity() * 100)
+ : 128);
+ int eut = volt.getSimpleEnergy() / 2;
+
+ GT_Values.RA.stdBuilder()
+ .itemInputs(GT_Utility.copyAmount(1, getStackForType(comb)))
+ .fluidOutputs(fluid)
+ .duration(duration)
+ .eut(eut)
+ .addTo(fluidExtractionRecipes);
+ }
+
+ /**
+ * 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(CombType comb, Materials[] aMaterial, Voltage volt) {
+ ItemStack tComb = getStackForType(comb);
+ for (Materials materials : aMaterial) {
+ if (GT_OreDictUnificator.get(OrePrefixes.crushedPurified, materials, 4) != null) {
+ ItemStack combInput;
+ ItemStack combOutput;
+ FluidStack fluidInput;
+ FluidStack fluidOutput;
+ int durationTicks;
+ int eut;
+ boolean requiresCleanroom;
+ switch (comb) {
+ case NEUTRONIUM -> {
+ combInput = GT_Utility.copyAmount(4, tComb);
+ combOutput = Materials.Neutronium.getNuggets(1);
+ fluidInput = volt.getFluidAccordingToCombTier();
+ fluidOutput = Materials.Neutronium.getMolten(576);
+ durationTicks = volt.getComplexTime() * 17;
+ eut = volt.getChemicalEnergy();
+ requiresCleanroom = volt.compareTo(Voltage.IV) > 0;
+ }
+ case OSMIUM -> {
+ combInput = GT_Utility.copyAmount(4, tComb);
+ combOutput = Materials.Osmium.getNuggets(1);
+ fluidInput = volt.getFluidAccordingToCombTier();
+ fluidOutput = Materials.Osmium.getMolten(288);
+ durationTicks = volt.getComplexTime() * 17;
+ eut = volt.getChemicalEnergy();
+ requiresCleanroom = volt.compareTo(Voltage.IV) > 0;
+ }
+ case PLATINUM -> {
+ combInput = GT_Utility.copyAmount(4, tComb);
+ combOutput = Materials.Platinum.getNuggets(1);
+ fluidInput = volt.getFluidAccordingToCombTier();
+ fluidOutput = Materials.Platinum.getMolten(288);
+ durationTicks = volt.getComplexTime() * 10;
+ eut = volt.getChemicalEnergy();
+ requiresCleanroom = volt.compareTo(Voltage.HV) > 0;
+ }
+ case IRIDIUM -> {
+ combInput = GT_Utility.copyAmount(4, tComb);
+ combOutput = Materials.Iridium.getNuggets(1);
+ fluidInput = volt.getFluidAccordingToCombTier();
+ fluidOutput = Materials.Iridium.getMolten(288);
+ durationTicks = volt.getComplexTime() * 14;
+ eut = volt.getChemicalEnergy();
+ requiresCleanroom = volt.compareTo(Voltage.EV) > 0;
+ }
+ default -> {
+ combInput = GT_Utility.copyAmount(4, tComb);
+ combOutput = GT_OreDictUnificator.get(OrePrefixes.crushedPurified, materials, 4);
+ fluidInput = volt.getFluidAccordingToCombTier();
+ fluidOutput = null;
+ durationTicks = volt.getComplexTime();
+ eut = volt.getChemicalEnergy();
+ requiresCleanroom = volt.compareTo(Voltage.IV) > 0;
+ }
+ }
+ GT_RecipeBuilder recipeBuilder = GT_Values.RA.stdBuilder();
+ recipeBuilder.itemInputs(combInput)
+ .itemOutputs(combOutput)
+ .fluidInputs(fluidInput);
+ if (fluidOutput != null) {
+ recipeBuilder.fluidOutputs(fluidOutput);
+ }
+ recipeBuilder.duration(durationTicks)
+ .eut(eut)
+ .metadata(CLEANROOM, requiresCleanroom)
+ .addTo(UniversalChemical);
+ }
+ }
+ }
+
+ /**
+ * 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, then 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(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(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.dust, aMaterial[i], (Math.max(1, stackSize[i]) / 4));
+ } else {
+ aOutPut[i] = GT_OreDictUnificator.get(OrePrefixes.dust, 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(CombType comb, ItemStack[] aItem, int[] chance, Voltage volt) {
+ addCentrifugeToItemStack(comb, aItem, chance, volt, volt.getSimpleTime());
+ }
+
+ public void addCentrifugeToItemStack(CombType comb, ItemStack[] aItem, int[] chance, Voltage volt, int duration) {
+ ItemStack tComb = getStackForType(comb);
+ Builder<ItemStack, Float> Product = new ImmutableMap.Builder<>();
+ for (int i = 0; i < aItem.length; i++) {
+ if (aItem[i] == NI) {
+ continue;
+ }
+ Product.put(aItem[i], chance[i] / 10000.0f);
+ }
+
+ if (volt.compareTo(Voltage.MV) < 0) {
+ RecipeManagers.centrifugeManager.addRecipe(40, tComb, Product.build());
+ }
+
+ GT_Values.RA.stdBuilder()
+ .itemInputs(tComb)
+ .itemOutputs(aItem)
+ .outputChances(chance)
+ .duration(duration)
+ .eut(volt.getSimpleEnergy())
+ .addTo(centrifugeRecipes);
+ }
+
+ public void registerOreDict() {
+ for (CombType comb : CombType.values()) {
+ ItemStack tComb = getStackForType(comb);
+ GT_OreDictUnificator.registerOre(OrePrefixes.beeComb.name(), tComb);
+ OrePrefixes.beeComb.add(tComb);
+ if (comb.voltage != null) GT_OreDictUnificator.registerOre("comb" + comb.voltage.name(), tComb);
+ }
+ }
+
+ enum Voltage {
+
+ ULV,
+ LV,
+ MV,
+ HV,
+ EV,
+ IV,
+ LuV,
+ ZPM,
+ UV,
+ UHV,
+ UEV,
+ UIV,
+ UMV,
+ UXV,
+ MAX;
+
+ public int getVoltage() {
+ return (int) V[this.ordinal()];
+ }
+
+ /** @return aEU/t needed for chemical and autoclave process related to the Tier **/
+ public int getVoltageFromEU() {
+ return (int) Math.max(Math.floor(Math.log(2 * this.getVoltage()) / Math.log(4) - 1), 0);
+ }
+
+ /** @return Voltage tier according to EU provided. 0 = ULV, 1 = LV, 2 = MV ... **/
+ 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.HydrofluoricAcid.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.HydrofluoricAcid.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 FluidStack needed for chemical process related to the Tier **/
+ public FluidStack getFluidAccordingToCombTier() {
+ // checking what Voltage tier the Comb is
+ // cascading from IV to UMV since all recipes use HydrofluiricAcid
+ // for later tiers, just add the corresponding tier to a case
+ int fluidAmount = this.getFluidAmount();
+ return switch (this.getVoltageFromEU()) {
+ case 0 ->
+ /* ULV */
+ Materials.Water.getFluid(fluidAmount);
+ case 1 ->
+ /* LV */
+ Materials.SulfuricAcid.getFluid(fluidAmount);
+ case 2 ->
+ /* MV */
+ Materials.HydrochloricAcid.getFluid(fluidAmount);
+ case 3 ->
+ /* HV */
+ Materials.PhosphoricAcid.getFluid(fluidAmount);
+ case 4 ->
+ /* EV */
+ Materials.HydrofluoricAcid.getFluid(this.getFluidAmount());
+ default -> Materials.PhthalicAcid.getFluid(fluidAmount);
+ };
+ }
+
+ /** @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 Fluid amount needed for Chemical process related to the Tier **/
+ public int getFluidAmount() {
+ return 9 * this.getSimpleTime() / 3;
+ }
+
+ /** @return duration needed for Centrifuge process related to the Tier **/
+ public int getSimpleTime() {
+
+ // 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 (this.getVoltage() / 16) * 15;
+ }
+ }
+ }
+}
diff --git a/src/main/java/gregtech/common/items/ItemDrop.java b/src/main/java/gregtech/common/items/ItemDrop.java
new file mode 100644
index 0000000000..5aab9dff48
--- /dev/null
+++ b/src/main/java/gregtech/common/items/ItemDrop.java
@@ -0,0 +1,241 @@
+package gregtech.common.items;
+
+import static gregtech.api.enums.Mods.ExtraBees;
+import static gregtech.api.enums.Mods.Forestry;
+import static gregtech.api.enums.Mods.GregTech;
+import static gregtech.api.enums.Mods.HardcoreEnderExpansion;
+import static gregtech.api.enums.Mods.MagicBees;
+import static gregtech.api.enums.Mods.NewHorizonsCoreMod;
+import static gregtech.api.recipe.RecipeMaps.fluidExtractionRecipes;
+import static gregtech.api.util.GT_RecipeBuilder.SECONDS;
+import static gregtech.api.util.GT_RecipeBuilder.TICKS;
+
+import java.util.List;
+
+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;
+
+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.enums.TierEU;
+import gregtech.api.util.GT_ModHandler;
+import gregtech.api.util.GT_RecipeBuilder;
+
+public class ItemDrop extends Item {
+
+ @SideOnly(Side.CLIENT)
+ private IIcon secondIcon;
+
+ public ItemDrop() {
+ super();
+ this.setCreativeTab(Tabs.tabApiculture);
+ this.setHasSubtypes(true);
+ this.setUnlocalizedName("gt.drop");
+ GameRegistry.registerItem(this, "gt.drop", GregTech.ID);
+ }
+
+ public ItemStack getStackForType(DropType type) {
+ return new ItemStack(this, 1, type.ordinal());
+ }
+
+ public ItemStack getStackForType(DropType type, int count) {
+ return new ItemStack(this, count, type.ordinal());
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void getSubItems(Item item, CreativeTabs tabs, List<ItemStack> list) {
+ for (DropType type : 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 iconRegister) {
+ this.itemIcon = iconRegister.registerIcon("forestry:honeyDrop.0");
+ this.secondIcon = iconRegister.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(DropType.values().length - 1, stack.getItemDamage()));
+ int colour = DropType.values()[meta].getColours()[0];
+
+ if (pass >= 1) {
+ colour = DropType.values()[meta].getColours()[1];
+ }
+
+ return colour;
+ }
+
+ @Override
+ public String getItemStackDisplayName(ItemStack stack) {
+ return DropType.values()[stack.getItemDamage()].getName();
+ }
+
+ public void initDropsRecipes() {
+ ItemStack tDrop;
+
+ tDrop = getStackForType(DropType.OIL);
+ addProcessLV(
+ tDrop,
+ Materials.OilHeavy.getFluid(100L),
+ GT_ModHandler.getModItem(Forestry.ID, "propolis", 1L, 0),
+ 3000,
+ 8);
+ RecipeManagers.squeezerManager.addRecipe(
+ 40,
+ new ItemStack[] { tDrop },
+ Materials.OilHeavy.getFluid(100L),
+ GT_ModHandler.getModItem(Forestry.ID, "propolis", 1L, 0),
+ 30);
+ tDrop = getStackForType(DropType.COOLANT);
+ addProcessLV(
+ tDrop,
+ new FluidStack(FluidRegistry.getFluid("ic2coolant"), 100),
+ GT_ModHandler.getModItem(MagicBees.ID, "propolis", 1L, 0),
+ 3000,
+ 8);
+ RecipeManagers.squeezerManager.addRecipe(
+ 40,
+ new ItemStack[] { tDrop },
+ new FluidStack(FluidRegistry.getFluid("ic2coolant"), 100),
+ GT_ModHandler.getModItem(MagicBees.ID, "propolis", 1L, 0),
+ 30);
+ tDrop = getStackForType(DropType.HOT_COOLANT);
+ addProcessLV(
+ tDrop,
+ new FluidStack(FluidRegistry.getFluid("ic2hotcoolant"), 100),
+ GT_ModHandler.getModItem(MagicBees.ID, "propolis", 1L, 2),
+ 3000,
+ 8);
+ RecipeManagers.squeezerManager.addRecipe(
+ 40,
+ new ItemStack[] { tDrop },
+ new FluidStack(FluidRegistry.getFluid("ic2hotcoolant"), 100),
+ GT_ModHandler.getModItem(MagicBees.ID, "propolis", 1L, 2),
+ 30);
+ tDrop = getStackForType(DropType.SNOW_QUEEN);
+ addProcessMV(
+ tDrop,
+ Materials.FierySteel.getFluid(200L),
+ GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.SnowQueenBloodDrop", 1L, 0),
+ 1500,
+ 48);
+ tDrop = getStackForType(DropType.LAPIS);
+ addProcessLV(
+ tDrop,
+ new FluidStack(FluidRegistry.getFluid("ic2coolant"), 200),
+ GT_ModHandler.getModItem(MagicBees.ID, "propolis", 1L, 3),
+ 5000,
+ 1200,
+ 2);
+ RecipeManagers.squeezerManager.addRecipe(
+ 400,
+ new ItemStack[] { tDrop },
+ new FluidStack(FluidRegistry.getFluid("ic2coolant"), 100),
+ GT_ModHandler.getModItem(MagicBees.ID, "propolis", 1L, 3),
+ 30);
+ tDrop = getStackForType(DropType.HYDRA);
+ addProcessMV(
+ tDrop,
+ Materials.FierySteel.getFluid(50L),
+ GT_ModHandler.getModItem(MagicBees.ID, "propolis", 1L, 2),
+ 3000,
+ 8);
+ tDrop = getStackForType(DropType.OXYGEN);
+ addProcessLV(
+ tDrop,
+ new FluidStack(FluidRegistry.getFluid("liquidoxygen"), 100),
+ GT_ModHandler.getModItem(ExtraBees.ID, "propolis", 1L, 2),
+ 250,
+ 1200,
+ 8);
+ RecipeManagers.squeezerManager.addRecipe(
+ 400,
+ new ItemStack[] { tDrop },
+ new FluidStack(FluidRegistry.getFluid("ic2coolant"), 100),
+ GT_ModHandler.getModItem(ExtraBees.ID, "propolis", 1L, 2),
+ 30);
+ tDrop = getStackForType(DropType.ENDERGOO);
+ if (HardcoreEnderExpansion.isModLoaded())
+ 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.stdBuilder()
+ .itemInputs(tDrop)
+ .itemOutputs(aOutput2)
+ .outputChances(aChance)
+ .fluidOutputs(aOutput)
+ .duration(1 * SECONDS + 12 * TICKS)
+ .eut(aEUt)
+ .addTo(fluidExtractionRecipes);
+ }
+
+ public void addProcessLV(ItemStack tDrop, FluidStack aOutput, ItemStack aOutput2, int aChance, int aDuration,
+ int aEUt) {
+ GT_Values.RA.stdBuilder()
+ .itemInputs(tDrop)
+ .itemOutputs(aOutput2)
+ .outputChances(aChance)
+ .fluidOutputs(aOutput)
+ .duration(aDuration)
+ .eut(aEUt)
+ .addTo(fluidExtractionRecipes);
+ }
+
+ public void addProcessMV(ItemStack tDrop, FluidStack aOutput, ItemStack aOutput2, int aChance, int aEUt) {
+ GT_Values.RA.stdBuilder()
+ .itemInputs(tDrop)
+ .itemOutputs(aOutput2)
+ .outputChances(aChance)
+ .fluidOutputs(aOutput)
+ .duration(6 * SECONDS + 8 * TICKS)
+ .eut(aEUt)
+ .addTo(fluidExtractionRecipes);
+ }
+
+ public void addProcessHV(ItemStack tDrop, FluidStack aOutput, ItemStack aOutput2, int aChance) {
+ GT_RecipeBuilder recipeBuilder = GT_Values.RA.stdBuilder();
+ recipeBuilder.itemInputs(tDrop);
+ if (aOutput2 != GT_Values.NI) {
+ recipeBuilder.itemOutputs(aOutput2)
+ .outputChances(aChance);
+ }
+ recipeBuilder.fluidOutputs(aOutput)
+ .duration(24 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(fluidExtractionRecipes);
+ }
+}
diff --git a/src/main/java/gregtech/common/items/ItemPollen.java b/src/main/java/gregtech/common/items/ItemPollen.java
new file mode 100644
index 0000000000..70e2d64514
--- /dev/null
+++ b/src/main/java/gregtech/common/items/ItemPollen.java
@@ -0,0 +1,89 @@
+package gregtech.common.items;
+
+import static gregtech.api.enums.Mods.GregTech;
+
+import java.util.List;
+
+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 cpw.mods.fml.common.registry.GameRegistry;
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import forestry.api.core.Tabs;
+
+public class ItemPollen extends Item {
+
+ @SideOnly(Side.CLIENT)
+ private IIcon secondIcon;
+
+ public ItemPollen() {
+ super();
+ this.setCreativeTab(Tabs.tabApiculture);
+ this.setHasSubtypes(true);
+ this.setUnlocalizedName("gt.pollen");
+ GameRegistry.registerItem(this, "gt.pollen", GregTech.ID);
+ }
+
+ public ItemStack getStackForType(PollenType type) {
+ return new ItemStack(this, 1, type.ordinal());
+ }
+
+ public ItemStack getStackForType(PollenType type, int count) {
+ return new ItemStack(this, count, type.ordinal());
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void getSubItems(Item item, CreativeTabs tabs, List<ItemStack> list) {
+ for (PollenType type : 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 iconRegister) {
+ this.itemIcon = iconRegister.registerIcon("forestry:pollen.0");
+ this.secondIcon = iconRegister.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(PollenType.values().length - 1, stack.getItemDamage()));
+ int colour = PollenType.values()[meta].getColours()[0];
+
+ if (pass >= 1) {
+ colour = PollenType.values()[meta].getColours()[1];
+ }
+
+ return colour;
+ }
+
+ @Override
+ public String getItemStackDisplayName(ItemStack stack) {
+ return PollenType.values()[stack.getItemDamage()].getName();
+ }
+}
diff --git a/src/main/java/gregtech/common/items/ItemPropolis.java b/src/main/java/gregtech/common/items/ItemPropolis.java
new file mode 100644
index 0000000000..1c0d727bda
--- /dev/null
+++ b/src/main/java/gregtech/common/items/ItemPropolis.java
@@ -0,0 +1,141 @@
+package gregtech.common.items;
+
+import static gregtech.api.enums.Mods.GregTech;
+import static gregtech.api.enums.Mods.HardcoreEnderExpansion;
+import static gregtech.api.enums.Mods.NewHorizonsCoreMod;
+import static gregtech.api.recipe.RecipeMaps.fluidExtractionRecipes;
+import static gregtech.api.util.GT_RecipeBuilder.SECONDS;
+import static gregtech.api.util.GT_RecipeBuilder.TICKS;
+
+import java.util.List;
+
+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 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.GT_Values;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.OrePrefixes;
+import gregtech.api.enums.TierEU;
+import gregtech.api.util.GT_ModHandler;
+import gregtech.api.util.GT_OreDictUnificator;
+
+public class ItemPropolis extends Item {
+
+ @SideOnly(Side.CLIENT)
+ private IIcon secondIcon;
+
+ public ItemPropolis() {
+ super();
+ this.setCreativeTab(Tabs.tabApiculture);
+ this.setHasSubtypes(true);
+ this.setUnlocalizedName("gt.propolis");
+ GameRegistry.registerItem(this, "gt.propolis", GregTech.ID);
+ }
+
+ public ItemStack getStackForType(PropolisType type) {
+ return new ItemStack(this, 1, type.ordinal());
+ }
+
+ public ItemStack getStackForType(PropolisType type, int count) {
+ return new ItemStack(this, count, type.ordinal());
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void getSubItems(Item item, CreativeTabs tabs, List<ItemStack> list) {
+ for (PropolisType type : PropolisType.values()) {
+ if (type.showInList) {
+ list.add(this.getStackForType(type));
+ }
+ }
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void registerIcons(IIconRegister iconRegister) {
+ this.itemIcon = iconRegister.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(PropolisType.values().length - 1, stack.getItemDamage()));
+ return PropolisType.values()[meta].getColours();
+ }
+
+ @Override
+ public String getItemStackDisplayName(ItemStack stack) {
+ return PropolisType.values()[stack.getItemDamage()].getName();
+ }
+
+ public void initPropolisRecipes() {
+ ItemStack tPropolis;
+
+ tPropolis = getStackForType(PropolisType.End);
+ addProcessHV(tPropolis, GT_ModHandler.getModItem(HardcoreEnderExpansion.ID, "end_powder", 1, 0));
+ tPropolis = getStackForType(PropolisType.Stardust);
+ addProcessHV(tPropolis, GT_ModHandler.getModItem(HardcoreEnderExpansion.ID, "stardust", 1, 0));
+ tPropolis = getStackForType(PropolisType.Ectoplasma);
+ addProcessEV(tPropolis, GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.EctoplasmaChip", 1, 0));
+ tPropolis = getStackForType(PropolisType.Arcaneshard);
+ addProcessEV(tPropolis, GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.ArcaneShardChip", 1, 0));
+ tPropolis = getStackForType(PropolisType.Dragonessence);
+ addProcessIV(tPropolis, GT_ModHandler.getModItem(HardcoreEnderExpansion.ID, "essence", 16, 0));
+ tPropolis = getStackForType(PropolisType.Enderman);
+ addProcessIV(tPropolis, GT_ModHandler.getModItem(HardcoreEnderExpansion.ID, "enderman_head", 1, 0));
+ tPropolis = getStackForType(PropolisType.Silverfish);
+ addProcessEV(tPropolis, GT_ModHandler.getModItem(HardcoreEnderExpansion.ID, "silverfish_blood", 1, 0));
+ tPropolis = getStackForType(PropolisType.Endium);
+ addProcessHV(tPropolis, GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.HeeEndium, 1));
+ tPropolis = getStackForType(PropolisType.Fireessence);
+ addProcessIV(tPropolis, GT_ModHandler.getModItem(HardcoreEnderExpansion.ID, "essence", 16, 1));
+
+ // addRecipe(tDrop, aOutput, aOutput2, aChance, aDuration, aEUt);
+ }
+
+ public void addProcessHV(ItemStack tPropolis, ItemStack aOutput2) {
+ GT_Values.RA.stdBuilder()
+ .itemInputs(tPropolis)
+ .itemOutputs(aOutput2)
+ .outputChances(5000)
+ .fluidOutputs(FluidRegistry.getFluidStack("endergoo", 100))
+ .duration(2 * SECONDS + 10 * TICKS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(fluidExtractionRecipes);
+ }
+
+ public void addProcessEV(ItemStack tPropolis, ItemStack aOutput2) {
+ GT_Values.RA.stdBuilder()
+ .itemInputs(tPropolis)
+ .itemOutputs(aOutput2)
+ .outputChances(2500)
+ .fluidOutputs(FluidRegistry.getFluidStack("endergoo", 200))
+ .duration(5 * SECONDS)
+ .eut(TierEU.RECIPE_EV)
+ .addTo(fluidExtractionRecipes);
+ }
+
+ public void addProcessIV(ItemStack tPropolis, ItemStack aOutput2) {
+ GT_Values.RA.stdBuilder()
+ .itemInputs(tPropolis)
+ .itemOutputs(aOutput2)
+ .outputChances(1500)
+ .fluidOutputs(FluidRegistry.getFluidStack("endergoo", 300))
+ .duration(7 * SECONDS + 10 * TICKS)
+ .eut(TierEU.RECIPE_IV)
+ .addTo(fluidExtractionRecipes);
+ }
+}
diff --git a/src/main/java/gregtech/common/items/PollenType.java b/src/main/java/gregtech/common/items/PollenType.java
new file mode 100644
index 0000000000..3cd9484b69
--- /dev/null
+++ b/src/main/java/gregtech/common/items/PollenType.java
@@ -0,0 +1,35 @@
+package gregtech.common.items;
+
+import gregtech.api.enums.Materials;
+import gregtech.api.util.GT_LanguageManager;
+
+public enum PollenType {
+
+ MATRIX("matrix", true);
+
+ private static final int[][] colours = new int[][] { { 0x19191B, 0x303032 }, };
+ public boolean showInList;
+ public Materials material;
+ public int chance;
+ private final String name;
+
+ 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/gregtech/common/items/PropolisType.java b/src/main/java/gregtech/common/items/PropolisType.java
new file mode 100644
index 0000000000..e6f08b0cfa
--- /dev/null
+++ b/src/main/java/gregtech/common/items/PropolisType.java
@@ -0,0 +1,46 @@
+package gregtech.common.items;
+
+import gregtech.api.enums.Materials;
+import gregtech.api.util.GT_LanguageManager;
+
+public enum 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 final int[] colours = new int[] { 0xCC00FA, 0xDCB0E5, 0x9010AD, 0xFFFF00, 0x911ECE, 0x161616,
+ 0xEE053D, 0xa0ffff, 0xD41238 };
+
+ public boolean showInList;
+ public Materials material;
+ public int chance;
+ private final String name;
+
+ 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/gregtech/common/items/behaviors/Behaviour_Cover_Tool.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_Cover_Tool.java
new file mode 100644
index 0000000000..4241e07e4b
--- /dev/null
+++ b/src/main/java/gregtech/common/items/behaviors/Behaviour_Cover_Tool.java
@@ -0,0 +1,193 @@
+package gregtech.common.items.behaviors;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.entity.player.EntityPlayerMP;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTBase;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.util.EnumChatFormatting;
+import net.minecraft.world.World;
+import net.minecraftforge.common.util.ForgeDirection;
+
+import gregtech.api.GregTech_API;
+import gregtech.api.enums.SoundResource;
+import gregtech.api.interfaces.IItemBehaviour;
+import gregtech.api.interfaces.tileentity.ICoverable;
+import gregtech.api.items.GT_MetaBase_Item;
+import gregtech.api.util.GT_CoverBehaviorBase;
+import gregtech.api.util.GT_LanguageManager;
+import gregtech.api.util.GT_Utility;
+import gregtech.api.util.ISerializableObject;
+
+public class Behaviour_Cover_Tool extends Behaviour_None {
+
+ public static final IItemBehaviour<GT_MetaBase_Item> INSTANCE = new Behaviour_Cover_Tool();
+ private final String mTooltip = GT_LanguageManager
+ .addStringLocalization("gt.behaviour.cover_copy_paste", "Can copy/paste cover data.");
+
+ private ISerializableObject mStoredData = GregTech_API.sNoBehavior.createDataObject();
+ private int mCoverType;
+ private int mTickRateAddition = 0;
+
+ @Override
+ public boolean onItemUseFirst(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX,
+ int aY, int aZ, ForgeDirection side, float hitX, float hitY, float hitZ) {
+ if (aWorld.isRemote) {
+ return false;
+ }
+ final NBTTagCompound tNBT = aStack.getTagCompound();
+ final TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ);
+ final boolean isCopyMode = aPlayer.isSneaking();
+ initDataFromNBT(tNBT);
+ if (((aPlayer instanceof EntityPlayerMP)) && (aItem.canUse(aStack, 100.0D))) {
+ if (isCopyMode) {
+ ArrayList<String> tList = new ArrayList<>();
+ doCopy(tTileEntity, aWorld, aX, aY, aZ, side, hitX, hitY, hitZ, tList);
+ aItem.discharge(aStack, 100.0D, Integer.MAX_VALUE, true, false, false);
+ writeListToNBT(tList, tNBT, aPlayer);
+ saveDataToNBT(tNBT);
+ } else {
+ doPaste(tTileEntity, side, hitX, hitY, hitZ, aPlayer);
+ aItem.discharge(aStack, 25.0D, Integer.MAX_VALUE, true, false, false);
+ }
+ }
+ GT_Utility.doSoundAtClient(SoundResource.IC2_TOOLS_OD_SCANNER, 1, 1.0F, aX, aY, aZ);
+ return aPlayer instanceof EntityPlayerMP;
+ }
+
+ private void initDataFromNBT(NBTTagCompound aNBT) {
+ if (aNBT != null) {
+ mCoverType = aNBT.getInteger("mCoverType");
+ GT_CoverBehaviorBase<?> tBehavior = GregTech_API.getCoverBehaviorNew(mCoverType);
+ NBTBase tData = aNBT.getTag("mCoverData");
+ if (tData != null) mStoredData = tBehavior.createDataObject(tData);
+ else mStoredData = GregTech_API.sNoBehavior.createDataObject();
+ mTickRateAddition = aNBT.hasKey("mTickRateAddition") ? aNBT.getInteger("mTickRateAddition") : 0;
+ }
+ }
+
+ private void saveDataToNBT(NBTTagCompound aNBT) {
+ aNBT.setInteger("mCoverType", mCoverType);
+ if (mStoredData == null) mStoredData = GregTech_API.sNoBehavior.createDataObject();
+ aNBT.setTag("mCoverData", mStoredData.saveDataToNBT());
+ aNBT.setInteger("mTickRateAddition", mTickRateAddition);
+ }
+
+ @SuppressWarnings("rawtypes")
+ private void writeListToNBT(List aList, NBTTagCompound aNBT, EntityPlayer aPlayer) {
+ if (aList != null && aNBT != null) {
+ int tSize = aList.size();
+ aNBT.setInteger("dataLinesCount", tSize);
+ for (int i = 0; i < tSize; i++) {
+ aNBT.setString("dataLines" + i, (String) aList.get(i));
+ GT_Utility.sendChatToPlayer(aPlayer, (String) aList.get(i));
+ }
+ }
+ }
+
+ @SuppressWarnings({ "unchecked", "rawtypes" })
+ private void doCopy(TileEntity aTileEntity, World aWorld, int aX, int aY, int aZ, ForgeDirection side, float hitX,
+ float hitY, float hitZ, List aList) {
+ aList.add(
+ "----- X: " + EnumChatFormatting.AQUA
+ + GT_Utility.formatNumbers(aX)
+ + EnumChatFormatting.RESET
+ + " Y: "
+ + EnumChatFormatting.AQUA
+ + GT_Utility.formatNumbers(aY)
+ + EnumChatFormatting.RESET
+ + " Z: "
+ + EnumChatFormatting.AQUA
+ + GT_Utility.formatNumbers(aZ)
+ + EnumChatFormatting.RESET
+ + " D: "
+ + EnumChatFormatting.AQUA
+ + aWorld.provider.dimensionId
+ + EnumChatFormatting.RESET
+ + " -----");
+ if (aTileEntity instanceof ICoverable tCoverable) {
+ final ForgeDirection tSide = tCoverable.getCoverItemAtSide(side) != null ? side
+ : tCoverable.getCoverItemAtSide(GT_Utility.determineWrenchingSide(side, hitX, hitY, hitZ)) != null
+ ? GT_Utility.determineWrenchingSide(side, hitX, hitY, hitZ)
+ : ForgeDirection.UNKNOWN;
+ if (tSide != ForgeDirection.UNKNOWN) {
+ if (tCoverable.getCoverBehaviorAtSideNew(tSide)
+ .allowsCopyPasteTool()) {
+ mStoredData = tCoverable.getComplexCoverDataAtSide(tSide);
+ mCoverType = tCoverable.getCoverIDAtSide(tSide);
+ mTickRateAddition = tCoverable.getCoverInfoAtSide(tSide)
+ .getTickRateAddition();
+
+ aList.add("Block Side: " + EnumChatFormatting.AQUA + tSide.name() + EnumChatFormatting.RESET);
+ aList.add(
+ "Cover Type: " + EnumChatFormatting.GREEN
+ + tCoverable.getCoverItemAtSide(tSide)
+ .getDisplayName()
+ + EnumChatFormatting.RESET);
+ } else {
+ mStoredData = GregTech_API.sNoBehavior.createDataObject();
+ mCoverType = 0;
+ mTickRateAddition = 0;
+ aList.add("Copy unavailable for this cover type");
+ }
+ } else {
+ mStoredData = GregTech_API.sNoBehavior.createDataObject();
+ mCoverType = 0;
+ mTickRateAddition = 0;
+ aList.add("No Cover Found");
+ }
+ } else {
+ mStoredData = GregTech_API.sNoBehavior.createDataObject();
+ mCoverType = 0;
+ mTickRateAddition = 0;
+ aList.add("No Cover Found");
+ }
+ }
+
+ private void doPaste(TileEntity aTileEntity, ForgeDirection side, float hitX, float hitY, float hitZ,
+ EntityPlayer aPlayer) {
+ if (aTileEntity instanceof ICoverable tCoverable) {
+ if (mCoverType == 0 || mStoredData == null) {
+ GT_Utility.sendChatToPlayer(aPlayer, "Please Copy a Valid Cover First.");
+ return;
+ }
+ final ForgeDirection tSide = tCoverable.getCoverItemAtSide(side) != null ? side
+ : tCoverable.getCoverItemAtSide(GT_Utility.determineWrenchingSide(side, hitX, hitY, hitZ)) != null
+ ? GT_Utility.determineWrenchingSide(side, hitX, hitY, hitZ)
+ : ForgeDirection.UNKNOWN;
+ if (tSide != ForgeDirection.UNKNOWN) {
+ int tCoverID = tCoverable.getCoverIDAtSide(tSide);
+ if (tCoverID == mCoverType) {
+ tCoverable.setCoverDataAtSide(tSide, mStoredData);
+ tCoverable.getCoverInfoAtSide(tSide)
+ .setTickRateAddition(mTickRateAddition);
+ GT_Utility.sendChatToPlayer(aPlayer, "Cover Data Pasted.");
+ } else {
+ GT_Utility.sendChatToPlayer(aPlayer, "Not Matched Cover.");
+ }
+ } else {
+ GT_Utility.sendChatToPlayer(aPlayer, "No Cover Found.");
+ }
+ }
+ }
+
+ @Override
+ public List<String> getAdditionalToolTips(GT_MetaBase_Item aItem, List<String> aList, ItemStack aStack) {
+ try {
+ final NBTTagCompound tNBT = aStack.getTagCompound();
+ final int tSize = tNBT.getInteger("dataLinesCount");
+ if (tSize < 1) throw new Exception();
+ aList.add(EnumChatFormatting.BLUE + "Stored Cover Data:");
+ for (int i = 0; i < tSize; i++) {
+ aList.add(EnumChatFormatting.RESET + tNBT.getString("dataLines" + i));
+ }
+ } catch (Exception e) {
+ aList.add(this.mTooltip);
+ }
+ return aList;
+ }
+}
diff --git a/src/main/java/gregtech/common/items/behaviors/Behaviour_Crowbar.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_Crowbar.java
new file mode 100644
index 0000000000..97d3da4ca3
--- /dev/null
+++ b/src/main/java/gregtech/common/items/behaviors/Behaviour_Crowbar.java
@@ -0,0 +1,61 @@
+package gregtech.common.items.behaviors;
+
+import static gregtech.api.enums.Mods.Railcraft;
+
+import net.minecraft.block.Block;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.init.Blocks;
+import net.minecraft.item.ItemStack;
+import net.minecraft.world.World;
+import net.minecraftforge.common.util.ForgeDirection;
+
+import gregtech.api.enums.SoundResource;
+import gregtech.api.items.GT_MetaBase_Item;
+import gregtech.api.util.GT_ModHandler;
+import gregtech.api.util.GT_Utility;
+
+public class Behaviour_Crowbar extends Behaviour_None {
+
+ private final int mVanillaCosts;
+ private final int mEUCosts;
+
+ public Behaviour_Crowbar(int aVanillaCosts, int aEUCosts) {
+ this.mVanillaCosts = aVanillaCosts;
+ this.mEUCosts = aEUCosts;
+ }
+
+ @Override
+ public boolean onItemUseFirst(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX,
+ int aY, int aZ, ForgeDirection side, float hitX, float hitY, float hitZ) {
+ if (aWorld.isRemote) {
+ return false;
+ }
+ if (GT_ModHandler.getModItem(Railcraft.ID, "fluid.creosote.bucket", 1L) != null) {
+ return false;
+ }
+ Block aBlock = aWorld.getBlock(aX, aY, aZ);
+ if (aBlock == null) {
+ return false;
+ }
+ byte aMeta = (byte) aWorld.getBlockMetadata(aX, aY, aZ);
+ if (aBlock == Blocks.rail) {
+ if (GT_ModHandler.damageOrDechargeItem(aStack, this.mVanillaCosts, this.mEUCosts, aPlayer)) {
+ aWorld.isRemote = true;
+ aWorld.setBlock(aX, aY, aZ, aBlock, (aMeta + 1) % 10, 0);
+ aWorld.isRemote = false;
+ GT_Utility.sendSoundToPlayers(aWorld, SoundResource.RANDOM_BREAK, 1.0F, -1.0F, aX, aY, aZ);
+ }
+ return true;
+ }
+ if ((aBlock == Blocks.detector_rail) || (aBlock == Blocks.activator_rail) || (aBlock == Blocks.golden_rail)) {
+ if (GT_ModHandler.damageOrDechargeItem(aStack, this.mVanillaCosts, this.mEUCosts, aPlayer)) {
+ aWorld.isRemote = true;
+ aWorld.setBlock(aX, aY, aZ, aBlock, aMeta / 8 * 8 + (aMeta % 8 + 1) % 6, 0);
+ aWorld.isRemote = false;
+ GT_Utility.sendSoundToPlayers(aWorld, SoundResource.RANDOM_BREAK, 1.0F, -1.0F, aX, aY, aZ);
+ }
+ return true;
+ }
+ return false;
+ }
+}
diff --git a/src/main/java/gregtech/common/items/behaviors/Behaviour_DataOrb.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_DataOrb.java
new file mode 100644
index 0000000000..ae0627446c
--- /dev/null
+++ b/src/main/java/gregtech/common/items/behaviors/Behaviour_DataOrb.java
@@ -0,0 +1,105 @@
+package gregtech.common.items.behaviors;
+
+import java.util.List;
+
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.nbt.NBTTagList;
+
+import gregtech.api.items.GT_MetaBase_Item;
+import gregtech.api.util.GT_Utility;
+
+public class Behaviour_DataOrb extends Behaviour_None {
+
+ public static void copyInventory(ItemStack[] aInventory, ItemStack[] aNewContent, int aIndexlength) {
+ for (int i = 0; i < aIndexlength; i++) {
+ if (aNewContent[i] == null) {
+ aInventory[i] = null;
+ } else {
+ aInventory[i] = GT_Utility.copyOrNull(aNewContent[i]);
+ }
+ }
+ }
+
+ public static String getDataName(ItemStack aStack) {
+ NBTTagCompound tNBT = aStack.getTagCompound();
+ if (tNBT == null) {
+ return "";
+ }
+ return tNBT.getString("mDataName");
+ }
+
+ public static String getDataTitle(ItemStack aStack) {
+ NBTTagCompound tNBT = aStack.getTagCompound();
+ if (tNBT == null) {
+ return "";
+ }
+ return tNBT.getString("mDataTitle");
+ }
+
+ public static NBTTagCompound setDataName(ItemStack aStack, String aDataName) {
+ NBTTagCompound tNBT = aStack.getTagCompound();
+ if (tNBT == null) {
+ tNBT = new NBTTagCompound();
+ }
+ tNBT.setString("mDataName", aDataName);
+ aStack.setTagCompound(tNBT);
+ return tNBT;
+ }
+
+ public static NBTTagCompound setDataTitle(ItemStack aStack, String aDataTitle) {
+ NBTTagCompound tNBT = aStack.getTagCompound();
+ if (tNBT == null) {
+ tNBT = new NBTTagCompound();
+ }
+ tNBT.setString("mDataTitle", aDataTitle);
+ aStack.setTagCompound(tNBT);
+ return tNBT;
+ }
+
+ public static ItemStack[] getNBTInventory(ItemStack aStack) {
+ ItemStack[] tInventory = new ItemStack[256];
+ NBTTagCompound tNBT = aStack.getTagCompound();
+ if (tNBT == null) {
+ return tInventory;
+ }
+ NBTTagList tNBT_ItemList = tNBT.getTagList("Inventory", 10);
+ for (int i = 0; i < tNBT_ItemList.tagCount(); i++) {
+ NBTTagCompound tag = tNBT_ItemList.getCompoundTagAt(i);
+ byte slot = tag.getByte("Slot");
+ if (slot >= 0) {
+ tInventory[slot] = GT_Utility.loadItem(tag);
+ }
+ }
+ return tInventory;
+ }
+
+ public static NBTTagCompound setNBTInventory(ItemStack aStack, ItemStack[] aInventory) {
+ NBTTagCompound tNBT = aStack.getTagCompound();
+ if (tNBT == null) {
+ tNBT = new NBTTagCompound();
+ }
+ NBTTagList tNBT_ItemList = new NBTTagList();
+ for (int i = 0; i < aInventory.length; i++) {
+ ItemStack stack = aInventory[i];
+ if (stack != null) {
+ NBTTagCompound tag = new NBTTagCompound();
+ tag.setByte("Slot", (byte) i);
+ stack.writeToNBT(tag);
+ tNBT_ItemList.appendTag(tag);
+ }
+ }
+ tNBT.setTag("Inventory", tNBT_ItemList);
+ aStack.setTagCompound(tNBT);
+ return tNBT;
+ }
+
+ @Override
+ public List<String> getAdditionalToolTips(GT_MetaBase_Item aItem, List<String> aList, ItemStack aStack) {
+ if (!(getDataTitle(aStack).length() == 0)) {
+ aList.add(getDataTitle(aStack));
+ aList.add(getDataName(aStack));
+ }
+ return aList;
+ }
+}
diff --git a/src/main/java/gregtech/common/items/behaviors/Behaviour_DataStick.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_DataStick.java
new file mode 100644
index 0000000000..e9db3195c2
--- /dev/null
+++ b/src/main/java/gregtech/common/items/behaviors/Behaviour_DataStick.java
@@ -0,0 +1,52 @@
+package gregtech.common.items.behaviors;
+
+import java.util.List;
+
+import net.minecraft.item.ItemStack;
+
+import gregtech.api.items.GT_MetaBase_Item;
+import gregtech.api.util.GT_Utility;
+
+public class Behaviour_DataStick extends Behaviour_None {
+
+ @Override
+ public List<String> getAdditionalToolTips(GT_MetaBase_Item aItem, List<String> aList, ItemStack aStack) {
+ String tString = GT_Utility.ItemNBT.getBookTitle(aStack);
+ if (GT_Utility.isStringValid(tString)) {
+ aList.add(tString);
+ }
+ tString = GT_Utility.ItemNBT.getBookAuthor(aStack);
+ if (GT_Utility.isStringValid(tString)) {
+ aList.add("by " + tString);
+ }
+ short tMapID = GT_Utility.ItemNBT.getMapID(aStack);
+ if (tMapID >= 0) {
+ aList.add("Map ID: " + tMapID);
+ }
+ tString = GT_Utility.ItemNBT.getPunchCardData(aStack);
+ if (GT_Utility.isStringValid(tString)) {
+ aList.add("Punch Card Data");
+ int i = 0;
+ int j = tString.length();
+ for (; i < j; i += 64) {
+ aList.add(tString.substring(i, Math.min(i + 64, j)));
+ }
+ }
+ short sTier = GT_Utility.ItemNBT.getNBT(aStack)
+ .getShort("rocket_tier");
+ if (sTier > 0 && sTier < 100) {
+ aList.add("Rocket Schematic Tier: " + sTier);
+ } else if (sTier >= 100) {
+ switch (sTier) {
+ case 100 -> aList.add("Moonbuggy Schematic");
+ case 101 -> aList.add("Cargo-Rocket Schematic");
+ case 102 -> aList.add("Astro-Miner Schematic");
+ }
+ }
+ long lastUpdate = GT_Utility.ItemNBT.getNBT(aStack)
+ .getLong("lastUpdate");
+ if (lastUpdate != 0) aList.add(String.format("Last update at: %tc", lastUpdate));
+
+ return aList;
+ }
+}
diff --git a/src/main/java/gregtech/common/items/behaviors/Behaviour_Hoe.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_Hoe.java
new file mode 100644
index 0000000000..167eccdf49
--- /dev/null
+++ b/src/main/java/gregtech/common/items/behaviors/Behaviour_Hoe.java
@@ -0,0 +1,72 @@
+package gregtech.common.items.behaviors;
+
+import java.util.List;
+
+import net.minecraft.block.Block;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.init.Blocks;
+import net.minecraft.item.ItemStack;
+import net.minecraft.world.World;
+import net.minecraftforge.common.MinecraftForge;
+import net.minecraftforge.event.entity.player.UseHoeEvent;
+
+import cpw.mods.fml.common.eventhandler.Event;
+import gregtech.api.items.GT_MetaBase_Item;
+import gregtech.api.items.GT_MetaGenerated_Tool;
+import gregtech.api.util.GT_LanguageManager;
+import gregtech.api.util.GT_Utility;
+import gregtech.api.util.WorldSpawnedEventBuilder;
+
+public class Behaviour_Hoe extends Behaviour_None {
+
+ private final int mCosts;
+ private final String mTooltip = GT_LanguageManager.addStringLocalization("gt.behaviour.hoe", "Can till Dirt");
+
+ public Behaviour_Hoe(int aCosts) {
+ this.mCosts = aCosts;
+ }
+
+ @Override
+ public boolean onItemUse(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX,
+ int aY, int aZ, int ordinalSide, float hitX, float hitY, float hitZ) {
+ if (!aPlayer.canPlayerEdit(aX, aY, aZ, ordinalSide, aStack)) {
+ return false;
+ }
+ UseHoeEvent event = new UseHoeEvent(aPlayer, aStack, aWorld, aX, aY, aZ);
+ if (MinecraftForge.EVENT_BUS.post(event)) {
+ return false;
+ }
+ if (event.getResult() == Event.Result.ALLOW) {
+ if (!aPlayer.capabilities.isCreativeMode) {
+ ((GT_MetaGenerated_Tool) aItem).doDamage(aStack, this.mCosts);
+ }
+ return true;
+ }
+ Block aBlock = aWorld.getBlock(aX, aY, aZ);
+ if ((ordinalSide != 0) && (GT_Utility.isBlockAir(aWorld, aX, aY + 1, aZ))
+ && ((aBlock == Blocks.grass) || (aBlock == Blocks.dirt))) {
+ new WorldSpawnedEventBuilder.SoundEventBuilder()
+ .setVolume((Blocks.farmland.stepSound.getVolume() + 1.0F) / 2.0F)
+ .setPitch(Blocks.farmland.stepSound.getPitch() * 0.8F)
+ .setIdentifier(Blocks.farmland.stepSound.getStepResourcePath())
+ .setPosition(aX + 0.5F, aY + 0.5F, aZ + 0.5F)
+ .setWorld(aWorld)
+ .run();
+ if (aWorld.isRemote) {
+ return true;
+ }
+ aWorld.setBlock(aX, aY, aZ, Blocks.farmland);
+ if (!aPlayer.capabilities.isCreativeMode) {
+ ((GT_MetaGenerated_Tool) aItem).doDamage(aStack, this.mCosts);
+ }
+ return true;
+ }
+ return false;
+ }
+
+ @Override
+ public List<String> getAdditionalToolTips(GT_MetaBase_Item aItem, List<String> aList, ItemStack aStack) {
+ aList.add(this.mTooltip);
+ return aList;
+ }
+}
diff --git a/src/main/java/gregtech/common/items/behaviors/Behaviour_Lighter.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_Lighter.java
new file mode 100644
index 0000000000..a4c26e2254
--- /dev/null
+++ b/src/main/java/gregtech/common/items/behaviors/Behaviour_Lighter.java
@@ -0,0 +1,140 @@
+package gregtech.common.items.behaviors;
+
+import java.util.List;
+
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.monster.EntityCreeper;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.init.Blocks;
+import net.minecraft.init.Items;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.world.World;
+import net.minecraftforge.common.util.ForgeDirection;
+
+import codechicken.lib.math.MathHelper;
+import gregtech.api.enums.SoundResource;
+import gregtech.api.items.GT_MetaBase_Item;
+import gregtech.api.util.GT_LanguageManager;
+import gregtech.api.util.GT_Utility;
+
+public class Behaviour_Lighter extends Behaviour_None {
+
+ private final ItemStack mEmptyLighter;
+ private final ItemStack mUsedLighter;
+ private final ItemStack mFullLighter;
+ private final long mFuelAmount;
+ private final String mTooltip = GT_LanguageManager
+ .addStringLocalization("gt.behaviour.lighter.tooltip", "Can light things on Fire");
+ private final String mTooltipUses = GT_LanguageManager
+ .addStringLocalization("gt.behaviour.lighter.uses", "Remaining Uses:");
+ private final String mTooltipUnstackable = GT_LanguageManager
+ .addStringLocalization("gt.behaviour.unstackable", "Not usable when stacked!");
+
+ public Behaviour_Lighter(ItemStack aEmptyLighter, ItemStack aUsedLighter, ItemStack aFullLighter,
+ long aFuelAmount) {
+ this.mFullLighter = aFullLighter;
+ this.mUsedLighter = aUsedLighter;
+ this.mEmptyLighter = aEmptyLighter;
+ this.mFuelAmount = aFuelAmount;
+ }
+
+ @Override
+ public boolean onLeftClickEntity(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, Entity aEntity) {
+ if ((aPlayer.worldObj.isRemote) || (aStack.stackSize != 1)) {
+ return false;
+ }
+ boolean rOutput = false;
+ if ((aEntity instanceof EntityCreeper)) {
+ prepare(aStack);
+ long tFuelAmount = GT_Utility.ItemNBT.getLighterFuel(aStack);
+ if (GT_Utility.areStacksEqual(aStack, this.mUsedLighter, true)) {
+ GT_Utility.sendSoundToPlayers(
+ aPlayer.worldObj,
+ SoundResource.FIRE_IGNITE,
+ 1.0F,
+ 1.0F,
+ MathHelper.floor_double(aEntity.posX),
+ MathHelper.floor_double(aEntity.posY),
+ MathHelper.floor_double(aEntity.posZ));
+ ((EntityCreeper) aEntity).func_146079_cb();
+ if (!aPlayer.capabilities.isCreativeMode) {
+ tFuelAmount -= 1L;
+ }
+ rOutput = true;
+ }
+ GT_Utility.ItemNBT.setLighterFuel(aStack, tFuelAmount);
+ if (tFuelAmount <= 0L) {
+ useUp(aStack);
+ }
+ }
+ return rOutput;
+ }
+
+ @Override
+ public boolean onItemUse(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX,
+ int aY, int aZ, int ordinalSide, float hitX, float hitY, float hitZ) {
+ return false;
+ }
+
+ @Override
+ public boolean onItemUseFirst(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX,
+ int aY, int aZ, ForgeDirection side, float hitX, float hitY, float hitZ) {
+ if ((aWorld.isRemote) || (aStack.stackSize != 1)) {
+ return false;
+ }
+ boolean rOutput = false;
+
+ aX += side.offsetX;
+ aY += side.offsetY;
+ aZ += side.offsetZ;
+ if ((!GT_Utility.isBlockAir(aWorld, aX, aY, aZ))
+ || (!aPlayer.canPlayerEdit(aX, aY, aZ, side.ordinal(), aStack))) {
+ return false;
+ }
+ prepare(aStack);
+ long tFuelAmount = GT_Utility.ItemNBT.getLighterFuel(aStack);
+ if (GT_Utility.areStacksEqual(aStack, this.mUsedLighter, true)) {
+ GT_Utility.sendSoundToPlayers(aWorld, SoundResource.FIRE_IGNITE, 1.0F, 1.0F, aX, aY, aZ);
+ aWorld.setBlock(aX, aY, aZ, Blocks.fire);
+ if (!aPlayer.capabilities.isCreativeMode) {
+ tFuelAmount -= 1L;
+ }
+ rOutput = true;
+ }
+ GT_Utility.ItemNBT.setLighterFuel(aStack, tFuelAmount);
+ if (tFuelAmount <= 0L) {
+ useUp(aStack);
+ }
+ return rOutput;
+ }
+
+ private void prepare(ItemStack aStack) {
+ if (GT_Utility.areStacksEqual(aStack, this.mFullLighter, true)) {
+ aStack.func_150996_a(this.mUsedLighter.getItem());
+ Items.feather.setDamage(aStack, Items.feather.getDamage(this.mUsedLighter));
+ GT_Utility.ItemNBT.setLighterFuel(aStack, this.mFuelAmount);
+ }
+ }
+
+ private void useUp(ItemStack aStack) {
+ if (this.mEmptyLighter == null) {
+ aStack.stackSize -= 1;
+ } else {
+ aStack.func_150996_a(this.mEmptyLighter.getItem());
+ Items.feather.setDamage(aStack, Items.feather.getDamage(this.mEmptyLighter));
+ }
+ }
+
+ @Override
+ public List<String> getAdditionalToolTips(GT_MetaBase_Item aItem, List<String> aList, ItemStack aStack) {
+ aList.add(this.mTooltip);
+ NBTTagCompound tNBT = aStack.getTagCompound();
+ long tFuelAmount = tNBT == null ? this.mFuelAmount
+ : GT_Utility.areStacksEqual(aStack, this.mFullLighter, true) ? this.mFuelAmount
+ : tNBT.getLong("GT.LighterFuel");
+ aList.add(this.mTooltipUses + " " + tFuelAmount);
+ aList.add(this.mTooltipUnstackable);
+ return aList;
+ }
+}
diff --git a/src/main/java/gregtech/common/items/behaviors/Behaviour_None.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_None.java
new file mode 100644
index 0000000000..c31ddc723d
--- /dev/null
+++ b/src/main/java/gregtech/common/items/behaviors/Behaviour_None.java
@@ -0,0 +1,90 @@
+package gregtech.common.items.behaviors;
+
+import java.util.List;
+
+import net.minecraft.block.BlockDispenser;
+import net.minecraft.dispenser.BehaviorDefaultDispenseItem;
+import net.minecraft.dispenser.IBlockSource;
+import net.minecraft.dispenser.IPosition;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.entity.projectile.EntityArrow;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.EnumFacing;
+import net.minecraft.world.World;
+import net.minecraftforge.common.util.ForgeDirection;
+
+import gregtech.api.enums.SubTag;
+import gregtech.api.interfaces.IItemBehaviour;
+import gregtech.api.items.GT_MetaBase_Item;
+
+public class Behaviour_None implements IItemBehaviour<GT_MetaBase_Item> {
+
+ @Override
+ public boolean onLeftClickEntity(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, Entity aEntity) {
+ return false;
+ }
+
+ @Override
+ public boolean onItemUse(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX,
+ int aY, int aZ, int ordinalSide, float hitX, float hitY, float hitZ) {
+ return false;
+ }
+
+ @Override
+ public boolean onItemUseFirst(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX,
+ int aY, int aZ, ForgeDirection side, float hitX, float hitY, float hitZ) {
+ return false;
+ }
+
+ @Override
+ public ItemStack onItemRightClick(GT_MetaBase_Item aItem, ItemStack aStack, World aWorld, EntityPlayer aPlayer) {
+ return aStack;
+ }
+
+ @Override
+ public List<String> getAdditionalToolTips(GT_MetaBase_Item aItem, List<String> aList, ItemStack aStack) {
+ return aList;
+ }
+
+ @Override
+ public void onUpdate(GT_MetaBase_Item aItem, ItemStack aStack, World aWorld, Entity aPlayer, int aTimer,
+ boolean aIsInHand) {}
+
+ @Override
+ public boolean isItemStackUsable(GT_MetaBase_Item aItem, ItemStack aStack) {
+ return true;
+ }
+
+ @Override
+ public boolean canDispense(GT_MetaBase_Item aItem, IBlockSource aSource, ItemStack aStack) {
+ return false;
+ }
+
+ @Override
+ public ItemStack onDispense(GT_MetaBase_Item aItem, IBlockSource aSource, ItemStack aStack) {
+ EnumFacing enumfacing = BlockDispenser.func_149937_b(aSource.getBlockMetadata());
+ IPosition iposition = BlockDispenser.func_149939_a(aSource);
+ ItemStack itemstack1 = aStack.splitStack(1);
+ BehaviorDefaultDispenseItem.doDispense(aSource.getWorld(), itemstack1, 6, enumfacing, iposition);
+ return aStack;
+ }
+
+ @Override
+ public boolean hasProjectile(GT_MetaBase_Item aItem, SubTag aProjectileType, ItemStack aStack) {
+ return false;
+ }
+
+ @Override
+ public EntityArrow getProjectile(GT_MetaBase_Item aItem, SubTag aProjectileType, ItemStack aStack, World aWorld,
+ double aX, double aY, double aZ) {
+ return null;
+ }
+
+ @Override
+ public EntityArrow getProjectile(GT_MetaBase_Item aItem, SubTag aProjectileType, ItemStack aStack, World aWorld,
+ EntityLivingBase aEntity, float aSpeed) {
+ return null;
+ }
+}
diff --git a/src/main/java/gregtech/common/items/behaviors/Behaviour_Plunger_Essentia.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_Plunger_Essentia.java
new file mode 100644
index 0000000000..867eb25103
--- /dev/null
+++ b/src/main/java/gregtech/common/items/behaviors/Behaviour_Plunger_Essentia.java
@@ -0,0 +1,54 @@
+package gregtech.common.items.behaviors;
+
+import java.util.List;
+
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.world.World;
+import net.minecraftforge.common.util.ForgeDirection;
+
+import gregtech.api.enums.SoundResource;
+import gregtech.api.items.GT_MetaBase_Item;
+import gregtech.api.items.GT_MetaGenerated_Tool;
+import gregtech.api.util.GT_LanguageManager;
+import gregtech.api.util.GT_Utility;
+import thaumcraft.api.aspects.IEssentiaTransport;
+
+public class Behaviour_Plunger_Essentia extends Behaviour_None {
+
+ private final int mCosts;
+ private final String mTooltip = GT_LanguageManager
+ .addStringLocalization("gt.behaviour.plunger.essentia", "Clears Essentia from Containers and Tubes");
+
+ public Behaviour_Plunger_Essentia(int aCosts) {
+ this.mCosts = aCosts;
+ }
+
+ @Override
+ public boolean onItemUseFirst(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX,
+ int aY, int aZ, ForgeDirection side, float hitX, float hitY, float hitZ) {
+ if (aWorld.isRemote) {
+ return false;
+ }
+ TileEntity aTileEntity = aWorld.getTileEntity(aX, aY, aZ);
+ if (((aTileEntity instanceof IEssentiaTransport)) && ((aPlayer.capabilities.isCreativeMode)
+ || (((GT_MetaGenerated_Tool) aItem).doDamage(aStack, this.mCosts)))) {
+ GT_Utility.sendSoundToPlayers(aWorld, SoundResource.IC2_TOOLS_RUBBER_TRAMPOLINE, 1.0F, -1.0F, aX, aY, aZ);
+ for (ForgeDirection tDirection : ForgeDirection.VALID_DIRECTIONS) {
+ ((IEssentiaTransport) aTileEntity).takeEssentia(
+ ((IEssentiaTransport) aTileEntity).getEssentiaType(tDirection),
+ ((IEssentiaTransport) aTileEntity).getEssentiaAmount(tDirection),
+ tDirection);
+ }
+ return true;
+ }
+ return false;
+ }
+
+ @Override
+ public List<String> getAdditionalToolTips(GT_MetaBase_Item aItem, List<String> aList, ItemStack aStack) {
+ aList.add(this.mTooltip);
+ return aList;
+ }
+}
diff --git a/src/main/java/gregtech/common/items/behaviors/Behaviour_Plunger_Fluid.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_Plunger_Fluid.java
new file mode 100644
index 0000000000..c62cb5c4e5
--- /dev/null
+++ b/src/main/java/gregtech/common/items/behaviors/Behaviour_Plunger_Fluid.java
@@ -0,0 +1,75 @@
+package gregtech.common.items.behaviors;
+
+import java.util.List;
+
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.world.World;
+import net.minecraftforge.common.util.ForgeDirection;
+import net.minecraftforge.fluids.IFluidHandler;
+
+import gregtech.api.enums.SoundResource;
+import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
+import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
+import gregtech.api.items.GT_MetaBase_Item;
+import gregtech.api.items.GT_MetaGenerated_Tool;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicTank;
+import gregtech.api.util.GT_LanguageManager;
+import gregtech.api.util.GT_Utility;
+
+public class Behaviour_Plunger_Fluid extends Behaviour_None {
+
+ private final int mCosts;
+ private final String mTooltip = GT_LanguageManager
+ .addStringLocalization("gt.behaviour.plunger.fluid", "Clears 1000 Liters of Fluid from Tanks");
+
+ public Behaviour_Plunger_Fluid(int aCosts) {
+ this.mCosts = aCosts;
+ }
+
+ @Override
+ public boolean onItemUseFirst(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX,
+ int aY, int aZ, ForgeDirection side, float hitX, float hitY, float hitZ) {
+ if (aWorld.isRemote) {
+ return false;
+ }
+ TileEntity aTileEntity = aWorld.getTileEntity(aX, aY, aZ);
+ if ((aTileEntity instanceof IFluidHandler)) {
+ for (ForgeDirection tDirection : ForgeDirection.VALID_DIRECTIONS) {
+ if (((IFluidHandler) aTileEntity).drain(tDirection, 1000, false) != null) {
+ if ((aPlayer.capabilities.isCreativeMode)
+ || (((GT_MetaGenerated_Tool) aItem).doDamage(aStack, this.mCosts))) {
+ ((IFluidHandler) aTileEntity).drain(tDirection, 1000, true);
+ GT_Utility.sendSoundToPlayers(
+ aWorld,
+ SoundResource.IC2_TOOLS_RUBBER_TRAMPOLINE,
+ 1.0F,
+ -1.0F,
+ aX,
+ aY,
+ aZ);
+ return true;
+ }
+ }
+ }
+ }
+ if (aTileEntity instanceof IGregTechTileEntity tTileEntity) {
+ IMetaTileEntity mTileEntity = tTileEntity.getMetaTileEntity();
+ if (mTileEntity instanceof GT_MetaTileEntity_BasicTank machine) {
+ if (machine.mFluid != null && machine.mFluid.amount > 0)
+ machine.mFluid.amount = machine.mFluid.amount - Math.min(machine.mFluid.amount, 1000);
+ GT_Utility
+ .sendSoundToPlayers(aWorld, SoundResource.IC2_TOOLS_RUBBER_TRAMPOLINE, 1.0F, -1.0F, aX, aY, aZ);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ @Override
+ public List<String> getAdditionalToolTips(GT_MetaBase_Item aItem, List<String> aList, ItemStack aStack) {
+ aList.add(this.mTooltip);
+ return aList;
+ }
+}
diff --git a/src/main/java/gregtech/common/items/behaviors/Behaviour_Plunger_Item.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_Plunger_Item.java
new file mode 100644
index 0000000000..a5fa868a00
--- /dev/null
+++ b/src/main/java/gregtech/common/items/behaviors/Behaviour_Plunger_Item.java
@@ -0,0 +1,88 @@
+package gregtech.common.items.behaviors;
+
+import java.util.HashMap;
+import java.util.List;
+
+import net.minecraft.entity.item.EntityItem;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.world.World;
+import net.minecraftforge.common.util.ForgeDirection;
+
+import gregtech.api.enums.SoundResource;
+import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
+import gregtech.api.interfaces.metatileentity.IMetaTileEntityItemPipe;
+import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
+import gregtech.api.items.GT_MetaBase_Item;
+import gregtech.api.items.GT_MetaGenerated_Tool;
+import gregtech.api.util.GT_LanguageManager;
+import gregtech.api.util.GT_Utility;
+
+public class Behaviour_Plunger_Item extends Behaviour_None {
+
+ private final int mCosts;
+ private final String mTooltip = GT_LanguageManager
+ .addStringLocalization("gt.behaviour.plunger.item", "Clears Items from Pipes");
+
+ public Behaviour_Plunger_Item(int aCosts) {
+ this.mCosts = aCosts;
+ }
+
+ @Override
+ public boolean onItemUseFirst(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX,
+ int aY, int aZ, ForgeDirection side, float hitX, float hitY, float hitZ) {
+ if (aWorld.isRemote) {
+ return false;
+ }
+ TileEntity aTileEntity = aWorld.getTileEntity(aX, aY, aZ);
+ if (aTileEntity instanceof IGregTechTileEntity gtTE) {
+ IMetaTileEntity tMetaTileEntity = gtTE.getMetaTileEntity();
+ if ((tMetaTileEntity instanceof IMetaTileEntityItemPipe)) {
+ for (IMetaTileEntityItemPipe tTileEntity : GT_Utility
+ .sortMapByValuesAcending(
+ IMetaTileEntityItemPipe.Util
+ .scanPipes((IMetaTileEntityItemPipe) tMetaTileEntity, new HashMap<>(), 0L, false, true))
+ .keySet()) {
+ int i = 0;
+ for (int j = tTileEntity.getSizeInventory(); i < j; i++) {
+ if (tTileEntity.isValidSlot(i)) {
+ if ((tTileEntity.getStackInSlot(i) != null) && ((aPlayer.capabilities.isCreativeMode)
+ || (((GT_MetaGenerated_Tool) aItem).doDamage(aStack, this.mCosts)))) {
+ final ItemStack tStack = tTileEntity.decrStackSize(i, 64);
+ if (tStack != null) {
+ final EntityItem tEntity = new EntityItem(
+ aWorld,
+ gtTE.getOffsetX(side, 1) + 0.5D,
+ gtTE.getOffsetY(side, 1) + 0.5D,
+ gtTE.getOffsetZ(side, 1) + 0.5D,
+ tStack);
+ tEntity.motionX = 0.0D;
+ tEntity.motionY = 0.0D;
+ tEntity.motionZ = 0.0D;
+ aWorld.spawnEntityInWorld(tEntity);
+ GT_Utility.sendSoundToPlayers(
+ aWorld,
+ SoundResource.IC2_TOOLS_RUBBER_TRAMPOLINE,
+ 1.0F,
+ -1.0F,
+ aX,
+ aY,
+ aZ);
+ }
+ return true;
+ }
+ }
+ }
+ }
+ }
+ }
+ return false;
+ }
+
+ @Override
+ public List<String> getAdditionalToolTips(GT_MetaBase_Item aItem, List<String> aList, ItemStack aStack) {
+ aList.add(this.mTooltip);
+ return aList;
+ }
+}
diff --git a/src/main/java/gregtech/common/items/behaviors/Behaviour_PrintedPages.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_PrintedPages.java
new file mode 100644
index 0000000000..e3c4d58525
--- /dev/null
+++ b/src/main/java/gregtech/common/items/behaviors/Behaviour_PrintedPages.java
@@ -0,0 +1,39 @@
+package gregtech.common.items.behaviors;
+
+import java.util.List;
+
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+
+import gregtech.api.items.GT_MetaBase_Item;
+import gregtech.api.util.GT_Utility;
+
+public class Behaviour_PrintedPages extends Behaviour_None {
+
+ public static String getTitle(ItemStack aStack) {
+ NBTTagCompound tNBT = aStack.getTagCompound();
+ if (tNBT == null) {
+ return "";
+ }
+ return tNBT.getString("title");
+ }
+
+ public static String getAuthor(ItemStack aStack) {
+ NBTTagCompound tNBT = aStack.getTagCompound();
+ if (tNBT == null) {
+ return "";
+ }
+ return tNBT.getString("author");
+ }
+
+ @Override
+ public List<String> getAdditionalToolTips(GT_MetaBase_Item aItem, List<String> aList, ItemStack aStack) {
+ if (GT_Utility.isStringValid(getTitle(aStack))) {
+ aList.add(getTitle(aStack));
+ }
+ if (GT_Utility.isStringValid(getAuthor(aStack))) {
+ aList.add("by " + getAuthor(aStack));
+ }
+ return aList;
+ }
+}
diff --git a/src/main/java/gregtech/common/items/behaviors/Behaviour_Prospecting.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_Prospecting.java
new file mode 100644
index 0000000000..e64722fb87
--- /dev/null
+++ b/src/main/java/gregtech/common/items/behaviors/Behaviour_Prospecting.java
@@ -0,0 +1,159 @@
+package gregtech.common.items.behaviors;
+
+import java.util.List;
+import java.util.Random;
+
+import net.minecraft.block.Block;
+import net.minecraft.block.BlockLiquid;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.init.Blocks;
+import net.minecraft.item.ItemStack;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.world.World;
+import net.minecraftforge.common.util.ForgeDirection;
+import net.minecraftforge.fluids.IFluidBlock;
+
+import gregtech.api.GregTech_API;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.SoundResource;
+import gregtech.api.items.GT_MetaBase_Item;
+import gregtech.api.items.GT_MetaGenerated_Tool;
+import gregtech.api.objects.ItemData;
+import gregtech.api.objects.XSTR;
+import gregtech.api.util.GT_LanguageManager;
+import gregtech.api.util.GT_ModHandler;
+import gregtech.api.util.GT_OreDictUnificator;
+import gregtech.api.util.GT_Utility;
+import gregtech.common.blocks.GT_Block_Ores_Abstract;
+import gregtech.common.blocks.GT_TileEntity_Ores;
+
+public class Behaviour_Prospecting extends Behaviour_None {
+
+ private final int mVanillaCosts;
+ private final int mEUCosts;
+ private final String mTooltip = GT_LanguageManager
+ .addStringLocalization("gt.behaviour.prospecting", "Usable for Prospecting");
+
+ public Behaviour_Prospecting(int aVanillaCosts, int aEUCosts) {
+ this.mVanillaCosts = aVanillaCosts;
+ this.mEUCosts = aEUCosts;
+ }
+
+ @Override
+ public boolean onItemUseFirst(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX,
+ int aY, int aZ, ForgeDirection side, float hitX, float hitY, float hitZ) {
+ if (aWorld.isRemote) {
+ return false;
+ }
+ Block aBlock = aWorld.getBlock(aX, aY, aZ);
+ if (aBlock == null) {
+ return false;
+ }
+ byte aMeta = (byte) aWorld.getBlockMetadata(aX, aY, aZ);
+
+ ItemData tAssociation = GT_OreDictUnificator.getAssociation(new ItemStack(aBlock, 1, aMeta));
+ if (tAssociation != null && tAssociation.mPrefix != null
+ && tAssociation.mMaterial != null
+ && tAssociation.mPrefix.toString()
+ .startsWith("ore")) {
+ GT_Utility.sendChatToPlayer(
+ aPlayer,
+ GT_Utility.trans("100", "This is ") + tAssociation.mMaterial.mMaterial.mDefaultLocalName
+ + GT_Utility.trans("101", " Ore."));
+ GT_Utility.sendSoundToPlayers(aWorld, SoundResource.RANDOM_ANVIL_USE, 1.0F, -1.0F, aX, aY, aZ);
+ return true;
+ }
+
+ if (aBlock.isReplaceableOreGen(aWorld, aX, aY, aZ, Blocks.stone)
+ || aBlock.isReplaceableOreGen(aWorld, aX, aY, aZ, Blocks.netherrack)
+ || aBlock.isReplaceableOreGen(aWorld, aX, aY, aZ, Blocks.end_stone)
+ || aBlock.isReplaceableOreGen(aWorld, aX, aY, aZ, GregTech_API.sBlockStones)
+ || aBlock.isReplaceableOreGen(aWorld, aX, aY, aZ, GregTech_API.sBlockGranites)
+ || aBlock == GregTech_API.sBlockOresUb1
+ || aBlock == GregTech_API.sBlockOresUb2
+ || aBlock == GregTech_API.sBlockOresUb3
+ || aBlock == GregTech_API.sBlockOres1) {
+ if (GT_ModHandler.damageOrDechargeItem(aStack, this.mVanillaCosts, this.mEUCosts, aPlayer)) {
+ GT_Utility.sendSoundToPlayers(aWorld, SoundResource.RANDOM_ANVIL_USE, 1.0F, -1.0F, aX, aY, aZ);
+ int tMetaID;
+ int tQuality = aItem instanceof GT_MetaGenerated_Tool ? aItem.getHarvestLevel(aStack, "") : 0;
+ int tX = aX, tY = aY, tZ = aZ;
+ Block tBlock;
+ for (int i = 0, j = 6 + tQuality; i < j; i++) {
+ tX -= side.offsetX;
+ tY -= side.offsetY;
+ tZ -= side.offsetZ;
+
+ tBlock = aWorld.getBlock(tX, tY, tZ);
+ if (tBlock == Blocks.lava || tBlock == Blocks.flowing_lava) {
+ GT_Utility
+ .sendChatToPlayer(aPlayer, GT_Utility.trans("102", "There is Lava behind this Rock."));
+ break;
+ }
+ if (tBlock instanceof BlockLiquid || tBlock instanceof IFluidBlock) {
+ GT_Utility
+ .sendChatToPlayer(aPlayer, GT_Utility.trans("103", "There is a Liquid behind this Rock."));
+ break;
+ }
+ if (tBlock == Blocks.monster_egg || !GT_Utility.hasBlockHitBox(aWorld, tX, tY, tZ)) {
+ GT_Utility.sendChatToPlayer(
+ aPlayer,
+ GT_Utility.trans("104", "There is an Air Pocket behind this Rock."));
+ break;
+ }
+ if (tBlock != aBlock) {
+ if (i < 4) GT_Utility.sendChatToPlayer(
+ aPlayer,
+ GT_Utility.trans("105", "Material is changing behind this Rock."));
+ break;
+ }
+ }
+
+ final Random tRandom = new XSTR(aX ^ aY ^ aZ ^ side.ordinal());
+ for (int i = 0, j = 9 + 2 * tQuality; i < j; i++) {
+ tX = aX - 4 - tQuality + tRandom.nextInt(j);
+ tY = aY - 4 - tQuality + tRandom.nextInt(j);
+ tZ = aZ - 4 - tQuality + tRandom.nextInt(j);
+ tBlock = aWorld.getBlock(tX, tY, tZ);
+ if (tBlock instanceof GT_Block_Ores_Abstract) {
+ final TileEntity tTileEntity = aWorld.getTileEntity(tX, tY, tZ);
+ if (tTileEntity instanceof GT_TileEntity_Ores) {
+ final Materials tMaterial = GregTech_API.sGeneratedMaterials[((GT_TileEntity_Ores) tTileEntity).mMetaData
+ % 1000];
+ if (tMaterial != null && tMaterial != Materials._NULL) {
+ GT_Utility.sendChatToPlayer(
+ aPlayer,
+ GT_Utility.trans("106", "Found traces of ") + tMaterial.mDefaultLocalName
+ + GT_Utility.trans("101", " Ore."));
+ return true;
+ }
+ }
+ } else {
+ tMetaID = aWorld.getBlockMetadata(tX, tY, tZ);
+ tAssociation = GT_OreDictUnificator.getAssociation(new ItemStack(tBlock, 1, tMetaID));
+ if (tAssociation != null && tAssociation.mPrefix != null
+ && tAssociation.mMaterial != null
+ && tAssociation.mPrefix.toString()
+ .startsWith("ore")) {
+ GT_Utility.sendChatToPlayer(
+ aPlayer,
+ GT_Utility.trans("106", "Found traces of ")
+ + tAssociation.mMaterial.mMaterial.mDefaultLocalName
+ + GT_Utility.trans("101", " Ore."));
+ return true;
+ }
+ }
+ }
+ GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("107", "No Ores found."));
+ return true;
+ }
+ }
+ return false;
+ }
+
+ @Override
+ public List<String> getAdditionalToolTips(GT_MetaBase_Item aItem, List<String> aList, ItemStack aStack) {
+ aList.add(this.mTooltip);
+ return aList;
+ }
+}
diff --git a/src/main/java/gregtech/common/items/behaviors/Behaviour_Scanner.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_Scanner.java
new file mode 100644
index 0000000000..22b708e384
--- /dev/null
+++ b/src/main/java/gregtech/common/items/behaviors/Behaviour_Scanner.java
@@ -0,0 +1,65 @@
+package gregtech.common.items.behaviors;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.entity.player.EntityPlayerMP;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.util.EnumChatFormatting;
+import net.minecraft.world.World;
+import net.minecraftforge.common.util.ForgeDirection;
+
+import gregtech.api.enums.SoundResource;
+import gregtech.api.interfaces.IItemBehaviour;
+import gregtech.api.items.GT_MetaBase_Item;
+import gregtech.api.util.GT_LanguageManager;
+import gregtech.api.util.GT_Utility;
+
+public class Behaviour_Scanner extends Behaviour_None {
+
+ public static final IItemBehaviour<GT_MetaBase_Item> INSTANCE = new Behaviour_Scanner();
+ private final String mTooltip = GT_LanguageManager
+ .addStringLocalization("gt.behaviour.scanning", "Can scan Blocks in World");
+
+ @Override
+ public boolean onItemUseFirst(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX,
+ int aY, int aZ, ForgeDirection side, float hitX, float hitY, float hitZ) {
+ final NBTTagCompound tNBT = aStack.getTagCompound();
+ if (((aPlayer instanceof EntityPlayerMP)) && (aItem.canUse(aStack, 20000.0D))) {
+ final ArrayList<String> tList = new ArrayList<>();
+ if (aItem.use(
+ aStack,
+ GT_Utility.getCoordinateScan(tList, aPlayer, aWorld, 1, aX, aY, aZ, side, hitX, hitY, hitZ),
+ aPlayer)) {
+ final int tList_sS = tList.size();
+ tNBT.setInteger("dataLinesCount", tList_sS);
+ for (int i = 0; i < tList_sS; i++) {
+ tNBT.setString("dataLines" + i, tList.get(i));
+ GT_Utility.sendChatToPlayer(aPlayer, tList.get(i));
+ }
+ }
+ return true;
+ }
+ GT_Utility.doSoundAtClient(SoundResource.IC2_TOOLS_OD_SCANNER, 1, 1.0F, aX, aY, aZ);
+ // doGuiAtClient()
+ return aPlayer instanceof EntityPlayerMP;
+ }
+
+ @Override
+ public List<String> getAdditionalToolTips(GT_MetaBase_Item aItem, List<String> aList, ItemStack aStack) {
+ try {
+ NBTTagCompound tNBT = aStack.getTagCompound();
+ int lines = tNBT.getInteger("dataLinesCount");
+ if (lines < 1) throw new Exception();
+ aList.add(EnumChatFormatting.BLUE + "Block scan data result:");
+ for (int i = 0; i < lines; i++) {
+ aList.add(EnumChatFormatting.RESET + tNBT.getString("dataLines" + i));
+ }
+ } catch (Exception e) {
+ aList.add(this.mTooltip);
+ }
+ return aList;
+ }
+}
diff --git a/src/main/java/gregtech/common/items/behaviors/Behaviour_Scoop.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_Scoop.java
new file mode 100644
index 0000000000..65be65a96d
--- /dev/null
+++ b/src/main/java/gregtech/common/items/behaviors/Behaviour_Scoop.java
@@ -0,0 +1,63 @@
+package gregtech.common.items.behaviors;
+
+import java.util.List;
+
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.item.EntityItem;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+
+import forestry.api.lepidopterology.EnumFlutterType;
+import forestry.api.lepidopterology.IButterfly;
+import forestry.api.lepidopterology.IEntityButterfly;
+import gregtech.api.items.GT_MetaBase_Item;
+import gregtech.api.items.GT_MetaGenerated_Tool;
+import gregtech.api.util.GT_LanguageManager;
+
+public class Behaviour_Scoop extends Behaviour_None {
+
+ private final int mCosts;
+ private final String mTooltip = GT_LanguageManager
+ .addStringLocalization("gt.behaviour.scoop", "Catches Butterflies on Leftclick");
+
+ public Behaviour_Scoop(int aCosts) {
+ this.mCosts = aCosts;
+ }
+
+ @Override
+ public boolean onLeftClickEntity(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, Entity aEntity) {
+ if ((aEntity instanceof IEntityButterfly)) {
+ if (aPlayer.worldObj.isRemote) {
+ return true;
+ }
+ if ((aPlayer.capabilities.isCreativeMode)
+ || (((GT_MetaGenerated_Tool) aItem).doDamage(aStack, this.mCosts))) {
+ IButterfly tButterfly = ((IEntityButterfly) aEntity).getButterfly();
+ tButterfly.getGenome()
+ .getPrimary()
+ .getRoot()
+ .getBreedingTracker(aEntity.worldObj, aPlayer.getGameProfile())
+ .registerCatch(tButterfly);
+ aPlayer.worldObj.spawnEntityInWorld(
+ new EntityItem(
+ aPlayer.worldObj,
+ aEntity.posX,
+ aEntity.posY,
+ aEntity.posZ,
+ tButterfly.getGenome()
+ .getPrimary()
+ .getRoot()
+ .getMemberStack(tButterfly.copy(), EnumFlutterType.BUTTERFLY.ordinal())));
+ aEntity.setDead();
+ }
+ return true;
+ }
+ return false;
+ }
+
+ @Override
+ public List<String> getAdditionalToolTips(GT_MetaBase_Item aItem, List<String> aList, ItemStack aStack) {
+ aList.add(this.mTooltip);
+ return aList;
+ }
+}
diff --git a/src/main/java/gregtech/common/items/behaviors/Behaviour_Screwdriver.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_Screwdriver.java
new file mode 100644
index 0000000000..d940226b84
--- /dev/null
+++ b/src/main/java/gregtech/common/items/behaviors/Behaviour_Screwdriver.java
@@ -0,0 +1,52 @@
+package gregtech.common.items.behaviors;
+
+import net.minecraft.block.Block;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.init.Blocks;
+import net.minecraft.item.ItemStack;
+import net.minecraft.world.World;
+import net.minecraftforge.common.util.ForgeDirection;
+
+import gregtech.api.enums.SoundResource;
+import gregtech.api.items.GT_MetaBase_Item;
+import gregtech.api.util.GT_ModHandler;
+import gregtech.api.util.GT_Utility;
+
+public class Behaviour_Screwdriver extends Behaviour_None {
+
+ private final int mVanillaCosts;
+ private final int mEUCosts;
+
+ public Behaviour_Screwdriver(int aVanillaCosts, int aEUCosts) {
+ this.mVanillaCosts = aVanillaCosts;
+ this.mEUCosts = aEUCosts;
+ }
+
+ @Override
+ public boolean onItemUseFirst(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX,
+ int aY, int aZ, ForgeDirection side, float hitX, float hitY, float hitZ) {
+ if (aWorld.isRemote) {
+ return false;
+ }
+ Block aBlock = aWorld.getBlock(aX, aY, aZ);
+ if (aBlock == null) {
+ return false;
+ }
+ byte aMeta = (byte) aWorld.getBlockMetadata(aX, aY, aZ);
+ if ((aBlock == Blocks.unpowered_repeater) || (aBlock == Blocks.powered_repeater)) {
+ if (GT_ModHandler.damageOrDechargeItem(aStack, this.mVanillaCosts, this.mEUCosts, aPlayer)) {
+ aWorld.setBlockMetadataWithNotify(aX, aY, aZ, aMeta / 4 * 4 + (aMeta % 4 + 1) % 4, 3);
+ GT_Utility.sendSoundToPlayers(aWorld, SoundResource.IC2_TOOLS_WRENCH, 1.0F, -1.0F, aX, aY, aZ);
+ }
+ return true;
+ }
+ if ((aBlock == Blocks.unpowered_comparator) || (aBlock == Blocks.powered_comparator)) {
+ if (GT_ModHandler.damageOrDechargeItem(aStack, this.mVanillaCosts, this.mEUCosts, aPlayer)) {
+ aWorld.setBlockMetadataWithNotify(aX, aY, aZ, aMeta / 4 * 4 + (aMeta % 4 + 1) % 4, 3);
+ GT_Utility.sendSoundToPlayers(aWorld, SoundResource.IC2_TOOLS_WRENCH, 1.0F, -1.0F, aX, aY, aZ);
+ }
+ return true;
+ }
+ return false;
+ }
+}
diff --git a/src/main/java/gregtech/common/items/behaviors/Behaviour_Sense.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_Sense.java
new file mode 100644
index 0000000000..b2ab0031ad
--- /dev/null
+++ b/src/main/java/gregtech/common/items/behaviors/Behaviour_Sense.java
@@ -0,0 +1,56 @@
+package gregtech.common.items.behaviors;
+
+import java.util.List;
+
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.world.World;
+import net.minecraftforge.common.util.ForgeDirection;
+
+import gregtech.api.items.GT_MetaBase_Item;
+import gregtech.api.items.GT_MetaGenerated_Tool;
+import gregtech.api.util.GT_LanguageManager;
+import ic2.api.crops.ICropTile;
+
+public class Behaviour_Sense extends Behaviour_None {
+
+ private final int mCosts;
+ private final String mTooltip = GT_LanguageManager
+ .addStringLocalization("gt.behaviour.sense", "Rightclick to harvest Crop Sticks");
+
+ public Behaviour_Sense(int aCosts) {
+ this.mCosts = aCosts;
+ }
+
+ @Override
+ public boolean onItemUseFirst(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX,
+ int aY, int aZ, ForgeDirection side, float hitX, float hitY, float hitZ) {
+ if (aWorld.isRemote) {
+ return false;
+ }
+ TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ);
+ if ((tTileEntity instanceof ICropTile)) {
+ for (int i = -2; i < 3; i++) {
+ for (int j = -2; j < 3; j++) {
+ for (int k = -2; k < 3; k++) {
+ if ((aStack.stackSize > 0)
+ && (((tTileEntity = aWorld.getTileEntity(aX + i, aY + j, aZ + k)) instanceof ICropTile))
+ && (((ICropTile) tTileEntity).harvest(true))
+ && (!aPlayer.capabilities.isCreativeMode)) {
+ ((GT_MetaGenerated_Tool) aItem).doDamage(aStack, this.mCosts / 20);
+ }
+ }
+ }
+ }
+ return true;
+ }
+ return false;
+ }
+
+ @Override
+ public List<String> getAdditionalToolTips(GT_MetaBase_Item aItem, List<String> aList, ItemStack aStack) {
+ aList.add(this.mTooltip);
+ return aList;
+ }
+}
diff --git a/src/main/java/gregtech/common/items/behaviors/Behaviour_SensorKit.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_SensorKit.java
new file mode 100644
index 0000000000..b12159d058
--- /dev/null
+++ b/src/main/java/gregtech/common/items/behaviors/Behaviour_SensorKit.java
@@ -0,0 +1,56 @@
+package gregtech.common.items.behaviors;
+
+import java.util.List;
+
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.entity.player.EntityPlayerMP;
+import net.minecraft.inventory.IInventory;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.world.World;
+import net.minecraftforge.common.util.ForgeDirection;
+
+import gregtech.api.enums.ItemList;
+import gregtech.api.interfaces.tileentity.IGregTechDeviceInformation;
+import gregtech.api.items.GT_MetaBase_Item;
+import gregtech.api.util.GT_LanguageManager;
+import gregtech.api.util.GT_Utility;
+
+public class Behaviour_SensorKit extends Behaviour_None {
+
+ private final String mTooltip = GT_LanguageManager.addStringLocalization(
+ "gt.behaviour.sensorkit.tooltip",
+ "Used to display Information using the Mod Nuclear Control");
+
+ @Override
+ public boolean onItemUseFirst(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX,
+ int aY, int aZ, ForgeDirection side, float hitX, float hitY, float hitZ) {
+ if ((aPlayer instanceof EntityPlayerMP)) {
+ TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ);
+ if (((tTileEntity instanceof IInventory)) && (!((IInventory) tTileEntity).isUseableByPlayer(aPlayer))) {
+ return false;
+ }
+ if (((tTileEntity instanceof IGregTechDeviceInformation))
+ && (((IGregTechDeviceInformation) tTileEntity).isGivingInformation())) {
+ GT_Utility.setStack(aStack, ItemList.NC_SensorCard.get(aStack.stackSize));
+ NBTTagCompound tNBT = aStack.getTagCompound();
+ if (tNBT == null) {
+ tNBT = new NBTTagCompound();
+ }
+ tNBT.setInteger("x", aX);
+ tNBT.setInteger("y", aY);
+ tNBT.setInteger("z", aZ);
+ aStack.setTagCompound(tNBT);
+ }
+ return true;
+ }
+ return false;
+ }
+
+ @Override
+ public List<String> getAdditionalToolTips(GT_MetaBase_Item aItem, List<String> aList, ItemStack aStack) {
+ aList.add(this.mTooltip);
+ return aList;
+ }
+}
diff --git a/src/main/java/gregtech/common/items/behaviors/Behaviour_SoftHammer.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_SoftHammer.java
new file mode 100644
index 0000000000..159a0c4b27
--- /dev/null
+++ b/src/main/java/gregtech/common/items/behaviors/Behaviour_SoftHammer.java
@@ -0,0 +1,131 @@
+package gregtech.common.items.behaviors;
+
+import java.util.List;
+
+import net.minecraft.block.Block;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.init.Blocks;
+import net.minecraft.item.ItemStack;
+import net.minecraft.world.World;
+import net.minecraftforge.common.util.ForgeDirection;
+
+import gregtech.api.enums.SoundResource;
+import gregtech.api.items.GT_MetaBase_Item;
+import gregtech.api.items.GT_MetaGenerated_Tool;
+import gregtech.api.util.GT_LanguageManager;
+import gregtech.api.util.GT_Utility;
+
+public class Behaviour_SoftHammer extends Behaviour_None {
+
+ private final int mCosts;
+ private final String mTooltip = GT_LanguageManager
+ .addStringLocalization("gt.behaviour.softhammer", "Activates and Deactivates Machines");
+
+ public Behaviour_SoftHammer(int aCosts) {
+ this.mCosts = aCosts;
+ }
+
+ @Override
+ public boolean onItemUseFirst(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX,
+ int aY, int aZ, ForgeDirection side, float hitX, float hitY, float hitZ) {
+ if (aWorld.isRemote) {
+ return false;
+ }
+ Block aBlock = aWorld.getBlock(aX, aY, aZ);
+ if (aBlock == null) {
+ return false;
+ }
+ byte aMeta = (byte) aWorld.getBlockMetadata(aX, aY, aZ);
+ if (aBlock == Blocks.lit_redstone_lamp) {
+ if ((aPlayer.capabilities.isCreativeMode)
+ || (((GT_MetaGenerated_Tool) aItem).doDamage(aStack, this.mCosts))) {
+ aWorld.isRemote = true;
+ aWorld.setBlock(aX, aY, aZ, Blocks.redstone_lamp, 0, 0);
+ aWorld.isRemote = false;
+ GT_Utility
+ .sendSoundToPlayers(aWorld, SoundResource.IC2_TOOLS_RUBBER_TRAMPOLINE, 1.0F, -1.0F, aX, aY, aZ);
+ }
+ return true;
+ }
+ if (aBlock == Blocks.redstone_lamp) {
+ if ((aPlayer.capabilities.isCreativeMode)
+ || (((GT_MetaGenerated_Tool) aItem).doDamage(aStack, this.mCosts))) {
+ aWorld.isRemote = true;
+ aWorld.setBlock(aX, aY, aZ, Blocks.lit_redstone_lamp, 0, 0);
+ aWorld.isRemote = false;
+ GT_Utility
+ .sendSoundToPlayers(aWorld, SoundResource.IC2_TOOLS_RUBBER_TRAMPOLINE, 1.0F, -1.0F, aX, aY, aZ);
+ }
+ return true;
+ }
+ if (aBlock == Blocks.golden_rail) {
+ if ((aPlayer.capabilities.isCreativeMode)
+ || (((GT_MetaGenerated_Tool) aItem).doDamage(aStack, this.mCosts))) {
+ aWorld.isRemote = true;
+ aWorld.setBlock(aX, aY, aZ, aBlock, (aMeta + 8) % 16, 0);
+ aWorld.isRemote = false;
+ GT_Utility
+ .sendSoundToPlayers(aWorld, SoundResource.IC2_TOOLS_RUBBER_TRAMPOLINE, 1.0F, -1.0F, aX, aY, aZ);
+ }
+ return true;
+ }
+ if (aBlock == Blocks.activator_rail) {
+ if ((aPlayer.capabilities.isCreativeMode)
+ || (((GT_MetaGenerated_Tool) aItem).doDamage(aStack, this.mCosts))) {
+ aWorld.isRemote = true;
+ aWorld.setBlock(aX, aY, aZ, aBlock, (aMeta + 8) % 16, 0);
+ aWorld.isRemote = false;
+ GT_Utility
+ .sendSoundToPlayers(aWorld, SoundResource.IC2_TOOLS_RUBBER_TRAMPOLINE, 1.0F, -1.0F, aX, aY, aZ);
+ }
+ return true;
+ }
+ if ((aBlock == Blocks.log) || (aBlock == Blocks.log2) || (aBlock == Blocks.hay_block)) {
+ if ((aPlayer.capabilities.isCreativeMode)
+ || (((GT_MetaGenerated_Tool) aItem).doDamage(aStack, this.mCosts))) {
+ aWorld.setBlockMetadataWithNotify(aX, aY, aZ, (aMeta + 4) % 12, 3);
+ }
+ return true;
+ }
+ if ((aBlock == Blocks.piston) || (aBlock == Blocks.sticky_piston)
+ || (aBlock == Blocks.dispenser)
+ || (aBlock == Blocks.dropper)) {
+ if ((aPlayer.capabilities.isCreativeMode)
+ || (((GT_MetaGenerated_Tool) aItem).doDamage(aStack, this.mCosts))) {
+ aWorld.setBlockMetadataWithNotify(aX, aY, aZ, (aMeta + 1) % 6, 3);
+ GT_Utility
+ .sendSoundToPlayers(aWorld, SoundResource.IC2_TOOLS_RUBBER_TRAMPOLINE, 1.0F, -1.0F, aX, aY, aZ);
+ }
+ return true;
+ }
+ if ((aBlock == Blocks.pumpkin) || (aBlock == Blocks.lit_pumpkin)
+ || (aBlock == Blocks.furnace)
+ || (aBlock == Blocks.lit_furnace)
+ || (aBlock == Blocks.chest)
+ || (aBlock == Blocks.trapped_chest)) {
+ if ((aPlayer.capabilities.isCreativeMode)
+ || (((GT_MetaGenerated_Tool) aItem).doDamage(aStack, this.mCosts))) {
+ aWorld.setBlockMetadataWithNotify(aX, aY, aZ, (aMeta - 1) % 4 + 2, 3);
+ GT_Utility
+ .sendSoundToPlayers(aWorld, SoundResource.IC2_TOOLS_RUBBER_TRAMPOLINE, 1.0F, -1.0F, aX, aY, aZ);
+ }
+ return true;
+ }
+ if (aBlock == Blocks.hopper) {
+ if ((aPlayer.capabilities.isCreativeMode)
+ || (((GT_MetaGenerated_Tool) aItem).doDamage(aStack, this.mCosts))) {
+ aWorld.setBlockMetadataWithNotify(aX, aY, aZ, (aMeta + 1) % 6 != 1 ? (aMeta + 1) % 6 : 2, 3);
+ GT_Utility
+ .sendSoundToPlayers(aWorld, SoundResource.IC2_TOOLS_RUBBER_TRAMPOLINE, 1.0F, -1.0F, aX, aY, aZ);
+ }
+ return true;
+ }
+ return false;
+ }
+
+ @Override
+ public List<String> getAdditionalToolTips(GT_MetaBase_Item aItem, List<String> aList, ItemStack aStack) {
+ aList.add(this.mTooltip);
+ return aList;
+ }
+}
diff --git a/src/main/java/gregtech/common/items/behaviors/Behaviour_Sonictron.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_Sonictron.java
new file mode 100644
index 0000000000..dbab764507
--- /dev/null
+++ b/src/main/java/gregtech/common/items/behaviors/Behaviour_Sonictron.java
@@ -0,0 +1,135 @@
+package gregtech.common.items.behaviors;
+
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.nbt.NBTTagList;
+import net.minecraft.world.World;
+import net.minecraftforge.common.util.ForgeDirection;
+
+import gregtech.api.enums.GT_Values;
+import gregtech.api.interfaces.IItemBehaviour;
+import gregtech.api.items.GT_MetaBase_Item;
+import gregtech.api.util.GT_Utility;
+
+public class Behaviour_Sonictron extends Behaviour_None {
+
+ public static final IItemBehaviour<GT_MetaBase_Item> INSTANCE = new Behaviour_Sonictron();
+
+ public static int getCurrentIndex(ItemStack aStack) {
+ NBTTagCompound tNBTTagCompound = aStack.getTagCompound();
+ if (tNBTTagCompound == null) {
+ tNBTTagCompound = new NBTTagCompound();
+ }
+ return tNBTTagCompound.getInteger("mCurrentIndex");
+ }
+
+ public static int getTickTimer(ItemStack aStack) {
+ NBTTagCompound tNBTTagCompound = aStack.getTagCompound();
+ if (tNBTTagCompound == null) {
+ tNBTTagCompound = new NBTTagCompound();
+ }
+ return tNBTTagCompound.getInteger("mTickTimer");
+ }
+
+ public static NBTTagCompound setCurrentIndex(ItemStack aStack, int aIndex) {
+ NBTTagCompound tNBTTagCompound = aStack.getTagCompound();
+ if (tNBTTagCompound == null) {
+ tNBTTagCompound = new NBTTagCompound();
+ }
+ tNBTTagCompound.setInteger("mCurrentIndex", aIndex);
+ return tNBTTagCompound;
+ }
+
+ public static NBTTagCompound setTickTimer(ItemStack aStack, int aTime) {
+ NBTTagCompound tNBTTagCompound = aStack.getTagCompound();
+ if (tNBTTagCompound == null) {
+ tNBTTagCompound = new NBTTagCompound();
+ }
+ tNBTTagCompound.setInteger("mTickTimer", aTime);
+ return tNBTTagCompound;
+ }
+
+ public static ItemStack[] getNBTInventory(ItemStack aStack) {
+ ItemStack[] tInventory = new ItemStack[64];
+ NBTTagCompound tNBT = aStack.getTagCompound();
+ if (tNBT == null) {
+ return tInventory;
+ }
+ NBTTagList tNBT_ItemList = tNBT.getTagList("Inventory", 10);
+ for (int i = 0; i < tNBT_ItemList.tagCount(); i++) {
+ NBTTagCompound tag = tNBT_ItemList.getCompoundTagAt(i);
+ byte slot = tag.getByte("Slot");
+ if ((slot >= 0) && (slot < tInventory.length)) {
+ tInventory[slot] = GT_Utility.loadItem(tag);
+ }
+ }
+ return tInventory;
+ }
+
+ public static NBTTagCompound setNBTInventory(ItemStack aStack, ItemStack[] aInventory) {
+ NBTTagCompound tNBT = aStack.getTagCompound();
+ if (tNBT == null) {
+ tNBT = new NBTTagCompound();
+ }
+ NBTTagList tNBT_ItemList = new NBTTagList();
+ for (int i = 0; i < aInventory.length; i++) {
+ ItemStack stack = aInventory[i];
+ if (stack != null) {
+ NBTTagCompound tag = new NBTTagCompound();
+ tag.setByte("Slot", (byte) i);
+ stack.writeToNBT(tag);
+ tNBT_ItemList.appendTag(tag);
+ }
+ }
+ tNBT.setTag("Inventory", tNBT_ItemList);
+ aStack.setTagCompound(tNBT);
+ return tNBT;
+ }
+
+ public static void copyInventory(ItemStack[] aInventory, ItemStack[] aNewContent, int aIndexlength) {
+ for (int i = 0; i < aIndexlength; i++) {
+ if (aNewContent[i] == null) {
+ aInventory[i] = null;
+ } else {
+ aInventory[i] = GT_Utility.copyOrNull(aNewContent[i]);
+ }
+ }
+ }
+
+ @Override
+ public boolean onItemUseFirst(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX,
+ int aY, int aZ, ForgeDirection side, float hitX, float hitY, float hitZ) {
+ setCurrentIndex(aStack, -1);
+ return false;
+ }
+
+ @Override
+ public ItemStack onItemRightClick(GT_MetaBase_Item aItem, ItemStack aStack, World aWorld, EntityPlayer aPlayer) {
+ setCurrentIndex(aStack, 0);
+ return aStack;
+ }
+
+ @Override
+ public void onUpdate(GT_MetaBase_Item aItem, ItemStack aStack, World aWorld, Entity aPlayer, int aTimer,
+ boolean aIsInHand) {
+ int tTickTimer = getTickTimer(aStack);
+ int tCurrentIndex = getCurrentIndex(aStack);
+ if ((tTickTimer++ % 2 == 0) && (tCurrentIndex > -1)) {
+ ItemStack[] tInventory = getNBTInventory(aStack);
+ GT_Values.GT.doSonictronSound(
+ tInventory[tCurrentIndex],
+ aPlayer.worldObj,
+ aPlayer.posX,
+ aPlayer.posY,
+ aPlayer.posZ);
+ tCurrentIndex++;
+ if (tCurrentIndex > 63) {
+ tCurrentIndex = -1;
+ }
+ }
+ setTickTimer(aStack, tTickTimer);
+ setCurrentIndex(aStack, tCurrentIndex);
+ }
+}
diff --git a/src/main/java/gregtech/common/items/behaviors/Behaviour_Spray_Color.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_Spray_Color.java
new file mode 100644
index 0000000000..216eb4d745
--- /dev/null
+++ b/src/main/java/gregtech/common/items/behaviors/Behaviour_Spray_Color.java
@@ -0,0 +1,218 @@
+package gregtech.common.items.behaviors;
+
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
+
+import net.minecraft.block.Block;
+import net.minecraft.block.BlockColored;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.init.Blocks;
+import net.minecraft.init.Items;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.util.Vec3;
+import net.minecraft.world.World;
+import net.minecraftforge.common.util.ForgeDirection;
+
+import appeng.api.implementations.tiles.IColorableTile;
+import appeng.api.util.AEColor;
+import appeng.block.networking.BlockCableBus;
+import gregtech.api.enums.Dyes;
+import gregtech.api.enums.SoundResource;
+import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
+import gregtech.api.items.GT_MetaBase_Item;
+import gregtech.api.util.GT_LanguageManager;
+import gregtech.api.util.GT_Utility;
+import gregtech.common.config.other.ConfigGeneral;
+
+public class Behaviour_Spray_Color extends Behaviour_None {
+
+ private final ItemStack mEmpty;
+ private final ItemStack mUsed;
+ private final ItemStack mFull;
+ private final long mUses;
+ private final byte mColor;
+ private final Collection<Block> mAllowedVanillaBlocks = Arrays.asList(
+ Blocks.glass,
+ Blocks.glass_pane,
+ Blocks.stained_glass,
+ Blocks.stained_glass_pane,
+ Blocks.carpet,
+ Blocks.hardened_clay);
+ protected String mTooltip;
+ private final String mTooltipUses = GT_LanguageManager
+ .addStringLocalization("gt.behaviour.paintspray.uses", "Remaining Uses:");
+ private final String mTooltipUnstackable = GT_LanguageManager
+ .addStringLocalization("gt.behaviour.unstackable", "Not usable when stacked!");
+ private final String mTooltipChain = GT_LanguageManager.addStringLocalization(
+ "gt.behaviour.paintspray.chain",
+ "If used while sneaking it will spray a chain of blocks");
+
+ private final String mTooltipChainAmount = GT_LanguageManager.addStringLocalization(
+ "gt.behaviour.paintspray.chain",
+ "Sprays up to %d blocks, in the direction you're looking at");
+
+ public Behaviour_Spray_Color(ItemStack aEmpty, ItemStack aUsed, ItemStack aFull, long aUses, int aColor) {
+ this.mEmpty = aEmpty;
+ this.mUsed = aUsed;
+ this.mFull = aFull;
+ this.mUses = aUses;
+ this.mColor = ((byte) aColor);
+ this.mTooltip = GT_LanguageManager.addStringLocalization(
+ "gt.behaviour.paintspray." + this.mColor + ".tooltip",
+ "Can Color things in " + Dyes.get(this.mColor).mName);
+ }
+
+ public Behaviour_Spray_Color(ItemStack aEmpty, ItemStack aUsed, ItemStack aFull, long aUses) {
+ this.mEmpty = aEmpty;
+ this.mUsed = aUsed;
+ this.mFull = aFull;
+ this.mUses = aUses;
+ this.mColor = 0;
+ mTooltip = "";
+ }
+
+ @Override
+ public boolean onItemUseFirst(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX,
+ int aY, int aZ, ForgeDirection side, float hitX, float hitY, float hitZ) {
+ if ((aWorld.isRemote) || (aStack.stackSize != 1)) {
+ return false;
+ }
+ boolean rOutput = false;
+ if (!aPlayer.canPlayerEdit(aX, aY, aZ, side.ordinal(), aStack)) {
+ return false;
+ }
+ NBTTagCompound tNBT = aStack.getTagCompound();
+ if (tNBT == null) {
+ tNBT = new NBTTagCompound();
+ }
+ long tUses = tNBT.getLong("GT.RemainingPaint");
+ if (GT_Utility.areStacksEqual(aStack, this.mFull, true)) {
+ aStack.func_150996_a(this.mUsed.getItem());
+ Items.feather.setDamage(aStack, Items.feather.getDamage(this.mUsed));
+ tUses = this.mUses;
+ }
+ int painted = 0;
+ int maxPainted = ConfigGeneral.sprayCanChainRange;
+ ForgeDirection lookSide;
+ Vec3 look = aPlayer.getLookVec();
+ double absX = Math.abs(look.xCoord);
+ double absY = Math.abs(look.yCoord);
+ double absZ = Math.abs(look.zCoord);
+ if (absX > absY && absX > absZ) {
+ lookSide = look.xCoord > 0 ? ForgeDirection.EAST : ForgeDirection.WEST;
+ } else if (absY > absX && absY > absZ) {
+ lookSide = look.yCoord > 0 ? ForgeDirection.UP : ForgeDirection.DOWN;
+ } else {
+ lookSide = look.zCoord > 0 ? ForgeDirection.SOUTH : ForgeDirection.NORTH;
+ }
+ Block initialBlock = aWorld.getBlock(aX, aY, aZ);
+ int initialBlockMeta = aWorld.getBlockMetadata(aX, aY, aZ);
+ TileEntity initialTE = aWorld.getTileEntity(aX, aY, aZ);
+ while ((GT_Utility.areStacksEqual(aStack, this.mUsed, true)) && (colorize(aWorld, aX, aY, aZ, side, aPlayer))) {
+ GT_Utility.sendSoundToPlayers(aWorld, SoundResource.IC2_TOOLS_PAINTER, 1.0F, 1.0F, aX, aY, aZ);
+ if (!aPlayer.capabilities.isCreativeMode) {
+ tUses -= 1L;
+ }
+ rOutput = true;
+ painted++;
+ if (painted >= maxPainted && maxPainted != -1) break;
+ if (!aPlayer.isSneaking() || tUses <= 0) break;
+ switch (lookSide) {
+ case UP -> aY += 1;
+ case DOWN -> aY -= 1;
+ case NORTH -> aZ -= 1;
+ case SOUTH -> aZ += 1;
+ case WEST -> aX -= 1;
+ case EAST -> aX += 1;
+ default -> throw new IllegalArgumentException("Unexpected value: " + lookSide);
+ }
+
+ if (aWorld.getBlock(aX, aY, aZ) != initialBlock) break;
+ if (aWorld.getBlockMetadata(aX, aY, aZ) != initialBlockMeta) break;
+
+ /*
+ * Check if the initial block had a TE and if the next one does, check if its the same kind.
+ * else one does and the other doesnt, thus stop checking.
+ */
+ TileEntity targetTE = aWorld.getTileEntity(aX, aY, aZ);
+ if (initialTE == null ^ targetTE == null) break;
+ if (initialTE != null && targetTE != null) {
+ if (!initialTE.getClass()
+ .isInstance(targetTE)) break;
+
+ if (initialTE instanceof IGregTechTileEntity currentGTTile
+ && targetTE instanceof IGregTechTileEntity targetGTTile) {
+ if (currentGTTile.getMetaTileID() != targetGTTile.getMetaTileID()) break;
+ }
+ }
+ }
+ tNBT.removeTag("GT.RemainingPaint");
+ if (tUses > 0L) {
+ tNBT.setLong("GT.RemainingPaint", tUses);
+ }
+ if (tNBT.hasNoTags()) {
+ aStack.setTagCompound(null);
+ } else {
+ aStack.setTagCompound(tNBT);
+ }
+ if (tUses <= 0L) {
+ if (this.mEmpty == null) {
+ aStack.stackSize -= 1;
+ } else {
+ aStack.func_150996_a(this.mEmpty.getItem());
+ Items.feather.setDamage(aStack, Items.feather.getDamage(this.mEmpty));
+ }
+ }
+ return rOutput;
+ }
+
+ protected boolean colorize(World aWorld, int aX, int aY, int aZ, ForgeDirection side, EntityPlayer player) {
+ final Block aBlock = aWorld.getBlock(aX, aY, aZ);
+ if (aBlock != Blocks.air) {
+ if (this.mAllowedVanillaBlocks.contains(aBlock) || aBlock instanceof BlockColored) {
+ if (aBlock == Blocks.hardened_clay) {
+ aWorld.setBlock(aX, aY, aZ, Blocks.stained_hardened_clay, (~this.mColor) & 0xF, 3);
+ return true;
+ }
+ if (aBlock == Blocks.glass_pane) {
+ aWorld.setBlock(aX, aY, aZ, Blocks.stained_glass_pane, (~this.mColor) & 0xF, 3);
+ return true;
+ }
+ if (aBlock == Blocks.glass) {
+ aWorld.setBlock(aX, aY, aZ, Blocks.stained_glass, (~this.mColor) & 0xF, 3);
+ return true;
+ }
+ if (aWorld.getBlockMetadata(aX, aY, aZ) == ((~this.mColor) & 0xF)) {
+ return false;
+ }
+ aWorld.setBlockMetadataWithNotify(aX, aY, aZ, (~this.mColor) & 0xF, 3);
+ return true;
+ }
+
+ if (aBlock instanceof IColorableTile) {
+ return ((IColorableTile) aBlock).recolourBlock(side, AEColor.values()[(~this.mColor) & 0xF], player);
+ }
+
+ if (aBlock instanceof BlockCableBus) {
+ return ((BlockCableBus) aBlock).recolourBlock(aWorld, aX, aY, aZ, side, (~this.mColor) & 0xF, player);
+ }
+ }
+ return aBlock.recolourBlock(aWorld, aX, aY, aZ, side, (~this.mColor) & 0xF);
+ }
+
+ @Override
+ public List<String> getAdditionalToolTips(GT_MetaBase_Item aItem, List<String> aList, ItemStack aStack) {
+ aList.add(this.mTooltip);
+ aList.add(this.mTooltipChain);
+ aList.add(String.format(this.mTooltipChainAmount, ConfigGeneral.sprayCanChainRange));
+ NBTTagCompound tNBT = aStack.getTagCompound();
+ long tRemainingPaint = tNBT == null ? this.mUses
+ : GT_Utility.areStacksEqual(aStack, this.mFull, true) ? this.mUses : tNBT.getLong("GT.RemainingPaint");
+ aList.add(this.mTooltipUses + " " + tRemainingPaint);
+ aList.add(this.mTooltipUnstackable);
+ return aList;
+ }
+}
diff --git a/src/main/java/gregtech/common/items/behaviors/Behaviour_Spray_Color_Remover.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_Spray_Color_Remover.java
new file mode 100644
index 0000000000..0b73b4f7fc
--- /dev/null
+++ b/src/main/java/gregtech/common/items/behaviors/Behaviour_Spray_Color_Remover.java
@@ -0,0 +1,48 @@
+package gregtech.common.items.behaviors;
+
+import net.minecraft.block.Block;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.init.Blocks;
+import net.minecraft.item.ItemStack;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.world.World;
+import net.minecraftforge.common.util.ForgeDirection;
+
+import appeng.api.implementations.tiles.IColorableTile;
+import appeng.api.util.AEColor;
+import appeng.block.networking.BlockCableBus;
+import gregtech.api.interfaces.tileentity.IColoredTileEntity;
+import gregtech.api.util.GT_LanguageManager;
+
+public class Behaviour_Spray_Color_Remover extends Behaviour_Spray_Color {
+
+ public Behaviour_Spray_Color_Remover(ItemStack aEmpty, ItemStack aUsed, ItemStack aFull, long aUses) {
+ super(aEmpty, aUsed, aFull, aUses);
+ this.mTooltip = GT_LanguageManager
+ .addStringLocalization("gt.behaviour.paintspray.solvent.tooltip", "Can remove paint from things");
+ }
+
+ @Override
+ protected boolean colorize(World aWorld, int aX, int aY, int aZ, ForgeDirection side, EntityPlayer player) {
+ final Block aBlock = aWorld.getBlock(aX, aY, aZ);
+ if (aBlock != Blocks.air) {
+ if (aBlock instanceof IColorableTile) {
+ return ((IColorableTile) aBlock).recolourBlock(side, AEColor.Transparent, player);
+ }
+
+ if (aBlock instanceof BlockCableBus) {
+ return ((BlockCableBus) aBlock)
+ .recolourBlock(aWorld, aX, aY, aZ, side, AEColor.Transparent.ordinal(), player);
+ }
+
+ TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ);
+ if (tTileEntity instanceof IColoredTileEntity gte) {
+ if (gte.getColorization() >= 0) {
+ gte.setColorization((byte) -1);
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+}
diff --git a/src/main/java/gregtech/common/items/behaviors/Behaviour_Switch_Metadata.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_Switch_Metadata.java
new file mode 100644
index 0000000000..03cf29b9dd
--- /dev/null
+++ b/src/main/java/gregtech/common/items/behaviors/Behaviour_Switch_Metadata.java
@@ -0,0 +1,67 @@
+package gregtech.common.items.behaviors;
+
+import java.util.List;
+
+import net.minecraft.block.Block;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.init.Blocks;
+import net.minecraft.init.Items;
+import net.minecraft.item.ItemStack;
+import net.minecraft.world.World;
+import net.minecraftforge.common.util.ForgeDirection;
+
+import gregtech.api.items.GT_Generic_Block;
+import gregtech.api.items.GT_MetaBase_Item;
+import gregtech.api.util.GT_Util;
+import gregtech.api.util.GT_Utility;
+
+public class Behaviour_Switch_Metadata extends Behaviour_None {
+
+ public final int mSwitchIndex;
+ public final boolean mCheckTarget, mShowModeSwitchTooltip;
+
+ public Behaviour_Switch_Metadata(int aSwitchIndex) {
+ this(aSwitchIndex, false);
+ }
+
+ public Behaviour_Switch_Metadata(int aSwitchIndex, boolean aCheckTarget) {
+ this(aSwitchIndex, aCheckTarget, false);
+ }
+
+ public Behaviour_Switch_Metadata(int aSwitchIndex, boolean aCheckTarget, boolean aShowModeSwitchTooltip) {
+ mSwitchIndex = aSwitchIndex;
+ mCheckTarget = aCheckTarget;
+ mShowModeSwitchTooltip = aShowModeSwitchTooltip;
+ }
+
+ @Override
+ public List<String> getAdditionalToolTips(GT_MetaBase_Item aItem, List<String> aList, ItemStack aStack) {
+ if (mShowModeSwitchTooltip) aList.add(GT_Utility.trans("330", "Sneak Rightclick to switch Mode"));
+ return aList;
+ }
+
+ @Override
+ public boolean onItemUseFirst(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX,
+ int aY, int aZ, ForgeDirection side, float aHitX, float aHitY, float aHitZ) {
+ if (aStack != null && (aPlayer == null || aPlayer.isSneaking()) && !aWorld.isRemote) {
+ if (mCheckTarget) {
+ Block aBlock = aWorld.blockExists(aX, aY, aZ) ? aWorld.getBlock(aX, aY, aZ) : Blocks.air;
+ if (aBlock instanceof GT_Generic_Block) {
+ Items.feather.setDamage(aStack, (short) mSwitchIndex);
+ GT_Utility.updateItemStack(aStack);
+ return true;
+ }
+ if (GT_Util.getTileEntity(aWorld, aX, aY, aZ, true) == null) {
+ Items.feather.setDamage(aStack, (short) mSwitchIndex);
+ GT_Utility.updateItemStack(aStack);
+ return true;
+ }
+ return false;
+ }
+ Items.feather.setDamage(aStack, (short) mSwitchIndex);
+ GT_Utility.updateItemStack(aStack);
+ return true;
+ }
+ return false;
+ }
+}
diff --git a/src/main/java/gregtech/common/items/behaviors/Behaviour_Switch_Mode.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_Switch_Mode.java
new file mode 100644
index 0000000000..4054377568
--- /dev/null
+++ b/src/main/java/gregtech/common/items/behaviors/Behaviour_Switch_Mode.java
@@ -0,0 +1,53 @@
+package gregtech.common.items.behaviors;
+
+import java.util.List;
+
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.MovingObjectPosition;
+import net.minecraft.world.World;
+
+import gregtech.api.enums.GT_Values;
+import gregtech.api.items.GT_MetaBase_Item;
+import gregtech.api.items.GT_MetaGenerated_Tool;
+import gregtech.api.net.GT_Packet_ToolSwitchMode;
+import gregtech.api.util.GT_Utility;
+
+public class Behaviour_Switch_Mode extends Behaviour_None {
+
+ public Behaviour_Switch_Mode() {}
+
+ @Override
+ public ItemStack onItemRightClick(GT_MetaBase_Item aItem, ItemStack aStack, World aWorld, EntityPlayer aPlayer) {
+ if (aStack != null && (aPlayer == null || aPlayer.isSneaking()) && aWorld.isRemote) {
+
+ GT_MetaGenerated_Tool itemTool = (GT_MetaGenerated_Tool) aItem;
+ final byte maxMode = itemTool.getToolMaxMode(aStack);
+ if (maxMode == 1) {
+ return aStack;
+ }
+
+ MovingObjectPosition mop = GT_Utility.getPlayerLookingTarget(aPlayer);
+ if (mop == null) {
+ GT_Values.NW.sendToServer(new GT_Packet_ToolSwitchMode());
+ }
+ return aStack;
+ }
+ return aStack;
+ }
+
+ @Override
+ public List<String> getAdditionalToolTips(GT_MetaBase_Item aItem, List<String> aList, ItemStack aStack) {
+ super.getAdditionalToolTips(aItem, aList, aStack);
+ if ((aItem instanceof GT_MetaGenerated_Tool)) {
+ GT_MetaGenerated_Tool itemTool = (GT_MetaGenerated_Tool) aItem;
+ final int maxMode = itemTool.getToolMaxMode(aStack);
+ if (maxMode > 1) {
+ aList.add("Shift+Rclick to change mode");
+ }
+ }
+
+ return aList;
+ }
+
+}
diff --git a/src/main/java/gregtech/common/items/behaviors/Behaviour_Wrench.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_Wrench.java
new file mode 100644
index 0000000000..16c5c3f948
--- /dev/null
+++ b/src/main/java/gregtech/common/items/behaviors/Behaviour_Wrench.java
@@ -0,0 +1,278 @@
+package gregtech.common.items.behaviors;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.function.BooleanSupplier;
+
+import net.minecraft.block.Block;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.init.Blocks;
+import net.minecraft.item.ItemStack;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.world.World;
+import net.minecraftforge.common.util.ForgeDirection;
+import net.minecraftforge.oredict.OreDictionary;
+
+import appeng.api.parts.IPartHost;
+import appeng.api.util.IOrientable;
+import appeng.tile.misc.TileInterface;
+import gregtech.api.enums.SoundResource;
+import gregtech.api.items.GT_MetaBase_Item;
+import gregtech.api.items.GT_MetaGenerated_Tool;
+import gregtech.api.util.GT_LanguageManager;
+import gregtech.api.util.GT_Utility;
+import ic2.api.tile.IWrenchable;
+
+public class Behaviour_Wrench extends Behaviour_None {
+
+ private final int mCosts;
+ private final String mTooltip = GT_LanguageManager
+ .addStringLocalization("gt.behaviour.wrench", "Rotates Blocks on Rightclick");
+
+ public Behaviour_Wrench(int aCosts) {
+ this.mCosts = aCosts;
+ }
+
+ @Override
+ public boolean onItemUseFirst(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX,
+ int aY, int aZ, ForgeDirection side, float hitX, float hitY, float hitZ) {
+ final Block aBlock = aWorld.getBlock(aX, aY, aZ);
+ if (aBlock == null) {
+ return false;
+ }
+ final int aMeta = aWorld.getBlockMetadata(aX, aY, aZ);
+ final short targetSideOrdinal = (short) GT_Utility.determineWrenchingSide(side, hitX, hitY, hitZ)
+ .ordinal();
+ final TileEntity aTileEntity = aWorld.getTileEntity(aX, aY, aZ);
+
+ final WrenchHandler handler = new WrenchHandler(
+ aBlock,
+ aMeta,
+ targetSideOrdinal,
+ aTileEntity,
+ aPlayer,
+ aWorld,
+ aX,
+ aY,
+ aZ,
+ aStack,
+ (GT_MetaGenerated_Tool) aItem,
+ mCosts);
+
+ try {
+ return handler.handle() && !aWorld.isRemote;
+ } catch (Throwable ignored) {}
+ return false;
+ }
+
+ /**
+ * <p>
+ * A class to simplify wrenching operation,
+ * stopping "checking creative", "trying to damage tool",
+ * "doing the logic" and "playing sound" again and again.
+ * This should have been a record, but it's not available in Java 8.
+ * </p>
+ * <p>
+ * {@link WrenchHandler#handle()} is the entry point of main logic.
+ * </p>
+ */
+ private static class WrenchHandler {
+
+ boolean handle() {
+ ForgeDirection direction = ForgeDirection.getOrientation(targetSideOrdinal);
+
+ // AE2 logic
+ // default to change the up facing
+ // sneak to change the forward facing
+ if (tileEntity instanceof IOrientable orientable) {
+ if (!orientable.canBeRotated()) return false;
+ ForgeDirection front = orientable.getForward();
+ ForgeDirection up = orientable.getUp();
+
+ // mainly for me-interfaces, whose initial orientation is UNKNOWN
+ if (front == ForgeDirection.UNKNOWN) {
+ if (direction == ForgeDirection.UP || direction == ForgeDirection.DOWN)
+ front = ForgeDirection.NORTH;
+ else front = ForgeDirection.UP;
+ }
+
+ ForgeDirection back = front.getOpposite();
+ ForgeDirection down = up.getOpposite();
+
+ if (tileEntity instanceof TileInterface) {
+ if (player.isSneaking()) return false;
+ if (direction == down) {
+ return doWrenchOperation(costs, () -> {
+ orientable.setOrientation(ForgeDirection.UNKNOWN, ForgeDirection.UNKNOWN);
+ return true;
+ });
+ }
+ // interface's up-side is opposite to the arrow on texture
+ // make it intuitive by rotating it to the opposite side.
+ direction = direction.getOpposite();
+ up = up.getOpposite();
+ } else if (direction == up || direction == front) {
+ // rotate around the direction axis
+ final var tempFront = front;
+ final var tempUp = up;
+ if (!player.isSneaking() && direction == up) return doWrenchOperation(costs, () -> {
+ orientable.setOrientation(tempFront.getRotation(tempUp), tempUp);
+ return true;
+ });
+ if (player.isSneaking() && direction == front) return doWrenchOperation(costs, () -> {
+ orientable.setOrientation(
+ tempFront,
+ tempUp.getRotation(tempFront)
+ .getRotation(tempFront));
+ return true;
+ });
+ }
+
+ if (player.isSneaking()) {
+ if (direction == up || direction == down) {
+ orientable.setOrientation(direction, down.getRotation(front.getRotation(direction)));
+ } else orientable.setOrientation(direction, up);
+ } else {
+ if (direction == front || direction == back) {
+ orientable.setOrientation(back.getRotation(up.getRotation(direction)), direction);
+ } else orientable.setOrientation(front, direction);
+ }
+
+ return damageWrench(costs);
+ }
+ if (world.isRemote) return false;
+ // IC2 Wrenchable
+ if (tileEntity instanceof IWrenchable wrenchable) {
+ if (wrenchable.wrenchCanSetFacing(player, targetSideOrdinal)) {
+ return doWrenchOperation(costs, () -> {
+ wrenchable.setFacing(targetSideOrdinal);
+ return true;
+ });
+ }
+ return false;
+ }
+
+ if (block == Blocks.powered_repeater || block == Blocks.unpowered_repeater
+ || block == Blocks.powered_comparator
+ || block == Blocks.unpowered_comparator) return setBlockMeta(costs, meta / 4 * 4 + (meta % 4 + 1) % 4);
+
+ // hopper cannot face sky
+ if (block == Blocks.hopper && targetSideOrdinal != 1) return setBlockMeta(costs, targetSideOrdinal);
+
+ if (isVanillaAllSideRotatable(block)) if (meta < 6) return setBlockMeta(costs, targetSideOrdinal);
+
+ // blocks like chests and furnaces have only four directions
+ if (isVanillaCantFaceAxisY(block)) {
+ if (targetSideOrdinal > 1) return setBlockMeta(costs, targetSideOrdinal);
+ else return false;
+ }
+ if (tileEntity instanceof IPartHost) return false;
+
+ final int logWoodId = OreDictionary.getOreID("logWood");
+ if (Arrays.stream(OreDictionary.getOreIDs(new ItemStack(block)))
+ .anyMatch(id -> id == logWoodId)) {
+ // The meta just work
+ return setBlockMeta(costs, (meta + 4) % 12);
+ }
+
+ // vanilla block rotate logic
+ if ((Arrays.asList(block.getValidRotations(world, x, y, z))
+ .contains(direction))) return rotateBlock(costs, direction);
+ return false;
+
+ // GT blocks' rotations are done by blocks themselves after this returning false
+ }
+
+ private final Block block;
+ private final short targetSideOrdinal;
+ private final TileEntity tileEntity;
+ private final EntityPlayer player;
+ private final World world;
+ private final int x, y, z, meta;
+ private final ItemStack stack;
+
+ private final GT_MetaGenerated_Tool item;
+ private final int costs;
+
+ public WrenchHandler(Block block, int meta, short targetSideOrdinal, TileEntity tileEntity, EntityPlayer player,
+ World world, int x, int y, int z, ItemStack stack, GT_MetaGenerated_Tool item, int costs) {
+ this.block = block;
+ this.meta = meta;
+ this.targetSideOrdinal = targetSideOrdinal;
+ this.tileEntity = tileEntity;
+ this.player = player;
+ this.world = world;
+ this.x = x;
+ this.y = y;
+ this.z = z;
+ this.stack = stack;
+ this.item = item;
+ this.costs = costs;
+ }
+
+ /**
+ * this will run the operation, damage the tool and play the sound if possible (creative mode or
+ * {@link GT_MetaGenerated_Tool#canWrench(EntityPlayer, int, int, int)})
+ *
+ * @param damage damage to be applied to the wrench
+ * @param operation the real operation of the click
+ * @return true if the operation was successful
+ * @see #setBlockMeta(int, int)
+ * @see #rotateBlock(int, ForgeDirection)
+ * @see #rotateBlock(int, ForgeDirection)
+ */
+ boolean doWrenchOperation(int damage, BooleanSupplier operation) {
+ if (player.capabilities.isCreativeMode || item.canWrench(player, x, y, z)) {
+ if (operation.getAsBoolean()) {
+ item.doDamage(stack, damage);
+ GT_Utility.sendSoundToPlayers(world, SoundResource.IC2_TOOLS_WRENCH, 1.0F, -1.0F, x, y, z);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ boolean setBlockMeta(int damage, int newMeta) {
+ return doWrenchOperation(damage, () -> setBlockMetadataWithNotify(newMeta));
+ }
+
+ boolean rotateBlock(int damage, ForgeDirection direction) {
+ return doWrenchOperation(damage, () -> block.rotateBlock(world, x, y, z, direction));
+ }
+
+ boolean damageWrench(int damage) {
+ return doWrenchOperation(damage, () -> true);
+ }
+
+ private boolean setBlockMetadataWithNotify(int newMeta) {
+ return world.setBlockMetadataWithNotify(x, y, z, newMeta, 3);
+ }
+
+ }
+
+ public static boolean isVanillaRotatable(Block block) {
+ return isVanillaCantFaceAxisY(block) || isVanillaAllSideRotatable(block) || block == Blocks.hopper;
+ }
+
+ public static boolean isVanillaCantFaceAxisY(Block block) {
+ return GT_Utility.arrayContains(
+ block,
+ Blocks.pumpkin,
+ Blocks.lit_pumpkin,
+ Blocks.furnace,
+ Blocks.lit_furnace,
+ Blocks.chest,
+ Blocks.trapped_chest,
+ Blocks.ender_chest);
+ }
+
+ public static boolean isVanillaAllSideRotatable(Block block) {
+ return GT_Utility.arrayContains(block, Blocks.piston, Blocks.sticky_piston, Blocks.dispenser, Blocks.dropper);
+ }
+
+ @Override
+ public List<String> getAdditionalToolTips(GT_MetaBase_Item aItem, List<String> aList, ItemStack aStack) {
+ aList.add(this.mTooltip);
+ return aList;
+ }
+}
diff --git a/src/main/java/gregtech/common/items/behaviors/Behaviour_WrittenBook.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_WrittenBook.java
new file mode 100644
index 0000000000..0f645a93a9
--- /dev/null
+++ b/src/main/java/gregtech/common/items/behaviors/Behaviour_WrittenBook.java
@@ -0,0 +1,40 @@
+package gregtech.common.items.behaviors;
+
+import java.util.List;
+
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.entity.EntityPlayerSP;
+import net.minecraft.client.gui.GuiScreenBook;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.world.World;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import gregtech.api.items.GT_MetaBase_Item;
+import gregtech.api.util.GT_Utility;
+
+public class Behaviour_WrittenBook extends Behaviour_None {
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public boolean onItemUse(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX,
+ int aY, int aZ, int ordinalSide, float hitX, float hitY, float hitZ) {
+ if ((GT_Utility.isStringValid(GT_Utility.ItemNBT.getBookTitle(aStack)))
+ && ((aPlayer instanceof EntityPlayerSP))) {
+ Minecraft.getMinecraft()
+ .displayGuiScreen(new GuiScreenBook(aPlayer, aStack, false));
+ }
+ return true;
+ }
+
+ @Override
+ public List<String> getAdditionalToolTips(GT_MetaBase_Item aItem, List<String> aList, ItemStack aStack) {
+ String tTitle = GT_Utility.ItemNBT.getBookTitle(aStack);
+ if (GT_Utility.isStringValid(tTitle)) {
+ aList.add(tTitle);
+ aList.add("by " + GT_Utility.ItemNBT.getBookAuthor(aStack));
+ }
+ return aList;
+ }
+}