Search in sources :

Example 1 with MarkerMaterial

use of gregtech.api.unification.material.MarkerMaterial in project GregTech by GregTechCEu.

the class ModHandler method getRecyclingIngredients.

public static ItemMaterialInfo getRecyclingIngredients(int outputCount, Object... recipe) {
    Map<Character, Integer> inputCountMap = new HashMap<>();
    Map<Material, Long> materialStacksExploded = new HashMap<>();
    int itr = 0;
    while (recipe[itr] instanceof String) {
        String s = (String) recipe[itr];
        for (char c : s.toCharArray()) {
            // skip tools
            if (getToolNameByCharacter(c) != null)
                continue;
            int count = inputCountMap.getOrDefault(c, 0);
            inputCountMap.put(c, count + 1);
        }
        itr++;
    }
    char lastChar = ' ';
    for (int i = itr; i < recipe.length; i++) {
        Object ingredient = recipe[i];
        // Track the current working ingredient symbol
        if (ingredient instanceof Character) {
            lastChar = (char) ingredient;
            continue;
        }
        // by an earlier method call parsing the recipe.
        if (lastChar == ' ')
            return null;
        ItemStack stack;
        if (ingredient instanceof MetaItem.MetaValueItem) {
            stack = ((MetaItem<?>.MetaValueItem) ingredient).getStackForm();
        } else if (ingredient instanceof UnificationEntry) {
            stack = OreDictUnifier.get((UnificationEntry) ingredient);
        } else if (ingredient instanceof ItemStack) {
            stack = (ItemStack) ingredient;
        } else if (ingredient instanceof Item) {
            stack = new ItemStack((Item) ingredient, 1);
        } else if (ingredient instanceof Block) {
            stack = new ItemStack((Block) ingredient, 1);
        } else if (ingredient instanceof String) {
            stack = OreDictUnifier.get((String) ingredient);
        } else
            // throw out bad entries
            continue;
        BiConsumer<MaterialStack, Character> func = (ms, c) -> {
            long amount = materialStacksExploded.getOrDefault(ms.material, 0L);
            materialStacksExploded.put(ms.material, (ms.amount * inputCountMap.get(c)) + amount);
        };
        // First try to get ItemMaterialInfo
        ItemMaterialInfo info = OreDictUnifier.getMaterialInfo(stack);
        if (info != null) {
            for (MaterialStack ms : info.getMaterials()) {
                if (!(ms.material instanceof MarkerMaterial))
                    func.accept(ms, lastChar);
            }
            continue;
        }
        // Then try to get a single Material (UnificationEntry needs this, for example)
        MaterialStack materialStack = OreDictUnifier.getMaterial(stack);
        if (materialStack != null && !(materialStack.material instanceof MarkerMaterial))
            func.accept(materialStack, lastChar);
        // Gather any secondary materials if this item has an OrePrefix
        OrePrefix prefix = OreDictUnifier.getPrefix(stack);
        if (prefix != null && !prefix.secondaryMaterials.isEmpty()) {
            for (MaterialStack ms : prefix.secondaryMaterials) {
                func.accept(ms, lastChar);
            }
        }
    }
    return new ItemMaterialInfo(materialStacksExploded.entrySet().stream().map(e -> new MaterialStack(e.getKey(), e.getValue() / outputCount)).sorted(Comparator.comparingLong(m -> -m.amount)).collect(Collectors.toList()));
}
Also used : Loader(net.minecraftforge.fml.common.Loader) ToolDictNames(gregtech.api.items.ToolDictNames) Item(net.minecraft.item.Item) FluidRegistry(net.minecraftforge.fluids.FluidRegistry) Materials(gregtech.api.unification.material.Materials) FurnaceRecipes(net.minecraft.item.crafting.FurnaceRecipes) TileEntityFurnace(net.minecraft.tileentity.TileEntityFurnace) ConfigHolder(gregtech.common.ConfigHolder) Block(net.minecraft.block.Block) Pair(org.apache.commons.lang3.tuple.Pair) MetaItem(gregtech.api.items.metaitem.MetaItem) ShapelessOreRecipe(net.minecraftforge.oredict.ShapelessOreRecipe) Fluid(net.minecraftforge.fluids.Fluid) NonNullList(net.minecraft.util.NonNullList) DummyRecipe(gregtech.api.recipes.recipes.DummyRecipe) Predicate(java.util.function.Predicate) PropertyKey(gregtech.api.unification.material.properties.PropertyKey) IForgeRegistry(net.minecraftforge.registries.IForgeRegistry) Collectors(java.util.stream.Collectors) MarkerMaterial(gregtech.api.unification.material.MarkerMaterial) FluidStack(net.minecraftforge.fluids.FluidStack) OreDictUnifier(gregtech.api.unification.OreDictUnifier) Ingredient(net.minecraft.item.crafting.Ingredient) java.util(java.util) ShapedOreEnergyTransferRecipe(gregtech.api.util.ShapedOreEnergyTransferRecipe) DummyContainer(gregtech.api.util.DummyContainer) UnificationEntry(gregtech.api.unification.stack.UnificationEntry) ShapedOreRecipe(net.minecraftforge.oredict.ShapedOreRecipe) ItemMaterialInfo(gregtech.api.unification.stack.ItemMaterialInfo) LocalizationUtils(gregtech.api.util.LocalizationUtils) ItemStack(net.minecraft.item.ItemStack) MCFurnaceManager(crafttweaker.mc1120.furnace.MCFurnaceManager) BiConsumer(java.util.function.BiConsumer) Material(gregtech.api.unification.material.Material) OrePrefix(gregtech.api.unification.ore.OrePrefix) CreativeTabs(net.minecraft.creativetab.CreativeTabs) Nonnull(javax.annotation.Nonnull) Nullable(javax.annotation.Nullable) ActionAddFurnaceRecipe(crafttweaker.mc1120.actions.ActionAddFurnaceRecipe) DummyWorld(gregtech.api.util.world.DummyWorld) IRecipe(net.minecraft.item.crafting.IRecipe) IFluidHandler(net.minecraftforge.fluids.capability.IFluidHandler) GTLog(gregtech.api.util.GTLog) World(net.minecraft.world.World) Field(java.lang.reflect.Field) ImmutablePair(org.apache.commons.lang3.tuple.ImmutablePair) MaterialStack(gregtech.api.unification.stack.MaterialStack) GTValues(gregtech.api.GTValues) CraftingManager(net.minecraft.item.crafting.CraftingManager) ForgeRegistries(net.minecraftforge.fml.common.registry.ForgeRegistries) ResourceLocation(net.minecraft.util.ResourceLocation) InventoryCrafting(net.minecraft.inventory.InventoryCrafting) MetaItem(gregtech.api.items.metaitem.MetaItem) UnificationEntry(gregtech.api.unification.stack.UnificationEntry) OrePrefix(gregtech.api.unification.ore.OrePrefix) MarkerMaterial(gregtech.api.unification.material.MarkerMaterial) Material(gregtech.api.unification.material.Material) MarkerMaterial(gregtech.api.unification.material.MarkerMaterial) Item(net.minecraft.item.Item) MetaItem(gregtech.api.items.metaitem.MetaItem) ItemMaterialInfo(gregtech.api.unification.stack.ItemMaterialInfo) MaterialStack(gregtech.api.unification.stack.MaterialStack) Block(net.minecraft.block.Block) ItemStack(net.minecraft.item.ItemStack)

Example 2 with MarkerMaterial

use of gregtech.api.unification.material.MarkerMaterial in project GregTech by GregTechCEu.

the class MetaItem1 method registerSubItems.

