From ccc2c369762ee6449e9d0ddff40b155bdc94f71c Mon Sep 17 00:00:00 2001 From: htmlcsjs <46023024+htmlcsjs@users.noreply.github.com> Date: Thu, 22 Jul 2021 17:24:22 +0100 Subject: [PATCH] Detach Ore Prefixes from Meta Items (#43) * this doesnt run-NPE at MetaOrePrefix.java:100 * ITS DONE, Materials have been expanded to id 32766 * Changes auto id methods in CTMaterialRegistry to start at id 32000 * Yeeted SimpleDustMaterial * add cauldron in-world functionality * set MetaItem offsets to 0 * Refractor MetaItem1 and MetaItem2 * Fix misc issues * Fix crash caused by b03b8f1 * integrate old simple materials into id list * break wires, pipes, and cables into their own items/blocks * fix advancement errors * clean up pipe impl. NOTE IN DESC: remove the `IPipeType` from the generic signature once item pipes are done, as the unimplemented Inventory Pipes are the only reason why it needs both `IPipeType` and `IMaterialPipeType` right now * fix pipe models, rename `medium` to `normal` * fix empty prefix model errors rename to `MetaPrefixItem` * refactor SimpleFluidMaterial to not need IMaterial * remove IMaterial * fix root steam advancement * rename normal pipe crafting component * fix meta bracket handler, gt util hand Co-authored-by: Tech22 Co-authored-by: TechLord22 <37029404+TechLord22@users.noreply.github.com> Co-authored-by: DStrand1 --- .../api/items/materialitem/DustMetaItem.java | 101 -- ...erialMetaItem.java => MetaPrefixItem.java} | 201 ++-- .../api/items/metaitem/StandardMetaItem.java | 4 + .../block/material/BlockMaterialPipe.java | 36 +- .../api/recipes/CountableIngredient.java | 6 +- .../gregtech/api/recipes/RecipeBuilder.java | 15 +- .../java/gregtech/api/recipes/RecipeMap.java | 4 +- .../crafttweaker/MetaItemBracketHandler.java | 13 +- .../api/unification/OreDictUnifier.java | 37 +- .../crafttweaker/CTMaterialRegistry.java | 2 +- .../api/unification/material/IMaterial.java | 83 -- .../unification/material/MarkerMaterials.java | 2 +- .../api/unification/material/Materials.java | 613 ++++++------ .../material/type/FluidMaterial.java | 2 +- .../unification/material/type/Material.java | 42 +- .../material/type/SimpleDustMaterial.java | 58 -- .../material/type/SimpleFluidMaterial.java | 87 +- .../material/type/SimpleMaterial.java | 173 ---- .../ore/IOreRegistrationHandler.java | 4 +- .../api/unification/ore/OrePrefix.java | 37 +- .../api/unification/stack/MaterialStack.java | 5 +- .../unification/stack/UnificationEntry.java | 6 +- .../java/gregtech/common/CommonProxy.java | 12 +- src/main/java/gregtech/common/MetaFluids.java | 31 +- .../gregtech/common/blocks/MetaBlocks.java | 82 +- .../common/command/util/CommandHand.java | 8 +- .../common/items/EnchantmentTableTweaks.java | 4 +- .../java/gregtech/common/items/MetaItem1.java | 883 +++++++++++------- .../java/gregtech/common/items/MetaItem2.java | 368 -------- .../java/gregtech/common/items/MetaItems.java | 83 +- .../LargeTurbineWorkableHandler.java | 5 +- .../common/pipelike/cable/BlockCable.java | 19 +- .../pipelike/fluidpipe/BlockFluidPipe.java | 8 +- .../pipelike/fluidpipe/FluidPipeType.java | 2 +- .../loaders/dungeon/ChestGenHooks.java | 8 +- .../DecompositionRecipeHandler.java | 15 +- .../oreprocessing/MaterialRecipeHandler.java | 10 +- .../oreprocessing/PipeRecipeHandler.java | 3 +- .../loaders/recipe/AssemblyLineLoader.java | 2 +- .../loaders/recipe/ComponentRecipes.java | 20 +- .../loaders/recipe/CraftingComponent.java | 30 +- .../loaders/recipe/CraftingRecipeLoader.java | 2 +- .../loaders/recipe/MachineRecipeLoader.java | 3 +- .../loaders/recipe/MetaTileEntityLoader.java | 22 +- .../chemistry/AssemblerRecipeLoader.java | 4 +- .../extreme_voltage/49_nano_cpu_wafer.json | 8 +- .../extreme_voltage/50_nano_processor.json | 8 +- .../extreme_voltage/52_soc_wafer.json | 8 +- .../high_voltage/40_workstation.json | 8 +- .../insane_voltage/55_qbit_cpu_wafer.json | 8 +- .../insane_voltage/56_quantum_processor.json | 8 +- .../30_good_electronic_circuit.json | 8 +- .../62_raw_crystal_chip.json | 8 +- .../63_crystal_processing_unit.json | 8 +- .../64_crystal_processor.json | 8 +- .../ludicrous_voltage/67_asoc_wafer.json | 8 +- .../medium_voltage/34_silicon_boule.json | 8 +- .../35_logic_circuit_wafer.json | 8 +- .../36_integrated_logic_circuit.json | 8 +- .../37_advanced_integrated_logic_circuit.json | 8 +- .../advancements/steam/10_vacuum_tube.json | 8 +- .../steam/12_electronic_circuit.json | 8 +- .../advancements/steam/root_steam.json | 4 +- .../74_wetware_mainframe.json | 8 +- .../ultimate_voltage/78_hasoc_wafer.json | 8 +- .../zero_point_module/70_stem_cells.json | 8 +- .../71_neuro_processing_unit.json | 8 +- .../72_wetware_processor.json | 8 +- .../{cable.json => cable_double.json} | 0 .../{fluid_pipe.json => cable_hex.json} | 0 .../gregtech/blockstates/cable_octal.json | 13 + .../gregtech/blockstates/cable_quadruple.json | 13 + .../gregtech/blockstates/cable_single.json | 13 + .../gregtech/blockstates/fluid_pipe_huge.json | 13 + .../blockstates/fluid_pipe_large.json | 13 + .../blockstates/fluid_pipe_normal.json | 13 + .../blockstates/fluid_pipe_small.json | 13 + .../gregtech/blockstates/fluid_pipe_tiny.json | 13 + .../gregtech/blockstates/wire_double.json | 13 + .../assets/gregtech/blockstates/wire_hex.json | 13 + .../gregtech/blockstates/wire_octal.json | 13 + .../gregtech/blockstates/wire_quadruple.json | 13 + .../gregtech/blockstates/wire_single.json | 13 + .../resources/assets/gregtech/lang/en_us.lang | 2 +- ...{pipe_medium_in.png => pipe_normal_in.png} | Bin ...e_medium_side.png => pipe_normal_side.png} | Bin 86 files changed, 1592 insertions(+), 1914 deletions(-) delete mode 100644 src/main/java/gregtech/api/items/materialitem/DustMetaItem.java rename src/main/java/gregtech/api/items/materialitem/{MaterialMetaItem.java => MetaPrefixItem.java} (52%) delete mode 100644 src/main/java/gregtech/api/unification/material/IMaterial.java delete mode 100644 src/main/java/gregtech/api/unification/material/type/SimpleDustMaterial.java delete mode 100644 src/main/java/gregtech/api/unification/material/type/SimpleMaterial.java delete mode 100644 src/main/java/gregtech/common/items/MetaItem2.java rename src/main/resources/assets/gregtech/blockstates/{cable.json => cable_double.json} (100%) rename src/main/resources/assets/gregtech/blockstates/{fluid_pipe.json => cable_hex.json} (100%) create mode 100644 src/main/resources/assets/gregtech/blockstates/cable_octal.json create mode 100644 src/main/resources/assets/gregtech/blockstates/cable_quadruple.json create mode 100644 src/main/resources/assets/gregtech/blockstates/cable_single.json create mode 100644 src/main/resources/assets/gregtech/blockstates/fluid_pipe_huge.json create mode 100644 src/main/resources/assets/gregtech/blockstates/fluid_pipe_large.json create mode 100644 src/main/resources/assets/gregtech/blockstates/fluid_pipe_normal.json create mode 100644 src/main/resources/assets/gregtech/blockstates/fluid_pipe_small.json create mode 100644 src/main/resources/assets/gregtech/blockstates/fluid_pipe_tiny.json create mode 100644 src/main/resources/assets/gregtech/blockstates/wire_double.json create mode 100644 src/main/resources/assets/gregtech/blockstates/wire_hex.json create mode 100644 src/main/resources/assets/gregtech/blockstates/wire_octal.json create mode 100644 src/main/resources/assets/gregtech/blockstates/wire_quadruple.json create mode 100644 src/main/resources/assets/gregtech/blockstates/wire_single.json rename src/main/resources/assets/gregtech/textures/blocks/pipe/{pipe_medium_in.png => pipe_normal_in.png} (100%) rename src/main/resources/assets/gregtech/textures/blocks/pipe/{pipe_medium_side.png => pipe_normal_side.png} (100%) diff --git a/src/main/java/gregtech/api/items/materialitem/DustMetaItem.java b/src/main/java/gregtech/api/items/materialitem/DustMetaItem.java deleted file mode 100644 index 382f8799f4d..00000000000 --- a/src/main/java/gregtech/api/items/materialitem/DustMetaItem.java +++ /dev/null @@ -1,101 +0,0 @@ -package gregtech.api.items.materialitem; - -import gnu.trove.map.hash.TShortObjectHashMap; -import gregtech.api.GregTechAPI; -import gregtech.api.items.metaitem.StandardMetaItem; -import gregtech.api.unification.OreDictUnifier; -import gregtech.api.unification.material.MaterialIconSet; -import gregtech.api.unification.material.type.SimpleDustMaterial; -import gregtech.api.unification.ore.OrePrefix; -import net.minecraft.client.renderer.block.model.ModelBakery; -import net.minecraft.client.renderer.block.model.ModelResourceLocation; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.item.ItemStack; -import net.minecraft.util.NonNullList; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.util.ArrayList; - -import static gregtech.api.unification.material.type.SimpleDustMaterial.GENERATE_SMALL_TINY; - -public class DustMetaItem extends StandardMetaItem { - - private final OrePrefix[] orePrefixes = {OrePrefix.dustTiny, OrePrefix.dustSmall, OrePrefix.dust}; - private final ArrayList generatedItems = new ArrayList<>(); - //private final ArrayList items = new ArrayList<>(); TODO For MetaBracketHandler? - - public DustMetaItem() { - super((short) 0); - for (SimpleDustMaterial material : SimpleDustMaterial.MATERIAL_REGISTRY) { - int i = SimpleDustMaterial.MATERIAL_REGISTRY.getIDForObject(material); - for (int j = 0; j < orePrefixes.length; j++) { - if (j == 2 || material.hasFlag(GENERATE_SMALL_TINY)) { - generatedItems.add((short) (i * 3 + j)); - } - } - } - } - - public void registerOreDict() { - for (short metaItem : generatedItems) { - OrePrefix prefix = orePrefixes[metaItem % 3]; - SimpleDustMaterial material = SimpleDustMaterial.MATERIAL_REGISTRY.getObjectById(metaItem / 3); - ItemStack item = new ItemStack(this, 1, metaItem); - OreDictUnifier.registerOre(item, prefix, material); - if (prefix == OrePrefix.dust) - OreDictUnifier.registerOre(item, OrePrefix.DUST_REGULAR, material); - //items.add(item); - } - } - - @Override - @SideOnly(Side.CLIENT) - public void registerModels() { - super.registerModels(); - TShortObjectHashMap alreadyRegistered = new TShortObjectHashMap<>(); - for (short metaItem : generatedItems) { - OrePrefix prefix = orePrefixes[metaItem % 3]; - MaterialIconSet materialIconSet = SimpleDustMaterial.MATERIAL_REGISTRY.getObjectById((metaItem - (metaItem % 3)) / 3).iconSet; - if (!alreadyRegistered.containsKey(metaItem)) { - ResourceLocation resourceLocation = prefix.materialIconType.getItemModelPath(materialIconSet); - ModelBakery.registerItemVariants(this, resourceLocation); - alreadyRegistered.put(metaItem, new ModelResourceLocation(resourceLocation, "inventory")); - } - ModelResourceLocation resourceLocation = alreadyRegistered.get(metaItem); - metaItemsModels.put(metaItem, resourceLocation); - } - } - - @Override - @SideOnly(Side.CLIENT) - protected int getColorForItemStack(ItemStack stack, int tintIndex) { - if (tintIndex == 0) { - SimpleDustMaterial material = SimpleDustMaterial.MATERIAL_REGISTRY.getObjectById(stack.getMetadata() / 3); - if (material == null) return 0xFFFFFF; - return material.materialRGB; - } - return super.getColorForItemStack(stack, tintIndex); - } - - @Override - @SideOnly(Side.CLIENT) - public String getItemStackDisplayName(ItemStack itemStack) { - SimpleDustMaterial material = SimpleDustMaterial.MATERIAL_REGISTRY.getObjectById(itemStack.getItemDamage() / 3); - OrePrefix prefix = orePrefixes[itemStack.getItemDamage() % 3]; - if (material == null || prefix == null) return ""; - return prefix.getLocalNameForItem(material); - } - - @Override - @SideOnly(Side.CLIENT) - public void getSubItems(CreativeTabs tab, NonNullList subItems) { - super.getSubItems(tab, subItems); - if (tab == GregTechAPI.TAB_GREGTECH_MATERIALS || tab == CreativeTabs.SEARCH) { - for (short metadata : generatedItems) { - subItems.add(new ItemStack(this, 1, metadata)); - } - } - } -} diff --git a/src/main/java/gregtech/api/items/materialitem/MaterialMetaItem.java b/src/main/java/gregtech/api/items/materialitem/MetaPrefixItem.java similarity index 52% rename from src/main/java/gregtech/api/items/materialitem/MaterialMetaItem.java rename to src/main/java/gregtech/api/items/materialitem/MetaPrefixItem.java index 85bfae0b0f3..f428bc73ae4 100644 --- a/src/main/java/gregtech/api/items/materialitem/MaterialMetaItem.java +++ b/src/main/java/gregtech/api/items/materialitem/MetaPrefixItem.java @@ -1,6 +1,5 @@ package gregtech.api.items.materialitem; -import com.google.common.base.Preconditions; import gnu.trove.map.hash.TShortObjectHashMap; import gregtech.api.GTValues; import gregtech.api.GregTechAPI; @@ -10,50 +9,58 @@ import gregtech.api.unification.material.MaterialIconSet; import gregtech.api.unification.material.type.DustMaterial; import gregtech.api.unification.material.type.Material; +import gregtech.api.unification.material.type.SolidMaterial; import gregtech.api.unification.ore.OrePrefix; +import net.minecraft.block.BlockCauldron; +import net.minecraft.block.state.IBlockState; import net.minecraft.client.renderer.block.model.ModelBakery; import net.minecraft.client.renderer.block.model.ModelResourceLocation; +import net.minecraft.client.resources.I18n; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.item.EntityItem; import net.minecraft.item.ItemStack; import net.minecraft.util.NonNullList; import net.minecraft.util.ResourceLocation; +import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; import javax.annotation.Nullable; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; -public class MaterialMetaItem extends StandardMetaItem { +public class MetaPrefixItem extends StandardMetaItem { - protected OrePrefix[] orePrefixes; private final ArrayList generatedItems = new ArrayList<>(); private final ArrayList items = new ArrayList<>(); + private final OrePrefix prefix; - public MaterialMetaItem(OrePrefix... orePrefixes) { - super((short) (1000 * orePrefixes.length)); - Preconditions.checkArgument(orePrefixes.length <= 32, "Max allowed OrePrefix count on MaterialMetaItem is 32."); - this.orePrefixes = orePrefixes; + public static final Map purifyMap = new HashMap() {{ + put(OrePrefix.crushed, OrePrefix.crushedPurified); + put(OrePrefix.dustImpure, OrePrefix.dust); + put(OrePrefix.dustPure, OrePrefix.dust); + }}; + + public MetaPrefixItem(OrePrefix orePrefix) { + super(); + this.prefix = orePrefix; for (Material material : Material.MATERIAL_REGISTRY) { - int i = Material.MATERIAL_REGISTRY.getIDForObject(material); - for (int j = 0; j < orePrefixes.length; j++) { - OrePrefix orePrefix = orePrefixes[j]; - if (orePrefix != null && canGenerate(orePrefix, material)) { - short metadata = (short) (j * 1000 + i); - generatedItems.add(metadata); - } + short i = (short) Material.MATERIAL_REGISTRY.getIDForObject(material); + if (orePrefix != null && canGenerate(orePrefix, material)) { + generatedItems.add(i); } } } public void registerOreDict() { for (short metaItem : generatedItems) { - OrePrefix prefix = this.orePrefixes[metaItem / 1000]; - Material material = Material.MATERIAL_REGISTRY.getObjectById(metaItem % 1000); + Material material = Material.MATERIAL_REGISTRY.getObjectById(metaItem); ItemStack item = new ItemStack(this, 1, metaItem); OreDictUnifier.registerOre(item, prefix, material); registerSpecialOreDict(item, material, prefix); @@ -75,15 +82,40 @@ public List getEntries() { return items; } + protected boolean canGenerate(OrePrefix orePrefix, Material material) { + return orePrefix.doGenerateItem(material); + } + + @Override + @SideOnly(Side.CLIENT) + public String getItemStackDisplayName(ItemStack itemStack) { + Material material = Material.MATERIAL_REGISTRY.getObjectById(itemStack.getItemDamage()); + if (material == null || prefix == null) return ""; + return prefix.getLocalNameForItem(material); + } + + @Override + @SideOnly(Side.CLIENT) + protected int getColorForItemStack(ItemStack stack, int tintIndex) { + if (tintIndex == 0) { + Material material = Material.MATERIAL_REGISTRY.getObjectById(stack.getMetadata()); + if (material == null) + return 0xFFFFFF; + return material.materialRGB; + } + return super.getColorForItemStack(stack, tintIndex); + } + @Override @SideOnly(Side.CLIENT) + @SuppressWarnings("ConstantConditions") public void registerModels() { super.registerModels(); TShortObjectHashMap alreadyRegistered = new TShortObjectHashMap<>(); for (short metaItem : generatedItems) { - OrePrefix prefix = this.orePrefixes[metaItem / 1000]; - MaterialIconSet materialIconSet = Material.MATERIAL_REGISTRY.getObjectById(metaItem % 1000).materialIconSet; - short registrationKey = (short) (metaItem / 1000 * 1000 + materialIconSet.ordinal()); + MaterialIconSet materialIconSet = Material.MATERIAL_REGISTRY.getObjectById(metaItem).materialIconSet; + + short registrationKey = (short) (prefix.ordinal() + materialIconSet.ordinal()); if (!alreadyRegistered.containsKey(registrationKey)) { ResourceLocation resourceLocation = prefix.materialIconType.getItemModelPath(materialIconSet); ModelBakery.registerItemVariants(this, resourceLocation); @@ -92,43 +124,20 @@ public void registerModels() { ModelResourceLocation resourceLocation = alreadyRegistered.get(registrationKey); metaItemsModels.put(metaItem, resourceLocation); } - } - @Override - @SideOnly(Side.CLIENT) - protected int getColorForItemStack(ItemStack stack, int tintIndex) { - if (tintIndex == 0 && stack.getMetadata() < metaItemOffset) { - Material material = Material.MATERIAL_REGISTRY.getObjectById(stack.getMetadata() % 1000); - if (material == null) return 0xFFFFFF; - return material.materialRGB; + // Make some default model for meta prefix items without any materials associated + if (generatedItems.isEmpty()) { + MaterialIconSet defaultIcon = MaterialIconSet.DULL; + ResourceLocation defaultLocation = OrePrefix.ingot.materialIconType.getItemModelPath(defaultIcon); + ModelBakery.registerItemVariants(this, defaultLocation); } - return super.getColorForItemStack(stack, tintIndex); - } - - protected boolean canGenerate(OrePrefix orePrefix, Material material) { - return orePrefix.doGenerateItem(material); - } - - @Override - @SideOnly(Side.CLIENT) - public String getItemStackDisplayName(ItemStack itemStack) { - if (itemStack.getItemDamage() < metaItemOffset) { - Material material = Material.MATERIAL_REGISTRY.getObjectById(itemStack.getItemDamage() % 1000); - OrePrefix prefix = orePrefixes[itemStack.getItemDamage() / 1000]; - if (material == null || prefix == null) return ""; - return prefix.getLocalNameForItem(material); - } - return super.getItemStackDisplayName(itemStack); } @Override public int getItemStackLimit(ItemStack stack) { - if (stack.getItemDamage() < metaItemOffset) { - OrePrefix prefix = orePrefixes[stack.getItemDamage() / 1000]; - if(prefix == null) return 64; - return prefix.maxStackSize; - } - return super.getItemStackLimit(stack); + if (prefix == null) + return 64; + return prefix.maxStackSize; } @Override @@ -145,16 +154,13 @@ public void getSubItems(CreativeTabs tab, NonNullList subItems) { @Override public void onUpdate(ItemStack itemStack, World worldIn, Entity entityIn, int itemSlot, boolean isSelected) { super.onUpdate(itemStack, worldIn, entityIn, itemSlot, isSelected); - if (itemStack.getItemDamage() < metaItemOffset && generatedItems.contains((short) itemStack.getItemDamage()) && entityIn instanceof EntityLivingBase) { + if (generatedItems.contains((short) itemStack.getItemDamage()) && entityIn instanceof EntityLivingBase) { EntityLivingBase entity = (EntityLivingBase) entityIn; - OrePrefix prefix = orePrefixes[itemStack.getItemDamage() / 1000]; if (worldIn.getTotalWorldTime() % 20 == 0) { - if (prefix.heatDamage != 0.0) { - if (prefix.heatDamage > 0.0) { - entity.attackEntityFrom(DamageSources.getHeatDamage(), prefix.heatDamage); - } else if (prefix.heatDamage < 0.0) { - entity.attackEntityFrom(DamageSources.getFrostDamage(), -prefix.heatDamage); - } + if (prefix.heatDamage != 0.0 && prefix.heatDamage > 0.0) { + entity.attackEntityFrom(DamageSources.getHeatDamage(), prefix.heatDamage); + } else if (prefix.heatDamage < 0.0) { + entity.attackEntityFrom(DamageSources.getFrostDamage(), -prefix.heatDamage); } } } @@ -165,45 +171,76 @@ public void onUpdate(ItemStack itemStack, World worldIn, Entity entityIn, int it public void addInformation(ItemStack itemStack, @Nullable World worldIn, List lines, ITooltipFlag tooltipFlag) { super.addInformation(itemStack, worldIn, lines, tooltipFlag); int damage = itemStack.getItemDamage(); - if (damage < this.metaItemOffset) { - Material material = Material.MATERIAL_REGISTRY.getObjectById(damage % 1000); - OrePrefix prefix = this.orePrefixes[(damage / 1000)]; - if (prefix == null || material == null) return; - addMaterialTooltip(itemStack, prefix, material, lines, tooltipFlag); - } + Material material = Material.MATERIAL_REGISTRY.getObjectById(damage); + if (prefix == null || material == null) return; + addMaterialTooltip(lines); } public Material getMaterial(ItemStack itemStack) { int damage = itemStack.getItemDamage(); - if (damage < this.metaItemOffset) { - return Material.MATERIAL_REGISTRY.getObjectById(damage % 1000); - } - return null; + return Material.MATERIAL_REGISTRY.getObjectById(damage); } - public OrePrefix getOrePrefix(ItemStack itemStack) { - int damage = itemStack.getItemDamage(); - if (damage < this.metaItemOffset) { - return this.orePrefixes[(damage / 1000)]; - } - return null; + public OrePrefix getOrePrefix() { + return this.prefix; } @Override public int getItemBurnTime(ItemStack itemStack) { int damage = itemStack.getItemDamage(); - if (damage < this.metaItemOffset) { - Material material = Material.MATERIAL_REGISTRY.getObjectById(damage % 1000); - OrePrefix prefix = this.orePrefixes[(damage / 1000)]; - if (material instanceof DustMaterial) { - DustMaterial dustMaterial = (DustMaterial) material; - return (int) (dustMaterial.burnTime * prefix.materialAmount / GTValues.M); - } + Material material = Material.MATERIAL_REGISTRY.getObjectById(damage); + if (material instanceof DustMaterial) { + DustMaterial dustMaterial = (DustMaterial) material; + return (int) (dustMaterial.burnTime * prefix.materialAmount / GTValues.M); } return super.getItemBurnTime(itemStack); } - protected void addMaterialTooltip(ItemStack itemStack, OrePrefix prefix, Material material, List lines, ITooltipFlag tooltipFlag) { + @Override + public boolean isBeaconPayment(ItemStack stack) { + int damage = stack.getMetadata(); + + Material material = Material.MATERIAL_REGISTRY.getObjectById(damage); + if (this.prefix != null && material != null) { + boolean isSolidState = this.prefix == OrePrefix.ingot || this.prefix == OrePrefix.gem; + boolean isMaterialTiered = material instanceof SolidMaterial && ((SolidMaterial) material).harvestLevel >= 2; + return isSolidState && isMaterialTiered; + } + return false; + } + + @Override + public boolean onEntityItemUpdate(EntityItem itemEntity) { + int damage = itemEntity.getItem().getMetadata(); + if (itemEntity.getEntityWorld().isRemote) + return false; + + Material material = Material.MATERIAL_REGISTRY.getObjectById(damage); + if (!purifyMap.containsKey(this.prefix)) + return false; + + BlockPos blockPos = new BlockPos(itemEntity); + IBlockState blockState = itemEntity.getEntityWorld().getBlockState(blockPos); + + if (!(blockState.getBlock() instanceof BlockCauldron)) + return false; + + int waterLevel = blockState.getValue(BlockCauldron.LEVEL); + if (waterLevel == 0) + return false; + + itemEntity.getEntityWorld().setBlockState(blockPos, + blockState.withProperty(BlockCauldron.LEVEL, waterLevel - 1)); + ItemStack replacementStack = OreDictUnifier.get(purifyMap.get(prefix), material, + itemEntity.getItem().getCount()); + itemEntity.setItem(replacementStack); + return false; + } + + protected void addMaterialTooltip(List lines) { + if (this.prefix == OrePrefix.dustImpure || this.prefix == OrePrefix.dustPure) { + lines.add(I18n.format("metaitem.dust.tooltip.purify")); + } } } diff --git a/src/main/java/gregtech/api/items/metaitem/StandardMetaItem.java b/src/main/java/gregtech/api/items/metaitem/StandardMetaItem.java index 1a69c6bd55f..f08a227eb7d 100644 --- a/src/main/java/gregtech/api/items/metaitem/StandardMetaItem.java +++ b/src/main/java/gregtech/api/items/metaitem/StandardMetaItem.java @@ -2,6 +2,10 @@ public class StandardMetaItem extends MetaItem.MetaValueItem> { + public StandardMetaItem() { + super((short) 0); + } + public StandardMetaItem(short metaItemOffset) { super(metaItemOffset); } diff --git a/src/main/java/gregtech/api/pipenet/block/material/BlockMaterialPipe.java b/src/main/java/gregtech/api/pipenet/block/material/BlockMaterialPipe.java index aadbb5111ba..d64ddc18c62 100644 --- a/src/main/java/gregtech/api/pipenet/block/material/BlockMaterialPipe.java +++ b/src/main/java/gregtech/api/pipenet/block/material/BlockMaterialPipe.java @@ -7,9 +7,16 @@ import gregtech.api.pipenet.tile.IPipeTile; import gregtech.api.pipenet.tile.TileEntityPipeBase; import gregtech.api.unification.material.type.Material; +import gregtech.api.unification.ore.OrePrefix; import net.minecraft.item.ItemStack; -public abstract class BlockMaterialPipe & IPipeType, NodeDataType, WorldPipeNetType extends WorldPipeNet>> extends BlockPipe { +public abstract class BlockMaterialPipe & IPipeType & IMaterialPipeType, NodeDataType, WorldPipeNetType extends WorldPipeNet>> extends BlockPipe { + + protected final PipeType pipeType; + + public BlockMaterialPipe(PipeType pipeType) { + this.pipeType = pipeType; + } @Override public NodeDataType createProperties(IPipeTile pipeTile) { @@ -23,7 +30,6 @@ public NodeDataType createProperties(IPipeTile pipeTile) @Override public NodeDataType createItemProperties(ItemStack itemStack) { - PipeType pipeType = getItemPipeType(itemStack); Material material = getItemMaterial(itemStack); if (pipeType == null || material == null) { return getFallbackType(); @@ -31,34 +37,34 @@ public NodeDataType createItemProperties(ItemStack itemStack) { return createProperties(pipeType, material); } - public ItemStack getItem(PipeType pipeType, Material material) { - if (pipeType == null || material == null) { - return ItemStack.EMPTY; - } + public ItemStack getItem(Material material) { + if (material == null) return ItemStack.EMPTY; int materialId = Material.MATERIAL_REGISTRY.getIDForObject(material); - return new ItemStack(this, 1, pipeType.ordinal() * 1000 + materialId); - } - - @Override - public PipeType getItemPipeType(ItemStack itemStack) { - return getPipeTypeClass().getEnumConstants()[itemStack.getMetadata() / 1000]; + return new ItemStack(this, 1, materialId); } public Material getItemMaterial(ItemStack itemStack) { - return Material.MATERIAL_REGISTRY.getObjectById(itemStack.getMetadata() % 1000); + return Material.MATERIAL_REGISTRY.getObjectById(itemStack.getMetadata()); } @Override public void setTileEntityData(TileEntityPipeBase pipeTile, ItemStack itemStack) { - ((TileEntityMaterialPipeBase) pipeTile).setPipeData(this, getItemPipeType(itemStack), getItemMaterial(itemStack)); + ((TileEntityMaterialPipeBase) pipeTile).setPipeData(this, pipeType, getItemMaterial(itemStack)); } @Override public ItemStack getDropItem(IPipeTile pipeTile) { Material material = ((IMaterialPipeTile) pipeTile).getPipeMaterial(); - return getItem(pipeTile.getPipeType(), material); + return getItem(material); } protected abstract NodeDataType createProperties(PipeType pipeType, Material material); + public OrePrefix getPrefix() { + return pipeType.getOrePrefix(); + } + + public PipeType getItemPipeType(ItemStack is) { + return pipeType; + } } diff --git a/src/main/java/gregtech/api/recipes/CountableIngredient.java b/src/main/java/gregtech/api/recipes/CountableIngredient.java index 59d38488382..7a9f15f99bd 100644 --- a/src/main/java/gregtech/api/recipes/CountableIngredient.java +++ b/src/main/java/gregtech/api/recipes/CountableIngredient.java @@ -1,6 +1,6 @@ package gregtech.api.recipes; -import gregtech.api.unification.material.IMaterial; +import gregtech.api.unification.material.type.Material; import gregtech.api.unification.ore.OrePrefix; import gregtech.api.unification.stack.UnificationEntry; import net.minecraft.item.ItemStack; @@ -28,11 +28,11 @@ public static CountableIngredient from(String oredict, int count) { return new CountableIngredient(new OreIngredient(oredict), count); } - public static CountableIngredient from(OrePrefix prefix, IMaterial material) { + public static CountableIngredient from(OrePrefix prefix, Material material) { return from(prefix, material, 1); } - public static CountableIngredient from(OrePrefix prefix, IMaterial material, int count) { + public static CountableIngredient from(OrePrefix prefix, Material material, int count) { return new CountableIngredient(new OreIngredient(new UnificationEntry(prefix, material).toString()), count); } diff --git a/src/main/java/gregtech/api/recipes/RecipeBuilder.java b/src/main/java/gregtech/api/recipes/RecipeBuilder.java index 0f06a85ab5c..3ceb4595012 100644 --- a/src/main/java/gregtech/api/recipes/RecipeBuilder.java +++ b/src/main/java/gregtech/api/recipes/RecipeBuilder.java @@ -2,7 +2,6 @@ import gregtech.api.items.metaitem.MetaItem; import gregtech.api.recipes.Recipe.ChanceEntry; -import gregtech.api.unification.material.IMaterial; import gregtech.api.unification.material.type.FluidMaterial; import gregtech.api.unification.OreDictUnifier; import gregtech.api.unification.material.type.Material; @@ -113,11 +112,11 @@ public R input(String oredict, int count) { return inputs(CountableIngredient.from(oredict, count)); } - public R input(OrePrefix orePrefix, IMaterial material) { + public R input(OrePrefix orePrefix, Material material) { return inputs(CountableIngredient.from(orePrefix, material, 1)); } - public R input(OrePrefix orePrefix, IMaterial material, int count) { + public R input(OrePrefix orePrefix, Material material, int count) { return inputs(CountableIngredient.from(orePrefix, material, count)); } @@ -180,7 +179,7 @@ public R notConsumable(ItemStack itemStack) { return inputs(CountableIngredient.from(itemStack, 0)); } - public R notConsumable(OrePrefix prefix, IMaterial material) { + public R notConsumable(OrePrefix prefix, Material material) { return input(prefix, material, 0); } @@ -200,11 +199,11 @@ public R notConsumable(FluidStack fluidStack) { return fluidInputs(new FluidStack(fluidStack, 0)); } - public R output(OrePrefix orePrefix, IMaterial material) { + public R output(OrePrefix orePrefix, Material material) { return outputs(OreDictUnifier.get(orePrefix, material, 1)); } - public R output(OrePrefix orePrefix, IMaterial material, int count) { + public R output(OrePrefix orePrefix, Material material, int count) { return outputs(OreDictUnifier.get(orePrefix, material, count)); } @@ -287,11 +286,11 @@ public R chancedOutput(ItemStack stack, int chance, int tierChanceBoost) { return (R) this; } - public R chancedOutput(OrePrefix prefix, IMaterial material, int count, int chance, int tierChanceBoost) { + public R chancedOutput(OrePrefix prefix, Material material, int count, int chance, int tierChanceBoost) { return chancedOutput(OreDictUnifier.get(prefix, material, count), chance, tierChanceBoost); } - public R chancedOutput(OrePrefix prefix, IMaterial material, int chance, int tierChanceBoost) { + public R chancedOutput(OrePrefix prefix, Material material, int chance, int tierChanceBoost) { return chancedOutput(prefix, material, 1, chance, tierChanceBoost); } diff --git a/src/main/java/gregtech/api/recipes/RecipeMap.java b/src/main/java/gregtech/api/recipes/RecipeMap.java index ae24f31a306..0b467dab03a 100644 --- a/src/main/java/gregtech/api/recipes/RecipeMap.java +++ b/src/main/java/gregtech/api/recipes/RecipeMap.java @@ -19,7 +19,7 @@ import gregtech.api.recipes.builders.IntCircuitRecipeBuilder; import gregtech.api.recipes.crafttweaker.CTRecipe; import gregtech.api.recipes.crafttweaker.CTRecipeBuilder; -import gregtech.api.unification.material.IMaterial; +import gregtech.api.unification.material.type.Material; import gregtech.api.unification.ore.OrePrefix; import gregtech.api.util.EnumValidationResult; import gregtech.api.util.GTLog; @@ -121,7 +121,7 @@ public static void setFoundInvalidRecipe(boolean foundInvalidRecipe) { RecipeMap.foundInvalidRecipe |= foundInvalidRecipe; OrePrefix currentOrePrefix = OrePrefix.getCurrentProcessingPrefix(); if (currentOrePrefix != null) { - IMaterial currentMaterial = OrePrefix.getCurrentMaterial(); + Material currentMaterial = OrePrefix.getCurrentMaterial(); GTLog.logger.error("Error happened during processing ore registration of prefix {} and material {}. " + "Seems like cross-mod compatibility issue. Report to GTCE github.", currentOrePrefix, currentMaterial); diff --git a/src/main/java/gregtech/api/recipes/crafttweaker/MetaItemBracketHandler.java b/src/main/java/gregtech/api/recipes/crafttweaker/MetaItemBracketHandler.java index 9f96c833fea..9007ca83d5b 100644 --- a/src/main/java/gregtech/api/recipes/crafttweaker/MetaItemBracketHandler.java +++ b/src/main/java/gregtech/api/recipes/crafttweaker/MetaItemBracketHandler.java @@ -6,10 +6,11 @@ import crafttweaker.api.item.IItemStack; import crafttweaker.mc1120.item.MCItemStack; import crafttweaker.zenscript.IBracketHandler; -import gregtech.api.items.materialitem.MaterialMetaItem; import gregtech.api.items.metaitem.MetaItem; import gregtech.api.items.metaitem.MetaItem.MetaValueItem; import gregtech.api.unification.OreDictUnifier; +import gregtech.api.unification.ore.OrePrefix; +import gregtech.api.items.materialitem.MetaPrefixItem; import net.minecraft.item.ItemStack; import stanhebben.zenscript.compiler.IEnvironmentGlobal; import stanhebben.zenscript.expression.ExpressionCallStatic; @@ -33,13 +34,15 @@ public MetaItemBracketHandler() { this.method = CraftTweakerAPI.getJavaMethod(MetaItemBracketHandler.class, "getMetaItem", String.class); } - @SuppressWarnings("unchecked") + @SuppressWarnings("ConstantConditions") public static void rebuildComponentRegistry() { metaItemNames.clear(); for (MetaItem item : MetaItem.getMetaItems()) { - if (item instanceof MaterialMetaItem) { - for(ItemStack entry : ((MaterialMetaItem) item).getEntries()) { - metaItemNames.put(OreDictUnifier.getPrefix(entry).name() + OreDictUnifier.getMaterial(entry).material.toCamelCaseString(), entry); + if (item instanceof MetaPrefixItem) { + MetaPrefixItem metaPrefixItem = ((MetaPrefixItem) item); + OrePrefix prefix = metaPrefixItem.getOrePrefix(); + for(ItemStack entry : ((MetaPrefixItem) item).getEntries()) { + metaItemNames.put(prefix.name() + OreDictUnifier.getMaterial(entry).material.toCamelCaseString(), entry); } } for(MetaValueItem entry : item.getAllItems()) { diff --git a/src/main/java/gregtech/api/unification/OreDictUnifier.java b/src/main/java/gregtech/api/unification/OreDictUnifier.java index 7c0a8c3de44..9b86715cd4d 100644 --- a/src/main/java/gregtech/api/unification/OreDictUnifier.java +++ b/src/main/java/gregtech/api/unification/OreDictUnifier.java @@ -2,8 +2,10 @@ import com.google.common.base.CaseFormat; import com.google.common.base.Joiner; -import gregtech.api.unification.material.IMaterial; -import gregtech.api.unification.material.type.*; +import gregtech.api.unification.material.type.DustMaterial; +import gregtech.api.unification.material.type.IngotMaterial; +import gregtech.api.unification.material.type.MarkerMaterial; +import gregtech.api.unification.material.type.Material; import gregtech.api.unification.ore.OrePrefix; import gregtech.api.unification.stack.*; import gregtech.api.util.CustomModPriorityComparator; @@ -71,11 +73,11 @@ public static void registerOre(ItemStack itemStack, ItemMaterialInfo materialInf materialUnificationInfo.put(new ItemAndMetadata(itemStack), materialInfo); } - public static void registerOre(ItemStack itemStack, OrePrefix orePrefix, @Nullable IMaterial material) { + public static void registerOre(ItemStack itemStack, OrePrefix orePrefix, @Nullable Material material) { registerOre(itemStack, orePrefix.name(), material); } - public static void registerOre(ItemStack itemStack, String customOrePrefix, @Nullable IMaterial material) { + public static void registerOre(ItemStack itemStack, String customOrePrefix, @Nullable Material material) { if (itemStack.isEmpty()) return; OreDictionary.registerOre(customOrePrefix + (material == null ? "" : material.toCamelCaseString()), itemStack); } @@ -106,7 +108,7 @@ public static void onItemRegistration(OreRegisterEvent event) { //and try to transform registration name into OrePrefix + Material pair OrePrefix orePrefix = OrePrefix.getPrefix(oreName); - IMaterial material = null; + Material material = null; if (orePrefix == null) { //split ore dict name to parts //oreBasalticMineralSand -> ore, Basaltic, Mineral, Sand @@ -131,11 +133,7 @@ public static void onItemRegistration(OreRegisterEvent event) { OrePrefix maybePrefix = OrePrefix.getPrefix(buffer.toString()); //ore -> OrePrefix.ore String possibleMaterialName = Joiner.on("").join(splits.subList(i + 1, splits.size())); //BasalticMineralSand String underscoreName = CaseFormat.UPPER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, possibleMaterialName); //basaltic_mineral_sand - IMaterial possibleMaterial = Material.MATERIAL_REGISTRY.getObject(underscoreName); //Materials.BasalticSand - if (possibleMaterial == null) { - //if we didn't found real material, try using simple material registry - possibleMaterial = SimpleDustMaterial.MATERIAL_REGISTRY.getObject(underscoreName); - } + Material possibleMaterial = Material.MATERIAL_REGISTRY.getObject(underscoreName); //Materials.BasalticSand if (possibleMaterial == null) { //if we didn't found real material, try using marker material registry possibleMaterial = markerMaterialRegistry.get(underscoreName); @@ -181,7 +179,7 @@ public static MaterialStack getMaterial(ItemStack itemStack) { ItemAndMetadata simpleItemStack = new ItemAndMetadata(itemStack); UnificationEntry entry = stackUnificationInfo.get(simpleItemStack); if (entry != null) { - IMaterial entryMaterial = entry.material; + Material entryMaterial = entry.material; if (entryMaterial == null) { entryMaterial = entry.orePrefix.materialType; } @@ -221,11 +219,11 @@ public static ItemStack get(UnificationEntry unificationEntry) { return get(unificationEntry.orePrefix, unificationEntry.material); } - public static ItemStack get(OrePrefix orePrefix, IMaterial material) { + public static ItemStack get(OrePrefix orePrefix, Material material) { return get(orePrefix, material, 1); } - public static ItemStack get(OrePrefix orePrefix, IMaterial material, int stackSize) { + public static ItemStack get(OrePrefix orePrefix, Material material, int stackSize) { UnificationEntry unificationEntry = new UnificationEntry(orePrefix, material); if (!stackUnificationItems.containsKey(unificationEntry)) return ItemStack.EMPTY; @@ -263,21 +261,8 @@ else if ((materialAmount * 9) >= M) return ItemStack.EMPTY; } - public static ItemStack getDust(SimpleDustMaterial material, long materialAmount) { - if (materialAmount <= 0) - return ItemStack.EMPTY; - if (materialAmount % M == 0 || materialAmount >= M * 16) - return get(OrePrefix.dust, material, (int) (materialAmount / M)); - else if ((materialAmount * 4) % M == 0 || materialAmount >= M * 8) - return get(OrePrefix.dustSmall, material, (int) ((materialAmount * 4) / M)); - else if ((materialAmount * 9) >= M) - return get(OrePrefix.dustTiny, material, (int) ((materialAmount * 9) / M)); - return ItemStack.EMPTY; - } public static ItemStack getDust(MaterialStack materialStack) { - if (materialStack.material.getMaterialClass() == SimpleDustMaterial.class) - return getDust((SimpleDustMaterial) materialStack.material, materialStack.amount); return getDust((DustMaterial) materialStack.material, materialStack.amount); } diff --git a/src/main/java/gregtech/api/unification/crafttweaker/CTMaterialRegistry.java b/src/main/java/gregtech/api/unification/crafttweaker/CTMaterialRegistry.java index a00d038e5c5..ecc252cdf3d 100644 --- a/src/main/java/gregtech/api/unification/crafttweaker/CTMaterialRegistry.java +++ b/src/main/java/gregtech/api/unification/crafttweaker/CTMaterialRegistry.java @@ -17,7 +17,7 @@ @ZenRegister public class CTMaterialRegistry { - static int baseID = 450; + static int baseID = 32000; @ZenMethod @Nullable diff --git a/src/main/java/gregtech/api/unification/material/IMaterial.java b/src/main/java/gregtech/api/unification/material/IMaterial.java deleted file mode 100644 index b381f470fcd..00000000000 --- a/src/main/java/gregtech/api/unification/material/IMaterial.java +++ /dev/null @@ -1,83 +0,0 @@ -package gregtech.api.unification.material; - -import com.google.common.base.CaseFormat; -import com.google.common.collect.ImmutableList; -import gregtech.api.unification.stack.MaterialStack; -import gregtech.api.util.GTControlledRegistry; -import gregtech.api.util.SmallDigits; -import net.minecraft.client.resources.I18n; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import javax.annotation.Nullable; - -public interface IMaterial { - - default String toCamelCaseString() { - return CaseFormat.LOWER_UNDERSCORE.to(CaseFormat.UPPER_CAMEL, toString()); - } - - default String getUnlocalizedName() { - return String.format("material.%s", toString()); - } - - @SideOnly(Side.CLIENT) - default String getLocalizedName() { - return I18n.format(getUnlocalizedName()); - } - - GTControlledRegistry getRegistry(); - - Class getMaterialClass(); - - String getChemicalFormula(); - - ImmutableList getMaterialComponents(); - - int getMaterialRGB(); - - long getAverageMass(); - - long getAverageNeutrons(); - - long getAverageProtons(); - - long getMass(); - - long getNeutrons(); - - long getProtons(); - - boolean isRadioactive(); - - boolean hasFlag(long flag); - - long verifyMaterialBits(long materialBits); - - static int getIntValueOfFlag(long value) { - int index = 0; - while (value != 1) { - value >>= 1; - index++; - } - return index; - } - - // TODO Fix isotope tooltips being set toSmallDownNumbers - static String calculateChemicalFormula(String unformattedFormula) { - StringBuilder sb = new StringBuilder(); - if (unformattedFormula != null && !unformattedFormula.isEmpty()) { - for (char c : unformattedFormula.toCharArray()) { - if (Character.isDigit(c)) - sb.append(SmallDigits.toSmallDownNumbers(Character.toString(c))); - else - sb.append(c); - } - } - return sb.toString(); // returns "" if no formula, like other method - } - - @Nullable - FluidStack getFluid(int amount); -} diff --git a/src/main/java/gregtech/api/unification/material/MarkerMaterials.java b/src/main/java/gregtech/api/unification/material/MarkerMaterials.java index c30b6b39da4..b2969b75cbf 100644 --- a/src/main/java/gregtech/api/unification/material/MarkerMaterials.java +++ b/src/main/java/gregtech/api/unification/material/MarkerMaterials.java @@ -95,7 +95,7 @@ public static class Tier { public static Material Elite = new MarkerMaterial("elite"); public static Material Master = new MarkerMaterial("master"); public static Material Ultimate = new MarkerMaterial("ultimate"); - public static Material Superconductor = new Material(369, "superconductor", 0xFFFFFF, MaterialIconSet.NONE, of(), 0L, null) { + public static Material Superconductor = new Material(386, "superconductor", 0xFFFFFF, MaterialIconSet.NONE, of(), 0L, null) { }; public static Material Infinite = new MarkerMaterial("infinite"); diff --git a/src/main/java/gregtech/api/unification/material/Materials.java b/src/main/java/gregtech/api/unification/material/Materials.java index a9442dc3502..1b41ea4f715 100644 --- a/src/main/java/gregtech/api/unification/material/Materials.java +++ b/src/main/java/gregtech/api/unification/material/Materials.java @@ -14,7 +14,6 @@ import static gregtech.api.unification.material.type.GemMaterial.MatFlags.*; import static gregtech.api.unification.material.type.IngotMaterial.MatFlags.*; import static gregtech.api.unification.material.type.Material.MatFlags.*; -import static gregtech.api.unification.material.type.SimpleDustMaterial.GENERATE_SMALL_TINY; import static gregtech.api.unification.material.type.SolidMaterial.MatFlags.*; @SuppressWarnings("unused") @@ -273,345 +272,337 @@ public static void register() { public static IngotMaterial IndiumGalliumPhosphide = new IngotMaterial(229, "indium_gallium_phosphide", 0xA08CBE, DULL, 1, of(new MaterialStack(Indium, 1), new MaterialStack(Gallium, 1), new MaterialStack(Phosphorus, 1)), DECOMPOSITION_BY_CENTRIFUGING | GENERATE_PLATE); public static IngotMaterial NickelZincFerrite = new IngotMaterial(230, "nickel_zinc_ferrite", 0x3C3C3C, METALLIC, 0, of(new MaterialStack(Nickel, 1), new MaterialStack(Zinc, 1), new MaterialStack(Iron, 4), new MaterialStack(Oxygen, 8)), EXT_METAL | GENERATE_RING, null, 1500); public static DustMaterial SiliconDioxide = new DustMaterial(231, "silicon_dioxide", 0xC8C8C8, QUARTZ, 1, of(new MaterialStack(Silicon, 1), new MaterialStack(Oxygen, 2)), NO_SMASHING | NO_SMELTING | CRYSTALLISABLE); + public static DustMaterial MagnesiumChloride = new DustMaterial(232, "magnesium_chloride", 0xD40D5C, DULL, 1, of(new MaterialStack(Magnesium, 1), new MaterialStack(Chlorine, 2)), 0); + public static DustMaterial SodiumSulfide = new DustMaterial(233, "sodium_sulfide", 0xFFE680, DULL, 1, of(new MaterialStack(Sodium, 2), new MaterialStack(Sulfur, 1)), 0); + public static DustMaterial PhosphorusPentoxide = new DustMaterial(234, "phosphorus_pentoxide", 0xDCDC00, DULL, 1, of(new MaterialStack(Phosphorus, 4), new MaterialStack(Oxygen, 10)), DECOMPOSITION_BY_CENTRIFUGING ); + public static DustMaterial Quicklime = new DustMaterial(235, "quicklime", 0xF0F0F0, DULL, 1, of(new MaterialStack(Calcium, 1), new MaterialStack(Oxygen, 1)), 0); + public static DustMaterial SodiumBisulfate = new DustMaterial(236, "sodium_bisulfate", 0x004455, DULL, 1, of(new MaterialStack(Sodium, 1), new MaterialStack(Hydrogen, 1), new MaterialStack(Sulfur, 1), new MaterialStack(Oxygen, 4)), DISABLE_DECOMPOSITION); + public static DustMaterial FerriteMixture = new DustMaterial(237, "ferrite_mixture", 0xB4B4B4, METALLIC, 1, of(new MaterialStack(Nickel, 1), new MaterialStack(Zinc, 1), new MaterialStack(Iron, 4)), DECOMPOSITION_BY_CENTRIFUGING ); + public static DustMaterial Magnesia = new DustMaterial(238, "magnesia", 0x887878, DULL, 1, of(new MaterialStack(Magnesium, 1), new MaterialStack(Oxygen, 1)), 0); + public static DustMaterial PlatinumGroupSludge = new DustMaterial(239, "platinum_group_sludge", 0x001E00, FINE, 1, of(), DISABLE_DECOMPOSITION); + public static DustMaterial HydratedCoal = new DustMaterial(240, "hydrated_coal", 0x464664, ROUGH, 1, of(new MaterialStack(Coal, 8), new MaterialStack(Water, 1)), 0); + public static DustMaterial SodiumBicarbonate = new DustMaterial(241, "sodium_bicarbonate", 0x565b96, ROUGH, 1, of(new MaterialStack(Sodium, 1), new MaterialStack(Hydrogen, 1), new MaterialStack(Carbon, 1), new MaterialStack(Oxygen, 3)), 0); + public static DustMaterial PotassiumDichromate = new DustMaterial(242, "potassium_dichromate", 0xFF084E, DULL, 1, of(new MaterialStack(Potassium, 2), new MaterialStack(Chrome, 2), new MaterialStack(Oxygen, 7)), 0); + public static DustMaterial ChromiumTrioxide = new DustMaterial(243, "chromium_trioxide", 0xFFE4E1, DULL, 1, of(new MaterialStack(Chrome, 1), new MaterialStack(Oxygen, 3)), 0); + public static DustMaterial AntimonyTrioxide = new DustMaterial(244, "antimony_trioxide", 0xE6E6F0, DULL, 1, of(new MaterialStack(Antimony, 2), new MaterialStack(Oxygen, 3)),0); + public static DustMaterial Zincite = new DustMaterial(245, "zincite", 0xFFFFF5, DULL, 1, of(new MaterialStack(Zinc, 1), new MaterialStack(Oxygen, 1)), 0); + public static DustMaterial CupricOxide = new DustMaterial(246, "cupric_oxide", 0x0F0F0F, DULL, 1, of(new MaterialStack(Copper, 1), new MaterialStack(Oxygen, 1)), 0); + public static DustMaterial CobaltOxide = new DustMaterial(247, "cobalt_oxide", 0x788000, DULL, 1, of(new MaterialStack(Cobalt, 1), new MaterialStack(Oxygen, 1)), 0); + public static DustMaterial ArsenicTrioxide = new DustMaterial(248, "arsenic_trioxide", 0xFFFFFF, ROUGH, 1, of(new MaterialStack(Arsenic, 2), new MaterialStack(Oxygen, 3)),0); + public static DustMaterial Massicot = new DustMaterial(249, "massicot", 0xFFDD55, DULL, 1, of(new MaterialStack(Lead, 1), new MaterialStack(Oxygen, 1)), 0); + public static DustMaterial Ferrosilite = new DustMaterial(250, "ferrosilite", 0x97632A, DULL, 1, of(new MaterialStack(Iron, 1), new MaterialStack(Silicon, 1), new MaterialStack(Oxygen, 3)), 0); + public static DustMaterial MetalMixture = new DustMaterial(251, "metal_mixture", 0x502d16, METALLIC, 1, of(), DISABLE_DECOMPOSITION); + public static DustMaterial SodiumHydroxide = new DustMaterial(252, "sodium_hydroxide", 0x003380, DULL, 1, of(new MaterialStack(Sodium, 1), new MaterialStack(Oxygen, 1), new MaterialStack(Hydrogen, 1)), 0); + public static FluidMaterial SodiumPersulfate = new FluidMaterial(253, "sodium_persulfate", 0xFFFFFF, FLUID, of(new MaterialStack(Sodium, 2), new MaterialStack(Sulfur, 2), new MaterialStack(Oxygen, 8)), 0); /** * Water Related */ - public static FluidMaterial Steam = new FluidMaterial(232, "steam", 0xFFFFFF, GAS, of(new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 1)), NO_RECYCLING | GENERATE_FLUID_BLOCK | DISABLE_DECOMPOSITION | STATE_GAS).setFluidTemperature(380); - public static FluidMaterial DistilledWater = new FluidMaterial(233, "distilled_water", 0x0000FF, FLUID, of(new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 1)), NO_RECYCLING | DISABLE_DECOMPOSITION); - public static FluidMaterial SodiumPersulfate = new FluidMaterial(244, "sodium_persulfate", 0xFFFFFF, FLUID, of(new MaterialStack(Sodium, 2), new MaterialStack(Sulfur, 2), new MaterialStack(Oxygen, 8)), 0); + public static FluidMaterial Steam = new FluidMaterial(254, "steam", 0xFFFFFF, GAS, of(new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 1)), NO_RECYCLING | GENERATE_FLUID_BLOCK | DISABLE_DECOMPOSITION | STATE_GAS).setFluidTemperature(380); + public static FluidMaterial DistilledWater = new FluidMaterial(255, "distilled_water", 0x0000FF, FLUID, of(new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 1)), NO_RECYCLING | DISABLE_DECOMPOSITION); /** - * Marked for conversion to simple + * Simple Fluids */ - public static SimpleFluidMaterial Methane = new SimpleFluidMaterial(1, "methane", 0xFFFFFF, FLUID, of(new MaterialStack(Carbon, 1), new MaterialStack(Hydrogen, 4)), STATE_GAS); - public static SimpleFluidMaterial CarbonDioxide = new SimpleFluidMaterial(2, "carbon_dioxide", 0xA9D0F5, FLUID, of(new MaterialStack(Carbon, 1), new MaterialStack(Oxygen, 2)), STATE_GAS); - public static SimpleFluidMaterial NobleGases = new SimpleFluidMaterial(3, "noble_gases", 0xA9D0F5, FLUID, of(new MaterialStack(CarbonDioxide, 25), new MaterialStack(Helium, 11), new MaterialStack(Methane, 4), new MaterialStack(Deuterium, 2), new MaterialStack(Radon, 1)), DISABLE_DECOMPOSITION); - public static SimpleFluidMaterial Air = new SimpleFluidMaterial(4, "air", 0xA9D0F5, GAS, of(new MaterialStack(Nitrogen, 40), new MaterialStack(Oxygen, 11), new MaterialStack(Argon, 1), new MaterialStack(NobleGases, 1)), STATE_GAS | DISABLE_DECOMPOSITION); - public static SimpleFluidMaterial LiquidAir = new SimpleFluidMaterial(5, "liquid_air", 0xA9D0F5, FLUID, of(new MaterialStack(Nitrogen, 40), new MaterialStack(Oxygen, 11), new MaterialStack(Argon, 1), new MaterialStack(NobleGases, 1)), STATE_GAS | DISABLE_DECOMPOSITION); - public static SimpleFluidMaterial TitaniumTetrachloride = new SimpleFluidMaterial(6, "titanium_tetrachloride", 0xD40D5C, FLUID, of(new MaterialStack(Titanium, 1), new MaterialStack(Chlorine, 4)), DISABLE_DECOMPOSITION).setFluidTemperature(2200); - public static SimpleFluidMaterial NitrogenDioxide = new SimpleFluidMaterial(7, "nitrogen_dioxide", 0xFFFFFF, GAS, of(new MaterialStack(Nitrogen, 1), new MaterialStack(Oxygen, 2)), STATE_GAS); - public static SimpleFluidMaterial HydrogenSulfide = new SimpleFluidMaterial(8, "hydrogen_sulfide", 0xFFFFFF, FLUID, of(new MaterialStack(Hydrogen, 2), new MaterialStack(Sulfur, 1)), STATE_GAS); - public static SimpleFluidMaterial Epichlorohydrin = new SimpleFluidMaterial(9, "epichlorohydrin", 0xFFFFFF, FLUID, of(new MaterialStack(Carbon, 3), new MaterialStack(Hydrogen, 5), new MaterialStack(Chlorine, 1), new MaterialStack(Oxygen, 1)), 0); - public static SimpleFluidMaterial NitricAcid = new SimpleFluidMaterial(10, "nitric_acid", 0xCCCC00, FLUID, of(new MaterialStack(Hydrogen, 1), new MaterialStack(Nitrogen, 1), new MaterialStack(Oxygen, 3)), 0); - public static SimpleFluidMaterial SulfuricAcid = new SimpleFluidMaterial(11, "sulfuric_acid", 0xFFFFFF, FLUID, of(new MaterialStack(Hydrogen, 2), new MaterialStack(Sulfur, 1), new MaterialStack(Oxygen, 4)), 0); - public static SimpleFluidMaterial NitrationMixture = new SimpleFluidMaterial(12, "nitration_mixture", 0xE6E2AB, FLUID, of(new MaterialStack(NitricAcid, 1), new MaterialStack(SulfuricAcid, 1)), DISABLE_DECOMPOSITION); - public static SimpleFluidMaterial PhosphoricAcid = new SimpleFluidMaterial(13, "phosphoric_acid", 0xDCDC01, FLUID, of(new MaterialStack(Hydrogen, 3), new MaterialStack(Phosphorus, 1), new MaterialStack(Oxygen, 4)), 0); - public static SimpleFluidMaterial SulfurTrioxide = new SimpleFluidMaterial(14, "sulfur_trioxide", 0xA0A014, GAS, of(new MaterialStack(Sulfur, 1), new MaterialStack(Oxygen, 3)), STATE_GAS); - public static SimpleFluidMaterial SulfurDioxide = new SimpleFluidMaterial(15, "sulfur_dioxide", 0xC8C819, GAS, of(new MaterialStack(Sulfur, 1), new MaterialStack(Oxygen, 2)), STATE_GAS); - public static SimpleFluidMaterial CarbonMonoxide = new SimpleFluidMaterial(16, "carbon_monoxide", 0x0E4880, GAS, of(new MaterialStack(Carbon, 1), new MaterialStack(Oxygen, 1)), STATE_GAS); - public static SimpleFluidMaterial DilutedSulfuricAcid = new SimpleFluidMaterial(17, "diluted_sulfuric_acid", 0xC07820, FLUID, of(new MaterialStack(Hydrogen, 2), new MaterialStack(Sulfur, 1), new MaterialStack(Oxygen, 4)), DISABLE_DECOMPOSITION); - public static SimpleFluidMaterial HydrochloricAcid = new SimpleFluidMaterial(18, "hydrochloric_acid", 0xFFFFFF, FLUID, of(new MaterialStack(Hydrogen, 1), new MaterialStack(Chlorine, 1)), 0); - public static SimpleFluidMaterial DilutedHydrochloricAcid = new SimpleFluidMaterial(19, "diluted_hydrochloric_acid", 0x99A7A3, FLUID, of(new MaterialStack(Hydrogen, 1), new MaterialStack(Chlorine, 1)), DISABLE_DECOMPOSITION); - public static SimpleFluidMaterial HypochlorousAcid = new SimpleFluidMaterial(20, "hypochlorous_acid", 0x6F8A91, FLUID, of(new MaterialStack(Hydrogen, 1), new MaterialStack(Chlorine, 1), new MaterialStack(Oxygen, 1)), 0); - public static SimpleFluidMaterial Ammonia = new SimpleFluidMaterial(21, "ammonia", 0x3F3480, GAS, of(new MaterialStack(Nitrogen, 1), new MaterialStack(Hydrogen, 3)), STATE_GAS); - public static SimpleFluidMaterial Chloramine = new SimpleFluidMaterial(22, "chloramine", 0x3F9F80, GAS, of(new MaterialStack(Nitrogen, 1), new MaterialStack(Hydrogen, 1), new MaterialStack(HydrochloricAcid, 1)), STATE_GAS); - public static SimpleFluidMaterial NickelSulfateSolution = new SimpleFluidMaterial(23, "nickel_sulfate_water_solution", 0x3EB640, FLUID, of(new MaterialStack(Nickel, 1), new MaterialStack(Sulfur, 1), new MaterialStack(Oxygen, 4), new MaterialStack(Water, 6)), 0); - public static SimpleFluidMaterial CopperSulfateSolution = new SimpleFluidMaterial(24, "blue_vitriol_water_solution", 0x48A5C0, FLUID, of(new MaterialStack(Copper, 1), new MaterialStack(Sulfur, 1), new MaterialStack(Oxygen, 4), new MaterialStack(Water, 5)), 0); - public static SimpleFluidMaterial LeadZincSolution = new SimpleFluidMaterial(25, "lead_zinc_solution", 0xFFFFFF, FLUID, of(new MaterialStack(Lead, 1), new MaterialStack(Silver, 1), new MaterialStack(Zinc, 1), new MaterialStack(Sulfur, 3), new MaterialStack(Water, 1)), DECOMPOSITION_BY_CENTRIFUGING); - public static SimpleFluidMaterial HydrofluoricAcid = new SimpleFluidMaterial(26, "hydrofluoric_acid", 0x0088AA, FLUID, of(new MaterialStack(Hydrogen, 1), new MaterialStack(Fluorine, 1)), 0); - public static SimpleFluidMaterial NitricOxide = new SimpleFluidMaterial(27, "nitric_oxide", 0x7DC8F0, GAS, of(new MaterialStack(Nitrogen, 1), new MaterialStack(Oxygen, 1)), STATE_GAS); - public static SimpleFluidMaterial Chloroform = new SimpleFluidMaterial(28, "chloroform", 0x892CA0, FLUID, of(new MaterialStack(Carbon, 1), new MaterialStack(Hydrogen, 1), new MaterialStack(Chlorine, 3)), 0); - public static SimpleFluidMaterial Cumene = new SimpleFluidMaterial(29, "cumene", 0x552200, FLUID, of(new MaterialStack(Carbon, 9), new MaterialStack(Hydrogen, 12)), DISABLE_DECOMPOSITION); - public static SimpleFluidMaterial Tetrafluoroethylene = new SimpleFluidMaterial(30, "tetrafluoroethylene", 0x7D7D7D, GAS, of(new MaterialStack(Carbon, 2), new MaterialStack(Fluorine, 4)), STATE_GAS | DISABLE_DECOMPOSITION); - public static SimpleFluidMaterial Chloromethane = new SimpleFluidMaterial(31, "chloromethane", 0xC82CA0, GAS, of(new MaterialStack(Carbon, 1), new MaterialStack(Hydrogen, 3), new MaterialStack(Chlorine, 1)), STATE_GAS | DISABLE_DECOMPOSITION); - public static SimpleFluidMaterial AllylChloride = new SimpleFluidMaterial(32, "allyl_chloride", 0x87DEAA, FLUID, of(new MaterialStack(Carbon, 2), new MaterialStack(Methane, 1), new MaterialStack(HydrochloricAcid, 1)), 0); - public static SimpleFluidMaterial Isoprene = new SimpleFluidMaterial(33, "isoprene", 0x141414, FLUID, of(new MaterialStack(Carbon, 5), new MaterialStack(Hydrogen, 8)), 0); - public static SimpleFluidMaterial Propane = new SimpleFluidMaterial(34, "propane", 0xFAE250, GAS, of(new MaterialStack(Carbon, 3), new MaterialStack(Hydrogen, 8)), STATE_GAS); - public static SimpleFluidMaterial Propene = new SimpleFluidMaterial(35, "propene", 0xFFDD55, GAS, of(new MaterialStack(Carbon, 3), new MaterialStack(Hydrogen, 6)), STATE_GAS); - public static SimpleFluidMaterial Ethane = new SimpleFluidMaterial(36, "ethane", 0xC8C8FF, GAS, of(new MaterialStack(Carbon, 2), new MaterialStack(Hydrogen, 6)), STATE_GAS); - public static SimpleFluidMaterial Butene = new SimpleFluidMaterial(37, "butene", 0xCF5005, GAS, of(new MaterialStack(Carbon, 4), new MaterialStack(Hydrogen, 8)), STATE_GAS); - public static SimpleFluidMaterial Butane = new SimpleFluidMaterial(38, "butane", 0xB6371E, GAS, of(new MaterialStack(Carbon, 4), new MaterialStack(Hydrogen, 10)), STATE_GAS); - public static SimpleFluidMaterial DissolvedCalciumAcetate = new SimpleFluidMaterial(39, "dissolved_calcium_acetate", 0xDCC8B4, FLUID, of(new MaterialStack(Calcium, 1), new MaterialStack(Carbon, 4), new MaterialStack(Oxygen, 4), new MaterialStack(Hydrogen, 6), new MaterialStack(Water, 1)), DISABLE_DECOMPOSITION); - public static SimpleFluidMaterial VinylAcetate = new SimpleFluidMaterial(40, "vinyl_acetate", 0xE1B380, FLUID, of(new MaterialStack(Carbon, 4), new MaterialStack(Hydrogen, 6), new MaterialStack(Oxygen, 2)), DISABLE_DECOMPOSITION); - public static SimpleFluidMaterial MethylAcetate = new SimpleFluidMaterial(41, "methyl_acetate", 0xEEC6AF, FLUID, of(new MaterialStack(Carbon, 3), new MaterialStack(Hydrogen, 6), new MaterialStack(Oxygen, 2)), DISABLE_DECOMPOSITION); - public static SimpleFluidMaterial Ethenone = new SimpleFluidMaterial(42, "ethenone", 0x141446, FLUID, of(new MaterialStack(Carbon, 2), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 1)), DISABLE_DECOMPOSITION | STATE_GAS); - public static SimpleFluidMaterial Tetranitromethane = new SimpleFluidMaterial(43, "tetranitromethane", 0x0F2828, FLUID, of(new MaterialStack(Carbon, 1), new MaterialStack(Nitrogen, 4), new MaterialStack(Oxygen, 8)), DISABLE_DECOMPOSITION); - public static SimpleFluidMaterial Dimethylamine = new SimpleFluidMaterial(44, "dimethylamine", 0x554469, GAS, of(new MaterialStack(Carbon, 2), new MaterialStack(Hydrogen, 7), new MaterialStack(Nitrogen, 1)), STATE_GAS | DISABLE_DECOMPOSITION); - public static SimpleFluidMaterial Dimethylhydrazine = new SimpleFluidMaterial(45, "dimethylhidrazine", 0x000055, FLUID, of(new MaterialStack(Carbon, 2), new MaterialStack(Hydrogen, 8), new MaterialStack(Nitrogen, 2)), DISABLE_DECOMPOSITION); - public static SimpleFluidMaterial DinitrogenTetroxide = new SimpleFluidMaterial(46, "dinitrogen_tetroxide", 0x004184, GAS, of(new MaterialStack(Nitrogen, 2), new MaterialStack(Oxygen, 4)), STATE_GAS); - public static SimpleFluidMaterial Dimethyldichlorosilane = new SimpleFluidMaterial(47, "dimethyldichlorosilane", 0x441650, FLUID, of(new MaterialStack(Carbon, 2), new MaterialStack(Hydrogen, 6), new MaterialStack(Chlorine, 2), new MaterialStack(Silicon, 1)), DISABLE_DECOMPOSITION); - public static SimpleFluidMaterial Styrene = new SimpleFluidMaterial(48, "styrene", 0xD2C8BE, FLUID, of(new MaterialStack(Carbon, 8), new MaterialStack(Hydrogen, 8)), DISABLE_DECOMPOSITION); - public static SimpleFluidMaterial Butadiene = new SimpleFluidMaterial(49, "butadiene", 11885072, GAS, of(new MaterialStack(Carbon, 4), new MaterialStack(Hydrogen, 6)), DISABLE_DECOMPOSITION | STATE_GAS); - public static SimpleFluidMaterial Dichlorobenzene = new SimpleFluidMaterial(50, "dichlorobenzene", 0x004455, FLUID, of(new MaterialStack(Carbon, 6), new MaterialStack(Hydrogen, 4), new MaterialStack(Chlorine, 2)), DISABLE_DECOMPOSITION); - public static SimpleFluidMaterial AceticAcid = new SimpleFluidMaterial(51, "acetic_acid", 0xC8B4A0, FLUID, of(new MaterialStack(Carbon, 2), new MaterialStack(Hydrogen, 4), new MaterialStack(Oxygen, 2)), DISABLE_DECOMPOSITION); - public static SimpleFluidMaterial Phenol = new SimpleFluidMaterial(52, "phenol", 0x784421, FLUID, of(new MaterialStack(Carbon, 6), new MaterialStack(Hydrogen, 6), new MaterialStack(Oxygen, 1)), DISABLE_DECOMPOSITION); - public static SimpleFluidMaterial BisphenolA = new SimpleFluidMaterial(53, "bisphenol_a", 0xD4AA00, FLUID, of(new MaterialStack(Carbon, 15), new MaterialStack(Hydrogen, 16), new MaterialStack(Oxygen, 2)), DISABLE_DECOMPOSITION); - public static SimpleFluidMaterial VinylChloride = new SimpleFluidMaterial(54, "vinyl_chloride", 0xE1F0F0, GAS, of(new MaterialStack(Carbon, 2), new MaterialStack(Hydrogen, 3), new MaterialStack(Chlorine, 1)), STATE_GAS | DISABLE_DECOMPOSITION); - public static SimpleFluidMaterial Ethylene = new SimpleFluidMaterial(55, "ethylene", 0xE1E1E1, GAS, of(new MaterialStack(Carbon, 2), new MaterialStack(Hydrogen, 4)), STATE_GAS); - public static SimpleFluidMaterial Benzene = new SimpleFluidMaterial(56, "benzene", 0x1A1A1A, FLUID, of(new MaterialStack(Carbon, 6), new MaterialStack(Hydrogen, 6)), DISABLE_DECOMPOSITION); - public static SimpleFluidMaterial Acetone = new SimpleFluidMaterial(57, "acetone", 0xAFAFAF, FLUID, of(new MaterialStack(Carbon, 3), new MaterialStack(Hydrogen, 6), new MaterialStack(Oxygen, 1)), DISABLE_DECOMPOSITION); - public static SimpleFluidMaterial Glycerol = new SimpleFluidMaterial(58, "glycerol", 0x87DE87, FLUID, of(new MaterialStack(Carbon, 3), new MaterialStack(Hydrogen, 8), new MaterialStack(Oxygen, 3)), 0); - public static SimpleFluidMaterial Methanol = new SimpleFluidMaterial(59, "methanol", 0xAA8800, FLUID, of(new MaterialStack(Carbon, 1), new MaterialStack(Hydrogen, 4), new MaterialStack(Oxygen, 1)), 0); - public static SimpleFluidMaterial SaltWater = new SimpleFluidMaterial(60, "salt_water", 0x0000C8, FLUID, of(new MaterialStack(Salt, 1), new MaterialStack(Water, 1)), DISABLE_DECOMPOSITION); - public static SimpleFluidMaterial WoodGas = new SimpleFluidMaterial(61, "wood_gas", 0xDECD87, GAS, of(), STATE_GAS | DISABLE_DECOMPOSITION); - public static SimpleFluidMaterial WoodVinegar = new SimpleFluidMaterial(62, "wood_vinegar", 0xD45500, FLUID, of(), 0); - public static SimpleFluidMaterial WoodTar = new SimpleFluidMaterial(63, "wood_tar", 0x28170B, FLUID, of(), 0); - public static SimpleFluidMaterial CharcoalByproducts = new SimpleFluidMaterial(64, "charcoal_byproducts", 0x784421, FLUID, of(), 0); - public static SimpleFluidMaterial Biomass = new SimpleFluidMaterial(65, "biomass", 0x00FF00, FLUID, of(), 0); - public static SimpleFluidMaterial BioDiesel = new SimpleFluidMaterial(66, "bio_diesel", 0xFF8000, FLUID, of(), 0); - public static SimpleFluidMaterial FermentedBiomass = new SimpleFluidMaterial(67, "fermented_biomass", 0x445500, FLUID, of(), 0); - public static SimpleFluidMaterial Creosote = new SimpleFluidMaterial(68, "creosote", 0x804000, FLUID, of(), 0); - public static SimpleFluidMaterial Ethanol = new SimpleFluidMaterial(69, "ethanol", 0xFFFFFF, FLUID, of(new MaterialStack(Carbon, 2), new MaterialStack(Hydrogen, 6), new MaterialStack(Oxygen, 1)), DISABLE_DECOMPOSITION); - public static SimpleFluidMaterial Diesel = new SimpleFluidMaterial(70, "fuel", 0xFFFFFF, FLUID, of(), 0); - public static SimpleFluidMaterial RocketFuel = new SimpleFluidMaterial(71, "rocket_fuel", 0xBDB78C, FLUID, of(), 0); - public static SimpleFluidMaterial Glue = new SimpleFluidMaterial(72, "glue", 0xC8C400, FLUID, of(), 0); - public static SimpleFluidMaterial Lubricant = new SimpleFluidMaterial(73, "lubricant", 0xFFFFFF, FLUID, of(), 0); - public static SimpleFluidMaterial McGuffium239 = new SimpleFluidMaterial(74, "mc_guffium239", 0xFFFFFF, FLUID, of(), 0); - public static SimpleFluidMaterial IndiumConcentrate = new SimpleFluidMaterial(75, "indium_concentrate", 0x0e2950, FLUID, of(), 0); - public static SimpleFluidMaterial SeedOil = new SimpleFluidMaterial(76, "seed_oil", 0xC4FF00, FLUID, of(), 0); - public static SimpleFluidMaterial DrillingFluid = new SimpleFluidMaterial(77, "drilling_fluid", 0xFFFFAA, FLUID, of(), 0); - public static SimpleFluidMaterial ConstructionFoam = new SimpleFluidMaterial(78, "construction_foam", 0x808080, FLUID, of(), 0); - public static SimpleFluidMaterial HydroCrackedEthane = new SimpleFluidMaterial(79, "hydrocracked_ethane", 0x9696BC, GAS, of(), STATE_GAS); - public static SimpleFluidMaterial HydroCrackedEthylene = new SimpleFluidMaterial(80, "hydrocracked_ethylene", 0xA3A3A0, GAS, of(), STATE_GAS); - public static SimpleFluidMaterial HydroCrackedPropene = new SimpleFluidMaterial(81, "hydrocracked_propene", 0xBEA540, GAS, of(), STATE_GAS); - public static SimpleFluidMaterial HydroCrackedPropane = new SimpleFluidMaterial(82, "hydrocracked_propane", 0xBEA540, GAS, of(), STATE_GAS); - public static SimpleFluidMaterial HydroCrackedLightFuel = new SimpleFluidMaterial(83, "hydrocracked_light_fuel", 0xB7AF08, FLUID, of(), 0); - public static SimpleFluidMaterial HydroCrackedButane = new SimpleFluidMaterial(84, "hydrocracked_butane", 0x852C18, GAS, of(), STATE_GAS); - public static SimpleFluidMaterial HydroCrackedNaphtha = new SimpleFluidMaterial(85, "hydrocracked_naphtha", 0xBFB608, FLUID, of(), 0); - public static SimpleFluidMaterial HydroCrackedHeavyFuel = new SimpleFluidMaterial(86, "hydrocracked_heavy_fuel", 0xFFFF00, FLUID, of(), 0); - public static SimpleFluidMaterial HydroCrackedGas = new SimpleFluidMaterial(87, "hydrocracked_gas", 0xB4B4B4, GAS, of(), STATE_GAS); - public static SimpleFluidMaterial HydroCrackedButene = new SimpleFluidMaterial(88, "hydrocracked_butene", 0x993E05, GAS, of(), STATE_GAS); - public static SimpleFluidMaterial HydroCrackedButadiene = new SimpleFluidMaterial(89, "hydrocracked_butadiene", 0xAD5203, GAS, of(), STATE_GAS); - public static SimpleFluidMaterial SteamCrackedEthane = new SimpleFluidMaterial(90, "steamcracked_ethane", 0x9696BC, GAS, of(), STATE_GAS); - public static SimpleFluidMaterial SteamCrackedEthylene = new SimpleFluidMaterial(91, "steamcracked_ethylene", 0xA3A3A0, GAS, of(), STATE_GAS); - public static SimpleFluidMaterial SteamCrackedPropene = new SimpleFluidMaterial(92, "steamcracked_propene", 0xBEA540, GAS, of(), STATE_GAS); - public static SimpleFluidMaterial SteamCrackedPropane = new SimpleFluidMaterial(93, "steamcracked_propane", 0xBEA540, GAS, of(), STATE_GAS); - public static SimpleFluidMaterial SteamCrackedButane = new SimpleFluidMaterial(94, "steamcracked_butane", 0x852C18, GAS, of(), STATE_GAS); - public static SimpleFluidMaterial SteamCrackedNaphtha = new SimpleFluidMaterial(95, "steamcracked_naphtha", 0xBFB608, FLUID, of(), 0); - public static SimpleFluidMaterial SteamCrackedGas = new SimpleFluidMaterial(96, "steamcracked_gas", 0xB4B4B4, GAS, of(), STATE_GAS); - public static SimpleFluidMaterial SteamCrackedButene = new SimpleFluidMaterial(97, "steamcracked_butene", 0x993E05, GAS, of(), STATE_GAS); - public static SimpleFluidMaterial SteamCrackedButadiene = new SimpleFluidMaterial(98, "steamcracked_butadiene", 0xAD5203, GAS, of(), STATE_GAS); - public static SimpleFluidMaterial SulfuricGas = new SimpleFluidMaterial(99, "sulfuric_gas", 0xFFFFFF, GAS, of(), STATE_GAS); - public static SimpleFluidMaterial RefineryGas = new SimpleFluidMaterial(100, "refinery_gas", 0xFFFFFF, GAS, of(), STATE_GAS); - public static SimpleFluidMaterial SulfuricNaphtha = new SimpleFluidMaterial(101, "sulfuric_naphtha", 0xFFFFFF, FLUID, of(), 0); - public static SimpleFluidMaterial SulfuricLightFuel = new SimpleFluidMaterial(102, "sulfuric_light_fuel", 0xFFFFFF, FLUID, of(), 0); - public static SimpleFluidMaterial SulfuricHeavyFuel = new SimpleFluidMaterial(103, "sulfuric_heavy_fuel", 0xFFFFFF, FLUID, of(), 0); - public static SimpleFluidMaterial Naphtha = new SimpleFluidMaterial(104, "naphtha", 0xFFFFFF, FLUID, of(), 0); - public static SimpleFluidMaterial LightFuel = new SimpleFluidMaterial(105, "light_fuel", 0xFFFFFF, FLUID, of(), 0); - public static SimpleFluidMaterial HeavyFuel = new SimpleFluidMaterial(106, "heavy_fuel", 0xFFFFFF, FLUID, of(), 0); - public static SimpleFluidMaterial LPG = new SimpleFluidMaterial(107, "lpg", 0xFFFFFF, GAS, of(), STATE_GAS); - public static SimpleFluidMaterial SteamCrackedLightFuel = new SimpleFluidMaterial(108, "steamcracked_light_fuel", 0xFFFFFF, FLUID, of(), 0); - public static SimpleFluidMaterial SteamCrackedHeavyFuel = new SimpleFluidMaterial(109, "steamcracked_heavy_fuel", 0xFFFFFF, FLUID, of(), 0); - public static SimpleFluidMaterial Toluene = new SimpleFluidMaterial(110, "toluene", 0xFFFFFF, FLUID, of(new MaterialStack(Carbon, 7), new MaterialStack(Hydrogen, 8)), DISABLE_DECOMPOSITION); - public static SimpleFluidMaterial UUAmplifier = new SimpleFluidMaterial(111, "uuamplifier", 0x000000, FLUID, of(), 0); - public static SimpleFluidMaterial UUMatter = new SimpleFluidMaterial(112, "uumatter", 0x8000C4, FLUID, of(), 0); - public static SimpleFluidMaterial Honey = new SimpleFluidMaterial(113, "honey", 0xFFFFFF, FLUID, of(), 0); - public static SimpleFluidMaterial Juice = new SimpleFluidMaterial(114, "juice", 0xA8C972, FLUID, of(), 0); - public static SimpleFluidMaterial RawGrowthMedium = new SimpleFluidMaterial(115, "raw_growth_medium", 10777425, FLUID, of(), DISABLE_DECOMPOSITION); - public static SimpleFluidMaterial SterileGrowthMedium = new SimpleFluidMaterial(116, "sterilized_growth_medium", 11306862, FLUID, of(), DISABLE_DECOMPOSITION); - public static SimpleFluidMaterial Oil = new SimpleFluidMaterial(117, "oil", 0x0A0A0A, FLUID, of(), GENERATE_FLUID_BLOCK); - public static SimpleFluidMaterial OilHeavy = new SimpleFluidMaterial(118, "oil_heavy", 0x0A0A0A, FLUID, of(), GENERATE_FLUID_BLOCK); - public static SimpleFluidMaterial OilMedium = new SimpleFluidMaterial(119, "oil_medium", 0x0A0A0A, FLUID, of(), GENERATE_FLUID_BLOCK); - public static SimpleFluidMaterial OilLight = new SimpleFluidMaterial(120, "oil_light", 0x0A0A0A, FLUID, of(), GENERATE_FLUID_BLOCK); - public static SimpleFluidMaterial NaturalGas = new SimpleFluidMaterial(121, "natural_gas", 0xFFFFFF, GAS, of(), STATE_GAS | GENERATE_FLUID_BLOCK); - public static SimpleFluidMaterial DiphenylIsophtalate = new SimpleFluidMaterial(122, "diphenyl_isophthalate", 0x246E57, DULL, of(new MaterialStack(Carbon, 20), new MaterialStack(Hydrogen, 14), new MaterialStack(Oxygen, 4)), DISABLE_DECOMPOSITION); - public static SimpleFluidMaterial PhthalicAcid = new SimpleFluidMaterial(123, "phthalic_acid", 0xD1D1D1, FLUID, of(new MaterialStack(Carbon, 8), new MaterialStack(Hydrogen, 6), new MaterialStack(Oxygen, 4)), GENERATE_FLUID_BLOCK | DISABLE_DECOMPOSITION); - public static SimpleFluidMaterial Dimethylbenzene = new SimpleFluidMaterial(124, "dimethylbenzene", 0x669C40, FLUID, of(new MaterialStack(Carbon, 8), new MaterialStack(Hydrogen, 10)), DISABLE_DECOMPOSITION).setFormula("C6H4(CH3)2"); - public static SimpleFluidMaterial Diaminobenzidine = new SimpleFluidMaterial(125, "diaminobenzidine", 0x337D59, DULL, of(new MaterialStack(Carbon, 12), new MaterialStack(Hydrogen, 14), new MaterialStack(Nitrogen, 4)), DISABLE_DECOMPOSITION); - public static SimpleFluidMaterial Dichlorobenzidine = new SimpleFluidMaterial(126, "dichlorobenzidine", 0xA1DEA6, DULL, of(new MaterialStack(Carbon, 12), new MaterialStack(Hydrogen, 10), new MaterialStack(Chlorine, 2), new MaterialStack(Nitrogen, 2)), DISABLE_DECOMPOSITION); - public static SimpleFluidMaterial Nitrochlorobenzene = new SimpleFluidMaterial(127, "nitrochlorobenzene", 0x8FB51A, DULL, of(new MaterialStack(Carbon, 6), new MaterialStack(Hydrogen, 4), new MaterialStack(Chlorine, 1), new MaterialStack(Nitrogen, 1), new MaterialStack(Oxygen, 2)), DISABLE_DECOMPOSITION); - public static SimpleFluidMaterial Chlorobenzene = new SimpleFluidMaterial(128, "chlorobenzene", 0x326A3E, DULL, of(new MaterialStack(Carbon, 6), new MaterialStack(Hydrogen, 5), new MaterialStack(Chlorine, 1)), DISABLE_DECOMPOSITION); - public static SimpleFluidMaterial Iron3Chloride = new SimpleFluidMaterial(129, "iron_iii_chloride", 0x060B0B, FLUID, of(new MaterialStack(Iron, 1), new MaterialStack(Chlorine, 3)), DECOMPOSITION_BY_ELECTROLYZING); - public static SimpleFluidMaterial Bacteria = new SimpleFluidMaterial(130, "bacteria", 0x808000, FLUID, of(), 0); - public static SimpleFluidMaterial BacterialSludge = new SimpleFluidMaterial(131, "bacterial_sludge", 0x355E3B, FLUID, of(), 0); - public static SimpleFluidMaterial EnrichedBacterialSludge = new SimpleFluidMaterial(132, "enriched_bacterial_sludge", 0x7FFF00, FLUID, of(), 0); - public static SimpleFluidMaterial FermentedBacterialSludge = new SimpleFluidMaterial(133, "fermented_bacterial_sludge", 0x32CD32, FLUID, of(), 0); - public static SimpleFluidMaterial Mutagen = new SimpleFluidMaterial(134, "mutagen", 0x00FF7F, FLUID, of(), 0); - public static SimpleFluidMaterial GelatinMixture = new SimpleFluidMaterial(135, "gelatin_mixture", 0x588BAE, FLUID, of(), 0); - public static SimpleFluidMaterial UraniumHexafluoride = new SimpleFluidMaterial(136, "uranium_hexafluoride", 0x42d126, GAS, of(new MaterialStack(Uranium238, 1), new MaterialStack(Fluorine, 6)), DISABLE_DECOMPOSITION | STATE_GAS).setFormula("UF6"); - public static SimpleFluidMaterial EnrichedUraniumHexafluoride = new SimpleFluidMaterial(137, "enriched_uranium_hexafluoride", 0x4bf52a, GAS, of(new MaterialStack(Uranium235, 1), new MaterialStack(Fluorine, 6)), DISABLE_DECOMPOSITION | STATE_GAS).setFormula("UF6"); - public static SimpleFluidMaterial DepletedUraniumHexafluoride = new SimpleFluidMaterial(138, "depleted_uranium_hexafluoride", 0x74ba66, GAS, of(new MaterialStack(Uranium238, 1), new MaterialStack(Fluorine, 6)), DISABLE_DECOMPOSITION | STATE_GAS).setFormula("UF6"); + public static SimpleFluidMaterial Methane = new SimpleFluidMaterial("methane", 0xFFFFFF, FLUID, of(new MaterialStack(Carbon, 1), new MaterialStack(Hydrogen, 4)), STATE_GAS); + public static SimpleFluidMaterial CarbonDioxide = new SimpleFluidMaterial("carbon_dioxide", 0xA9D0F5, FLUID, of(new MaterialStack(Carbon, 1), new MaterialStack(Oxygen, 2)), STATE_GAS); + public static SimpleFluidMaterial NobleGases = new SimpleFluidMaterial("noble_gases", 0xA9D0F5, FLUID, of(new MaterialStack(CarbonDioxide, 25), new MaterialStack(Helium, 11), new MaterialStack(Methane, 4), new MaterialStack(Deuterium, 2), new MaterialStack(Radon, 1)), DISABLE_DECOMPOSITION); + public static SimpleFluidMaterial Air = new SimpleFluidMaterial("air", 0xA9D0F5, GAS, of(new MaterialStack(Nitrogen, 40), new MaterialStack(Oxygen, 11), new MaterialStack(Argon, 1), new MaterialStack(NobleGases, 1)), STATE_GAS | DISABLE_DECOMPOSITION); + public static SimpleFluidMaterial LiquidAir = new SimpleFluidMaterial("liquid_air", 0xA9D0F5, FLUID, of(new MaterialStack(Nitrogen, 40), new MaterialStack(Oxygen, 11), new MaterialStack(Argon, 1), new MaterialStack(NobleGases, 1)), STATE_GAS | DISABLE_DECOMPOSITION); + public static SimpleFluidMaterial TitaniumTetrachloride = new SimpleFluidMaterial("titanium_tetrachloride", 0xD40D5C, FLUID, of(new MaterialStack(Titanium, 1), new MaterialStack(Chlorine, 4)), DISABLE_DECOMPOSITION).setFluidTemperature(2200); + public static SimpleFluidMaterial NitrogenDioxide = new SimpleFluidMaterial("nitrogen_dioxide", 0xFFFFFF, GAS, of(new MaterialStack(Nitrogen, 1), new MaterialStack(Oxygen, 2)), STATE_GAS); + public static SimpleFluidMaterial HydrogenSulfide = new SimpleFluidMaterial("hydrogen_sulfide", 0xFFFFFF, FLUID, of(new MaterialStack(Hydrogen, 2), new MaterialStack(Sulfur, 1)), STATE_GAS); + public static SimpleFluidMaterial Epichlorohydrin = new SimpleFluidMaterial("epichlorohydrin", 0xFFFFFF, FLUID, of(new MaterialStack(Carbon, 3), new MaterialStack(Hydrogen, 5), new MaterialStack(Chlorine, 1), new MaterialStack(Oxygen, 1)), 0); + public static SimpleFluidMaterial NitricAcid = new SimpleFluidMaterial("nitric_acid", 0xCCCC00, FLUID, of(new MaterialStack(Hydrogen, 1), new MaterialStack(Nitrogen, 1), new MaterialStack(Oxygen, 3)), 0); + public static SimpleFluidMaterial SulfuricAcid = new SimpleFluidMaterial("sulfuric_acid", 0xFFFFFF, FLUID, of(new MaterialStack(Hydrogen, 2), new MaterialStack(Sulfur, 1), new MaterialStack(Oxygen, 4)), 0); + public static SimpleFluidMaterial NitrationMixture = new SimpleFluidMaterial("nitration_mixture", 0xE6E2AB, FLUID, of(new MaterialStack(NitricAcid, 1), new MaterialStack(SulfuricAcid, 1)), DISABLE_DECOMPOSITION); + public static SimpleFluidMaterial PhosphoricAcid = new SimpleFluidMaterial("phosphoric_acid", 0xDCDC01, FLUID, of(new MaterialStack(Hydrogen, 3), new MaterialStack(Phosphorus, 1), new MaterialStack(Oxygen, 4)), 0); + public static SimpleFluidMaterial SulfurTrioxide = new SimpleFluidMaterial("sulfur_trioxide", 0xA0A014, GAS, of(new MaterialStack(Sulfur, 1), new MaterialStack(Oxygen, 3)), STATE_GAS); + public static SimpleFluidMaterial SulfurDioxide = new SimpleFluidMaterial("sulfur_dioxide", 0xC8C819, GAS, of(new MaterialStack(Sulfur, 1), new MaterialStack(Oxygen, 2)), STATE_GAS); + public static SimpleFluidMaterial CarbonMonoxide = new SimpleFluidMaterial("carbon_monoxide", 0x0E4880, GAS, of(new MaterialStack(Carbon, 1), new MaterialStack(Oxygen, 1)), STATE_GAS); + public static SimpleFluidMaterial DilutedSulfuricAcid = new SimpleFluidMaterial("diluted_sulfuric_acid", 0xC07820, FLUID, of(new MaterialStack(Hydrogen, 2), new MaterialStack(Sulfur, 1), new MaterialStack(Oxygen, 4)), DISABLE_DECOMPOSITION); + public static SimpleFluidMaterial HydrochloricAcid = new SimpleFluidMaterial("hydrochloric_acid", 0xFFFFFF, FLUID, of(new MaterialStack(Hydrogen, 1), new MaterialStack(Chlorine, 1)), 0); + public static SimpleFluidMaterial DilutedHydrochloricAcid = new SimpleFluidMaterial("diluted_hydrochloric_acid", 0x99A7A3, FLUID, of(new MaterialStack(Hydrogen, 1), new MaterialStack(Chlorine, 1)), DISABLE_DECOMPOSITION); + public static SimpleFluidMaterial HypochlorousAcid = new SimpleFluidMaterial("hypochlorous_acid", 0x6F8A91, FLUID, of(new MaterialStack(Hydrogen, 1), new MaterialStack(Chlorine, 1), new MaterialStack(Oxygen, 1)), 0); + public static SimpleFluidMaterial Ammonia = new SimpleFluidMaterial("ammonia", 0x3F3480, GAS, of(new MaterialStack(Nitrogen, 1), new MaterialStack(Hydrogen, 3)), STATE_GAS); + public static SimpleFluidMaterial Chloramine = new SimpleFluidMaterial("chloramine", 0x3F9F80, GAS, of(new MaterialStack(Nitrogen, 1), new MaterialStack(Hydrogen, 1), new MaterialStack(HydrochloricAcid, 1)), STATE_GAS); + public static SimpleFluidMaterial NickelSulfateSolution = new SimpleFluidMaterial("nickel_sulfate_water_solution", 0x3EB640, FLUID, of(new MaterialStack(Nickel, 1), new MaterialStack(Sulfur, 1), new MaterialStack(Oxygen, 4), new MaterialStack(Water, 6)), 0); + public static SimpleFluidMaterial CopperSulfateSolution = new SimpleFluidMaterial("blue_vitriol_water_solution", 0x48A5C0, FLUID, of(new MaterialStack(Copper, 1), new MaterialStack(Sulfur, 1), new MaterialStack(Oxygen, 4), new MaterialStack(Water, 5)), 0); + public static SimpleFluidMaterial LeadZincSolution = new SimpleFluidMaterial("lead_zinc_solution", 0xFFFFFF, FLUID, of(new MaterialStack(Lead, 1), new MaterialStack(Silver, 1), new MaterialStack(Zinc, 1), new MaterialStack(Sulfur, 3), new MaterialStack(Water, 1)), DECOMPOSITION_BY_CENTRIFUGING); + public static SimpleFluidMaterial HydrofluoricAcid = new SimpleFluidMaterial("hydrofluoric_acid", 0x0088AA, FLUID, of(new MaterialStack(Hydrogen, 1), new MaterialStack(Fluorine, 1)), 0); + public static SimpleFluidMaterial NitricOxide = new SimpleFluidMaterial("nitric_oxide", 0x7DC8F0, GAS, of(new MaterialStack(Nitrogen, 1), new MaterialStack(Oxygen, 1)), STATE_GAS); + public static SimpleFluidMaterial Chloroform = new SimpleFluidMaterial("chloroform", 0x892CA0, FLUID, of(new MaterialStack(Carbon, 1), new MaterialStack(Hydrogen, 1), new MaterialStack(Chlorine, 3)), 0); + public static SimpleFluidMaterial Cumene = new SimpleFluidMaterial("cumene", 0x552200, FLUID, of(new MaterialStack(Carbon, 9), new MaterialStack(Hydrogen, 12)), DISABLE_DECOMPOSITION); + public static SimpleFluidMaterial Tetrafluoroethylene = new SimpleFluidMaterial("tetrafluoroethylene", 0x7D7D7D, GAS, of(new MaterialStack(Carbon, 2), new MaterialStack(Fluorine, 4)), STATE_GAS | DISABLE_DECOMPOSITION); + public static SimpleFluidMaterial Chloromethane = new SimpleFluidMaterial("chloromethane", 0xC82CA0, GAS, of(new MaterialStack(Carbon, 1), new MaterialStack(Hydrogen, 3), new MaterialStack(Chlorine, 1)), STATE_GAS | DISABLE_DECOMPOSITION); + public static SimpleFluidMaterial AllylChloride = new SimpleFluidMaterial("allyl_chloride", 0x87DEAA, FLUID, of(new MaterialStack(Carbon, 2), new MaterialStack(Methane, 1), new MaterialStack(HydrochloricAcid, 1)), 0); + public static SimpleFluidMaterial Isoprene = new SimpleFluidMaterial("isoprene", 0x141414, FLUID, of(new MaterialStack(Carbon, 5), new MaterialStack(Hydrogen, 8)), 0); + public static SimpleFluidMaterial Propane = new SimpleFluidMaterial("propane", 0xFAE250, GAS, of(new MaterialStack(Carbon, 3), new MaterialStack(Hydrogen, 8)), STATE_GAS); + public static SimpleFluidMaterial Propene = new SimpleFluidMaterial("propene", 0xFFDD55, GAS, of(new MaterialStack(Carbon, 3), new MaterialStack(Hydrogen, 6)), STATE_GAS); + public static SimpleFluidMaterial Ethane = new SimpleFluidMaterial("ethane", 0xC8C8FF, GAS, of(new MaterialStack(Carbon, 2), new MaterialStack(Hydrogen, 6)), STATE_GAS); + public static SimpleFluidMaterial Butene = new SimpleFluidMaterial("butene", 0xCF5005, GAS, of(new MaterialStack(Carbon, 4), new MaterialStack(Hydrogen, 8)), STATE_GAS); + public static SimpleFluidMaterial Butane = new SimpleFluidMaterial("butane", 0xB6371E, GAS, of(new MaterialStack(Carbon, 4), new MaterialStack(Hydrogen, 10)), STATE_GAS); + public static SimpleFluidMaterial DissolvedCalciumAcetate = new SimpleFluidMaterial("dissolved_calcium_acetate", 0xDCC8B4, FLUID, of(new MaterialStack(Calcium, 1), new MaterialStack(Carbon, 4), new MaterialStack(Oxygen, 4), new MaterialStack(Hydrogen, 6), new MaterialStack(Water, 1)), DISABLE_DECOMPOSITION); + public static SimpleFluidMaterial VinylAcetate = new SimpleFluidMaterial("vinyl_acetate", 0xE1B380, FLUID, of(new MaterialStack(Carbon, 4), new MaterialStack(Hydrogen, 6), new MaterialStack(Oxygen, 2)), DISABLE_DECOMPOSITION); + public static SimpleFluidMaterial MethylAcetate = new SimpleFluidMaterial("methyl_acetate", 0xEEC6AF, FLUID, of(new MaterialStack(Carbon, 3), new MaterialStack(Hydrogen, 6), new MaterialStack(Oxygen, 2)), DISABLE_DECOMPOSITION); + public static SimpleFluidMaterial Ethenone = new SimpleFluidMaterial("ethenone", 0x141446, FLUID, of(new MaterialStack(Carbon, 2), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 1)), DISABLE_DECOMPOSITION | STATE_GAS); + public static SimpleFluidMaterial Tetranitromethane = new SimpleFluidMaterial("tetranitromethane", 0x0F2828, FLUID, of(new MaterialStack(Carbon, 1), new MaterialStack(Nitrogen, 4), new MaterialStack(Oxygen, 8)), DISABLE_DECOMPOSITION); + public static SimpleFluidMaterial Dimethylamine = new SimpleFluidMaterial("dimethylamine", 0x554469, GAS, of(new MaterialStack(Carbon, 2), new MaterialStack(Hydrogen, 7), new MaterialStack(Nitrogen, 1)), STATE_GAS | DISABLE_DECOMPOSITION); + public static SimpleFluidMaterial Dimethylhydrazine = new SimpleFluidMaterial("dimethylhidrazine", 0x000055, FLUID, of(new MaterialStack(Carbon, 2), new MaterialStack(Hydrogen, 8), new MaterialStack(Nitrogen, 2)), DISABLE_DECOMPOSITION); + public static SimpleFluidMaterial DinitrogenTetroxide = new SimpleFluidMaterial("dinitrogen_tetroxide", 0x004184, GAS, of(new MaterialStack(Nitrogen, 2), new MaterialStack(Oxygen, 4)), STATE_GAS); + public static SimpleFluidMaterial Dimethyldichlorosilane = new SimpleFluidMaterial("dimethyldichlorosilane", 0x441650, FLUID, of(new MaterialStack(Carbon, 2), new MaterialStack(Hydrogen, 6), new MaterialStack(Chlorine, 2), new MaterialStack(Silicon, 1)), DISABLE_DECOMPOSITION); + public static SimpleFluidMaterial Styrene = new SimpleFluidMaterial("styrene", 0xD2C8BE, FLUID, of(new MaterialStack(Carbon, 8), new MaterialStack(Hydrogen, 8)), DISABLE_DECOMPOSITION); + public static SimpleFluidMaterial Butadiene = new SimpleFluidMaterial("butadiene", 11885072, GAS, of(new MaterialStack(Carbon, 4), new MaterialStack(Hydrogen, 6)), DISABLE_DECOMPOSITION | STATE_GAS); + public static SimpleFluidMaterial Dichlorobenzene = new SimpleFluidMaterial("dichlorobenzene", 0x004455, FLUID, of(new MaterialStack(Carbon, 6), new MaterialStack(Hydrogen, 4), new MaterialStack(Chlorine, 2)), DISABLE_DECOMPOSITION); + public static SimpleFluidMaterial AceticAcid = new SimpleFluidMaterial("acetic_acid", 0xC8B4A0, FLUID, of(new MaterialStack(Carbon, 2), new MaterialStack(Hydrogen, 4), new MaterialStack(Oxygen, 2)), DISABLE_DECOMPOSITION); + public static SimpleFluidMaterial Phenol = new SimpleFluidMaterial("phenol", 0x784421, FLUID, of(new MaterialStack(Carbon, 6), new MaterialStack(Hydrogen, 6), new MaterialStack(Oxygen, 1)), DISABLE_DECOMPOSITION); + public static SimpleFluidMaterial BisphenolA = new SimpleFluidMaterial("bisphenol_a", 0xD4AA00, FLUID, of(new MaterialStack(Carbon, 15), new MaterialStack(Hydrogen, 16), new MaterialStack(Oxygen, 2)), DISABLE_DECOMPOSITION); + public static SimpleFluidMaterial VinylChloride = new SimpleFluidMaterial("vinyl_chloride", 0xE1F0F0, GAS, of(new MaterialStack(Carbon, 2), new MaterialStack(Hydrogen, 3), new MaterialStack(Chlorine, 1)), STATE_GAS | DISABLE_DECOMPOSITION); + public static SimpleFluidMaterial Ethylene = new SimpleFluidMaterial("ethylene", 0xE1E1E1, GAS, of(new MaterialStack(Carbon, 2), new MaterialStack(Hydrogen, 4)), STATE_GAS); + public static SimpleFluidMaterial Benzene = new SimpleFluidMaterial("benzene", 0x1A1A1A, FLUID, of(new MaterialStack(Carbon, 6), new MaterialStack(Hydrogen, 6)), DISABLE_DECOMPOSITION); + public static SimpleFluidMaterial Acetone = new SimpleFluidMaterial("acetone", 0xAFAFAF, FLUID, of(new MaterialStack(Carbon, 3), new MaterialStack(Hydrogen, 6), new MaterialStack(Oxygen, 1)), DISABLE_DECOMPOSITION); + public static SimpleFluidMaterial Glycerol = new SimpleFluidMaterial("glycerol", 0x87DE87, FLUID, of(new MaterialStack(Carbon, 3), new MaterialStack(Hydrogen, 8), new MaterialStack(Oxygen, 3)), 0); + public static SimpleFluidMaterial Methanol = new SimpleFluidMaterial("methanol", 0xAA8800, FLUID, of(new MaterialStack(Carbon, 1), new MaterialStack(Hydrogen, 4), new MaterialStack(Oxygen, 1)), 0); + public static SimpleFluidMaterial SaltWater = new SimpleFluidMaterial("salt_water", 0x0000C8, FLUID, of(new MaterialStack(Salt, 1), new MaterialStack(Water, 1)), DISABLE_DECOMPOSITION); + public static SimpleFluidMaterial WoodGas = new SimpleFluidMaterial("wood_gas", 0xDECD87, GAS, of(), STATE_GAS | DISABLE_DECOMPOSITION); + public static SimpleFluidMaterial WoodVinegar = new SimpleFluidMaterial("wood_vinegar", 0xD45500, FLUID, of(), 0); + public static SimpleFluidMaterial WoodTar = new SimpleFluidMaterial("wood_tar", 0x28170B, FLUID, of(), 0); + public static SimpleFluidMaterial CharcoalByproducts = new SimpleFluidMaterial("charcoal_byproducts", 0x784421, FLUID, of(), 0); + public static SimpleFluidMaterial Biomass = new SimpleFluidMaterial("biomass", 0x00FF00, FLUID, of(), 0); + public static SimpleFluidMaterial BioDiesel = new SimpleFluidMaterial("bio_diesel", 0xFF8000, FLUID, of(), 0); + public static SimpleFluidMaterial FermentedBiomass = new SimpleFluidMaterial("fermented_biomass", 0x445500, FLUID, of(), 0); + public static SimpleFluidMaterial Creosote = new SimpleFluidMaterial("creosote", 0x804000, FLUID, of(), 0); + public static SimpleFluidMaterial Ethanol = new SimpleFluidMaterial("ethanol", 0xFFFFFF, FLUID, of(new MaterialStack(Carbon, 2), new MaterialStack(Hydrogen, 6), new MaterialStack(Oxygen, 1)), DISABLE_DECOMPOSITION); + public static SimpleFluidMaterial Diesel = new SimpleFluidMaterial("fuel", 0xFFFFFF, FLUID, of(), 0); + public static SimpleFluidMaterial RocketFuel = new SimpleFluidMaterial("rocket_fuel", 0xBDB78C, FLUID, of(), 0); + public static SimpleFluidMaterial Glue = new SimpleFluidMaterial("glue", 0xC8C400, FLUID, of(), 0); + public static SimpleFluidMaterial Lubricant = new SimpleFluidMaterial("lubricant", 0xFFFFFF, FLUID, of(), 0); + public static SimpleFluidMaterial McGuffium239 = new SimpleFluidMaterial("mc_guffium239", 0xFFFFFF, FLUID, of(), 0); + public static SimpleFluidMaterial IndiumConcentrate = new SimpleFluidMaterial("indium_concentrate", 0x0e2950, FLUID, of(), 0); + public static SimpleFluidMaterial SeedOil = new SimpleFluidMaterial("seed_oil", 0xC4FF00, FLUID, of(), 0); + public static SimpleFluidMaterial DrillingFluid = new SimpleFluidMaterial("drilling_fluid", 0xFFFFAA, FLUID, of(), 0); + public static SimpleFluidMaterial ConstructionFoam = new SimpleFluidMaterial("construction_foam", 0x808080, FLUID, of(), 0); + public static SimpleFluidMaterial HydroCrackedEthane = new SimpleFluidMaterial("hydrocracked_ethane", 0x9696BC, GAS, of(), STATE_GAS); + public static SimpleFluidMaterial HydroCrackedEthylene = new SimpleFluidMaterial("hydrocracked_ethylene", 0xA3A3A0, GAS, of(), STATE_GAS); + public static SimpleFluidMaterial HydroCrackedPropene = new SimpleFluidMaterial("hydrocracked_propene", 0xBEA540, GAS, of(), STATE_GAS); + public static SimpleFluidMaterial HydroCrackedPropane = new SimpleFluidMaterial("hydrocracked_propane", 0xBEA540, GAS, of(), STATE_GAS); + public static SimpleFluidMaterial HydroCrackedLightFuel = new SimpleFluidMaterial("hydrocracked_light_fuel", 0xB7AF08, FLUID, of(), 0); + public static SimpleFluidMaterial HydroCrackedButane = new SimpleFluidMaterial("hydrocracked_butane", 0x852C18, GAS, of(), STATE_GAS); + public static SimpleFluidMaterial HydroCrackedNaphtha = new SimpleFluidMaterial("hydrocracked_naphtha", 0xBFB608, FLUID, of(), 0); + public static SimpleFluidMaterial HydroCrackedHeavyFuel = new SimpleFluidMaterial("hydrocracked_heavy_fuel", 0xFFFF00, FLUID, of(), 0); + public static SimpleFluidMaterial HydroCrackedGas = new SimpleFluidMaterial("hydrocracked_gas", 0xB4B4B4, GAS, of(), STATE_GAS); + public static SimpleFluidMaterial HydroCrackedButene = new SimpleFluidMaterial("hydrocracked_butene", 0x993E05, GAS, of(), STATE_GAS); + public static SimpleFluidMaterial HydroCrackedButadiene = new SimpleFluidMaterial("hydrocracked_butadiene", 0xAD5203, GAS, of(), STATE_GAS); + public static SimpleFluidMaterial SteamCrackedEthane = new SimpleFluidMaterial("steamcracked_ethane", 0x9696BC, GAS, of(), STATE_GAS); + public static SimpleFluidMaterial SteamCrackedEthylene = new SimpleFluidMaterial("steamcracked_ethylene", 0xA3A3A0, GAS, of(), STATE_GAS); + public static SimpleFluidMaterial SteamCrackedPropene = new SimpleFluidMaterial("steamcracked_propene", 0xBEA540, GAS, of(), STATE_GAS); + public static SimpleFluidMaterial SteamCrackedPropane = new SimpleFluidMaterial("steamcracked_propane", 0xBEA540, GAS, of(), STATE_GAS); + public static SimpleFluidMaterial SteamCrackedButane = new SimpleFluidMaterial("steamcracked_butane", 0x852C18, GAS, of(), STATE_GAS); + public static SimpleFluidMaterial SteamCrackedNaphtha = new SimpleFluidMaterial("steamcracked_naphtha", 0xBFB608, FLUID, of(), 0); + public static SimpleFluidMaterial SteamCrackedGas = new SimpleFluidMaterial("steamcracked_gas", 0xB4B4B4, GAS, of(), STATE_GAS); + public static SimpleFluidMaterial SteamCrackedButene = new SimpleFluidMaterial("steamcracked_butene", 0x993E05, GAS, of(), STATE_GAS); + public static SimpleFluidMaterial SteamCrackedButadiene = new SimpleFluidMaterial("steamcracked_butadiene", 0xAD5203, GAS, of(), STATE_GAS); + public static SimpleFluidMaterial SulfuricGas = new SimpleFluidMaterial("sulfuric_gas", 0xFFFFFF, GAS, of(), STATE_GAS); + public static SimpleFluidMaterial RefineryGas = new SimpleFluidMaterial("refinery_gas", 0xFFFFFF, GAS, of(), STATE_GAS); + public static SimpleFluidMaterial SulfuricNaphtha = new SimpleFluidMaterial("sulfuric_naphtha", 0xFFFFFF, FLUID, of(), 0); + public static SimpleFluidMaterial SulfuricLightFuel = new SimpleFluidMaterial("sulfuric_light_fuel", 0xFFFFFF, FLUID, of(), 0); + public static SimpleFluidMaterial SulfuricHeavyFuel = new SimpleFluidMaterial("sulfuric_heavy_fuel", 0xFFFFFF, FLUID, of(), 0); + public static SimpleFluidMaterial Naphtha = new SimpleFluidMaterial("naphtha", 0xFFFFFF, FLUID, of(), 0); + public static SimpleFluidMaterial LightFuel = new SimpleFluidMaterial("light_fuel", 0xFFFFFF, FLUID, of(), 0); + public static SimpleFluidMaterial HeavyFuel = new SimpleFluidMaterial("heavy_fuel", 0xFFFFFF, FLUID, of(), 0); + public static SimpleFluidMaterial LPG = new SimpleFluidMaterial("lpg", 0xFFFFFF, GAS, of(), STATE_GAS); + public static SimpleFluidMaterial SteamCrackedLightFuel = new SimpleFluidMaterial("steamcracked_light_fuel", 0xFFFFFF, FLUID, of(), 0); + public static SimpleFluidMaterial SteamCrackedHeavyFuel = new SimpleFluidMaterial("steamcracked_heavy_fuel", 0xFFFFFF, FLUID, of(), 0); + public static SimpleFluidMaterial Toluene = new SimpleFluidMaterial("toluene", 0xFFFFFF, FLUID, of(new MaterialStack(Carbon, 7), new MaterialStack(Hydrogen, 8)), DISABLE_DECOMPOSITION); + public static SimpleFluidMaterial UUAmplifier = new SimpleFluidMaterial("uuamplifier", 0x000000, FLUID, of(), 0); + public static SimpleFluidMaterial UUMatter = new SimpleFluidMaterial("uumatter", 0x8000C4, FLUID, of(), 0); + public static SimpleFluidMaterial Honey = new SimpleFluidMaterial("honey", 0xFFFFFF, FLUID, of(), 0); + public static SimpleFluidMaterial Juice = new SimpleFluidMaterial("juice", 0xA8C972, FLUID, of(), 0); + public static SimpleFluidMaterial RawGrowthMedium = new SimpleFluidMaterial("raw_growth_medium", 10777425, FLUID, of(), DISABLE_DECOMPOSITION); + public static SimpleFluidMaterial SterileGrowthMedium = new SimpleFluidMaterial("sterilized_growth_medium", 11306862, FLUID, of(), DISABLE_DECOMPOSITION); + public static SimpleFluidMaterial Oil = new SimpleFluidMaterial("oil", 0x0A0A0A, FLUID, of(), GENERATE_FLUID_BLOCK); + public static SimpleFluidMaterial OilHeavy = new SimpleFluidMaterial("oil_heavy", 0x0A0A0A, FLUID, of(), GENERATE_FLUID_BLOCK); + public static SimpleFluidMaterial OilMedium = new SimpleFluidMaterial("oil_medium", 0x0A0A0A, FLUID, of(), GENERATE_FLUID_BLOCK); + public static SimpleFluidMaterial OilLight = new SimpleFluidMaterial("oil_light", 0x0A0A0A, FLUID, of(), GENERATE_FLUID_BLOCK); + public static SimpleFluidMaterial NaturalGas = new SimpleFluidMaterial("natural_gas", 0xFFFFFF, GAS, of(), STATE_GAS | GENERATE_FLUID_BLOCK); + public static SimpleFluidMaterial DiphenylIsophtalate = new SimpleFluidMaterial("diphenyl_isophthalate", 0x246E57, DULL, of(new MaterialStack(Carbon, 20), new MaterialStack(Hydrogen, 14), new MaterialStack(Oxygen, 4)), DISABLE_DECOMPOSITION); + public static SimpleFluidMaterial PhthalicAcid = new SimpleFluidMaterial("phthalic_acid", 0xD1D1D1, FLUID, of(new MaterialStack(Carbon, 8), new MaterialStack(Hydrogen, 6), new MaterialStack(Oxygen, 4)), GENERATE_FLUID_BLOCK | DISABLE_DECOMPOSITION); + public static SimpleFluidMaterial Dimethylbenzene = new SimpleFluidMaterial("dimethylbenzene", 0x669C40, FLUID, of(new MaterialStack(Carbon, 8), new MaterialStack(Hydrogen, 10)), DISABLE_DECOMPOSITION).setFormula("C6H4(CH3)2"); + public static SimpleFluidMaterial Diaminobenzidine = new SimpleFluidMaterial("diaminobenzidine", 0x337D59, DULL, of(new MaterialStack(Carbon, 12), new MaterialStack(Hydrogen, 14), new MaterialStack(Nitrogen, 4)), DISABLE_DECOMPOSITION); + public static SimpleFluidMaterial Dichlorobenzidine = new SimpleFluidMaterial("dichlorobenzidine", 0xA1DEA6, DULL, of(new MaterialStack(Carbon, 12), new MaterialStack(Hydrogen, 10), new MaterialStack(Chlorine, 2), new MaterialStack(Nitrogen, 2)), DISABLE_DECOMPOSITION); + public static SimpleFluidMaterial Nitrochlorobenzene = new SimpleFluidMaterial("nitrochlorobenzene", 0x8FB51A, DULL, of(new MaterialStack(Carbon, 6), new MaterialStack(Hydrogen, 4), new MaterialStack(Chlorine, 1), new MaterialStack(Nitrogen, 1), new MaterialStack(Oxygen, 2)), DISABLE_DECOMPOSITION); + public static SimpleFluidMaterial Chlorobenzene = new SimpleFluidMaterial("chlorobenzene", 0x326A3E, DULL, of(new MaterialStack(Carbon, 6), new MaterialStack(Hydrogen, 5), new MaterialStack(Chlorine, 1)), DISABLE_DECOMPOSITION); + public static SimpleFluidMaterial Iron3Chloride = new SimpleFluidMaterial("iron_iii_chloride", 0x060B0B, FLUID, of(new MaterialStack(Iron, 1), new MaterialStack(Chlorine, 3)), DECOMPOSITION_BY_ELECTROLYZING); + public static SimpleFluidMaterial Bacteria = new SimpleFluidMaterial("bacteria", 0x808000, FLUID, of(), 0); + public static SimpleFluidMaterial BacterialSludge = new SimpleFluidMaterial("bacterial_sludge", 0x355E3B, FLUID, of(), 0); + public static SimpleFluidMaterial EnrichedBacterialSludge = new SimpleFluidMaterial("enriched_bacterial_sludge", 0x7FFF00, FLUID, of(), 0); + public static SimpleFluidMaterial FermentedBacterialSludge = new SimpleFluidMaterial("fermented_bacterial_sludge", 0x32CD32, FLUID, of(), 0); + public static SimpleFluidMaterial Mutagen = new SimpleFluidMaterial("mutagen", 0x00FF7F, FLUID, of(), 0); + public static SimpleFluidMaterial GelatinMixture = new SimpleFluidMaterial("gelatin_mixture", 0x588BAE, FLUID, of(), 0); + public static SimpleFluidMaterial UraniumHexafluoride = new SimpleFluidMaterial("uranium_hexafluoride", 0x42d126, GAS, of(new MaterialStack(Uranium238, 1), new MaterialStack(Fluorine, 6)), DISABLE_DECOMPOSITION | STATE_GAS).setFormula("UF6"); + public static SimpleFluidMaterial EnrichedUraniumHexafluoride = new SimpleFluidMaterial("enriched_uranium_hexafluoride", 0x4bf52a, GAS, of(new MaterialStack(Uranium235, 1), new MaterialStack(Fluorine, 6)), DISABLE_DECOMPOSITION | STATE_GAS).setFormula("UF6"); + public static SimpleFluidMaterial DepletedUraniumHexafluoride = new SimpleFluidMaterial("depleted_uranium_hexafluoride", 0x74ba66, GAS, of(new MaterialStack(Uranium238, 1), new MaterialStack(Fluorine, 6)), DISABLE_DECOMPOSITION | STATE_GAS).setFormula("UF6"); // HOG - public static SimpleFluidMaterial RawGasoline = new SimpleFluidMaterial(139, "raw_gasoline", 0xFF6400, FLUID, of(), DISABLE_DECOMPOSITION); - public static SimpleFluidMaterial Gasoline = new SimpleFluidMaterial(140, "gasoline", 0xFFA500, FLUID, of(), DISABLE_DECOMPOSITION); - public static SimpleFluidMaterial NitrousOxide = new SimpleFluidMaterial(141, "nitrous_oxide", 0x7DC8FF, FLUID, of(new MaterialStack(Nitrogen, 2), new MaterialStack(Oxygen, 1)), 0); - public static SimpleFluidMaterial Octane = new SimpleFluidMaterial(142, "octane", 0xFFFFFF, FLUID, of(new MaterialStack(Carbon, 8), new MaterialStack(Hydrogen, 18)), DISABLE_DECOMPOSITION); - public static SimpleFluidMaterial EthylTertButylEther = new SimpleFluidMaterial(143, "ethyl_tertbutyl_ether", 0xFFFFFF, FLUID, of(new MaterialStack(Carbon, 6), new MaterialStack(Hydrogen, 14), new MaterialStack(Oxygen, 1)), DISABLE_DECOMPOSITION); - public static SimpleFluidMaterial HighOctaneGasoline = new SimpleFluidMaterial(144, "gasoline_premium", 0xFFA500, FLUID, of(), DISABLE_DECOMPOSITION); - public static SimpleFluidMaterial Nitrobenzene = new SimpleFluidMaterial(145, "nitrobenzene", 0x704936, FLUID, of(), DISABLE_DECOMPOSITION); - - public static SimpleDustMaterial SodiumHydroxide = new SimpleDustMaterial(1, "sodium_hydroxide", 0x003380, DULL, of(new MaterialStack(Sodium, 1), new MaterialStack(Oxygen, 1), new MaterialStack(Hydrogen, 1)), GENERATE_SMALL_TINY); - public static SimpleDustMaterial MagnesiumChloride = new SimpleDustMaterial(2, "magnesium_chloride", 0xD40D5C, DULL, of(new MaterialStack(Magnesium, 1), new MaterialStack(Chlorine, 2)), GENERATE_SMALL_TINY); - public static SimpleDustMaterial RawRubber = new SimpleDustMaterial(3, "raw_rubber", 0xCCC789, DULL, of(new MaterialStack(Carbon, 5), new MaterialStack(Hydrogen, 8)), GENERATE_SMALL_TINY | DISABLE_DECOMPOSITION); - public static SimpleDustMaterial SodiumSulfide = new SimpleDustMaterial(4, "sodium_sulfide", 0xFFE680, DULL, of(new MaterialStack(Sodium, 2), new MaterialStack(Sulfur, 1)), GENERATE_SMALL_TINY); - public static SimpleDustMaterial PhosphorusPentoxide = new SimpleDustMaterial(5, "phosphorus_pentoxide", 0xDCDC00, DULL, of(new MaterialStack(Phosphorus, 4), new MaterialStack(Oxygen, 10)), DECOMPOSITION_BY_CENTRIFUGING | GENERATE_SMALL_TINY); - public static SimpleDustMaterial Quicklime = new SimpleDustMaterial(6, "quicklime", 0xF0F0F0, DULL, of(new MaterialStack(Calcium, 1), new MaterialStack(Oxygen, 1)), GENERATE_SMALL_TINY); - public static SimpleDustMaterial SodiumBisulfate = new SimpleDustMaterial(7, "sodium_bisulfate", 0x004455, DULL, of(new MaterialStack(Sodium, 1), new MaterialStack(Hydrogen, 1), new MaterialStack(Sulfur, 1), new MaterialStack(Oxygen, 4)), DISABLE_DECOMPOSITION | GENERATE_SMALL_TINY); - public static SimpleDustMaterial FerriteMixture = new SimpleDustMaterial(8, "ferrite_mixture", 0xB4B4B4, METALLIC, of(new MaterialStack(Nickel, 1), new MaterialStack(Zinc, 1), new MaterialStack(Iron, 4)), DECOMPOSITION_BY_CENTRIFUGING | GENERATE_SMALL_TINY); - public static SimpleDustMaterial Magnesia = new SimpleDustMaterial(9, "magnesia", 0x887878, DULL, of(new MaterialStack(Magnesium, 1), new MaterialStack(Oxygen, 1)), GENERATE_SMALL_TINY); - public static SimpleDustMaterial Polydimethylsiloxane = new SimpleDustMaterial(10, "polydimethylsiloxane", 0xF5F5F5, DULL, of(new MaterialStack(Carbon, 2), new MaterialStack(Hydrogen, 6), new MaterialStack(Oxygen, 1), new MaterialStack(Silicon, 1)), DISABLE_DECOMPOSITION | GENERATE_SMALL_TINY); - public static SimpleDustMaterial RawStyreneButadieneRubber = new SimpleDustMaterial(11, "raw_styrene_butadiene_rubber", 0x54403D, SHINY, of(new MaterialStack(Carbon, 8), new MaterialStack(Hydrogen, 8), new MaterialStack(Butadiene, 3)), DISABLE_DECOMPOSITION | GENERATE_SMALL_TINY); - public static SimpleDustMaterial PlatinumGroupSludge = new SimpleDustMaterial(12, "platinum_group_sludge", 0x001E00, FINE, of(), DISABLE_DECOMPOSITION | GENERATE_SMALL_TINY); - public static SimpleDustMaterial HydratedCoal = new SimpleDustMaterial(13, "hydrated_coal", 0x464664, ROUGH, of(new MaterialStack(Coal, 8), new MaterialStack(Water, 1)), GENERATE_SMALL_TINY); - public static SimpleDustMaterial SodiumBicarbonate = new SimpleDustMaterial(14, "sodium_bicarbonate", 0x565b96, ROUGH, of(new MaterialStack(Sodium, 1), new MaterialStack(Hydrogen, 1), new MaterialStack(Carbon, 1), new MaterialStack(Oxygen, 3)), GENERATE_SMALL_TINY); - public static SimpleDustMaterial Collagen = new SimpleDustMaterial(15, "collagen", 0x80471C, ROUGH, of(), 0); - public static SimpleDustMaterial Gelatin = new SimpleDustMaterial(16, "gelatin", 0x588BAE, ROUGH, of(), 0); - public static SimpleDustMaterial Agar = new SimpleDustMaterial(17, "agar", 0x4F7942, ROUGH, of(), 0); - public static SimpleDustMaterial PotassiumDichromate = new SimpleDustMaterial(18, "potassium_dichromate", 0xFF084E, DULL, of(new MaterialStack(Potassium, 2), new MaterialStack(Chrome, 2), new MaterialStack(Oxygen, 7)), GENERATE_SMALL_TINY); - public static SimpleDustMaterial ChromiumTrioxide = new SimpleDustMaterial(19, "chromium_trioxide", 0xFFE4E1, DULL, of(new MaterialStack(Chrome, 1), new MaterialStack(Oxygen, 3)), GENERATE_SMALL_TINY); - public static SimpleDustMaterial AntimonyTrioxide = new SimpleDustMaterial(20, "antimony_trioxide", 0xE6E6F0, DULL, of(new MaterialStack(Antimony, 2), new MaterialStack(Oxygen, 3)), GENERATE_SMALL_TINY); - public static SimpleDustMaterial Zincite = new SimpleDustMaterial(21, "zincite", 0xFFFFF5, DULL, of(new MaterialStack(Zinc, 1), new MaterialStack(Oxygen, 1)), 0); - public static SimpleDustMaterial CupricOxide = new SimpleDustMaterial(22, "cupric_oxide", 0x0F0F0F, DULL, of(new MaterialStack(Copper, 1), new MaterialStack(Oxygen, 1)), 0); - public static SimpleDustMaterial CobaltOxide = new SimpleDustMaterial(23, "cobalt_oxide", 0x788000, DULL, of(new MaterialStack(Cobalt, 1), new MaterialStack(Oxygen, 1)), 0); - public static SimpleDustMaterial ArsenicTrioxide = new SimpleDustMaterial(24, "arsenic_trioxide", 0xFFFFFF, ROUGH, of(new MaterialStack(Arsenic, 2), new MaterialStack(Oxygen, 3)), GENERATE_SMALL_TINY); - public static SimpleDustMaterial Massicot = new SimpleDustMaterial(25, "massicot", 0xFFDD55, DULL, of(new MaterialStack(Lead, 1), new MaterialStack(Oxygen, 1)), 0); - public static SimpleDustMaterial Ferrosilite = new SimpleDustMaterial(26, "ferrosilite", 0x97632A, DULL, of(new MaterialStack(Iron, 1), new MaterialStack(Silicon, 1), new MaterialStack(Oxygen, 3)), 0); - public static SimpleDustMaterial MetalMixture = new SimpleDustMaterial(27, "metal_mixture", 0x502d16, METALLIC, of(), GENERATE_SMALL_TINY | DISABLE_DECOMPOSITION); + public static SimpleFluidMaterial RawGasoline = new SimpleFluidMaterial("raw_gasoline", 0xFF6400, FLUID, of(), DISABLE_DECOMPOSITION); + public static SimpleFluidMaterial Gasoline = new SimpleFluidMaterial("gasoline", 0xFFA500, FLUID, of(), DISABLE_DECOMPOSITION); + public static SimpleFluidMaterial NitrousOxide = new SimpleFluidMaterial("nitrous_oxide", 0x7DC8FF, FLUID, of(new MaterialStack(Nitrogen, 2), new MaterialStack(Oxygen, 1)), 0); + public static SimpleFluidMaterial Octane = new SimpleFluidMaterial("octane", 0xFFFFFF, FLUID, of(new MaterialStack(Carbon, 8), new MaterialStack(Hydrogen, 18)), DISABLE_DECOMPOSITION); + public static SimpleFluidMaterial EthylTertButylEther = new SimpleFluidMaterial("ethyl_tertbutyl_ether", 0xFFFFFF, FLUID, of(new MaterialStack(Carbon, 6), new MaterialStack(Hydrogen, 14), new MaterialStack(Oxygen, 1)), DISABLE_DECOMPOSITION); + public static SimpleFluidMaterial HighOctaneGasoline = new SimpleFluidMaterial("gasoline_premium", 0xFFA500, FLUID, of(), DISABLE_DECOMPOSITION); + public static SimpleFluidMaterial Nitrobenzene = new SimpleFluidMaterial("nitrobenzene", 0x704936, FLUID, of(), DISABLE_DECOMPOSITION); /** * Organic chemistry */ - public static IngotMaterial SiliconeRubber = new IngotMaterial(245, "silicon_rubber", 0xDCDCDC, DULL, 1, of(new MaterialStack(Carbon, 2), new MaterialStack(Hydrogen, 6), new MaterialStack(Oxygen, 1), new MaterialStack(Silicon, 1)), GENERATE_PLATE | GENERATE_GEAR | GENERATE_RING | FLAMMABLE | NO_SMASHING | GENERATE_FOIL | DISABLE_DECOMPOSITION); - public static IngotMaterial Polystyrene = new IngotMaterial(246, "polystyrene", 0xBEB4AA, DULL, 1, of(new MaterialStack(Carbon, 8), new MaterialStack(Hydrogen, 8)), DISABLE_DECOMPOSITION | GENERATE_FOIL | NO_SMASHING); - public static IngotMaterial StyreneButadieneRubber = new IngotMaterial(247, "styrene_butadiene_rubber", 0x211A18, SHINY, 1, of(new MaterialStack(Carbon, 8), new MaterialStack(Hydrogen, 8), new MaterialStack(Butadiene, 3)), GENERATE_PLATE | GENERATE_GEAR | GENERATE_RING | FLAMMABLE | NO_SMASHING | DISABLE_DECOMPOSITION); - public static FluidMaterial PolyvinylAcetate = new FluidMaterial(248, "polyvinyl_acetate", 0xFF9955, FLUID, of(new MaterialStack(Carbon, 4), new MaterialStack(Hydrogen, 6), new MaterialStack(Oxygen, 2)), DISABLE_DECOMPOSITION); - public static IngotMaterial ReinforcedEpoxyResin = new IngotMaterial(249, "reinforced_epoxy_resin", 0xA07A10, DULL, 1, of(new MaterialStack(Carbon, 6), new MaterialStack(Hydrogen, 4), new MaterialStack(Oxygen, 1)), GENERATE_PLATE | DISABLE_DECOMPOSITION | NO_SMASHING); - public static IngotMaterial BorosilicateGlass = new IngotMaterial(250, "borosilicate_glass", 0xE6F3E6, SHINY, 1, of(new MaterialStack(Boron, 1), new MaterialStack(SiliconDioxide, 7)), GENERATE_FINE_WIRE); - public static IngotMaterial PolyvinylChloride = new IngotMaterial(251, "polyvinyl_chloride", 0xD7E6E6, DULL, 1, of(new MaterialStack(Carbon, 2), new MaterialStack(Hydrogen, 3), new MaterialStack(Chlorine, 1)), EXT_METAL | GENERATE_FOIL | DISABLE_DECOMPOSITION | NO_SMASHING); - public static IngotMaterial PolyphenyleneSulfide = new IngotMaterial(252, "polyphenylene_sulfide", 0xAA8800, DULL, 1, of(new MaterialStack(Carbon, 6), new MaterialStack(Hydrogen, 4), new MaterialStack(Sulfur, 1)), DISABLE_DECOMPOSITION | EXT_METAL | GENERATE_FOIL); - public static FluidMaterial GlycerylTrinitrate = new FluidMaterial(253, "glyceryl_trinitrate", 0xFFFFFF, FLUID, of(new MaterialStack(Carbon, 3), new MaterialStack(Hydrogen, 5), new MaterialStack(Nitrogen, 3), new MaterialStack(Oxygen, 9)), FLAMMABLE | EXPLOSIVE | NO_SMELTING | NO_SMASHING); - public static IngotMaterial Polybenzimidazole = new IngotMaterial(254, "polybenzimidazole", 0x2D2D2D, DULL, 0, of(new MaterialStack(Carbon, 20), new MaterialStack(Hydrogen, 12), new MaterialStack(Nitrogen, 4)), EXCLUDE_BLOCK_CRAFTING_RECIPES | SMELT_INTO_FLUID | NO_SMASHING | DISABLE_DECOMPOSITION | GENERATE_FOIL); + public static IngotMaterial SiliconeRubber = new IngotMaterial(256, "silicon_rubber", 0xDCDCDC, DULL, 1, of(new MaterialStack(Carbon, 2), new MaterialStack(Hydrogen, 6), new MaterialStack(Oxygen, 1), new MaterialStack(Silicon, 1)), GENERATE_PLATE | GENERATE_GEAR | GENERATE_RING | FLAMMABLE | NO_SMASHING | GENERATE_FOIL | DISABLE_DECOMPOSITION); + public static IngotMaterial Polystyrene = new IngotMaterial(257, "polystyrene", 0xBEB4AA, DULL, 1, of(new MaterialStack(Carbon, 8), new MaterialStack(Hydrogen, 8)), DISABLE_DECOMPOSITION | GENERATE_FOIL | NO_SMASHING); + public static DustMaterial RawRubber = new DustMaterial(258, "raw_rubber", 0xCCC789, DULL, 1, of(new MaterialStack(Carbon, 5), new MaterialStack(Hydrogen, 8)), DISABLE_DECOMPOSITION); + public static DustMaterial RawStyreneButadieneRubber = new DustMaterial(259, "raw_styrene_butadiene_rubber", 0x54403D, SHINY, 1, of(new MaterialStack(Carbon, 8), new MaterialStack(Hydrogen, 8), new MaterialStack(Butadiene, 3)), DISABLE_DECOMPOSITION); + public static IngotMaterial StyreneButadieneRubber = new IngotMaterial(260, "styrene_butadiene_rubber", 0x211A18, SHINY, 1, of(new MaterialStack(Carbon, 8), new MaterialStack(Hydrogen, 8), new MaterialStack(Butadiene, 3)), GENERATE_PLATE | GENERATE_GEAR | GENERATE_RING | FLAMMABLE | NO_SMASHING | DISABLE_DECOMPOSITION); + public static FluidMaterial PolyvinylAcetate = new FluidMaterial(261, "polyvinyl_acetate", 0xFF9955, FLUID, of(new MaterialStack(Carbon, 4), new MaterialStack(Hydrogen, 6), new MaterialStack(Oxygen, 2)), DISABLE_DECOMPOSITION); + public static IngotMaterial ReinforcedEpoxyResin = new IngotMaterial(262, "reinforced_epoxy_resin", 0xA07A10, DULL, 1, of(new MaterialStack(Carbon, 6), new MaterialStack(Hydrogen, 4), new MaterialStack(Oxygen, 1)), GENERATE_PLATE | DISABLE_DECOMPOSITION | NO_SMASHING); + public static IngotMaterial BorosilicateGlass = new IngotMaterial(263, "borosilicate_glass", 0xE6F3E6, SHINY, 1, of(new MaterialStack(Boron, 1), new MaterialStack(SiliconDioxide, 7)), GENERATE_FINE_WIRE); + public static IngotMaterial PolyvinylChloride = new IngotMaterial(264, "polyvinyl_chloride", 0xD7E6E6, DULL, 1, of(new MaterialStack(Carbon, 2), new MaterialStack(Hydrogen, 3), new MaterialStack(Chlorine, 1)), EXT_METAL | GENERATE_FOIL | DISABLE_DECOMPOSITION | NO_SMASHING); + public static IngotMaterial PolyphenyleneSulfide = new IngotMaterial(265, "polyphenylene_sulfide", 0xAA8800, DULL, 1, of(new MaterialStack(Carbon, 6), new MaterialStack(Hydrogen, 4), new MaterialStack(Sulfur, 1)), DISABLE_DECOMPOSITION | EXT_METAL | GENERATE_FOIL); + public static FluidMaterial GlycerylTrinitrate = new FluidMaterial(266, "glyceryl_trinitrate", 0xFFFFFF, FLUID, of(new MaterialStack(Carbon, 3), new MaterialStack(Hydrogen, 5), new MaterialStack(Nitrogen, 3), new MaterialStack(Oxygen, 9)), FLAMMABLE | EXPLOSIVE | NO_SMELTING | NO_SMASHING); + public static IngotMaterial Polybenzimidazole = new IngotMaterial(267, "polybenzimidazole", 0x2D2D2D, DULL, 0, of(new MaterialStack(Carbon, 20), new MaterialStack(Hydrogen, 12), new MaterialStack(Nitrogen, 4)), EXCLUDE_BLOCK_CRAFTING_RECIPES | SMELT_INTO_FLUID | NO_SMASHING | DISABLE_DECOMPOSITION | GENERATE_FOIL); + public static DustMaterial Polydimethylsiloxane = new DustMaterial(268, "polydimethylsiloxane", 0xF5F5F5, DULL, 1, of(new MaterialStack(Carbon, 2), new MaterialStack(Hydrogen, 6), new MaterialStack(Oxygen, 1), new MaterialStack(Silicon, 1)), DISABLE_DECOMPOSITION); /** * Not possible to determine exact Components */ - public static RoughSolidMaterial Wood = new RoughSolidMaterial(255, "wood", 0x643200, WOOD, 0, of(), STD_SOLID | FLAMMABLE | NO_SMELTING | GENERATE_GEAR | GENERATE_LONG_ROD | GENERATE_FRAME, () -> OrePrefix.plank); - public static DustMaterial Gunpowder = new DustMaterial(256, "gunpowder", 0x808080, ROUGH, 0, of(), FLAMMABLE | EXPLOSIVE | NO_SMELTING | NO_SMASHING); - public static DustMaterial Oilsands = new DustMaterial(257, "oilsands", 0x0A0A0A, SAND, 1, of(new MaterialStack(Oil, 1L)), GENERATE_ORE); - public static RoughSolidMaterial Paper = new RoughSolidMaterial(258, "paper", 0xFAFAFA, PAPER, 0, of(), GENERATE_PLATE | FLAMMABLE | NO_SMELTING | NO_SMASHING | MORTAR_GRINDABLE | GENERATE_RING | EXCLUDE_PLATE_COMPRESSOR_RECIPE, () -> OrePrefix.plate); - public static DustMaterial RareEarth = new DustMaterial(259, "rare_earth", 0x808064, FINE, 0, of(), 0); - public static DustMaterial Stone = new DustMaterial(260, "stone", 0xCDCDCD, ROUGH, 1, of(), MORTAR_GRINDABLE | GENERATE_GEAR | GENERATE_PLATE | NO_SMASHING | NO_RECYCLING); - public static FluidMaterial Lava = new FluidMaterial(261, "lava", 0xFF4000, FLUID, of(), 0); - public static DustMaterial Glowstone = new DustMaterial(262, "glowstone", 0xFFFF00, SHINY, 1, of(), NO_SMASHING | SMELT_INTO_FLUID | GENERATE_PLATE | EXCLUDE_PLATE_COMPRESSOR_RECIPE); - public static GemMaterial NetherStar = new GemMaterial(263, "nether_star", 0xFFFFFF, NETHERSTAR, 4, of(), STD_SOLID | GENERATE_LENSE | NO_SMASHING | NO_SMELTING); - public static DustMaterial Endstone = new DustMaterial(264, "endstone", 0xFFFFFF, DULL, 1, of(), NO_SMASHING); - public static DustMaterial Netherrack = new DustMaterial(265, "netherrack", 0xC80000, DULL, 1, of(), NO_SMASHING | FLAMMABLE); - public static FluidMaterial NitroDiesel = new FluidMaterial(266, "nitro_fuel", 0xFFFFFF, FLUID, of(), FLAMMABLE | EXPLOSIVE | NO_SMELTING | NO_SMASHING); - - - /* - * Oil refining sources & products - */ + public static RoughSolidMaterial Wood = new RoughSolidMaterial(269, "wood", 0x643200, WOOD, 0, of(), STD_SOLID | FLAMMABLE | NO_SMELTING | GENERATE_GEAR | GENERATE_LONG_ROD | GENERATE_FRAME, () -> OrePrefix.plank); + public static DustMaterial Gunpowder = new DustMaterial(270, "gunpowder", 0x808080, ROUGH, 0, of(), FLAMMABLE | EXPLOSIVE | NO_SMELTING | NO_SMASHING); + public static DustMaterial Oilsands = new DustMaterial(271, "oilsands", 0x0A0A0A, SAND, 1, of(new MaterialStack(Oil, 1L)), GENERATE_ORE); + public static RoughSolidMaterial Paper = new RoughSolidMaterial(272, "paper", 0xFAFAFA, PAPER, 0, of(), GENERATE_PLATE | FLAMMABLE | NO_SMELTING | NO_SMASHING | MORTAR_GRINDABLE | GENERATE_RING | EXCLUDE_PLATE_COMPRESSOR_RECIPE, () -> OrePrefix.plate); + public static DustMaterial RareEarth = new DustMaterial(273, "rare_earth", 0x808064, FINE, 0, of(), 0); + public static DustMaterial Stone = new DustMaterial(274, "stone", 0xCDCDCD, ROUGH, 1, of(), MORTAR_GRINDABLE | GENERATE_GEAR | GENERATE_PLATE | NO_SMASHING | NO_RECYCLING); + public static FluidMaterial Lava = new FluidMaterial(275, "lava", 0xFF4000, FLUID, of(), 0); + public static DustMaterial Glowstone = new DustMaterial(276, "glowstone", 0xFFFF00, SHINY, 1, of(), NO_SMASHING | SMELT_INTO_FLUID | GENERATE_PLATE | EXCLUDE_PLATE_COMPRESSOR_RECIPE); + public static GemMaterial NetherStar = new GemMaterial(277, "nether_star", 0xFFFFFF, NETHERSTAR, 4, of(), STD_SOLID | GENERATE_LENSE | NO_SMASHING | NO_SMELTING); + public static DustMaterial Endstone = new DustMaterial(278, "endstone", 0xFFFFFF, DULL, 1, of(), NO_SMASHING); + public static DustMaterial Netherrack = new DustMaterial(279, "netherrack", 0xC80000, DULL, 1, of(), NO_SMASHING | FLAMMABLE); + public static FluidMaterial NitroDiesel = new FluidMaterial(280, "nitro_fuel", 0xC8FF00, FLUID, of(), FLAMMABLE | EXPLOSIVE | NO_SMELTING | NO_SMASHING); + public static DustMaterial Collagen = new DustMaterial(281, "collagen", 0x80471C, ROUGH, 1, of(), 0); + public static DustMaterial Gelatin = new DustMaterial(282, "gelatin", 0x588BAE, ROUGH, 1, of(), 0); + public static DustMaterial Agar = new DustMaterial(283, "agar", 0x4F7942, ROUGH, 1, of(), 0); /** * Second Degree Compounds */ - public static GemMaterial Glass = new GemMaterial(267, "glass", 0xFAFAFA, GLASS, 0, of(new MaterialStack(SiliconDioxide, 1)), GENERATE_PLATE | GENERATE_LENSE | NO_SMASHING | NO_RECYCLING | SMELT_INTO_FLUID | EXCLUDE_BLOCK_CRAFTING_RECIPES | DECOMPOSITION_BY_CENTRIFUGING); - public static DustMaterial Perlite = new DustMaterial(268, "perlite", 0x1E141E, DULL, 1, of(new MaterialStack(Obsidian, 2), new MaterialStack(Water, 1)), 0); - public static DustMaterial Borax = new DustMaterial(269, "borax", 0xFAFAFA, FINE, 1, of(new MaterialStack(Sodium, 2), new MaterialStack(Boron, 4), new MaterialStack(Water, 10), new MaterialStack(Oxygen, 7)), 0); - public static GemMaterial Lignite = new GemMaterial(270, "lignite", 0x644646, LIGNITE, 0, of(new MaterialStack(Carbon, 2), new MaterialStack(Water, 4), new MaterialStack(DarkAsh, 1)), GENERATE_ORE | FLAMMABLE | NO_SMELTING | NO_SMASHING | MORTAR_GRINDABLE); - public static GemMaterial Olivine = new GemMaterial(271, "olivine", 0x96FF96, RUBY, 2, of(new MaterialStack(Magnesium, 2), new MaterialStack(Iron, 1), new MaterialStack(SiliconDioxide, 2)), STD_GEM | NO_SMASHING | NO_SMELTING | HIGH_SIFTER_OUTPUT, 7.5F, 3.0f, 312); - public static GemMaterial Opal = new GemMaterial(272, "opal", 0x0000FF, OPAL, 2, of(new MaterialStack(SiliconDioxide, 1)), STD_GEM | NO_SMASHING | NO_SMELTING | HIGH_SIFTER_OUTPUT | DECOMPOSITION_BY_CENTRIFUGING, 7.5F, 3.0f, 312); - public static GemMaterial Amethyst = new GemMaterial(273, "amethyst", 0xD232D2, RUBY, 3, of(new MaterialStack(SiliconDioxide, 4), new MaterialStack(Iron, 1)), STD_GEM | NO_SMASHING | NO_SMELTING | HIGH_SIFTER_OUTPUT, 7.5F, 3.0f, 312); - public static DustMaterial Redstone = new DustMaterial(274, "redstone", 0xC80000, ROUGH, 2, of(new MaterialStack(Silicon, 1), new MaterialStack(Pyrite, 5), new MaterialStack(Ruby, 1), new MaterialStack(Mercury, 3)), GENERATE_PLATE | GENERATE_ORE | NO_SMASHING | SMELT_INTO_FLUID | EXCLUDE_BLOCK_CRAFTING_BY_HAND_RECIPES | DECOMPOSITION_BY_CENTRIFUGING); - public static GemMaterial Lapis = new GemMaterial(275, "lapis", 0x4646DC, LAPIS, 1, of(new MaterialStack(Lazurite, 12), new MaterialStack(Sodalite, 2), new MaterialStack(Pyrite, 1), new MaterialStack(Calcite, 1)), STD_GEM | NO_SMASHING | NO_SMELTING | CRYSTALLISABLE | NO_WORKING | DECOMPOSITION_BY_ELECTROLYZING | EXCLUDE_BLOCK_CRAFTING_BY_HAND_RECIPES | DECOMPOSITION_BY_CENTRIFUGING); - public static DustMaterial Blaze = new DustMaterial(276, "blaze", 0xFFC800, FINE, 1, of(new MaterialStack(DarkAsh, 1), new MaterialStack(Sulfur, 1)), NO_SMELTING | SMELT_INTO_FLUID | MORTAR_GRINDABLE | BURNING | DECOMPOSITION_BY_CENTRIFUGING); - public static GemMaterial EnderPearl = new GemMaterial(277, "ender_pearl", 0x6CDCC8, GEM_VERTICAL, 1, of(new MaterialStack(Beryllium, 1), new MaterialStack(Potassium, 4), new MaterialStack(Nitrogen, 5)), GENERATE_PLATE | GENERATE_LENSE | NO_SMASHING | NO_SMELTING); - public static GemMaterial EnderEye = new GemMaterial(278, "ender_eye", 0x66FF66, GEM_VERTICAL, 1, of(new MaterialStack(EnderPearl, 1), new MaterialStack(Blaze, 1)), GENERATE_PLATE | GENERATE_LENSE | NO_SMASHING | NO_SMELTING | DECOMPOSITION_BY_CENTRIFUGING); - public static RoughSolidMaterial Flint = new RoughSolidMaterial(279, "flint", 0x002040, FLINT, 1, of(new MaterialStack(SiliconDioxide, 1)), NO_SMASHING | MORTAR_GRINDABLE | DECOMPOSITION_BY_CENTRIFUGING, () -> OrePrefix.gem); - public static DustMaterial Diatomite = new DustMaterial(280, "diatomite", 0xE1E1E1, DULL, 1, of(new MaterialStack(Flint, 8), new MaterialStack(BandedIron, 1), new MaterialStack(Sapphire, 1)), 0); - public static DustMaterial Niter = new DustMaterial(281, "niter", 0xFFC8C8, FLINT, 1, of(new MaterialStack(Saltpeter, 1)), NO_SMASHING | NO_SMELTING | DECOMPOSITION_BY_CENTRIFUGING); - public static DustMaterial Tantalite = new DustMaterial(282, "tantalite", 0x915028, METALLIC, 3, of(new MaterialStack(Manganese, 1), new MaterialStack(Tantalum, 2), new MaterialStack(Oxygen, 6)), GENERATE_ORE); - public static GemMaterial Apatite = new GemMaterial(283, "apatite", 0xC8C8FF, DIAMOND, 1, of(new MaterialStack(Calcium, 5), new MaterialStack(Phosphate, 3), new MaterialStack(Chlorine, 1)), GENERATE_ORE | NO_SMASHING | NO_SMELTING | CRYSTALLISABLE); - public static IngotMaterial SterlingSilver = new IngotMaterial(284, "sterling_silver", 0xFADCE1, SHINY, 2, of(new MaterialStack(Copper, 1), new MaterialStack(Silver, 4)), EXT2_METAL, null, 13.0F, 2.0f, 196, 1700); - public static IngotMaterial RoseGold = new IngotMaterial(285, "rose_gold", 0xFFE61E, SHINY, 2, of(new MaterialStack(Copper, 1), new MaterialStack(Gold, 4)), EXT2_METAL, null, 14.0F, 2.0f, 152, 1600); - public static IngotMaterial BlackBronze = new IngotMaterial(286, "black_bronze", 0x64327D, DULL, 2, of(new MaterialStack(Gold, 1), new MaterialStack(Silver, 1), new MaterialStack(Copper, 3)), EXT2_METAL, null, 12.0F, 2.0f, 256, 2000); - public static IngotMaterial BismuthBronze = new IngotMaterial(287, "bismuth_bronze", 0x647D7D, DULL, 2, of(new MaterialStack(Bismuth, 1), new MaterialStack(Zinc, 1), new MaterialStack(Copper, 3)), EXT2_METAL, null, 8.0F, 3.0f, 256, 1100); - public static IngotMaterial BlackSteel = new IngotMaterial(288, "black_steel", 0x646464, METALLIC, 2, of(new MaterialStack(Nickel, 1), new MaterialStack(BlackBronze, 1), new MaterialStack(Steel, 3)), EXT_METAL, null, 6.5F, 6.5f, 768, 1200); - public static IngotMaterial RedSteel = new IngotMaterial(289, "red_steel", 0x8C6464, METALLIC, 2, of(new MaterialStack(SterlingSilver, 1), new MaterialStack(BismuthBronze, 1), new MaterialStack(Steel, 2), new MaterialStack(BlackSteel, 4)), EXT_METAL, null, 7.0F, 4.5f, 896, 1300); - public static IngotMaterial BlueSteel = new IngotMaterial(290, "blue_steel", 0x64648C, METALLIC, 2, of(new MaterialStack(RoseGold, 1), new MaterialStack(Brass, 1), new MaterialStack(Steel, 2), new MaterialStack(BlackSteel, 4)), EXT_METAL | GENERATE_FRAME, null, 7.5F, 5.0f, 1024, 1400); - public static IngotMaterial DamascusSteel = new IngotMaterial(291, "damascus_steel", 0x6E6E6E, METALLIC, 2, of(new MaterialStack(Steel, 1)), EXT_METAL, null, 8.0F, 5.0f, 1280, 1500); - public static IngotMaterial TungstenSteel = new IngotMaterial(292, "tungsten_steel", 0x6464A0, METALLIC, 4, of(new MaterialStack(Steel, 1), new MaterialStack(Tungsten, 1)), EXT2_METAL | GENERATE_RING | GENERATE_ROTOR | GENERATE_SMALL_GEAR | GENERATE_LONG_ROD | GENERATE_DENSE | GENERATE_FRAME| GENERATE_SPRING, null, 8.0F, 4.0f, 2560, 3000); - public static IngotMaterial RedAlloy = new IngotMaterial(293, "red_alloy", 0xC80000, DULL, 0, of(new MaterialStack(Copper, 1), new MaterialStack(Redstone, 1)), GENERATE_PLATE | GENERATE_FINE_WIRE | GENERATE_BOLT_SCREW); - public static IngotMaterial CobaltBrass = new IngotMaterial(294, "cobalt_brass", 0xB4B4A0, METALLIC, 2, of(new MaterialStack(Brass, 7), new MaterialStack(Aluminium, 1), new MaterialStack(Cobalt, 1)), EXT2_METAL, null, 8.0F, 2.0f, 256); - public static DustMaterial TricalciumPhosphate = new DustMaterial(295, "tricalcium_phosphate", 0xFFFF00, FLINT, 2, of(new MaterialStack(Calcium, 3), new MaterialStack(Phosphate, 2)), GENERATE_ORE | NO_SMASHING | NO_SMELTING | FLAMMABLE | EXPLOSIVE | DECOMPOSITION_BY_CENTRIFUGING); - public static DustMaterial Basalt = new DustMaterial(296, "basalt", 0x1E1414, ROUGH, 1, of(new MaterialStack(Olivine, 1), new MaterialStack(Calcite, 3), new MaterialStack(Flint, 8), new MaterialStack(DarkAsh, 4)), NO_SMASHING | DECOMPOSITION_BY_CENTRIFUGING); - public static DustMaterial Andesite = new DustMaterial(297, "andesite", 0xBEBEBE, ROUGH, 2, of(), NO_SMASHING); - public static DustMaterial Diorite = new DustMaterial(298, "diorite", 0xFFFFFF, ROUGH, 2, of(), NO_SMASHING); - public static DustMaterial Granite = new DustMaterial(299, "granite", 0xCFA18C, ROUGH, 2, of(), NO_SMASHING); - public static GemMaterial GarnetRed = new GemMaterial(300, "garnet_red", 0xC85050, RUBY, 2, of(new MaterialStack(Pyrope, 3), new MaterialStack(Almandine, 5), new MaterialStack(Spessartine, 8)), STD_SOLID | GENERATE_LENSE | NO_SMASHING | NO_SMELTING | HIGH_SIFTER_OUTPUT | GENERATE_ORE | DECOMPOSITION_BY_CENTRIFUGING, null, 7.5F, 3.0f, 156); - public static GemMaterial GarnetYellow = new GemMaterial(301, "garnet_yellow", 0xC8C850, RUBY, 2, of(new MaterialStack(Andradite, 5), new MaterialStack(Grossular, 8), new MaterialStack(Uvarovite, 3)), STD_SOLID | GENERATE_LENSE | NO_SMASHING | NO_SMELTING | HIGH_SIFTER_OUTPUT | GENERATE_ORE | DECOMPOSITION_BY_CENTRIFUGING, null, 7.5F, 3.0f, 156); - public static DustMaterial Marble = new DustMaterial(302, "marble", 0xC8C8C8, FINE, 1, of(new MaterialStack(Magnesium, 1), new MaterialStack(Calcite, 7)), NO_SMASHING | DECOMPOSITION_BY_CENTRIFUGING); - public static DustMaterial Sugar = new DustMaterial(303, "sugar", 0xFAFAFA, FINE, 1, of(new MaterialStack(Carbon, 2), new MaterialStack(Water, 5), new MaterialStack(Oxygen, 25)), 0); - public static GemMaterial Vinteum = new GemMaterial(304, "vinteum", 0x64C8FF, EMERALD, 3, of(), STD_GEM | NO_SMASHING | NO_SMELTING, 12.0F, 3.0f, 128); - public static DustMaterial Redrock = new DustMaterial(305, "redrock", 0xFF5032, ROUGH, 1, of(new MaterialStack(Calcite, 2), new MaterialStack(Flint, 1), new MaterialStack(Clay, 1)), NO_SMASHING | DECOMPOSITION_BY_CENTRIFUGING); - public static DustMaterial PotassiumFeldspar = new DustMaterial(306, "potassium_feldspar", 0x782828, FINE, 1, of(new MaterialStack(Potassium, 1), new MaterialStack(Aluminium, 1), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 8)), 0); - public static DustMaterial Biotite = new DustMaterial(307, "biotite", 0x141E14, METALLIC, 1, of(new MaterialStack(Potassium, 1), new MaterialStack(Magnesium, 3), new MaterialStack(Aluminium, 3), new MaterialStack(Fluorine, 2), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 10)), 0); - public static DustMaterial GraniteBlack = new DustMaterial(308, "granite_black", 0x0A0A0A, ROUGH, 3, of(new MaterialStack(SiliconDioxide, 4), new MaterialStack(Biotite, 1)), NO_SMASHING | DECOMPOSITION_BY_CENTRIFUGING); - public static DustMaterial GraniteRed = new DustMaterial(309, "granite_red", 0xFF0080, ROUGH, 3, of(new MaterialStack(Aluminium, 2), new MaterialStack(PotassiumFeldspar, 1), new MaterialStack(Oxygen, 3)), NO_SMASHING); - public static DustMaterial Chrysotile = new DustMaterial(310, "chrysotile", 0x6E8C6E, ROUGH, 2, of(new MaterialStack(Asbestos, 1)), 0); - public static DustMaterial Realgar = new DustMaterial(311, "realgar", 0x8C6464, DULL, 2, of(new MaterialStack(Arsenic, 4), new MaterialStack(Sulfur, 4)), DECOMPOSITION_BY_CENTRIFUGING); - public static DustMaterial VanadiumMagnetite = new DustMaterial(312, "vanadium_magnetite", 0x23233C, METALLIC, 2, of(new MaterialStack(Magnetite, 1), new MaterialStack(Vanadium, 1)), GENERATE_ORE | DECOMPOSITION_BY_CENTRIFUGING); - public static DustMaterial BasalticMineralSand = new DustMaterial(313, "basaltic_mineral_sand", 0x283228, SAND, 1, of(new MaterialStack(Magnetite, 1), new MaterialStack(Basalt, 1)), INDUCTION_SMELTING_LOW_OUTPUT); - public static DustMaterial GraniticMineralSand = new DustMaterial(314, "granitic_mineral_sand", 0x283C3C, SAND, 1, of(new MaterialStack(Magnetite, 1), new MaterialStack(GraniteBlack, 1)), INDUCTION_SMELTING_LOW_OUTPUT); - public static DustMaterial GarnetSand = new DustMaterial(315, "garnet_sand", 0xC86400, SAND, 1, of(new MaterialStack(GarnetRed, 1), new MaterialStack(GarnetYellow, 1)), 0); - public static DustMaterial QuartzSand = new DustMaterial(316, "quartz_sand", 0xC8C8C8, SAND, 1, of(new MaterialStack(CertusQuartz, 1), new MaterialStack(Quartzite, 1)), 0); - public static DustMaterial Bastnasite = new DustMaterial(317, "bastnasite", 0xC86E2D, FINE, 2, of(new MaterialStack(Cerium, 1), new MaterialStack(Carbon, 1), new MaterialStack(Fluorine, 1), new MaterialStack(Oxygen, 3)), GENERATE_ORE); - public static DustMaterial Pentlandite = new DustMaterial(318, "pentlandite", 0xA59605, DULL, 2, of(new MaterialStack(Nickel, 9), new MaterialStack(Sulfur, 8)), GENERATE_ORE | INDUCTION_SMELTING_LOW_OUTPUT); - public static DustMaterial Spodumene = new DustMaterial(319, "spodumene", 0xBEAAAA, DULL, 2, of(new MaterialStack(Lithium, 1), new MaterialStack(Aluminium, 1), new MaterialStack(Silicon, 2), new MaterialStack(Oxygen, 6)), GENERATE_ORE); - public static DustMaterial Pollucite = new DustMaterial(320, "pollucite", 0xF0D2D2, DULL, 2, of(new MaterialStack(Caesium, 2), new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 4), new MaterialStack(Water, 2), new MaterialStack(Oxygen, 12)), 0); - public static DustMaterial Lepidolite = new DustMaterial(321, "lepidolite", 0xF0328C, FINE, 2, of(new MaterialStack(Potassium, 1), new MaterialStack(Lithium, 3), new MaterialStack(Aluminium, 4), new MaterialStack(Fluorine, 2), new MaterialStack(Oxygen, 10)), GENERATE_ORE); - public static DustMaterial Glauconite = new DustMaterial(322, "glauconite", 0x82B43C, DULL, 2, of(new MaterialStack(Potassium, 1), new MaterialStack(Magnesium, 2), new MaterialStack(Aluminium, 4), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 12)), GENERATE_ORE); - public static DustMaterial GlauconiteSand = new DustMaterial(323, "glauconite_sand", 0x82B43C, SAND, 2, of(new MaterialStack(Potassium, 1), new MaterialStack(Magnesium, 2), new MaterialStack(Aluminium, 4), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 12)), 0); - public static DustMaterial Vermiculite = new DustMaterial(324, "vermiculite", 0xC8B40F, METALLIC, 2, of(new MaterialStack(Iron, 3), new MaterialStack(Aluminium, 4), new MaterialStack(Silicon, 4), new MaterialStack(Hydrogen, 2), new MaterialStack(Water, 4), new MaterialStack(Oxygen, 12)), 0); - public static DustMaterial Bentonite = new DustMaterial(325, "bentonite", 0xF5D7D2, ROUGH, 2, of(new MaterialStack(Sodium, 1), new MaterialStack(Magnesium, 6), new MaterialStack(Silicon, 12), new MaterialStack(Hydrogen, 4), new MaterialStack(Water, 5), new MaterialStack(Oxygen, 36)), GENERATE_ORE); - public static DustMaterial FullersEarth = new DustMaterial(326, "fullers_earth", 0xA0A078, FINE, 2, of(new MaterialStack(Magnesium, 1), new MaterialStack(Silicon, 4), new MaterialStack(Hydrogen, 1), new MaterialStack(Water, 4), new MaterialStack(Oxygen, 11)), 0); - public static DustMaterial Pitchblende = new DustMaterial(327, "pitchblende", 0xC8D200, DULL, 3, of(new MaterialStack(Uraninite, 3), new MaterialStack(Thorium, 1), new MaterialStack(Lead, 1)), GENERATE_ORE | DECOMPOSITION_BY_CENTRIFUGING).setFormula("(UO2)3ThPb"); - public static GemMaterial Monazite = new GemMaterial(328, "monazite", 0x324632, DIAMOND, 1, of(new MaterialStack(RareEarth, 1), new MaterialStack(Phosphate, 1)), GENERATE_ORE | NO_SMASHING | NO_SMELTING | CRYSTALLISABLE); - public static DustMaterial Malachite = new DustMaterial(329, "malachite", 0x055F05, DULL, 2, of(new MaterialStack(Copper, 2), new MaterialStack(Carbon, 1), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 5)), GENERATE_ORE | INDUCTION_SMELTING_LOW_OUTPUT); - public static DustMaterial Mirabilite = new DustMaterial(330, "mirabilite", 0xF0FAD2, DULL, 2, of(new MaterialStack(Sodium, 2), new MaterialStack(Sulfur, 1), new MaterialStack(Water, 10), new MaterialStack(Oxygen, 4)), 0); - public static DustMaterial Mica = new DustMaterial(331, "mica", 0xC3C3CD, FINE, 1, of(new MaterialStack(Potassium, 1), new MaterialStack(Aluminium, 3), new MaterialStack(Silicon, 3), new MaterialStack(Fluorine, 2), new MaterialStack(Oxygen, 10)), 0); - public static DustMaterial Trona = new DustMaterial(332, "trona", 0x87875F, METALLIC, 1, of(new MaterialStack(Sodium, 3), new MaterialStack(Carbon, 2), new MaterialStack(Hydrogen, 1), new MaterialStack(Water, 2), new MaterialStack(Oxygen, 6)), 0); - public static DustMaterial Barite = new DustMaterial(333, "barite", 0xE6EBEB, DULL, 2, of(new MaterialStack(Barium, 1), new MaterialStack(Sulfur, 1), new MaterialStack(Oxygen, 4)), GENERATE_ORE); - public static DustMaterial Gypsum = new DustMaterial(334, "gypsum", 0xE6E6FA, DULL, 1, of(new MaterialStack(Calcium, 1), new MaterialStack(Sulfur, 1), new MaterialStack(Water, 2), new MaterialStack(Oxygen, 4)), 0); - public static DustMaterial Alunite = new DustMaterial(335, "alunite", 0xE1B441, METALLIC, 2, of(new MaterialStack(Potassium, 1), new MaterialStack(Aluminium, 3), new MaterialStack(Silicon, 2), new MaterialStack(Hydrogen, 6), new MaterialStack(Oxygen, 14)), 0); - public static DustMaterial Dolomite = new DustMaterial(336, "dolomite", 0xE1CDCD, FLINT, 1, of(new MaterialStack(Calcium, 1), new MaterialStack(Magnesium, 1), new MaterialStack(Carbon, 2), new MaterialStack(Oxygen, 6)), 0); - public static DustMaterial Wollastonite = new DustMaterial(337, "wollastonite", 0xF0F0F0, DULL, 2, of(new MaterialStack(Calcium, 1), new MaterialStack(Silicon, 1), new MaterialStack(Oxygen, 3)), 0); - public static DustMaterial Zeolite = new DustMaterial(338, "zeolite", 0xF0E6E6, DULL, 2, of(new MaterialStack(Sodium, 1), new MaterialStack(Calcium, 4), new MaterialStack(Silicon, 27), new MaterialStack(Aluminium, 9), new MaterialStack(Water, 28), new MaterialStack(Oxygen, 72)), DISABLE_DECOMPOSITION); - public static DustMaterial Kyanite = new DustMaterial(339, "kyanite", 0x6E6EFA, FLINT, 2, of(new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 1), new MaterialStack(Oxygen, 5)), 0); - public static DustMaterial Kaolinite = new DustMaterial(340, "kaolinite", 0xF3EBEB, DULL, 2, of(new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 2), new MaterialStack(Hydrogen, 4), new MaterialStack(Oxygen, 9)), 0); - public static DustMaterial Talc = new DustMaterial(341, "talc", 0x5AB45A, FINE, 2, of(new MaterialStack(Magnesium, 3), new MaterialStack(Silicon, 4), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 12)), GENERATE_ORE); - public static DustMaterial Soapstone = new DustMaterial(342, "soapstone", 0x5F915F, DULL, 1, of(new MaterialStack(Magnesium, 3), new MaterialStack(Silicon, 4), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 12)), GENERATE_ORE); - public static DustMaterial Concrete = new DustMaterial(343, "concrete", 0x646464, ROUGH, 1, of(new MaterialStack(Stone, 1)), NO_SMASHING | SMELT_INTO_FLUID); - public static IngotMaterial IronMagnetic = new IngotMaterial(344, "iron_magnetic", 0xC8C8C8, MAGNETIC, 2, of(new MaterialStack(Iron, 1)), EXT2_METAL | MORTAR_GRINDABLE); - public static IngotMaterial SteelMagnetic = new IngotMaterial(345, "steel_magnetic", 0x808080, MAGNETIC, 2, of(new MaterialStack(Steel, 1)), EXT2_METAL | GENERATE_RING | GENERATE_ROTOR | GENERATE_SMALL_GEAR | MORTAR_GRINDABLE, null, 1000); - public static IngotMaterial NeodymiumMagnetic = new IngotMaterial(346, "neodymium_magnetic", 0x646464, MAGNETIC, 2, of(new MaterialStack(Neodymium, 1)), EXT2_METAL | GENERATE_LONG_ROD, null, 1297); - public static IngotMaterial TungstenCarbide = new IngotMaterial(347, "tungsten_carbide", 0x330066, METALLIC, 4, of(new MaterialStack(Tungsten, 1), new MaterialStack(Carbon, 1)), EXT2_METAL, null, 12.0F, 4.0f, 1280, 2460); - public static IngotMaterial VanadiumSteel = new IngotMaterial(348, "vanadium_steel", 0xc0c0c0, METALLIC, 3, of(new MaterialStack(Vanadium, 1), new MaterialStack(Chrome, 1), new MaterialStack(Steel, 7)), EXT2_METAL, null, 7.0F, 3.0f, 1920, 1453); - public static IngotMaterial HSSG = new IngotMaterial(349, "hssg", 0x999900, METALLIC, 3, of(new MaterialStack(TungstenSteel, 5), new MaterialStack(Chrome, 1), new MaterialStack(Molybdenum, 2), new MaterialStack(Vanadium, 1)), EXT2_METAL | GENERATE_RING | GENERATE_ROTOR | GENERATE_SMALL_GEAR | GENERATE_LONG_ROD | GENERATE_FRAME | GENERATE_SPRING, null, 10.0F, 5.5f, 4000, 4200); - public static IngotMaterial HSSE = new IngotMaterial(350, "hsse", 0x336600, METALLIC, 4, of(new MaterialStack(HSSG, 6), new MaterialStack(Cobalt, 1), new MaterialStack(Manganese, 1), new MaterialStack(Silicon, 1)), EXT2_METAL | GENERATE_RING | GENERATE_ROTOR | GENERATE_SMALL_GEAR | GENERATE_LONG_ROD | GENERATE_FRAME, null, 10.0F, 8.0f, 5120, 5000); - public static IngotMaterial HSSS = new IngotMaterial(351, "hsss", 0x660033, METALLIC, 4, of(new MaterialStack(HSSG, 6), new MaterialStack(Iridium, 2), new MaterialStack(Osmium, 1)), EXT2_METAL | GENERATE_GEAR | GENERATE_SMALL_GEAR, null, 15.0F, 7.0f, 3000, 5000); - public static IngotMaterial DiamericiumTitanium = new IngotMaterial(352, "diamericium_titanium", 0x755280, METALLIC, 4, of(new MaterialStack(Americium, 2), new MaterialStack(Titanium, 1)), EXT2_METAL, null, 6.0F, 6.0F, 2200, 10400); - - /* - * Clear matter materials - */ + public static GemMaterial Glass = new GemMaterial(284, "glass", 0xFAFAFA, GLASS, 0, of(new MaterialStack(SiliconDioxide, 1)), GENERATE_PLATE | GENERATE_LENSE | NO_SMASHING | NO_RECYCLING | SMELT_INTO_FLUID | EXCLUDE_BLOCK_CRAFTING_RECIPES | DECOMPOSITION_BY_CENTRIFUGING); + public static DustMaterial Perlite = new DustMaterial(285, "perlite", 0x1E141E, DULL, 1, of(new MaterialStack(Obsidian, 2), new MaterialStack(Water, 1)), 0); + public static DustMaterial Borax = new DustMaterial(286, "borax", 0xFAFAFA, FINE, 1, of(new MaterialStack(Sodium, 2), new MaterialStack(Boron, 4), new MaterialStack(Water, 10), new MaterialStack(Oxygen, 7)), 0); + public static GemMaterial Lignite = new GemMaterial(287, "lignite", 0x644646, LIGNITE, 0, of(new MaterialStack(Carbon, 2), new MaterialStack(Water, 4), new MaterialStack(DarkAsh, 1)), GENERATE_ORE | FLAMMABLE | NO_SMELTING | NO_SMASHING | MORTAR_GRINDABLE); + public static GemMaterial Olivine = new GemMaterial(288, "olivine", 0x96FF96, RUBY, 2, of(new MaterialStack(Magnesium, 2), new MaterialStack(Iron, 1), new MaterialStack(SiliconDioxide, 2)), STD_GEM | NO_SMASHING | NO_SMELTING | HIGH_SIFTER_OUTPUT, 7.5F, 3.0f, 312); + public static GemMaterial Opal = new GemMaterial(289, "opal", 0x0000FF, OPAL, 2, of(new MaterialStack(SiliconDioxide, 1)), STD_GEM | NO_SMASHING | NO_SMELTING | HIGH_SIFTER_OUTPUT | DECOMPOSITION_BY_CENTRIFUGING, 7.5F, 3.0f, 312); + public static GemMaterial Amethyst = new GemMaterial(290, "amethyst", 0xD232D2, RUBY, 3, of(new MaterialStack(SiliconDioxide, 4), new MaterialStack(Iron, 1)), STD_GEM | NO_SMASHING | NO_SMELTING | HIGH_SIFTER_OUTPUT, 7.5F, 3.0f, 312); + public static DustMaterial Redstone = new DustMaterial(291, "redstone", 0xC80000, ROUGH, 2, of(new MaterialStack(Silicon, 1), new MaterialStack(Pyrite, 5), new MaterialStack(Ruby, 1), new MaterialStack(Mercury, 3)), GENERATE_PLATE | GENERATE_ORE | NO_SMASHING | SMELT_INTO_FLUID | EXCLUDE_BLOCK_CRAFTING_BY_HAND_RECIPES | DECOMPOSITION_BY_CENTRIFUGING); + public static GemMaterial Lapis = new GemMaterial(292, "lapis", 0x4646DC, LAPIS, 1, of(new MaterialStack(Lazurite, 12), new MaterialStack(Sodalite, 2), new MaterialStack(Pyrite, 1), new MaterialStack(Calcite, 1)), STD_GEM | NO_SMASHING | NO_SMELTING | CRYSTALLISABLE | NO_WORKING | DECOMPOSITION_BY_ELECTROLYZING | EXCLUDE_BLOCK_CRAFTING_BY_HAND_RECIPES | DECOMPOSITION_BY_CENTRIFUGING); + public static DustMaterial Blaze = new DustMaterial(293, "blaze", 0xFFC800, FINE, 1, of(new MaterialStack(DarkAsh, 1), new MaterialStack(Sulfur, 1)), NO_SMELTING | SMELT_INTO_FLUID | MORTAR_GRINDABLE | BURNING | DECOMPOSITION_BY_CENTRIFUGING); + public static GemMaterial EnderPearl = new GemMaterial(294, "ender_pearl", 0x6CDCC8, GEM_VERTICAL, 1, of(new MaterialStack(Beryllium, 1), new MaterialStack(Potassium, 4), new MaterialStack(Nitrogen, 5)), GENERATE_PLATE | GENERATE_LENSE | NO_SMASHING | NO_SMELTING); + public static GemMaterial EnderEye = new GemMaterial(295, "ender_eye", 0x66FF66, GEM_VERTICAL, 1, of(new MaterialStack(EnderPearl, 1), new MaterialStack(Blaze, 1)), GENERATE_PLATE | GENERATE_LENSE | NO_SMASHING | NO_SMELTING | DECOMPOSITION_BY_CENTRIFUGING); + public static RoughSolidMaterial Flint = new RoughSolidMaterial(296, "flint", 0x002040, FLINT, 1, of(new MaterialStack(SiliconDioxide, 1)), NO_SMASHING | MORTAR_GRINDABLE | DECOMPOSITION_BY_CENTRIFUGING, () -> OrePrefix.gem); + public static DustMaterial Diatomite = new DustMaterial(297, "diatomite", 0xE1E1E1, DULL, 1, of(new MaterialStack(Flint, 8), new MaterialStack(BandedIron, 1), new MaterialStack(Sapphire, 1)), 0); + public static DustMaterial Niter = new DustMaterial(298, "niter", 0xFFC8C8, FLINT, 1, of(new MaterialStack(Saltpeter, 1)), NO_SMASHING | NO_SMELTING | DECOMPOSITION_BY_CENTRIFUGING); + public static DustMaterial Tantalite = new DustMaterial(299, "tantalite", 0x915028, METALLIC, 3, of(new MaterialStack(Manganese, 1), new MaterialStack(Tantalum, 2), new MaterialStack(Oxygen, 6)), GENERATE_ORE); + public static GemMaterial Apatite = new GemMaterial(300, "apatite", 0xC8C8FF, DIAMOND, 1, of(new MaterialStack(Calcium, 5), new MaterialStack(Phosphate, 3), new MaterialStack(Chlorine, 1)), GENERATE_ORE | NO_SMASHING | NO_SMELTING | CRYSTALLISABLE); + public static IngotMaterial SterlingSilver = new IngotMaterial(301, "sterling_silver", 0xFADCE1, SHINY, 2, of(new MaterialStack(Copper, 1), new MaterialStack(Silver, 4)), EXT2_METAL, null, 13.0F, 2.0f, 196, 1700); + public static IngotMaterial RoseGold = new IngotMaterial(302, "rose_gold", 0xFFE61E, SHINY, 2, of(new MaterialStack(Copper, 1), new MaterialStack(Gold, 4)), EXT2_METAL, null, 14.0F, 2.0f, 152, 1600); + public static IngotMaterial BlackBronze = new IngotMaterial(303, "black_bronze", 0x64327D, DULL, 2, of(new MaterialStack(Gold, 1), new MaterialStack(Silver, 1), new MaterialStack(Copper, 3)), EXT2_METAL, null, 12.0F, 2.0f, 256, 2000); + public static IngotMaterial BismuthBronze = new IngotMaterial(304, "bismuth_bronze", 0x647D7D, DULL, 2, of(new MaterialStack(Bismuth, 1), new MaterialStack(Zinc, 1), new MaterialStack(Copper, 3)), EXT2_METAL, null, 8.0F, 3.0f, 256, 1100); + public static IngotMaterial BlackSteel = new IngotMaterial(305, "black_steel", 0x646464, METALLIC, 2, of(new MaterialStack(Nickel, 1), new MaterialStack(BlackBronze, 1), new MaterialStack(Steel, 3)), EXT_METAL, null, 6.5F, 6.5f, 768, 1200); + public static IngotMaterial RedSteel = new IngotMaterial(306, "red_steel", 0x8C6464, METALLIC, 2, of(new MaterialStack(SterlingSilver, 1), new MaterialStack(BismuthBronze, 1), new MaterialStack(Steel, 2), new MaterialStack(BlackSteel, 4)), EXT_METAL, null, 7.0F, 4.5f, 896, 1300); + public static IngotMaterial BlueSteel = new IngotMaterial(307, "blue_steel", 0x64648C, METALLIC, 2, of(new MaterialStack(RoseGold, 1), new MaterialStack(Brass, 1), new MaterialStack(Steel, 2), new MaterialStack(BlackSteel, 4)), EXT_METAL | GENERATE_FRAME, null, 7.5F, 5.0f, 1024, 1400); + public static IngotMaterial DamascusSteel = new IngotMaterial(308, "damascus_steel", 0x6E6E6E, METALLIC, 2, of(new MaterialStack(Steel, 1)), EXT_METAL, null, 8.0F, 5.0f, 1280, 1500); + public static IngotMaterial TungstenSteel = new IngotMaterial(309, "tungsten_steel", 0x6464A0, METALLIC, 4, of(new MaterialStack(Steel, 1), new MaterialStack(Tungsten, 1)), EXT2_METAL | GENERATE_RING | GENERATE_ROTOR | GENERATE_SMALL_GEAR | GENERATE_LONG_ROD | GENERATE_DENSE | GENERATE_FRAME| GENERATE_SPRING, null, 8.0F, 4.0f, 2560, 3000); + public static IngotMaterial RedAlloy = new IngotMaterial(310, "red_alloy", 0xC80000, DULL, 0, of(new MaterialStack(Copper, 1), new MaterialStack(Redstone, 1)), GENERATE_PLATE | GENERATE_FINE_WIRE | GENERATE_BOLT_SCREW); + public static IngotMaterial CobaltBrass = new IngotMaterial(311, "cobalt_brass", 0xB4B4A0, METALLIC, 2, of(new MaterialStack(Brass, 7), new MaterialStack(Aluminium, 1), new MaterialStack(Cobalt, 1)), EXT2_METAL, null, 8.0F, 2.0f, 256); + public static DustMaterial TricalciumPhosphate = new DustMaterial(312, "tricalcium_phosphate", 0xFFFF00, FLINT, 2, of(new MaterialStack(Calcium, 3), new MaterialStack(Phosphate, 2)), GENERATE_ORE | NO_SMASHING | NO_SMELTING | FLAMMABLE | EXPLOSIVE | DECOMPOSITION_BY_CENTRIFUGING); + public static DustMaterial Basalt = new DustMaterial(313, "basalt", 0x1E1414, ROUGH, 1, of(new MaterialStack(Olivine, 1), new MaterialStack(Calcite, 3), new MaterialStack(Flint, 8), new MaterialStack(DarkAsh, 4)), NO_SMASHING | DECOMPOSITION_BY_CENTRIFUGING); + public static DustMaterial Andesite = new DustMaterial(314, "andesite", 0xBEBEBE, ROUGH, 2, of(), NO_SMASHING); + public static DustMaterial Diorite = new DustMaterial(315, "diorite", 0xFFFFFF, ROUGH, 2, of(), NO_SMASHING); + public static DustMaterial Granite = new DustMaterial(316, "granite", 0xCFA18C, ROUGH, 2, of(), NO_SMASHING); + public static GemMaterial GarnetRed = new GemMaterial(317, "garnet_red", 0xC85050, RUBY, 2, of(new MaterialStack(Pyrope, 3), new MaterialStack(Almandine, 5), new MaterialStack(Spessartine, 8)), STD_SOLID | GENERATE_LENSE | NO_SMASHING | NO_SMELTING | HIGH_SIFTER_OUTPUT | GENERATE_ORE | DECOMPOSITION_BY_CENTRIFUGING, null, 7.5F, 3.0f, 156); + public static GemMaterial GarnetYellow = new GemMaterial(318, "garnet_yellow", 0xC8C850, RUBY, 2, of(new MaterialStack(Andradite, 5), new MaterialStack(Grossular, 8), new MaterialStack(Uvarovite, 3)), STD_SOLID | GENERATE_LENSE | NO_SMASHING | NO_SMELTING | HIGH_SIFTER_OUTPUT | GENERATE_ORE | DECOMPOSITION_BY_CENTRIFUGING, null, 7.5F, 3.0f, 156); + public static DustMaterial Marble = new DustMaterial(319, "marble", 0xC8C8C8, FINE, 1, of(new MaterialStack(Magnesium, 1), new MaterialStack(Calcite, 7)), NO_SMASHING | DECOMPOSITION_BY_CENTRIFUGING); + public static DustMaterial Sugar = new DustMaterial(320, "sugar", 0xFAFAFA, FINE, 1, of(new MaterialStack(Carbon, 2), new MaterialStack(Water, 5), new MaterialStack(Oxygen, 25)), 0); + public static GemMaterial Vinteum = new GemMaterial(321, "vinteum", 0x64C8FF, EMERALD, 3, of(), STD_GEM | NO_SMASHING | NO_SMELTING, 12.0F, 3.0f, 128); + public static DustMaterial Redrock = new DustMaterial(322, "redrock", 0xFF5032, ROUGH, 1, of(new MaterialStack(Calcite, 2), new MaterialStack(Flint, 1), new MaterialStack(Clay, 1)), NO_SMASHING | DECOMPOSITION_BY_CENTRIFUGING); + public static DustMaterial PotassiumFeldspar = new DustMaterial(323, "potassium_feldspar", 0x782828, FINE, 1, of(new MaterialStack(Potassium, 1), new MaterialStack(Aluminium, 1), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 8)), 0); + public static DustMaterial Biotite = new DustMaterial(324, "biotite", 0x141E14, METALLIC, 1, of(new MaterialStack(Potassium, 1), new MaterialStack(Magnesium, 3), new MaterialStack(Aluminium, 3), new MaterialStack(Fluorine, 2), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 10)), 0); + public static DustMaterial GraniteBlack = new DustMaterial(325, "granite_black", 0x0A0A0A, ROUGH, 3, of(new MaterialStack(SiliconDioxide, 4), new MaterialStack(Biotite, 1)), NO_SMASHING | DECOMPOSITION_BY_CENTRIFUGING); + public static DustMaterial GraniteRed = new DustMaterial(326, "granite_red", 0xFF0080, ROUGH, 3, of(new MaterialStack(Aluminium, 2), new MaterialStack(PotassiumFeldspar, 1), new MaterialStack(Oxygen, 3)), NO_SMASHING); + public static DustMaterial Chrysotile = new DustMaterial(327, "chrysotile", 0x6E8C6E, ROUGH, 2, of(new MaterialStack(Asbestos, 1)), 0); + public static DustMaterial Realgar = new DustMaterial(328, "realgar", 0x8C6464, DULL, 2, of(new MaterialStack(Arsenic, 4), new MaterialStack(Sulfur, 4)), DECOMPOSITION_BY_CENTRIFUGING); + public static DustMaterial VanadiumMagnetite = new DustMaterial(329, "vanadium_magnetite", 0x23233C, METALLIC, 2, of(new MaterialStack(Magnetite, 1), new MaterialStack(Vanadium, 1)), GENERATE_ORE | DECOMPOSITION_BY_CENTRIFUGING); + public static DustMaterial BasalticMineralSand = new DustMaterial(330, "basaltic_mineral_sand", 0x283228, SAND, 1, of(new MaterialStack(Magnetite, 1), new MaterialStack(Basalt, 1)), INDUCTION_SMELTING_LOW_OUTPUT); + public static DustMaterial GraniticMineralSand = new DustMaterial(331, "granitic_mineral_sand", 0x283C3C, SAND, 1, of(new MaterialStack(Magnetite, 1), new MaterialStack(GraniteBlack, 1)), INDUCTION_SMELTING_LOW_OUTPUT); + public static DustMaterial GarnetSand = new DustMaterial(332, "garnet_sand", 0xC86400, SAND, 1, of(new MaterialStack(GarnetRed, 1), new MaterialStack(GarnetYellow, 1)), 0); + public static DustMaterial QuartzSand = new DustMaterial(333, "quartz_sand", 0xC8C8C8, SAND, 1, of(new MaterialStack(CertusQuartz, 1), new MaterialStack(Quartzite, 1)), 0); + public static DustMaterial Bastnasite = new DustMaterial(334, "bastnasite", 0xC86E2D, FINE, 2, of(new MaterialStack(Cerium, 1), new MaterialStack(Carbon, 1), new MaterialStack(Fluorine, 1), new MaterialStack(Oxygen, 3)), GENERATE_ORE); + public static DustMaterial Pentlandite = new DustMaterial(335, "pentlandite", 0xA59605, DULL, 2, of(new MaterialStack(Nickel, 9), new MaterialStack(Sulfur, 8)), GENERATE_ORE | INDUCTION_SMELTING_LOW_OUTPUT); + public static DustMaterial Spodumene = new DustMaterial(336, "spodumene", 0xBEAAAA, DULL, 2, of(new MaterialStack(Lithium, 1), new MaterialStack(Aluminium, 1), new MaterialStack(Silicon, 2), new MaterialStack(Oxygen, 6)), GENERATE_ORE); + public static DustMaterial Pollucite = new DustMaterial(337, "pollucite", 0xF0D2D2, DULL, 2, of(new MaterialStack(Caesium, 2), new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 4), new MaterialStack(Water, 2), new MaterialStack(Oxygen, 12)), 0); + public static DustMaterial Lepidolite = new DustMaterial(338, "lepidolite", 0xF0328C, FINE, 2, of(new MaterialStack(Potassium, 1), new MaterialStack(Lithium, 3), new MaterialStack(Aluminium, 4), new MaterialStack(Fluorine, 2), new MaterialStack(Oxygen, 10)), GENERATE_ORE); + public static DustMaterial Glauconite = new DustMaterial(339, "glauconite", 0x82B43C, DULL, 2, of(new MaterialStack(Potassium, 1), new MaterialStack(Magnesium, 2), new MaterialStack(Aluminium, 4), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 12)), GENERATE_ORE); + public static DustMaterial GlauconiteSand = new DustMaterial(340, "glauconite_sand", 0x82B43C, SAND, 2, of(new MaterialStack(Potassium, 1), new MaterialStack(Magnesium, 2), new MaterialStack(Aluminium, 4), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 12)), 0); + public static DustMaterial Vermiculite = new DustMaterial(341, "vermiculite", 0xC8B40F, METALLIC, 2, of(new MaterialStack(Iron, 3), new MaterialStack(Aluminium, 4), new MaterialStack(Silicon, 4), new MaterialStack(Hydrogen, 2), new MaterialStack(Water, 4), new MaterialStack(Oxygen, 12)), 0); + public static DustMaterial Bentonite = new DustMaterial(342, "bentonite", 0xF5D7D2, ROUGH, 2, of(new MaterialStack(Sodium, 1), new MaterialStack(Magnesium, 6), new MaterialStack(Silicon, 12), new MaterialStack(Hydrogen, 4), new MaterialStack(Water, 5), new MaterialStack(Oxygen, 36)), GENERATE_ORE); + public static DustMaterial FullersEarth = new DustMaterial(343, "fullers_earth", 0xA0A078, FINE, 2, of(new MaterialStack(Magnesium, 1), new MaterialStack(Silicon, 4), new MaterialStack(Hydrogen, 1), new MaterialStack(Water, 4), new MaterialStack(Oxygen, 11)), 0); + public static DustMaterial Pitchblende = new DustMaterial(344, "pitchblende", 0xC8D200, DULL, 3, of(new MaterialStack(Uraninite, 3), new MaterialStack(Thorium, 1), new MaterialStack(Lead, 1)), GENERATE_ORE | DECOMPOSITION_BY_CENTRIFUGING).setFormula("(UO2)3ThPb"); + public static GemMaterial Monazite = new GemMaterial(345, "monazite", 0x324632, DIAMOND, 1, of(new MaterialStack(RareEarth, 1), new MaterialStack(Phosphate, 1)), GENERATE_ORE | NO_SMASHING | NO_SMELTING | CRYSTALLISABLE); + public static DustMaterial Malachite = new DustMaterial(346, "malachite", 0x055F05, DULL, 2, of(new MaterialStack(Copper, 2), new MaterialStack(Carbon, 1), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 5)), GENERATE_ORE | INDUCTION_SMELTING_LOW_OUTPUT); + public static DustMaterial Mirabilite = new DustMaterial(347, "mirabilite", 0xF0FAD2, DULL, 2, of(new MaterialStack(Sodium, 2), new MaterialStack(Sulfur, 1), new MaterialStack(Water, 10), new MaterialStack(Oxygen, 4)), 0); + public static DustMaterial Mica = new DustMaterial(348, "mica", 0xC3C3CD, FINE, 1, of(new MaterialStack(Potassium, 1), new MaterialStack(Aluminium, 3), new MaterialStack(Silicon, 3), new MaterialStack(Fluorine, 2), new MaterialStack(Oxygen, 10)), 0); + public static DustMaterial Trona = new DustMaterial(349, "trona", 0x87875F, METALLIC, 1, of(new MaterialStack(Sodium, 3), new MaterialStack(Carbon, 2), new MaterialStack(Hydrogen, 1), new MaterialStack(Water, 2), new MaterialStack(Oxygen, 6)), 0); + public static DustMaterial Barite = new DustMaterial(350, "barite", 0xE6EBEB, DULL, 2, of(new MaterialStack(Barium, 1), new MaterialStack(Sulfur, 1), new MaterialStack(Oxygen, 4)), GENERATE_ORE); + public static DustMaterial Gypsum = new DustMaterial(351, "gypsum", 0xE6E6FA, DULL, 1, of(new MaterialStack(Calcium, 1), new MaterialStack(Sulfur, 1), new MaterialStack(Water, 2), new MaterialStack(Oxygen, 4)), 0); + public static DustMaterial Alunite = new DustMaterial(352, "alunite", 0xE1B441, METALLIC, 2, of(new MaterialStack(Potassium, 1), new MaterialStack(Aluminium, 3), new MaterialStack(Silicon, 2), new MaterialStack(Hydrogen, 6), new MaterialStack(Oxygen, 14)), 0); + public static DustMaterial Dolomite = new DustMaterial(353, "dolomite", 0xE1CDCD, FLINT, 1, of(new MaterialStack(Calcium, 1), new MaterialStack(Magnesium, 1), new MaterialStack(Carbon, 2), new MaterialStack(Oxygen, 6)), 0); + public static DustMaterial Wollastonite = new DustMaterial(354, "wollastonite", 0xF0F0F0, DULL, 2, of(new MaterialStack(Calcium, 1), new MaterialStack(Silicon, 1), new MaterialStack(Oxygen, 3)), 0); + public static DustMaterial Zeolite = new DustMaterial(355, "zeolite", 0xF0E6E6, DULL, 2, of(new MaterialStack(Sodium, 1), new MaterialStack(Calcium, 4), new MaterialStack(Silicon, 27), new MaterialStack(Aluminium, 9), new MaterialStack(Water, 28), new MaterialStack(Oxygen, 72)), DISABLE_DECOMPOSITION); + public static DustMaterial Kyanite = new DustMaterial(356, "kyanite", 0x6E6EFA, FLINT, 2, of(new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 1), new MaterialStack(Oxygen, 5)), 0); + public static DustMaterial Kaolinite = new DustMaterial(357, "kaolinite", 0xF3EBEB, DULL, 2, of(new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 2), new MaterialStack(Hydrogen, 4), new MaterialStack(Oxygen, 9)), 0); + public static DustMaterial Talc = new DustMaterial(358, "talc", 0x5AB45A, FINE, 2, of(new MaterialStack(Magnesium, 3), new MaterialStack(Silicon, 4), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 12)), GENERATE_ORE); + public static DustMaterial Soapstone = new DustMaterial(359, "soapstone", 0x5F915F, DULL, 1, of(new MaterialStack(Magnesium, 3), new MaterialStack(Silicon, 4), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 12)), GENERATE_ORE); + public static DustMaterial Concrete = new DustMaterial(360, "concrete", 0x646464, ROUGH, 1, of(new MaterialStack(Stone, 1)), NO_SMASHING | SMELT_INTO_FLUID); + public static IngotMaterial IronMagnetic = new IngotMaterial(361, "iron_magnetic", 0xC8C8C8, MAGNETIC, 2, of(new MaterialStack(Iron, 1)), EXT2_METAL | MORTAR_GRINDABLE); + public static IngotMaterial SteelMagnetic = new IngotMaterial(362, "steel_magnetic", 0x808080, MAGNETIC, 2, of(new MaterialStack(Steel, 1)), EXT2_METAL | GENERATE_RING | GENERATE_ROTOR | GENERATE_SMALL_GEAR | MORTAR_GRINDABLE, null, 1000); + public static IngotMaterial NeodymiumMagnetic = new IngotMaterial(363, "neodymium_magnetic", 0x646464, MAGNETIC, 2, of(new MaterialStack(Neodymium, 1)), EXT2_METAL | GENERATE_LONG_ROD, null, 1297); + public static IngotMaterial TungstenCarbide = new IngotMaterial(364, "tungsten_carbide", 0x330066, METALLIC, 4, of(new MaterialStack(Tungsten, 1), new MaterialStack(Carbon, 1)), EXT2_METAL, null, 12.0F, 4.0f, 1280, 2460); + public static IngotMaterial VanadiumSteel = new IngotMaterial(365, "vanadium_steel", 0xc0c0c0, METALLIC, 3, of(new MaterialStack(Vanadium, 1), new MaterialStack(Chrome, 1), new MaterialStack(Steel, 7)), EXT2_METAL, null, 7.0F, 3.0f, 1920, 1453); + public static IngotMaterial HSSG = new IngotMaterial(366, "hssg", 0x999900, METALLIC, 3, of(new MaterialStack(TungstenSteel, 5), new MaterialStack(Chrome, 1), new MaterialStack(Molybdenum, 2), new MaterialStack(Vanadium, 1)), EXT2_METAL | GENERATE_RING | GENERATE_ROTOR | GENERATE_SMALL_GEAR | GENERATE_LONG_ROD | GENERATE_FRAME | GENERATE_SPRING, null, 10.0F, 5.5f, 4000, 4200); + public static IngotMaterial HSSE = new IngotMaterial(367, "hsse", 0x336600, METALLIC, 4, of(new MaterialStack(HSSG, 6), new MaterialStack(Cobalt, 1), new MaterialStack(Manganese, 1), new MaterialStack(Silicon, 1)), EXT2_METAL | GENERATE_RING | GENERATE_ROTOR | GENERATE_SMALL_GEAR | GENERATE_LONG_ROD | GENERATE_FRAME, null, 10.0F, 8.0f, 5120, 5000); + public static IngotMaterial HSSS = new IngotMaterial(368, "hsss", 0x660033, METALLIC, 4, of(new MaterialStack(HSSG, 6), new MaterialStack(Iridium, 2), new MaterialStack(Osmium, 1)), EXT2_METAL | GENERATE_GEAR | GENERATE_SMALL_GEAR, null, 15.0F, 7.0f, 3000, 5000); + public static IngotMaterial DiamericiumTitanium = new IngotMaterial(369, "diamericium_titanium", 0x755280, METALLIC, 4, of(new MaterialStack(Americium, 2), new MaterialStack(Titanium, 1)), EXT2_METAL, null, 6.0F, 6.0F, 2200, 10400); /** * Fantasy materials */ - public static IngotMaterial Naquadah = new IngotMaterial(353, "naquadah", 0x323232, METALLIC, 4, of(), EXT_METAL | GENERATE_ORE | GENERATE_FOIL| GENERATE_SPRING, Elements.get("Naquadah"), 6.0F, 4.0f, 1280, 5400); - public static IngotMaterial NaquadahAlloy = new IngotMaterial(354, "naquadah_alloy", 0x282828, METALLIC, 5, of(new MaterialStack(Naquadah, 1), new MaterialStack(Osmiridium, 1)), EXT2_METAL| GENERATE_SPRING, null, 8.0F, 5.0f, 5120, 7200); - public static IngotMaterial NaquadahEnriched = new IngotMaterial(355, "naquadah_enriched", 0x323232, METALLIC, 4, of(), EXT_METAL | GENERATE_ORE | GENERATE_FOIL, Elements.get("NaquadahEnriched"), 6.0F, 4.0f, 1280, 4500); - public static IngotMaterial Naquadria = new IngotMaterial(356, "naquadria", 0x1E1E1E, SHINY, 3, of(), EXT_METAL, Elements.get("Naquadria"), 9000); - public static IngotMaterial Neutronium = new IngotMaterial(357, "neutronium", 0xFAFAFA, DULL, 6, of(), EXT2_METAL | GENERATE_RING | GENERATE_ROTOR | GENERATE_SMALL_GEAR | GENERATE_LONG_ROD | GENERATE_FRAME, Elements.get("Neutronium"), 24.0F, 12F, 655360); - public static IngotMaterial Tritanium = new IngotMaterial(358, "tritanium", 0x600000, METALLIC, 6, of(), EXT_METAL | GENERATE_FRAME, Elements.get("Tritanium"), 20.0F, 6.0f, 10240); - public static IngotMaterial Duranium = new IngotMaterial(359, "duranium", 0xFFFFFF, METALLIC, 5, of(), EXT_METAL | GENERATE_FOIL, Elements.get("Duranium"), 16.0F, 5.0f, 5120); - public static IngotMaterial Trinium = new IngotMaterial(360, "trinium", 0xC8C8D2, SHINY, 7, of(), 0, Elements.get("Trinium"), 8600); - public static IngotMaterial Adamantium = new IngotMaterial(361, "adamantium", 0x2d365c, SHINY, 7, of(), 0, Elements.get("Adamantium"), 10850); - public static IngotMaterial Vibranium = new IngotMaterial(362, "vibranium", 0x828aad, SHINY, 7, of(), 0, Elements.get("Vibranium"), 11220); - public static IngotMaterial Taranium = new IngotMaterial(363, "taranium", 0x0c0c0d, SHINY, 7, of(), 0, Elements.get("Taranium"), 10000); - public static IngotMaterial FluxedElectrum = new IngotMaterial(364, "fluxed_electrum", 0xf2ef27, METALLIC, 4, of(new MaterialStack(Electrum, 1), new MaterialStack(NaquadahAlloy, 1), new MaterialStack(BlueSteel, 1), new MaterialStack(RedSteel, 1)), EXT2_METAL, null, 11.0F, 6.0f, 2100, 9000); + public static IngotMaterial Naquadah = new IngotMaterial(370, "naquadah", 0x323232, METALLIC, 4, of(), EXT_METAL | GENERATE_ORE | GENERATE_FOIL| GENERATE_SPRING, Elements.get("Naquadah"), 6.0F, 4.0f, 1280, 5400); + public static IngotMaterial NaquadahAlloy = new IngotMaterial(371, "naquadah_alloy", 0x282828, METALLIC, 5, of(new MaterialStack(Naquadah, 1), new MaterialStack(Osmiridium, 1)), EXT2_METAL| GENERATE_SPRING, null, 8.0F, 5.0f, 5120, 7200); + public static IngotMaterial NaquadahEnriched = new IngotMaterial(372, "naquadah_enriched", 0x323232, METALLIC, 4, of(), EXT_METAL | GENERATE_ORE | GENERATE_FOIL, Elements.get("NaquadahEnriched"), 6.0F, 4.0f, 1280, 4500); + public static IngotMaterial Naquadria = new IngotMaterial(373, "naquadria", 0x1E1E1E, SHINY, 3, of(), EXT_METAL, Elements.get("Naquadria"), 9000); + public static IngotMaterial Neutronium = new IngotMaterial(374, "neutronium", 0xFAFAFA, DULL, 6, of(), EXT2_METAL | GENERATE_RING | GENERATE_ROTOR | GENERATE_SMALL_GEAR | GENERATE_LONG_ROD | GENERATE_FRAME, Elements.get("Neutronium"), 24.0F, 12F, 655360); + public static IngotMaterial Tritanium = new IngotMaterial(375, "tritanium", 0x600000, METALLIC, 6, of(), EXT_METAL | GENERATE_FRAME, Elements.get("Tritanium"), 20.0F, 6.0f, 10240); + public static IngotMaterial Duranium = new IngotMaterial(376, "duranium", 0xFFFFFF, METALLIC, 5, of(), EXT_METAL | GENERATE_FOIL, Elements.get("Duranium"), 16.0F, 5.0f, 5120); + public static IngotMaterial Trinium = new IngotMaterial(377, "trinium", 0xC8C8D2, SHINY, 7, of(), 0, Elements.get("Trinium"), 8600); + public static IngotMaterial Adamantium = new IngotMaterial(378, "adamantium", 0x2d365c, SHINY, 7, of(), 0, Elements.get("Adamantium"), 10850); + public static IngotMaterial Vibranium = new IngotMaterial(379, "vibranium", 0x828aad, SHINY, 7, of(), 0, Elements.get("Vibranium"), 11220); + public static IngotMaterial Taranium = new IngotMaterial(380, "taranium", 0x0c0c0d, SHINY, 7, of(), 0, Elements.get("Taranium"), 10000); + public static IngotMaterial FluxedElectrum = new IngotMaterial(381, "fluxed_electrum", 0xf2ef27, METALLIC, 4, of(new MaterialStack(Electrum, 1), new MaterialStack(NaquadahAlloy, 1), new MaterialStack(BlueSteel, 1), new MaterialStack(RedSteel, 1)), EXT2_METAL, null, 11.0F, 6.0f, 2100, 9000); /** * Actual food */ - public static FluidMaterial Milk = new FluidMaterial(365, "milk", 0xFEFEFE, FINE, of(), 0); - public static DustMaterial Cocoa = new DustMaterial(366, "cocoa", 0xBE5F00, FINE, 0, of(), 0); - public static DustMaterial Wheat = new DustMaterial(367, "wheat", 0xFFFFC4, FINE, 0, of(), 0); - public static DustMaterial Meat = new DustMaterial(368, "meat", 12667980, SAND, 1, of(), DISABLE_DECOMPOSITION); + public static FluidMaterial Milk = new FluidMaterial(382, "milk", 0xFEFEFE, FINE, of(), 0); + public static DustMaterial Cocoa = new DustMaterial(383, "cocoa", 0xBE5F00, FINE, 0, of(), 0); + public static DustMaterial Wheat = new DustMaterial(384, "wheat", 0xFFFFC4, FINE, 0, of(), 0); + public static DustMaterial Meat = new DustMaterial(385, "meat", 12667980, SAND, 1, of(), DISABLE_DECOMPOSITION); + + // Superconductor here at ID 386. Assigned in MarkerMaterials:98 static { for (DustMaterial dustMaterial : new DustMaterial[]{Bastnasite, Monazite}) { diff --git a/src/main/java/gregtech/api/unification/material/type/FluidMaterial.java b/src/main/java/gregtech/api/unification/material/type/FluidMaterial.java index 714c55991bc..ac550ab3588 100644 --- a/src/main/java/gregtech/api/unification/material/type/FluidMaterial.java +++ b/src/main/java/gregtech/api/unification/material/type/FluidMaterial.java @@ -59,7 +59,7 @@ public static final class MatFlags { @Nullable private Fluid materialPlasma; - private int fluidTemperature = 300; + protected int fluidTemperature = 300; public FluidMaterial(int metaItemSubId, String name, int materialRGB, MaterialIconSet materialIconSet, ImmutableList materialComponents, long materialGenerationFlags, Element element) { super(metaItemSubId, name, materialRGB, materialIconSet, materialComponents, materialGenerationFlags, element); diff --git a/src/main/java/gregtech/api/unification/material/type/Material.java b/src/main/java/gregtech/api/unification/material/type/Material.java index 18656072103..6bab3a6b39e 100644 --- a/src/main/java/gregtech/api/unification/material/type/Material.java +++ b/src/main/java/gregtech/api/unification/material/type/Material.java @@ -5,12 +5,12 @@ import crafttweaker.annotations.ZenRegister; import gregtech.api.unification.Element; import gregtech.api.unification.Elements; -import gregtech.api.unification.material.IMaterial; import gregtech.api.unification.material.IMaterialHandler; import gregtech.api.unification.material.MaterialIconSet; import gregtech.api.unification.stack.MaterialStack; import gregtech.api.util.GTControlledRegistry; import gregtech.api.util.GTLog; +import gregtech.api.util.SmallDigits; import net.minecraft.client.resources.I18n; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fml.relauncher.Side; @@ -30,9 +30,9 @@ @ZenClass("mods.gregtech.material.Material") @ZenRegister -public abstract class Material implements Comparable, IMaterial { +public abstract class Material implements Comparable { - public static final GTControlledRegistry MATERIAL_REGISTRY = new GTControlledRegistry<>(1000); + public static final GTControlledRegistry MATERIAL_REGISTRY = new GTControlledRegistry<>(32768); private static final List materialHandlers = new ArrayList<>(); public static void registerMaterialHandler(IMaterialHandler materialHandler) { @@ -43,10 +43,6 @@ public GTControlledRegistry getRegistry() { return MATERIAL_REGISTRY; } - public Class getMaterialClass() { - return Material.class; - } - public static void runMaterialHandlers() { materialHandlers.forEach(IMaterialHandler::onMaterialsInit); } @@ -58,19 +54,28 @@ public static void freezeRegistry() { public static final class MatFlags { - private static final Map>>> materialFlagRegistry = new TreeMap<>(String.CASE_INSENSITIVE_ORDER); + private static final Map>> materialFlagRegistry = new TreeMap<>(String.CASE_INSENSITIVE_ORDER); - public static void registerMaterialFlag(String name, long value, Class> classFilter) { + public static void registerMaterialFlag(String name, long value, Class classFilter) { if (materialFlagRegistry.containsKey(name)) throw new IllegalArgumentException("Flag with name " + name + " already registered!"); - for (Map.Entry>> entry : materialFlagRegistry.values()) { + for (Map.Entry> entry : materialFlagRegistry.values()) { if (entry.getKey() == value) - throw new IllegalArgumentException("Flag with ID " + IMaterial.getIntValueOfFlag(value) + " already registered!"); + throw new IllegalArgumentException("Flag with ID " + getIntValueOfFlag(value) + " already registered!"); } materialFlagRegistry.put(name, new SimpleEntry<>(value, classFilter)); } + private static int getIntValueOfFlag(long value) { + int index = 0; + while (value != 1) { + value >>= 1; + index++; + } + return index; + } + public static void registerMaterialFlagsHolder(Class holder, Class lowerBounds) { for (Field holderField : holder.getFields()) { int modifiers = holderField.getModifiers(); @@ -90,8 +95,8 @@ public static void registerMaterialFlagsHolder(Class holder, Class> selfClass) { - Entry>> flagEntry = materialFlagRegistry.get(name); + public static long resolveFlag(String name, Class selfClass) { + Entry> flagEntry = materialFlagRegistry.get(name); if (flagEntry == null) throw new IllegalArgumentException("Flag with name " + name + " not registered"); else if (!flagEntry.getValue().isAssignableFrom(selfClass)) @@ -188,6 +193,7 @@ else if (!flagEntry.getValue().isAssignableFrom(selfClass)) @ZenProperty public final Element element; + // TODO Fix isotope tooltips being set toSmallDownNumbers private String calculateChemicalFormula() { if (element != null) { return element.getSymbol(); @@ -282,7 +288,7 @@ protected void calculateDecompositionType() { !hasFlag(MatFlags.DISABLE_DECOMPOSITION)) { boolean onlyMetalMaterials = true; for (MaterialStack materialStack : materialComponents) { - IMaterial material = materialStack.material; + Material material = materialStack.material; onlyMetalMaterials &= material instanceof IngotMaterial; } //allow centrifuging of alloy materials only @@ -300,7 +306,7 @@ public void setMaterialRGB(int materialRGB) { this.materialRGB = materialRGB; } - @Override + @ZenGetter public int getMaterialRGB() { return materialRGB; } @@ -401,11 +407,6 @@ public long getAverageMass() { return totalMass / totalAmount; } - @Override - public FluidStack getFluid(int amount) { - return null; - } - @ZenGetter("camelCaseName") public String toCamelCaseString() { return CaseFormat.LOWER_UNDERSCORE.to(CaseFormat.UPPER_CAMEL, toString()); @@ -438,5 +439,4 @@ public String toString() { public MaterialStack createMaterialStack(long amount) { return new MaterialStack(this, amount); } - } diff --git a/src/main/java/gregtech/api/unification/material/type/SimpleDustMaterial.java b/src/main/java/gregtech/api/unification/material/type/SimpleDustMaterial.java deleted file mode 100644 index ac8ed2962d7..00000000000 --- a/src/main/java/gregtech/api/unification/material/type/SimpleDustMaterial.java +++ /dev/null @@ -1,58 +0,0 @@ -package gregtech.api.unification.material.type; - -import com.google.common.collect.ImmutableList; -import gregtech.api.unification.material.IMaterial; -import gregtech.api.unification.material.MaterialIconSet; -import gregtech.api.unification.stack.MaterialStack; -import gregtech.api.util.GTControlledRegistry; - -import javax.annotation.Nonnull; - -import static gregtech.api.unification.material.type.Material.MatFlags.registerMaterialFlag; -import static gregtech.api.util.GTUtility.createFlag; - -public class SimpleDustMaterial extends SimpleMaterial implements Comparable { - - public static final long GENERATE_SMALL_TINY = createFlag(54); - static { - registerMaterialFlag("GENERATE_SMALL_TINY", GENERATE_SMALL_TINY, SimpleDustMaterial.class); - } - - public static final GTControlledRegistry MATERIAL_REGISTRY = new GTControlledRegistry<>(10000); - - public SimpleDustMaterial(int metaItemSubId, String name, int materialRGB, MaterialIconSet iconSet, ImmutableList components, long flags) { - super(materialRGB, iconSet, components, flags); - long materialBits = verifyMaterialBits(flags); - if (materialBits != 0) { - throw new IllegalArgumentException("Invalid flags on SimpleDustMaterial: " - + IMaterial.getIntValueOfFlag(materialBits)); - } - MATERIAL_REGISTRY.register(metaItemSubId, name, this); - } - - public long verifyMaterialBits(long materialBits) { - materialBits = super.verifyMaterialBits(materialBits); - materialBits &= ~GENERATE_SMALL_TINY; - return materialBits; - } - - @Override - public GTControlledRegistry getRegistry() { - return MATERIAL_REGISTRY; - } - - @Override - public Class getMaterialClass() { - return SimpleDustMaterial.class; - } - - @Override - public int compareTo(@Nonnull SimpleDustMaterial o) { - return toString().compareTo(toString()); - } - - @Override - public String toString() { - return MATERIAL_REGISTRY.getNameForObject(this); - } -} diff --git a/src/main/java/gregtech/api/unification/material/type/SimpleFluidMaterial.java b/src/main/java/gregtech/api/unification/material/type/SimpleFluidMaterial.java index 1be1860a6d3..712844ccf39 100644 --- a/src/main/java/gregtech/api/unification/material/type/SimpleFluidMaterial.java +++ b/src/main/java/gregtech/api/unification/material/type/SimpleFluidMaterial.java @@ -1,97 +1,38 @@ package gregtech.api.unification.material.type; -import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableList; -import gregtech.api.unification.material.IMaterial; +import gregtech.api.unification.Element; import gregtech.api.unification.material.MaterialIconSet; import gregtech.api.unification.stack.MaterialStack; import gregtech.api.util.GTControlledRegistry; -import net.minecraftforge.fluids.Fluid; -import net.minecraftforge.fluids.FluidStack; -import javax.annotation.Nonnull; -import javax.annotation.Nullable; +import java.util.concurrent.atomic.AtomicInteger; -import static gregtech.api.unification.material.type.FluidMaterial.MatFlags.*; +public class SimpleFluidMaterial extends FluidMaterial { -public class SimpleFluidMaterial extends SimpleMaterial implements Comparable { + public static final GTControlledRegistry MATERIAL_REGISTRY = new GTControlledRegistry<>(Integer.MAX_VALUE); + private static final AtomicInteger idCounter = new AtomicInteger(0); - public static final GTControlledRegistry MATERIAL_REGISTRY = new GTControlledRegistry<>(32767); - - private Fluid materialFluid; - @Nullable - private Fluid materialPlasma; - - private int fluidTemperature = 300; - - public SimpleFluidMaterial(int metaItemSubId, String name, int materialRGB, MaterialIconSet iconSet, ImmutableList materialComponents, long flags) { - super(materialRGB, iconSet, materialComponents, flags); - long materialBits = verifyMaterialBits(flags); - if (materialBits != 0) { - throw new IllegalArgumentException("Invalid flags on SimpleFluidMaterial: " - + IMaterial.getIntValueOfFlag(materialBits)); - } - MATERIAL_REGISTRY.register(metaItemSubId, name, this); - } - - @Override - public GTControlledRegistry getRegistry() { - return MATERIAL_REGISTRY; - } - - @Override - public Class getMaterialClass() { - return SimpleFluidMaterial.class; - } - - @Override - public int compareTo(@Nonnull SimpleFluidMaterial o) { - return 0; - } - - @Override - public long verifyMaterialBits(long materialBits) { - materialBits = super.verifyMaterialBits(materialBits); - materialBits &= ~GENERATE_FLUID_BLOCK; - materialBits &= ~GENERATE_PLASMA; - materialBits &= ~STATE_GAS; - return materialBits; + public SimpleFluidMaterial(String name, int materialRGB, MaterialIconSet materialIconSet, ImmutableList materialComponents, long materialGenerationFlags) { + this(name, materialRGB, materialIconSet, materialComponents, materialGenerationFlags, null); } - public final void setMaterialFluid(@Nonnull Fluid materialFluid) { - Preconditions.checkNotNull(materialFluid); - this.materialFluid = materialFluid; + public SimpleFluidMaterial(String name, int materialRGB, MaterialIconSet materialIconSet, ImmutableList materialComponents, long materialGenerationFlags, Element element) { + super(idCounter.getAndIncrement(), name, materialRGB, materialIconSet, materialComponents, materialGenerationFlags, element); } - public final void setMaterialPlasma(@Nonnull Fluid materialPlasma) { - Preconditions.checkNotNull(materialPlasma); - this.materialPlasma = materialPlasma; + public SimpleFluidMaterial setFluidTemperature(int temperature) { + this.fluidTemperature = temperature; + return this; } @Override - public FluidStack getFluid(int amount) { - return materialFluid == null ? null : new FluidStack(materialFluid, amount); - } - - public Fluid getMaterialFluid() { - return materialFluid; - } - - public Fluid getMaterialPlasma() { - return materialPlasma; + protected void registerMaterial(int metaItemSubId, String name) { + MATERIAL_REGISTRY.register(metaItemSubId, name, this); } @Override public String toString() { return MATERIAL_REGISTRY.getNameForObject(this); } - - public SimpleFluidMaterial setFluidTemperature(int temperature) { - this.fluidTemperature = temperature; - return this; - } - - public int getFluidTemperature() { - return fluidTemperature; - } } diff --git a/src/main/java/gregtech/api/unification/material/type/SimpleMaterial.java b/src/main/java/gregtech/api/unification/material/type/SimpleMaterial.java deleted file mode 100644 index b278e4f1acc..00000000000 --- a/src/main/java/gregtech/api/unification/material/type/SimpleMaterial.java +++ /dev/null @@ -1,173 +0,0 @@ -package gregtech.api.unification.material.type; - -import com.google.common.collect.ImmutableList; -import gregtech.api.unification.Elements; -import gregtech.api.unification.material.IMaterial; -import gregtech.api.unification.material.MaterialIconSet; -import gregtech.api.unification.stack.MaterialStack; -import net.minecraftforge.fluids.FluidStack; - -import static gregtech.api.unification.material.type.Material.MatFlags.*; - -public abstract class SimpleMaterial > implements IMaterial { - - public final int materialRGB; - private String chemicalFormula; - public final ImmutableList materialComponents; - private long materialGenerationFlags; - public final MaterialIconSet iconSet; - - public SimpleMaterial(int materialRGB, MaterialIconSet iconSet, ImmutableList materialComponents, long flags) { - this.materialRGB = materialRGB; - this.iconSet = iconSet; - this.materialComponents = materialComponents; - this.chemicalFormula = calculateChemicalFormula(); - this.materialGenerationFlags = flags; - calculateDecompositionType(); - } - - private String calculateChemicalFormula() { - if (!materialComponents.isEmpty()) { - StringBuilder components = new StringBuilder(); - for (MaterialStack component : materialComponents) - components.append(component.toString()); - return components.toString(); - } - return ""; - } - - public T setFormula(String formula) { - this.chemicalFormula = IMaterial.calculateChemicalFormula(formula); - return (T)this; - } - - @Override - public long verifyMaterialBits(long materialBits) { - materialBits &= ~DISABLE_DECOMPOSITION; - materialBits &= ~DECOMPOSITION_BY_CENTRIFUGING; - materialBits &= ~DECOMPOSITION_BY_ELECTROLYZING; - materialBits &= ~DECOMPOSITION_REQUIRES_HYDROGEN; - return materialBits; - } - - @Override - public String getChemicalFormula() { - return chemicalFormula; - } - - @Override - public ImmutableList getMaterialComponents() { - return materialComponents; - } - - protected void calculateDecompositionType() { - if (!materialComponents.isEmpty() && - !hasFlag(Material.MatFlags.DECOMPOSITION_BY_CENTRIFUGING) && - !hasFlag(Material.MatFlags.DECOMPOSITION_BY_ELECTROLYZING) && - !hasFlag(Material.MatFlags.DISABLE_DECOMPOSITION)) { - boolean onlyMetalMaterials = true; - for (MaterialStack materialStack : materialComponents) { - IMaterial material = materialStack.material; - onlyMetalMaterials &= material instanceof IngotMaterial; - } - //allow centrifuging of alloy materials only - if (onlyMetalMaterials) { - materialGenerationFlags |= Material.MatFlags.DECOMPOSITION_BY_CENTRIFUGING; - } else { - //otherwise, we use electrolyzing to break material into components - materialGenerationFlags |= Material.MatFlags.DECOMPOSITION_BY_ELECTROLYZING; - } - } - } - - @Override - public int getMaterialRGB() { - return materialRGB; - } - - @Override - public boolean hasFlag(long flag) { - return (materialGenerationFlags & flag) >= flag; - } - - @Override - public long getAverageMass() { - if (materialComponents.size() <= 0) - return Elements.get("Neutronium").getMass(); - long totalMass = 0, totalAmount = 0; - for (MaterialStack material : materialComponents) { - totalAmount += material.amount; - totalMass += material.amount * material.material.getAverageMass(); - } - return totalMass / totalAmount; - } - - @Override - public long getAverageNeutrons() { - if (materialComponents.isEmpty()) - return Elements.get("Neutronium").getNeutrons(); - long totalNeutrons = 0, totalAmount = 0; - for (MaterialStack material : materialComponents) { - totalAmount += material.amount; - totalNeutrons += material.amount * material.material.getAverageNeutrons(); - } - return totalNeutrons / totalAmount; - } - - @Override - public long getAverageProtons() { - if (materialComponents.isEmpty()) - return Math.max(1, Elements.get("Neutronium").getProtons()); - long totalProtons = 0, totalAmount = 0; - for (MaterialStack material : materialComponents) { - totalAmount += material.amount; - totalProtons += material.amount * material.material.getAverageProtons(); - } - return totalProtons / totalAmount; - } - - @Override - public long getMass() { - if (materialComponents.isEmpty()) - return Elements.get("Neutronium").getMass(); - long totalMass = 0; - for (MaterialStack material : materialComponents) { - totalMass += material.amount * material.material.getMass(); - } - return totalMass; - } - - @Override - public long getNeutrons() { - if (materialComponents.isEmpty()) - return Elements.get("Neutronium").getNeutrons(); - long totalNeutrons = 0; - for (MaterialStack material : materialComponents) { - totalNeutrons += material.amount * material.material.getNeutrons(); - } - return totalNeutrons; - } - - @Override - public long getProtons() { - if (materialComponents.isEmpty()) - return Elements.get("Neutronium").getProtons(); - long totalProtons = 0; - for (MaterialStack material : materialComponents) { - totalProtons += material.amount * material.material.getProtons(); - } - return totalProtons; - } - - @Override - public boolean isRadioactive() { - for (MaterialStack material : materialComponents) - if (material.material.isRadioactive()) return true; - return false; - } - - @Override - public FluidStack getFluid(int amount) { - return null; - } -} diff --git a/src/main/java/gregtech/api/unification/ore/IOreRegistrationHandler.java b/src/main/java/gregtech/api/unification/ore/IOreRegistrationHandler.java index 2a22da1efda..70f0f709c6b 100644 --- a/src/main/java/gregtech/api/unification/ore/IOreRegistrationHandler.java +++ b/src/main/java/gregtech/api/unification/ore/IOreRegistrationHandler.java @@ -1,10 +1,10 @@ package gregtech.api.unification.ore; -import gregtech.api.unification.material.IMaterial; +import gregtech.api.unification.material.type.Material; @FunctionalInterface public interface IOreRegistrationHandler { - void processMaterial(OrePrefix orePrefix, IMaterial material); + void processMaterial(OrePrefix orePrefix, Material material); } diff --git a/src/main/java/gregtech/api/unification/ore/OrePrefix.java b/src/main/java/gregtech/api/unification/ore/OrePrefix.java index 5429588f97d..e9bc65fb78e 100644 --- a/src/main/java/gregtech/api/unification/ore/OrePrefix.java +++ b/src/main/java/gregtech/api/unification/ore/OrePrefix.java @@ -1,7 +1,6 @@ package gregtech.api.unification.ore; import com.google.common.base.Preconditions; -import gregtech.api.unification.material.IMaterial; import gregtech.api.unification.material.MarkerMaterials; import gregtech.api.unification.material.MaterialIconType; import gregtech.api.unification.material.Materials; @@ -130,7 +129,7 @@ public enum OrePrefix { pipeTiny("Tiny Pipes", M / 2, null, MaterialIconType.pipeTiny, ENABLE_UNIFICATION, null), pipeSmall("Small Pipes", M, null, MaterialIconType.pipeSmall, ENABLE_UNIFICATION, null), - pipeMedium("Medium Pipes", M * 3, null, MaterialIconType.pipeMedium, ENABLE_UNIFICATION, null), + pipeNormal("Normal Pipes", M * 3, null, MaterialIconType.pipeMedium, ENABLE_UNIFICATION, null), pipeLarge("Large Pipes", M * 6, null, MaterialIconType.pipeLarge, ENABLE_UNIFICATION, null), pipeHuge("Huge Pipes", M * 12, null, MaterialIconType.pipeHuge, ENABLE_UNIFICATION, null), @@ -340,18 +339,18 @@ private static void excludeAllGems(Material material) { * NOTE: Ore registrations with self-referencing OrePrefix still can occur with other materials */ public @Nullable - IMaterial materialType; + Material materialType; private final List oreProcessingHandlers = new ArrayList<>(); - private final Set> ignoredMaterials = new HashSet<>(); - private final Set> generatedMaterials = new HashSet<>(); + private final Set ignoredMaterials = new HashSet<>(); + private final Set generatedMaterials = new HashSet<>(); private boolean isMarkerPrefix = false; public byte maxStackSize = 64; public final List secondaryMaterials = new ArrayList<>(); public float heatDamage = 0.0F; // Negative for Frost Damage - OrePrefix(String categoryName, long materialAmount, IMaterial material, MaterialIconType materialIconType, long flags, Predicate condition) { + OrePrefix(String categoryName, long materialAmount, Material material, MaterialIconType materialIconType, long flags, Predicate condition) { this.categoryName = categoryName; this.materialAmount = materialAmount; this.isSelfReferencing = (flags & SELF_REFERENCING) != 0; @@ -379,14 +378,14 @@ public long getMaterialAmount(Material material) { if (this == block) { //glowstone and nether quartz blocks use 4 gems (dusts) if (material == Materials.Glowstone || - material == Materials.NetherQuartz || - material == Materials.Brick || - material == Materials.Clay) + material == Materials.NetherQuartz || + material == Materials.Brick || + material == Materials.Clay) return M * 4; //glass, ice and obsidian gain only one dust else if (material == Materials.Glass || - material == Materials.Ice || - material == Materials.Obsidian) + material == Materials.Ice || + material == Materials.Obsidian) return M; } else if (this == stick) { if (material == Materials.Blaze) @@ -423,7 +422,7 @@ public boolean addProcessingHandler(IOreRegistrationHandler... processingHandler return oreProcessingHandlers.addAll(Arrays.asList(processingHandler)); } - public > void addProcessingHandler(Class materialFilter, BiConsumer handler) { + public void addProcessingHandler(Class materialFilter, BiConsumer handler) { addProcessingHandler((orePrefix, material) -> { if (materialFilter.isAssignableFrom(material.getClass())) { //noinspection unchecked @@ -432,7 +431,7 @@ public > void addProcessingHandler(Class materialFilte }); } - public void processOreRegistration(@Nullable IMaterial material) { + public void processOreRegistration(@Nullable Material material) { if (this.isSelfReferencing && material == null) { material = materialType; //append default material for self-referencing OrePrefix } @@ -448,19 +447,19 @@ public static void runMaterialHandlers() { } private static final ThreadLocal currentProcessingPrefix = new ThreadLocal<>(); - private static final ThreadLocal> currentMaterial = new ThreadLocal<>(); + private static final ThreadLocal currentMaterial = new ThreadLocal<>(); public static OrePrefix getCurrentProcessingPrefix() { return currentProcessingPrefix.get(); } - public static IMaterial getCurrentMaterial() { + public static Material getCurrentMaterial() { return currentMaterial.get(); } private void runGeneratedMaterialHandlers() { currentProcessingPrefix.set(this); - for (IMaterial registeredMaterial : generatedMaterials) { + for (Material registeredMaterial : generatedMaterials) { currentMaterial.set(registeredMaterial); for (IOreRegistrationHandler registrationHandler : oreProcessingHandlers) { registrationHandler.processMaterial(this, registeredMaterial); @@ -473,7 +472,7 @@ private void runGeneratedMaterialHandlers() { } @SideOnly(Side.CLIENT) - public String getLocalNameForItem(IMaterial material) { + public String getLocalNameForItem(Material material) { String specifiedUnlocalized = "item." + material.toString() + "." + this.name(); if (I18n.hasKey(specifiedUnlocalized)) return I18n.format(specifiedUnlocalized); String unlocalized = "item.material.oreprefix." + this.name(); @@ -482,11 +481,11 @@ public String getLocalNameForItem(IMaterial material) { return formatted.equals(unlocalized) ? matLocalized : formatted; } - public boolean isIgnored(IMaterial material) { + public boolean isIgnored(Material material) { return ignoredMaterials.contains(material); } - public void setIgnored(IMaterial material) { + public void setIgnored(Material material) { ignoredMaterials.add(material); } diff --git a/src/main/java/gregtech/api/unification/stack/MaterialStack.java b/src/main/java/gregtech/api/unification/stack/MaterialStack.java index ccf6dc51a07..52a2d5870c0 100644 --- a/src/main/java/gregtech/api/unification/stack/MaterialStack.java +++ b/src/main/java/gregtech/api/unification/stack/MaterialStack.java @@ -1,7 +1,6 @@ package gregtech.api.unification.stack; import crafttweaker.annotations.ZenRegister; -import gregtech.api.unification.material.IMaterial; import gregtech.api.unification.material.type.Material; import gregtech.api.util.SmallDigits; import stanhebben.zenscript.annotations.ZenClass; @@ -13,11 +12,11 @@ public class MaterialStack { @ZenProperty - public final IMaterial material; + public final Material material; @ZenProperty public final long amount; - public MaterialStack(IMaterial material, long amount) { + public MaterialStack(Material material, long amount) { this.material = material; this.amount = amount; } diff --git a/src/main/java/gregtech/api/unification/stack/UnificationEntry.java b/src/main/java/gregtech/api/unification/stack/UnificationEntry.java index f0741c89f82..184c299bec6 100644 --- a/src/main/java/gregtech/api/unification/stack/UnificationEntry.java +++ b/src/main/java/gregtech/api/unification/stack/UnificationEntry.java @@ -1,6 +1,6 @@ package gregtech.api.unification.stack; -import gregtech.api.unification.material.IMaterial; +import gregtech.api.unification.material.type.Material; import gregtech.api.unification.ore.OrePrefix; import javax.annotation.Nullable; @@ -10,9 +10,9 @@ public class UnificationEntry { public final OrePrefix orePrefix; @Nullable - public final IMaterial material; + public final Material material; - public UnificationEntry(OrePrefix orePrefix, @Nullable IMaterial material) { + public UnificationEntry(OrePrefix orePrefix, @Nullable Material material) { this.orePrefix = orePrefix; this.material = material; } diff --git a/src/main/java/gregtech/common/CommonProxy.java b/src/main/java/gregtech/common/CommonProxy.java index f5ff3f854b6..1fea04fc5e0 100644 --- a/src/main/java/gregtech/common/CommonProxy.java +++ b/src/main/java/gregtech/common/CommonProxy.java @@ -16,7 +16,9 @@ import gregtech.common.blocks.wood.BlockGregLog; import gregtech.common.blocks.wood.BlockGregSapling; import gregtech.common.items.MetaItems; +import gregtech.common.pipelike.cable.BlockCable; import gregtech.common.pipelike.cable.ItemBlockCable; +import gregtech.common.pipelike.fluidpipe.BlockFluidPipe; import gregtech.common.pipelike.fluidpipe.ItemBlockFluidPipe; import gregtech.loaders.MaterialInfoLoader; import gregtech.loaders.OreDictionaryLoader; @@ -55,10 +57,9 @@ public static void registerBlocks(RegistryEvent.Register event) { IForgeRegistry registry = event.getRegistry(); registry.register(MACHINE); - registry.register(CABLE); - registry.register(FLUID_PIPE); + for (BlockCable cable : CABLES) registry.register(cable); + for (BlockFluidPipe pipe : FLUID_PIPES) registry.register(pipe); registry.register(HERMETIC_CASING); - registry.register(FOAM); registry.register(REINFORCED_FOAM); registry.register(PETRIFIED_FOAM); @@ -105,10 +106,9 @@ public static void registerItems(RegistryEvent.Register event) { ToolRecipeHandler.initializeMetaItems(); registry.register(createItemBlock(MACHINE, MachineItemBlock::new)); - registry.register(createItemBlock(CABLE, ItemBlockCable::new)); - registry.register(createItemBlock(FLUID_PIPE, ItemBlockFluidPipe::new)); + for (BlockCable cable : CABLES) registry.register(createItemBlock(cable, ItemBlockCable::new)); + for (BlockFluidPipe pipe : FLUID_PIPES) registry.register(createItemBlock(pipe, ItemBlockFluidPipe::new)); registry.register(createItemBlock(HERMETIC_CASING, VariantItemBlock::new)); - registry.register(createItemBlock(BOILER_CASING, VariantItemBlock::new)); registry.register(createItemBlock(BOILER_FIREBOX_CASING, VariantItemBlock::new)); registry.register(createItemBlock(METAL_CASING, VariantItemBlock::new)); diff --git a/src/main/java/gregtech/common/MetaFluids.java b/src/main/java/gregtech/common/MetaFluids.java index 10333a4ed05..133c8400d45 100644 --- a/src/main/java/gregtech/common/MetaFluids.java +++ b/src/main/java/gregtech/common/MetaFluids.java @@ -1,7 +1,6 @@ package gregtech.common; import gregtech.api.GTValues; -import gregtech.api.unification.material.IMaterial; import gregtech.api.unification.material.Materials; import gregtech.api.unification.material.type.FluidMaterial; import gregtech.api.unification.material.type.FluidMaterial.MatFlags; @@ -29,7 +28,7 @@ public class MetaFluids { private static final Set fluidSprites = new HashSet<>(); - private static final Map> fluidToMaterialMappings = new HashMap<>(); + private static final Map fluidToMaterialMappings = new HashMap<>(); private static final Map alternativeFluidNames = new HashMap<>(); public static final ResourceLocation AUTO_GENERATED_FLUID_TEXTURE = new ResourceLocation( @@ -37,7 +36,7 @@ public class MetaFluids { public static final ResourceLocation AUTO_GENERATED_PLASMA_TEXTURE = new ResourceLocation( GTValues.MODID, "blocks/fluids/fluid.plasma.autogenerated"); - private static final Map, FluidType>, ResourceLocation> fluidTextureMap = new HashMap<>(); + private static final Map, ResourceLocation> fluidTextureMap = new HashMap<>(); public static final Fluid DISTILLED_WATER = new Fluid("distilled_water", new ResourceLocation("blocks/water_still"), @@ -48,18 +47,18 @@ public enum FluidType { PLASMA("plasma.", material -> FluidState.PLASMA); private final String prefix; - private final Function, FluidState> stateFunction; + private final Function stateFunction; - FluidType(String prefix, Function, FluidState> stateFunction) { + FluidType(String prefix, Function stateFunction) { this.prefix = prefix; this.stateFunction = stateFunction; } - public String getFluidName(IMaterial fluidMaterial) { + public String getFluidName(Material fluidMaterial) { return prefix + fluidMaterial.toString(); } - public FluidState getFluidState(IMaterial fluidMaterial) { + public FluidState getFluidState(Material fluidMaterial) { return stateFunction.apply(fluidMaterial); } } @@ -197,7 +196,7 @@ public static void init() { * @param material the material whose texture to change * @param fluidType the type of the fluid */ - public static void setDefaultTexture(IMaterial material, FluidType fluidType) { + public static void setDefaultTexture(Material material, FluidType fluidType) { String path = "blocks/fluids/fluid." + material.toString(); if (fluidType.equals(FluidType.PLASMA)) path += ".plasma"; @@ -205,16 +204,16 @@ public static void setDefaultTexture(IMaterial material, FluidType fluidType) setMaterialFluidTexture(material, fluidType, resourceLocation); } - public static void setMaterialFluidTexture(IMaterial material, FluidType fluidType, ResourceLocation textureLocation) { + public static void setMaterialFluidTexture(Material material, FluidType fluidType, ResourceLocation textureLocation) { fluidTextureMap.put(Pair.of(material, fluidType), textureLocation); fluidSprites.add(textureLocation); } - public static void setAlternativeFluidName(IMaterial material, FluidType fluidType, String alternativeName) { + public static void setAlternativeFluidName(Material material, FluidType fluidType, String alternativeName) { alternativeFluidNames.put(fluidType.getFluidName(material), alternativeName); } - public static Fluid registerFluid(IMaterial material, FluidType fluidType, int temperature) { + public static Fluid registerFluid(Material material, FluidType fluidType, int temperature) { String materialName = material.toString(); String fluidName = fluidType.getFluidName(material); Fluid fluid = FluidRegistry.getFluid(fluidName); @@ -251,12 +250,8 @@ public static Fluid registerFluid(IMaterial material, FluidType fluidType, in return fluid; } - public static IMaterial getIMaterialFromFluid(Fluid fluid) { - return fluidToMaterialMappings.get(fluid.getName()); - } - public static FluidMaterial getMaterialFromFluid(Fluid fluid) { - IMaterial material = fluidToMaterialMappings.get(fluid.getName()); + Material material = fluidToMaterialMappings.get(fluid.getName()); if (material instanceof FluidMaterial) return (FluidMaterial) material; return null; @@ -284,10 +279,10 @@ public static void setStateProperties(Fluid fluid, FluidState fluidState) { private static class MaterialFluid extends Fluid { - private final IMaterial material; + private final Material material; private final FluidState state; - public MaterialFluid(String fluidName, IMaterial material, FluidState fluidState, ResourceLocation texture) { + public MaterialFluid(String fluidName, Material material, FluidState fluidState, ResourceLocation texture) { super(fluidName, texture, texture, GTUtility.convertRGBtoOpaqueRGBA_MC(material.getMaterialRGB())); this.material = material; this.state = fluidState; diff --git a/src/main/java/gregtech/common/blocks/MetaBlocks.java b/src/main/java/gregtech/common/blocks/MetaBlocks.java index 9bbc9dc8912..4f591d37e5e 100644 --- a/src/main/java/gregtech/common/blocks/MetaBlocks.java +++ b/src/main/java/gregtech/common/blocks/MetaBlocks.java @@ -74,8 +74,8 @@ private MetaBlocks() { } public static BlockMachine MACHINE; - public static BlockCable CABLE; - public static BlockFluidPipe FLUID_PIPE; + public static final BlockCable[] CABLES = new BlockCable[10]; + public static final BlockFluidPipe[] FLUID_PIPES = new BlockFluidPipe[5]; public static BlockBoilerCasing BOILER_CASING; public static BlockFireboxCasing BOILER_FIREBOX_CASING; @@ -113,10 +113,16 @@ private MetaBlocks() { public static void init() { GregTechAPI.MACHINE = MACHINE = new BlockMachine(); MACHINE.setRegistryName("machine"); - CABLE = new BlockCable(); - CABLE.setRegistryName("cable"); - FLUID_PIPE = new BlockFluidPipe(); - FLUID_PIPE.setRegistryName("fluid_pipe"); + + for (Insulation ins : Insulation.values()) { + CABLES[ins.ordinal()] = new BlockCable(ins); + CABLES[ins.ordinal()].setRegistryName(ins.getName()); + } + for (FluidPipeType type : FluidPipeType.values()) { + FLUID_PIPES[type.ordinal()] = new BlockFluidPipe(type); + FLUID_PIPES[type.ordinal()].setRegistryName(String.format("fluid_pipe_%s", type.name)); + } + BOILER_CASING = new BlockBoilerCasing(); BOILER_CASING.setRegistryName("boiler_casing"); BOILER_FIREBOX_CASING = new BlockFireboxCasing(); @@ -187,15 +193,23 @@ public static void init() { if (material instanceof IngotMaterial) { IngotMaterial metalMaterial = (IngotMaterial) material; if (metalMaterial.cableProperties != null) { - CABLE.addCableMaterial(metalMaterial, metalMaterial.cableProperties); + for (BlockCable cable : CABLES) { + cable.addCableMaterial(metalMaterial, metalMaterial.cableProperties); + } } if (metalMaterial.fluidPipeProperties != null) { - FLUID_PIPE.addPipeMaterial(metalMaterial, metalMaterial.fluidPipeProperties); + for (BlockFluidPipe pipe : FLUID_PIPES) { + pipe.addPipeMaterial(metalMaterial, metalMaterial.fluidPipeProperties); + } } } } - FLUID_PIPE.addPipeMaterial(Materials.Wood, new FluidPipeProperties(310, 20, false)); - CABLE.addCableMaterial(MarkerMaterials.Tier.Superconductor, new WireProperties(Integer.MAX_VALUE, 4, 0)); + for (BlockFluidPipe pipe : FLUID_PIPES) { + pipe.addPipeMaterial(Materials.Wood, new FluidPipeProperties(310, 20, false)); + } + for (BlockCable cable : CABLES) { + cable.addCableMaterial(MarkerMaterials.Tier.Superconductor, new WireProperties(Integer.MAX_VALUE, 4, 0)); + } registerTileEntity(); //not sure if that's a good place for that, but i don't want to make a dedicated method for that @@ -285,8 +299,8 @@ public static void registerTileEntity() { @SideOnly(Side.CLIENT) public static void registerItemModels() { ModelLoader.setCustomMeshDefinition(Item.getItemFromBlock(MACHINE), stack -> MetaTileEntityRenderer.MODEL_LOCATION); - ModelLoader.setCustomMeshDefinition(Item.getItemFromBlock(CABLE), stack -> CableRenderer.MODEL_LOCATION); - ModelLoader.setCustomMeshDefinition(Item.getItemFromBlock(FLUID_PIPE), stack -> FluidPipeRenderer.MODEL_LOCATION); + for (BlockCable cable : CABLES) ModelLoader.setCustomMeshDefinition(Item.getItemFromBlock(cable), stack -> CableRenderer.MODEL_LOCATION); + for (BlockFluidPipe pipe : FLUID_PIPES) ModelLoader.setCustomMeshDefinition(Item.getItemFromBlock(pipe), stack -> FluidPipeRenderer.MODEL_LOCATION); registerItemModel(BOILER_CASING); registerItemModel(BOILER_FIREBOX_CASING); registerItemModel(METAL_CASING); @@ -359,18 +373,22 @@ protected ModelResourceLocation getModelResourceLocation(IBlockState state) { return MetaTileEntityRenderer.MODEL_LOCATION; } }); - ModelLoader.setCustomStateMapper(CABLE, new DefaultStateMapper() { - @Override - protected ModelResourceLocation getModelResourceLocation(IBlockState state) { - return CableRenderer.MODEL_LOCATION; - } - }); - ModelLoader.setCustomStateMapper(FLUID_PIPE, new DefaultStateMapper() { - @Override - protected ModelResourceLocation getModelResourceLocation(IBlockState state) { - return FluidPipeRenderer.MODEL_LOCATION; - } - }); + for (BlockCable cable : CABLES) { + ModelLoader.setCustomStateMapper(cable, new DefaultStateMapper() { + @Override + protected ModelResourceLocation getModelResourceLocation(IBlockState state) { + return CableRenderer.MODEL_LOCATION; + } + }); + } + for (BlockFluidPipe pipe : FLUID_PIPES) { + ModelLoader.setCustomStateMapper(pipe, new DefaultStateMapper() { + @Override + protected ModelResourceLocation getModelResourceLocation(IBlockState state) { + return FluidPipeRenderer.MODEL_LOCATION; + } + }); + } IStateMapper normalStateMapper = new StateMapperBase() { @Override protected ModelResourceLocation getModelResourceLocation(IBlockState state) { @@ -442,16 +460,16 @@ public static void registerOreDict() { OreDictUnifier.registerOre(normalStack, stoneType.processingPrefix, material); } } - for (Material pipeMaterial : CABLE.getEnabledMaterials()) { - for (Insulation insulation : Insulation.values()) { - ItemStack itemStack = CABLE.getItem(insulation, pipeMaterial); - OreDictUnifier.registerOre(itemStack, insulation.getOrePrefix(), pipeMaterial); + for (BlockCable cable : CABLES) { + for (Material pipeMaterial : cable.getEnabledMaterials()) { + ItemStack itemStack = cable.getItem(pipeMaterial); + OreDictUnifier.registerOre(itemStack, cable.getPrefix(), pipeMaterial); } } - for (Material pipeMaterial : FLUID_PIPE.getEnabledMaterials()) { - for (FluidPipeType fluidPipeType : FluidPipeType.values()) { - ItemStack itemStack = FLUID_PIPE.getItem(fluidPipeType, pipeMaterial); - OreDictUnifier.registerOre(itemStack, fluidPipeType.getOrePrefix(), pipeMaterial); + for (BlockFluidPipe pipe : FLUID_PIPES) { + for (Material pipeMaterial : pipe.getEnabledMaterials()) { + ItemStack itemStack = pipe.getItem(pipeMaterial); + OreDictUnifier.registerOre(itemStack, pipe.getPrefix(), pipeMaterial); } } } diff --git a/src/main/java/gregtech/common/command/util/CommandHand.java b/src/main/java/gregtech/common/command/util/CommandHand.java index 74a7cd64366..0d765e439cf 100755 --- a/src/main/java/gregtech/common/command/util/CommandHand.java +++ b/src/main/java/gregtech/common/command/util/CommandHand.java @@ -2,7 +2,6 @@ import gregtech.api.capability.GregtechCapabilities; import gregtech.api.capability.IElectricItem; -import gregtech.api.items.materialitem.MaterialMetaItem; import gregtech.api.items.metaitem.MetaItem; import gregtech.api.items.metaitem.MetaItem.MetaValueItem; import gregtech.api.items.toolitem.IToolStats; @@ -12,6 +11,7 @@ import gregtech.api.unification.ore.OrePrefix; import gregtech.api.unification.stack.UnificationEntry; import gregtech.api.util.ClipboardUtil; +import gregtech.api.items.materialitem.MetaPrefixItem; import net.minecraft.command.CommandBase; import net.minecraft.command.CommandException; import net.minecraft.command.ICommandSender; @@ -79,9 +79,9 @@ public void execute(MinecraftServer server, ICommandSender sender, String[] args MetaItem metaItem = (MetaItem) stackInHand.getItem(); MetaValueItem metaValueItem = metaItem.getItem(stackInHand); if (metaValueItem == null) { - if (metaItem instanceof MaterialMetaItem) { - Material material = ((MaterialMetaItem) metaItem).getMaterial(stackInHand); - OrePrefix orePrefix = ((MaterialMetaItem) metaItem).getOrePrefix(stackInHand); + if (metaItem instanceof MetaPrefixItem) { + Material material = ((MetaPrefixItem) metaItem).getMaterial(stackInHand); + OrePrefix orePrefix = ((MetaPrefixItem) metaItem).getOrePrefix(); String oreDictName = new UnificationEntry(orePrefix, material).toString(); player.sendMessage(new TextComponentTranslation("gregtech.command.util.hand.material_meta_item", orePrefix, material) .setStyle(new Style().setClickEvent(new ClickEvent(Action.OPEN_URL, oreDictName)))); diff --git a/src/main/java/gregtech/common/items/EnchantmentTableTweaks.java b/src/main/java/gregtech/common/items/EnchantmentTableTweaks.java index 839a7e32d4f..decca702501 100644 --- a/src/main/java/gregtech/common/items/EnchantmentTableTweaks.java +++ b/src/main/java/gregtech/common/items/EnchantmentTableTweaks.java @@ -71,10 +71,10 @@ private static int getEnchantmentSlotIndex(ContainerEnchantment container) { private static boolean isValidForEnchantment(ItemStack itemStack) { UnificationEntry entry = OreDictUnifier.getUnificationEntry(itemStack); - if (entry == null || entry.orePrefix != OrePrefix.gem || entry.material == null || entry.material.getMaterialClass() != Material.class) { + if (entry == null || entry.orePrefix != OrePrefix.gem || entry.material == null) { return false; } - Material material = (Material) entry.material; + Material material = entry.material; return material == Materials.Lapis || material == Materials.Lazurite || material == Materials.Sodalite; diff --git a/src/main/java/gregtech/common/items/MetaItem1.java b/src/main/java/gregtech/common/items/MetaItem1.java index 28dbeca4418..e6a40c568a3 100644 --- a/src/main/java/gregtech/common/items/MetaItem1.java +++ b/src/main/java/gregtech/common/items/MetaItem1.java @@ -2,55 +2,36 @@ import gregtech.api.GTValues; import gregtech.api.items.OreDictNames; -import gregtech.api.items.materialitem.MaterialMetaItem; import gregtech.api.items.metaitem.ElectricStats; import gregtech.api.items.metaitem.FluidStats; import gregtech.api.items.metaitem.FoodStats; +import gregtech.api.items.metaitem.StandardMetaItem; +import gregtech.api.items.metaitem.stats.IItemComponent; +import gregtech.api.items.metaitem.stats.IItemContainerItemProvider; +import gregtech.api.recipes.CountableIngredient; import gregtech.api.recipes.RecipeMaps; import gregtech.api.unification.OreDictUnifier; import gregtech.api.unification.material.MarkerMaterials; import gregtech.api.unification.material.Materials; -import gregtech.api.unification.material.type.Material; -import gregtech.api.unification.material.type.SolidMaterial; import gregtech.api.unification.ore.OrePrefix; import gregtech.api.unification.stack.ItemMaterialInfo; import gregtech.api.unification.stack.MaterialStack; import gregtech.api.util.RandomPotionEffect; +import gregtech.common.ConfigHolder; import gregtech.common.items.behaviors.*; -import net.minecraft.block.BlockCauldron; -import net.minecraft.block.state.IBlockState; -import net.minecraft.client.resources.I18n; -import net.minecraft.client.util.ITooltipFlag; -import net.minecraft.entity.item.EntityItem; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; import net.minecraft.init.MobEffects; import net.minecraft.item.EnumDyeColor; import net.minecraft.item.ItemStack; -import net.minecraft.util.math.BlockPos; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import static gregtech.api.util.DyeUtil.getOrdictColorName; import static gregtech.common.items.MetaItems.*; -public class MetaItem1 extends MaterialMetaItem { - - public final Map purifyMap = new HashMap<>(); +public class MetaItem1 extends StandardMetaItem { public MetaItem1() { - super(OrePrefix.dustTiny, OrePrefix.dustSmall, OrePrefix.dust, OrePrefix.dustImpure, OrePrefix.dustPure, - OrePrefix.crushed, OrePrefix.crushedPurified, OrePrefix.crushedCentrifuged, OrePrefix.gem, OrePrefix.nugget, - OrePrefix.ingot, OrePrefix.ingotHot, OrePrefix.plate, OrePrefix.plateDouble, OrePrefix.plateDense, OrePrefix.stick, - OrePrefix.lens, OrePrefix.bolt, OrePrefix.screw, OrePrefix.ring, OrePrefix.foil, OrePrefix.round, - OrePrefix.oreChunk, OrePrefix.oreEnderChunk, OrePrefix.oreNetherChunk, OrePrefix.oreSandyChunk, - OrePrefix.seed, OrePrefix.crop, OrePrefix.essence, OrePrefix.plateCurved, null, null); - registerPurifyRecipes(); - } - - private void registerPurifyRecipes() { - purifyMap.put(OrePrefix.crushed, OrePrefix.crushedPurified); - purifyMap.put(OrePrefix.dustImpure, OrePrefix.dust); - purifyMap.put(OrePrefix.dustPure, OrePrefix.dust); + super(); } @Override @@ -72,257 +53,458 @@ public void registerSubItems() { .setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Gold, OrePrefix.foil.materialAmount))) .addComponents(new FoodStats(1, 0.1F, false, true, OreDictUnifier.get(OrePrefix.foil, Materials.Gold), new RandomPotionEffect(MobEffects.SPEED, 200, 1, 10))); - SHAPE_EMPTY = addItem(300, "shape.empty"); - - SHAPE_MOLDS[0] = SHAPE_MOLD_PLATE = addItem(301, "shape.mold.plate"); - SHAPE_MOLDS[1] = SHAPE_MOLD_GEAR = addItem(303, "shape.mold.gear"); - SHAPE_MOLDS[2] = SHAPE_MOLD_CREDIT = addItem(304, "shape.mold.credit"); - SHAPE_MOLDS[3] = SHAPE_MOLD_BOTTLE = addItem(305, "shape.mold.bottle"); - SHAPE_MOLDS[4] = SHAPE_MOLD_INGOT = addItem(306, "shape.mold.ingot"); - SHAPE_MOLDS[5] = SHAPE_MOLD_BALL = addItem(307, "shape.mold.ball"); - SHAPE_MOLDS[6] = SHAPE_MOLD_BLOCK = addItem(308, "shape.mold.block"); - SHAPE_MOLDS[7] = SHAPE_MOLD_NUGGET = addItem(309, "shape.mold.nugget"); - SHAPE_MOLDS[8] = SHAPE_MOLD_CYLINDER = addItem(313, "shape.mold.cylinder"); - SHAPE_MOLDS[9] = SHAPE_MOLD_ANVIL = addItem(314, "shape.mold.anvil"); - SHAPE_MOLDS[10] = SHAPE_MOLD_NAME = addItem(315, "shape.mold.name"); - SHAPE_MOLDS[11] = SHAPE_MOLD_GEAR_SMALL = addItem(317, "shape.mold.gear.small"); - SHAPE_MOLDS[12] = SHAPE_MOLD_ROTOR = addItem(318, "shape.mold.rotor"); - - SHAPE_EXTRUDERS[0] = SHAPE_EXTRUDER_PLATE = addItem(350, "shape.extruder.plate"); - SHAPE_EXTRUDERS[1] = SHAPE_EXTRUDER_ROD = addItem(351, "shape.extruder.rod"); - SHAPE_EXTRUDERS[2] = SHAPE_EXTRUDER_BOLT = addItem(352, "shape.extruder.bolt"); - SHAPE_EXTRUDERS[3] = SHAPE_EXTRUDER_RING = addItem(353, "shape.extruder.ring"); - SHAPE_EXTRUDERS[4] = SHAPE_EXTRUDER_CELL = addItem(354, "shape.extruder.cell"); - SHAPE_EXTRUDERS[5] = SHAPE_EXTRUDER_INGOT = addItem(355, "shape.extruder.ingot"); - SHAPE_EXTRUDERS[6] = SHAPE_EXTRUDER_WIRE = addItem(356, "shape.extruder.wire"); - SHAPE_EXTRUDERS[7] = SHAPE_EXTRUDER_PIPE_TINY = addItem(358, "shape.extruder.pipe.tiny"); - SHAPE_EXTRUDERS[8] = SHAPE_EXTRUDER_PIPE_SMALL = addItem(359, "shape.extruder.pipe.small"); - SHAPE_EXTRUDERS[9] = SHAPE_EXTRUDER_PIPE_MEDIUM = addItem(360, "shape.extruder.pipe.medium"); - SHAPE_EXTRUDERS[10] = SHAPE_EXTRUDER_PIPE_LARGE = addItem(361, "shape.extruder.pipe.large"); - SHAPE_EXTRUDERS[11] = SHAPE_EXTRUDER_PIPE_HUGE = addItem(362, "shape.extruder.pipe.huge"); - SHAPE_EXTRUDERS[12] = SHAPE_EXTRUDER_BLOCK = addItem(363, "shape.extruder.block"); - SHAPE_EXTRUDERS[13] = SHAPE_EXTRUDER_SWORD = addItem(364, "shape.extruder.sword"); - SHAPE_EXTRUDERS[14] = SHAPE_EXTRUDER_PICKAXE = addItem(365, "shape.extruder.pickaxe"); - SHAPE_EXTRUDERS[15] = SHAPE_EXTRUDER_SHOVEL = addItem(366, "shape.extruder.shovel"); - SHAPE_EXTRUDERS[16] = SHAPE_EXTRUDER_AXE = addItem(367, "shape.extruder.axe"); - SHAPE_EXTRUDERS[17] = SHAPE_EXTRUDER_HOE = addItem(368, "shape.extruder.hoe"); - SHAPE_EXTRUDERS[18] = SHAPE_EXTRUDER_HAMMER = addItem(369, "shape.extruder.hammer"); - SHAPE_EXTRUDERS[19] = SHAPE_EXTRUDER_FILE = addItem(370, "shape.extruder.file"); - SHAPE_EXTRUDERS[20] = SHAPE_EXTRUDER_SAW = addItem(371, "shape.extruder.saw"); - SHAPE_EXTRUDERS[21] = SHAPE_EXTRUDER_GEAR = addItem(372, "shape.extruder.gear"); - SHAPE_EXTRUDERS[22] = SHAPE_EXTRUDER_BOTTLE = addItem(373, "shape.extruder.bottle"); - - SPRAY_EMPTY = addItem(402, "spray.empty") - .setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Tin, OrePrefix.plate.materialAmount * 2L), new MaterialStack(Materials.Redstone, OrePrefix.dust.materialAmount))); - - FLUID_CELL = addItem(403, "fluid_cell").addComponents(new FluidStats(1000, Integer.MIN_VALUE, Integer.MAX_VALUE, false)); - - UNIVERSAL_FLUID_CELL = addItem(404, "fluid_cell.universal").addComponents(new FluidStats(1000, Integer.MIN_VALUE, Integer.MAX_VALUE, true)); - - LARGE_FLUID_CELL_STEEL = addItem(405, "large_fluid_cell.steel") - .addComponents(new FluidStats(8000, Integer.MIN_VALUE, Integer.MAX_VALUE, true)) - .setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, OrePrefix.plate.materialAmount * 4L + OrePrefix.ring.materialAmount * 8L))); - - LARGE_FLUID_CELL_ALUMINIUM = addItem(406, "large_fluid_cell.aluminium") - .addComponents(new FluidStats(32000, Integer.MIN_VALUE, Integer.MAX_VALUE, true)) - .setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Aluminium, OrePrefix.plate.materialAmount * 4L + OrePrefix.ring.materialAmount * 8L))); - - LARGE_FLUID_CELL_STAINLESS_STEEL = addItem(407, "large_fluid_cell.stainless_steel") - .addComponents(new FluidStats(64000, Integer.MIN_VALUE, Integer.MAX_VALUE, true)) - .setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.StainlessSteel, OrePrefix.plate.materialAmount * 4L + OrePrefix.ring.materialAmount * 8L))); - - LARGE_FLUID_CELL_TITANIUM = addItem(408, "large_fluid_cell.titanium") - .addComponents(new FluidStats(128000, Integer.MIN_VALUE, Integer.MAX_VALUE, true)) - .setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.StainlessSteel, OrePrefix.plate.materialAmount * 4L + OrePrefix.ring.materialAmount * 8L))); - - LARGE_FLUID_CELL_TUNGSTEN_STEEL = addItem(409, "large_fluid_cell.tungstensteel") - .addComponents(new FluidStats(512000, Integer.MIN_VALUE, Integer.MAX_VALUE, true)) - .setMaxStackSize(32) - .setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.TungstenSteel, OrePrefix.plate.materialAmount * 4L + OrePrefix.ring.materialAmount * 8L))); - - LARGE_FLUID_CELL_CHROME = addItem(410, "large_fluid_cell.chrome") - .addComponents(new FluidStats(2048000, Integer.MIN_VALUE, Integer.MAX_VALUE, true)) - .setMaxStackSize(32) - .setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Chrome, OrePrefix.plate.materialAmount * 4L + OrePrefix.ring.materialAmount * 8L))); - - LARGE_FLUID_CELL_IRIDIUM = addItem(411, "large_fluid_cell.iridium") - .addComponents(new FluidStats(8192000, Integer.MIN_VALUE, Integer.MAX_VALUE, true)) - .setMaxStackSize(2) - .setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Iridium, OrePrefix.plate.materialAmount * 4L + OrePrefix.ring.materialAmount * 8L))); - - LARGE_FLUID_CELL_OSMIUM = addItem(412, "large_fluid_cell.osmium") - .addComponents(new FluidStats(32768000, Integer.MIN_VALUE, Integer.MAX_VALUE, true)) - .setMaxStackSize(1) - .setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Osmium, OrePrefix.plate.materialAmount * 4L + OrePrefix.ring.materialAmount * 8L))); - - LARGE_FLUID_CELL_NEUTRONIUM = addItem(413, "large_fluid_cell.neutronium") + SHAPE_EMPTY = addItem(11, "shape.empty"); + + SHAPE_MOLDS[0] = SHAPE_MOLD_PLATE = addItem(12, "shape.mold.plate"); + SHAPE_MOLDS[1] = SHAPE_MOLD_GEAR = addItem(13, "shape.mold.gear"); + SHAPE_MOLDS[2] = SHAPE_MOLD_CREDIT = addItem(14, "shape.mold.credit"); + SHAPE_MOLDS[3] = SHAPE_MOLD_BOTTLE = addItem(15, "shape.mold.bottle"); + SHAPE_MOLDS[4] = SHAPE_MOLD_INGOT = addItem(16, "shape.mold.ingot"); + SHAPE_MOLDS[5] = SHAPE_MOLD_BALL = addItem(17, "shape.mold.ball"); + SHAPE_MOLDS[6] = SHAPE_MOLD_BLOCK = addItem(18, "shape.mold.block"); + SHAPE_MOLDS[7] = SHAPE_MOLD_NUGGET = addItem(19, "shape.mold.nugget"); + SHAPE_MOLDS[8] = SHAPE_MOLD_CYLINDER = addItem(20, "shape.mold.cylinder"); + SHAPE_MOLDS[9] = SHAPE_MOLD_ANVIL = addItem(21, "shape.mold.anvil"); + SHAPE_MOLDS[10] = SHAPE_MOLD_NAME = addItem(22, "shape.mold.name"); + SHAPE_MOLDS[11] = SHAPE_MOLD_GEAR_SMALL = addItem(23, "shape.mold.gear.small"); + SHAPE_MOLDS[12] = SHAPE_MOLD_ROTOR = addItem(24, "shape.mold.rotor"); + + SHAPE_EXTRUDERS[0] = SHAPE_EXTRUDER_PLATE = addItem(25, "shape.extruder.plate"); + SHAPE_EXTRUDERS[1] = SHAPE_EXTRUDER_ROD = addItem(26, "shape.extruder.rod"); + SHAPE_EXTRUDERS[2] = SHAPE_EXTRUDER_BOLT = addItem(27, "shape.extruder.bolt"); + SHAPE_EXTRUDERS[3] = SHAPE_EXTRUDER_RING = addItem(28, "shape.extruder.ring"); + SHAPE_EXTRUDERS[4] = SHAPE_EXTRUDER_CELL = addItem(29, "shape.extruder.cell"); + SHAPE_EXTRUDERS[5] = SHAPE_EXTRUDER_INGOT = addItem(30, "shape.extruder.ingot"); + SHAPE_EXTRUDERS[6] = SHAPE_EXTRUDER_WIRE = addItem(31, "shape.extruder.wire"); + SHAPE_EXTRUDERS[7] = SHAPE_EXTRUDER_PIPE_TINY = addItem(32, "shape.extruder.pipe.tiny"); + SHAPE_EXTRUDERS[8] = SHAPE_EXTRUDER_PIPE_SMALL = addItem(33, "shape.extruder.pipe.small"); + SHAPE_EXTRUDERS[9] = SHAPE_EXTRUDER_PIPE_MEDIUM = addItem(34, "shape.extruder.pipe.medium"); + SHAPE_EXTRUDERS[10] = SHAPE_EXTRUDER_PIPE_LARGE = addItem(35, "shape.extruder.pipe.large"); + SHAPE_EXTRUDERS[11] = SHAPE_EXTRUDER_PIPE_HUGE = addItem(36, "shape.extruder.pipe.huge"); + SHAPE_EXTRUDERS[12] = SHAPE_EXTRUDER_BLOCK = addItem(37, "shape.extruder.block"); + SHAPE_EXTRUDERS[13] = SHAPE_EXTRUDER_SWORD = addItem(38, "shape.extruder.sword"); + SHAPE_EXTRUDERS[14] = SHAPE_EXTRUDER_PICKAXE = addItem(39, "shape.extruder.pickaxe"); + SHAPE_EXTRUDERS[15] = SHAPE_EXTRUDER_SHOVEL = addItem(40, "shape.extruder.shovel"); + SHAPE_EXTRUDERS[16] = SHAPE_EXTRUDER_AXE = addItem(41, "shape.extruder.axe"); + SHAPE_EXTRUDERS[17] = SHAPE_EXTRUDER_HOE = addItem(42, "shape.extruder.hoe"); + SHAPE_EXTRUDERS[18] = SHAPE_EXTRUDER_HAMMER = addItem(43, "shape.extruder.hammer"); + SHAPE_EXTRUDERS[19] = SHAPE_EXTRUDER_FILE = addItem(44, "shape.extruder.file"); + SHAPE_EXTRUDERS[20] = SHAPE_EXTRUDER_SAW = addItem(45, "shape.extruder.saw"); + SHAPE_EXTRUDERS[21] = SHAPE_EXTRUDER_GEAR = addItem(46, "shape.extruder.gear"); + SHAPE_EXTRUDERS[22] = SHAPE_EXTRUDER_BOTTLE = addItem(47, "shape.extruder.bottle"); + + SPRAY_EMPTY = addItem(48, "spray.empty") + .setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Tin, OrePrefix.plate.materialAmount * 2L), new MaterialStack(Materials.Redstone, OrePrefix.dust.materialAmount))); + + FLUID_CELL = addItem(49, "fluid_cell").addComponents(new FluidStats(1000, Integer.MIN_VALUE, Integer.MAX_VALUE, false)); + + UNIVERSAL_FLUID_CELL = addItem(50, "fluid_cell.universal").addComponents(new FluidStats(1000, Integer.MIN_VALUE, Integer.MAX_VALUE, true)); + + LARGE_FLUID_CELL_STEEL = addItem(51, "large_fluid_cell.steel") + .addComponents(new FluidStats(8000, Integer.MIN_VALUE, Integer.MAX_VALUE, true)) + .setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, OrePrefix.plate.materialAmount * 4L + OrePrefix.ring.materialAmount * 8L))); + + LARGE_FLUID_CELL_ALUMINIUM = addItem(52, "large_fluid_cell.aluminium") + .addComponents(new FluidStats(32000, Integer.MIN_VALUE, Integer.MAX_VALUE, true)) + .setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Aluminium, OrePrefix.plate.materialAmount * 4L + OrePrefix.ring.materialAmount * 8L))); + + LARGE_FLUID_CELL_STAINLESS_STEEL = addItem(53, "large_fluid_cell.stainless_steel") + .addComponents(new FluidStats(64000, Integer.MIN_VALUE, Integer.MAX_VALUE, true)) + .setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.StainlessSteel, OrePrefix.plate.materialAmount * 4L + OrePrefix.ring.materialAmount * 8L))); + + LARGE_FLUID_CELL_TITANIUM = addItem(54, "large_fluid_cell.titanium") + .addComponents(new FluidStats(128000, Integer.MIN_VALUE, Integer.MAX_VALUE, true)) + .setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.StainlessSteel, OrePrefix.plate.materialAmount * 4L + OrePrefix.ring.materialAmount * 8L))); + + LARGE_FLUID_CELL_TUNGSTEN_STEEL = addItem(55, "large_fluid_cell.tungstensteel") + .addComponents(new FluidStats(512000, Integer.MIN_VALUE, Integer.MAX_VALUE, true)) + .setMaxStackSize(32) + .setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.TungstenSteel, OrePrefix.plate.materialAmount * 4L + OrePrefix.ring.materialAmount * 8L))); + + LARGE_FLUID_CELL_CHROME = addItem(56, "large_fluid_cell.chrome") + .addComponents(new FluidStats(2048000, Integer.MIN_VALUE, Integer.MAX_VALUE, true)) + .setMaxStackSize(32) + .setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Chrome, OrePrefix.plate.materialAmount * 4L + OrePrefix.ring.materialAmount * 8L))); + + LARGE_FLUID_CELL_IRIDIUM = addItem(57, "large_fluid_cell.iridium") + .addComponents(new FluidStats(8192000, Integer.MIN_VALUE, Integer.MAX_VALUE, true)) + .setMaxStackSize(2) + .setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Iridium, OrePrefix.plate.materialAmount * 4L + OrePrefix.ring.materialAmount * 8L))); + + LARGE_FLUID_CELL_OSMIUM = addItem(58, "large_fluid_cell.osmium") + .addComponents(new FluidStats(32768000, Integer.MIN_VALUE, Integer.MAX_VALUE, true)) + .setMaxStackSize(1) + .setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Osmium, OrePrefix.plate.materialAmount * 4L + OrePrefix.ring.materialAmount * 8L))); + + LARGE_FLUID_CELL_NEUTRONIUM = addItem(59, "large_fluid_cell.neutronium") .addComponents(new FluidStats(131072000, Integer.MIN_VALUE, Integer.MAX_VALUE, true)) .setMaxStackSize(1) .setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Neutronium, OrePrefix.plate.materialAmount * 4L + OrePrefix.ring.materialAmount * 8L))); for (int i = 0; i < EnumDyeColor.values().length; i++) { EnumDyeColor dyeColor = EnumDyeColor.values()[i]; - SPRAY_CAN_DYES[i] = addItem(430 + 2 * i, "spray.can.dyes." + dyeColor.getName()).setMaxStackSize(1); + SPRAY_CAN_DYES[i] = addItem(60 + i, "spray.can.dyes." + dyeColor.getName()).setMaxStackSize(1); ColorSprayBehaviour behaviour = new ColorSprayBehaviour(SPRAY_EMPTY.getStackForm(), 512, i); SPRAY_CAN_DYES[i].addComponents(behaviour); } - TOOL_MATCHES = addItem(471, "tool.matches") - .addComponents(new LighterBehaviour(1)); - TOOL_MATCHBOX = addItem(473, "tool.matchbox") - .addComponents(new LighterBehaviour(16)).setMaxStackSize(1); - TOOL_LIGHTER_INVAR = addItem(476, "tool.lighter.invar") - .setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Invar, GTValues.L * 2))) - .addComponents(new LighterBehaviour(100)).setMaxStackSize(1); - TOOL_LIGHTER_PLATINUM = addItem(477, "tool.lighter.platinum") - .setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Platinum, GTValues.L * 2))) - .addComponents(new LighterBehaviour(1000)).setMaxStackSize(1); - - BATTERY_HULL_LV = addItem(500, "battery.hull.lv").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.BatteryAlloy, OrePrefix.plate.materialAmount))); - BATTERY_HULL_MV = addItem(501, "battery.hull.mv").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.BatteryAlloy, OrePrefix.plate.materialAmount * 3L))); - BATTERY_HULL_HV = addItem(502, "battery.hull.hv").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.BatteryAlloy, OrePrefix.plate.materialAmount * 9L))); - - BATTERY_RE_ULV_TANTALUM = addItem(499, "battery.re.ulv.tantalum").addComponents(ElectricStats.createRechargeableBattery(1000, 0)); - - BATTERY_SU_LV_SULFURIC_ACID = addItem(510, "battery.su.lv.sulfuricacid").addComponents(ElectricStats.createBattery(18000, 1, false)).setModelAmount(8); - BATTERY_SU_LV_MERCURY = addItem(511, "battery.su.lv.mercury").addComponents(ElectricStats.createBattery(32000, 1, false)).setModelAmount(8); - - BATTERY_RE_LV_CADMIUM = addItem(517, "battery.re.lv.cadmium").addComponents(ElectricStats.createRechargeableBattery(120000, 1)).setModelAmount(8); - BATTERY_RE_LV_LITHIUM = addItem(518, "battery.re.lv.lithium").addComponents(ElectricStats.createRechargeableBattery(100000, 1)).setModelAmount(8); - BATTERY_RE_LV_SODIUM = addItem(519, "battery.re.lv.sodium").addComponents(ElectricStats.createRechargeableBattery(80000, 1)).setModelAmount(8); - - BATTERY_SU_MV_SULFURIC_ACID = addItem(520, "battery.su.mv.sulfuricacid").addComponents(ElectricStats.createBattery(72000, 2, false)).setModelAmount(8); - BATTERY_SU_MV_MERCURY = addItem(521, "battery.su.mv.mercury").addComponents(ElectricStats.createBattery(128000, 2, false)).setModelAmount(8); - - BATTERY_RE_MV_CADMIUM = addItem(527, "battery.re.mv.cadmium").addComponents(ElectricStats.createRechargeableBattery(420000, 2)).setModelAmount(8); - BATTERY_RE_MV_LITHIUM = addItem(528, "battery.re.mv.lithium").addComponents(ElectricStats.createRechargeableBattery(400000, 2)).setModelAmount(8); - BATTERY_RE_MV_SODIUM = addItem(529, "battery.re.mv.sodium").addComponents(ElectricStats.createRechargeableBattery(360000, 2)).setModelAmount(8); - - BATTERY_SU_HV_SULFURIC_ACID = addItem(530, "battery.su.hv.sulfuricacid").addComponents(ElectricStats.createBattery(288000, 3, false)).setModelAmount(8); - BATTERY_SU_HV_MERCURY = addItem(531, "battery.su.hv.mercury").addComponents(ElectricStats.createBattery(512000, 3, false)).setModelAmount(8); - - BATTERY_RE_HV_CADMIUM = addItem(537, "battery.re.hv.cadmium").addComponents(ElectricStats.createRechargeableBattery(1800000, 3)).setModelAmount(8); - BATTERY_RE_HV_LITHIUM = addItem(538, "battery.re.hv.lithium").addComponents(ElectricStats.createRechargeableBattery(1600000, 3)).setModelAmount(8); - BATTERY_RE_HV_SODIUM = addItem(539, "battery.re.hv.sodium").addComponents(ElectricStats.createRechargeableBattery(1200000, 3)).setModelAmount(8); - - ENERGY_LAPOTRONIC_ORB = addItem(597, "energy.lapotronicorb").addComponents(ElectricStats.createRechargeableBattery(100000000, 5)).setUnificationData(OrePrefix.battery, MarkerMaterials.Tier.Ultimate).setModelAmount(8); - ENERGY_LAPOTRONIC_ORB2 = addItem(598, "energy.lapotronicorb2").addComponents(ElectricStats.createRechargeableBattery(1000000000, 6)).setUnificationData(OrePrefix.battery, MarkerMaterials.Tier.Ultimate).setModelAmount(8); - - ZPM = addItem(599, "zpm").addComponents(ElectricStats.createBattery(2000000000000L, GTValues.ZPM, false)).setModelAmount(8); - ZPM2 = addItem(605, "zpm2").addComponents(ElectricStats.createRechargeableBattery(Long.MAX_VALUE, GTValues.UV)).setModelAmount(8); - - ELECTRIC_MOTOR_LV = addItem(600, "electric.motor.lv"); - ELECTRIC_MOTOR_MV = addItem(601, "electric.motor.mv"); - ELECTRIC_MOTOR_HV = addItem(602, "electric.motor.hv"); - ELECTRIC_MOTOR_EV = addItem(603, "electric.motor.ev"); - ELECTRIC_MOTOR_IV = addItem(604, "electric.motor.iv"); - ELECTRIC_MOTOR_LUV = addItem(606, "electric.motor.luv"); - ELECTRIC_MOTOR_ZPM = addItem(607, "electric.motor.zpm"); - ELECTRIC_MOTOR_UV = addItem(608, "electric.motor.uv"); - - PUMPS[0] = ELECTRIC_PUMP_LV = addItem(610, "electric.pump.lv"); - PUMPS[1] = ELECTRIC_PUMP_MV = addItem(611, "electric.pump.mv"); - PUMPS[2] = ELECTRIC_PUMP_HV = addItem(612, "electric.pump.hv"); - PUMPS[3] = ELECTRIC_PUMP_EV = addItem(613, "electric.pump.ev"); - PUMPS[4] = ELECTRIC_PUMP_IV = addItem(614, "electric.pump.iv"); - PUMPS[5] = ELECTRIC_PUMP_LUV = addItem(615, "electric.pump.luv"); - PUMPS[6] = ELECTRIC_PUMP_ZPM = addItem(616, "electric.pump.zpm"); - PUMPS[7] = ELECTRIC_PUMP_UV = addItem(617, "electric.pump.uv"); - - RUBBER_DROP = addItem(627, "rubber_drop").setBurnValue(200); - - FLUID_FILTER = addItem(628, "fluid_filter"); - - DYNAMITE = addItem(629, "dynamite").addComponents(new DynamiteBehaviour()).setMaxStackSize(16); - - CONVEYOR_MODULE_LV = addItem(630, "conveyor.module.lv"); - CONVEYOR_MODULE_MV = addItem(631, "conveyor.module.mv"); - CONVEYOR_MODULE_HV = addItem(632, "conveyor.module.hv"); - CONVEYOR_MODULE_EV = addItem(633, "conveyor.module.ev"); - CONVEYOR_MODULE_IV = addItem(634, "conveyor.module.iv"); - CONVEYOR_MODULE_LUV = addItem(635, "conveyor.module.luv"); - CONVEYOR_MODULE_ZPM = addItem(636, "conveyor.module.zpm"); - CONVEYOR_MODULE_UV = addItem(637, "conveyor.module.uv"); - - ELECTRIC_PISTON_LV = addItem(640, "electric.piston.lv"); - ELECTRIC_PISTON_MV = addItem(641, "electric.piston.mv"); - ELECTRIC_PISTON_HV = addItem(642, "electric.piston.hv"); - ELECTRIC_PISTON_EV = addItem(643, "electric.piston.ev"); - ELECTRIC_PISTON_IV = addItem(644, "electric.piston.iv"); - ELECTRIC_PISTON_LUV = addItem(645, "electric.piston.luv"); - ELECTRIC_PISTON_ZPM = addItem(646, "electric.piston.zpm"); - ELECTRIC_PISTON_UV = addItem(647, "electric.piston.uv"); - - ROBOT_ARM_LV = addItem(650, "robot.arm.lv"); - ROBOT_ARM_MV = addItem(651, "robot.arm.mv"); - ROBOT_ARM_HV = addItem(652, "robot.arm.hv"); - ROBOT_ARM_EV = addItem(653, "robot.arm.ev"); - ROBOT_ARM_IV = addItem(654, "robot.arm.iv"); - ROBOT_ARM_LUV = addItem(655, "robot.arm.luv"); - ROBOT_ARM_ZPM = addItem(656, "robot.arm.zpm"); - ROBOT_ARM_UV = addItem(657, "robot.arm.uv"); - - FIELD_GENERATOR_LV = addItem(670, "field.generator.lv"); - FIELD_GENERATOR_MV = addItem(671, "field.generator.mv"); - FIELD_GENERATOR_HV = addItem(672, "field.generator.hv"); - FIELD_GENERATOR_EV = addItem(673, "field.generator.ev"); - FIELD_GENERATOR_IV = addItem(674, "field.generator.iv"); - FIELD_GENERATOR_LUV = addItem(675, "field.generator.luv"); - FIELD_GENERATOR_ZPM = addItem(676, "field.generator.zpm"); - FIELD_GENERATOR_UV = addItem(677, "field.generator.uv"); - - EMITTER_LV = addItem(680, "emitter.lv"); - EMITTER_MV = addItem(681, "emitter.mv"); - EMITTER_HV = addItem(682, "emitter.hv"); - EMITTER_EV = addItem(683, "emitter.ev"); - EMITTER_IV = addItem(684, "emitter.iv"); - EMITTER_LUV = addItem(685, "emitter.luv"); - EMITTER_ZPM = addItem(686, "emitter.zpm"); - EMITTER_UV = addItem(687, "emitter.uv"); - - SENSOR_LV = addItem(690, "sensor.lv"); - SENSOR_MV = addItem(691, "sensor.mv"); - SENSOR_HV = addItem(692, "sensor.hv"); - SENSOR_EV = addItem(693, "sensor.ev"); - SENSOR_IV = addItem(694, "sensor.iv"); - SENSOR_LUV = addItem(695, "sensor.luv"); - SENSOR_ZPM = addItem(696, "sensor.zpm"); - SENSOR_UV = addItem(697, "sensor.uv"); - - TOOL_DATA_STICK = addItem(708, "tool.datastick"); - TOOL_DATA_ORB = addItem(707, "tool.dataorb"); - - COMPONENT_SAW_BLADE_DIAMOND = addItem(721, "component.sawblade.diamond").addOreDict(OreDictNames.craftingDiamondBlade); - COMPONENT_GRINDER_DIAMOND = addItem(722, "component.grinder.diamond").addOreDict(OreDictNames.craftingGrinder); - COMPONENT_GRINDER_TUNGSTEN = addItem(723, "component.grinder.tungsten").addOreDict(OreDictNames.craftingGrinder); - - QUANTUM_EYE = addItem(724, "quantumeye"); - QUANTUM_STAR = addItem(725, "quantumstar"); - GRAVI_STAR = addItem(726, "gravistar"); - - ITEM_FILTER = addItem(729, "item_filter"); - ORE_DICTIONARY_FILTER = addItem(102, "ore_dictionary_filter"); - SMART_FILTER = addItem(103, "smart_item_filter"); - - COVER_MACHINE_CONTROLLER = addItem(730, "cover.controller"); - - COVER_ACTIVITY_DETECTOR = addItem(731, "cover.activity.detector").setInvisible(); - COVER_FLUID_DETECTOR = addItem(732, "cover.fluid.detector").setInvisible(); - COVER_ITEM_DETECTOR = addItem(733, "cover.item.detector").setInvisible(); - COVER_ENERGY_DETECTOR = addItem(734, "cover.energy.detector").setInvisible(); - - COVER_SCREEN = addItem(740, "cover.screen").setInvisible(); - COVER_CRAFTING = addItem(744, "cover.crafting").setInvisible(); - COVER_DRAIN = addItem(745, "cover.drain").setInvisible(); - - COVER_SHUTTER = addItem(749, "cover.shutter"); - - COVER_SOLAR_PANEL = addItem(750, "cover.solar.panel"); - COVER_SOLAR_PANEL_ULV = addItem(751, "cover.solar.panel.ulv"); - COVER_SOLAR_PANEL_LV = addItem(752, "cover.solar.panel.lv"); - - INTEGRATED_CIRCUIT = addItem(766, "circuit.integrated").addComponents(new IntCircuitBehaviour()).setModelAmount(33); - FOAM_SPRAYER = addItem(746, "foam_sprayer").addComponents(new FoamSprayerBehavior()).setMaxStackSize(1); + + + TOOL_MATCHES = addItem(76, "tool.matches") + .addComponents(new LighterBehaviour(1)); + TOOL_MATCHBOX = addItem(77, "tool.matchbox") + .addComponents(new LighterBehaviour(16)).setMaxStackSize(1); + TOOL_LIGHTER_INVAR = addItem(78, "tool.lighter.invar") + .setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Invar, GTValues.L * 2))) + .addComponents(new LighterBehaviour(100)).setMaxStackSize(1); + TOOL_LIGHTER_PLATINUM = addItem(79, "tool.lighter.platinum") + .setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Platinum, GTValues.L * 2))) + .addComponents(new LighterBehaviour(1000)).setMaxStackSize(1); + + BATTERY_HULL_LV = addItem(80, "battery.hull.lv").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.BatteryAlloy, OrePrefix.plate.materialAmount))); + BATTERY_HULL_MV = addItem(81, "battery.hull.mv").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.BatteryAlloy, OrePrefix.plate.materialAmount * 3L))); + BATTERY_HULL_HV = addItem(82, "battery.hull.hv").setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.BatteryAlloy, OrePrefix.plate.materialAmount * 9L))); + + BATTERY_RE_ULV_TANTALUM = addItem(83, "battery.re.ulv.tantalum").addComponents(ElectricStats.createRechargeableBattery(1000, 0)); + + BATTERY_SU_LV_SULFURIC_ACID = addItem(84, "battery.su.lv.sulfuricacid").addComponents(ElectricStats.createBattery(18000, 1, false)).setModelAmount(8); + BATTERY_SU_LV_MERCURY = addItem(85, "battery.su.lv.mercury").addComponents(ElectricStats.createBattery(32000, 1, false)).setModelAmount(8); + + BATTERY_RE_LV_CADMIUM = addItem(86, "battery.re.lv.cadmium").addComponents(ElectricStats.createRechargeableBattery(120000, 1)).setModelAmount(8); + BATTERY_RE_LV_LITHIUM = addItem(87, "battery.re.lv.lithium").addComponents(ElectricStats.createRechargeableBattery(100000, 1)).setModelAmount(8); + BATTERY_RE_LV_SODIUM = addItem(88, "battery.re.lv.sodium").addComponents(ElectricStats.createRechargeableBattery(80000, 1)).setModelAmount(8); + + BATTERY_SU_MV_SULFURIC_ACID = addItem(89, "battery.su.mv.sulfuricacid").addComponents(ElectricStats.createBattery(72000, 2, false)).setModelAmount(8); + BATTERY_SU_MV_MERCURY = addItem(90, "battery.su.mv.mercury").addComponents(ElectricStats.createBattery(128000, 2, false)).setModelAmount(8); + + BATTERY_RE_MV_CADMIUM = addItem(91, "battery.re.mv.cadmium").addComponents(ElectricStats.createRechargeableBattery(420000, 2)).setModelAmount(8); + BATTERY_RE_MV_LITHIUM = addItem(92, "battery.re.mv.lithium").addComponents(ElectricStats.createRechargeableBattery(400000, 2)).setModelAmount(8); + BATTERY_RE_MV_SODIUM = addItem(93, "battery.re.mv.sodium").addComponents(ElectricStats.createRechargeableBattery(360000, 2)).setModelAmount(8); + + BATTERY_SU_HV_SULFURIC_ACID = addItem(94, "battery.su.hv.sulfuricacid").addComponents(ElectricStats.createBattery(288000, 3, false)).setModelAmount(8); + BATTERY_SU_HV_MERCURY = addItem(95, "battery.su.hv.mercury").addComponents(ElectricStats.createBattery(512000, 3, false)).setModelAmount(8); + + BATTERY_RE_HV_CADMIUM = addItem(96, "battery.re.hv.cadmium").addComponents(ElectricStats.createRechargeableBattery(1800000, 3)).setModelAmount(8); + BATTERY_RE_HV_LITHIUM = addItem(97, "battery.re.hv.lithium").addComponents(ElectricStats.createRechargeableBattery(1600000, 3)).setModelAmount(8); + BATTERY_RE_HV_SODIUM = addItem(98, "battery.re.hv.sodium").addComponents(ElectricStats.createRechargeableBattery(1200000, 3)).setModelAmount(8); + + ENERGY_LAPOTRONIC_ORB = addItem(99, "energy.lapotronicorb").addComponents(ElectricStats.createRechargeableBattery(100000000, 5)).setUnificationData(OrePrefix.battery, MarkerMaterials.Tier.Ultimate).setModelAmount(8); + ENERGY_LAPOTRONIC_ORB2 = addItem(100, "energy.lapotronicorb2").addComponents(ElectricStats.createRechargeableBattery(1000000000, 6)).setUnificationData(OrePrefix.battery, MarkerMaterials.Tier.Ultimate).setModelAmount(8); + + ZPM = addItem(101, "zpm").addComponents(ElectricStats.createBattery(2000000000000L, GTValues.ZPM, false)).setModelAmount(8); + ZPM2 = addItem(102, "zpm2").addComponents(ElectricStats.createRechargeableBattery(Long.MAX_VALUE, GTValues.UV)).setModelAmount(8); + + ELECTRIC_MOTOR_LV = addItem(103, "electric.motor.lv"); + ELECTRIC_MOTOR_MV = addItem(104, "electric.motor.mv"); + ELECTRIC_MOTOR_HV = addItem(105, "electric.motor.hv"); + ELECTRIC_MOTOR_EV = addItem(106, "electric.motor.ev"); + ELECTRIC_MOTOR_IV = addItem(107, "electric.motor.iv"); + ELECTRIC_MOTOR_LUV = addItem(108, "electric.motor.luv"); + ELECTRIC_MOTOR_ZPM = addItem(109, "electric.motor.zpm"); + ELECTRIC_MOTOR_UV = addItem(110, "electric.motor.uv"); + + PUMPS[0] = ELECTRIC_PUMP_LV = addItem(111, "electric.pump.lv"); + PUMPS[1] = ELECTRIC_PUMP_MV = addItem(112, "electric.pump.mv"); + PUMPS[2] = ELECTRIC_PUMP_HV = addItem(113, "electric.pump.hv"); + PUMPS[3] = ELECTRIC_PUMP_EV = addItem(114, "electric.pump.ev"); + PUMPS[4] = ELECTRIC_PUMP_IV = addItem(115, "electric.pump.iv"); + PUMPS[5] = ELECTRIC_PUMP_LUV = addItem(116, "electric.pump.luv"); + PUMPS[6] = ELECTRIC_PUMP_ZPM = addItem(117, "electric.pump.zpm"); + PUMPS[7] = ELECTRIC_PUMP_UV = addItem(118, "electric.pump.uv"); + + RUBBER_DROP = addItem(119, "rubber_drop").setBurnValue(200); + + FLUID_FILTER = addItem(120, "fluid_filter"); + + DYNAMITE = addItem(121, "dynamite").addComponents(new DynamiteBehaviour()).setMaxStackSize(16); + + CONVEYOR_MODULE_LV = addItem(122, "conveyor.module.lv"); + CONVEYOR_MODULE_MV = addItem(123, "conveyor.module.mv"); + CONVEYOR_MODULE_HV = addItem(124, "conveyor.module.hv"); + CONVEYOR_MODULE_EV = addItem(125, "conveyor.module.ev"); + CONVEYOR_MODULE_IV = addItem(126, "conveyor.module.iv"); + CONVEYOR_MODULE_LUV = addItem(127, "conveyor.module.luv"); + CONVEYOR_MODULE_ZPM = addItem(128, "conveyor.module.zpm"); + CONVEYOR_MODULE_UV = addItem(129, "conveyor.module.uv"); + + ELECTRIC_PISTON_LV = addItem(130, "electric.piston.lv"); + ELECTRIC_PISTON_MV = addItem(131, "electric.piston.mv"); + ELECTRIC_PISTON_HV = addItem(132, "electric.piston.hv"); + ELECTRIC_PISTON_EV = addItem(133, "electric.piston.ev"); + ELECTRIC_PISTON_IV = addItem(134, "electric.piston.iv"); + ELECTRIC_PISTON_LUV = addItem(135, "electric.piston.luv"); + ELECTRIC_PISTON_ZPM = addItem(136, "electric.piston.zpm"); + ELECTRIC_PISTON_UV = addItem(137, "electric.piston.uv"); + + ROBOT_ARM_LV = addItem(138, "robot.arm.lv"); + ROBOT_ARM_MV = addItem(139, "robot.arm.mv"); + ROBOT_ARM_HV = addItem(140, "robot.arm.hv"); + ROBOT_ARM_EV = addItem(141, "robot.arm.ev"); + ROBOT_ARM_IV = addItem(142, "robot.arm.iv"); + ROBOT_ARM_LUV = addItem(143, "robot.arm.luv"); + ROBOT_ARM_ZPM = addItem(144, "robot.arm.zpm"); + ROBOT_ARM_UV = addItem(145, "robot.arm.uv"); + + FIELD_GENERATOR_LV = addItem(146, "field.generator.lv"); + FIELD_GENERATOR_MV = addItem(147, "field.generator.mv"); + FIELD_GENERATOR_HV = addItem(148, "field.generator.hv"); + FIELD_GENERATOR_EV = addItem(149, "field.generator.ev"); + FIELD_GENERATOR_IV = addItem(150, "field.generator.iv"); + FIELD_GENERATOR_LUV = addItem(151, "field.generator.luv"); + FIELD_GENERATOR_ZPM = addItem(152, "field.generator.zpm"); + FIELD_GENERATOR_UV = addItem(153, "field.generator.uv"); + + EMITTER_LV = addItem(154, "emitter.lv"); + EMITTER_MV = addItem(155, "emitter.mv"); + EMITTER_HV = addItem(156, "emitter.hv"); + EMITTER_EV = addItem(157, "emitter.ev"); + EMITTER_IV = addItem(158, "emitter.iv"); + EMITTER_LUV = addItem(159, "emitter.luv"); + EMITTER_ZPM = addItem(160, "emitter.zpm"); + EMITTER_UV = addItem(161, "emitter.uv"); + + SENSOR_LV = addItem(162, "sensor.lv"); + SENSOR_MV = addItem(163, "sensor.mv"); + SENSOR_HV = addItem(164, "sensor.hv"); + SENSOR_EV = addItem(165, "sensor.ev"); + SENSOR_IV = addItem(166, "sensor.iv"); + SENSOR_LUV = addItem(167, "sensor.luv"); + SENSOR_ZPM = addItem(168, "sensor.zpm"); + SENSOR_UV = addItem(169, "sensor.uv"); + + TOOL_DATA_STICK = addItem(170, "tool.datastick"); + TOOL_DATA_ORB = addItem(171, "tool.dataorb"); + + COMPONENT_SAW_BLADE_DIAMOND = addItem(172, "component.sawblade.diamond").addOreDict(OreDictNames.craftingDiamondBlade); + COMPONENT_GRINDER_DIAMOND = addItem(173, "component.grinder.diamond").addOreDict(OreDictNames.craftingGrinder); + COMPONENT_GRINDER_TUNGSTEN = addItem(174, "component.grinder.tungsten").addOreDict(OreDictNames.craftingGrinder); + + QUANTUM_EYE = addItem(175, "quantumeye"); + QUANTUM_STAR = addItem(176, "quantumstar"); + GRAVI_STAR = addItem(177, "gravistar"); + + ITEM_FILTER = addItem(178, "item_filter"); + ORE_DICTIONARY_FILTER = addItem(179, "ore_dictionary_filter"); + SMART_FILTER = addItem(180, "smart_item_filter"); + + COVER_MACHINE_CONTROLLER = addItem(181, "cover.controller"); + + COVER_ACTIVITY_DETECTOR = addItem(182, "cover.activity.detector").setInvisible(); + COVER_FLUID_DETECTOR = addItem(183, "cover.fluid.detector").setInvisible(); + COVER_ITEM_DETECTOR = addItem(184, "cover.item.detector").setInvisible(); + COVER_ENERGY_DETECTOR = addItem(185, "cover.energy.detector").setInvisible(); + + COVER_SCREEN = addItem(186, "cover.screen").setInvisible(); + COVER_CRAFTING = addItem(187, "cover.crafting").setInvisible(); + COVER_DRAIN = addItem(188, "cover.drain").setInvisible(); + + COVER_SHUTTER = addItem(189, "cover.shutter"); + + COVER_SOLAR_PANEL = addItem(190, "cover.solar.panel"); + COVER_SOLAR_PANEL_ULV = addItem(191, "cover.solar.panel.ulv"); + COVER_SOLAR_PANEL_LV = addItem(192, "cover.solar.panel.lv"); + + INTEGRATED_CIRCUIT = addItem(193, "circuit.integrated").addComponents(new IntCircuitBehaviour()).setModelAmount(33); + FOAM_SPRAYER = addItem(194, "foam_sprayer").addComponents(new FoamSprayerBehavior()).setMaxStackSize(1); + GELLED_TOLUENE = addItem(195, "gelled_toluene"); + + IItemContainerItemProvider selfContainerItemProvider = itemStack -> itemStack; + WOODEN_FORM_EMPTY = addItem(196, "wooden_form.empty"); + WOODEN_FORM_BRICK = addItem(197, "wooden_form.brick").addComponents(selfContainerItemProvider); + + COMPRESSED_CLAY = addItem(198, "compressed.clay"); + COMPRESSED_FIRECLAY = addItem(199, "compressed.fireclay"); + FIRECLAY_BRICK = addItem(200, "brick.fireclay"); + COKE_OVEN_BRICK = addItem(201, "brick.coke"); + + SILICON_BOULE = addItem(202, "boule.silicon"); + GLOWSTONE_BOULE = addItem(203, "boule.glowstone"); + NAQUADAH_BOULE = addItem(204, "boule.naquadah"); + NEUTRONIUM_BOULE = addItem(205, "boule.neutronium"); + SILICON_WAFER = addItem(206, "wafer.silicon"); + GLOWSTONE_WAFER = addItem(207, "wafer.glowstone"); + NAQUADAH_WAFER = addItem(208, "wafer.naquadah"); + NEUTRONIUM_WAFER = addItem(209, "wafer.neutronium"); + + COATED_BOARD = addItem(210, "board.coated"); + PHENOLIC_BOARD = addItem(211, "board.phenolic"); + PLASTIC_BOARD = addItem(212, "board.plastic"); + EPOXY_BOARD = addItem(213, "board.epoxy"); + FIBER_BOARD = addItem(214, "board.fiber_reinforced"); + MULTILAYER_FIBER_BOARD = addItem(215, "board.multilayer.fiber_reinforced"); + WETWARE_BOARD = addItem(216, "board.wetware"); + + BASIC_CIRCUIT_BOARD = addItem(217, "circuit_board.basic"); + GOOD_CIRCUIT_BOARD = addItem(218, "circuit_board.good"); + PLASTIC_CIRCUIT_BOARD = addItem(219, "circuit_board.plastic"); + ADVANCED_CIRCUIT_BOARD = addItem(220, "circuit_board.advanced"); + EXTREME_CIRCUIT_BOARD = addItem(221, "circuit_board.extreme"); + ELITE_CIRCUIT_BOARD = addItem(222, "circuit_board.elite"); + WETWARE_CIRCUIT_BOARD = addItem(223, "circuit_board.wetware"); + + BOTTLE_PURPLE_DRINK = addItem(224, "bottle.purple.drink").addComponents(new FoodStats(8, 0.2F, true, true, new ItemStack(Items.GLASS_BOTTLE), new RandomPotionEffect(MobEffects.HASTE, 800, 1, 90))); + + ENERGY_CRYSTAL = addItem(225, "energy_crystal").addComponents(ElectricStats.createRechargeableBattery(4000000L, GTValues.HV)).setModelAmount(8).setMaxStackSize(1); + LAPOTRON_CRYSTAL = addItem(226, "lapotron_crystal").addComponents(ElectricStats.createRechargeableBattery(10000000L, GTValues.EV)).setModelAmount(8).setMaxStackSize(1); + + DYE_INDIGO = addItem(227, "dye.indigo").addOreDict("dyeBlue").setInvisible(); + for (int i = 0; i < EnumDyeColor.values().length; i++) { + EnumDyeColor dyeColor = EnumDyeColor.values()[i]; + DYE_ONLY_ITEMS[i] = addItem(228 + i, "dye." + dyeColor.getName()).addOreDict(getOrdictColorName(dyeColor)); + } + + PLANT_BALL = addItem(245, "plant_ball").setBurnValue(75); + BIO_CHAFF = addItem(246, "bio_chaff").setBurnValue(200); + ENERGIUM_DUST = addItem(247, "energium_dust"); + + POWER_UNIT_LV = addItem(248, "power_unit.lv").addComponents(ElectricStats.createElectricItem(100000L, GTValues.LV)).setMaxStackSize(8); + POWER_UNIT_MV = addItem(249, "power_unit.mv").addComponents(ElectricStats.createElectricItem(400000L, GTValues.MV)).setMaxStackSize(8); + POWER_UNIT_HV = addItem(250, "power_unit.hv") .addComponents(ElectricStats.createElectricItem(1600000L, GTValues.HV)).setMaxStackSize(8); + POWER_UNIT_EV = addItem(251, "power_unit.ev") .addComponents(ElectricStats.createElectricItem(6400000L, GTValues.EV)).setMaxStackSize(8); + POWER_UNIT_IV = addItem(252, "power_unit.iv") .addComponents(ElectricStats.createElectricItem(25600000L, GTValues.IV)).setMaxStackSize(8); + + + NANO_SABER = addItem(253, "nano_saber").addComponents(ElectricStats.createElectricItem(4000000L, GTValues.HV)).addComponents(new NanoSaberBehavior()).setMaxStackSize(1); + ENERGY_FIELD_PROJECTOR = addItem(254, "energy_field_projector").addComponents(ElectricStats.createElectricItem(16000000L, GTValues.EV)).setMaxStackSize(1); + SCANNER = addItem(255, "scanner").addComponents(ElectricStats.createElectricItem(200_000L, GTValues.LV), new ScannerBehavior(50)); + + + INGOT_MIXED_METAL = addItem(256, "ingot.mixed_metal"); + ADVANCED_ALLOY_PLATE = addItem(257, "plate.advanced_alloy"); + INGOT_IRIDIUM_ALLOY = addItem(258, "ingot.iridium_alloy"); + PLATE_IRIDIUM_ALLOY = addItem(259, "plate.iridium_alloy"); + NEUTRON_REFLECTOR = addItem(260, "neutron_reflector"); + + + VACUUM_TUBE = addItem(261, "circuit.vacuum_tube").setUnificationData(OrePrefix.circuit, MarkerMaterials.Tier.Primitive); + GLASS_TUBE = addItem(262, "component.glass.tube"); + SMALL_COIL = addItem(263, "component.small_coil"); + TRANSISTOR = addItem(264, "component.transistor").setUnificationData(OrePrefix.component, MarkerMaterials.Component.Transistor); + RESISTOR = addItem(265, "component.resistor").setUnificationData(OrePrefix.component, MarkerMaterials.Component.Resistor); + CAPACITOR = addItem(266, "component.capacitor").setUnificationData(OrePrefix.component, MarkerMaterials.Component.Capacitor); + DIODE = addItem(267, "component.diode").setUnificationData(OrePrefix.component, MarkerMaterials.Component.Diode); + SMD_TRANSISTOR = addItem(268, "component.smd.transistor").setUnificationData(OrePrefix.component, MarkerMaterials.Component.Transistor); + SMD_RESISTOR = addItem(269, "component.smd.resistor").setUnificationData(OrePrefix.component, MarkerMaterials.Component.Resistor); + SMD_CAPACITOR = addItem(270, "component.smd.capacitor").setUnificationData(OrePrefix.component, MarkerMaterials.Component.Capacitor); + SMD_DIODE = addItem(271, "component.smd.diode").setUnificationData(OrePrefix.component, MarkerMaterials.Component.Diode); + ADVANCED_SMD_TRANSISTOR = addItem(272, "component.advanced_smd.transistor"); + ADVANCED_SMD_RESISTOR = addItem(273, "component.advanced_smd.resistor"); + ADVANCED_SMD_CAPACITOR = addItem(274, "component.advanced_smd.capacitor"); + ADVANCED_SMD_DIODE = addItem(275, "component.advanced_smd.diode"); + + HIGHLY_ADVANCED_SOC_WAFER = addItem(276, "wafer.highly_advanced_system_on_chip"); + ADVANCED_SYSTEM_ON_CHIP_WAFER = addItem(277, "wafer.advanced_system_on_chip"); + INTEGRATED_LOGIC_CIRCUIT_WAFER = addItem(278, "wafer.integrated_logic_circuit"); + CENTRAL_PROCESSING_UNIT_WAFER = addItem(279, "wafer.central_processing_unit"); + ULTRA_LOW_POWER_INTEGRATED_CIRCUIT_WAFER = addItem(280, "wafer.ultra_low_power_integrated_circuit"); + LOW_POWER_INTEGRATED_CIRCUIT_WAFER = addItem(281, "wafer.low_power_integrated_circuit"); + POWER_INTEGRATED_CIRCUIT_WAFER = addItem(282, "wafer.power_integrated_circuit"); + HIGH_POWER_INTEGRATED_CIRCUIT_WAFER = addItem(283, "wafer.high_power_integrated_circuit"); + NAND_MEMORY_CHIP_WAFER = addItem(284, "wafer.nand_memory_chip"); + NANO_CENTRAL_PROCESSING_UNIT_WAFER = addItem(285, "wafer.nano_central_processing_unit"); + NOR_MEMORY_CHIP_WAFER = addItem(286, "wafer.nor_memory_chip"); + QBIT_CENTRAL_PROCESSING_UNIT_WAFER = addItem(287, "wafer.qbit_central_processing_unit"); + RANDOM_ACCESS_MEMORY_WAFER = addItem(288, "wafer.random_access_memory"); + SYSTEM_ON_CHIP_WAFER = addItem(289, "wafer.system_on_chip"); + SIMPLE_SYSTEM_ON_CHIP_WAFER = addItem(290, "wafer.simple_system_on_chip"); + + RAW_CRYSTAL_CHIP = addItem(291, "crystal.raw"); + RAW_CRYSTAL_CHIP_PART = addItem(292, "crystal.raw_chip"); + ENGRAVED_CRYSTAL_CHIP = addItem(293, "engraved.crystal_chip"); + ENGRAVED_LAPOTRON_CHIP = addItem(294, "engraved.lapotron_chip"); + CRYSTAL_CENTRAL_PROCESSING_UNIT = addItem(295, "crystal.central_processing_unit"); + CRYSTAL_SYSTEM_ON_CHIP = addItem(296, "crystal.system_on_chip"); + HIGHLY_ADVANCED_SOC = addItem(297, "plate.highly_advanced_system_on_chip"); + ADVANCED_SYSTEM_ON_CHIP = addItem(298, "plate.advanced_system_on_chip"); + INTEGRATED_LOGIC_CIRCUIT = addItem(299, "plate.integrated_logic_circuit"); + CENTRAL_PROCESSING_UNIT = addItem(300, "plate.central_processing_unit"); + ULTRA_LOW_POWER_INTEGRATED_CIRCUIT = addItem(301, "plate.ultra_low_power_integrated_circuit"); + LOW_POWER_INTEGRATED_CIRCUIT = addItem(302, "plate.low_power_integrated_circuit"); + POWER_INTEGRATED_CIRCUIT = addItem(303, "plate.power_integrated_circuit"); + HIGH_POWER_INTEGRATED_CIRCUIT = addItem(304, "plate.high_power_integrated_circuit"); + NAND_MEMORY_CHIP = addItem(305, "plate.nand_memory_chip"); + NANO_CENTRAL_PROCESSING_UNIT = addItem(306, "plate.nano_central_processing_unit"); + NOR_MEMORY_CHIP = addItem(307, "plate.nor_memory_chip"); + QBIT_CENTRAL_PROCESSING_UNIT = addItem(308, "plate.qbit_central_processing_unit"); + RANDOM_ACCESS_MEMORY = addItem(309, "plate.random_access_memory"); + SYSTEM_ON_CHIP = addItem(310, "plate.system_on_chip"); + SIMPLE_SYSTEM_ON_CHIP = addItem(311, "plate.simple_system_on_chip"); + + + // CIRCUITS + + // T1: Electronic + ELECTRONIC_CIRCUIT_LV = addItem(312, "circuit.electronic").setUnificationData(OrePrefix.circuit, MarkerMaterials.Tier.Basic); + ELECTRONIC_CIRCUIT_MV = addItem(313, "circuit.good_electronic").setUnificationData(OrePrefix.circuit, MarkerMaterials.Tier.Good); + + // T2: Integrated + INTEGRATED_CIRCUIT_LV = addItem(314, "circuit.basic_integrated").setUnificationData(OrePrefix.circuit, MarkerMaterials.Tier.Basic); + INTEGRATED_CIRCUIT_MV = addItem(315, "circuit.good_integrated").setUnificationData(OrePrefix.circuit, MarkerMaterials.Tier.Good); + INTEGRATED_CIRCUIT_HV = addItem(316, "circuit.advanced_integrated").setUnificationData(OrePrefix.circuit, MarkerMaterials.Tier.Advanced); + + // Misc Unlocks + NAND_CHIP_ULV = addItem(317, "circuit.nand_chip").setUnificationData(OrePrefix.circuit, MarkerMaterials.Tier.Primitive); + MICROPROCESSOR_LV = addItem(318, "circuit.microprocessor").setUnificationData(OrePrefix.circuit, MarkerMaterials.Tier.Basic); + + // T3: Processor + PROCESSOR_MV = addItem(319, "circuit.processor").setUnificationData(OrePrefix.circuit, MarkerMaterials.Tier.Good); + PROCESSOR_ASSEMBLY_HV = addItem(320, "circuit.assembly").setUnificationData(OrePrefix.circuit, MarkerMaterials.Tier.Advanced); + WORKSTATION_EV = addItem(321, "circuit.workstation").setUnificationData(OrePrefix.circuit, MarkerMaterials.Tier.Extreme); + MAINFRAME_IV = addItem(322, "circuit.mainframe").setUnificationData(OrePrefix.circuit, MarkerMaterials.Tier.Elite); + + // T4: Nano + NANO_PROCESSOR_HV = addItem(323, "circuit.nano_processor").setUnificationData(OrePrefix.circuit, MarkerMaterials.Tier.Advanced); + NANO_PROCESSOR_ASSEMBLY_EV = addItem(324, "circuit.nano_assembly").setUnificationData(OrePrefix.circuit, MarkerMaterials.Tier.Extreme); + NANO_COMPUTER_IV = addItem(325, "circuit.nano_computer").setUnificationData(OrePrefix.circuit, MarkerMaterials.Tier.Elite); + NANO_MAINFRAME_LUV = addItem(326, "circuit.nano_mainframe").setUnificationData(OrePrefix.circuit, MarkerMaterials.Tier.Master); + + // T5: Quantum + QUANTUM_PROCESSOR_EV = addItem(327, "circuit.quantum_processor").setUnificationData(OrePrefix.circuit, MarkerMaterials.Tier.Extreme); + QUANTUM_ASSEMBLY_IV = addItem(328, "circuit.quantum_assembly").setUnificationData(OrePrefix.circuit, MarkerMaterials.Tier.Elite); + QUANTUM_COMPUTER_LUV = addItem(329, "circuit.quantum_computer").setUnificationData(OrePrefix.circuit, MarkerMaterials.Tier.Master); + QUANTUM_MAINFRAME_ZPM = addItem(330, "circuit.quantum_mainframe").setUnificationData(OrePrefix.circuit, MarkerMaterials.Tier.Ultimate); + + // T6: Crystal + CRYSTAL_PROCESSOR_IV = addItem(331, "circuit.crystal_processor").setUnificationData(OrePrefix.circuit, MarkerMaterials.Tier.Elite); + CRYSTAL_ASSEMBLY_LUV = addItem(332, "circuit.crystal_assembly").setUnificationData(OrePrefix.circuit, MarkerMaterials.Tier.Master); + CRYSTAL_COMPUTER_ZPM = addItem(333, "circuit.crystal_computer").setUnificationData(OrePrefix.circuit, MarkerMaterials.Tier.Ultimate); + CRYSTAL_MAINFRAME_UV = addItem(334, "circuit.crystal_mainframe").setUnificationData(OrePrefix.circuit, MarkerMaterials.Tier.Superconductor); + + // T7: Wetware + WETWARE_PROCESSOR_LUV = addItem(335, "circuit.wetware_processor").setUnificationData(OrePrefix.circuit, MarkerMaterials.Tier.Master); + WETWARE_PROCESSOR_ASSEMBLY_ZPM = addItem(336, "circuit.wetware_assembly").setUnificationData(OrePrefix.circuit, MarkerMaterials.Tier.Ultimate); + WETWARE_SUPER_COMPUTER_UV = addItem(337, "circuit.wetware_computer").setUnificationData(OrePrefix.circuit, MarkerMaterials.Tier.Superconductor); + WETWARE_MAINFRAME_UHV = addItem(338, "circuit.wetware_mainframe").setUnificationData(OrePrefix.circuit, MarkerMaterials.Tier.Infinite); + + TURBINE_ROTOR = addItem(339, "turbine_rotor").addComponents(new TurbineRotorBehavior()); + COVER_FACADE = addItem(340, "cover.facade").addComponents(new FacadeItem()).disableModelLoading(); + + FLUID_REGULATORS[0] = FLUID_REGULATOR_LV = addItem(341, "fluid.regulator.lv"); + FLUID_REGULATORS[1] = FLUID_REGULATOR_MV = addItem(342, "fluid.regulator.mv"); + FLUID_REGULATORS[2] = FLUID_REGULATOR_HV = addItem(343, "fluid.regulator.hv"); + FLUID_REGULATORS[3] = FLUID_REGULATOR_EV = addItem(344, "fluid.regulator.ev"); + FLUID_REGULATORS[4] = FLUID_REGULATOR_IV = addItem(345, "fluid.regulator.iv"); + FLUID_REGULATORS[5] = FLUID_REGULATOR_LUV = addItem(346, "fluid.regulator.luv"); + FLUID_REGULATORS[6] = FLUID_REGULATOR_ZPM = addItem(347, "fluid.regulator.zpm"); + FLUID_REGULATORS[7] = FLUID_REGULATOR_UV = addItem(348, "fluid.regulator.uv"); + + if (ConfigHolder.U.GT5u.enableZPMandUVBats) { + ENERGY_MODULE = addItem(349, "energy.module").addComponents(new IItemComponent[] { ElectricStats.createRechargeableBattery(10000000000L, GTValues.ZPM) }).setModelAmount(8); + ENERGY_CLUSTER = addItem(350, "energy.cluster").addComponents(new IItemComponent[] { ElectricStats.createRechargeableBattery(100000000000L, GTValues.UV) }).setModelAmount(8); + } + + if (ConfigHolder.U.GT5u.replaceUVwithMAXBat) { + MAX_BATTERY = addItem(351, "max.battery").addComponents(new IItemComponent[] { ElectricStats.createRechargeableBattery(Long.MAX_VALUE, GTValues.MAX) }).setModelAmount(8); + MetaItems.ZPM2.setInvisible(); + } + + NEURO_PROCESSOR = addItem(352, "processor.neuro"); + STEM_CELLS = addItem(353, "stem_cells"); + PETRI_DISH = addItem(354, "petri_dish"); + + CARBON_FIBERS = addItem(355, "carbon.fibers"); + CARBON_MESH = addItem(356, "carbon.mesh"); + CARBON_PLATE = addItem(357, "carbon.plate"); } public void registerRecipes() { @@ -477,52 +659,127 @@ public void registerRecipes() { .outputs(BATTERY_RE_HV_SODIUM.getStackForm()) .duration(1600).EUt(2) .buildAndRegister(); - } - @Override - public boolean isBeaconPayment(ItemStack stack) { - int damage = stack.getMetadata(); - if (damage >= this.metaItemOffset) { - return false; - } - Material material = Material.MATERIAL_REGISTRY.getObjectById(damage % 1000); - OrePrefix prefix = this.orePrefixes[(damage / 1000)]; - if(prefix != null && material != null) { - boolean isSolidState = prefix == OrePrefix.ingot || prefix == OrePrefix.gem; - boolean isMaterialTiered = material instanceof SolidMaterial && ((SolidMaterial) material).harvestLevel >= 2; - return isSolidState && isMaterialTiered; - } - return false; - } + // Dyes recipes + RecipeMaps.EXTRACTOR_RECIPES.recipeBuilder() + .inputs(new ItemStack(Blocks.RED_FLOWER, 1, 0)) + .outputs(new ItemStack(Items.DYE, 2, 1)) + .buildAndRegister(); - @Override - public boolean onEntityItemUpdate(EntityItem itemEntity) { - int damage = itemEntity.getItem().getMetadata(); - if (damage >= this.metaItemOffset || itemEntity.getEntityWorld().isRemote) - return false; - Material material = Material.MATERIAL_REGISTRY.getObjectById(damage % 1000); - OrePrefix prefix = this.orePrefixes[(damage / 1000)]; - if (!purifyMap.containsKey(prefix)) - return false; - BlockPos blockPos = new BlockPos(itemEntity); - IBlockState blockState = itemEntity.getEntityWorld().getBlockState(blockPos); - int waterLevel = blockState.getBlock() instanceof BlockCauldron ? - blockState.getValue(BlockCauldron.LEVEL) : 0; - if (waterLevel == 0) - return false; - itemEntity.getEntityWorld().setBlockState(blockPos, - blockState.withProperty(BlockCauldron.LEVEL, waterLevel - 1)); - ItemStack replacementStack = OreDictUnifier.get(purifyMap.get(prefix), material, - itemEntity.getItem().getCount()); - itemEntity.setItem(replacementStack); - return false; - } + RecipeMaps.EXTRACTOR_RECIPES.recipeBuilder() + .inputs(new ItemStack(Blocks.RED_FLOWER, 1, 1)) + .outputs(new ItemStack(Items.DYE, 2, 12)) + .buildAndRegister(); - @Override - protected void addMaterialTooltip(ItemStack itemStack, OrePrefix prefix, Material material, List lines, ITooltipFlag tooltipFlag) { - if (prefix == OrePrefix.dustImpure || prefix == OrePrefix.dustPure) { - lines.add(I18n.format("metaitem.dust.tooltip.purify")); - } + RecipeMaps.EXTRACTOR_RECIPES.recipeBuilder() + .inputs(new ItemStack(Blocks.RED_FLOWER, 1, 2)) + .outputs(new ItemStack(Items.DYE, 2, 13)) + .buildAndRegister(); + + RecipeMaps.EXTRACTOR_RECIPES.recipeBuilder() + .inputs(new ItemStack(Blocks.RED_FLOWER, 1, 3)) + .outputs(new ItemStack(Items.DYE, 2, 7)) + .buildAndRegister(); + + RecipeMaps.EXTRACTOR_RECIPES.recipeBuilder() + .inputs(new ItemStack(Blocks.RED_FLOWER, 1, 4)) + .outputs(new ItemStack(Items.DYE, 2, 1)) + .buildAndRegister(); + + RecipeMaps.EXTRACTOR_RECIPES.recipeBuilder() + .inputs(new ItemStack(Blocks.RED_FLOWER, 1, 5)) + .outputs(new ItemStack(Items.DYE, 2, 14)) + .buildAndRegister(); + + RecipeMaps.EXTRACTOR_RECIPES.recipeBuilder() + .inputs(new ItemStack(Blocks.RED_FLOWER, 1, 6)) + .outputs(new ItemStack(Items.DYE, 2, 7)) + .buildAndRegister(); + + RecipeMaps.EXTRACTOR_RECIPES.recipeBuilder() + .inputs(new ItemStack(Blocks.RED_FLOWER, 1, 7)) + .outputs(new ItemStack(Items.DYE, 2, 9)) + .buildAndRegister(); + + RecipeMaps.EXTRACTOR_RECIPES.recipeBuilder() + .inputs(new ItemStack(Blocks.RED_FLOWER, 1, 8)) + .outputs(new ItemStack(Items.DYE, 2, 7)) + .buildAndRegister(); + + RecipeMaps.EXTRACTOR_RECIPES.recipeBuilder() + .inputs(new ItemStack(Blocks.YELLOW_FLOWER, 1, 0)) + .outputs(new ItemStack(Items.DYE, 2, 11)) + .buildAndRegister(); + + RecipeMaps.EXTRACTOR_RECIPES.recipeBuilder() + .inputs(new ItemStack(Blocks.DOUBLE_PLANT, 1, 0)) + .outputs(new ItemStack(Items.DYE, 3, 11)) + .buildAndRegister(); + + RecipeMaps.EXTRACTOR_RECIPES.recipeBuilder() + .inputs(new ItemStack(Blocks.DOUBLE_PLANT, 1, 1)) + .outputs(new ItemStack(Items.DYE, 3, 13)) + .buildAndRegister(); + + RecipeMaps.EXTRACTOR_RECIPES.recipeBuilder() + .inputs(new ItemStack(Blocks.DOUBLE_PLANT, 1, 4)) + .outputs(new ItemStack(Items.DYE, 3, 1)) + .buildAndRegister(); + + RecipeMaps.EXTRACTOR_RECIPES.recipeBuilder() + .inputs(new ItemStack(Blocks.DOUBLE_PLANT, 1, 5)) + .outputs(new ItemStack(Items.DYE, 3, 9)) + .buildAndRegister(); + + RecipeMaps.EXTRACTOR_RECIPES.recipeBuilder() + .inputs(new ItemStack(Items.BEETROOT, 1)) + .outputs(new ItemStack(Items.DYE, 2, 1)) + .buildAndRegister(); + + // Misc + RecipeMaps.MACERATOR_RECIPES.recipeBuilder() + .inputs(new ItemStack(Items.DYE, 1, EnumDyeColor.BROWN.getDyeDamage())) + .outputs(OreDictUnifier.get(OrePrefix.dust, Materials.Cocoa, 1)) + .duration(400) + .EUt(2) + .buildAndRegister(); + + RecipeMaps.MACERATOR_RECIPES.recipeBuilder() + .inputs(new ItemStack(Items.REEDS, 1)) + .outputs(new ItemStack(Items.SUGAR, 1)) + .duration(400) + .EUt(2) + .buildAndRegister(); + + RecipeMaps.MACERATOR_RECIPES.recipeBuilder() + .inputs(new ItemStack(Blocks.MELON_BLOCK, 1, 0)) + .outputs(new ItemStack(Items.MELON, 8, 0)) + .chancedOutput(new ItemStack(Items.MELON_SEEDS, 1), 8000, 500) + .duration(400) + .EUt(2) + .buildAndRegister(); + + RecipeMaps.MACERATOR_RECIPES.recipeBuilder() + .inputs(new ItemStack(Blocks.PUMPKIN, 1, 0)) + .outputs(new ItemStack(Items.PUMPKIN_SEEDS, 4, 0)) + .duration(400) + .EUt(2) + .buildAndRegister(); + + RecipeMaps.MACERATOR_RECIPES.recipeBuilder() + .inputs(new ItemStack(Items.MELON, 1, 0)) + .outputs(new ItemStack(Items.MELON_SEEDS, 1, 0)) + .duration(400) + .EUt(2) + .buildAndRegister(); + + RecipeMaps.MACERATOR_RECIPES.recipeBuilder() + .inputs(CountableIngredient.from("blockWool", 1)) + .outputs(new ItemStack(Items.STRING, 3)) + .chancedOutput(new ItemStack(Items.STRING, 1), 2000, 800) + .duration(400) + .EUt(2) + .buildAndRegister(); } } diff --git a/src/main/java/gregtech/common/items/MetaItem2.java b/src/main/java/gregtech/common/items/MetaItem2.java deleted file mode 100644 index 8bd66297edb..00000000000 --- a/src/main/java/gregtech/common/items/MetaItem2.java +++ /dev/null @@ -1,368 +0,0 @@ -package gregtech.common.items; - -import gregtech.api.GTValues; -import gregtech.api.items.materialitem.MaterialMetaItem; -import gregtech.api.items.metaitem.ElectricStats; -import gregtech.api.items.metaitem.FoodStats; -import gregtech.api.items.metaitem.stats.IItemComponent; -import gregtech.api.items.metaitem.stats.IItemContainerItemProvider; -import gregtech.api.recipes.CountableIngredient; -import gregtech.api.recipes.RecipeMaps; -import gregtech.api.unification.OreDictUnifier; -import gregtech.api.unification.material.MarkerMaterials.Component; -import gregtech.api.unification.material.MarkerMaterials.Tier; -import gregtech.api.unification.material.Materials; -import gregtech.api.unification.ore.OrePrefix; -import gregtech.api.util.RandomPotionEffect; -import gregtech.common.ConfigHolder; -import gregtech.common.items.behaviors.FacadeItem; -import gregtech.common.items.behaviors.NanoSaberBehavior; -import gregtech.common.items.behaviors.ScannerBehavior; -import gregtech.common.items.behaviors.TurbineRotorBehavior; -import net.minecraft.init.Blocks; -import net.minecraft.init.Items; -import net.minecraft.init.MobEffects; -import net.minecraft.item.EnumDyeColor; -import net.minecraft.item.ItemStack; - -import static gregtech.api.util.DyeUtil.getOrdictColorName; -import static gregtech.common.items.MetaItems.*; - -public class MetaItem2 extends MaterialMetaItem { - - public MetaItem2() { - super(OrePrefix.toolHeadSword, OrePrefix.toolHeadPickaxe, OrePrefix.toolHeadShovel, OrePrefix.toolHeadAxe, - OrePrefix.toolHeadHoe, OrePrefix.toolHeadHammer, OrePrefix.toolHeadFile, OrePrefix.toolHeadSaw, - OrePrefix.toolHeadDrill, OrePrefix.toolHeadChainsaw, OrePrefix.toolHeadWrench, OrePrefix.toolHeadUniversalSpade, - OrePrefix.toolHeadSense, null, OrePrefix.toolHeadBuzzSaw, OrePrefix.turbineBlade, - OrePrefix.wireFine, OrePrefix.gearSmall, OrePrefix.rotor, OrePrefix.stickLong, OrePrefix.springSmall, OrePrefix.spring, - OrePrefix.gemChipped, OrePrefix.gemFlawed, OrePrefix.gemFlawless, OrePrefix.gemExquisite, OrePrefix.gear, - null, null, null, null, null); - } - - @Override - public void registerSubItems() { - GELLED_TOLUENE = addItem(10, "gelled_toluene"); - - IItemContainerItemProvider selfContainerItemProvider = itemStack -> itemStack; - WOODEN_FORM_EMPTY = addItem(11, "wooden_form.empty"); - WOODEN_FORM_BRICK = addItem(12, "wooden_form.brick").addComponents(selfContainerItemProvider); - - COMPRESSED_CLAY = addItem(13, "compressed.clay"); - COMPRESSED_FIRECLAY = addItem(14, "compressed.fireclay"); - FIRECLAY_BRICK = addItem(15, "brick.fireclay"); - COKE_OVEN_BRICK = addItem(16, "brick.coke"); - - SILICON_BOULE = addItem(20, "boule.silicon"); - GLOWSTONE_BOULE = addItem(21, "boule.glowstone"); - NAQUADAH_BOULE = addItem(22, "boule.naquadah"); - NEUTRONIUM_BOULE = addItem(23, "boule.neutronium"); - SILICON_WAFER = addItem(24, "wafer.silicon"); - GLOWSTONE_WAFER = addItem(25, "wafer.glowstone"); - NAQUADAH_WAFER = addItem(26, "wafer.naquadah"); - NEUTRONIUM_WAFER = addItem(27, "wafer.neutronium"); - - COATED_BOARD = addItem(30, "board.coated"); - PHENOLIC_BOARD = addItem(32, "board.phenolic"); - PLASTIC_BOARD = addItem(34, "board.plastic"); - EPOXY_BOARD = addItem(36, "board.epoxy"); - FIBER_BOARD = addItem(38, "board.fiber_reinforced"); - MULTILAYER_FIBER_BOARD = addItem(40, "board.multilayer.fiber_reinforced"); - WETWARE_BOARD = addItem(42, "board.wetware"); - - BASIC_CIRCUIT_BOARD = addItem(31, "circuit_board.basic"); - GOOD_CIRCUIT_BOARD = addItem(33, "circuit_board.good"); - PLASTIC_CIRCUIT_BOARD = addItem(35, "circuit_board.plastic"); - ADVANCED_CIRCUIT_BOARD = addItem(37, "circuit_board.advanced"); - EXTREME_CIRCUIT_BOARD = addItem(39, "circuit_board.extreme"); - ELITE_CIRCUIT_BOARD = addItem(41, "circuit_board.elite"); - WETWARE_CIRCUIT_BOARD = addItem(43, "circuit_board.wetware"); - - BOTTLE_PURPLE_DRINK = addItem(100, "bottle.purple.drink").addComponents(new FoodStats(8, 0.2F, true, true, new ItemStack(Items.GLASS_BOTTLE), new RandomPotionEffect(MobEffects.HASTE, 800, 1, 90))); - - ENERGY_CRYSTAL = addItem(212, "energy_crystal").addComponents(ElectricStats.createRechargeableBattery(4000000L, GTValues.HV)).setModelAmount(8).setMaxStackSize(1); - LAPOTRON_CRYSTAL = addItem(213, "lapotron_crystal").addComponents(ElectricStats.createRechargeableBattery(10000000L, GTValues.EV)).setModelAmount(8).setMaxStackSize(1); - - DYE_INDIGO = addItem(410, "dye.indigo").addOreDict("dyeBlue").setInvisible(); - for (int i = 0; i < EnumDyeColor.values().length; i++) { - EnumDyeColor dyeColor = EnumDyeColor.values()[i]; - DYE_ONLY_ITEMS[i] = addItem(414 + i, "dye." + dyeColor.getName()).addOreDict(getOrdictColorName(dyeColor)); - } - - PLANT_BALL = addItem(570, "plant_ball").setBurnValue(75); - BIO_CHAFF = addItem(571, "bio_chaff").setBurnValue(200); - ENERGIUM_DUST = addItem(572, "energium_dust"); - - POWER_UNIT_LV = addItem(573, "power_unit.lv").addComponents(ElectricStats.createElectricItem(100000L, GTValues.LV)).setMaxStackSize(8); - POWER_UNIT_MV = addItem(574, "power_unit.mv").addComponents(ElectricStats.createElectricItem(400000L, GTValues.MV)).setMaxStackSize(8); - POWER_UNIT_HV = addItem(575, "power_unit.hv") .addComponents(ElectricStats.createElectricItem(1600000L, GTValues.HV)).setMaxStackSize(8); - POWER_UNIT_EV = addItem(576, "power_unit.ev") .addComponents(ElectricStats.createElectricItem(6400000L, GTValues.EV)).setMaxStackSize(8); - POWER_UNIT_IV = addItem(577, "power_unit.iv") .addComponents(ElectricStats.createElectricItem(25600000L, GTValues.IV)).setMaxStackSize(8); - - - NANO_SABER = addItem(578, "nano_saber").addComponents(ElectricStats.createElectricItem(4000000L, GTValues.HV)).addComponents(new NanoSaberBehavior()).setMaxStackSize(1); - ENERGY_FIELD_PROJECTOR = addItem(579, "energy_field_projector").addComponents(ElectricStats.createElectricItem(16000000L, GTValues.EV)).setMaxStackSize(1); - SCANNER = addItem(580, "scanner").addComponents(ElectricStats.createElectricItem(200_000L, GTValues.LV), new ScannerBehavior(50)); - - - INGOT_MIXED_METAL = addItem(432, "ingot.mixed_metal"); - ADVANCED_ALLOY_PLATE = addItem(433, "plate.advanced_alloy"); - INGOT_IRIDIUM_ALLOY = addItem(434, "ingot.iridium_alloy"); - PLATE_IRIDIUM_ALLOY = addItem(435, "plate.iridium_alloy"); - NEUTRON_REFLECTOR = addItem(436, "neutron_reflector"); - - - VACUUM_TUBE = addItem(450, "circuit.vacuum_tube").setUnificationData(OrePrefix.circuit, Tier.Primitive); - GLASS_TUBE = addItem(452, "component.glass.tube"); - SMALL_COIL = addItem(453, "component.small_coil"); - TRANSISTOR = addItem(454, "component.transistor").setUnificationData(OrePrefix.component, Component.Transistor); - RESISTOR = addItem(455, "component.resistor").setUnificationData(OrePrefix.component, Component.Resistor); - CAPACITOR = addItem(456, "component.capacitor").setUnificationData(OrePrefix.component, Component.Capacitor); - DIODE = addItem(457, "component.diode").setUnificationData(OrePrefix.component, Component.Diode); - SMD_TRANSISTOR = addItem(458, "component.smd.transistor").setUnificationData(OrePrefix.component, Component.Transistor); - SMD_RESISTOR = addItem(459, "component.smd.resistor").setUnificationData(OrePrefix.component, Component.Resistor); - SMD_CAPACITOR = addItem(460, "component.smd.capacitor").setUnificationData(OrePrefix.component, Component.Capacitor); - SMD_DIODE = addItem(461, "component.smd.diode").setUnificationData(OrePrefix.component, Component.Diode); - ADVANCED_SMD_TRANSISTOR = addItem(462, "component.advanced_smd.transistor"); - ADVANCED_SMD_RESISTOR = addItem(463, "component.advanced_smd.resistor"); - ADVANCED_SMD_CAPACITOR = addItem(464, "component.advanced_smd.capacitor"); - ADVANCED_SMD_DIODE = addItem(465, "component.advanced_smd.diode"); - - HIGHLY_ADVANCED_SOC_WAFER = addItem(466, "wafer.highly_advanced_system_on_chip"); - ADVANCED_SYSTEM_ON_CHIP_WAFER = addItem(467, "wafer.advanced_system_on_chip"); - INTEGRATED_LOGIC_CIRCUIT_WAFER = addItem(468, "wafer.integrated_logic_circuit"); - CENTRAL_PROCESSING_UNIT_WAFER = addItem(469, "wafer.central_processing_unit"); - ULTRA_LOW_POWER_INTEGRATED_CIRCUIT_WAFER = addItem(470, "wafer.ultra_low_power_integrated_circuit"); - LOW_POWER_INTEGRATED_CIRCUIT_WAFER = addItem(471, "wafer.low_power_integrated_circuit"); - POWER_INTEGRATED_CIRCUIT_WAFER = addItem(472, "wafer.power_integrated_circuit"); - HIGH_POWER_INTEGRATED_CIRCUIT_WAFER = addItem(473, "wafer.high_power_integrated_circuit"); - NAND_MEMORY_CHIP_WAFER = addItem(474, "wafer.nand_memory_chip"); - NANO_CENTRAL_PROCESSING_UNIT_WAFER = addItem(475, "wafer.nano_central_processing_unit"); - NOR_MEMORY_CHIP_WAFER = addItem(476, "wafer.nor_memory_chip"); - QBIT_CENTRAL_PROCESSING_UNIT_WAFER = addItem(477, "wafer.qbit_central_processing_unit"); - RANDOM_ACCESS_MEMORY_WAFER = addItem(478, "wafer.random_access_memory"); - SYSTEM_ON_CHIP_WAFER = addItem(479, "wafer.system_on_chip"); - SIMPLE_SYSTEM_ON_CHIP_WAFER = addItem(480, "wafer.simple_system_on_chip"); - - RAW_CRYSTAL_CHIP = addItem(481, "crystal.raw"); - RAW_CRYSTAL_CHIP_PART = addItem(482, "crystal.raw_chip"); - ENGRAVED_CRYSTAL_CHIP = addItem(483, "engraved.crystal_chip"); - ENGRAVED_LAPOTRON_CHIP = addItem(484, "engraved.lapotron_chip"); - CRYSTAL_CENTRAL_PROCESSING_UNIT = addItem(485, "crystal.central_processing_unit"); - CRYSTAL_SYSTEM_ON_CHIP = addItem(486, "crystal.system_on_chip"); - HIGHLY_ADVANCED_SOC = addItem(487, "plate.highly_advanced_system_on_chip"); - ADVANCED_SYSTEM_ON_CHIP = addItem(488, "plate.advanced_system_on_chip"); - INTEGRATED_LOGIC_CIRCUIT = addItem(489, "plate.integrated_logic_circuit"); - CENTRAL_PROCESSING_UNIT = addItem(490, "plate.central_processing_unit"); - ULTRA_LOW_POWER_INTEGRATED_CIRCUIT = addItem(491, "plate.ultra_low_power_integrated_circuit"); - LOW_POWER_INTEGRATED_CIRCUIT = addItem(492, "plate.low_power_integrated_circuit"); - POWER_INTEGRATED_CIRCUIT = addItem(493, "plate.power_integrated_circuit"); - HIGH_POWER_INTEGRATED_CIRCUIT = addItem(494, "plate.high_power_integrated_circuit"); - NAND_MEMORY_CHIP = addItem(495, "plate.nand_memory_chip"); - NANO_CENTRAL_PROCESSING_UNIT = addItem(496, "plate.nano_central_processing_unit"); - NOR_MEMORY_CHIP = addItem(497, "plate.nor_memory_chip"); - QBIT_CENTRAL_PROCESSING_UNIT = addItem(498, "plate.qbit_central_processing_unit"); - RANDOM_ACCESS_MEMORY = addItem(499, "plate.random_access_memory"); - SYSTEM_ON_CHIP = addItem(500, "plate.system_on_chip"); - SIMPLE_SYSTEM_ON_CHIP = addItem(501, "plate.simple_system_on_chip"); - - - // CIRCUITS - - // T1: Electronic - ELECTRONIC_CIRCUIT_LV = addItem(502, "circuit.electronic").setUnificationData(OrePrefix.circuit, Tier.Basic); - ELECTRONIC_CIRCUIT_MV = addItem(503, "circuit.good_electronic").setUnificationData(OrePrefix.circuit, Tier.Good); - - // T2: Integrated - INTEGRATED_CIRCUIT_LV = addItem(504, "circuit.basic_integrated").setUnificationData(OrePrefix.circuit, Tier.Basic); - INTEGRATED_CIRCUIT_MV = addItem(505, "circuit.good_integrated").setUnificationData(OrePrefix.circuit, Tier.Good); - INTEGRATED_CIRCUIT_HV = addItem(506, "circuit.advanced_integrated").setUnificationData(OrePrefix.circuit, Tier.Advanced); - - // Misc Unlocks - NAND_CHIP_ULV = addItem(507, "circuit.nand_chip").setUnificationData(OrePrefix.circuit, Tier.Primitive); - MICROPROCESSOR_LV = addItem(508, "circuit.microprocessor").setUnificationData(OrePrefix.circuit, Tier.Basic); - - // T3: Processor - PROCESSOR_MV = addItem(509, "circuit.processor").setUnificationData(OrePrefix.circuit, Tier.Good); - PROCESSOR_ASSEMBLY_HV = addItem(510, "circuit.assembly").setUnificationData(OrePrefix.circuit, Tier.Advanced); - WORKSTATION_EV = addItem(511, "circuit.workstation").setUnificationData(OrePrefix.circuit, Tier.Extreme); - MAINFRAME_IV = addItem(512, "circuit.mainframe").setUnificationData(OrePrefix.circuit, Tier.Elite); - - // T4: Nano - NANO_PROCESSOR_HV = addItem(513, "circuit.nano_processor").setUnificationData(OrePrefix.circuit, Tier.Advanced); - NANO_PROCESSOR_ASSEMBLY_EV = addItem(514, "circuit.nano_assembly").setUnificationData(OrePrefix.circuit, Tier.Extreme); - NANO_COMPUTER_IV = addItem(515, "circuit.nano_computer").setUnificationData(OrePrefix.circuit, Tier.Elite); - NANO_MAINFRAME_LUV = addItem(516, "circuit.nano_mainframe").setUnificationData(OrePrefix.circuit, Tier.Master); - - // T5: Quantum - QUANTUM_PROCESSOR_EV = addItem(517, "circuit.quantum_processor").setUnificationData(OrePrefix.circuit, Tier.Extreme); - QUANTUM_ASSEMBLY_IV = addItem(518, "circuit.quantum_assembly").setUnificationData(OrePrefix.circuit, Tier.Elite); - QUANTUM_COMPUTER_LUV = addItem(519, "circuit.quantum_computer").setUnificationData(OrePrefix.circuit, Tier.Master); - QUANTUM_MAINFRAME_ZPM = addItem(520, "circuit.quantum_mainframe").setUnificationData(OrePrefix.circuit, Tier.Ultimate); - - // T6: Crystal - CRYSTAL_PROCESSOR_IV = addItem(521, "circuit.crystal_processor").setUnificationData(OrePrefix.circuit, Tier.Elite); - CRYSTAL_ASSEMBLY_LUV = addItem(522, "circuit.crystal_assembly").setUnificationData(OrePrefix.circuit, Tier.Master); - CRYSTAL_COMPUTER_ZPM = addItem(523, "circuit.crystal_computer").setUnificationData(OrePrefix.circuit, Tier.Ultimate); - CRYSTAL_MAINFRAME_UV = addItem(524, "circuit.crystal_mainframe").setUnificationData(OrePrefix.circuit, Tier.Superconductor); - - // T7: Wetware - WETWARE_PROCESSOR_LUV = addItem(525, "circuit.wetware_processor").setUnificationData(OrePrefix.circuit, Tier.Master); - WETWARE_PROCESSOR_ASSEMBLY_ZPM = addItem(526, "circuit.wetware_assembly").setUnificationData(OrePrefix.circuit, Tier.Ultimate); - WETWARE_SUPER_COMPUTER_UV = addItem(527, "circuit.wetware_computer").setUnificationData(OrePrefix.circuit, Tier.Superconductor); - WETWARE_MAINFRAME_UHV = addItem(528, "circuit.wetware_mainframe").setUnificationData(OrePrefix.circuit, Tier.Infinite); - - TURBINE_ROTOR = addItem(529, "turbine_rotor").addComponents(new TurbineRotorBehavior()); - COVER_FACADE = addItem(530, "cover.facade").addComponents(new FacadeItem()).disableModelLoading(); - - FLUID_REGULATORS[0] = FLUID_REGULATOR_LV = addItem(700, "fluid.regulator.lv"); - FLUID_REGULATORS[1] = FLUID_REGULATOR_MV = addItem(701, "fluid.regulator.mv"); - FLUID_REGULATORS[2] = FLUID_REGULATOR_HV = addItem(702, "fluid.regulator.hv"); - FLUID_REGULATORS[3] = FLUID_REGULATOR_EV = addItem(703, "fluid.regulator.ev"); - FLUID_REGULATORS[4] = FLUID_REGULATOR_IV = addItem(704, "fluid.regulator.iv"); - FLUID_REGULATORS[5] = FLUID_REGULATOR_LUV = addItem(705, "fluid.regulator.luv"); - FLUID_REGULATORS[6] = FLUID_REGULATOR_ZPM = addItem(706, "fluid.regulator.zpm"); - FLUID_REGULATORS[7] = FLUID_REGULATOR_UV = addItem(707, "fluid.regulator.uv"); - - if (ConfigHolder.U.GT5u.enableZPMandUVBats) { - ENERGY_MODULE = addItem(531, "energy.module").addComponents(new IItemComponent[] { ElectricStats.createRechargeableBattery(10000000000L, GTValues.ZPM) }).setModelAmount(8); - ENERGY_CLUSTER = addItem(532, "energy.cluster").addComponents(new IItemComponent[] { ElectricStats.createRechargeableBattery(100000000000L, GTValues.UV) }).setModelAmount(8); - } - - if (ConfigHolder.U.GT5u.replaceUVwithMAXBat) { - MAX_BATTERY = addItem(533, "max.battery").addComponents(new IItemComponent[] { ElectricStats.createRechargeableBattery(Long.MAX_VALUE, GTValues.MAX) }).setModelAmount(8); - MetaItems.ZPM2.setInvisible(); - } - - NEURO_PROCESSOR = addItem(534, "processor.neuro"); - STEM_CELLS = addItem(535, "stem_cells"); - PETRI_DISH = addItem(536, "petri_dish"); - - CARBON_FIBERS = addItem(537, "carbon.fibers"); - CARBON_MESH = addItem(538, "carbon.mesh"); - CARBON_PLATE = addItem(539, "carbon.plate"); - } - - public void registerRecipes() { - // Dyes recipes - RecipeMaps.EXTRACTOR_RECIPES.recipeBuilder() - .inputs(new ItemStack(Blocks.RED_FLOWER, 1, 0)) - .outputs(new ItemStack(Items.DYE, 2, 1)) - .buildAndRegister(); - - RecipeMaps.EXTRACTOR_RECIPES.recipeBuilder() - .inputs(new ItemStack(Blocks.RED_FLOWER, 1, 1)) - .outputs(new ItemStack(Items.DYE, 2, 12)) - .buildAndRegister(); - - RecipeMaps.EXTRACTOR_RECIPES.recipeBuilder() - .inputs(new ItemStack(Blocks.RED_FLOWER, 1, 2)) - .outputs(new ItemStack(Items.DYE, 2, 13)) - .buildAndRegister(); - - RecipeMaps.EXTRACTOR_RECIPES.recipeBuilder() - .inputs(new ItemStack(Blocks.RED_FLOWER, 1, 3)) - .outputs(new ItemStack(Items.DYE, 2, 7)) - .buildAndRegister(); - - RecipeMaps.EXTRACTOR_RECIPES.recipeBuilder() - .inputs(new ItemStack(Blocks.RED_FLOWER, 1, 4)) - .outputs(new ItemStack(Items.DYE, 2, 1)) - .buildAndRegister(); - - RecipeMaps.EXTRACTOR_RECIPES.recipeBuilder() - .inputs(new ItemStack(Blocks.RED_FLOWER, 1, 5)) - .outputs(new ItemStack(Items.DYE, 2, 14)) - .buildAndRegister(); - - RecipeMaps.EXTRACTOR_RECIPES.recipeBuilder() - .inputs(new ItemStack(Blocks.RED_FLOWER, 1, 6)) - .outputs(new ItemStack(Items.DYE, 2, 7)) - .buildAndRegister(); - - RecipeMaps.EXTRACTOR_RECIPES.recipeBuilder() - .inputs(new ItemStack(Blocks.RED_FLOWER, 1, 7)) - .outputs(new ItemStack(Items.DYE, 2, 9)) - .buildAndRegister(); - - RecipeMaps.EXTRACTOR_RECIPES.recipeBuilder() - .inputs(new ItemStack(Blocks.RED_FLOWER, 1, 8)) - .outputs(new ItemStack(Items.DYE, 2, 7)) - .buildAndRegister(); - - RecipeMaps.EXTRACTOR_RECIPES.recipeBuilder() - .inputs(new ItemStack(Blocks.YELLOW_FLOWER, 1, 0)) - .outputs(new ItemStack(Items.DYE, 2, 11)) - .buildAndRegister(); - - RecipeMaps.EXTRACTOR_RECIPES.recipeBuilder() - .inputs(new ItemStack(Blocks.DOUBLE_PLANT, 1, 0)) - .outputs(new ItemStack(Items.DYE, 3, 11)) - .buildAndRegister(); - - RecipeMaps.EXTRACTOR_RECIPES.recipeBuilder() - .inputs(new ItemStack(Blocks.DOUBLE_PLANT, 1, 1)) - .outputs(new ItemStack(Items.DYE, 3, 13)) - .buildAndRegister(); - - RecipeMaps.EXTRACTOR_RECIPES.recipeBuilder() - .inputs(new ItemStack(Blocks.DOUBLE_PLANT, 1, 4)) - .outputs(new ItemStack(Items.DYE, 3, 1)) - .buildAndRegister(); - - RecipeMaps.EXTRACTOR_RECIPES.recipeBuilder() - .inputs(new ItemStack(Blocks.DOUBLE_PLANT, 1, 5)) - .outputs(new ItemStack(Items.DYE, 3, 9)) - .buildAndRegister(); - - RecipeMaps.EXTRACTOR_RECIPES.recipeBuilder() - .inputs(new ItemStack(Items.BEETROOT, 1)) - .outputs(new ItemStack(Items.DYE, 2, 1)) - .buildAndRegister(); - - // Misc - RecipeMaps.MACERATOR_RECIPES.recipeBuilder() - .inputs(new ItemStack(Items.DYE, 1, EnumDyeColor.BROWN.getDyeDamage())) - .outputs(OreDictUnifier.get(OrePrefix.dust, Materials.Cocoa, 1)) - .duration(400) - .EUt(2) - .buildAndRegister(); - - RecipeMaps.MACERATOR_RECIPES.recipeBuilder() - .inputs(new ItemStack(Items.REEDS, 1)) - .outputs(new ItemStack(Items.SUGAR, 1)) - .duration(400) - .EUt(2) - .buildAndRegister(); - - RecipeMaps.MACERATOR_RECIPES.recipeBuilder() - .inputs(new ItemStack(Blocks.MELON_BLOCK, 1, 0)) - .outputs(new ItemStack(Items.MELON, 8, 0)) - .chancedOutput(new ItemStack(Items.MELON_SEEDS, 1), 8000, 500) - .duration(400) - .EUt(2) - .buildAndRegister(); - - RecipeMaps.MACERATOR_RECIPES.recipeBuilder() - .inputs(new ItemStack(Blocks.PUMPKIN, 1, 0)) - .outputs(new ItemStack(Items.PUMPKIN_SEEDS, 4, 0)) - .duration(400) - .EUt(2) - .buildAndRegister(); - - RecipeMaps.MACERATOR_RECIPES.recipeBuilder() - .inputs(new ItemStack(Items.MELON, 1, 0)) - .outputs(new ItemStack(Items.MELON_SEEDS, 1, 0)) - .duration(400) - .EUt(2) - .buildAndRegister(); - - RecipeMaps.MACERATOR_RECIPES.recipeBuilder() - .inputs(CountableIngredient.from("blockWool", 1)) - .outputs(new ItemStack(Items.STRING, 3)) - .chancedOutput(new ItemStack(Items.STRING, 1), 2000, 800) - .duration(400) - .EUt(2) - .buildAndRegister(); - } -} diff --git a/src/main/java/gregtech/common/items/MetaItems.java b/src/main/java/gregtech/common/items/MetaItems.java index 188681390b2..28ee3f11013 100644 --- a/src/main/java/gregtech/common/items/MetaItems.java +++ b/src/main/java/gregtech/common/items/MetaItems.java @@ -1,10 +1,11 @@ package gregtech.common.items; -import gregtech.api.items.materialitem.DustMetaItem; -import gregtech.api.items.materialitem.MaterialMetaItem; +import com.google.common.base.CaseFormat; +import gregtech.api.items.materialitem.MetaPrefixItem; import gregtech.api.items.metaitem.MetaItem; import gregtech.api.items.metaitem.MetaItem.MetaValueItem; import gregtech.api.items.toolitem.ToolMetaItem; +import gregtech.api.unification.ore.OrePrefix; import gregtech.api.util.GTLog; import gregtech.common.render.FacadeItemModel; import net.minecraft.client.renderer.block.model.IBakedModel; @@ -17,9 +18,9 @@ import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; +import java.util.ArrayList; import java.util.List; -@SuppressWarnings("WeakerAccess") public final class MetaItems { private MetaItems() { @@ -467,23 +468,75 @@ private MetaItems() { public static MetaItem.MetaValueItem BIO_CHAFF; + private static final List orePrefixes = new ArrayList() {{ + add(OrePrefix.dust); + add(OrePrefix.dustSmall); + add(OrePrefix.dustTiny); + add(OrePrefix.dustImpure); + add(OrePrefix.dustPure); + add(OrePrefix.crushed); + add(OrePrefix.crushedPurified); + add(OrePrefix.crushedCentrifuged); + add(OrePrefix.gem); + add(OrePrefix.gemChipped); + add(OrePrefix.gemFlawed); + add(OrePrefix.gemFlawless); + add(OrePrefix.gemExquisite); + add(OrePrefix.ingot); + add(OrePrefix.ingotHot); + add(OrePrefix.plate); + add(OrePrefix.plateCurved); + add(OrePrefix.plateDouble); + add(OrePrefix.plateDense); + add(OrePrefix.foil); + add(OrePrefix.stick); + add(OrePrefix.stickLong); + add(OrePrefix.bolt); + add(OrePrefix.screw); + add(OrePrefix.ring); + add(OrePrefix.nugget); + add(OrePrefix.round); + add(OrePrefix.spring); + add(OrePrefix.springSmall); + add(OrePrefix.gear); + add(OrePrefix.gearSmall); + add(OrePrefix.wireFine); + add(OrePrefix.rotor); + add(OrePrefix.lens); + add(OrePrefix.oreChunk); + add(OrePrefix.turbineBlade); + add(OrePrefix.toolHeadSword); + add(OrePrefix.toolHeadPickaxe); + add(OrePrefix.toolHeadShovel); + add(OrePrefix.toolHeadAxe); + add(OrePrefix.toolHeadHoe); + add(OrePrefix.toolHeadHammer); + add(OrePrefix.toolHeadFile); + add(OrePrefix.toolHeadSaw); + add(OrePrefix.toolHeadDrill); + add(OrePrefix.toolHeadChainsaw); + add(OrePrefix.toolHeadWrench); + add(OrePrefix.toolHeadUniversalSpade); + add(OrePrefix.toolHeadSense); + add(OrePrefix.toolHeadBuzzSaw); + }}; + public static void init() { MetaItem1 first = new MetaItem1(); first.setRegistryName("meta_item_1"); - MetaItem2 second = new MetaItem2(); - second.setRegistryName("meta_item_2"); - DustMetaItem dustItem = new DustMetaItem(); - dustItem.setRegistryName("meta_item_3"); MetaTool tool = new MetaTool(); tool.setRegistryName("meta_tool"); + for (OrePrefix prefix : orePrefixes) { + String regName = CaseFormat.UPPER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, prefix.name()); + MetaPrefixItem metaOrePrefix = new MetaPrefixItem(prefix); + metaOrePrefix.setRegistryName(String.format("meta_%s", regName)); + } } public static void registerOreDict() { for (MetaItem item : ITEMS) { - if (item instanceof MaterialMetaItem) { - ((MaterialMetaItem) item).registerOreDict(); - } else if (item instanceof DustMetaItem) { - ((DustMetaItem) item).registerOreDict(); + if (item instanceof MetaPrefixItem) { + ((MetaPrefixItem) item).registerOreDict(); } } } @@ -492,8 +545,6 @@ public static void registerRecipes() { for (MetaItem item : ITEMS) { if (item instanceof MetaItem1) ((MetaItem1) item).registerRecipes(); - if (item instanceof MetaItem2) - ((MetaItem2) item).registerRecipes(); if (item instanceof MetaTool) ((MetaTool) item).registerRecipes(); } @@ -522,7 +573,7 @@ public static void registerBakedModels(ModelBakeEvent event) { } @SideOnly(Side.CLIENT) - @SuppressWarnings("unchecked") + @SuppressWarnings({"unchecked", "rawtypes"}) private static void registerSpecialItemModel(ModelBakeEvent event, MetaValueItem metaValueItem, IBakedModel bakedModel) { //god these casts when intellij says you're fine but compiler complains about shit boundaries //noinspection RedundantCast @@ -530,4 +581,8 @@ private static void registerSpecialItemModel(ModelBakeEvent event, MetaValueItem ModelResourceLocation modelResourceLocation = new ModelResourceLocation(modelPath, "inventory"); event.getModelRegistry().putObject(modelResourceLocation, bakedModel); } + + private static void addOrePrefix(OrePrefix orePrefix) { + orePrefixes.add(orePrefix); + } } diff --git a/src/main/java/gregtech/common/metatileentities/multi/electric/generator/LargeTurbineWorkableHandler.java b/src/main/java/gregtech/common/metatileentities/multi/electric/generator/LargeTurbineWorkableHandler.java index efe39758a3e..d49527693eb 100755 --- a/src/main/java/gregtech/common/metatileentities/multi/electric/generator/LargeTurbineWorkableHandler.java +++ b/src/main/java/gregtech/common/metatileentities/multi/electric/generator/LargeTurbineWorkableHandler.java @@ -5,10 +5,8 @@ import gregtech.api.capability.impl.FuelRecipeLogic; import gregtech.api.recipes.machines.FuelRecipeMap; import gregtech.api.recipes.recipes.FuelRecipe; -import gregtech.api.unification.material.IMaterial; import gregtech.api.unification.material.Materials; import gregtech.api.unification.material.type.FluidMaterial; -import gregtech.api.unification.material.type.SimpleFluidMaterial; import gregtech.common.ConfigHolder; import gregtech.common.MetaFluids; import gregtech.common.metatileentities.electric.multiblockpart.MetaTileEntityRotorHolder; @@ -16,7 +14,6 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.math.MathHelper; import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.IFluidTank; import java.util.function.Supplier; @@ -98,7 +95,7 @@ private void addOutputFluids(FuelRecipe currentRecipe, int fuelAmountUsed) { largeTurbine.exportFluidHandler.fill(waterStack, true); } } else if (largeTurbine.turbineType == TurbineType.PLASMA) { - IMaterial material = MetaFluids.getIMaterialFromFluid(currentRecipe.getRecipeFluid().getFluid()); + FluidMaterial material = MetaFluids.getMaterialFromFluid(currentRecipe.getRecipeFluid().getFluid()); if (material != null) { largeTurbine.exportFluidHandler.fill(material.getFluid(fuelAmountUsed), true); } diff --git a/src/main/java/gregtech/common/pipelike/cable/BlockCable.java b/src/main/java/gregtech/common/pipelike/cable/BlockCable.java index dcf7061f039..84cc7d8ec94 100644 --- a/src/main/java/gregtech/common/pipelike/cable/BlockCable.java +++ b/src/main/java/gregtech/common/pipelike/cable/BlockCable.java @@ -10,6 +10,7 @@ import gregtech.api.pipenet.tile.IPipeTile; import gregtech.api.pipenet.tile.TileEntityPipeBase; import gregtech.api.unification.material.type.Material; +import gregtech.api.unification.ore.OrePrefix; import gregtech.api.util.GTUtility; import gregtech.common.ConfigHolder; import gregtech.common.pipelike.cable.net.EnergyNet; @@ -37,6 +38,7 @@ import net.minecraftforge.fml.relauncher.SideOnly; import org.apache.commons.lang3.tuple.Pair; +import javax.annotation.Nonnull; import java.util.Collection; import java.util.Collections; import java.util.Map; @@ -46,7 +48,8 @@ public class BlockCable extends BlockMaterialPipe enabledMaterials = new TreeMap<>(); - public BlockCable() { + public BlockCable(Insulation cableType) { + super(cableType); setHarvestLevel("cutter", 1); } @@ -54,7 +57,9 @@ public void addCableMaterial(Material material, WireProperties wireProperties) { Preconditions.checkNotNull(material, "material"); Preconditions.checkNotNull(wireProperties, "wireProperties"); Preconditions.checkArgument(Material.MATERIAL_REGISTRY.getNameForObject(material) != null, "material is not registered"); - this.enabledMaterials.put(material, wireProperties); + if (!pipeType.orePrefix.isIgnored(material)) { + this.enabledMaterials.put(material, wireProperties); + } } public Collection getEnabledMaterials() { @@ -84,9 +89,7 @@ public WorldENet getWorldPipeNet(World world) { @Override public void getSubBlocks(CreativeTabs itemIn, NonNullList items) { for (Material material : enabledMaterials.keySet()) { - for (Insulation insulation : Insulation.values()) { - items.add(getItem(insulation, material)); - } + items.add(getItem(material)); } } @@ -125,7 +128,7 @@ public int onPipeToolUsed(ItemStack stack, EnumFacing coverSide, IPipeTile enabledMaterials = new TreeMap<>(); - public BlockFluidPipe() { - setHarvestLevel("pickaxe", 1); + public BlockFluidPipe(FluidPipeType pipeType) { + super(pipeType); + setHarvestLevel("wrench", 1); } public void addPipeMaterial(Material material, FluidPipeProperties fluidPipeProperties) { @@ -81,7 +83,7 @@ public void getSubBlocks(CreativeTabs itemIn, NonNullList items) { for (Material material : enabledMaterials.keySet()) { for (FluidPipeType fluidPipeType : FluidPipeType.values()) { if (!fluidPipeType.getOrePrefix().isIgnored(material)) { - items.add(getItem(fluidPipeType, material)); + items.add(getItem(material)); } } } diff --git a/src/main/java/gregtech/common/pipelike/fluidpipe/FluidPipeType.java b/src/main/java/gregtech/common/pipelike/fluidpipe/FluidPipeType.java index 73f2052c490..e4f0ad15963 100644 --- a/src/main/java/gregtech/common/pipelike/fluidpipe/FluidPipeType.java +++ b/src/main/java/gregtech/common/pipelike/fluidpipe/FluidPipeType.java @@ -7,7 +7,7 @@ public enum FluidPipeType implements IMaterialPipeType { TINY_OPAQUE("tiny", 0.25f, 1, OrePrefix.pipeTiny, true), SMALL_OPAQUE("small", 0.375f, 2, OrePrefix.pipeSmall, true), - MEDIUM_OPAQUE("medium", 0.5f, 6, OrePrefix.pipeMedium, true), + MEDIUM_OPAQUE("normal", 0.5f, 6, OrePrefix.pipeNormal, true), LARGE_OPAQUE("large", 0.75f, 12, OrePrefix.pipeLarge, true), HUGE_OPAQUE("huge", 0.875f, 24, OrePrefix.pipeHuge, true); diff --git a/src/main/java/gregtech/loaders/dungeon/ChestGenHooks.java b/src/main/java/gregtech/loaders/dungeon/ChestGenHooks.java index d7c58b90a93..b046d02a7aa 100644 --- a/src/main/java/gregtech/loaders/dungeon/ChestGenHooks.java +++ b/src/main/java/gregtech/loaders/dungeon/ChestGenHooks.java @@ -1,6 +1,7 @@ package gregtech.loaders.dungeon; import com.google.common.collect.Lists; +import gregtech.api.util.GTLog; import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; import net.minecraft.world.storage.loot.LootContext; @@ -40,7 +41,12 @@ public void onWorldLoad(LootTableLoadEvent event) { if (mainPool != null && lootEntryItems.containsKey(event.getName())) { ArrayList entryItems = lootEntryItems.get(event.getName()); for (LootEntryItem entry : entryItems) { - mainPool.addEntry(entry); + try { + GTLog.logger.info("adding " + entry.getEntryName() + " to lootTable"); + mainPool.addEntry(entry); + } catch (java.lang.RuntimeException e) { + GTLog.logger.error("Couldn't add " + entry.getEntryName() + " to lootTable"); + } } } if (mainPool != null && rollVals.containsKey(event.getName())) { diff --git a/src/main/java/gregtech/loaders/oreprocessing/DecompositionRecipeHandler.java b/src/main/java/gregtech/loaders/oreprocessing/DecompositionRecipeHandler.java index 36314902cdc..0e9ba2eba85 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/DecompositionRecipeHandler.java +++ b/src/main/java/gregtech/loaders/oreprocessing/DecompositionRecipeHandler.java @@ -3,9 +3,11 @@ import gregtech.api.recipes.RecipeBuilder; import gregtech.api.recipes.RecipeMaps; import gregtech.api.unification.OreDictUnifier; -import gregtech.api.unification.material.IMaterial; import gregtech.api.unification.material.Materials; -import gregtech.api.unification.material.type.*; +import gregtech.api.unification.material.type.DustMaterial; +import gregtech.api.unification.material.type.FluidMaterial; +import gregtech.api.unification.material.type.Material; +import gregtech.api.unification.material.type.SimpleFluidMaterial; import gregtech.api.unification.ore.OrePrefix; import gregtech.api.unification.stack.MaterialStack; import net.minecraft.item.ItemStack; @@ -24,18 +26,15 @@ public static void runRecipeGeneration() { for (Material material : Material.MATERIAL_REGISTRY) { if (material instanceof FluidMaterial) { OrePrefix prefix = material instanceof DustMaterial ? OrePrefix.dust : null; - processDecomposition(prefix, material); + processDecomposition(prefix, (FluidMaterial) material); } } - for (SimpleDustMaterial material : SimpleDustMaterial.MATERIAL_REGISTRY) { - processDecomposition(OrePrefix.dust, material); - } for (SimpleFluidMaterial material : SimpleFluidMaterial.MATERIAL_REGISTRY) { processDecomposition(null, material); } } - private static void processDecomposition(OrePrefix decomposePrefix, IMaterial material) { + private static void processDecomposition(OrePrefix decomposePrefix, FluidMaterial material) { if (material.getMaterialComponents().isEmpty() || (!material.hasFlag(Material.MatFlags.DECOMPOSITION_BY_ELECTROLYZING) && !material.hasFlag(Material.MatFlags.DECOMPOSITION_BY_CENTRIFUGING)) || @@ -140,7 +139,7 @@ private static int getSmallestMaterialAmount(List materialAmounts) { } //todo think something better with this - private static int getElectrolyzingVoltage(List> components) { + private static int getElectrolyzingVoltage(List components) { //tungsten-containing materials electrolyzing requires 1920 if (components.contains(Materials.Tungsten)) return 1920; //EV voltage (tungstate and scheelite electrolyzing) diff --git a/src/main/java/gregtech/loaders/oreprocessing/MaterialRecipeHandler.java b/src/main/java/gregtech/loaders/oreprocessing/MaterialRecipeHandler.java index 3e8b3f1c518..25c163814e3 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/MaterialRecipeHandler.java +++ b/src/main/java/gregtech/loaders/oreprocessing/MaterialRecipeHandler.java @@ -6,7 +6,6 @@ import gregtech.api.recipes.builders.BlastRecipeBuilder; import gregtech.api.recipes.ingredients.IntCircuitIngredient; import gregtech.api.unification.OreDictUnifier; -import gregtech.api.unification.material.IMaterial; import gregtech.api.unification.material.Materials; import gregtech.api.unification.material.type.*; import gregtech.api.unification.material.type.DustMaterial.MatFlags; @@ -44,9 +43,6 @@ public static void register() { OrePrefix.dust.addProcessingHandler(DustMaterial.class, MaterialRecipeHandler::processDust); OrePrefix.dustSmall.addProcessingHandler(DustMaterial.class, MaterialRecipeHandler::processSmallDust); OrePrefix.dustTiny.addProcessingHandler(DustMaterial.class, MaterialRecipeHandler::processTinyDust); - OrePrefix.dust.addProcessingHandler(SimpleDustMaterial.class, MaterialRecipeHandler::processDust); - OrePrefix.dustSmall.addProcessingHandler(SimpleDustMaterial.class, MaterialRecipeHandler::processSmallDust); - OrePrefix.dustTiny.addProcessingHandler(SimpleDustMaterial.class, MaterialRecipeHandler::processTinyDust); for (OrePrefix orePrefix : GEM_ORDER) { orePrefix.addProcessingHandler(GemMaterial.class, MaterialRecipeHandler::processGem); @@ -59,7 +55,7 @@ public static void setMaterialRequiresCircuit(IngotMaterial material) { circuitRequiringMaterials.add(material); } - public static void processDust(OrePrefix dustPrefix, IMaterial mat) { + public static void processDust(OrePrefix dustPrefix, DustMaterial mat) { if (mat instanceof GemMaterial) { GemMaterial material = (GemMaterial) mat; ItemStack gemStack = OreDictUnifier.get(OrePrefix.gem, material); @@ -132,7 +128,7 @@ public static void processDust(OrePrefix dustPrefix, IMaterial mat) { } } - public static void processSmallDust(OrePrefix orePrefix, IMaterial material) { + public static void processSmallDust(OrePrefix orePrefix, DustMaterial material) { ItemStack smallDustStack = OreDictUnifier.get(orePrefix, material); ItemStack dustStack = OreDictUnifier.get(OrePrefix.dust, material); @@ -152,7 +148,7 @@ public static void processSmallDust(OrePrefix orePrefix, IMaterial material) .buildAndRegister(); } - public static void processTinyDust(OrePrefix orePrefix, IMaterial material) { + public static void processTinyDust(OrePrefix orePrefix, DustMaterial material) { ItemStack tinyDustStack = OreDictUnifier.get(orePrefix, material); ItemStack dustStack = OreDictUnifier.get(OrePrefix.dust, material); diff --git a/src/main/java/gregtech/loaders/oreprocessing/PipeRecipeHandler.java b/src/main/java/gregtech/loaders/oreprocessing/PipeRecipeHandler.java index 730f96546ca..e064560108f 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/PipeRecipeHandler.java +++ b/src/main/java/gregtech/loaders/oreprocessing/PipeRecipeHandler.java @@ -3,7 +3,6 @@ import gregtech.api.recipes.ModHandler; import gregtech.api.recipes.RecipeMaps; import gregtech.api.unification.OreDictUnifier; -import gregtech.api.unification.material.Materials; import gregtech.api.unification.material.type.IngotMaterial; import gregtech.api.unification.material.type.Material; import gregtech.api.unification.ore.OrePrefix; @@ -17,7 +16,7 @@ public class PipeRecipeHandler { public static void register() { OrePrefix.pipeTiny.addProcessingHandler(IngotMaterial.class, PipeRecipeHandler::processPipeTiny); OrePrefix.pipeSmall.addProcessingHandler(IngotMaterial.class, PipeRecipeHandler::processPipeSmall); - OrePrefix.pipeMedium.addProcessingHandler(IngotMaterial.class, PipeRecipeHandler::processPipeNormal); + OrePrefix.pipeNormal.addProcessingHandler(IngotMaterial.class, PipeRecipeHandler::processPipeNormal); OrePrefix.pipeLarge.addProcessingHandler(IngotMaterial.class, PipeRecipeHandler::processPipeLarge); OrePrefix.pipeHuge.addProcessingHandler(IngotMaterial.class, PipeRecipeHandler::processPipeHuge); } diff --git a/src/main/java/gregtech/loaders/recipe/AssemblyLineLoader.java b/src/main/java/gregtech/loaders/recipe/AssemblyLineLoader.java index ff3dcbe0866..c9210701efe 100644 --- a/src/main/java/gregtech/loaders/recipe/AssemblyLineLoader.java +++ b/src/main/java/gregtech/loaders/recipe/AssemblyLineLoader.java @@ -63,7 +63,7 @@ public static void init() { RecipeMaps.ASSEMBLY_LINE_RECIPES.recipeBuilder().inputs(OreDictUnifier.get(OrePrefix.block, Materials.NeodymiumMagnetic, 1), OreDictUnifier.get(OrePrefix.stickLong, Materials.Neutronium, 4), OreDictUnifier.get(OrePrefix.ring, Materials.Neutronium, 4), OreDictUnifier.get(OrePrefix.round, Materials.Neutronium, 16), OreDictUnifier.get(OrePrefix.wireGtSingle, MarkerMaterials.Tier.Superconductor, 64), OreDictUnifier.get(OrePrefix.wireGtSingle, MarkerMaterials.Tier.Superconductor, 64), OreDictUnifier.get(OrePrefix.wireGtSingle, MarkerMaterials.Tier.Superconductor, 64), OreDictUnifier.get(OrePrefix.wireGtSingle, MarkerMaterials.Tier.Superconductor, 64), OreDictUnifier.get(OrePrefix.cableGtQuadruple, Materials.NiobiumTitanium, 2)).fluidInputs(Materials.SolderingAlloy.getFluid(1296), Materials.Lubricant.getFluid(2000)).outputs(MetaItems.ELECTRIC_MOTOR_UV.getStackForm()).duration(600).EUt(163840).buildAndRegister(); RecipeMaps.ASSEMBLY_LINE_RECIPES.recipeBuilder().inputs(MetaItems.ELECTRIC_MOTOR_LUV.getStackForm(), OreDictUnifier.get(OrePrefix.plate, Materials.HSSG, 2), OreDictUnifier.get(OrePrefix.pipeSmall, Materials.Ultimet, 2), OreDictUnifier.get(OrePrefix.screw, Materials.HSSG, 8), OreDictUnifier.get(OrePrefix.ring, Materials.SiliconeRubber, 4), OreDictUnifier.get(OrePrefix.rotor, Materials.HSSG, 2), OreDictUnifier.get(OrePrefix.cableGtSingle, Materials.YttriumBariumCuprate, 2)).fluidInputs(Materials.SolderingAlloy.getFluid(144), Materials.Lubricant.getFluid(250)).outputs(MetaItems.ELECTRIC_PUMP_LUV.getStackForm()).duration(600).EUt(15360).buildAndRegister(); - RecipeMaps.ASSEMBLY_LINE_RECIPES.recipeBuilder().inputs(MetaItems.ELECTRIC_MOTOR_ZPM.getStackForm(), OreDictUnifier.get(OrePrefix.plate, Materials.HSSE, 2), OreDictUnifier.get(OrePrefix.pipeMedium, Materials.Ultimet, 2), OreDictUnifier.get(OrePrefix.screw, Materials.HSSE, 8), OreDictUnifier.get(OrePrefix.ring, Materials.SiliconeRubber, 16), OreDictUnifier.get(OrePrefix.rotor, Materials.HSSE, 2), OreDictUnifier.get(OrePrefix.cableGtDouble, Materials.VanadiumGallium, 2)).fluidInputs(Materials.SolderingAlloy.getFluid(288), Materials.Lubricant.getFluid(750)).outputs(MetaItems.ELECTRIC_PUMP_ZPM.getStackForm()).duration(600).EUt(61440).buildAndRegister(); + RecipeMaps.ASSEMBLY_LINE_RECIPES.recipeBuilder().inputs(MetaItems.ELECTRIC_MOTOR_ZPM.getStackForm(), OreDictUnifier.get(OrePrefix.plate, Materials.HSSE, 2), OreDictUnifier.get(OrePrefix.pipeNormal, Materials.Ultimet, 2), OreDictUnifier.get(OrePrefix.screw, Materials.HSSE, 8), OreDictUnifier.get(OrePrefix.ring, Materials.SiliconeRubber, 16), OreDictUnifier.get(OrePrefix.rotor, Materials.HSSE, 2), OreDictUnifier.get(OrePrefix.cableGtDouble, Materials.VanadiumGallium, 2)).fluidInputs(Materials.SolderingAlloy.getFluid(288), Materials.Lubricant.getFluid(750)).outputs(MetaItems.ELECTRIC_PUMP_ZPM.getStackForm()).duration(600).EUt(61440).buildAndRegister(); RecipeMaps.ASSEMBLY_LINE_RECIPES.recipeBuilder().inputs(MetaItems.ELECTRIC_MOTOR_UV.getStackForm(), OreDictUnifier.get(OrePrefix.plate, Materials.Neutronium, 2), OreDictUnifier.get(OrePrefix.pipeLarge, Materials.Ultimet, 2), OreDictUnifier.get(OrePrefix.screw, Materials.Neutronium, 8), OreDictUnifier.get(OrePrefix.ring, Materials.SiliconeRubber, 16), OreDictUnifier.get(OrePrefix.rotor, Materials.Neutronium, 2), OreDictUnifier.get(OrePrefix.cableGtQuadruple, Materials.NiobiumTitanium, 2)).fluidInputs(Materials.SolderingAlloy.getFluid(1296), Materials.Lubricant.getFluid(2000)).outputs(MetaItems.ELECTRIC_PUMP_UV.getStackForm()).duration(600).EUt(245760).buildAndRegister(); RecipeMaps.ASSEMBLY_LINE_RECIPES.recipeBuilder().inputs(MetaItems.ELECTRIC_MOTOR_LUV.getStackForm(2), OreDictUnifier.get(OrePrefix.plate, Materials.HSSG, 2), OreDictUnifier.get(OrePrefix.ring, Materials.HSSG, 4), OreDictUnifier.get(OrePrefix.round, Materials.HSSG, 32), OreDictUnifier.get(OrePrefix.cableGtSingle, Materials.YttriumBariumCuprate, 2)).fluidInputs(Materials.StyreneButadieneRubber.getFluid(1440), Materials.Lubricant.getFluid(250)).outputs(MetaItems.CONVEYOR_MODULE_LUV.getStackForm()).duration(600).EUt(15360).buildAndRegister(); diff --git a/src/main/java/gregtech/loaders/recipe/ComponentRecipes.java b/src/main/java/gregtech/loaders/recipe/ComponentRecipes.java index c68d75969f7..416b370a7b3 100644 --- a/src/main/java/gregtech/loaders/recipe/ComponentRecipes.java +++ b/src/main/java/gregtech/loaders/recipe/ComponentRecipes.java @@ -389,16 +389,16 @@ public static void register() { //Pumps Start--------------------------------------------------------------------------------------------------- - ModHandler.addShapedRecipe(String.format("electric_pump/%s/electric_pump_lv", materialEntry.getKey()), MetaItems.ELECTRIC_PUMP_LV.getStackForm(), "SXR", "dPw", "RMC", 'S', new UnificationEntry(OrePrefix.screw, Materials.Tin), 'X', new UnificationEntry(OrePrefix.rotor, Materials.Tin), 'P', new UnificationEntry(OrePrefix.pipeMedium, Materials.Bronze), 'R', new UnificationEntry(OrePrefix.ring, materialEntry.getValue()), 'C', new UnificationEntry(OrePrefix.cableGtSingle, Materials.Tin), 'M', MetaItems.ELECTRIC_MOTOR_LV.getStackForm()); - ModHandler.addShapedRecipe(String.format("electric_pump/%s/electric_pump_mv", materialEntry.getKey()), MetaItems.ELECTRIC_PUMP_MV.getStackForm(), "SXR", "dPw", "RMC", 'S', new UnificationEntry(OrePrefix.screw, Materials.Bronze), 'X', new UnificationEntry(OrePrefix.rotor, Materials.Bronze), 'P', new UnificationEntry(OrePrefix.pipeMedium, Materials.Steel), 'R', new UnificationEntry(OrePrefix.ring, materialEntry.getValue()), 'C', new UnificationEntry(OrePrefix.cableGtSingle, Materials.Copper), 'M', MetaItems.ELECTRIC_MOTOR_MV.getStackForm()); - ModHandler.addShapedRecipe(String.format("electric_pump/%s/electric_pump_hv", materialEntry.getKey()), MetaItems.ELECTRIC_PUMP_HV.getStackForm(), "SXR", "dPw", "RMC", 'S', new UnificationEntry(OrePrefix.screw, Materials.Steel), 'X', new UnificationEntry(OrePrefix.rotor, Materials.Steel), 'P', new UnificationEntry(OrePrefix.pipeMedium, Materials.StainlessSteel), 'R', new UnificationEntry(OrePrefix.ring, materialEntry.getValue()), 'C', new UnificationEntry(OrePrefix.cableGtSingle, Materials.Gold), 'M', MetaItems.ELECTRIC_MOTOR_HV.getStackForm()); - ModHandler.addShapedRecipe(String.format("electric_pump/%s/electric_pump_ev", materialEntry.getKey()), MetaItems.ELECTRIC_PUMP_EV.getStackForm(), "SXR", "dPw", "RMC", 'S', new UnificationEntry(OrePrefix.screw, Materials.StainlessSteel), 'X', new UnificationEntry(OrePrefix.rotor, Materials.StainlessSteel), 'P', new UnificationEntry(OrePrefix.pipeMedium, Materials.Titanium), 'R', new UnificationEntry(OrePrefix.ring, materialEntry.getValue()), 'C', new UnificationEntry(OrePrefix.cableGtSingle, Materials.Aluminium), 'M', MetaItems.ELECTRIC_MOTOR_EV.getStackForm()); + ModHandler.addShapedRecipe(String.format("electric_pump/%s/electric_pump_lv", materialEntry.getKey()), MetaItems.ELECTRIC_PUMP_LV.getStackForm(), "SXR", "dPw", "RMC", 'S', new UnificationEntry(OrePrefix.screw, Materials.Tin), 'X', new UnificationEntry(OrePrefix.rotor, Materials.Tin), 'P', new UnificationEntry(OrePrefix.pipeNormal, Materials.Bronze), 'R', new UnificationEntry(OrePrefix.ring, materialEntry.getValue()), 'C', new UnificationEntry(OrePrefix.cableGtSingle, Materials.Tin), 'M', MetaItems.ELECTRIC_MOTOR_LV.getStackForm()); + ModHandler.addShapedRecipe(String.format("electric_pump/%s/electric_pump_mv", materialEntry.getKey()), MetaItems.ELECTRIC_PUMP_MV.getStackForm(), "SXR", "dPw", "RMC", 'S', new UnificationEntry(OrePrefix.screw, Materials.Bronze), 'X', new UnificationEntry(OrePrefix.rotor, Materials.Bronze), 'P', new UnificationEntry(OrePrefix.pipeNormal, Materials.Steel), 'R', new UnificationEntry(OrePrefix.ring, materialEntry.getValue()), 'C', new UnificationEntry(OrePrefix.cableGtSingle, Materials.Copper), 'M', MetaItems.ELECTRIC_MOTOR_MV.getStackForm()); + ModHandler.addShapedRecipe(String.format("electric_pump/%s/electric_pump_hv", materialEntry.getKey()), MetaItems.ELECTRIC_PUMP_HV.getStackForm(), "SXR", "dPw", "RMC", 'S', new UnificationEntry(OrePrefix.screw, Materials.Steel), 'X', new UnificationEntry(OrePrefix.rotor, Materials.Steel), 'P', new UnificationEntry(OrePrefix.pipeNormal, Materials.StainlessSteel), 'R', new UnificationEntry(OrePrefix.ring, materialEntry.getValue()), 'C', new UnificationEntry(OrePrefix.cableGtSingle, Materials.Gold), 'M', MetaItems.ELECTRIC_MOTOR_HV.getStackForm()); + ModHandler.addShapedRecipe(String.format("electric_pump/%s/electric_pump_ev", materialEntry.getKey()), MetaItems.ELECTRIC_PUMP_EV.getStackForm(), "SXR", "dPw", "RMC", 'S', new UnificationEntry(OrePrefix.screw, Materials.StainlessSteel), 'X', new UnificationEntry(OrePrefix.rotor, Materials.StainlessSteel), 'P', new UnificationEntry(OrePrefix.pipeNormal, Materials.Titanium), 'R', new UnificationEntry(OrePrefix.ring, materialEntry.getValue()), 'C', new UnificationEntry(OrePrefix.cableGtSingle, Materials.Aluminium), 'M', MetaItems.ELECTRIC_MOTOR_EV.getStackForm()); if (!materialEntry.getValue().equals(Materials.Rubber)) - ModHandler.addShapedRecipe(String.format("electric_pump/%s/electric_pump_iv", materialEntry.getKey()), MetaItems.ELECTRIC_PUMP_IV.getStackForm(), "SXR", "dPw", "RMC", 'S', new UnificationEntry(OrePrefix.screw, Materials.TungstenSteel), 'X', new UnificationEntry(OrePrefix.rotor, Materials.TungstenSteel), 'P', new UnificationEntry(OrePrefix.pipeMedium, Materials.TungstenSteel), 'R', new UnificationEntry(OrePrefix.ring, materialEntry.getValue()), 'C', new UnificationEntry(OrePrefix.cableGtSingle, Materials.Tungsten), 'M', MetaItems.ELECTRIC_MOTOR_IV.getStackForm()); + ModHandler.addShapedRecipe(String.format("electric_pump/%s/electric_pump_iv", materialEntry.getKey()), MetaItems.ELECTRIC_PUMP_IV.getStackForm(), "SXR", "dPw", "RMC", 'S', new UnificationEntry(OrePrefix.screw, Materials.TungstenSteel), 'X', new UnificationEntry(OrePrefix.rotor, Materials.TungstenSteel), 'P', new UnificationEntry(OrePrefix.pipeNormal, Materials.TungstenSteel), 'R', new UnificationEntry(OrePrefix.ring, materialEntry.getValue()), 'C', new UnificationEntry(OrePrefix.cableGtSingle, Materials.Tungsten), 'M', MetaItems.ELECTRIC_MOTOR_IV.getStackForm()); RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() .input(OrePrefix.cableGtSingle, Materials.Tin) - .input(OrePrefix.pipeMedium, Materials.Bronze) + .input(OrePrefix.pipeNormal, Materials.Bronze) .input(OrePrefix.screw, Materials.Tin) .input(OrePrefix.rotor, Materials.Tin) .input(OrePrefix.ring, materialEntry.getValue(), 2) @@ -408,7 +408,7 @@ public static void register() { RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() .input(OrePrefix.cableGtSingle, Materials.Copper) - .input(OrePrefix.pipeMedium, Materials.Steel) + .input(OrePrefix.pipeNormal, Materials.Steel) .input(OrePrefix.screw, Materials.Bronze) .input(OrePrefix.rotor, Materials.Bronze) .input(OrePrefix.ring, materialEntry.getValue(), 2) @@ -418,7 +418,7 @@ public static void register() { RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() .input(OrePrefix.cableGtSingle, Materials.Copper) - .input(OrePrefix.pipeMedium, Materials.StainlessSteel) + .input(OrePrefix.pipeNormal, Materials.StainlessSteel) .input(OrePrefix.screw, Materials.Steel) .input(OrePrefix.rotor, Materials.Steel) .input(OrePrefix.ring, materialEntry.getValue(), 2) @@ -428,7 +428,7 @@ public static void register() { RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() .input(OrePrefix.cableGtSingle, Materials.Aluminium) - .input(OrePrefix.pipeMedium, Materials.Titanium) + .input(OrePrefix.pipeNormal, Materials.Titanium) .input(OrePrefix.screw, Materials.StainlessSteel) .input(OrePrefix.rotor, Materials.StainlessSteel) .input(OrePrefix.ring, materialEntry.getValue(), 2) @@ -439,7 +439,7 @@ public static void register() { if (!materialEntry.getValue().equals(Materials.Rubber)) RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() .input(OrePrefix.cableGtSingle, Materials.Tungsten) - .input(OrePrefix.pipeMedium, Materials.TungstenSteel) + .input(OrePrefix.pipeNormal, Materials.TungstenSteel) .input(OrePrefix.screw, Materials.TungstenSteel) .input(OrePrefix.rotor, Materials.TungstenSteel) .input(OrePrefix.ring, materialEntry.getValue(), 2) diff --git a/src/main/java/gregtech/loaders/recipe/CraftingComponent.java b/src/main/java/gregtech/loaders/recipe/CraftingComponent.java index 96a22e72512..57b308929d3 100644 --- a/src/main/java/gregtech/loaders/recipe/CraftingComponent.java +++ b/src/main/java/gregtech/loaders/recipe/CraftingComponent.java @@ -29,7 +29,7 @@ public class CraftingComponent { public static Component WIRE; public static Component CABLE_QUAD; public static Component HULL; - public static Component PIPE_MEDIUM; + public static Component PIPE_NORMAL; public static Component PIPE_LARGE; public static Component GLASS; public static Component PLATE; @@ -169,17 +169,17 @@ public static void initializeComponents() { }).collect(Collectors.toMap(data -> (Integer) data[0], data -> data[1]))); } - PIPE_MEDIUM = new Component(Stream.of(new Object[][]{ + PIPE_NORMAL = new Component(Stream.of(new Object[][]{ - {0, new UnificationEntry(OrePrefix.pipeMedium, Materials.Bronze)}, - {1, new UnificationEntry(OrePrefix.pipeMedium, Materials.Bronze)}, - {2, new UnificationEntry(OrePrefix.pipeMedium, Materials.Steel)}, - {3, new UnificationEntry(OrePrefix.pipeMedium, Materials.StainlessSteel)}, - {4, new UnificationEntry(OrePrefix.pipeMedium, Materials.Titanium)}, - {5, new UnificationEntry(OrePrefix.pipeMedium, Materials.TungstenSteel)}, - {6, new UnificationEntry(OrePrefix.pipeMedium, Materials.NiobiumTitanium)}, - {7, new UnificationEntry(OrePrefix.pipeMedium, Materials.Ultimet)}, - {8, new UnificationEntry(OrePrefix.pipeMedium, Materials.Naquadah)}, + {0, new UnificationEntry(OrePrefix.pipeNormal, Materials.Bronze)}, + {1, new UnificationEntry(OrePrefix.pipeNormal, Materials.Bronze)}, + {2, new UnificationEntry(OrePrefix.pipeNormal, Materials.Steel)}, + {3, new UnificationEntry(OrePrefix.pipeNormal, Materials.StainlessSteel)}, + {4, new UnificationEntry(OrePrefix.pipeNormal, Materials.Titanium)}, + {5, new UnificationEntry(OrePrefix.pipeNormal, Materials.TungstenSteel)}, + {6, new UnificationEntry(OrePrefix.pipeNormal, Materials.NiobiumTitanium)}, + {7, new UnificationEntry(OrePrefix.pipeNormal, Materials.Ultimet)}, + {8, new UnificationEntry(OrePrefix.pipeNormal, Materials.Naquadah)}, }).collect(Collectors.toMap(data -> (Integer) data[0], data -> data[1]))); @@ -443,14 +443,14 @@ public static void initializeComponents() { {0, new ItemStack(Blocks.GLASS, 1, GTValues.W)}, {1, new ItemStack(Blocks.GLASS, 1, GTValues.W)}, {2, new ItemStack(Blocks.GLASS, 1, GTValues.W)}, - {3, new UnificationEntry(OrePrefix.pipeMedium, Materials.Polyethylene)}, + {3, new UnificationEntry(OrePrefix.pipeNormal, Materials.Polyethylene)}, {4, new UnificationEntry(OrePrefix.pipeLarge, Materials.Polyethylene)}, {5, new UnificationEntry(OrePrefix.pipeHuge, Materials.Polyethylene)}, - {6, new UnificationEntry(OrePrefix.pipeMedium, Materials.Polytetrafluoroethylene)}, + {6, new UnificationEntry(OrePrefix.pipeNormal, Materials.Polytetrafluoroethylene)}, {7, new UnificationEntry(OrePrefix.pipeLarge, Materials.Polytetrafluoroethylene)}, {8, new UnificationEntry(OrePrefix.pipeHuge, Materials.Polytetrafluoroethylene)}, - {GTValues.FALLBACK, new UnificationEntry(OrePrefix.pipeMedium, Materials.Polyethylene)}, + {GTValues.FALLBACK, new UnificationEntry(OrePrefix.pipeNormal, Materials.Polyethylene)}, }).collect(Collectors.toMap(data -> (Integer) data[0], data -> data[1]))); @@ -467,7 +467,7 @@ public static void initializeComponents() { {8, MetaBlocks.HERMETIC_CASING.getItemVariant(HERMETIC_UV)}, {14, MetaBlocks.HERMETIC_CASING.getItemVariant(HERMETIC_MAX)}, - {GTValues.FALLBACK, new UnificationEntry(OrePrefix.pipeMedium, Materials.Polyethylene)}, + {GTValues.FALLBACK, new UnificationEntry(OrePrefix.pipeNormal, Materials.Polyethylene)}, }).collect(Collectors.toMap(data -> (Integer) data[0], data -> data[1]))); } diff --git a/src/main/java/gregtech/loaders/recipe/CraftingRecipeLoader.java b/src/main/java/gregtech/loaders/recipe/CraftingRecipeLoader.java index efc5c03ecda..a116d32902a 100644 --- a/src/main/java/gregtech/loaders/recipe/CraftingRecipeLoader.java +++ b/src/main/java/gregtech/loaders/recipe/CraftingRecipeLoader.java @@ -42,7 +42,7 @@ private static void loadCraftingRecipes() { ToolRecipeHandler.registerPowerUnitRecipes(); ModHandler.addShapedRecipe("small_wooden_pipe", OreDictUnifier.get(OrePrefix.pipeSmall, Materials.Wood, 6), "WsW", "W W", "WrW", 'W', new UnificationEntry(OrePrefix.plank, Materials.Wood)); - ModHandler.addShapedRecipe("medium_wooden_pipe", OreDictUnifier.get(OrePrefix.pipeMedium, Materials.Wood, 2), "WWW", "s r", "WWW", 'W', new UnificationEntry(OrePrefix.plank, Materials.Wood)); + ModHandler.addShapedRecipe("medium_wooden_pipe", OreDictUnifier.get(OrePrefix.pipeNormal, Materials.Wood, 2), "WWW", "s r", "WWW", 'W', new UnificationEntry(OrePrefix.plank, Materials.Wood)); ModHandler.addShapedRecipe("large_wooden_pipe", OreDictUnifier.get(OrePrefix.pipeLarge, Materials.Wood), "WrW", "W W", "WsW", 'W', new UnificationEntry(OrePrefix.plank, Materials.Wood)); ModHandler.addShapelessRecipe("nether_quartz_block_to_nether_quartz", new ItemStack(Items.QUARTZ, 4), Blocks.QUARTZ_BLOCK); diff --git a/src/main/java/gregtech/loaders/recipe/MachineRecipeLoader.java b/src/main/java/gregtech/loaders/recipe/MachineRecipeLoader.java index 36f427a9242..9c9f51d110f 100644 --- a/src/main/java/gregtech/loaders/recipe/MachineRecipeLoader.java +++ b/src/main/java/gregtech/loaders/recipe/MachineRecipeLoader.java @@ -9,7 +9,6 @@ import gregtech.api.recipes.builders.PBFRecipeBuilder; import gregtech.api.recipes.ingredients.IntCircuitIngredient; import gregtech.api.unification.OreDictUnifier; -import gregtech.api.unification.material.IMaterial; import gregtech.api.unification.material.MarkerMaterials; import gregtech.api.unification.material.MarkerMaterials.Tier; import gregtech.api.unification.material.Materials; @@ -652,7 +651,7 @@ private static void registerBlastFurnaceMetallurgyRecipes() { .buildAndRegister(); } - private static void createSulfurDioxideRecipe(IMaterial inputMaterial, IMaterial outputMaterial, int sulfurDioxideAmount) { + private static void createSulfurDioxideRecipe(Material inputMaterial, Material outputMaterial, int sulfurDioxideAmount) { BLAST_RECIPES.recipeBuilder().duration(120).EUt(120).blastFurnaceTemp(1200) .input(dust, inputMaterial) .fluidInputs(Oxygen.getFluid(3000)) diff --git a/src/main/java/gregtech/loaders/recipe/MetaTileEntityLoader.java b/src/main/java/gregtech/loaders/recipe/MetaTileEntityLoader.java index 934920ad2dc..6d9be1e8859 100644 --- a/src/main/java/gregtech/loaders/recipe/MetaTileEntityLoader.java +++ b/src/main/java/gregtech/loaders/recipe/MetaTileEntityLoader.java @@ -69,11 +69,11 @@ public static void init() { ModHandler.addShapedRecipe("casing_titanium_turbine_casing", MetaBlocks.TURBINE_CASING.getItemVariant(TITANIUM_TURBINE_CASING, 2), "PhP", "PFP", "PwP", 'P', new UnificationEntry(OrePrefix.plate, Materials.Titanium), 'F', MetaBlocks.TURBINE_CASING.getItemVariant(STEEL_TURBINE_CASING)); ModHandler.addShapedRecipe("casing_tungstensteel_turbine_casing", MetaBlocks.TURBINE_CASING.getItemVariant(TUNGSTENSTEEL_TURBINE_CASING, 2), "PhP", "PFP", "PwP", 'P', new UnificationEntry(OrePrefix.plate, Materials.TungstenSteel), 'F', MetaBlocks.TURBINE_CASING.getItemVariant(STEEL_TURBINE_CASING)); - ModHandler.addShapedRecipe("casing_bronze_pipe", MetaBlocks.BOILER_CASING.getItemVariant(BRONZE_PIPE, 2), "PIP", "IFI", "PIP", 'P', new UnificationEntry(OrePrefix.plate, Materials.Bronze), 'F', new UnificationEntry(OrePrefix.frameGt, Materials.Bronze), 'I', new UnificationEntry(OrePrefix.pipeMedium, Materials.Bronze)); - ModHandler.addShapedRecipe("casing_steel_pipe", MetaBlocks.BOILER_CASING.getItemVariant(STEEL_PIPE, 2), "PIP", "IFI", "PIP", 'P', new UnificationEntry(OrePrefix.plate, Materials.Steel), 'F', new UnificationEntry(OrePrefix.frameGt, Materials.Steel), 'I', new UnificationEntry(OrePrefix.pipeMedium, Materials.Steel)); - ModHandler.addShapedRecipe("casing_titanium_pipe", MetaBlocks.BOILER_CASING.getItemVariant(TITANIUM_PIPE, 2), "PIP", "IFI", "PIP", 'P', new UnificationEntry(OrePrefix.plate, Materials.Titanium), 'F', new UnificationEntry(OrePrefix.frameGt, Materials.Titanium), 'I', new UnificationEntry(OrePrefix.pipeMedium, Materials.Titanium)); - ModHandler.addShapedRecipe("casing_tungstensteel_pipe", MetaBlocks.BOILER_CASING.getItemVariant(TUNGSTENSTEEL_PIPE, 2), "PIP", "IFI", "PIP", 'P', new UnificationEntry(OrePrefix.plate, Materials.TungstenSteel), 'F', new UnificationEntry(OrePrefix.frameGt, Materials.TungstenSteel), 'I', new UnificationEntry(OrePrefix.pipeMedium, Materials.TungstenSteel)); - ModHandler.addShapedRecipe("casing_ptfe_pipe", MetaBlocks.BOILER_CASING.getItemVariant(POLYTETRAFLUOROETHYLENE_PIPE, 2), "PIP", "IFI", "PIP", 'P', new UnificationEntry(OrePrefix.plate, Materials.Polytetrafluoroethylene), 'F', new UnificationEntry(OrePrefix.frameGt, Materials.Polytetrafluoroethylene), 'I', new UnificationEntry(OrePrefix.pipeMedium, Materials.Polytetrafluoroethylene)); + ModHandler.addShapedRecipe("casing_bronze_pipe", MetaBlocks.BOILER_CASING.getItemVariant(BRONZE_PIPE, 2), "PIP", "IFI", "PIP", 'P', new UnificationEntry(OrePrefix.plate, Materials.Bronze), 'F', new UnificationEntry(OrePrefix.frameGt, Materials.Bronze), 'I', new UnificationEntry(OrePrefix.pipeNormal, Materials.Bronze)); + ModHandler.addShapedRecipe("casing_steel_pipe", MetaBlocks.BOILER_CASING.getItemVariant(STEEL_PIPE, 2), "PIP", "IFI", "PIP", 'P', new UnificationEntry(OrePrefix.plate, Materials.Steel), 'F', new UnificationEntry(OrePrefix.frameGt, Materials.Steel), 'I', new UnificationEntry(OrePrefix.pipeNormal, Materials.Steel)); + ModHandler.addShapedRecipe("casing_titanium_pipe", MetaBlocks.BOILER_CASING.getItemVariant(TITANIUM_PIPE, 2), "PIP", "IFI", "PIP", 'P', new UnificationEntry(OrePrefix.plate, Materials.Titanium), 'F', new UnificationEntry(OrePrefix.frameGt, Materials.Titanium), 'I', new UnificationEntry(OrePrefix.pipeNormal, Materials.Titanium)); + ModHandler.addShapedRecipe("casing_tungstensteel_pipe", MetaBlocks.BOILER_CASING.getItemVariant(TUNGSTENSTEEL_PIPE, 2), "PIP", "IFI", "PIP", 'P', new UnificationEntry(OrePrefix.plate, Materials.TungstenSteel), 'F', new UnificationEntry(OrePrefix.frameGt, Materials.TungstenSteel), 'I', new UnificationEntry(OrePrefix.pipeNormal, Materials.TungstenSteel)); + ModHandler.addShapedRecipe("casing_ptfe_pipe", MetaBlocks.BOILER_CASING.getItemVariant(POLYTETRAFLUOROETHYLENE_PIPE, 2), "PIP", "IFI", "PIP", 'P', new UnificationEntry(OrePrefix.plate, Materials.Polytetrafluoroethylene), 'F', new UnificationEntry(OrePrefix.frameGt, Materials.Polytetrafluoroethylene), 'I', new UnificationEntry(OrePrefix.pipeNormal, Materials.Polytetrafluoroethylene)); ModHandler.addShapedRecipe("casing_bronze_firebox", MetaBlocks.BOILER_FIREBOX_CASING.getItemVariant(BRONZE_FIREBOX, 2), "PSP", "SFS", "PSP", 'P', new UnificationEntry(OrePrefix.plate, Materials.Bronze), 'F', new UnificationEntry(OrePrefix.frameGt, Materials.Bronze), 'S', new UnificationEntry(OrePrefix.stick, Materials.Bronze)); ModHandler.addShapedRecipe("casing_steel_firebox", MetaBlocks.BOILER_FIREBOX_CASING.getItemVariant(STEEL_FIREBOX, 2), "PSP", "SFS", "PSP", 'P', new UnificationEntry(OrePrefix.plate, Materials.Steel), 'F', new UnificationEntry(OrePrefix.frameGt, Materials.Steel), 'S', new UnificationEntry(OrePrefix.stick, Materials.Steel)); ModHandler.addShapedRecipe("casing_titanium_firebox", MetaBlocks.BOILER_FIREBOX_CASING.getItemVariant(TITANIUM_FIREBOX, 2), "PSP", "SFS", "PSP", 'P', new UnificationEntry(OrePrefix.plate, Materials.Titanium), 'F', new UnificationEntry(OrePrefix.frameGt, Materials.Titanium), 'S', new UnificationEntry(OrePrefix.stick, Materials.Titanium)); @@ -323,7 +323,7 @@ public static void init() { ModHandler.addShapedRecipe("pyrolyse_oven", MetaTileEntities.PYROLYSE_OVEN.getStackForm(), "WEP", "EME", "WCP", 'M', MetaTileEntities.HULL[GTValues.MV].getStackForm(), 'W', MetaItems.ELECTRIC_PISTON_MV, 'P', new UnificationEntry(OrePrefix.wireGtQuadruple, Materials.Cupronickel), 'E', new UnificationEntry(OrePrefix.circuit, MarkerMaterials.Tier.Good), 'C', MetaItems.ELECTRIC_PUMP_MV); ModHandler.addShapedRecipe("diesel_engine", MetaTileEntities.LARGE_COMBUSTION_ENGINE.getStackForm(), "PCP", "EME", "GWG", 'M', MetaTileEntities.HULL[GTValues.EV].getStackForm(), 'P', MetaItems.ELECTRIC_PISTON_EV, 'E', MetaItems.ELECTRIC_MOTOR_EV, 'C', new UnificationEntry(OrePrefix.circuit, Tier.Elite), 'W', new UnificationEntry(OrePrefix.cableGtSingle, Materials.TungstenSteel), 'G', new UnificationEntry(OrePrefix.gear, Materials.Titanium)); - ModHandler.addShapedRecipe("engine_intake_casing", MetaBlocks.MULTIBLOCK_CASING.getItemVariant(MultiblockCasingType.ENGINE_INTAKE_CASING, 2), "PhP", "RFR", "PwP", 'R', new UnificationEntry(OrePrefix.pipeMedium, Materials.Titanium), 'F', MetaBlocks.METAL_CASING.getItemVariant(TITANIUM_STABLE), 'P', new UnificationEntry(OrePrefix.rotor, Materials.Titanium)); + ModHandler.addShapedRecipe("engine_intake_casing", MetaBlocks.MULTIBLOCK_CASING.getItemVariant(MultiblockCasingType.ENGINE_INTAKE_CASING, 2), "PhP", "RFR", "PwP", 'R', new UnificationEntry(OrePrefix.pipeNormal, Materials.Titanium), 'F', MetaBlocks.METAL_CASING.getItemVariant(TITANIUM_STABLE), 'P', new UnificationEntry(OrePrefix.rotor, Materials.Titanium)); ModHandler.addShapedRecipe("multi_furnace", MetaTileEntities.MULTI_FURNACE.getStackForm(), "PPP", "ASA", "CAC", 'P', Blocks.FURNACE, 'A', new UnificationEntry(OrePrefix.circuit, MarkerMaterials.Tier.Advanced), 'S', MetaBlocks.METAL_CASING.getItemVariant(INVAR_HEATPROOF), 'C', new UnificationEntry(OrePrefix.cableGtSingle, Materials.AnnealedCopper)); ModHandler.addShapedRecipe("large_steam_turbine", MetaTileEntities.LARGE_STEAM_TURBINE.getStackForm(), "PSP", "SAS", "CSC", 'S', new UnificationEntry(OrePrefix.gear, Materials.Steel), 'P', new UnificationEntry(OrePrefix.circuit, MarkerMaterials.Tier.Advanced), 'A', MetaTileEntities.HULL[GTValues.HV].getStackForm(), 'C', new UnificationEntry(OrePrefix.pipeLarge, Materials.Steel)); @@ -348,15 +348,15 @@ public static void init() { ModHandler.addShapedRecipe("gas_turbine_mv", MetaTileEntities.GAS_TURBINE[1].getStackForm(), "CRC", "RMR", "EWE", 'M', MetaTileEntities.HULL[GTValues.MV].getStackForm(), 'E', MetaItems.ELECTRIC_MOTOR_MV, 'R', new UnificationEntry(OrePrefix.rotor, Materials.Bronze), 'C', new UnificationEntry(OrePrefix.circuit, MarkerMaterials.Tier.Good), 'W', new UnificationEntry(OrePrefix.cableGtSingle, Materials.Copper)); ModHandler.addShapedRecipe("gas_turbine_hv", MetaTileEntities.GAS_TURBINE[2].getStackForm(), "CRC", "RMR", "EWE", 'M', MetaTileEntities.HULL[GTValues.HV].getStackForm(), 'E', MetaItems.ELECTRIC_MOTOR_HV, 'R', new UnificationEntry(OrePrefix.rotor, Materials.Steel), 'C', new UnificationEntry(OrePrefix.circuit, MarkerMaterials.Tier.Advanced), 'W', new UnificationEntry(OrePrefix.cableGtSingle, Materials.Gold)); - ModHandler.addShapedRecipe("steam_turbine_lv", MetaTileEntities.STEAM_TURBINE[0].getStackForm(), "PCP", "RMR", "EWE", 'M', MetaTileEntities.HULL[GTValues.LV].getStackForm(), 'E', MetaItems.ELECTRIC_MOTOR_LV, 'R', new UnificationEntry(OrePrefix.rotor, Materials.Tin), 'C', new UnificationEntry(OrePrefix.circuit, MarkerMaterials.Tier.Basic), 'W', new UnificationEntry(OrePrefix.cableGtSingle, Materials.Tin), 'P', new UnificationEntry(OrePrefix.pipeMedium, Materials.Bronze)); - ModHandler.addShapedRecipe("steam_turbine_mv", MetaTileEntities.STEAM_TURBINE[1].getStackForm(), "PCP", "RMR", "EWE", 'M', MetaTileEntities.HULL[GTValues.MV].getStackForm(), 'E', MetaItems.ELECTRIC_MOTOR_MV, 'R', new UnificationEntry(OrePrefix.rotor, Materials.Bronze), 'C', new UnificationEntry(OrePrefix.circuit, MarkerMaterials.Tier.Good), 'W', new UnificationEntry(OrePrefix.cableGtSingle, Materials.Copper), 'P', new UnificationEntry(OrePrefix.pipeMedium, Materials.Steel)); - ModHandler.addShapedRecipe("steam_turbine_hv", MetaTileEntities.STEAM_TURBINE[2].getStackForm(), "PCP", "RMR", "EWE", 'M', MetaTileEntities.HULL[GTValues.HV].getStackForm(), 'E', MetaItems.ELECTRIC_MOTOR_HV, 'R', new UnificationEntry(OrePrefix.rotor, Materials.Steel), 'C', new UnificationEntry(OrePrefix.circuit, MarkerMaterials.Tier.Advanced), 'W', new UnificationEntry(OrePrefix.cableGtSingle, Materials.Gold), 'P', new UnificationEntry(OrePrefix.pipeMedium, Materials.StainlessSteel)); + ModHandler.addShapedRecipe("steam_turbine_lv", MetaTileEntities.STEAM_TURBINE[0].getStackForm(), "PCP", "RMR", "EWE", 'M', MetaTileEntities.HULL[GTValues.LV].getStackForm(), 'E', MetaItems.ELECTRIC_MOTOR_LV, 'R', new UnificationEntry(OrePrefix.rotor, Materials.Tin), 'C', new UnificationEntry(OrePrefix.circuit, MarkerMaterials.Tier.Basic), 'W', new UnificationEntry(OrePrefix.cableGtSingle, Materials.Tin), 'P', new UnificationEntry(OrePrefix.pipeNormal, Materials.Bronze)); + ModHandler.addShapedRecipe("steam_turbine_mv", MetaTileEntities.STEAM_TURBINE[1].getStackForm(), "PCP", "RMR", "EWE", 'M', MetaTileEntities.HULL[GTValues.MV].getStackForm(), 'E', MetaItems.ELECTRIC_MOTOR_MV, 'R', new UnificationEntry(OrePrefix.rotor, Materials.Bronze), 'C', new UnificationEntry(OrePrefix.circuit, MarkerMaterials.Tier.Good), 'W', new UnificationEntry(OrePrefix.cableGtSingle, Materials.Copper), 'P', new UnificationEntry(OrePrefix.pipeNormal, Materials.Steel)); + ModHandler.addShapedRecipe("steam_turbine_hv", MetaTileEntities.STEAM_TURBINE[2].getStackForm(), "PCP", "RMR", "EWE", 'M', MetaTileEntities.HULL[GTValues.HV].getStackForm(), 'E', MetaItems.ELECTRIC_MOTOR_HV, 'R', new UnificationEntry(OrePrefix.rotor, Materials.Steel), 'C', new UnificationEntry(OrePrefix.circuit, MarkerMaterials.Tier.Advanced), 'W', new UnificationEntry(OrePrefix.cableGtSingle, Materials.Gold), 'P', new UnificationEntry(OrePrefix.pipeNormal, Materials.StainlessSteel)); ModHandler.addShapedRecipe("workbench_bronze", MetaTileEntities.WORKBENCH.getStackForm(), "CSC", "PWP", "PsP", 'C', OreDictNames.chestWood, 'W', new ItemStack(Blocks.CRAFTING_TABLE), 'S', OreDictUnifier.get("slabWood"), 'P', new ItemStack(Blocks.PLANKS, 1, GTValues.W)); ModHandler.addShapedRecipe("magic_energy_absorber", MetaTileEntities.MAGIC_ENERGY_ABSORBER.getStackForm(), "PCP", "PMP", "PCP", 'M', MetaTileEntities.HULL[GTValues.EV].getStackForm(), 'P', MetaItems.SENSOR_EV, 'C', new UnificationEntry(OrePrefix.circuit, Tier.Extreme)); - ModHandler.addShapedRecipe("primitive_pump", MetaTileEntities.PRIMITIVE_WATER_PUMP.getStackForm(), "RGS", "OWd", "CLC", 'R', new UnificationEntry(OrePrefix.ring, Materials.Iron), 'G', new UnificationEntry(OrePrefix.pipeMedium, Materials.Wood), 'S', new UnificationEntry(OrePrefix.screw, Materials.Iron), 'O', new UnificationEntry(OrePrefix.rotor, Materials.Iron), 'W', new ItemStack(Blocks.PLANKS, 1, GTValues.W), 'C', new ItemStack(Blocks.STONE_SLAB, 1, 3), 'L', new UnificationEntry(OrePrefix.pipeLarge, Materials.Wood)); + ModHandler.addShapedRecipe("primitive_pump", MetaTileEntities.PRIMITIVE_WATER_PUMP.getStackForm(), "RGS", "OWd", "CLC", 'R', new UnificationEntry(OrePrefix.ring, Materials.Iron), 'G', new UnificationEntry(OrePrefix.pipeNormal, Materials.Wood), 'S', new UnificationEntry(OrePrefix.screw, Materials.Iron), 'O', new UnificationEntry(OrePrefix.rotor, Materials.Iron), 'W', new ItemStack(Blocks.PLANKS, 1, GTValues.W), 'C', new ItemStack(Blocks.STONE_SLAB, 1, 3), 'L', new UnificationEntry(OrePrefix.pipeLarge, Materials.Wood)); ModHandler.addShapedRecipe("pump_deck", MetaBlocks.STEAM_CASING.getItemVariant(PUMP_DECK), "SWS", "dCh", 'S', new UnificationEntry(OrePrefix.screw, Materials.Iron), 'W', new ItemStack(Blocks.PLANKS, 1, GTValues.W), 'C', new ItemStack(Blocks.STONE_SLAB, 1, 3)); ModHandler.addShapedRecipe("pump_hatch", MetaTileEntities.PUMP_OUTPUT_HATCH.getStackForm(), "SRd", "PLP", "CRC", 'S', new UnificationEntry(OrePrefix.screw, Materials.Iron), 'R', new UnificationEntry(OrePrefix.ring, Materials.Iron), 'P', new ItemStack(Blocks.PLANKS, 1, GTValues.W), 'L', new UnificationEntry(OrePrefix.pipeLarge, Materials.Wood), 'C', new ItemStack(Blocks.STONE_SLAB, 1, 3)); @@ -369,7 +369,7 @@ public static void init() { registerMachineRecipe(MetaTileEntities.CUTTER, "WCG", "VMB", "CWE", 'M', HULL, 'E', MOTOR, 'V', CONVEYOR, 'C', CIRCUIT, 'W', CABLE, 'G', GLASS, 'B', OreDictNames.craftingDiamondBlade); registerMachineRecipe(MetaTileEntities.ELECTRIC_FURNACE, "ECE", "CMC", "WCW", 'M', HULL, 'E', CIRCUIT, 'W', CABLE, 'C', COIL_HEATING); registerMachineRecipe(MetaTileEntities.EXTRACTOR, "GCG", "EMP", "WCW", 'M', HULL, 'E', PISTON, 'P', PUMP, 'C', CIRCUIT, 'W', CABLE, 'G', GLASS); - registerMachineRecipe(MetaTileEntities.EXTRUDER, "CCE", "XMP", "CCE", 'M', HULL, 'X', PISTON, 'E', CIRCUIT, 'P', PIPE_MEDIUM, 'C', COIL_HEATING_DOUBLE); + registerMachineRecipe(MetaTileEntities.EXTRUDER, "CCE", "XMP", "CCE", 'M', HULL, 'X', PISTON, 'E', CIRCUIT, 'P', PIPE_NORMAL, 'C', COIL_HEATING_DOUBLE); registerMachineRecipe(MetaTileEntities.LATHE, "WCW", "EMD", "CWP", 'M', HULL, 'E', MOTOR, 'P', PISTON, 'C', CIRCUIT, 'W', CABLE, 'D', DIAMOND); registerMachineRecipe(MetaTileEntities.MACERATOR, "PEG", "WWM", "CCW", 'M', HULL, 'E', MOTOR, 'P', PISTON, 'C', CIRCUIT, 'W', CABLE, 'G', GRINDER); registerMachineRecipe(MetaTileEntities.WIREMILL, "EWE", "CMC", "EWE", 'M', HULL, 'E', MOTOR, 'C', CIRCUIT, 'W', CABLE); diff --git a/src/main/java/gregtech/loaders/recipe/chemistry/AssemblerRecipeLoader.java b/src/main/java/gregtech/loaders/recipe/chemistry/AssemblerRecipeLoader.java index 3b1a942afb8..96e908bdca1 100644 --- a/src/main/java/gregtech/loaders/recipe/chemistry/AssemblerRecipeLoader.java +++ b/src/main/java/gregtech/loaders/recipe/chemistry/AssemblerRecipeLoader.java @@ -51,7 +51,7 @@ public static void init() { // Other ASSEMBLER_RECIPES.recipeBuilder() .input(rotor, Titanium, 4) - .input(pipeMedium, Titanium, 2) + .input(pipeNormal, Titanium, 2) .inputs(METAL_CASING.getItemVariant(TITANIUM_STABLE)) .outputs(MULTIBLOCK_CASING.getItemVariant(ENGINE_INTAKE_CASING, 2)) .duration(100).EUt(30).buildAndRegister(); @@ -187,7 +187,7 @@ public static void init() { .input(plate, Wood, 3) .circuitMeta(4) .fluidInputs(Glue.getFluid(20)) - .output(pipeMedium, Wood, 4) + .output(pipeNormal, Wood, 4) .buildAndRegister(); ASSEMBLER_RECIPES.recipeBuilder().duration(100).EUt(30) diff --git a/src/main/resources/assets/gregtech/advancements/extreme_voltage/49_nano_cpu_wafer.json b/src/main/resources/assets/gregtech/advancements/extreme_voltage/49_nano_cpu_wafer.json index e3d4934e15c..658c7d47a70 100644 --- a/src/main/resources/assets/gregtech/advancements/extreme_voltage/49_nano_cpu_wafer.json +++ b/src/main/resources/assets/gregtech/advancements/extreme_voltage/49_nano_cpu_wafer.json @@ -7,8 +7,8 @@ "translate": "gregtech.advancement.extreme_voltage.49_nano_cpu_wafer.name" }, "icon": { - "item": "gregtech:meta_item_2", - "data": 32475 + "item": "gregtech:meta_item_1", + "data": 285 }, "frame": "goal" }, @@ -18,8 +18,8 @@ "conditions": { "items": [ { - "item": "gregtech:meta_item_2", - "data": 32475 + "item": "gregtech:meta_item_1", + "data": 285 } ] } diff --git a/src/main/resources/assets/gregtech/advancements/extreme_voltage/50_nano_processor.json b/src/main/resources/assets/gregtech/advancements/extreme_voltage/50_nano_processor.json index 8ea0f634438..418bf400c5f 100644 --- a/src/main/resources/assets/gregtech/advancements/extreme_voltage/50_nano_processor.json +++ b/src/main/resources/assets/gregtech/advancements/extreme_voltage/50_nano_processor.json @@ -7,8 +7,8 @@ "translate": "gregtech.advancement.extreme_voltage.50_nano_processor.name" }, "icon": { - "item": "gregtech:meta_item_2", - "data": 32513 + "item": "gregtech:meta_item_1", + "data": 323 }, "frame": "challenge" }, @@ -18,8 +18,8 @@ "conditions": { "items": [ { - "item": "gregtech:meta_item_2", - "data": 32513 + "item": "gregtech:meta_item_1", + "data": 323 } ] } diff --git a/src/main/resources/assets/gregtech/advancements/extreme_voltage/52_soc_wafer.json b/src/main/resources/assets/gregtech/advancements/extreme_voltage/52_soc_wafer.json index e67ee78d630..b833b1eaa60 100644 --- a/src/main/resources/assets/gregtech/advancements/extreme_voltage/52_soc_wafer.json +++ b/src/main/resources/assets/gregtech/advancements/extreme_voltage/52_soc_wafer.json @@ -7,8 +7,8 @@ "translate": "gregtech.advancement.extreme_voltage.52_soc_wafer.name" }, "icon": { - "item": "gregtech:meta_item_2", - "data": 32479 + "item": "gregtech:meta_item_1", + "data": 289 }, "frame": "goal" }, @@ -18,8 +18,8 @@ "conditions": { "items": [ { - "item": "gregtech:meta_item_2", - "data": 32479 + "item": "gregtech:meta_item_1", + "data": 289 } ] } diff --git a/src/main/resources/assets/gregtech/advancements/high_voltage/40_workstation.json b/src/main/resources/assets/gregtech/advancements/high_voltage/40_workstation.json index 70b6cfa432b..418ffa0158a 100644 --- a/src/main/resources/assets/gregtech/advancements/high_voltage/40_workstation.json +++ b/src/main/resources/assets/gregtech/advancements/high_voltage/40_workstation.json @@ -7,8 +7,8 @@ "translate": "gregtech.advancement.high_voltage.40_workstation.name" }, "icon": { - "item": "gregtech:meta_item_2", - "data": 32511 + "item": "gregtech:meta_item_1", + "data": 321 }, "frame": "goal" }, @@ -18,8 +18,8 @@ "conditions": { "items": [ { - "item": "gregtech:meta_item_2", - "data": 32511 + "item": "gregtech:meta_item_1", + "data": 321 } ] } diff --git a/src/main/resources/assets/gregtech/advancements/insane_voltage/55_qbit_cpu_wafer.json b/src/main/resources/assets/gregtech/advancements/insane_voltage/55_qbit_cpu_wafer.json index c1ee337a925..ee50b3c17bd 100644 --- a/src/main/resources/assets/gregtech/advancements/insane_voltage/55_qbit_cpu_wafer.json +++ b/src/main/resources/assets/gregtech/advancements/insane_voltage/55_qbit_cpu_wafer.json @@ -7,8 +7,8 @@ "translate": "gregtech.advancement.insane_voltage.55_qbit_cpu_wafer.name" }, "icon": { - "item": "gregtech:meta_item_2", - "data": 32477 + "item": "gregtech:meta_item_1", + "data": 287 }, "frame": "goal" }, @@ -18,8 +18,8 @@ "conditions": { "items": [ { - "item": "gregtech:meta_item_2", - "data": 32477 + "item": "gregtech:meta_item_1", + "data": 287 } ] } diff --git a/src/main/resources/assets/gregtech/advancements/insane_voltage/56_quantum_processor.json b/src/main/resources/assets/gregtech/advancements/insane_voltage/56_quantum_processor.json index 52d44cdd6d2..343b828c885 100644 --- a/src/main/resources/assets/gregtech/advancements/insane_voltage/56_quantum_processor.json +++ b/src/main/resources/assets/gregtech/advancements/insane_voltage/56_quantum_processor.json @@ -7,8 +7,8 @@ "translate": "gregtech.advancement.insane_voltage.56_quantum_processor.name" }, "icon": { - "item": "gregtech:meta_item_2", - "data": 32517 + "item": "gregtech:meta_item_1", + "data": 327 }, "frame": "challenge" }, @@ -18,8 +18,8 @@ "conditions": { "items": [ { - "item": "gregtech:meta_item_2", - "data": 32517 + "item": "gregtech:meta_item_1", + "data": 327 } ] } diff --git a/src/main/resources/assets/gregtech/advancements/low_voltage/30_good_electronic_circuit.json b/src/main/resources/assets/gregtech/advancements/low_voltage/30_good_electronic_circuit.json index a6238739bab..e77300cb914 100644 --- a/src/main/resources/assets/gregtech/advancements/low_voltage/30_good_electronic_circuit.json +++ b/src/main/resources/assets/gregtech/advancements/low_voltage/30_good_electronic_circuit.json @@ -7,8 +7,8 @@ "translate": "gregtech.advancement.low_voltage.30_good_electronic_circuit.name" }, "icon": { - "item": "gregtech:meta_item_2", - "data": 32503 + "item": "gregtech:meta_item_1", + "data": 313 }, "frame": "goal" }, @@ -18,8 +18,8 @@ "conditions": { "items": [ { - "item": "gregtech:meta_item_2", - "data": 32503 + "item": "gregtech:meta_item_1", + "data": 313 } ] } diff --git a/src/main/resources/assets/gregtech/advancements/ludicrous_voltage/62_raw_crystal_chip.json b/src/main/resources/assets/gregtech/advancements/ludicrous_voltage/62_raw_crystal_chip.json index 5cc103a9c2a..db9cef36bfc 100644 --- a/src/main/resources/assets/gregtech/advancements/ludicrous_voltage/62_raw_crystal_chip.json +++ b/src/main/resources/assets/gregtech/advancements/ludicrous_voltage/62_raw_crystal_chip.json @@ -7,8 +7,8 @@ "translate": "gregtech.advancement.ludicrous_voltage.62_raw_crystal_chip.name" }, "icon": { - "item": "gregtech:meta_item_2", - "data": 32481 + "item": "gregtech:meta_item_1", + "data": 291 } }, "criteria": { @@ -17,8 +17,8 @@ "conditions": { "items": [ { - "item": "gregtech:meta_item_2", - "data": 32481 + "item": "gregtech:meta_item_1", + "data": 291 } ] } diff --git a/src/main/resources/assets/gregtech/advancements/ludicrous_voltage/63_crystal_processing_unit.json b/src/main/resources/assets/gregtech/advancements/ludicrous_voltage/63_crystal_processing_unit.json index 31c4f3f4942..9d355a58eae 100644 --- a/src/main/resources/assets/gregtech/advancements/ludicrous_voltage/63_crystal_processing_unit.json +++ b/src/main/resources/assets/gregtech/advancements/ludicrous_voltage/63_crystal_processing_unit.json @@ -7,8 +7,8 @@ "translate": "gregtech.advancement.ludicrous_voltage.63_crystal_processing_unit.name" }, "icon": { - "item": "gregtech:meta_item_2", - "data": 32485 + "item": "gregtech:meta_item_1", + "data": 295 }, "frame": "goal" }, @@ -18,8 +18,8 @@ "conditions": { "items": [ { - "item": "gregtech:meta_item_2", - "data": 32485 + "item": "gregtech:meta_item_1", + "data": 295 } ] } diff --git a/src/main/resources/assets/gregtech/advancements/ludicrous_voltage/64_crystal_processor.json b/src/main/resources/assets/gregtech/advancements/ludicrous_voltage/64_crystal_processor.json index b446dc23c67..e8db6a80b6f 100644 --- a/src/main/resources/assets/gregtech/advancements/ludicrous_voltage/64_crystal_processor.json +++ b/src/main/resources/assets/gregtech/advancements/ludicrous_voltage/64_crystal_processor.json @@ -7,8 +7,8 @@ "translate": "gregtech.advancement.ludicrous_voltage.64_crystal_processor.name" }, "icon": { - "item": "gregtech:meta_item_2", - "data": 32521 + "item": "gregtech:meta_item_1", + "data": 331 }, "frame": "challenge" }, @@ -18,8 +18,8 @@ "conditions": { "items": [ { - "item": "gregtech:meta_item_2", - "data": 32521 + "item": "gregtech:meta_item_1", + "data": 331 } ] } diff --git a/src/main/resources/assets/gregtech/advancements/ludicrous_voltage/67_asoc_wafer.json b/src/main/resources/assets/gregtech/advancements/ludicrous_voltage/67_asoc_wafer.json index 5e0ca5a63dc..25cd1d13e47 100644 --- a/src/main/resources/assets/gregtech/advancements/ludicrous_voltage/67_asoc_wafer.json +++ b/src/main/resources/assets/gregtech/advancements/ludicrous_voltage/67_asoc_wafer.json @@ -7,8 +7,8 @@ "translate": "gregtech.advancement.ludicrous_voltage.67_asoc_wafer.name" }, "icon": { - "item": "gregtech:meta_item_2", - "data": 32467 + "item": "gregtech:meta_item_1", + "data": 277 }, "frame": "goal" }, @@ -18,8 +18,8 @@ "conditions": { "items": [ { - "item": "gregtech:meta_item_2", - "data": 32467 + "item": "gregtech:meta_item_1", + "data": 277 } ] } diff --git a/src/main/resources/assets/gregtech/advancements/medium_voltage/34_silicon_boule.json b/src/main/resources/assets/gregtech/advancements/medium_voltage/34_silicon_boule.json index 829df6daf6c..d5992605d89 100644 --- a/src/main/resources/assets/gregtech/advancements/medium_voltage/34_silicon_boule.json +++ b/src/main/resources/assets/gregtech/advancements/medium_voltage/34_silicon_boule.json @@ -7,8 +7,8 @@ "translate": "gregtech.advancement.medium_voltage.34_silicon_boule.name" }, "icon": { - "item": "gregtech:meta_item_2", - "data": 32020 + "item": "gregtech:meta_item_1", + "data": 202 }, "frame": "goal" }, @@ -18,8 +18,8 @@ "conditions": { "items": [ { - "item": "gregtech:meta_item_2", - "data": 32020 + "item": "gregtech:meta_item_1", + "data": 202 } ] } diff --git a/src/main/resources/assets/gregtech/advancements/medium_voltage/35_logic_circuit_wafer.json b/src/main/resources/assets/gregtech/advancements/medium_voltage/35_logic_circuit_wafer.json index 21a9110b64d..940e91f2bef 100644 --- a/src/main/resources/assets/gregtech/advancements/medium_voltage/35_logic_circuit_wafer.json +++ b/src/main/resources/assets/gregtech/advancements/medium_voltage/35_logic_circuit_wafer.json @@ -7,8 +7,8 @@ "translate": "gregtech.advancement.medium_voltage.35_logic_circuit_wafer.name" }, "icon": { - "item": "gregtech:meta_item_2", - "data": 32468 + "item": "gregtech:meta_item_1", + "data": 278 } }, "criteria": { @@ -17,8 +17,8 @@ "conditions": { "items": [ { - "item": "gregtech:meta_item_2", - "data": 32468 + "item": "gregtech:meta_item_1", + "data": 278 } ] } diff --git a/src/main/resources/assets/gregtech/advancements/medium_voltage/36_integrated_logic_circuit.json b/src/main/resources/assets/gregtech/advancements/medium_voltage/36_integrated_logic_circuit.json index aa7d1004dde..c2abd52a83f 100644 --- a/src/main/resources/assets/gregtech/advancements/medium_voltage/36_integrated_logic_circuit.json +++ b/src/main/resources/assets/gregtech/advancements/medium_voltage/36_integrated_logic_circuit.json @@ -7,8 +7,8 @@ "translate": "gregtech.advancement.medium_voltage.36_integrated_logic_circuit.name" }, "icon": { - "item": "gregtech:meta_item_2", - "data": 32504 + "item": "gregtech:meta_item_1", + "data": 314 }, "frame": "goal" }, @@ -18,8 +18,8 @@ "conditions": { "items": [ { - "item": "gregtech:meta_item_2", - "data": 32504 + "item": "gregtech:meta_item_1", + "data": 314 } ] } diff --git a/src/main/resources/assets/gregtech/advancements/medium_voltage/37_advanced_integrated_logic_circuit.json b/src/main/resources/assets/gregtech/advancements/medium_voltage/37_advanced_integrated_logic_circuit.json index d32a750ac97..c83d3036f5e 100644 --- a/src/main/resources/assets/gregtech/advancements/medium_voltage/37_advanced_integrated_logic_circuit.json +++ b/src/main/resources/assets/gregtech/advancements/medium_voltage/37_advanced_integrated_logic_circuit.json @@ -7,8 +7,8 @@ "translate": "gregtech.advancement.medium_voltage.37_advanced_integrated_logic_circuit.name" }, "icon": { - "item": "gregtech:meta_item_2", - "data": 32506 + "item": "gregtech:meta_item_1", + "data": 316 }, "frame": "challenge" }, @@ -18,8 +18,8 @@ "conditions": { "items": [ { - "item": "gregtech:meta_item_2", - "data": 32506 + "item": "gregtech:meta_item_1", + "data": 316 } ] } diff --git a/src/main/resources/assets/gregtech/advancements/steam/10_vacuum_tube.json b/src/main/resources/assets/gregtech/advancements/steam/10_vacuum_tube.json index f9d7040d8bf..947468f0ef8 100644 --- a/src/main/resources/assets/gregtech/advancements/steam/10_vacuum_tube.json +++ b/src/main/resources/assets/gregtech/advancements/steam/10_vacuum_tube.json @@ -7,8 +7,8 @@ "translate": "gregtech.advancement.steam.10_vacuum_tube.name" }, "icon": { - "item": "gregtech:meta_item_2", - "data": 32450 + "item": "gregtech:meta_item_1", + "data": 261 } }, "criteria": { @@ -17,8 +17,8 @@ "conditions": { "items": [ { - "item": "gregtech:meta_item_2", - "data": 32450 + "item": "gregtech:meta_item_1", + "data": 261 } ] } diff --git a/src/main/resources/assets/gregtech/advancements/steam/12_electronic_circuit.json b/src/main/resources/assets/gregtech/advancements/steam/12_electronic_circuit.json index 522040c6c11..9570b4e305d 100644 --- a/src/main/resources/assets/gregtech/advancements/steam/12_electronic_circuit.json +++ b/src/main/resources/assets/gregtech/advancements/steam/12_electronic_circuit.json @@ -7,8 +7,8 @@ "translate": "gregtech.advancement.steam.12_electronic_circuit.name" }, "icon": { - "item": "gregtech:meta_item_2", - "data": 32502 + "item": "gregtech:meta_item_1", + "data": 312 }, "frame": "challenge" }, @@ -18,8 +18,8 @@ "conditions": { "items": [ { - "item": "gregtech:meta_item_2", - "data": 32502 + "item": "gregtech:meta_item_1", + "data": 312 } ] } diff --git a/src/main/resources/assets/gregtech/advancements/steam/root_steam.json b/src/main/resources/assets/gregtech/advancements/steam/root_steam.json index 76c2fa5ecfb..c6ca3c3f7b8 100644 --- a/src/main/resources/assets/gregtech/advancements/steam/root_steam.json +++ b/src/main/resources/assets/gregtech/advancements/steam/root_steam.json @@ -7,8 +7,8 @@ "translate": "gregtech.advancement.root_steam.name" }, "icon": { - "item": "gregtech:fluid_pipe", - "data": 2134 + "item": "gregtech:fluid_pipe_normal", + "data": 134 }, "background": "gregtech:textures/blocks/casings/solid/machine_bronze_plated_bricks.png" }, diff --git a/src/main/resources/assets/gregtech/advancements/ultimate_voltage/74_wetware_mainframe.json b/src/main/resources/assets/gregtech/advancements/ultimate_voltage/74_wetware_mainframe.json index b540d211355..8b50ea123f1 100644 --- a/src/main/resources/assets/gregtech/advancements/ultimate_voltage/74_wetware_mainframe.json +++ b/src/main/resources/assets/gregtech/advancements/ultimate_voltage/74_wetware_mainframe.json @@ -7,8 +7,8 @@ "translate": "gregtech.advancement.ultimate_voltage.74_wetware_mainframe.name" }, "icon": { - "item": "gregtech:meta_item_2", - "data": 32528 + "item": "gregtech:meta_item_1", + "data": 338 }, "frame": "challenge" }, @@ -18,8 +18,8 @@ "conditions": { "items": [ { - "item": "gregtech:meta_item_2", - "data": 32528 + "item": "gregtech:meta_item_1", + "data": 338 } ] } diff --git a/src/main/resources/assets/gregtech/advancements/ultimate_voltage/78_hasoc_wafer.json b/src/main/resources/assets/gregtech/advancements/ultimate_voltage/78_hasoc_wafer.json index 8d7f49669af..1c1c650e9b4 100644 --- a/src/main/resources/assets/gregtech/advancements/ultimate_voltage/78_hasoc_wafer.json +++ b/src/main/resources/assets/gregtech/advancements/ultimate_voltage/78_hasoc_wafer.json @@ -7,8 +7,8 @@ "translate": "gregtech.advancement.ultimate_voltage.78_hasoc_wafer.name" }, "icon": { - "item": "gregtech:meta_item_2", - "data": 32466 + "item": "gregtech:meta_item_1", + "data": 276 }, "frame": "goal" }, @@ -18,8 +18,8 @@ "conditions": { "items": [ { - "item": "gregtech:meta_item_2", - "data": 32466 + "item": "gregtech:meta_item_1", + "data": 276 } ] } diff --git a/src/main/resources/assets/gregtech/advancements/zero_point_module/70_stem_cells.json b/src/main/resources/assets/gregtech/advancements/zero_point_module/70_stem_cells.json index 1fdc0c0715c..dd293dbcbbc 100644 --- a/src/main/resources/assets/gregtech/advancements/zero_point_module/70_stem_cells.json +++ b/src/main/resources/assets/gregtech/advancements/zero_point_module/70_stem_cells.json @@ -7,8 +7,8 @@ "translate": "gregtech.advancement.zero_point_module.70_stem_cells.name" }, "icon": { - "item": "gregtech:meta_item_2", - "data": 32535 + "item": "gregtech:meta_item_1", + "data": 353 }, "frame": "challenge" }, @@ -18,8 +18,8 @@ "conditions": { "items": [ { - "item": "gregtech:meta_item_2", - "data": 32535 + "item": "gregtech:meta_item_1", + "data": 353 } ] } diff --git a/src/main/resources/assets/gregtech/advancements/zero_point_module/71_neuro_processing_unit.json b/src/main/resources/assets/gregtech/advancements/zero_point_module/71_neuro_processing_unit.json index 592e3eac05b..a262b050ef8 100644 --- a/src/main/resources/assets/gregtech/advancements/zero_point_module/71_neuro_processing_unit.json +++ b/src/main/resources/assets/gregtech/advancements/zero_point_module/71_neuro_processing_unit.json @@ -7,8 +7,8 @@ "translate": "gregtech.advancement.zero_point_module.71_neuro_processing_unit.name" }, "icon": { - "item": "gregtech:meta_item_2", - "data": 32534 + "item": "gregtech:meta_item_1", + "data": 352 }, "frame": "goal" }, @@ -18,8 +18,8 @@ "conditions": { "items": [ { - "item": "gregtech:meta_item_2", - "data": 32534 + "item": "gregtech:meta_item_1", + "data": 352 } ] } diff --git a/src/main/resources/assets/gregtech/advancements/zero_point_module/72_wetware_processor.json b/src/main/resources/assets/gregtech/advancements/zero_point_module/72_wetware_processor.json index 081770855ac..b90e115296b 100644 --- a/src/main/resources/assets/gregtech/advancements/zero_point_module/72_wetware_processor.json +++ b/src/main/resources/assets/gregtech/advancements/zero_point_module/72_wetware_processor.json @@ -7,8 +7,8 @@ "translate": "gregtech.advancement.zero_point_module.72_wetware_processor.name" }, "icon": { - "item": "gregtech:meta_item_2", - "data": 32525 + "item": "gregtech:meta_item_1", + "data": 335 }, "frame": "challenge" }, @@ -18,8 +18,8 @@ "conditions": { "items": [ { - "item": "gregtech:meta_item_2", - "data": 32525 + "item": "gregtech:meta_item_1", + "data": 335 } ] } diff --git a/src/main/resources/assets/gregtech/blockstates/cable.json b/src/main/resources/assets/gregtech/blockstates/cable_double.json similarity index 100% rename from src/main/resources/assets/gregtech/blockstates/cable.json rename to src/main/resources/assets/gregtech/blockstates/cable_double.json diff --git a/src/main/resources/assets/gregtech/blockstates/fluid_pipe.json b/src/main/resources/assets/gregtech/blockstates/cable_hex.json similarity index 100% rename from src/main/resources/assets/gregtech/blockstates/fluid_pipe.json rename to src/main/resources/assets/gregtech/blockstates/cable_hex.json diff --git a/src/main/resources/assets/gregtech/blockstates/cable_octal.json b/src/main/resources/assets/gregtech/blockstates/cable_octal.json new file mode 100644 index 00000000000..51469af1128 --- /dev/null +++ b/src/main/resources/assets/gregtech/blockstates/cable_octal.json @@ -0,0 +1,13 @@ +{ + "forge_marker": 1, + "defaults": { + "model": "minecraft:cube_all", + "textures": { + "all": "blocks/iron_block" + } + }, + "variants": { + "normal": [{}], + "inventory": [{}] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/gregtech/blockstates/cable_quadruple.json b/src/main/resources/assets/gregtech/blockstates/cable_quadruple.json new file mode 100644 index 00000000000..51469af1128 --- /dev/null +++ b/src/main/resources/assets/gregtech/blockstates/cable_quadruple.json @@ -0,0 +1,13 @@ +{ + "forge_marker": 1, + "defaults": { + "model": "minecraft:cube_all", + "textures": { + "all": "blocks/iron_block" + } + }, + "variants": { + "normal": [{}], + "inventory": [{}] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/gregtech/blockstates/cable_single.json b/src/main/resources/assets/gregtech/blockstates/cable_single.json new file mode 100644 index 00000000000..51469af1128 --- /dev/null +++ b/src/main/resources/assets/gregtech/blockstates/cable_single.json @@ -0,0 +1,13 @@ +{ + "forge_marker": 1, + "defaults": { + "model": "minecraft:cube_all", + "textures": { + "all": "blocks/iron_block" + } + }, + "variants": { + "normal": [{}], + "inventory": [{}] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/gregtech/blockstates/fluid_pipe_huge.json b/src/main/resources/assets/gregtech/blockstates/fluid_pipe_huge.json new file mode 100644 index 00000000000..51469af1128 --- /dev/null +++ b/src/main/resources/assets/gregtech/blockstates/fluid_pipe_huge.json @@ -0,0 +1,13 @@ +{ + "forge_marker": 1, + "defaults": { + "model": "minecraft:cube_all", + "textures": { + "all": "blocks/iron_block" + } + }, + "variants": { + "normal": [{}], + "inventory": [{}] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/gregtech/blockstates/fluid_pipe_large.json b/src/main/resources/assets/gregtech/blockstates/fluid_pipe_large.json new file mode 100644 index 00000000000..51469af1128 --- /dev/null +++ b/src/main/resources/assets/gregtech/blockstates/fluid_pipe_large.json @@ -0,0 +1,13 @@ +{ + "forge_marker": 1, + "defaults": { + "model": "minecraft:cube_all", + "textures": { + "all": "blocks/iron_block" + } + }, + "variants": { + "normal": [{}], + "inventory": [{}] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/gregtech/blockstates/fluid_pipe_normal.json b/src/main/resources/assets/gregtech/blockstates/fluid_pipe_normal.json new file mode 100644 index 00000000000..51469af1128 --- /dev/null +++ b/src/main/resources/assets/gregtech/blockstates/fluid_pipe_normal.json @@ -0,0 +1,13 @@ +{ + "forge_marker": 1, + "defaults": { + "model": "minecraft:cube_all", + "textures": { + "all": "blocks/iron_block" + } + }, + "variants": { + "normal": [{}], + "inventory": [{}] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/gregtech/blockstates/fluid_pipe_small.json b/src/main/resources/assets/gregtech/blockstates/fluid_pipe_small.json new file mode 100644 index 00000000000..51469af1128 --- /dev/null +++ b/src/main/resources/assets/gregtech/blockstates/fluid_pipe_small.json @@ -0,0 +1,13 @@ +{ + "forge_marker": 1, + "defaults": { + "model": "minecraft:cube_all", + "textures": { + "all": "blocks/iron_block" + } + }, + "variants": { + "normal": [{}], + "inventory": [{}] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/gregtech/blockstates/fluid_pipe_tiny.json b/src/main/resources/assets/gregtech/blockstates/fluid_pipe_tiny.json new file mode 100644 index 00000000000..51469af1128 --- /dev/null +++ b/src/main/resources/assets/gregtech/blockstates/fluid_pipe_tiny.json @@ -0,0 +1,13 @@ +{ + "forge_marker": 1, + "defaults": { + "model": "minecraft:cube_all", + "textures": { + "all": "blocks/iron_block" + } + }, + "variants": { + "normal": [{}], + "inventory": [{}] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/gregtech/blockstates/wire_double.json b/src/main/resources/assets/gregtech/blockstates/wire_double.json new file mode 100644 index 00000000000..51469af1128 --- /dev/null +++ b/src/main/resources/assets/gregtech/blockstates/wire_double.json @@ -0,0 +1,13 @@ +{ + "forge_marker": 1, + "defaults": { + "model": "minecraft:cube_all", + "textures": { + "all": "blocks/iron_block" + } + }, + "variants": { + "normal": [{}], + "inventory": [{}] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/gregtech/blockstates/wire_hex.json b/src/main/resources/assets/gregtech/blockstates/wire_hex.json new file mode 100644 index 00000000000..51469af1128 --- /dev/null +++ b/src/main/resources/assets/gregtech/blockstates/wire_hex.json @@ -0,0 +1,13 @@ +{ + "forge_marker": 1, + "defaults": { + "model": "minecraft:cube_all", + "textures": { + "all": "blocks/iron_block" + } + }, + "variants": { + "normal": [{}], + "inventory": [{}] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/gregtech/blockstates/wire_octal.json b/src/main/resources/assets/gregtech/blockstates/wire_octal.json new file mode 100644 index 00000000000..51469af1128 --- /dev/null +++ b/src/main/resources/assets/gregtech/blockstates/wire_octal.json @@ -0,0 +1,13 @@ +{ + "forge_marker": 1, + "defaults": { + "model": "minecraft:cube_all", + "textures": { + "all": "blocks/iron_block" + } + }, + "variants": { + "normal": [{}], + "inventory": [{}] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/gregtech/blockstates/wire_quadruple.json b/src/main/resources/assets/gregtech/blockstates/wire_quadruple.json new file mode 100644 index 00000000000..51469af1128 --- /dev/null +++ b/src/main/resources/assets/gregtech/blockstates/wire_quadruple.json @@ -0,0 +1,13 @@ +{ + "forge_marker": 1, + "defaults": { + "model": "minecraft:cube_all", + "textures": { + "all": "blocks/iron_block" + } + }, + "variants": { + "normal": [{}], + "inventory": [{}] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/gregtech/blockstates/wire_single.json b/src/main/resources/assets/gregtech/blockstates/wire_single.json new file mode 100644 index 00000000000..51469af1128 --- /dev/null +++ b/src/main/resources/assets/gregtech/blockstates/wire_single.json @@ -0,0 +1,13 @@ +{ + "forge_marker": 1, + "defaults": { + "model": "minecraft:cube_all", + "textures": { + "all": "blocks/iron_block" + } + }, + "variants": { + "normal": [{}], + "inventory": [{}] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/gregtech/lang/en_us.lang b/src/main/resources/assets/gregtech/lang/en_us.lang index aa83fd610da..1ba050467d3 100644 --- a/src/main/resources/assets/gregtech/lang/en_us.lang +++ b/src/main/resources/assets/gregtech/lang/en_us.lang @@ -993,7 +993,7 @@ item.material.oreprefix.block=Block of %s item.material.oreprefix.frameGt=%s Frame Box item.material.oreprefix.pipeTiny=Tiny %s Fluid Pipe item.material.oreprefix.pipeSmall=Small %s Fluid Pipe -item.material.oreprefix.pipeMedium=Medium %s Fluid Pipe +item.material.oreprefix.pipeNormal=Normal %s Fluid Pipe item.material.oreprefix.pipeLarge=Large %s Fluid Pipe item.material.oreprefix.pipeHuge=Huge %s Fluid Pipe item.material.oreprefix.pipeRestrictiveTiny=Tiny Restrictive %s Pipe diff --git a/src/main/resources/assets/gregtech/textures/blocks/pipe/pipe_medium_in.png b/src/main/resources/assets/gregtech/textures/blocks/pipe/pipe_normal_in.png similarity index 100% rename from src/main/resources/assets/gregtech/textures/blocks/pipe/pipe_medium_in.png rename to src/main/resources/assets/gregtech/textures/blocks/pipe/pipe_normal_in.png diff --git a/src/main/resources/assets/gregtech/textures/blocks/pipe/pipe_medium_side.png b/src/main/resources/assets/gregtech/textures/blocks/pipe/pipe_normal_side.png similarity index 100% rename from src/main/resources/assets/gregtech/textures/blocks/pipe/pipe_medium_side.png rename to src/main/resources/assets/gregtech/textures/blocks/pipe/pipe_normal_side.png