@Override
public void registerSubItems() {
    // Credits: ID 0-10
    CREDIT_COPPER = addItem(0, "credit.copper");
    CREDIT_CUPRONICKEL = addItem(1, "credit.cupronickel");
    CREDIT_SILVER = addItem(2, "credit.silver").setRarity(EnumRarity.UNCOMMON);
    CREDIT_GOLD = addItem(3, "credit.gold").setRarity(EnumRarity.UNCOMMON);
    CREDIT_PLATINUM = addItem(4, "credit.platinum").setRarity(EnumRarity.RARE);
    CREDIT_OSMIUM = addItem(5, "credit.osmium").setRarity(EnumRarity.RARE);
    CREDIT_NAQUADAH = addItem(6, "credit.naquadah").setRarity(EnumRarity.EPIC);
    CREDIT_NEUTRONIUM = addItem(7, "credit.neutronium").setRarity(EnumRarity.EPIC);
    COIN_GOLD_ANCIENT = addItem(8, "coin.gold.ancient").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Gold, M / 4))).setRarity(EnumRarity.RARE);
    COIN_DOGE = addItem(9, "coin.doge").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Brass, M / 4))).setRarity(EnumRarity.EPIC);
    COIN_CHOCOLATE = addItem(10, "coin.chocolate").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Gold, M / 4))).addComponents(new FoodStats(1, 0.1F, false, true, OreDictUnifier.get(OrePrefix.foil, Materials.Gold), new RandomPotionEffect(MobEffects.SPEED, 200, 1, 10)));
    // Solidifier Shapes: ID 11-30
    SHAPE_EMPTY = addItem(11, "shape.empty").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
    SHAPE_MOLDS[0] = SHAPE_MOLD_PLATE = addItem(12, "shape.mold.plate").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
    SHAPE_MOLDS[1] = SHAPE_MOLD_GEAR = addItem(13, "shape.mold.gear").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
    SHAPE_MOLDS[2] = SHAPE_MOLD_CREDIT = addItem(14, "shape.mold.credit").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
    SHAPE_MOLDS[3] = SHAPE_MOLD_BOTTLE = addItem(15, "shape.mold.bottle").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
    SHAPE_MOLDS[4] = SHAPE_MOLD_INGOT = addItem(16, "shape.mold.ingot").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
    SHAPE_MOLDS[5] = SHAPE_MOLD_BALL = addItem(17, "shape.mold.ball").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
    SHAPE_MOLDS[6] = SHAPE_MOLD_BLOCK = addItem(18, "shape.mold.block").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
    SHAPE_MOLDS[7] = SHAPE_MOLD_NUGGET = addItem(19, "shape.mold.nugget").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
    SHAPE_MOLDS[8] = SHAPE_MOLD_CYLINDER = addItem(20, "shape.mold.cylinder").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
    SHAPE_MOLDS[9] = SHAPE_MOLD_ANVIL = addItem(21, "shape.mold.anvil").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
    SHAPE_MOLDS[10] = SHAPE_MOLD_NAME = addItem(22, "shape.mold.name").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
    SHAPE_MOLDS[11] = SHAPE_MOLD_GEAR_SMALL = addItem(23, "shape.mold.gear.small").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
    SHAPE_MOLDS[12] = SHAPE_MOLD_ROTOR = addItem(24, "shape.mold.rotor").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
    // Extruder Shapes: ID 31-59
    SHAPE_EXTRUDERS[0] = SHAPE_EXTRUDER_PLATE = addItem(31, "shape.extruder.plate").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
    SHAPE_EXTRUDERS[1] = SHAPE_EXTRUDER_ROD = addItem(32, "shape.extruder.rod").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
    SHAPE_EXTRUDERS[2] = SHAPE_EXTRUDER_BOLT = addItem(33, "shape.extruder.bolt").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
    SHAPE_EXTRUDERS[3] = SHAPE_EXTRUDER_RING = addItem(34, "shape.extruder.ring").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
    SHAPE_EXTRUDERS[4] = SHAPE_EXTRUDER_CELL = addItem(35, "shape.extruder.cell").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
    SHAPE_EXTRUDERS[5] = SHAPE_EXTRUDER_INGOT = addItem(36, "shape.extruder.ingot").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
    SHAPE_EXTRUDERS[6] = SHAPE_EXTRUDER_WIRE = addItem(37, "shape.extruder.wire").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
    SHAPE_EXTRUDERS[7] = SHAPE_EXTRUDER_PIPE_TINY = addItem(38, "shape.extruder.pipe.tiny").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
    SHAPE_EXTRUDERS[8] = SHAPE_EXTRUDER_PIPE_SMALL = addItem(39, "shape.extruder.pipe.small").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
    SHAPE_EXTRUDERS[9] = SHAPE_EXTRUDER_PIPE_NORMAL = addItem(40, "shape.extruder.pipe.normal").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
    SHAPE_EXTRUDERS[10] = SHAPE_EXTRUDER_PIPE_LARGE = addItem(41, "shape.extruder.pipe.large").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
    SHAPE_EXTRUDERS[11] = SHAPE_EXTRUDER_PIPE_HUGE = addItem(42, "shape.extruder.pipe.huge").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
    SHAPE_EXTRUDERS[12] = SHAPE_EXTRUDER_BLOCK = addItem(43, "shape.extruder.block").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
    SHAPE_EXTRUDERS[13] = SHAPE_EXTRUDER_SWORD = addItem(44, "shape.extruder.sword").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
    SHAPE_EXTRUDERS[14] = SHAPE_EXTRUDER_PICKAXE = addItem(45, "shape.extruder.pickaxe").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
    SHAPE_EXTRUDERS[15] = SHAPE_EXTRUDER_SHOVEL = addItem(46, "shape.extruder.shovel").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
    SHAPE_EXTRUDERS[16] = SHAPE_EXTRUDER_AXE = addItem(47, "shape.extruder.axe").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
    SHAPE_EXTRUDERS[17] = SHAPE_EXTRUDER_HOE = addItem(48, "shape.extruder.hoe").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
    SHAPE_EXTRUDERS[18] = SHAPE_EXTRUDER_HAMMER = addItem(49, "shape.extruder.hammer").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
    SHAPE_EXTRUDERS[19] = SHAPE_EXTRUDER_FILE = addItem(50, "shape.extruder.file").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
    SHAPE_EXTRUDERS[20] = SHAPE_EXTRUDER_SAW = addItem(51, "shape.extruder.saw").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
    SHAPE_EXTRUDERS[21] = SHAPE_EXTRUDER_GEAR = addItem(52, "shape.extruder.gear").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
    SHAPE_EXTRUDERS[22] = SHAPE_EXTRUDER_BOTTLE = addItem(53, "shape.extruder.bottle").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
    SHAPE_EXTRUDERS[23] = SHAPE_EXTRUDER_FOIL = addItem(54, "shape.extruder.foil").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
    SHAPE_EXTRUDERS[24] = SHAPE_EXTRUDER_GEAR_SMALL = addItem(55, "shape.extruder.gear_small").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
    SHAPE_EXTRUDERS[25] = SHAPE_EXTRUDER_ROD_LONG = addItem(56, "shape.extruder.rod_long").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
    SHAPE_EXTRUDERS[26] = SHAPE_EXTRUDER_ROTOR = addItem(57, "shape.extruder.rotor").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
    // Spray Cans: ID 60-77
    SPRAY_EMPTY = addItem(61, "spray.empty").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Tin, M * 2), new MaterialStack(Materials.Redstone, M)));
    // out of registry order so it can reference the Empty Spray Can
    SPRAY_SOLVENT = addItem(60, "spray.solvent").setMaxStackSize(1).addComponents(new ColorSprayBehaviour(SPRAY_EMPTY.getStackForm(), 1024, -1));
    for (int i = 0; i < EnumDyeColor.values().length; i++) {
        SPRAY_CAN_DYES[i] = addItem(62 + i, "spray.can.dyes." + EnumDyeColor.values()[i].getName()).setMaxStackSize(1).addComponents(new ColorSprayBehaviour(SPRAY_EMPTY.getStackForm(), 512, i));
    }
    // Fluid Cells: ID 78-88
    FLUID_CELL = addItem(78, "fluid_cell").addComponents(new FluidStats(1000, Integer.MIN_VALUE, Integer.MAX_VALUE, false));
    FLUID_CELL_UNIVERSAL = addItem(79, "fluid_cell.universal").addComponents(new FluidStats(1000, Integer.MIN_VALUE, Integer.MAX_VALUE, true));
    FLUID_CELL_LARGE_STEEL = addItem(80, "large_fluid_cell.steel").addComponents(new FluidStats(8000, Integer.MIN_VALUE, Integer.MAX_VALUE, true)).setMaterialInfo(// ingot * 4
    new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
    FLUID_CELL_LARGE_ALUMINIUM = addItem(81, "large_fluid_cell.aluminium").addComponents(new FluidStats(32000, Integer.MIN_VALUE, Integer.MAX_VALUE, true)).setMaterialInfo(// ingot * 4
    new ItemMaterialInfo(new MaterialStack(Materials.Aluminium, M * 4)));
    FLUID_CELL_LARGE_STAINLESS_STEEL = addItem(82, "large_fluid_cell.stainless_steel").addComponents(new FluidStats(64000, Integer.MIN_VALUE, Integer.MAX_VALUE, true)).setMaterialInfo(// ingot * 6
    new ItemMaterialInfo(new MaterialStack(Materials.StainlessSteel, M * 6)));
    FLUID_CELL_LARGE_TITANIUM = addItem(83, "large_fluid_cell.titanium").addComponents(new FluidStats(128000, Integer.MIN_VALUE, Integer.MAX_VALUE, true)).setMaterialInfo(// ingot * 6
    new ItemMaterialInfo(new MaterialStack(Materials.Titanium, M * 6)));
    FLUID_CELL_LARGE_TUNGSTEN_STEEL = addItem(84, "large_fluid_cell.tungstensteel").addComponents(new FluidStats(512000, Integer.MIN_VALUE, Integer.MAX_VALUE, true)).setMaxStackSize(32).setMaterialInfo(// ingot * 8
    new ItemMaterialInfo(new MaterialStack(Materials.TungstenSteel, M * 8)));
    // Limited-Use Items: ID 89-95
    TOOL_MATCHES = addItem(89, "tool.matches").addComponents(new LighterBehaviour(1));
    TOOL_MATCHBOX = addItem(90, "tool.matchbox").addComponents(new LighterBehaviour(16)).setMaxStackSize(1);
    TOOL_LIGHTER_INVAR = addItem(91, "tool.lighter.invar").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Invar, M * 2))).addComponents(new LighterBehaviour(100)).setMaxStackSize(1);
    TOOL_LIGHTER_PLATINUM = addItem(92, "tool.lighter.platinum").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Platinum, M * 2))).addComponents(new LighterBehaviour(1000)).setMaxStackSize(1).setRarity(EnumRarity.UNCOMMON);
    BOTTLE_PURPLE_DRINK = addItem(93, "bottle.purple.drink").addComponents(new FoodStats(8, 0.2F, true, true, new ItemStack(Items.GLASS_BOTTLE), new RandomPotionEffect(MobEffects.HASTE, 800, 1, 90)));
    // Voltage Coils: ID 96-110
    VOLTAGE_COIL_ULV = addItem(96, "voltage_coil.ulv").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Lead, M * 2), new MaterialStack(Materials.IronMagnetic, M / 2)));
    VOLTAGE_COIL_LV = addItem(97, "voltage_coil.lv").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 2), new MaterialStack(Materials.IronMagnetic, M / 2)));
    VOLTAGE_COIL_MV = addItem(98, "voltage_coil.mv").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Aluminium, M * 2), new MaterialStack(Materials.SteelMagnetic, M / 2)));
    VOLTAGE_COIL_HV = addItem(99, "voltage_coil.hv").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.BlackSteel, M * 2), new MaterialStack(Materials.SteelMagnetic, M / 2)));
    VOLTAGE_COIL_EV = addItem(100, "voltage_coil.ev").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.TungstenSteel, M * 2), new MaterialStack(Materials.NeodymiumMagnetic, M / 2)));
    VOLTAGE_COIL_IV = addItem(101, "voltage_coil.iv").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Iridium, M * 2), new MaterialStack(Materials.NeodymiumMagnetic, M / 2)));
    VOLTAGE_COIL_LuV = addItem(102, "voltage_coil.luv").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Osmiridium, M * 2), new MaterialStack(Materials.SamariumMagnetic, M / 2)));
    VOLTAGE_COIL_ZPM = addItem(103, "voltage_coil.zpm").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Europium, M * 2), new MaterialStack(Materials.SamariumMagnetic, M / 2)));
    VOLTAGE_COIL_UV = addItem(104, "voltage_coil.uv").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Tritanium, M * 2), new MaterialStack(Materials.SamariumMagnetic, M / 2)));
    // ???: ID 111-125
    // Motors: ID 126-140
    ELECTRIC_MOTOR_LV = addItem(127, "electric.motor.lv");
    ELECTRIC_MOTOR_MV = addItem(128, "electric.motor.mv");
    ELECTRIC_MOTOR_HV = addItem(129, "electric.motor.hv");
    ELECTRIC_MOTOR_EV = addItem(130, "electric.motor.ev");
    ELECTRIC_MOTOR_IV = addItem(131, "electric.motor.iv");
    ELECTRIC_MOTOR_LuV = addItem(132, "electric.motor.luv");
    ELECTRIC_MOTOR_ZPM = addItem(133, "electric.motor.zpm");
    ELECTRIC_MOTOR_UV = addItem(134, "electric.motor.uv");
    ELECTRIC_MOTOR_UHV = addItem(135, "electric.motor.uhv").setInvisible(GTValues.HT);
    ELECTRIC_MOTOR_UEV = addItem(136, "electric.motor.uev").setInvisible(GTValues.HT);
    ELECTRIC_MOTOR_UIV = addItem(137, "electric.motor.uiv").setInvisible(GTValues.HT);
    ELECTRIC_MOTOR_UXV = addItem(138, "electric.motor.uxv").setInvisible(GTValues.HT);
    ELECTRIC_MOTOR_OpV = addItem(139, "electric.motor.opv").setInvisible(GTValues.HT);
    // Pumps: ID 141-155
    ELECTRIC_PUMP_LV = addItem(142, "electric.pump.lv");
    ELECTRIC_PUMP_MV = addItem(143, "electric.pump.mv");
    ELECTRIC_PUMP_HV = addItem(144, "electric.pump.hv");
    ELECTRIC_PUMP_EV = addItem(145, "electric.pump.ev");
    ELECTRIC_PUMP_IV = addItem(146, "electric.pump.iv");
    ELECTRIC_PUMP_LuV = addItem(147, "electric.pump.luv");
    ELECTRIC_PUMP_ZPM = addItem(148, "electric.pump.zpm");
    ELECTRIC_PUMP_UV = addItem(149, "electric.pump.uv");
    ELECTRIC_PUMP_UHV = addItem(150, "electric.pump.uhv").setInvisible(GTValues.HT);
    ELECTRIC_PUMP_UEV = addItem(151, "electric.pump.uev").setInvisible(GTValues.HT);
    ELECTRIC_PUMP_UIV = addItem(152, "electric.pump.uiv").setInvisible(GTValues.HT);
    ELECTRIC_PUMP_UXV = addItem(153, "electric.pump.uxv").setInvisible(GTValues.HT);
    ELECTRIC_PUMP_OpV = addItem(154, "electric.pump.opv").setInvisible(GTValues.HT);
    // Conveyors: ID 156-170
    CONVEYOR_MODULE_LV = addItem(157, "conveyor.module.lv");
    CONVEYOR_MODULE_MV = addItem(158, "conveyor.module.mv");
    CONVEYOR_MODULE_HV = addItem(159, "conveyor.module.hv");
    CONVEYOR_MODULE_EV = addItem(160, "conveyor.module.ev");
    CONVEYOR_MODULE_IV = addItem(161, "conveyor.module.iv");
    CONVEYOR_MODULE_LuV = addItem(162, "conveyor.module.luv");
    CONVEYOR_MODULE_ZPM = addItem(163, "conveyor.module.zpm");
    CONVEYOR_MODULE_UV = addItem(164, "conveyor.module.uv");
    CONVEYOR_MODULE_UHV = addItem(165, "conveyor.module.uhv").setInvisible(GTValues.HT);
    CONVEYOR_MODULE_UEV = addItem(166, "conveyor.module.uev").setInvisible(GTValues.HT);
    CONVEYOR_MODULE_UIV = addItem(167, "conveyor.module.uiv").setInvisible(GTValues.HT);
    CONVEYOR_MODULE_UXV = addItem(168, "conveyor.module.uxv").setInvisible(GTValues.HT);
    CONVEYOR_MODULE_OpV = addItem(169, "conveyor.module.opv").setInvisible(GTValues.HT);
    // Pistons: ID 171-185
    ELECTRIC_PISTON_LV = addItem(172, "electric.piston.lv");
    ELECTRIC_PISTON_MV = addItem(173, "electric.piston.mv");
    ELECTRIC_PISTON_HV = addItem(174, "electric.piston.hv");
    ELECTRIC_PISTON_EV = addItem(175, "electric.piston.ev");
    ELECTRIC_PISTON_IV = addItem(176, "electric.piston.iv");
    ELECTRIC_PISTON_LUV = addItem(177, "electric.piston.luv");
    ELECTRIC_PISTON_ZPM = addItem(178, "electric.piston.zpm");
    ELECTRIC_PISTON_UV = addItem(179, "electric.piston.uv");
    ELECTRIC_PISTON_UHV = addItem(180, "electric.piston.uhv").setInvisible(GTValues.HT);
    ELECTRIC_PISTON_UEV = addItem(181, "electric.piston.uev").setInvisible(GTValues.HT);
    ELECTRIC_PISTON_UIV = addItem(182, "electric.piston.uiv").setInvisible(GTValues.HT);
    ELECTRIC_PISTON_UXV = addItem(183, "electric.piston.uxv").setInvisible(GTValues.HT);
    ELECTRIC_PISTON_OpV = addItem(184, "electric.piston.opv").setInvisible(GTValues.HT);
    // Robot Arms: ID 186-200
    ROBOT_ARM_LV = addItem(187, "robot.arm.lv");
    ROBOT_ARM_MV = addItem(188, "robot.arm.mv");
    ROBOT_ARM_HV = addItem(189, "robot.arm.hv");
    ROBOT_ARM_EV = addItem(190, "robot.arm.ev");
    ROBOT_ARM_IV = addItem(191, "robot.arm.iv");
    ROBOT_ARM_LuV = addItem(192, "robot.arm.luv");
    ROBOT_ARM_ZPM = addItem(193, "robot.arm.zpm");
    ROBOT_ARM_UV = addItem(194, "robot.arm.uv");
    ROBOT_ARM_UHV = addItem(195, "robot.arm.uhv").setInvisible(GTValues.HT);
    ROBOT_ARM_UEV = addItem(196, "robot.arm.uev").setInvisible(GTValues.HT);
    ROBOT_ARM_UIV = addItem(197, "robot.arm.uiv").setInvisible(GTValues.HT);
    ROBOT_ARM_UXV = addItem(198, "robot.arm.uxv").setInvisible(GTValues.HT);
    ROBOT_ARM_OpV = addItem(199, "robot.arm.opv").setInvisible(GTValues.HT);
    // Field Generators: ID 201-215
    FIELD_GENERATOR_LV = addItem(202, "field.generator.lv");
    FIELD_GENERATOR_MV = addItem(203, "field.generator.mv");
    FIELD_GENERATOR_HV = addItem(204, "field.generator.hv");
    FIELD_GENERATOR_EV = addItem(205, "field.generator.ev");
    FIELD_GENERATOR_IV = addItem(206, "field.generator.iv");
    FIELD_GENERATOR_LuV = addItem(207, "field.generator.luv");
    FIELD_GENERATOR_ZPM = addItem(208, "field.generator.zpm");
    FIELD_GENERATOR_UV = addItem(209, "field.generator.uv");
    FIELD_GENERATOR_UHV = addItem(210, "field.generator.uhv").setInvisible(GTValues.HT);
    FIELD_GENERATOR_UEV = addItem(211, "field.generator.uev").setInvisible(GTValues.HT);
    FIELD_GENERATOR_UIV = addItem(212, "field.generator.uiv").setInvisible(GTValues.HT);
    FIELD_GENERATOR_UXV = addItem(213, "field.generator.uxv").setInvisible(GTValues.HT);
    FIELD_GENERATOR_OpV = addItem(214, "field.generator.opv").setInvisible(GTValues.HT);
    // Emitters: ID 216-230
    EMITTER_LV = addItem(217, "emitter.lv");
    EMITTER_MV = addItem(218, "emitter.mv");
    EMITTER_HV = addItem(219, "emitter.hv");
    EMITTER_EV = addItem(220, "emitter.ev");
    EMITTER_IV = addItem(221, "emitter.iv");
    EMITTER_LuV = addItem(222, "emitter.luv");
    EMITTER_ZPM = addItem(223, "emitter.zpm");
    EMITTER_UV = addItem(224, "emitter.uv");
    EMITTER_UHV = addItem(225, "emitter.uhv").setInvisible(GTValues.HT);
    EMITTER_UEV = addItem(226, "emitter.uev").setInvisible(GTValues.HT);
    EMITTER_UIV = addItem(227, "emitter.uiv").setInvisible(GTValues.HT);
    EMITTER_UXV = addItem(228, "emitter.uxv").setInvisible(GTValues.HT);
    EMITTER_OpV = addItem(229, "emitter.opv").setInvisible(GTValues.HT);
    // Sensors: ID 231-245
    SENSOR_LV = addItem(232, "sensor.lv");
    SENSOR_MV = addItem(233, "sensor.mv");
    SENSOR_HV = addItem(234, "sensor.hv");
    SENSOR_EV = addItem(235, "sensor.ev");
    SENSOR_IV = addItem(236, "sensor.iv");
    SENSOR_LuV = addItem(237, "sensor.luv");
    SENSOR_ZPM = addItem(238, "sensor.zpm");
    SENSOR_UV = addItem(239, "sensor.uv");
    SENSOR_UHV = addItem(240, "sensor.uhv").setInvisible(GTValues.HT);
    SENSOR_UEV = addItem(241, "sensor.uev").setInvisible(GTValues.HT);
    SENSOR_UIV = addItem(242, "sensor.uiv").setInvisible(GTValues.HT);
    SENSOR_UXV = addItem(243, "sensor.uxv").setInvisible(GTValues.HT);
    SENSOR_OpV = addItem(244, "sensor.opv").setInvisible(GTValues.HT);
    // Fluid Regulators: ID 246-260
    FLUID_REGULATOR_LV = addItem(247, "fluid.regulator.lv");
    FLUID_REGULATOR_MV = addItem(248, "fluid.regulator.mv");
    FLUID_REGULATOR_HV = addItem(249, "fluid.regulator.hv");
    FLUID_REGULATOR_EV = addItem(250, "fluid.regulator.ev");
    FLUID_REGULATOR_IV = addItem(251, "fluid.regulator.iv");
    FLUID_REGULATOR_LUV = addItem(252, "fluid.regulator.luv");
    FLUID_REGULATOR_ZPM = addItem(253, "fluid.regulator.zpm");
    FLUID_REGULATOR_UV = addItem(254, "fluid.regulator.uv");
    // Data Items: ID 261-265
    TOOL_DATA_STICK = addItem(261, "tool.datastick");
    TOOL_DATA_ORB = addItem(262, "tool.dataorb");
    // Special Machine Components: ID 266-280
    COMPONENT_GRINDER_DIAMOND = addItem(266, "component.grinder.diamond").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 8), new MaterialStack(Materials.Diamond, M * 5)));
    COMPONENT_GRINDER_TUNGSTEN = addItem(267, "component.grinder.tungsten").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Tungsten, M * 4), new MaterialStack(Materials.VanadiumSteel, M * 8), new MaterialStack(Materials.Diamond, M)));
    // Special Eyes/Stars: ID 281-289
    QUANTUM_EYE = addItem(281, "quantumeye");
    QUANTUM_STAR = addItem(282, "quantumstar");
    GRAVI_STAR = addItem(283, "gravistar");
    // Filters: ID 290-300
    FLUID_FILTER = addItem(290, "fluid_filter");
    ITEM_FILTER = addItem(291, "item_filter");
    ORE_DICTIONARY_FILTER = addItem(292, "ore_dictionary_filter");
    SMART_FILTER = addItem(293, "smart_item_filter");
    // Functional Covers: ID 301-330
    COVER_MACHINE_CONTROLLER = addItem(301, "cover.controller");
    COVER_ACTIVITY_DETECTOR = addItem(302, "cover.activity.detector");
    COVER_ACTIVITY_DETECTOR_ADVANCED = addItem(303, "cover.activity.detector_advanced");
    COVER_FLUID_DETECTOR = addItem(304, "cover.fluid.detector");
    COVER_ITEM_DETECTOR = addItem(305, "cover.item.detector");
    COVER_ENERGY_DETECTOR = addItem(306, "cover.energy.detector");
    COVER_SCREEN = addItem(307, "cover.screen");
    COVER_CRAFTING = addItem(308, "cover.crafting");
    COVER_SHUTTER = addItem(309, "cover.shutter");
    COVER_INFINITE_WATER = addItem(310, "cover.infinite_water");
    COVER_ENDER_FLUID_LINK = addItem(311, "cover.ender_fluid_link");
    COVER_DIGITAL_INTERFACE = addItem(312, "cover.digital");
    COVER_DIGITAL_INTERFACE_WIRELESS = addItem(313, "cover.digital.wireless");
    COVER_FACADE = addItem(330, "cover.facade").addComponents(new FacadeItem()).disableModelLoading();
    // Solar Panels: ID 331-346
    COVER_SOLAR_PANEL = addItem(331, "cover.solar.panel");
    COVER_SOLAR_PANEL_ULV = addItem(332, "cover.solar.panel.ulv");
    COVER_SOLAR_PANEL_LV = addItem(333, "cover.solar.panel.lv");
    COVER_SOLAR_PANEL_MV = addItem(334, "cover.solar.panel.mv");
    COVER_SOLAR_PANEL_HV = addItem(335, "cover.solar.panel.hv");
    COVER_SOLAR_PANEL_EV = addItem(336, "cover.solar.panel.ev");
    COVER_SOLAR_PANEL_IV = addItem(337, "cover.solar.panel.iv");
    COVER_SOLAR_PANEL_LUV = addItem(338, "cover.solar.panel.luv");
    COVER_SOLAR_PANEL_ZPM = addItem(339, "cover.solar.panel.zpm");
    COVER_SOLAR_PANEL_UV = addItem(340, "cover.solar.panel.uv");
    if (!ConfigHolder.machines.enableHighTierSolars) {
        COVER_SOLAR_PANEL_IV.setInvisible();
        COVER_SOLAR_PANEL_LUV.setInvisible();
        COVER_SOLAR_PANEL_ZPM.setInvisible();
        COVER_SOLAR_PANEL_UV.setInvisible();
    }
    // Early Game Brick Related: ID 347-360
    IItemContainerItemProvider selfContainerItemProvider = itemStack -> itemStack;
    WOODEN_FORM_EMPTY = addItem(347, "wooden_form.empty");
    WOODEN_FORM_BRICK = addItem(348, "wooden_form.brick").addComponents(selfContainerItemProvider);
    COMPRESSED_CLAY = addItem(349, "compressed.clay");
    COMPRESSED_COKE_CLAY = addItem(350, "compressed.coke_clay");
    COMPRESSED_FIRECLAY = addItem(351, "compressed.fireclay");
    FIRECLAY_BRICK = addItem(352, "brick.fireclay");
    COKE_OVEN_BRICK = addItem(353, "brick.coke");
    if (!ConfigHolder.recipes.harderBrickRecipes)
        COMPRESSED_CLAY.setInvisible();
    // Boules: ID 361-370
    SILICON_BOULE = addItem(361, "boule.silicon");
    GLOWSTONE_BOULE = addItem(362, "boule.glowstone");
    NAQUADAH_BOULE = addItem(363, "boule.naquadah");
    NEUTRONIUM_BOULE = addItem(364, "boule.neutronium");
    // Boule-Direct Wafers: ID 371-380
    SILICON_WAFER = addItem(371, "wafer.silicon");
    GLOWSTONE_WAFER = addItem(372, "wafer.glowstone");
    NAQUADAH_WAFER = addItem(373, "wafer.naquadah");
    NEUTRONIUM_WAFER = addItem(374, "wafer.neutronium");
    // Unfinished Circuit Boards: ID 381-400
    COATED_BOARD = addItem(381, "board.coated");
    PHENOLIC_BOARD = addItem(382, "board.phenolic");
    PLASTIC_BOARD = addItem(383, "board.plastic");
    EPOXY_BOARD = addItem(384, "board.epoxy");
    FIBER_BOARD = addItem(385, "board.fiber_reinforced");
    MULTILAYER_FIBER_BOARD = addItem(386, "board.multilayer.fiber_reinforced");
    WETWARE_BOARD = addItem(387, "board.wetware");
    // Finished Circuit Boards: ID 401-420
    BASIC_CIRCUIT_BOARD = addItem(401, "circuit_board.basic");
    GOOD_CIRCUIT_BOARD = addItem(402, "circuit_board.good");
    PLASTIC_CIRCUIT_BOARD = addItem(403, "circuit_board.plastic");
    ADVANCED_CIRCUIT_BOARD = addItem(404, "circuit_board.advanced");
    EXTREME_CIRCUIT_BOARD = addItem(405, "circuit_board.extreme");
    ELITE_CIRCUIT_BOARD = addItem(406, "circuit_board.elite");
    WETWARE_CIRCUIT_BOARD = addItem(407, "circuit_board.wetware");
    // Dyes: ID 421-436
    for (int i = 0; i < EnumDyeColor.values().length; i++) {
        EnumDyeColor dyeColor = EnumDyeColor.values()[i];
        DYE_ONLY_ITEMS[i] = addItem(421 + i, "dye." + dyeColor.getName()).addOreDict(getOredictColorName(dyeColor));
    }
    // Plant/Rubber Related: ID 438-445
    STICKY_RESIN = addItem(438, "rubber_drop").setBurnValue(200);
    PLANT_BALL = addItem(439, "plant_ball").setBurnValue(75);
    BIO_CHAFF = addItem(440, "bio_chaff").setBurnValue(200);
    // Power Units: ID 446-459
    POWER_UNIT_LV = addItem(446, "power_unit.lv").addComponents(ElectricStats.createElectricItem(100000L, GTValues.LV)).setMaxStackSize(8);
    POWER_UNIT_MV = addItem(447, "power_unit.mv").addComponents(ElectricStats.createElectricItem(400000L, GTValues.MV)).setMaxStackSize(8);
    POWER_UNIT_HV = addItem(448, "power_unit.hv").addComponents(ElectricStats.createElectricItem(1600000L, GTValues.HV)).setMaxStackSize(8);
    POWER_UNIT_EV = addItem(449, "power_unit.ev").addComponents(ElectricStats.createElectricItem(6400000L, GTValues.EV)).setMaxStackSize(8);
    POWER_UNIT_IV = addItem(450, "power_unit.iv").addComponents(ElectricStats.createElectricItem(25600000L, GTValues.IV)).setMaxStackSize(8);
    // Usable Items: ID 460-490
    DYNAMITE = addItem(460, "dynamite").addComponents(new DynamiteBehaviour());
    INTEGRATED_CIRCUIT = addItem(461, "circuit.integrated").addComponents(new IntCircuitBehaviour()).setModelAmount(33);
    FOAM_SPRAYER = addItem(462, "foam_sprayer").addComponents(new FoamSprayerBehavior()).setMaxStackSize(1);
    NANO_SABER = addItem(463, "nano_saber").addComponents(ElectricStats.createElectricItem(4_000_000L, GTValues.HV)).addComponents(new NanoSaberBehavior()).setMaxStackSize(1);
    CLIPBOARD = addItem(464, "clipboard").addComponents(new ClipboardBehavior()).setMaxStackSize(1);
    TERMINAL = addItem(465, "terminal").addComponents(new HardwareProvider(), new TerminalBehaviour()).setMaxStackSize(1);
    PROSPECTOR_LV = addItem(466, "prospector.lv").addComponents(ElectricStats.createElectricItem(100_000L, GTValues.LV), new ProspectorScannerBehavior(2, GTValues.LV)).setMaxStackSize(1);
    PROSPECTOR_HV = addItem(467, "prospector.hv").addComponents(ElectricStats.createElectricItem(1_600_000L, GTValues.HV), new ProspectorScannerBehavior(3, GTValues.HV)).setMaxStackSize(1);
    PROSPECTOR_LUV = addItem(468, "prospector.luv").addComponents(ElectricStats.createElectricItem(1_000_000_000L, GTValues.LuV), new ProspectorScannerBehavior(5, GTValues.LuV)).setMaxStackSize(1);
    TRICORDER_SCANNER = addItem(469, "tricorder_scanner").addComponents(ElectricStats.createElectricItem(100_000L, GTValues.MV), new TricorderBehavior(2)).setMaxStackSize(1);
    DEBUG_SCANNER = addItem(470, "debug_scanner").addComponents(new TricorderBehavior(3)).setMaxStackSize(1);
    ITEM_MAGNET_LV = addItem(471, "item_magnet.lv").addComponents(ElectricStats.createElectricItem(100_000L, GTValues.LV), new ItemMagnetBehavior(6, 0.04F)).setMaxStackSize(1);
    ITEM_MAGNET_HV = addItem(472, "item_magnet.hv").addComponents(ElectricStats.createElectricItem(1_600_000L, GTValues.HV), new ItemMagnetBehavior(16, 0.065F)).setMaxStackSize(1);
    // Misc Crafting Items: ID 491-515
    ENERGIUM_DUST = addItem(491, "energium_dust");
    ENGRAVED_LAPOTRON_CHIP = addItem(492, "engraved.lapotron_chip");
    // Free ID: 493, 494, 495, 496
    NEUTRON_REFLECTOR = addItem(497, "neutron_reflector");
    GELLED_TOLUENE = addItem(498, "gelled_toluene");
    CARBON_FIBERS = addItem(499, "carbon.fibers");
    CARBON_MESH = addItem(500, "carbon.mesh");
    CARBON_FIBER_PLATE = addItem(501, "carbon.plate");
    DUCT_TAPE = addItem(502, "duct_tape");
    WIRELESS = addItem(503, "wireless");
    CAMERA = addItem(504, "camera");
    // Circuit Components: ID 516-565
    VACUUM_TUBE = addItem(516, "circuit.vacuum_tube").setUnificationData(OrePrefix.circuit, Tier.ULV);
    GLASS_TUBE = addItem(517, "component.glass.tube");
    TRANSISTOR = addItem(518, "component.transistor").setUnificationData(OrePrefix.component, Component.Transistor);
    RESISTOR = addItem(519, "component.resistor").setUnificationData(OrePrefix.component, Component.Resistor);
    CAPACITOR = addItem(520, "component.capacitor").setUnificationData(OrePrefix.component, Component.Capacitor);
    DIODE = addItem(521, "component.diode").setUnificationData(OrePrefix.component, Component.Diode);
    INDUCTOR = addItem(522, "component.inductor").setUnificationData(OrePrefix.component, Component.Inductor);
    SMD_TRANSISTOR = addItem(523, "component.smd.transistor").setUnificationData(OrePrefix.component, Component.Transistor);
    SMD_RESISTOR = addItem(524, "component.smd.resistor").setUnificationData(OrePrefix.component, Component.Resistor);
    SMD_CAPACITOR = addItem(525, "component.smd.capacitor").setUnificationData(OrePrefix.component, Component.Capacitor);
    SMD_DIODE = addItem(526, "component.smd.diode").setUnificationData(OrePrefix.component, Component.Diode);
    SMD_INDUCTOR = addItem(527, "component.smd.inductor").setUnificationData(OrePrefix.component, Component.Inductor);
    ADVANCED_SMD_TRANSISTOR = addItem(528, "component.advanced_smd.transistor");
    ADVANCED_SMD_RESISTOR = addItem(529, "component.advanced_smd.resistor");
    ADVANCED_SMD_CAPACITOR = addItem(530, "component.advanced_smd.capacitor");
    ADVANCED_SMD_DIODE = addItem(531, "component.advanced_smd.diode");
    ADVANCED_SMD_INDUCTOR = addItem(532, "component.advanced_smd.inductor");
    // Engraved and Complex Wafers: ID 566-590
    CENTRAL_PROCESSING_UNIT_WAFER = addItem(566, "wafer.central_processing_unit");
    RANDOM_ACCESS_MEMORY_WAFER = addItem(567, "wafer.random_access_memory");
    INTEGRATED_LOGIC_CIRCUIT_WAFER = addItem(568, "wafer.integrated_logic_circuit");
    NANO_CENTRAL_PROCESSING_UNIT_WAFER = addItem(569, "wafer.nano_central_processing_unit");
    QUBIT_CENTRAL_PROCESSING_UNIT_WAFER = addItem(570, "wafer.qbit_central_processing_unit");
    SIMPLE_SYSTEM_ON_CHIP_WAFER = addItem(571, "wafer.simple_system_on_chip");
    SYSTEM_ON_CHIP_WAFER = addItem(572, "wafer.system_on_chip");
    ADVANCED_SYSTEM_ON_CHIP_WAFER = addItem(573, "wafer.advanced_system_on_chip");
    HIGHLY_ADVANCED_SOC_WAFER = addItem(574, "wafer.highly_advanced_system_on_chip");
    NAND_MEMORY_CHIP_WAFER = addItem(575, "wafer.nand_memory_chip");
    NOR_MEMORY_CHIP_WAFER = addItem(576, "wafer.nor_memory_chip");
    ULTRA_LOW_POWER_INTEGRATED_CIRCUIT_WAFER = addItem(577, "wafer.ultra_low_power_integrated_circuit");
    LOW_POWER_INTEGRATED_CIRCUIT_WAFER = addItem(578, "wafer.low_power_integrated_circuit");
    POWER_INTEGRATED_CIRCUIT_WAFER = addItem(579, "wafer.power_integrated_circuit");
    HIGH_POWER_INTEGRATED_CIRCUIT_WAFER = addItem(580, "wafer.high_power_integrated_circuit");
    ULTRA_HIGH_POWER_INTEGRATED_CIRCUIT_WAFER = addItem(581, "wafer.ultra_high_power_integrated_circuit");
    // Engraved and Complex Cut Wafers: ID 591-615
    CENTRAL_PROCESSING_UNIT = addItem(591, "plate.central_processing_unit");
    RANDOM_ACCESS_MEMORY = addItem(592, "plate.random_access_memory");
    INTEGRATED_LOGIC_CIRCUIT = addItem(593, "plate.integrated_logic_circuit");
    NANO_CENTRAL_PROCESSING_UNIT = addItem(594, "plate.nano_central_processing_unit");
    QUBIT_CENTRAL_PROCESSING_UNIT = addItem(595, "plate.qbit_central_processing_unit");
    SIMPLE_SYSTEM_ON_CHIP = addItem(596, "plate.simple_system_on_chip");
    SYSTEM_ON_CHIP = addItem(597, "plate.system_on_chip");
    ADVANCED_SYSTEM_ON_CHIP = addItem(598, "plate.advanced_system_on_chip");
    HIGHLY_ADVANCED_SOC = addItem(599, "plate.highly_advanced_system_on_chip");
    NAND_MEMORY_CHIP = addItem(600, "plate.nand_memory_chip");
    NOR_MEMORY_CHIP = addItem(601, "plate.nor_memory_chip");
    ULTRA_LOW_POWER_INTEGRATED_CIRCUIT = addItem(602, "plate.ultra_low_power_integrated_circuit");
    LOW_POWER_INTEGRATED_CIRCUIT = addItem(603, "plate.low_power_integrated_circuit");
    POWER_INTEGRATED_CIRCUIT = addItem(604, "plate.power_integrated_circuit");
    HIGH_POWER_INTEGRATED_CIRCUIT = addItem(605, "plate.high_power_integrated_circuit");
    ULTRA_HIGH_POWER_INTEGRATED_CIRCUIT = addItem(606, "plate.ultra_high_power_integrated_circuit");
    // ???: ID 616-620
    // Circuits: ID 621-700
    // T1: Electronic
    ELECTRONIC_CIRCUIT_LV = addItem(621, "circuit.electronic").setUnificationData(OrePrefix.circuit, Tier.LV);
    ELECTRONIC_CIRCUIT_MV = addItem(622, "circuit.good_electronic").setUnificationData(OrePrefix.circuit, Tier.MV);
    // T2: Integrated
    INTEGRATED_CIRCUIT_LV = addItem(623, "circuit.basic_integrated").setUnificationData(OrePrefix.circuit, Tier.LV);
    INTEGRATED_CIRCUIT_MV = addItem(624, "circuit.good_integrated").setUnificationData(OrePrefix.circuit, Tier.MV);
    INTEGRATED_CIRCUIT_HV = addItem(625, "circuit.advanced_integrated").setUnificationData(OrePrefix.circuit, Tier.HV);
    // Misc Unlocks
    NAND_CHIP_ULV = addItem(626, "circuit.nand_chip").setUnificationData(OrePrefix.circuit, Tier.ULV);
    MICROPROCESSOR_LV = addItem(627, "circuit.microprocessor").setUnificationData(OrePrefix.circuit, Tier.LV);
    // T3: Processor
    PROCESSOR_MV = addItem(628, "circuit.processor").setUnificationData(OrePrefix.circuit, Tier.MV);
    PROCESSOR_ASSEMBLY_HV = addItem(629, "circuit.assembly").setUnificationData(OrePrefix.circuit, Tier.HV);
    WORKSTATION_EV = addItem(630, "circuit.workstation").setUnificationData(OrePrefix.circuit, Tier.EV);
    MAINFRAME_IV = addItem(631, "circuit.mainframe").setUnificationData(OrePrefix.circuit, Tier.IV);
    // T4: Nano
    NANO_PROCESSOR_HV = addItem(632, "circuit.nano_processor").setUnificationData(OrePrefix.circuit, Tier.HV);
    NANO_PROCESSOR_ASSEMBLY_EV = addItem(633, "circuit.nano_assembly").setUnificationData(OrePrefix.circuit, Tier.EV);
    NANO_COMPUTER_IV = addItem(634, "circuit.nano_computer").setUnificationData(OrePrefix.circuit, Tier.IV);
    NANO_MAINFRAME_LUV = addItem(635, "circuit.nano_mainframe").setUnificationData(OrePrefix.circuit, Tier.LuV);
    // T5: Quantum
    QUANTUM_PROCESSOR_EV = addItem(636, "circuit.quantum_processor").setUnificationData(OrePrefix.circuit, Tier.EV);
    QUANTUM_ASSEMBLY_IV = addItem(637, "circuit.quantum_assembly").setUnificationData(OrePrefix.circuit, Tier.IV);
    QUANTUM_COMPUTER_LUV = addItem(638, "circuit.quantum_computer").setUnificationData(OrePrefix.circuit, Tier.LuV);
    QUANTUM_MAINFRAME_ZPM = addItem(639, "circuit.quantum_mainframe").setUnificationData(OrePrefix.circuit, Tier.ZPM);
    // T6: Crystal
    CRYSTAL_PROCESSOR_IV = addItem(640, "circuit.crystal_processor").setUnificationData(OrePrefix.circuit, Tier.IV);
    CRYSTAL_ASSEMBLY_LUV = addItem(641, "circuit.crystal_assembly").setUnificationData(OrePrefix.circuit, Tier.LuV);
    CRYSTAL_COMPUTER_ZPM = addItem(642, "circuit.crystal_computer").setUnificationData(OrePrefix.circuit, Tier.ZPM);
    CRYSTAL_MAINFRAME_UV = addItem(643, "circuit.crystal_mainframe").setUnificationData(OrePrefix.circuit, Tier.UV);
    // T7: Wetware
    WETWARE_PROCESSOR_LUV = addItem(644, "circuit.wetware_processor").setUnificationData(OrePrefix.circuit, Tier.LuV);
    WETWARE_PROCESSOR_ASSEMBLY_ZPM = addItem(645, "circuit.wetware_assembly").setUnificationData(OrePrefix.circuit, Tier.ZPM);
    WETWARE_SUPER_COMPUTER_UV = addItem(646, "circuit.wetware_computer").setUnificationData(OrePrefix.circuit, Tier.UV);
    WETWARE_MAINFRAME_UHV = addItem(647, "circuit.wetware_mainframe").setUnificationData(OrePrefix.circuit, Tier.UHV);
    // T8: Bioware
    // T9: Optical
    // T10: Exotic
    // T11: Cosmic
    // T12: Supra-Causal
    // T13: ???
    // Crystal Circuit Components: ID 701-705
    RAW_CRYSTAL_CHIP = addItem(701, "crystal.raw");
    RAW_CRYSTAL_CHIP_PART = addItem(702, "crystal.raw_chip");
    ENGRAVED_CRYSTAL_CHIP = addItem(703, "engraved.crystal_chip");
    CRYSTAL_CENTRAL_PROCESSING_UNIT = addItem(704, "crystal.central_processing_unit");
    CRYSTAL_SYSTEM_ON_CHIP = addItem(705, "crystal.system_on_chip");
    // Wetware Circuit Components: ID 706-710
    NEURO_PROCESSOR = addItem(708, "processor.neuro");
    STEM_CELLS = addItem(709, "stem_cells");
    PETRI_DISH = addItem(710, "petri_dish");
    // Turbine Rotors: ID 711-715
    TURBINE_ROTOR = addItem(711, "turbine_rotor").addComponents(new TurbineRotorBehavior());
    // Battery Hulls: ID 716-730
    // plate
    BATTERY_HULL_LV = addItem(717, "battery.hull.lv").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.BatteryAlloy, M)));
    // plate * 3
    BATTERY_HULL_MV = addItem(718, "battery.hull.mv").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.BatteryAlloy, M * 3)));
    // plate * 9
    BATTERY_HULL_HV = addItem(719, "battery.hull.hv").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.BatteryAlloy, M * 9)));
    BATTERY_HULL_SMALL_VANADIUM = addItem(720, "battery.hull.ev").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.BlueSteel, M * 2)));
    BATTERY_HULL_MEDIUM_VANADIUM = addItem(721, "battery.hull.iv").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.RoseGold, M * 6)));
    BATTERY_HULL_LARGE_VANADIUM = addItem(722, "battery.hull.luv").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.RedSteel, M * 18)));
    BATTERY_HULL_MEDIUM_NAQUADRIA = addItem(723, "battery.hull.zpm").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Europium, M * 6)));
    BATTERY_HULL_LARGE_NAQUADRIA = addItem(724, "battery.hull.uv").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Americium, M * 18)));
    // Batteries: 731-775
    BATTERY_ULV_TANTALUM = addItem(731, "battery.re.ulv.tantalum").addComponents(ElectricStats.createRechargeableBattery(1000, GTValues.ULV)).setUnificationData(OrePrefix.battery, Tier.ULV);
    BATTERY_LV_SODIUM = addItem(732, "battery.re.lv.sodium").addComponents(ElectricStats.createRechargeableBattery(80000, GTValues.LV)).setUnificationData(OrePrefix.battery, Tier.LV).setModelAmount(8);
    BATTERY_MV_SODIUM = addItem(733, "battery.re.mv.sodium").addComponents(ElectricStats.createRechargeableBattery(360000, GTValues.MV)).setUnificationData(OrePrefix.battery, Tier.MV).setModelAmount(8);
    BATTERY_HV_SODIUM = addItem(734, "battery.re.hv.sodium").addComponents(ElectricStats.createRechargeableBattery(1200000, GTValues.HV)).setUnificationData(OrePrefix.battery, Tier.HV).setModelAmount(8);
    BATTERY_LV_LITHIUM = addItem(735, "battery.re.lv.lithium").addComponents(ElectricStats.createRechargeableBattery(120000, GTValues.LV)).setUnificationData(OrePrefix.battery, Tier.LV).setModelAmount(8);
    BATTERY_MV_LITHIUM = addItem(736, "battery.re.mv.lithium").addComponents(ElectricStats.createRechargeableBattery(420000, GTValues.MV)).setUnificationData(OrePrefix.battery, Tier.MV).setModelAmount(8);
    BATTERY_HV_LITHIUM = addItem(737, "battery.re.hv.lithium").addComponents(ElectricStats.createRechargeableBattery(1800000, GTValues.HV)).setUnificationData(OrePrefix.battery, Tier.HV).setModelAmount(8);
    BATTERY_LV_CADMIUM = addItem(738, "battery.re.lv.cadmium").addComponents(ElectricStats.createRechargeableBattery(100000, GTValues.LV)).setUnificationData(OrePrefix.battery, Tier.LV).setModelAmount(8);
    BATTERY_MV_CADMIUM = addItem(739, "battery.re.mv.cadmium").addComponents(ElectricStats.createRechargeableBattery(400000, GTValues.MV)).setUnificationData(OrePrefix.battery, Tier.MV).setModelAmount(8);
    BATTERY_HV_CADMIUM = addItem(740, "battery.re.hv.cadmium").addComponents(ElectricStats.createRechargeableBattery(1600000, GTValues.HV)).setUnificationData(OrePrefix.battery, Tier.HV).setModelAmount(8);
    ENERGIUM_CRYSTAL = addItem(741, "energy_crystal").addComponents(ElectricStats.createRechargeableBattery(6_400_000L, GTValues.HV)).setUnificationData(OrePrefix.battery, Tier.HV).setModelAmount(8);
    LAPOTRON_CRYSTAL = addItem(742, "lapotron_crystal").addComponents(ElectricStats.createRechargeableBattery(25_000_000L, GTValues.EV)).setUnificationData(OrePrefix.battery, Tier.EV).setModelAmount(8);
    BATTERY_EV_VANADIUM = addItem(743, "battery.ev.vanadium").addComponents(ElectricStats.createRechargeableBattery(10_240_000L, GTValues.EV)).setUnificationData(OrePrefix.battery, Tier.EV).setModelAmount(8);
    BATTERY_IV_VANADIUM = addItem(744, "battery.iv.vanadium").addComponents(ElectricStats.createRechargeableBattery(40_960_000L, GTValues.IV)).setUnificationData(OrePrefix.battery, Tier.IV).setModelAmount(8);
    BATTERY_LUV_VANADIUM = addItem(745, "battery.luv.vanadium").addComponents(ElectricStats.createRechargeableBattery(163_840_000L, GTValues.LuV)).setUnificationData(OrePrefix.battery, Tier.LuV).setModelAmount(8);
    BATTERY_ZPM_NAQUADRIA = addItem(746, "battery.zpm.naquadria").addComponents(ElectricStats.createRechargeableBattery(655_360_000L, GTValues.ZPM)).setUnificationData(OrePrefix.battery, Tier.ZPM).setModelAmount(8);
    BATTERY_UV_NAQUADRIA = addItem(747, "battery.uv.naquadria").addComponents(ElectricStats.createRechargeableBattery(2_621_440_000L, GTValues.UV)).setUnificationData(OrePrefix.battery, Tier.UV).setModelAmount(8);
    ENERGY_LAPOTRONIC_ORB = addItem(748, "energy.lapotronic_orb").addComponents(ElectricStats.createRechargeableBattery(250_000_000L, GTValues.IV)).setUnificationData(OrePrefix.battery, Tier.IV).setModelAmount(8);
    ENERGY_LAPOTRONIC_ORB_CLUSTER = addItem(749, "energy.lapotronic_orb_cluster").addComponents(ElectricStats.createRechargeableBattery(1_000_000_000L, GTValues.LuV)).setUnificationData(OrePrefix.battery, Tier.LuV).setModelAmount(8);
    ENERGY_MODULE = addItem(750, "energy.module").addComponents(new IItemComponent[] { ElectricStats.createRechargeableBattery(4_000_000_000L, GTValues.ZPM) }).setUnificationData(OrePrefix.battery, Tier.ZPM).setModelAmount(8);
    ENERGY_CLUSTER = addItem(751, "energy.cluster").addComponents(new IItemComponent[] { ElectricStats.createRechargeableBattery(20_000_000_000L, GTValues.UV) }).setUnificationData(OrePrefix.battery, Tier.UV).setModelAmount(8);
    ZERO_POINT_MODULE = addItem(752, "zpm").addComponents(ElectricStats.createBattery(2000000000000L, GTValues.ZPM, true)).setModelAmount(8);
    ULTIMATE_BATTERY = addItem(753, "max.battery").addComponents(ElectricStats.createRechargeableBattery(Long.MAX_VALUE, GTValues.UHV)).setUnificationData(OrePrefix.battery, Tier.UHV).setModelAmount(8);
    POWER_THRUSTER = addItem(776, "power_thruster").setRarity(EnumRarity.UNCOMMON);
    POWER_THRUSTER_ADVANCED = addItem(777, "power_thruster_advanced").setRarity(EnumRarity.RARE);
    GRAVITATION_ENGINE = addItem(778, "gravitation_engine").setRarity(EnumRarity.EPIC);
    // Plugins: 780-799
    PLUGIN_ADVANCED_MONITOR = addItem(780, "plugin.advanced_monitor").addComponents(new AdvancedMonitorPluginBehavior());
    PLUGIN_FAKE_GUI = addItem(781, "plugin.fake_gui").addComponents(new FakeGuiPluginBehavior());
    PLUGIN_ONLINE_PIC = addItem(782, "plugin.online_pic").addComponents(new OnlinePicPluginBehavior());
    PLUGIN_TEXT = addItem(783, "plugin.text").addComponents(new TextPluginBehavior());
    // Records: 800-819
    SUS_RECORD = addItem(800, "record.sus").addComponents(new MusicDiscStats(GTSounds.SUS_RECORD)).setRarity(EnumRarity.RARE).setMaxStackSize(1).setInvisible();
    // Dyed Glass Lenses: 820-840
    for (int i = 0; i < MarkerMaterials.Color.VALUES.length; i++) {
        MarkerMaterial color = MarkerMaterials.Color.VALUES[i];
        if (color != MarkerMaterials.Color.White) {
            GLASS_LENSES.put(color, addItem(820 + i, String.format("glass_lens.%s", color.toString())));
        }
    }
    // Misc 1000+
    NAN_CERTIFICATE = addItem(1000, "nan.certificate").setRarity(EnumRarity.EPIC);
    FERTILIZER = addItem(1001, "fertilizer").addComponents(new FertilizerBehavior());
}
Also used : OreDictUnifier(gregtech.api.unification.OreDictUnifier) gregtech.common.items.behaviors(gregtech.common.items.behaviors) Tier(gregtech.api.unification.material.MarkerMaterials.Tier) M(gregtech.api.GTValues.M) MetaItems(gregtech.common.items.MetaItems) Materials(gregtech.api.unification.material.Materials) RandomPotionEffect(gregtech.api.util.RandomPotionEffect) IItemComponent(gregtech.api.items.metaitem.stats.IItemComponent) GTSounds(gregtech.api.sound.GTSounds) FakeGuiPluginBehavior(gregtech.common.items.behaviors.monitorplugin.FakeGuiPluginBehavior) ConfigHolder(gregtech.common.ConfigHolder) ItemMaterialInfo(gregtech.api.unification.stack.ItemMaterialInfo) ItemStack(net.minecraft.item.ItemStack) AdvancedMonitorPluginBehavior(gregtech.common.items.behaviors.monitorplugin.AdvancedMonitorPluginBehavior) MarkerMaterials(gregtech.api.unification.material.MarkerMaterials) OrePrefix(gregtech.api.unification.ore.OrePrefix) HardwareProvider(gregtech.api.terminal.hardware.HardwareProvider) TextPluginBehavior(gregtech.common.items.behaviors.monitorplugin.TextPluginBehavior) Component(gregtech.api.unification.material.MarkerMaterials.Component) DyeUtil.getOredictColorName(gregtech.api.util.DyeUtil.getOredictColorName) Items(net.minecraft.init.Items) IItemContainerItemProvider(gregtech.api.items.metaitem.stats.IItemContainerItemProvider) OnlinePicPluginBehavior(gregtech.common.items.behaviors.monitorplugin.OnlinePicPluginBehavior) EnumRarity(net.minecraft.item.EnumRarity) MaterialStack(gregtech.api.unification.stack.MaterialStack) GTValues(gregtech.api.GTValues) EnumDyeColor(net.minecraft.item.EnumDyeColor) MarkerMaterial(gregtech.api.unification.material.MarkerMaterial) gregtech.api.items.metaitem(gregtech.api.items.metaitem) MobEffects(net.minecraft.init.MobEffects) AdvancedMonitorPluginBehavior(gregtech.common.items.behaviors.monitorplugin.AdvancedMonitorPluginBehavior) MarkerMaterial(gregtech.api.unification.material.MarkerMaterial) HardwareProvider(gregtech.api.terminal.hardware.HardwareProvider) RandomPotionEffect(gregtech.api.util.RandomPotionEffect) IItemContainerItemProvider(gregtech.api.items.metaitem.stats.IItemContainerItemProvider) FakeGuiPluginBehavior(gregtech.common.items.behaviors.monitorplugin.FakeGuiPluginBehavior) EnumDyeColor(net.minecraft.item.EnumDyeColor) ItemMaterialInfo(gregtech.api.unification.stack.ItemMaterialInfo) OnlinePicPluginBehavior(gregtech.common.items.behaviors.monitorplugin.OnlinePicPluginBehavior) MaterialStack(gregtech.api.unification.stack.MaterialStack) IItemComponent(gregtech.api.items.metaitem.stats.IItemComponent) TextPluginBehavior(gregtech.common.items.behaviors.monitorplugin.TextPluginBehavior) ItemStack(net.minecraft.item.ItemStack)

Example 3 with MarkerMaterial

use of gregtech.api.unification.material.MarkerMaterial in project GregTech by GregTechCEu.

the class PartsRecipeHandler method processLens.

public static void processLens(OrePrefix lensPrefix, Material material, GemProperty property) {
    ItemStack stack = OreDictUnifier.get(lensPrefix, material);
    LATHE_RECIPES.recipeBuilder().input(plate, material).output(lens, material).output(dustSmall, material).duration(1200).EUt(120).buildAndRegister();
    if (!OreDictUnifier.get(gemExquisite, material).isEmpty()) {
        LATHE_RECIPES.recipeBuilder().input(gemExquisite, material).output(lens, material).output(dust, material, 2).duration(2400).EUt(30).buildAndRegister();
    }
    if (material == Materials.Diamond) {
        // override Diamond Lens to be LightBlue
        OreDictUnifier.registerOre(stack, OrePrefix.craftingLens, MarkerMaterials.Color.LightBlue);
    } else if (material == Materials.Ruby) {
        // override Ruby Lens to be Red
        OreDictUnifier.registerOre(stack, OrePrefix.craftingLens, MarkerMaterials.Color.Red);
    } else if (material == Materials.Emerald) {
        // override Emerald Lens to be Green
        OreDictUnifier.registerOre(stack, OrePrefix.craftingLens, MarkerMaterials.Color.Green);
    } else if (material == Materials.Glass) {
        // the overriding is done in OreDictionaryLoader to prevent log spam
        OreDictUnifier.registerOre(stack, OrePrefix.craftingLens.name() + material.toCamelCaseString());
    } else {
        // add more custom lenses here if needed
        // Default behavior for determining lens color, left for addons and CraftTweaker
        EnumDyeColor dyeColor = determineDyeColor(material.getMaterialRGB());
        MarkerMaterial colorMaterial = MarkerMaterials.Color.COLORS.get(dyeColor);
        OreDictUnifier.registerOre(stack, OrePrefix.craftingLens, colorMaterial);
    }
}
Also used : ItemStack(net.minecraft.item.ItemStack) EnumDyeColor(net.minecraft.item.EnumDyeColor) MarkerMaterial(gregtech.api.unification.material.MarkerMaterial)

Example 4 with MarkerMaterial

use of gregtech.api.unification.material.MarkerMaterial in project GregTech by GregTechCEu.

the class VanillaOverrideRecipes method dyeRecipes.

/**
 * - Removes Concrete, Stained Clay, and Stained glass crafting recipes
 */
private static void dyeRecipes() {
    for (MarkerMaterial colorMaterial : MarkerMaterials.Color.VALUES) {
        ModHandler.removeRecipeByName(new ResourceLocation(String.format("minecraft:%s_concrete_powder", colorMaterial)));
        ModHandler.removeRecipeByName(new ResourceLocation(String.format("minecraft:%s_stained_hardened_clay", colorMaterial)));
        ModHandler.removeRecipeByName(new ResourceLocation(String.format("minecraft:%s_stained_glass", colorMaterial)));
        ModHandler.removeRecipeByName(new ResourceLocation(String.format("minecraft:%s_wool", colorMaterial)));
    }
    ModHandler.removeRecipeByName("minecraft:dark_prismarine");
}
Also used : ResourceLocation(net.minecraft.util.ResourceLocation) MarkerMaterial(gregtech.api.unification.material.MarkerMaterial)

Aggregations

MarkerMaterial (gregtech.api.unification.material.MarkerMaterial)4 ItemStack (net.minecraft.item.ItemStack)3 GTValues (gregtech.api.GTValues)2 OreDictUnifier (gregtech.api.unification.OreDictUnifier)2 Materials (gregtech.api.unification.material.Materials)2 OrePrefix (gregtech.api.unification.ore.OrePrefix)2 ItemMaterialInfo (gregtech.api.unification.stack.ItemMaterialInfo)2 MaterialStack (gregtech.api.unification.stack.MaterialStack)2 ConfigHolder (gregtech.common.ConfigHolder)2 EnumDyeColor (net.minecraft.item.EnumDyeColor)2 ActionAddFurnaceRecipe (crafttweaker.mc1120.actions.ActionAddFurnaceRecipe)1 MCFurnaceManager (crafttweaker.mc1120.furnace.MCFurnaceManager)1 M (gregtech.api.GTValues.M)1 ToolDictNames (gregtech.api.items.ToolDictNames)1 gregtech.api.items.metaitem (gregtech.api.items.metaitem)1 MetaItem (gregtech.api.items.metaitem.MetaItem)1 IItemComponent (gregtech.api.items.metaitem.stats.IItemComponent)1 IItemContainerItemProvider (gregtech.api.items.metaitem.stats.IItemContainerItemProvider)1 DummyRecipe (gregtech.api.recipes.recipes.DummyRecipe)1 GTSounds (gregtech.api.sound.GTSounds)1