From a88d9c4e72adc5b5063398af39c5c80817623cb5 Mon Sep 17 00:00:00 2001 From: Dream-Master Date: Tue, 21 Jun 2016 21:07:14 +0200 Subject: [PATCH] experimental branch --- .gitignore | 14 +- build.gradle | 8 +- build.properties | 4 +- src/main/java/gregtech/GT_Mod.java | 77 +- src/main/java/gregtech/api/GregTech_API.java | 7 +- .../gregtech/api/enums/ConfigCategories.java | 3 +- src/main/java/gregtech/api/enums/Element.java | 2 +- .../java/gregtech/api/enums/GT_Values.java | 2 +- .../java/gregtech/api/enums/ItemList.java | 69 +- .../java/gregtech/api/enums/Materials.java | 2420 +++++++++-------- .../java/gregtech/api/enums/OrePrefixes.java | 19 +- .../java/gregtech/api/enums/TC_Aspects.java | 2 +- .../java/gregtech/api/enums/TextureSet.java | 4 +- .../java/gregtech/api/enums/Textures.java | 4 +- .../gregtech/api/interfaces/IToolStats.java | 8 +- .../interfaces/internal/IGT_RecipeAdder.java | 65 +- .../api/items/GT_CoolantCellIC_Item.java | 1 - .../api/items/GT_CoolantCell_Item.java | 1 - .../gregtech/api/items/GT_MetaBase_Item.java | 2 +- .../api/items/GT_MetaGenerated_Item_X32.java | 2 +- .../api/items/GT_MetaGenerated_Tool.java | 96 +- .../api/items/GT_RadioactiveCellIC_Item.java | 2 +- .../api/items/GT_RadioactiveCell_Item.java | 10 +- .../metatileentity/BaseMetaTileEntity.java | 9 +- .../api/metatileentity/MetaPipeEntity.java | 36 + .../GT_MetaPipeEntity_Cable.java | 14 +- .../GT_MetaPipeEntity_Fluid.java | 4 +- .../GT_MetaPipeEntity_Item.java | 14 +- .../GT_MetaTileEntity_BasicBatteryBuffer.java | 9 +- .../GT_MetaTileEntity_BasicMachine.java | 3 +- ...MetaTileEntity_BasicMachine_GT_Recipe.java | 22 +- .../GT_MetaTileEntity_Buffer.java | 2 + .../GT_MetaTileEntity_Hatch.java | 2 +- .../GT_MetaTileEntity_MultiBlockBase.java | 45 +- .../gregtech/api/objects/GT_FluidStack.java | 4 +- .../java/gregtech/api/util/GT_BaseCrop.java | 138 +- .../java/gregtech/api/util/GT_ModHandler.java | 7 +- .../api/util/GT_OreDictUnificator.java | 2 +- .../java/gregtech/api/util/GT_Recipe.java | 11 +- .../api/util/GT_RecipeRegistrator.java | 32 +- .../gregtech/api/util/GT_Shaped_Recipe.java | 3 +- .../java/gregtech/api/util/GT_Utility.java | 153 +- src/main/java/gregtech/common/GT_Client.java | 24 - src/main/java/gregtech/common/GT_Proxy.java | 170 +- .../java/gregtech/common/GT_RecipeAdder.java | 151 +- .../gregtech/common/GT_ThaumcraftCompat.java | 2 +- .../common/GT_Worldgen_GT_Ore_Layer.java | 10 +- .../gregtech/common/GT_Worldgenerator.java | 106 +- .../common/blocks/GT_Block_Casings1.java | 1 + .../common/blocks/GT_Block_Casings2.java | 2 +- .../common/blocks/GT_Block_Casings4.java | 6 +- .../common/blocks/GT_Block_Concretes.java | 6 +- .../common/blocks/GT_Block_Machines.java | 14 +- .../gregtech/common/blocks/GT_Block_Ores.java | 17 +- .../common/blocks/GT_Item_Casings1.java | 3 - .../blocks/GT_Item_Casings_Abstract.java | 1 - .../common/blocks/GT_TileEntity_Ores.java | 13 +- .../gregtech/common/covers/GT_Cover_Arm.java | 2 +- .../common/covers/GT_Cover_ControlsWork.java | 3 +- .../common/covers/GT_Cover_Conveyor.java | 5 +- .../common/covers/GT_Cover_DoesWork.java | 3 +- .../common/covers/GT_Cover_Drain.java | 3 +- .../common/covers/GT_Cover_EUMeter.java | 3 +- .../common/covers/GT_Cover_ItemMeter.java | 11 +- .../covers/GT_Cover_NeedMaintainance.java | 3 +- .../covers/GT_Cover_PlayerDetector.java | 3 +- .../gregtech/common/covers/GT_Cover_Pump.java | 5 +- .../covers/GT_Cover_RedstoneConductor.java | 3 +- .../GT_Cover_RedstoneTransmitterInternal.java | 8 +- .../common/covers/GT_Cover_Shutter.java | 3 +- .../common/gui/GT_Container_Filter.java | 5 +- .../items/GT_MetaGenerated_Item_01.java | 180 +- .../items/GT_MetaGenerated_Item_02.java | 25 +- .../items/GT_MetaGenerated_Tool_01.java | 6 +- .../behaviors/Behaviour_Plunger_Fluid.java | 17 +- .../behaviors/Behaviour_Spray_Color.java | 3 +- .../common/render/GT_CapeRenderer.java | 17 +- .../GT_MetaTileEntity_TypeFilter.java | 1 - .../boilers/GT_MetaTileEntity_Boiler.java | 6 +- .../GT_MetaTileEntity_Boiler_Bronze.java | 2 +- .../GT_MetaTileEntity_Boiler_Solar.java | 26 +- .../GT_MetaTileEntity_Boiler_Steel.java | 2 +- .../GT_MetaTileEntity_DieselGenerator.java | 2 +- .../GT_MetaTileEntity_GasTurbine.java | 2 +- ...T_MetaTileEntity_MagicEnergyConverter.java | 2 +- ..._MetaTileEntity_MagicalEnergyAbsorber.java | 74 +- .../GT_MetaTileEntity_SteamTurbine.java | 20 +- .../basic/GT_MetaTileEntity_Disassembler.java | 5 +- .../GT_MetaTileEntity_Massfabricator.java | 14 +- .../GT_MetaTileEntity_MonsterRepellent.java | 2 +- .../basic/GT_MetaTileEntity_Pump.java | 1 - .../basic/GT_MetaTileEntity_Scanner.java | 14 + .../basic/GT_MetaTileEntity_Teleporter.java | 4 +- .../multi/GT_MetaTileEntity_AssemblyLine.java | 5 +- .../GT_MetaTileEntity_BronzeBlastFurnace.java | 8 +- .../GT_MetaTileEntity_DistillationTower.java | 46 +- ...T_MetaTileEntity_ElectricBlastFurnace.java | 31 +- .../GT_MetaTileEntity_FusionComputer.java | 26 +- .../GT_MetaTileEntity_HeatExchanger.java | 17 +- ...GT_MetaTileEntity_ImplosionCompressor.java | 12 +- .../multi/GT_MetaTileEntity_LargeBoiler.java | 15 +- ...T_MetaTileEntity_LargeBoiler_Titanium.java | 2 +- .../multi/GT_MetaTileEntity_LargeTurbine.java | 14 +- .../GT_MetaTileEntity_LargeTurbine_Gas.java | 18 +- ...T_MetaTileEntity_LargeTurbine_HPSteam.java | 15 +- ...GT_MetaTileEntity_LargeTurbine_Plasma.java | 15 +- .../GT_MetaTileEntity_LargeTurbine_Steam.java | 15 +- .../multi/GT_MetaTileEntity_MultiFurnace.java | 43 +- .../GT_MetaTileEntity_ProcessingArray.java | 74 +- .../GT_MetaTileEntity_VacuumFreezer.java | 12 +- .../GT_MetaTileEntity_QuantumChest.java | 3 + .../java/gregtech/common/tools/GT_Tool.java | 8 + .../common/tools/GT_Tool_Chainsaw_LV.java | 58 +- .../gregtech/common/tools/GT_Tool_Sense.java | 11 +- .../common/tools/GT_Tool_SoftHammer.java | 2 +- .../common/tools/GT_Tool_Turbine_Small.java | 1 - .../gregtech/common/tools/GT_Tool_Wrench.java | 16 +- .../gregtech/loaders/load/GT_FuelLoader.java | 5 + .../loaders/load/GT_ItemIterator.java | 3 +- .../loaders/misc/GT_Achievements.java | 67 +- .../oreprocessing/ProcessingBattery.java | 2 +- .../oreprocessing/ProcessingCircuit.java | 2 + .../oreprocessing/ProcessingCrafting.java | 3 +- .../loaders/oreprocessing/ProcessingDye.java | 5 +- .../loaders/oreprocessing/ProcessingLog.java | 28 +- .../oreprocessing/ProcessingNugget.java | 1 - .../oreprocessing/ProcessingPipeLarge.java | 4 +- .../oreprocessing/ProcessingPipeMedium.java | 4 +- .../oreprocessing/ProcessingPipeSmall.java | 4 +- .../oreprocessing/ProcessingPlank.java | 8 +- .../oreprocessing/ProcessingPlate1.java | 4 - .../oreprocessing/ProcessingShaping.java | 8 +- .../oreprocessing/ProcessingStone.java | 27 + .../oreprocessing/ProcessingWire01.java | 19 +- .../oreprocessing/ProcessingWire02.java | 21 +- .../oreprocessing/ProcessingWire04.java | 22 +- .../oreprocessing/ProcessingWire08.java | 22 +- .../oreprocessing/ProcessingWire12.java | 21 +- .../postload/GT_CraftingRecipeLoader.java | 115 +- .../loaders/postload/GT_CropLoader.java | 73 +- .../postload/GT_MachineRecipeLoader.java | 629 +++-- .../loaders/postload/GT_Worldgenloader.java | 23 +- .../GT_Loader_Item_Block_And_Fluid.java | 282 +- .../preload/GT_Loader_MetaTileEntities.java | 223 +- .../resources/assets/gregtech/lang/en_US.lang | 223 +- .../assets/gregtech/textures/DevCape.png | Bin 525481 -> 0 bytes .../assets/gregtech/textures/DonorCape.png | Bin 394192 -> 0 bytes .../assets/gregtech/textures/TecCape.png | Bin 1576004 -> 0 bytes .../blocks/fluids/fluid.wet.autogenerated.png | Bin 21917 -> 0 bytes .../fluids/fluid.wet.autogenerated.png.mcmeta | 5 - .../blocks/fluids/fluid.wet.concrete.png | Bin 7457 -> 0 bytes .../fluids/fluid.wet.concrete.png.mcmeta | 5 - .../textures/blocks/iconsets/FUSIONII_1.png | Bin 597 -> 822 bytes .../textures/blocks/iconsets/FUSIONII_10.png | Bin 592 -> 822 bytes .../textures/blocks/iconsets/FUSIONII_11.png | Bin 618 -> 822 bytes .../textures/blocks/iconsets/FUSIONII_12.png | Bin 586 -> 822 bytes .../textures/blocks/iconsets/FUSIONII_2.png | Bin 603 -> 822 bytes .../textures/blocks/iconsets/FUSIONII_3.png | Bin 535 -> 822 bytes .../textures/blocks/iconsets/FUSIONII_4.png | Bin 544 -> 822 bytes .../textures/blocks/iconsets/FUSIONII_5.png | Bin 558 -> 822 bytes .../textures/blocks/iconsets/FUSIONII_6.png | Bin 562 -> 822 bytes .../textures/blocks/iconsets/FUSIONII_7.png | Bin 488 -> 822 bytes .../textures/blocks/iconsets/FUSIONII_8.png | Bin 646 -> 822 bytes .../textures/blocks/iconsets/FUSIONII_9.png | Bin 582 -> 822 bytes .../textures/blocks/iconsets/FUSIONI_1.png | Bin 601 -> 822 bytes .../textures/blocks/iconsets/FUSIONI_10.png | Bin 595 -> 822 bytes .../textures/blocks/iconsets/FUSIONI_11.png | Bin 626 -> 822 bytes .../textures/blocks/iconsets/FUSIONI_12.png | Bin 594 -> 822 bytes .../textures/blocks/iconsets/FUSIONI_2.png | Bin 611 -> 822 bytes .../textures/blocks/iconsets/FUSIONI_3.png | Bin 542 -> 822 bytes .../textures/blocks/iconsets/FUSIONI_4.png | Bin 551 -> 822 bytes .../textures/blocks/iconsets/FUSIONI_5.png | Bin 567 -> 822 bytes .../textures/blocks/iconsets/FUSIONI_6.png | Bin 569 -> 822 bytes .../textures/blocks/iconsets/FUSIONI_7.png | Bin 495 -> 822 bytes .../textures/blocks/iconsets/FUSIONI_8.png | Bin 649 -> 822 bytes .../textures/blocks/iconsets/FUSIONI_9.png | Bin 589 -> 822 bytes .../blocks/iconsets/LARGETURBINE1.png | Bin 515 -> 0 bytes .../blocks/iconsets/LARGETURBINE2.png | Bin 586 -> 0 bytes .../blocks/iconsets/LARGETURBINE3.png | Bin 571 -> 0 bytes .../blocks/iconsets/LARGETURBINE4.png | Bin 625 -> 0 bytes .../blocks/iconsets/LARGETURBINE5.png | Bin 366 -> 0 bytes .../blocks/iconsets/LARGETURBINE6.png | Bin 652 -> 0 bytes .../blocks/iconsets/LARGETURBINE7.png | Bin 585 -> 0 bytes .../blocks/iconsets/LARGETURBINE8.png | Bin 594 -> 0 bytes .../blocks/iconsets/LARGETURBINE9.png | Bin 564 -> 0 bytes .../blocks/iconsets/LARGETURBINE_ACTIVE1.png | Bin 761 -> 0 bytes .../iconsets/LARGETURBINE_ACTIVE1.png.mcmeta | 3 - .../blocks/iconsets/LARGETURBINE_ACTIVE2.png | Bin 1131 -> 0 bytes .../iconsets/LARGETURBINE_ACTIVE2.png.mcmeta | 3 - .../blocks/iconsets/LARGETURBINE_ACTIVE3.png | Bin 798 -> 0 bytes .../iconsets/LARGETURBINE_ACTIVE3.png.mcmeta | 3 - .../blocks/iconsets/LARGETURBINE_ACTIVE4.png | Bin 1347 -> 0 bytes .../iconsets/LARGETURBINE_ACTIVE4.png.mcmeta | 3 - .../blocks/iconsets/LARGETURBINE_ACTIVE5.png | Bin 949 -> 0 bytes .../iconsets/LARGETURBINE_ACTIVE5.png.mcmeta | 3 - .../blocks/iconsets/LARGETURBINE_ACTIVE6.png | Bin 1481 -> 0 bytes .../iconsets/LARGETURBINE_ACTIVE6.png.mcmeta | 3 - .../blocks/iconsets/LARGETURBINE_ACTIVE7.png | Bin 868 -> 0 bytes .../iconsets/LARGETURBINE_ACTIVE7.png.mcmeta | 3 - .../blocks/iconsets/LARGETURBINE_ACTIVE8.png | Bin 1176 -> 0 bytes .../iconsets/LARGETURBINE_ACTIVE8.png.mcmeta | 3 - .../blocks/iconsets/LARGETURBINE_ACTIVE9.png | Bin 898 -> 0 bytes .../iconsets/LARGETURBINE_ACTIVE9.png.mcmeta | 3 - .../iconsets/MACHINE_CASING_DRAGONEGG.png | Bin 472 -> 822 bytes .../blocks/iconsets/MACHINE_CASING_FUSION.png | Bin 649 -> 822 bytes .../iconsets/MACHINE_CASING_FUSION_2.png | Bin 646 -> 822 bytes .../iconsets/MACHINE_CASING_FUSION_COIL.png | Bin 549 -> 822 bytes .../iconsets/MACHINE_CASING_FUSION_GLASS.png | Bin 616 -> 822 bytes .../MACHINE_CASING_FUSION_GLASS_YELLOW.png | Bin 594 -> 822 bytes .../blocks/iconsets/MACHINE_CASING_MAGIC.png | Bin 500 -> 822 bytes .../iconsets/MACHINE_CASING_MAGIC_ACTIVE.png | Bin 500 -> 822 bytes .../iconsets/MACHINE_CASING_MAGIC_FRONT.png | Bin 330 -> 822 bytes .../MACHINE_CASING_MAGIC_FRONT_ACTIVE.png | Bin 330 -> 822 bytes .../blocks/iconsets/OVERLAY_TELEPORTER.png | Bin 577 -> 822 bytes .../iconsets/OVERLAY_TELEPORTER_ACTIVE.png | Bin 577 -> 822 bytes .../blocks/iconsets/VENT_ADVANCED.png | Bin 720 -> 3126 bytes .../textures/blocks/iconsets/VENT_NORMAL.png | Bin 606 -> 3126 bytes .../textures/items/gt.metaitem.01/407.png | Bin 2975 -> 0 bytes .../textures/items/gt.metaitem.01/408.png | Bin 2959 -> 0 bytes .../textures/items/gt.metaitem.01/409.png | Bin 2932 -> 0 bytes .../textures/items/gt.metaitem.01/410.png | Bin 2917 -> 0 bytes .../textures/items/gt.metaitem.01/411.png | Bin 2955 -> 0 bytes .../textures/items/gt.metaitem.01/412.png | Bin 2966 -> 0 bytes .../textures/items/gt.metaitem.01/413.png | Bin 2941 -> 0 bytes src/main/resources/assets/ic2/sounds.json | 437 +-- src/main/resources/mcmod.info | 2 +- 226 files changed, 4190 insertions(+), 2944 deletions(-) delete mode 100644 src/main/resources/assets/gregtech/textures/DevCape.png delete mode 100644 src/main/resources/assets/gregtech/textures/DonorCape.png delete mode 100644 src/main/resources/assets/gregtech/textures/TecCape.png delete mode 100644 src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.wet.autogenerated.png delete mode 100644 src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.wet.autogenerated.png.mcmeta delete mode 100644 src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.wet.concrete.png delete mode 100644 src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.wet.concrete.png.mcmeta delete mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE1.png delete mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE2.png delete mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE3.png delete mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE4.png delete mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE5.png delete mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE6.png delete mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE7.png delete mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE8.png delete mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE9.png delete mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE1.png delete mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE1.png.mcmeta delete mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE2.png delete mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE2.png.mcmeta delete mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE3.png delete mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE3.png.mcmeta delete mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE4.png delete mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE4.png.mcmeta delete mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE5.png delete mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE5.png.mcmeta delete mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE6.png delete mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE6.png.mcmeta delete mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE7.png delete mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE7.png.mcmeta delete mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE8.png delete mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE8.png.mcmeta delete mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE9.png delete mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE9.png.mcmeta delete mode 100644 src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/407.png delete mode 100644 src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/408.png delete mode 100644 src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/409.png delete mode 100644 src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/410.png delete mode 100644 src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/411.png delete mode 100644 src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/412.png delete mode 100644 src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/413.png diff --git a/.gitignore b/.gitignore index 1f07e926..27501eda 100644 --- a/.gitignore +++ b/.gitignore @@ -14,6 +14,7 @@ thumbs.db *.jar *.war *.ear +*.txt # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml hs_err_pid* @@ -32,6 +33,7 @@ tmp/ local.properties .settings/ .loadpath +/eclipse # Eclipse Core .project @@ -70,8 +72,10 @@ local.properties .idea_modules/ /out/ -eclipse/ -*.bat -gradle/ -libs/libs.zip -lib/ +gradle/wrapper/gradle-wrapper.properties +gradlew +gradlew.bat + +# Linux +*~ + diff --git a/build.gradle b/build.gradle index 45f685aa..57760837 100644 --- a/build.gradle +++ b/build.gradle @@ -75,6 +75,10 @@ repositories { name 'Railcraft' artifactPattern "http://addons-origin.cursecdn.com/files/${config.railcraft.cf}/[module]_[revision].[ext]" } + ivy { + name 'IC2NuclearControl' + artifactPattern "http://addons-origin.cursecdn.com/files/${config.nc.cf}/[module]-[revision].[ext]" + } } dependencies { @@ -95,7 +99,7 @@ dependencies { provided name: 'CoFHLib', version: config.cofhlib.version, ext: 'jar' provided name: 'CoFHCore', version: config.cofhcore.version, ext: 'jar' provided name: 'Railcraft', version: config.railcraft.version, ext: 'jar' - compile files('lib/IC2NuclearControl-2.3.3a-Exist.jar') + provided name: 'IC2NuclearControl', version: config.nc.version, ext: 'jar' } processResources @@ -134,4 +138,4 @@ task devJar(type: Jar) { artifacts { archives devJar -} +} \ No newline at end of file diff --git a/build.properties b/build.properties index 2e3c6402..31d72a21 100644 --- a/build.properties +++ b/build.properties @@ -1,8 +1,8 @@ minecraft.version=1.7.10 forge.version=10.13.4.1566-1.7.10 +gt.version=5.09.22 -gt.version=5.08.33.27 ae2.version=rv2-beta-33 applecore.version=1.7.10-1.2.1+107.59407 buildcraft.version=7.1.11 @@ -20,3 +20,5 @@ ic2.version=2.2.790-experimental nei.version=1.0.3.57 railcraft.cf=2219/321 railcraft.version=1.7.10-9.4.0.0 +nc.cf=2275/987 +nc.version=2.3.4a diff --git a/src/main/java/gregtech/GT_Mod.java b/src/main/java/gregtech/GT_Mod.java index 0d088ab1..ee06e1e9 100644 --- a/src/main/java/gregtech/GT_Mod.java +++ b/src/main/java/gregtech/GT_Mod.java @@ -1,5 +1,11 @@ package gregtech; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.PrintStream; +import java.util.*; +import java.util.Map.Entry; + import cpw.mods.fml.common.*; import cpw.mods.fml.common.event.*; import cpw.mods.fml.common.registry.EntityRegistry; @@ -26,7 +32,9 @@ import gregtech.loaders.load.GT_FuelLoader; import gregtech.loaders.load.GT_ItemIterator; import gregtech.loaders.load.GT_SonictronLoader; import gregtech.loaders.misc.GT_Achievements; +import gregtech.loaders.misc.GT_Bees; import gregtech.loaders.misc.GT_CoverLoader; +import gregtech.loaders.misc.OreProcessingConfiguration; import gregtech.loaders.postload.*; import gregtech.loaders.preload.*; import ic2.api.recipe.IRecipeInput; @@ -48,20 +56,15 @@ import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.oredict.OreDictionary; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.PrintStream; -import java.util.*; -import java.util.Map.Entry; +//import forestry.factory.recipes.ISqueezerRecipe; +//import forestry.factory.tiles.TileCentrifuge; +//import forestry.factory.tiles.TileSqueezer; -//import forestry.factory.gadgets.MachineCentrifuge; -//import forestry.factory.gadgets.MachineCentrifuge.RecipeManager; -//import forestry.factory.gadgets.MachineSqueezer; @Mod(modid = "gregtech", name = "GregTech", version = "MC1710", useMetadata = false, dependencies = "required-after:IC2; after:Forestry; after:PFAAGeologica; after:Thaumcraft; after:Railcraft; after:appliedenergistics2; after:ThermalExpansion; after:TwilightForest; after:harvestcraft; after:magicalcrops; after:BuildCraft|Transport; after:BuildCraft|Silicon; after:BuildCraft|Factory; after:BuildCraft|Energy; after:BuildCraft|Core; after:BuildCraft|Builders; after:GalacticraftCore; after:GalacticraftMars; after:GalacticraftPlanets; after:ThermalExpansion|Transport; after:ThermalExpansion|Energy; after:ThermalExpansion|Factory; after:RedPowerCore; after:RedPowerBase; after:RedPowerMachine; after:RedPowerCompat; after:RedPowerWiring; after:RedPowerLogic; after:RedPowerLighting; after:RedPowerWorld; after:RedPowerControl;") public class GT_Mod implements IGT_Mod { - public static final int VERSION = 508; + public static final int VERSION = 509; public static final int REQUIRED_IC2 = 624; @Mod.Instance("gregtech") public static GT_Mod instance; @@ -71,7 +74,7 @@ public class GT_Mod public static GT_Achievements achievements; static { - if ((508 != GregTech_API.VERSION) || (508 != GT_ModHandler.VERSION) || (508 != GT_OreDictUnificator.VERSION) || (508 != GT_Recipe.VERSION) || (508 != GT_Utility.VERSION) || (508 != GT_RecipeRegistrator.VERSION) || (508 != Element.VERSION) || (508 != Materials.VERSION) || (508 != OrePrefixes.VERSION)) { + if ((509 != GregTech_API.VERSION) || (509 != GT_ModHandler.VERSION) || (509 != GT_OreDictUnificator.VERSION) || (509 != GT_Recipe.VERSION) || (509 != GT_Utility.VERSION) || (509 != GT_RecipeRegistrator.VERSION) || (509 != Element.VERSION) || (509 != Materials.VERSION) || (509 != OrePrefixes.VERSION)) { throw new GT_ItsNotMyFaultException("One of your Mods included GregTech-API Files inside it's download, mention this to the Mod Author, who does this bad thing, and tell him/her to use reflection. I have added a Version check, to prevent Authors from breaking my Mod that way."); } } @@ -220,34 +223,34 @@ public class GT_Mod gregtechproxy.mHungerEffect = tMainConfig.get("general", "AFK_Hunger", false).getBoolean(false); gregtechproxy.mHardRock = tMainConfig.get("general", "harderstone", false).getBoolean(false); gregtechproxy.mInventoryUnification = tMainConfig.get("general", "InventoryUnification", true).getBoolean(true); + gregtechproxy.mGTBees = tMainConfig.get("general", "GTBees", true).getBoolean(true); gregtechproxy.mCraftingUnification = tMainConfig.get("general", "CraftingUnification", true).getBoolean(true); gregtechproxy.mNerfedWoodPlank = tMainConfig.get("general", "WoodNeedsSawForCrafting", true).getBoolean(true); gregtechproxy.mNerfedVanillaTools = tMainConfig.get("general", "smallerVanillaToolDurability", true).getBoolean(true); gregtechproxy.mSortToTheEnd = tMainConfig.get("general", "EnsureToBeLoadedLast", true).getBoolean(true); - gregtechproxy.mDisableIC2Cables = tMainConfig.get("general", "DisableIC2Cables", false).getBoolean(false); + gregtechproxy.mDisableIC2Cables = tMainConfig.get("general", "DisableIC2Cables", true).getBoolean(true); gregtechproxy.mAchievements = tMainConfig.get("general", "EnableAchievements", true).getBoolean(true); - gregtechproxy.mAE2Integration = tMainConfig.get("general", "EnableAE2Integration", Loader.isModLoaded("appliedenergistics2")).getBoolean(Loader.isModLoaded("appliedenergistics2")); + gregtechproxy.mAE2Integration = GregTech_API.sSpecialFile.get(ConfigCategories.general, "EnableAE2Integration", Loader.isModLoaded("appliedenergistics2")); + gregtechproxy.mNerfedCombs = tMainConfig.get("general", "NerfCombs", true).getBoolean(true); + gregtechproxy.mHideUnusedOres = tMainConfig.get("general", "HideUnusedOres", true).getBoolean(true); + gregtechproxy.mHideRecyclingRecipes = tMainConfig.get("general", "HideRecyclingRecipes", true).getBoolean(true); - - GregTech_API.mOutputRF = GregTech_API.sOPStuff.get(ConfigCategories.general, "OutputRF", false); + GregTech_API.mOutputRF = GregTech_API.sOPStuff.get(ConfigCategories.general, "OutputRF", true); GregTech_API.mInputRF = GregTech_API.sOPStuff.get(ConfigCategories.general, "InputRF", false); GregTech_API.mEUtoRF = GregTech_API.sOPStuff.get(ConfigCategories.general, "100EUtoRF", 360); GregTech_API.mRFtoEU = GregTech_API.sOPStuff.get(ConfigCategories.general, "100RFtoEU", 20); - GregTech_API.mRFExplosions = GregTech_API.sOPStuff.get(ConfigCategories.general, "RFExplosions", true); + GregTech_API.mRFExplosions = GregTech_API.sOPStuff.get(ConfigCategories.general, "RFExplosions", false); GregTech_API.meIOLoaded = Loader.isModLoaded("EnderIO"); gregtechproxy.mChangeHarvestLevels = GregTech_API.sMaterialProperties.get("havestLevel", "activateHarvestLevelChange", false); if(gregtechproxy.mChangeHarvestLevels){ - gregtechproxy.mGraniteHavestLevel = (int) GregTech_API.sMaterialProperties.get("havestLevel", "graniteHarvestLevel", 3); - gregtechproxy.mMaxHarvestLevel=(int) Math.min(15, GregTech_API.sMaterialProperties.get("havestLevel", "maxLevel",7)); - for(Materials tMaterial : Materials.values()){ - if(tMaterial!=null&&tMaterial.mToolQuality>0&&tMaterial.mMetaItemSubID=0){ - gregtechproxy.mHarvestLevel[tMaterial.mMetaItemSubID] = GregTech_API.sMaterialProperties.get("materialHavestLevel", tMaterial.mDefaultLocalName,tMaterial.mToolQuality); - } - } - } - - + gregtechproxy.mGraniteHavestLevel = (int) GregTech_API.sMaterialProperties.get("havestLevel", "graniteHarvestLevel", 3); + gregtechproxy.mMaxHarvestLevel=(int) Math.min(15, GregTech_API.sMaterialProperties.get("havestLevel", "maxLevel",7)); + for(Materials tMaterial : Materials.values()){ + if(tMaterial!=null&&tMaterial.mToolQuality>0&&tMaterial.mMetaItemSubID=0){ + gregtechproxy.mHarvestLevel[tMaterial.mMetaItemSubID] = GregTech_API.sMaterialProperties.get("materialHavestLevel", tMaterial.mDefaultLocalName,tMaterial.mToolQuality); + } + }} if (tMainConfig.get("general", "hardermobspawners", true).getBoolean(true)) { Blocks.mob_spawner.setHardness(500.0F).setResistance(6000000.0F); @@ -295,6 +298,8 @@ public class GT_Mod new Enchantment_EnderDamage(); new Enchantment_Radioactivity(); + new OreProcessingConfiguration(aEvent.getModConfigurationDirectory()).run(); + new GT_Loader_OreProcessing().run(); new GT_Loader_OreDictionary().run(); new GT_Loader_ItemData().run(); @@ -384,6 +389,9 @@ public class GT_Mod e.printStackTrace(GT_Log.err); } } + + new GT_Bees(); + gregtechproxy.onLoad(); if (gregtechproxy.mSortToTheEnd) { new GT_ItemIterator().run(); @@ -476,18 +484,13 @@ public class GT_Mod Map outputs = tRecipe.getAllProducts(); ItemStack[] tOutputs = new ItemStack[outputs.size()]; int[] tChances = new int[outputs.size()]; - int i =0; + int i = 0; for (Map.Entry entry : outputs.entrySet()) { - tChances[i] = (int) (entry.getValue()*10000); + tChances[i] = (int) (entry.getValue() * 10000); tOutputs[i] = entry.getKey().copy(); i++; } -// for (int i = 0; i < outputs.size(); i++) { -// tOutputs[i] = outputs.entrySet(). -// tChances[i] = (tOriginalChances[i].intValue() * 100); -// } GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes.addRecipe(true, new ItemStack[]{tRecipe.getInput()}, tOutputs, null, tChances, null, null, 128, 5, 0); - } } catch (Throwable e) { if (GT_Values.D1) { @@ -642,6 +645,7 @@ public class GT_Mod GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe(false, new ItemStack[]{new ItemStack(Items.filled_map, 1, 32767)}, new ItemStack[]{ItemList.Tool_DataStick.getWithName(1L, "Scanned Map Data", new Object[0])}, ItemList.Tool_DataStick.getWithName(1L, "Stick to save it to", new Object[0]), null, null, 128, 32, 0); GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe(false, new ItemStack[]{ItemList.Tool_DataOrb.getWithName(1L, "Orb to overwrite", new Object[0])}, new ItemStack[]{ItemList.Tool_DataOrb.getWithName(1L, "Copy of the Orb", new Object[0])}, ItemList.Tool_DataOrb.getWithName(0L, "Orb to copy", new Object[0]), null, null, 512, 32, 0); GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe(false, new ItemStack[]{ItemList.Tool_DataStick.getWithName(1L, "Stick to overwrite", new Object[0])}, new ItemStack[]{ItemList.Tool_DataStick.getWithName(1L, "Copy of the Stick", new Object[0])}, ItemList.Tool_DataStick.getWithName(0L, "Stick to copy", new Object[0]), null, null, 128, 32, 0); + GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe(false, new ItemStack[]{ItemList.Tool_DataStick.getWithName(1L, "Raw Prospection Data", new Object[0])}, new ItemStack[]{ItemList.Tool_DataStick.getWithName(1L, "Analyzed Prospection Data", new Object[0])}, null, null, null, 1000, 32, 0); for (Materials tMaterial : Materials.VALUES) { if ((tMaterial.mElement != null) && (!tMaterial.mElement.mIsIsotope) && (tMaterial != Materials.Magic) && (tMaterial.getMass() > 0L)) { ItemStack tOutput = ItemList.Tool_DataOrb.get(1L, new Object[0]); @@ -672,6 +676,15 @@ public class GT_Mod } } } + + if(GregTech_API.mOutputRF||GregTech_API.mInputRF){ + GT_Utility.checkAvailabilities(); + if(!GT_Utility.RF_CHECK){ + GregTech_API.mOutputRF = false; + GregTech_API.mInputRF = false; + } + } + achievements = new GT_Achievements(); Map.Entry tRecipe; GT_Log.out.println("GT_Mod: Loading finished, deallocating temporary Init Variables."); diff --git a/src/main/java/gregtech/api/GregTech_API.java b/src/main/java/gregtech/api/GregTech_API.java index bc651b13..d38b1c72 100644 --- a/src/main/java/gregtech/api/GregTech_API.java +++ b/src/main/java/gregtech/api/GregTech_API.java @@ -81,7 +81,8 @@ public class GregTech_API { * 9216 - 9727 are used for GregTech Automation Machines. * 9728 - 10239 are reserved for 28Smiles. * 10240 - 10751 are reserved for VirMan. - * 10752 - 11263 are reserved for the next one who asks me. + * 10752 - 11263 are reserved for Briareos81. + * 11264 - 12000 are reserved for the next one who asks me. * 9728 - 32766 are currently free. *

* Contact me if you need a free ID-Range, which doesn't conflict with other Addons. @@ -149,7 +150,7 @@ public class GregTech_API { /** * For the API Version check */ - public static volatile int VERSION = 508; + public static volatile int VERSION = 509; @Deprecated public static IGT_RecipeAdder sRecipeAdder; /** @@ -174,7 +175,7 @@ public class GregTech_API { * Initialized by the Block creation. */ public static Block sBlockMachines; - public static Block sBlockOres1; + public static Block sBlockOres1, sBlockGem, sBlockMetal1, sBlockMetal2, sBlockMetal3, sBlockMetal4, sBlockMetal5, sBlockMetal6, sBlockMetal7, sBlockMetal8, sBlockGem1, sBlockGem2, sBlockGem3, sBlockReinforced; public static Block sBlockGranites, sBlockConcretes; public static Block sBlockCasings1, sBlockCasings2, sBlockCasings3, sBlockCasings4; /** diff --git a/src/main/java/gregtech/api/enums/ConfigCategories.java b/src/main/java/gregtech/api/enums/ConfigCategories.java index 1245d7ac..51eead9a 100644 --- a/src/main/java/gregtech/api/enums/ConfigCategories.java +++ b/src/main/java/gregtech/api/enums/ConfigCategories.java @@ -25,7 +25,8 @@ public enum ConfigCategories { disabledrecipes, recipereplacements, storageblockcrafting, - storageblockdecrafting; + storageblockdecrafting, + crops; } public enum Machines { diff --git a/src/main/java/gregtech/api/enums/Element.java b/src/main/java/gregtech/api/enums/Element.java index 61528a11..d9459306 100644 --- a/src/main/java/gregtech/api/enums/Element.java +++ b/src/main/java/gregtech/api/enums/Element.java @@ -263,7 +263,7 @@ public enum Element { $Ma(0, 0, -100, -1, null, "Anti-Magic", false), $Nt(0, -10000, 0, -1, null, "Anti-Neutronium", false); - public static volatile int VERSION = 508; + public static volatile int VERSION = 509; public final long mProtons, mNeutrons, mAdditionalMass, mHalfLifeSeconds; public final String mName, mDecayTo; public final boolean mIsIsotope; diff --git a/src/main/java/gregtech/api/enums/GT_Values.java b/src/main/java/gregtech/api/enums/GT_Values.java index 85e0af4b..93c7ef73 100644 --- a/src/main/java/gregtech/api/enums/GT_Values.java +++ b/src/main/java/gregtech/api/enums/GT_Values.java @@ -89,7 +89,7 @@ public class GT_Values { * File Paths and Resource Paths */ public static final String - TEX_DIR = "textures/", TEX_DIR_GUI = TEX_DIR + "gui/", TEX_DIR_ITEM = TEX_DIR + "items/", TEX_DIR_BLOCK = TEX_DIR + "blocks/", TEX_DIR_ENTITY = TEX_DIR + "entity/", TEX_DIR_ASPECTS = TEX_DIR + "aspects/", RES_PATH = MOD_ID + ":" + TEX_DIR, RES_PATH_GUI = MOD_ID + ":" + TEX_DIR_GUI, RES_PATH_ITEM = MOD_ID + ":", RES_PATH_BLOCK = MOD_ID + ":", RES_PATH_ENTITY = MOD_ID + ":" + TEX_DIR_ENTITY, RES_PATH_ASPECTS = MOD_ID + ":" + TEX_DIR_ASPECTS, RES_PATH_IC2 = MOD_ID_IC2.toLowerCase() + ":"; + TEX_DIR = "textures/", TEX_DIR_GUI = TEX_DIR + "gui/", TEX_DIR_ITEM = TEX_DIR + "items/", TEX_DIR_BLOCK = TEX_DIR + "blocks/", TEX_DIR_ENTITY = TEX_DIR + "entity/", TEX_DIR_ASPECTS = TEX_DIR + "aspects/", RES_PATH = MOD_ID + ":" + TEX_DIR, RES_PATH_GUI = MOD_ID + ":" + TEX_DIR_GUI, RES_PATH_ITEM = MOD_ID + ":", RES_PATH_BLOCK = MOD_ID + ":", RES_PATH_ENTITY = MOD_ID + ":" + TEX_DIR_ENTITY, RES_PATH_ASPECTS = MOD_ID + ":" + TEX_DIR_ASPECTS, RES_PATH_IC2 = MOD_ID_IC2.toLowerCase() + ":", RES_PATH_MODEL = MOD_ID + ":" + TEX_DIR + "models/"; /** * The Mod Object itself. That is the GT_Mod-Object. It's needed to open GUI's and similar. */ diff --git a/src/main/java/gregtech/api/enums/ItemList.java b/src/main/java/gregtech/api/enums/ItemList.java index cd8d39d3..c1cd5ce1 100644 --- a/src/main/java/gregtech/api/enums/ItemList.java +++ b/src/main/java/gregtech/api/enums/ItemList.java @@ -194,13 +194,6 @@ public enum ItemList implements IItemContainer { Cell_Air, Large_Fluid_Cell_Steel, Large_Fluid_Cell_TungstenSteel, - Large_Fluid_Cell_Aluminium, - Large_Fluid_Cell_StainlessSteel, - Large_Fluid_Cell_Titanium, - Large_Fluid_Cell_Chrome, - Large_Fluid_Cell_Iridium, - Large_Fluid_Cell_Osmium, - Large_Fluid_Cell_Neutronium, ThermosCan_Empty, ThermosCan_Dark_Coffee, ThermosCan_Dark_Cafe_au_lait, @@ -619,55 +612,37 @@ public enum ItemList implements IItemContainer { Machine_LV_Hammer, Machine_MV_Hammer, Machine_HV_Hammer, Machine_EV_Hammer, Machine_IV_Hammer, Machine_LV_FluidHeater, Machine_MV_FluidHeater, Machine_HV_FluidHeater, Machine_EV_FluidHeater, Machine_IV_FluidHeater, - Neutron_Reflector, - Reactor_Coolant_He_1, - Reactor_Coolant_He_3, - Reactor_Coolant_He_6, - Reactor_Coolant_NaK_1, - Reactor_Coolant_NaK_3, - Reactor_Coolant_NaK_6, - ThoriumCell_1, - ThoriumCell_2, - ThoriumCell_4, - FusionComputer_LuV, - FusionComputer_ZPMV, - FusionComputer_UV, - Casing_Fusion_Coil, - Casing_Fusion, - Casing_Fusion2, - Generator_Plasma_IV, - Generator_Plasma_LuV, - Generator_Plasma_ZPMV, - MagicEnergyConverter_LV, - MagicEnergyConverter_MV, - MagicEnergyConverter_HV, - MagicEnergyAbsorber_LV, - MagicEnergyAbsorber_MV, - MagicEnergyAbsorber_HV, - MagicEnergyAbsorber_EV, - Depleted_Thorium_1, - Depleted_Thorium_2, - Depleted_Thorium_4, - Processing_Array, - Distillation_Tower, - Energy_LapotronicOrb2, + Reactor_Coolant_He_1, Reactor_Coolant_He_3, Reactor_Coolant_He_6, Reactor_Coolant_NaK_1, Reactor_Coolant_NaK_3, Reactor_Coolant_NaK_6, + ThoriumCell_1, ThoriumCell_2, ThoriumCell_4, + FusionComputer_LuV, FusionComputer_ZPMV, FusionComputer_UV, + Casing_Fusion_Coil, Casing_Fusion, Casing_Fusion2, + Generator_Plasma_IV, Generator_Plasma_LuV, Generator_Plasma_ZPMV, + MagicEnergyConverter_LV, MagicEnergyConverter_MV, MagicEnergyConverter_HV, + MagicEnergyAbsorber_LV, MagicEnergyAbsorber_MV, MagicEnergyAbsorber_HV, MagicEnergyAbsorber_EV, + Depleted_Thorium_1, Depleted_Thorium_2, Depleted_Thorium_4, + Processing_Array, Distillation_Tower, Energy_LapotronicOrb2, ZPM2, Quantum_Tank_LV, Quantum_Tank_MV, Quantum_Tank_HV, Quantum_Tank_EV, Quantum_Tank_IV, Quantum_Chest_LV, Quantum_Chest_MV, Quantum_Chest_HV, Quantum_Chest_EV, Quantum_Chest_IV, NULL, Cover_RedstoneTransmitterExternal, Cover_RedstoneTransmitterInternal, Cover_RedstoneReceiverExternal, Cover_RedstoneReceiverInternal, - LargeSteamTurbine, + LargeSteamTurbine, LargeGasTurbine, LargeHPSteamTurbine, LargePlasmaTurbine, Ingot_Heavy1, Ingot_Heavy2, Ingot_Heavy3, Pump_LV, Pump_MV, Pump_HV, Pump_EV, Pump_IV, - Teleporter, - Cover_NeedsMaintainance, - Casing_Turbine, Casing_Turbine1, Casing_Turbine2, Casing_Turbine3, - MobRep_LV, MobRep_MV, MobRep_HV, MobRep_EV, MobRep_IV, LargeGasTurbine, LargeHPSteamTurbine, LargePlasmaTurbine, Cover_PlayerDetector, Machine_Multi_HeatExchanger, Uraniumcell_1, Uraniumcell_2, Uraniumcell_4, Moxcell_1, Moxcell_2, Moxcell_4, - Machine_Multi_Assemblyline; - + Teleporter, Cover_NeedsMaintainance, Casing_Turbine, Casing_Turbine1, Casing_Turbine2, Casing_Turbine3, Casing_EngineIntake, + MobRep_LV, MobRep_MV, MobRep_HV, MobRep_EV, MobRep_IV, Cover_PlayerDetector, Machine_Multi_HeatExchanger, + Block_BronzePlate, Block_IridiumTungstensteel, Block_Plascrete, Block_TungstenSteelReinforced, + Honeycomb, Charcoal_Pile, Block_BrittleCharcoal, Seismic_Prospector, OilDrill, AdvancedMiner2, PyrolyseOven, OilCracker, Crop_Drop_UUMBerry, Crop_Drop_UUABerry, Empty_Board_Basic, Empty_Board_Elite, + Battery_Charger_4by4_ULV, Battery_Charger_4by4_LV, Battery_Charger_4by4_MV, Battery_Charger_4by4_HV, Battery_Charger_4by4_EV, Battery_Charger_4by4_IV, Battery_Charger_4by4_LuV, Battery_Charger_4by4_ZPM, Battery_Charger_4by4_UV, Battery_Charger_4by4_MAX, + MicroTransmitter_HV, MicroTransmitter_EV, MicroTransmitter_IV, MicroTransmitter_LUV, MicroTransmitter_ZPM, + Crop_Drop_Bauxite, Crop_Drop_Ilmenite, Crop_Drop_Pitchblende, Crop_Drop_Uraninite, Crop_Drop_Thorium, Crop_Drop_Nickel, Crop_Drop_Zinc, Crop_Drop_Manganese, Crop_Drop_Scheelite, Crop_Drop_Platinum, Crop_Drop_Iridium, Crop_Drop_Osmium, Crop_Drop_Naquadah, Uraniumcell_1, Uraniumcell_2, Uraniumcell_4, Moxcell_1, Moxcell_2, Moxcell_4, + ModularBasicHelmet, ModularBasicChestplate, ModularBasicLeggings, ModularBasicBoots, + ModularElectric1Helmet, ModularElectric1Chestplate, ModularElectric1Leggings, ModularElectric1Boots, + ModularElectric2Helmet, ModularElectric2Chestplate, ModularElectric2Leggings, ModularElectric2Boots, Block_Powderbarrel, GelledToluene, + FluidRegulator_LV, FluidRegulator_MV, FluidRegulator_HV, FluidRegulator_EV, FluidRegulator_IV, FluidFilter, CuringOven, Machine_Multi_Assemblyline, Machine_Multi_DieselEngine; public static final ItemList[] DYE_ONLY_ITEMS = {Color_00, Color_01, Color_02, Color_03, Color_04, Color_05, Color_06, Color_07, Color_08, Color_09, Color_10, Color_11, Color_12, Color_13, Color_14, Color_15}, SPRAY_CAN_DYES = {Spray_Color_00, Spray_Color_01, Spray_Color_02, Spray_Color_03, Spray_Color_04, Spray_Color_05, Spray_Color_06, Spray_Color_07, Spray_Color_08, Spray_Color_09, Spray_Color_10, Spray_Color_11, Spray_Color_12, Spray_Color_13, Spray_Color_14, Spray_Color_15}, SPRAY_CAN_DYES_USED = {Spray_Color_Used_00, Spray_Color_Used_01, Spray_Color_Used_02, Spray_Color_Used_03, Spray_Color_Used_04, Spray_Color_Used_05, Spray_Color_Used_06, Spray_Color_Used_07, Spray_Color_Used_08, Spray_Color_Used_09, Spray_Color_Used_10, Spray_Color_Used_11, Spray_Color_Used_12, Spray_Color_Used_13, Spray_Color_Used_14, Spray_Color_Used_15}, TRANSFORMERS = {Transformer_LV_ULV, Transformer_MV_LV, Transformer_HV_MV, Transformer_EV_HV, Transformer_IV_EV, Transformer_LuV_IV, Transformer_ZPM_LuV, Transformer_UV_ZPM, Transformer_MAX_UV}, MACHINE_HULLS = {Hull_ULV, Hull_LV, Hull_MV, Hull_HV, Hull_EV, Hull_IV, Hull_LuV, Hull_ZPM, Hull_UV, Hull_MAX}, HATCHES_DYNAMO = {Hatch_Dynamo_ULV, Hatch_Dynamo_LV, Hatch_Dynamo_MV, Hatch_Dynamo_HV, Hatch_Dynamo_EV, Hatch_Dynamo_IV, Hatch_Dynamo_LuV, Hatch_Dynamo_ZPM, Hatch_Dynamo_UV, Hatch_Dynamo_MAX}, HATCHES_ENERGY = {Hatch_Energy_ULV, Hatch_Energy_LV, Hatch_Energy_MV, Hatch_Energy_HV, Hatch_Energy_EV, Hatch_Energy_IV, Hatch_Energy_LuV, Hatch_Energy_ZPM, Hatch_Energy_UV, Hatch_Energy_MAX}, HATCHES_INPUT = {Hatch_Input_ULV, Hatch_Input_LV, Hatch_Input_MV, Hatch_Input_HV, Hatch_Input_EV, Hatch_Input_IV, Hatch_Input_LuV, Hatch_Input_ZPM, Hatch_Input_UV, Hatch_Input_MAX}, HATCHES_INPUT_BUS = {Hatch_Input_Bus_ULV, Hatch_Input_Bus_LV, Hatch_Input_Bus_MV, Hatch_Input_Bus_HV, Hatch_Input_Bus_EV, Hatch_Input_Bus_IV, Hatch_Input_Bus_LuV, Hatch_Input_Bus_ZPM, Hatch_Input_Bus_UV, Hatch_Input_Bus_MAX}, HATCHES_OUTPUT = {Hatch_Output_ULV, Hatch_Output_LV, Hatch_Output_MV, Hatch_Output_HV, Hatch_Output_EV, Hatch_Output_IV, Hatch_Output_LuV, Hatch_Output_ZPM, Hatch_Output_UV, Hatch_Output_MAX}, HATCHES_OUTPUT_BUS = {Hatch_Output_Bus_ULV, Hatch_Output_Bus_LV, Hatch_Output_Bus_MV, Hatch_Output_Bus_HV, Hatch_Output_Bus_EV, Hatch_Output_Bus_IV, Hatch_Output_Bus_LuV, Hatch_Output_Bus_ZPM, Hatch_Output_Bus_UV, Hatch_Output_Bus_MAX}, HATCHES_MUFFLER = {Hatch_Muffler_LV, Hatch_Muffler_LV, Hatch_Muffler_MV, Hatch_Muffler_HV, Hatch_Muffler_EV, Hatch_Muffler_IV, Hatch_Muffler_LuV, Hatch_Muffler_ZPM, Hatch_Muffler_UV, Hatch_Muffler_MAX}; - public static Fluid sOilExtraHeavy, sOilHeavy, sOilMedium, sOilLight, sNaturalGas; + public static Fluid sOilExtraHeavy, sEpichlorhydrin, sDrillingFluid, sNitricAcid, sBlueVitriol, sNickelSulfate, sToluene, sNitrationMixture; private ItemStack mStack; private boolean mHasNotBeenSet = true; diff --git a/src/main/java/gregtech/api/enums/Materials.java b/src/main/java/gregtech/api/enums/Materials.java index cdfbf198..7be109fa 100644 --- a/src/main/java/gregtech/api/enums/Materials.java +++ b/src/main/java/gregtech/api/enums/Materials.java @@ -24,1215 +24,1218 @@ import static gregtech.api.enums.GT_Values.MOD_ID_TC; * This List contains every Material I know about, and is used to determine Recipes for the */ public enum Materials implements IColorModulationContainer, ISubTagContainer { - /** - * This is the Default Material returned in case no Material has been found or a NullPointer has been inserted at a location where it shouldn't happen. - *

- * Mainly for preventing NullPointer Exceptions and providing Default Values. - */ - _NULL(-1, TextureSet.SET_NONE, 1.0F, 0, 0, 0, 255, 255, 255, 0, "NULL", 0, 0, 0, 0, false, false, 1, 1, 1, Dyes._NULL, Element._NULL, Arrays.asList(new TC_AspectStack(TC_Aspects.VACUOS, 1))), + /** + * This is the Default Material returned in case no Material has been found or a NullPointer has been inserted at a location where it shouldn't happen. + * + * Mainly for preventing NullPointer Exceptions and providing Default Values. + */ + _NULL ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "NULL" , 0, 0, 0, 0, false, false, 1, 1, 1, Dyes._NULL , Element._NULL , Arrays.asList(new TC_AspectStack(TC_Aspects.VACUOS, 1))), + + /** + * Direct Elements + */ + Aluminium ( 19, TextureSet.SET_DULL , 10.0F, 128, 2, 1|2 |8 |32|64|128 , 128, 200, 240, 0, "Aluminium" , 0, 0, 933, 1700, true, false, 3, 1, 1, Dyes.dyeLightBlue , Element.Al , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.VOLATUS, 1))), + Americium ( 103, TextureSet.SET_METALLIC , 1.0F, 0, 3, 1|2 |8 |32 , 200, 200, 200, 0, "Americium" , 0, 0, 1449, 0, false, false, 3, 1, 1, Dyes.dyeLightGray , Element.Am , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Antimony ( 58, TextureSet.SET_SHINY , 1.0F, 0, 2, 1|2 |8 |32 , 220, 220, 240, 0, "Antimony" , 0, 0, 903, 0, false, false, 2, 1, 1, Dyes.dyeLightGray , Element.Sb , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.AQUA, 1))), + Argon ( 24, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 0, 255, 0, 240, "Argon" , 0, 0, 83, 0, false, true, 5, 1, 1, Dyes.dyeGreen , Element.Ar , Arrays.asList(new TC_AspectStack(TC_Aspects.AER, 2))), + Arsenic ( 39, TextureSet.SET_DULL , 1.0F, 0, 2, 1|2 |8|16|32 , 255, 255, 255, 0, "Arsenic" , 0, 0, 1090, 0, false, false, 3, 1, 1, Dyes.dyeOrange , Element.As , Arrays.asList(new TC_AspectStack(TC_Aspects.VENENUM, 3))), + Barium ( 63, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 |32 , 255, 255, 255, 0, "Barium" , 0, 0, 1000, 0, false, false, 1, 1, 1, Dyes._NULL , Element.Ba , Arrays.asList(new TC_AspectStack(TC_Aspects.VINCULUM, 3))), + Beryllium ( 8, TextureSet.SET_METALLIC , 14.0F, 64, 2, 1|2 |8 |32|64 , 100, 180, 100, 0, "Beryllium" , 0, 0, 1560, 0, false, false, 6, 1, 1, Dyes.dyeGreen , Element.Be , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.LUCRUM, 1))), + Bismuth ( 90, TextureSet.SET_METALLIC , 6.0F, 64, 1, 1|2 |8 |32|64|128 , 100, 160, 160, 0, "Bismuth" , 0, 0, 544, 0, false, false, 2, 1, 1, Dyes.dyeCyan , Element.Bi , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1))), + Boron ( 9, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 |32 , 250, 250, 250, 0, "Boron" , 0, 0, 2349, 0, false, false, 1, 1, 1, Dyes.dyeWhite , Element.B , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 3))), + Caesium ( 62, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Caesium" , 0, 0, 301, 0, false, false, 4, 1, 1, Dyes._NULL , Element.Cs , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Calcium ( 26, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |32 , 255, 245, 245, 0, "Calcium" , 0, 0, 1115, 0, false, false, 4, 1, 1, Dyes.dyePink , Element.Ca , Arrays.asList(new TC_AspectStack(TC_Aspects.SANO, 1), new TC_AspectStack(TC_Aspects.TUTAMEN, 1))), + Carbon ( 10, TextureSet.SET_DULL , 1.0F, 64, 2, 1|2 |32|64|128 , 20, 20, 20, 0, "Carbon" , 0, 0, 3800, 0, false, false, 2, 1, 1, Dyes.dyeBlack , Element.C , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 1), new TC_AspectStack(TC_Aspects.IGNIS, 1))), + Cadmium ( 55, TextureSet.SET_SHINY , 1.0F, 0, 2, 1 |8 |32 , 50, 50, 60, 0, "Cadmium" , 0, 0, 594, 0, false, false, 3, 1, 1, Dyes.dyeGray , Element.Cd , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 1), new TC_AspectStack(TC_Aspects.POTENTIA, 1), new TC_AspectStack(TC_Aspects.VENENUM, 1))), + Cerium ( 65, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Cerium" , 0, 0, 1068, 1068, true, false, 4, 1, 1, Dyes._NULL , Element.Ce , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Chlorine ( 23, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 255, 255, 255, 0, "Chlorine" , 0, 0, 171, 0, false, false, 2, 1, 1, Dyes.dyeCyan , Element.Cl , Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 2), new TC_AspectStack(TC_Aspects.PANNUS, 1))), + Chrome ( 30, TextureSet.SET_SHINY , 11.0F, 256, 3, 1|2 |8 |32|64|128 , 255, 230, 230, 0, "Chrome" , 0, 0, 2180, 1700, true, false, 5, 1, 1, Dyes.dyePink , Element.Cr , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MACHINA, 1))), + Cobalt ( 33, TextureSet.SET_METALLIC , 8.0F, 512, 3, 1|2 |8 |32|64 , 80, 80, 250, 0, "Cobalt" , 0, 0, 1768, 0, false, false, 3, 1, 1, Dyes.dyeBlue , Element.Co , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1))), + Copper ( 35, TextureSet.SET_SHINY , 1.0F, 0, 1, 1|2 |8 |32 |128 , 255, 100, 0, 0, "Copper" , 0, 0, 1357, 0, false, false, 3, 1, 1, Dyes.dyeOrange , Element.Cu , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.PERMUTATIO, 1))), + Deuterium ( 2, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 255, 255, 0, 240, "Deuterium" , 0, 0, 14, 0, false, true, 10, 1, 1, Dyes.dyeYellow , Element.D , Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 3))), + Dysprosium ( 73, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Dysprosium" , 0, 0, 1680, 1680, true, false, 4, 1, 1, Dyes._NULL , Element.Dy , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 3))), + Empty ( 0, TextureSet.SET_NONE , 1.0F, 0, 2, 256/*Only for Prefixes which need it*/, 255, 255, 255, 255, "Empty" , 0, 0, -1, 0, false, true, 1, 1, 1, Dyes._NULL , Element._NULL , Arrays.asList(new TC_AspectStack(TC_Aspects.VACUOS, 2))), + Erbium ( 75, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Erbium" , 0, 0, 1802, 1802, true, false, 4, 1, 1, Dyes._NULL , Element.Er , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Europium ( 70, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Europium" , 0, 0, 1099, 1099, true, false, 4, 1, 1, Dyes._NULL , Element.Eu , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Fluorine ( 14, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 255, 255, 255, 127, "Fluorine" , 0, 0, 53, 0, false, true, 2, 1, 1, Dyes.dyeGreen , Element.F , Arrays.asList(new TC_AspectStack(TC_Aspects.PERDITIO, 2))), + Gadolinium ( 71, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Gadolinium" , 0, 0, 1585, 1585, true, false, 4, 1, 1, Dyes._NULL , Element.Gd , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Gallium ( 37, TextureSet.SET_SHINY , 1.0F, 64, 2, 1|2 |8 |32 , 220, 220, 255, 0, "Gallium" , 0, 0, 302, 0, false, false, 5, 1, 1, Dyes.dyeLightGray , Element.Ga , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.ELECTRUM, 1))), + Gold ( 86, TextureSet.SET_SHINY , 12.0F, 64, 2, 1|2 |8 |32|64|128 , 255, 255, 30, 0, "Gold" , 0, 0, 1337, 0, false, false, 4, 1, 1, Dyes.dyeYellow , Element.Au , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.LUCRUM, 2))), + Holmium ( 74, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Holmium" , 0, 0, 1734, 1734, true, false, 4, 1, 1, Dyes._NULL , Element.Ho , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Hydrogen ( 1, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 0, 0, 255, 240, "Hydrogen" , 1, 15, 14, 0, false, true, 2, 1, 1, Dyes.dyeBlue , Element.H , Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 1))), + Helium ( 4, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 255, 255, 0, 240, "Helium" , 0, 0, 1, 0, false, true, 5, 1, 1, Dyes.dyeYellow , Element.He , Arrays.asList(new TC_AspectStack(TC_Aspects.AER, 2))), + Helium_3 ( 5, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 255, 255, 0, 240, "Helium-3" , 0, 0, 1, 0, false, true, 10, 1, 1, Dyes.dyeYellow , Element.He_3 , Arrays.asList(new TC_AspectStack(TC_Aspects.AER, 3))), + Indium ( 56, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 64, 0, 128, 0, "Indium" , 0, 0, 429, 0, false, false, 4, 1, 1, Dyes.dyeGray , Element.In , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Iridium ( 84, TextureSet.SET_DULL , 6.0F, 2560, 3, 1|2 |8 |32|64|128 , 240, 240, 245, 0, "Iridium" , 0, 0, 2719, 2719, true, false, 10, 1, 1, Dyes.dyeWhite , Element.Ir , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MACHINA, 1))), + Iron ( 32, TextureSet.SET_METALLIC , 6.0F, 256, 2, 1|2 |8 |32|64|128 , 200, 200, 200, 0, "Iron" , 0, 0, 1811, 0, false, false, 3, 1, 1, Dyes.dyeLightGray , Element.Fe , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 3))), + Lanthanum ( 64, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Lanthanum" , 0, 0, 1193, 1193, true, false, 4, 1, 1, Dyes._NULL , Element.La , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Lead ( 89, TextureSet.SET_DULL , 8.0F, 64, 1, 1|2 |8 |32|64|128 , 140, 100, 140, 0, "Lead" , 0, 0, 600, 0, false, false, 3, 1, 1, Dyes.dyePurple , Element.Pb , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.ORDO, 1))), + Lithium ( 6, TextureSet.SET_DULL , 1.0F, 0, 2, 1|2 |8 |32 , 225, 220, 255, 0, "Lithium" , 0, 0, 454, 0, false, false, 4, 1, 1, Dyes.dyeLightBlue , Element.Li , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 1), new TC_AspectStack(TC_Aspects.POTENTIA, 2))), + Lutetium ( 78, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Lutetium" , 0, 0, 1925, 1925, true, false, 4, 1, 1, Dyes._NULL , Element.Lu , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Magic (-128, TextureSet.SET_SHINY , 8.0F, 5120, 5, 1|2|4|8|16|32|64|128 , 100, 0, 200, 0, "Magic" , 5, 32, 5000, 0, false, false, 7, 1, 1, Dyes.dyePurple , Element.Ma , Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTATIO, 4))), + Magnesium ( 18, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 200, 200, 0, "Magnesium" , 0, 0, 923, 0, false, false, 3, 1, 1, Dyes.dyePink , Element.Mg , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.SANO, 1))), + Manganese ( 31, TextureSet.SET_DULL , 7.0F, 512, 2, 1|2 |8 |32|64 , 250, 250, 250, 0, "Manganese" , 0, 0, 1519, 0, false, false, 3, 1, 1, Dyes.dyeWhite , Element.Mn , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 3))), + Mercury ( 87, TextureSet.SET_SHINY , 1.0F, 0, 0, 16|32 , 255, 220, 220, 0, "Mercury" , 5, 32, 234, 0, false, false, 3, 1, 1, Dyes.dyeLightGray , Element.Hg , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 1), new TC_AspectStack(TC_Aspects.AQUA, 1), new TC_AspectStack(TC_Aspects.VENENUM, 1))), + Molybdenum ( 48, TextureSet.SET_SHINY , 7.0F, 512, 2, 1|2 |8 |32|64 , 180, 180, 220, 0, "Molybdenum" , 0, 0, 2896, 0, false, false, 1, 1, 1, Dyes.dyeBlue , Element.Mo , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1))), + Neodymium ( 67, TextureSet.SET_METALLIC , 7.0F, 512, 2, 1|2 |8 |32|64|128 , 100, 100, 100, 0, "Neodymium" , 0, 0, 1297, 1297, true, false, 4, 1, 1, Dyes._NULL , Element.Nd , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 2))), + Neutronium ( 129, TextureSet.SET_DULL , 24.0F, 655360, 6, 1|2 |8 |32|64|128 , 250, 250, 250, 0, "Neutronium" , 0, 0, 10000, 0, false, false, 20, 1, 1, Dyes.dyeWhite , Element.Nt , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 4), new TC_AspectStack(TC_Aspects.VITREUS, 3), new TC_AspectStack(TC_Aspects.ALIENIS, 2))), + Nickel ( 34, TextureSet.SET_METALLIC , 6.0F, 64, 2, 1|2 |8 |32|64|128 , 200, 200, 250, 0, "Nickel" , 0, 0, 1728, 0, false, false, 4, 1, 1, Dyes.dyeLightBlue , Element.Ni , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.IGNIS, 1))), + Niobium ( 47, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 190, 180, 200, 0, "Niobium" , 0, 0, 2750, 2750, true, false, 5, 1, 1, Dyes._NULL , Element.Nb , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.ELECTRUM, 1))), + Nitrogen ( 12, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 0, 150, 200, 240, "Nitrogen" , 0, 0, 63, 0, false, true, 2, 1, 1, Dyes.dyeCyan , Element.N , Arrays.asList(new TC_AspectStack(TC_Aspects.AER, 2))), + Osmium ( 83, TextureSet.SET_METALLIC , 16.0F, 1280, 4, 1|2 |8 |32|64|128 , 50, 50, 255, 0, "Osmium" , 0, 0, 3306, 3306, true, false, 10, 1, 1, Dyes.dyeBlue , Element.Os , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MACHINA, 1), new TC_AspectStack(TC_Aspects.NEBRISUM, 1))), + Oxygen ( 13, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 0, 100, 200, 240, "Oxygen" , 0, 0, 54, 0, false, true, 1, 1, 1, Dyes.dyeWhite , Element.O , Arrays.asList(new TC_AspectStack(TC_Aspects.AER, 1))), + Palladium ( 52, TextureSet.SET_SHINY , 8.0F, 512, 2, 1|2 |8 |32|64|128 , 128, 128, 128, 0, "Palladium" , 0, 0, 1828, 1828, true, false, 4, 1, 1, Dyes.dyeGray , Element.Pd , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 3))), + Phosphor ( 21, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 |32 , 255, 255, 0, 0, "Phosphor" , 0, 0, 317, 0, false, false, 2, 1, 1, Dyes.dyeYellow , Element.P , Arrays.asList(new TC_AspectStack(TC_Aspects.IGNIS, 2), new TC_AspectStack(TC_Aspects.POTENTIA, 1))), + Platinum ( 85, TextureSet.SET_SHINY , 12.0F, 64, 2, 1|2 |8 |32|64|128 , 255, 255, 200, 0, "Platinum" , 0, 0, 2041, 0, false, false, 6, 1, 1, Dyes.dyeOrange , Element.Pt , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.NEBRISUM, 1))), + Plutonium ( 100, TextureSet.SET_METALLIC , 6.0F, 512, 3, 1|2 |8 |32|64 , 240, 50, 50, 0, "Plutonium 244" , 0, 0, 912, 0, false, false, 6, 1, 1, Dyes.dyeLime , Element.Pu , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 2))), + Plutonium241 ( 101, TextureSet.SET_SHINY , 6.0F, 512, 3, 1|2 |8 |32|64 , 250, 70, 70, 0, "Plutonium 241" , 0, 0, 912, 0, false, false, 6, 1, 1, Dyes.dyeLime , Element.Pu_241 , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 3))), + Potassium ( 25, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1|2 |32 , 250, 250, 250, 0, "Potassium" , 0, 0, 336, 0, false, false, 2, 1, 1, Dyes.dyeWhite , Element.K , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 1), new TC_AspectStack(TC_Aspects.POTENTIA, 1))), + Praseodymium ( 66, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Praseodymium" , 0, 0, 1208, 1208, true, false, 4, 1, 1, Dyes._NULL , Element.Pr , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Promethium ( 68, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Promethium" , 0, 0, 1315, 1315, true, false, 4, 1, 1, Dyes._NULL , Element.Pm , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Radon ( 93, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 255, 0, 255, 240, "Radon" , 0, 0, 202, 0, false, true, 5, 1, 1, Dyes.dyePurple , Element.Rn , Arrays.asList(new TC_AspectStack(TC_Aspects.AER, 1), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Rubidium ( 43, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 240, 30, 30, 0, "Rubidium" , 0, 0, 312, 0, false, false, 4, 1, 1, Dyes.dyeRed , Element.Rb , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.VITREUS, 1))), + Samarium ( 69, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Samarium" , 0, 0, 1345, 1345, true, false, 4, 1, 1, Dyes._NULL , Element.Sm , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Scandium ( 27, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Scandium" , 0, 0, 1814, 1814, true, false, 2, 1, 1, Dyes.dyeYellow , Element.Sc , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Silicon ( 20, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 60, 60, 80, 0, "Silicon" , 0, 0, 1687, 1687, true, false, 1, 1, 1, Dyes.dyeBlack , Element.Si , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.TENEBRAE, 1))), + Silver ( 54, TextureSet.SET_SHINY , 10.0F, 64, 2, 1|2 |8 |32|64|128 , 220, 220, 255, 0, "Silver" , 0, 0, 1234, 0, false, false, 3, 1, 1, Dyes.dyeLightGray , Element.Ag , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.LUCRUM, 1))), + Sodium ( 17, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |32 , 0, 0, 150, 0, "Sodium" , 0, 0, 370, 0, false, false, 1, 1, 1, Dyes.dyeBlue , Element.Na , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 2), new TC_AspectStack(TC_Aspects.LUX, 1))), + Strontium ( 44, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 |32 , 200, 200, 200, 0, "Strontium" , 0, 0, 1050, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Element.Sr , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.STRONTIO, 1))), + Sulfur ( 22, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 |32 , 200, 200, 0, 0, "Sulfur" , 0, 0, 388, 0, false, false, 2, 1, 1, Dyes.dyeYellow , Element.S , Arrays.asList(new TC_AspectStack(TC_Aspects.IGNIS, 1))), + Tantalum ( 80, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Tantalum" , 0, 0, 3290, 0, false, false, 4, 1, 1, Dyes._NULL , Element.Ta , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.VINCULUM, 1))), + Tellurium ( 59, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Tellurium" , 0, 0, 722, 0, false, false, 4, 1, 1, Dyes.dyeGray , Element.Te , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Terbium ( 72, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Terbium" , 0, 0, 1629, 1629, true, false, 4, 1, 1, Dyes._NULL , Element.Tb , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Thorium ( 96, TextureSet.SET_SHINY , 6.0F, 512, 2, 1|2 |8 |32|64 , 0, 30, 0, 0, "Thorium" , 0, 0, 2115, 0, false, false, 4, 1, 1, Dyes.dyeBlack , Element.Th , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Thulium ( 76, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Thulium" , 0, 0, 1818, 1818, true, false, 4, 1, 1, Dyes._NULL , Element.Tm , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Tin ( 57, TextureSet.SET_DULL , 1.0F, 0, 1, 1|2 |8 |32 |128 , 220, 220, 220, 0, "Tin" , 0, 0, 505, 505, false, false, 3, 1, 1, Dyes.dyeWhite , Element.Sn , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.VITREUS, 1))), + Titanium ( 28, TextureSet.SET_METALLIC , 7.0F, 1600, 3, 1|2 |8 |32|64|128 , 220, 160, 240, 0, "Titanium" , 0, 0, 1941, 1500, true, false, 5, 1, 1, Dyes.dyePurple , Element.Ti , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.TUTAMEN, 1))), + Tritium ( 3, TextureSet.SET_METALLIC , 1.0F, 0, 2, 16|32 , 255, 0, 0, 240, "Tritium" , 0, 0, 14, 0, false, true, 10, 1, 1, Dyes.dyeRed , Element.T , Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 4))), + Tungsten ( 81, TextureSet.SET_METALLIC , 7.0F, 2560, 3, 1|2 |8 |32|64|128 , 50, 50, 50, 0, "Tungsten" , 0, 0, 3695, 2500, true, false, 4, 1, 1, Dyes.dyeBlack , Element.W , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 3), new TC_AspectStack(TC_Aspects.TUTAMEN, 1))), + Uranium ( 98, TextureSet.SET_METALLIC , 6.0F, 512, 3, 1|2 |8 |32|64 , 50, 240, 50, 0, "Uranium 238" , 0, 0, 1405, 0, false, false, 4, 1, 1, Dyes.dyeGreen , Element.U , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Uranium235 ( 97, TextureSet.SET_SHINY , 6.0F, 512, 3, 1|2 |8 |32|64 , 70, 250, 70, 0, "Uranium 235" , 0, 0, 1405, 0, false, false, 4, 1, 1, Dyes.dyeGreen , Element.U_235 , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 2))), + Vanadium ( 29, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 50, 50, 50, 0, "Vanadium" , 0, 0, 2183, 2183, true, false, 2, 1, 1, Dyes.dyeBlack , Element.V , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Ytterbium ( 77, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Ytterbium" , 0, 0, 1097, 1097, true, false, 4, 1, 1, Dyes._NULL , Element.Yb , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Yttrium ( 45, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 220, 250, 220, 0, "Yttrium" , 0, 0, 1799, 1799, true, false, 4, 1, 1, Dyes._NULL , Element.Y , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), + Zinc ( 36, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1|2 |8 |32 , 250, 240, 240, 0, "Zinc" , 0, 0, 692, 0, false, false, 2, 1, 1, Dyes.dyeWhite , Element.Zn , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.SANO, 1))), + + /** + * The "Random Material" ones. + */ + Organic ( -1, TextureSet.SET_LEAF , 1.0F, 0, 1, false), + AnyCopper ( -1, TextureSet.SET_SHINY , 1.0F, 0, 3, false), + AnyBronze ( -1, TextureSet.SET_SHINY , 1.0F, 0, 3, false), + AnyIron ( -1, TextureSet.SET_SHINY , 1.0F, 0, 3, false), + Crystal ( -1, TextureSet.SET_SHINY , 1.0F, 0, 3, false), + Quartz ( -1, TextureSet.SET_QUARTZ , 1.0F, 0, 2, false), + Metal ( -1, TextureSet.SET_METALLIC , 1.0F, 0, 2, false), + Unknown ( -1, TextureSet.SET_DULL , 1.0F, 0, 2, false), + Cobblestone ( -1, TextureSet.SET_DULL , 1.0F, 0, 1, false), + Brick ( -1, TextureSet.SET_DULL , 1.0F, 0, 1, false), + BrickNether ( -1, TextureSet.SET_DULL , 1.0F, 0, 1, false), + + /** + * The "I don't care" Section, everything I don't want to do anything with right now, is right here. Just to make the Material Finder shut up about them. + * But I do see potential uses in some of these Materials. + */ + TarPitch ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Tar Pitch" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Serpentine ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 |8 , 255, 255, 255, 0, "Serpentine" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Flux ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Flux" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + RedstoneAlloy ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Redstone Alloy" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + OsmiumTetroxide ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Osmium Tetroxide" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + NitricAcid ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 0 , 255, 255, 255, 0, "Nitric Acid" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + RubberTreeSap ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 0 , 255, 255, 255, 0, "Rubber Tree Sap" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + AquaRegia ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 0 , 255, 255, 255, 0, "Aqua Regia" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + SolutionBlueVitriol ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 0 , 255, 255, 255, 0, "Blue Vitriol Solution" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + SolutionNickelSulfate( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 0 , 255, 255, 255, 0, "Nickel Sulfate Solution" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Signalum ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Signalum" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Lumium ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Lumium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + PhasedIron ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Phased Iron" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + PhasedGold ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Phased Gold" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Soularium ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Soularium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Endium ( 770, TextureSet.SET_DULL , 1.0F, 0, 2, 1|2 |8 , 165, 220, 250, 0, "Endium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeYellow ), + Prismarine ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 |4 , 255, 255, 255, 0, "Prismarine" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + GraveyardDirt ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Graveyard Dirt" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + DarkSteel ( 364, TextureSet.SET_DULL , 8.0F, 512, 3, 1|2 |8 |64 , 80, 70, 80, 0, "Dark Steel" , 0, 0, 1811, 0, false, false, 5, 1, 1, Dyes.dyePurple ), + Terrasteel ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Terrasteel" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + ConductiveIron ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Conductive Iron" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + ElectricalSteel ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Electrical Steel" , 0, 0, 1811, 1000, true, false, 3, 1, 1, Dyes._NULL ), + EnergeticAlloy ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Energetic Alloy" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + VibrantAlloy ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Vibrant Alloy" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + PulsatingIron ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Pulsating Iron" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Teslatite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 60, 180, 200, 0, "Teslatite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Fluix ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 |4 , 255, 255, 255, 0, "Fluix" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Manasteel ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Manasteel" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Tennantite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Tennantite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + DarkThaumium ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Dark Thaumium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Alfium ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Alfium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Ryu ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Ryu" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Mutation ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Mutation" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Aquamarine ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 |4 , 255, 255, 255, 0, "Aquamarine" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Ender ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Ender" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + ElvenElementium ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Elven Elementium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + EnrichedCopper ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Enriched Copper" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + DiamondCopper ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Diamond Copper" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + SodiumPeroxide ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Sodium Peroxide" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + IridiumSodiumOxide ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Iridium Sodium Oxide" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + PlatinumGroupSludge ( 241, TextureSet.SET_POWDER , 1.0F, 0, 2, 1 , 0, 30, 0, 0, "Platinum Group Sludge" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Fairy ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Fairy" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Ludicrite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Ludicrite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Pokefennium ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Pokefennium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Draconium ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Draconium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + DraconiumAwakened ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Awakened Draconium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + PurpleAlloy ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 0 , 100, 180, 255, 0, "Purple Alloy" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + InfusedTeslatite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 0 , 100, 180, 255, 0, "Infused Teslatite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + + /** + * Unknown Material Components. Dead End Section. + */ + Adamantium ( 319, TextureSet.SET_SHINY , 10.0F, 5120, 5, 1|2 |8 |64|128 , 255, 255, 255, 0, "Adamantium" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray ), + Adamite ( -1, TextureSet.SET_NONE , 1.0F, 0, 3, 1 |8 , 255, 255, 255, 0, "Adamite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray ), + Adluorite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 |8 , 255, 255, 255, 0, "Adluorite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Agate ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Agate" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Alduorite ( 485, TextureSet.SET_SHINY , 1.0F, 0, 2, 1 |8|16 , 159, 180, 180, 0, "Alduorite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Amber ( 514, TextureSet.SET_RUBY , 4.0F, 128, 2, 1 |4|8 |64 , 255, 128, 0, 127, "Amber" , 5, 3, -1, 0, false, true, 1, 1, 1, Dyes.dyeOrange , Arrays.asList(new TC_AspectStack(TC_Aspects.VINCULUM, 2), new TC_AspectStack(TC_Aspects.VITREUS, 1))), + Ammonium ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Ammonium" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Amordrine ( -1, TextureSet.SET_NONE , 6.0F, 64, 2, 1|2 |8|16 |64 , 255, 255, 255, 0, "Amordrine" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Andesite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 |8 , 255, 255, 255, 0, "Andesite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Angmallen ( 958, TextureSet.SET_METALLIC , 10.0F, 128, 2, 1|2 |8|16 |64 , 215, 225, 138, 0, "Angmallen" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Ardite ( -1, TextureSet.SET_NONE , 6.0F, 64, 2, 1|2 |8 |64 , 255, 0, 0, 0, "Ardite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow ), + Aredrite ( -1, TextureSet.SET_NONE , 6.0F, 64, 2, 1|2 |8 |64 , 255, 0, 0, 0, "Aredrite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow ), + Atlarus ( 965, TextureSet.SET_METALLIC , 6.0F, 64, 2, 1|2 |8 |64 , 255, 255, 255, 0, "Atlarus" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Bitumen ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 |8 , 255, 255, 255, 0, "Bitumen" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Black ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 0 , 0, 0, 0, 0, "Black" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBlack ), + Blizz ( 851, TextureSet.SET_SHINY , 1.0F, 0, 2, 1 , 220, 233, 255, 0, "Blizz" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Blueschist ( 852, TextureSet.SET_DULL , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Blueschist" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes.dyeLightBlue ), + Bluestone ( 813, TextureSet.SET_DULL , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Bluestone" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlue ), + Bloodstone ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Bloodstone" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeRed ), + Blutonium ( -1, TextureSet.SET_SHINY , 1.0F, 0, 2, 1|2 |8 , 0, 0, 255, 0, "Blutonium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBlue ), + Carmot ( 962, TextureSet.SET_METALLIC , 16.0F, 128, 1, 1|2 |8 |64 , 217, 205, 140, 0, "Carmot" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Celenegil ( 964, TextureSet.SET_METALLIC , 10.0F, 4096, 2, 1|2 |8|16 |64 , 148, 204, 72, 0, "Celenegil" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + CertusQuartz ( 516, TextureSet.SET_QUARTZ , 5.0F, 32, 1, 1 |4|8 |64 , 210, 210, 230, 0, "Certus Quartz" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 1), new TC_AspectStack(TC_Aspects.VITREUS, 1))), + Ceruclase ( 952, TextureSet.SET_METALLIC , 6.0F, 1280, 2, 1|2 |8 , 140, 189, 208, 0, "Ceruclase" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Citrine ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Citrine" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + CobaltHexahydrate ( 853, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |16 , 80, 80, 250, 0, "Cobalt Hexahydrate" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlue ), + ConstructionFoam ( 854, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |16 , 128, 128, 128, 0, "Construction Foam" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray ), + Chert ( 857, TextureSet.SET_DULL , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Chert" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes._NULL ), + Chimerite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Chimerite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Coral ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 , 255, 128, 255, 0, "Coral" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + CrudeOil ( 858, TextureSet.SET_DULL , 1.0F, 0, 2, 1 , 10, 10, 10, 0, "Crude Oil" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack ), + Chrysocolla ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Chrysocolla" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + CrystalFlux ( -1, TextureSet.SET_QUARTZ , 1.0F, 0, 3, 1 |4 , 100, 50, 100, 0, "Flux Crystal" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Cyanite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Cyanite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeCyan ), + Dacite ( 859, TextureSet.SET_DULL , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Dacite" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes.dyeLightGray ), + DarkIron ( 342, TextureSet.SET_DULL , 7.0F, 384, 3, 1|2 |8 |64 , 55, 40, 60, 0, "Dark Iron" , 0, 0, -1, 0, false, false, 5, 1, 1, Dyes.dyePurple ), + DarkStone ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Dark Stone" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBlack ), + Demonite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Demonite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeRed ), + Desh ( 884, TextureSet.SET_DULL , 1.0F, 1280, 3, 1|2 |8 |64|128 , 40, 40, 40, 0, "Desh" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack ), + Desichalkos ( -1, TextureSet.SET_NONE , 6.0F, 1280, 3, 1|2 |8|16 |64 , 255, 255, 255, 0, "Desichalkos" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Dilithium ( 515, TextureSet.SET_DIAMOND , 1.0F, 0, 1, 1 |4|8|16 , 255, 250, 250, 127, "Dilithium" , 0, 0, -1, 0, false, true, 1, 1, 1, Dyes.dyeWhite ), + Draconic ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Draconic" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeRed ), + Drulloy ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|16 , 255, 255, 255, 0, "Drulloy" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeRed ), + Duranium ( 328, TextureSet.SET_METALLIC , 8.0F, 1280, 4, 1|2 |64 , 255, 255, 255, 0, "Duranium" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray ), + Eclogite ( 860, TextureSet.SET_DULL , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Eclogite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + ElectrumFlux ( 320, TextureSet.SET_SHINY , 16.0F, 512, 3, 1|2 |64 , 255, 255, 120, 0, "Fluxed Electrum" , 0, 0, 3000, 3000, true, false, 1, 1, 1, Dyes.dyeYellow ), + Emery ( 861, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 255, 255, 255, 0, "Emery" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Enderium ( 321, TextureSet.SET_DULL , 8.0F, 256, 3, 1|2 |64 , 89, 145, 135, 0, "Enderium" , 0, 0, 3000, 3000, true, false, 1, 1, 1, Dyes.dyeGreen , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.ALIENIS, 1))), + EnderiumBase ( -1, TextureSet.SET_DULL , 8.0F, 256, 3, 1|2 |64 , 89, 145, 135, 0, "Enderium Base" , 0, 0, 3000, 3000, true, false, 1, 1, 1, Dyes.dyeGreen , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.ALIENIS, 1))), + Energized ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 0 , 255, 255, 255, 0, "Energized" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Epidote ( 862, TextureSet.SET_DULL , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Epidote" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes._NULL ), + Eximite ( 959, TextureSet.SET_METALLIC , 5.0F, 2560, 3, 1|2 |8 |64 , 124, 90, 150, 0, "Eximite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + FierySteel ( 346, TextureSet.SET_FIERY , 8.0F, 256, 3, 1|2 |16 |64|128 , 64, 0, 0, 0, "Fiery Steel" , 5, 2048, 1811, 1000, true, false, 1, 1, 1, Dyes.dyeRed , Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTATIO, 3), new TC_AspectStack(TC_Aspects.IGNIS, 3), new TC_AspectStack(TC_Aspects.CORPUS, 3))), + Firestone ( 347, TextureSet.SET_QUARTZ , 6.0F, 1280, 3, 1 |4|8 |64 , 200, 20, 0, 0, "Firestone" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeRed ), + Fluorite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 |8 , 255, 255, 255, 0, "Fluorite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeGreen ), + FoolsRuby ( 512, TextureSet.SET_RUBY , 1.0F, 0, 2, 1 |4|8 , 255, 100, 100, 127, "Ruby" , 0, 0, -1, 0, false, true, 3, 1, 1, Dyes.dyeRed , Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 2), new TC_AspectStack(TC_Aspects.VITREUS, 2))), + Force ( 521, TextureSet.SET_DIAMOND , 10.0F, 128, 3, 1|2|4|8 |64|128 , 255, 255, 0, 0, "Force" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeYellow , Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 5))), + Forcicium ( 518, TextureSet.SET_DIAMOND , 1.0F, 0, 1, 1 |4|8|16 , 50, 50, 70, 0, "Forcicium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeGreen , Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 2))), + Forcillium ( 519, TextureSet.SET_DIAMOND , 1.0F, 0, 1, 1 |4|8|16 , 50, 50, 70, 0, "Forcillium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeGreen , Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 2))), + Gabbro ( 863, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Gabbro" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes._NULL ), + Glowstone ( 811, TextureSet.SET_SHINY , 1.0F, 0, 1, 1 |16 , 255, 255, 0, 0, "Glowstone" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow , Arrays.asList(new TC_AspectStack(TC_Aspects.LUX, 2), new TC_AspectStack(TC_Aspects.SENSUS, 1))), + Gneiss ( 864, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Gneiss" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes._NULL ), + Graphite ( 865, TextureSet.SET_DULL , 5.0F, 32, 2, 1 |8|16 |64 , 128, 128, 128, 0, "Graphite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeGray , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 2), new TC_AspectStack(TC_Aspects.IGNIS, 1))), + Graphene ( 819, TextureSet.SET_DULL , 6.0F, 32, 1, 1 |64 , 128, 128, 128, 0, "Graphene" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeGray , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 2), new TC_AspectStack(TC_Aspects.ELECTRUM, 1))), + Greenschist ( 866, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Green Schist" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGreen ), + Greenstone ( 867, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Greenstone" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGreen ), + Greywacke ( 868, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Greywacke" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray ), + Haderoth ( 963, TextureSet.SET_METALLIC , 10.0F, 3200, 3, 1|2 |8|16 |64 , 119, 52, 30, 0, "Haderoth" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Hematite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 |8 , 255, 255, 255, 0, "Hematite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Hepatizon ( 957, TextureSet.SET_METALLIC , 12.0F, 128, 2, 1|2 |8|16 |64 , 117, 94, 117, 0, "Hepatizon" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + HSLA ( 322, TextureSet.SET_METALLIC , 6.0F, 500, 2, 1|2 |64|128 , 128, 128, 128, 0, "HSLA Steel" , 0, 0, 1811, 1000, true, false, 3, 1, 1, Dyes._NULL , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 1), new TC_AspectStack(TC_Aspects.ORDO, 1))), + Ignatius ( 950, TextureSet.SET_METALLIC , 12.0F, 512, 2, 1|2 |16 , 255, 169, 83, 0, "Ignatius" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Infernal ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 0 , 255, 255, 255, 0, "Infernal" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Infuscolium ( 490, TextureSet.SET_METALLIC , 6.0F, 64, 2, 1|2 |8|16 |64 , 146, 33, 86, 0, "Infuscolium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + InfusedGold ( 323, TextureSet.SET_SHINY , 12.0F, 64, 3, 1|2 |8 |64|128 , 255, 200, 60, 0, "Infused Gold" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeYellow ), + InfusedAir ( 540, TextureSet.SET_SHARDS , 8.0F, 64, 3, 1 |4|8 |64|128 , 255, 255, 0, 0, "Aer" , 5, 160, -1, 0, false, true, 3, 1, 1, Dyes.dyeYellow , Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTATIO, 1), new TC_AspectStack(TC_Aspects.AER, 2))), + InfusedFire ( 541, TextureSet.SET_SHARDS , 8.0F, 64, 3, 1 |4|8 |64|128 , 255, 0, 0, 0, "Ignis" , 5, 320, -1, 0, false, true, 3, 1, 1, Dyes.dyeRed , Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTATIO, 1), new TC_AspectStack(TC_Aspects.IGNIS, 2))), + InfusedEarth ( 542, TextureSet.SET_SHARDS , 8.0F, 256, 3, 1 |4|8 |64|128 , 0, 255, 0, 0, "Terra" , 5, 160, -1, 0, false, true, 3, 1, 1, Dyes.dyeGreen , Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTATIO, 1), new TC_AspectStack(TC_Aspects.TERRA, 2))), + InfusedWater ( 543, TextureSet.SET_SHARDS , 8.0F, 64, 3, 1 |4|8 |64|128 , 0, 0, 255, 0, "Aqua" , 5, 160, -1, 0, false, true, 3, 1, 1, Dyes.dyeBlue , Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTATIO, 1), new TC_AspectStack(TC_Aspects.AQUA, 2))), + InfusedEntropy ( 544, TextureSet.SET_SHARDS , 32.0F, 64, 4, 1 |4|8 |64|128 , 62, 62, 62, 0, "Perditio" , 5, 320, -1, 0, false, true, 3, 1, 1, Dyes.dyeBlack , Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTATIO, 1), new TC_AspectStack(TC_Aspects.PERDITIO, 2))), + InfusedOrder ( 545, TextureSet.SET_SHARDS , 8.0F, 64, 3, 1 |4|8 |64|128 , 252, 252, 252, 0, "Ordo" , 5, 240, -1, 0, false, true, 3, 1, 1, Dyes.dyeWhite , Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTATIO, 1), new TC_AspectStack(TC_Aspects.ORDO, 2))), + InfusedVis ( -1, TextureSet.SET_SHARDS , 8.0F, 64, 3, 1 |4|8 |64|128 , 255, 0, 255, 0, "Auram" , 5, 240, -1, 0, false, true, 3, 1, 1, Dyes.dyePurple , Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTATIO, 1), new TC_AspectStack(TC_Aspects.AURAM, 2))), + InfusedDull ( -1, TextureSet.SET_SHARDS , 32.0F, 64, 3, 1 |4|8 |64|128 , 100, 100, 100, 0, "Vacuus" , 5, 160, -1, 0, false, true, 3, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTATIO, 1), new TC_AspectStack(TC_Aspects.VACUOS, 2))), + Inolashite ( 954, TextureSet.SET_NONE , 8.0F, 2304, 3, 1|2 |8|16 |64 , 148, 216, 187, 0, "Inolashite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Invisium ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Invisium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Jade ( 537, TextureSet.SET_SHINY , 1.0F, 0, 2, 1 |8 , 0, 100, 0, 0, "Jade" , 0, 0, -1, 0, false, false, 5, 1, 1, Dyes.dyeGreen , Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 6), new TC_AspectStack(TC_Aspects.VITREUS, 3))), + Jasper ( 511, TextureSet.SET_EMERALD , 1.0F, 0, 2, 1 |4|8 , 200, 80, 80, 100, "Jasper" , 0, 0, -1, 0, false, true, 3, 1, 1, Dyes.dyeRed , Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 4), new TC_AspectStack(TC_Aspects.VITREUS, 2))), + Kalendrite ( 953, TextureSet.SET_METALLIC , 5.0F, 2560, 3, 1|2 |16 , 170, 91, 189, 0, "Kalendrite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Komatiite ( 869, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Komatiite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow ), + Lava ( 700, TextureSet.SET_FLUID , 1.0F, 0, 1, 16 , 255, 64, 0, 0, "Lava" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange ), + Lemurite ( 486, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |16 , 219, 219, 219, 0, "Lemurite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Limestone ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Limestone" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Lodestone ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 |8 , 255, 255, 255, 0, "Lodestone" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Luminite ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 |8 , 250, 250, 250, 0, "Luminite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeWhite ), + Magma ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 64, 0, 0, "Magma" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange ), + Mawsitsit ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Mawsitsit" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Mercassium ( -1, TextureSet.SET_NONE , 6.0F, 64, 1, 1|2 |8 |64 , 255, 255, 255, 0, "Mercassium" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + MeteoricIron ( 340, TextureSet.SET_METALLIC , 6.0F, 384, 2, 1|2 |8 |64 , 100, 50, 80, 0, "Meteoric Iron" , 0, 0, 1811, 0, false, false, 1, 1, 1, Dyes.dyeGray , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1))), + MeteoricSteel ( 341, TextureSet.SET_METALLIC , 6.0F, 768, 2, 1|2 |64 , 50, 25, 40, 0, "Meteoric Steel" , 0, 0, 1811, 1000, true, false, 1, 1, 1, Dyes.dyeGray , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1), new TC_AspectStack(TC_Aspects.ORDO, 1))), + Meteorite ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 |8 , 80, 35, 60, 0, "Meteorite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePurple ), + Meutoite ( 487, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1 |8|16 , 95, 82, 105, 0, "Meutoite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Migmatite ( 872, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Migmatite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Mimichite ( -1, TextureSet.SET_GEM_VERTICAL , 1.0F, 0, 1, 1 |4|8 , 255, 255, 255, 0, "Mimichite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Moonstone ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 |8 , 255, 255, 255, 0, "Moonstone" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeWhite , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 1), new TC_AspectStack(TC_Aspects.ALIENIS, 1))), + Naquadah ( 324, TextureSet.SET_METALLIC , 6.0F, 1280, 4, 1|2 |8|16 |64 , 50, 50, 50, 0, "Naquadah" , 0, 0, 3000, 3000, true, false, 10, 1, 1, Dyes.dyeBlack , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 3), new TC_AspectStack(TC_Aspects.RADIO, 1), new TC_AspectStack(TC_Aspects.NEBRISUM, 1))), + NaquadahAlloy ( 325, TextureSet.SET_METALLIC , 8.0F, 5120, 5, 1|2 |64|128 , 40, 40, 40, 0, "Naquadah Alloy" , 0, 0, 3000, 3000, true, false, 10, 1, 1, Dyes.dyeBlack , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 4), new TC_AspectStack(TC_Aspects.NEBRISUM, 1))), + NaquadahEnriched ( 326, TextureSet.SET_METALLIC , 6.0F, 1280, 4, 1|2 |8|16 |64 , 50, 50, 50, 0, "Enriched Naquadah" , 0, 0, 3000, 3000, true, false, 15, 1, 1, Dyes.dyeBlack , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 3), new TC_AspectStack(TC_Aspects.RADIO, 2), new TC_AspectStack(TC_Aspects.NEBRISUM, 2))), + Naquadria ( 327, TextureSet.SET_SHINY , 1.0F, 512, 4, 1|2 |8 |64 , 30, 30, 30, 0, "Naquadria" , 0, 0, 3000, 3000, true, false, 20, 1, 1, Dyes.dyeBlack , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 4), new TC_AspectStack(TC_Aspects.RADIO, 3), new TC_AspectStack(TC_Aspects.NEBRISUM, 3))), + Nether ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 0, "Nether" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + NetherBrick ( 814, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 100, 0, 0, 0, "Nether Brick" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeRed , Arrays.asList(new TC_AspectStack(TC_Aspects.IGNIS, 1))), + NetherQuartz ( 522, TextureSet.SET_QUARTZ , 1.0F, 32, 1, 1 |4|8 |64 , 230, 210, 210, 0, "Nether Quartz" , 0, 0, -1, 0, false, false, 2, 1, 1, Dyes.dyeWhite , Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 1), new TC_AspectStack(TC_Aspects.VITREUS, 1))), + NetherStar ( 506, TextureSet.SET_NETHERSTAR , 1.0F, 5120, 4, 1 |4 |64 , 255, 255, 255, 0, "Nether Star" , 5, 50000, -1, 0, false, false, 15, 1, 1, Dyes.dyeWhite ), + Nikolite ( 812, TextureSet.SET_SHINY , 1.0F, 0, 1, 1 |8 , 60, 180, 200, 0, "Nikolite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeCyan , Arrays.asList(new TC_AspectStack(TC_Aspects.ELECTRUM, 2))), + ObsidianFlux ( -1, TextureSet.SET_DULL , 1.0F, 0, 1, 1|2 , 80, 50, 100, 0, "Fluxed Obsidian" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePurple ), + Oilsands ( 878, TextureSet.SET_NONE , 1.0F, 0, 1, 1 |8 , 10, 10, 10, 0, "Oilsands" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Onyx ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Onyx" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Orichalcum ( 966, TextureSet.SET_METALLIC , 4.5F, 3456, 3, 1|2 |8 |64 , 84, 122, 56, 0, "Orichalcum" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Osmonium ( -1, TextureSet.SET_NONE , 6.0F, 64, 1, 1|2 |8 |64 , 255, 255, 255, 0, "Osmonium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBlue ), + Oureclase ( 961, TextureSet.SET_METALLIC , 6.0F, 1920, 3, 1|2 |8 |64 , 183, 98, 21, 0, "Oureclase" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Painite ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 0, "Painite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Peanutwood ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 0, "Peanut Wood" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Petroleum ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 |8 , 255, 255, 255, 0, "Petroleum" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Pewter ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 0, "Pewter" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Phoenixite ( -1, TextureSet.SET_NONE , 6.0F, 64, 1, 1|2 |8 |64 , 255, 255, 255, 0, "Phoenixite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Potash ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 0, "Potash" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Prometheum ( 960, TextureSet.SET_METALLIC , 8.0F, 512, 1, 1|2 |8 |64 , 90, 129, 86, 0, "Prometheum" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Quartzite ( 523, TextureSet.SET_QUARTZ , 1.0F, 0, 1, 1 |4|8 , 210, 230, 210, 0, "Quartzite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeWhite ), + Quicklime ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Quicklime" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Randomite ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 |8 , 255, 255, 255, 0, "Randomite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), +// RefinedGlowstone (-326, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1|2 , 255, 255, 0, 0, "Refined Glowstone" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow ), +// RefinedObsidian (-327, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1|2 , 80, 50, 100, 0, "Refined Obsidian" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePurple ), + Rhyolite ( 875, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Rhyolite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Rubracium ( 488, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1 |8|16 , 151, 45, 45, 0, "Rubracium" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), +// RyuDragonRyder ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 0, "Ryu Dragon Ryder" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Sand ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 0, "Sand" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow ), + Sanguinite ( 955, TextureSet.SET_METALLIC , 3.0F, 4480, 4, 1|2 |8 , 185, 0, 0, 0, "Sanguinite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Siltstone ( 876, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Siltstone" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Spinel ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 0, "Spinel" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Starconium ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1|2 |8 , 255, 255, 255, 0, "Starconium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Sugilite ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Sugilite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Sunstone ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 |8 , 255, 255, 255, 0, "Sunstone" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeYellow , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 1), new TC_AspectStack(TC_Aspects.ALIENIS, 1))), + Tar ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 10, 10, 10, 0, "Tar" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack ), + Tartarite ( 956, TextureSet.SET_METALLIC , 20.0F, 7680, 5, 1|2 |8|16 , 255, 118, 60, 0, "Tartarite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Tapazite ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Tapazite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeGreen ), + Thyrium ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1|2 |8 , 255, 255, 255, 0, "Thyrium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Tourmaline ( -1, TextureSet.SET_RUBY , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Tourmaline" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + Tritanium ( 329, TextureSet.SET_METALLIC , 6.0F, 2560, 4, 1|2 |64 , 255, 255, 255, 0, "Tritanium" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.ORDO, 2))), + Turquoise ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Turquoise" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), + UUAmplifier ( 721, TextureSet.SET_FLUID , 1.0F, 0, 1, 16 , 96, 0, 128, 0, "UU-Amplifier" , 0, 0, -1, 0, false, false, 10, 1, 1, Dyes.dyePink ), + UUMatter ( 703, TextureSet.SET_FLUID , 1.0F, 0, 1, 16 , 128, 0, 196, 0, "UU-Matter" , 0, 0, -1, 0, false, false, 10, 1, 1, Dyes.dyePink ), + Void ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 200, "Void" , 0, 0, -1, 0, false, true, 1, 1, 1, Dyes._NULL , Arrays.asList(new TC_AspectStack(TC_Aspects.VACUOS, 1))), + Voidstone ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 200, "Voidstone" , 0, 0, -1, 0, false, true, 1, 1, 1, Dyes._NULL , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 1), new TC_AspectStack(TC_Aspects.VACUOS, 1))), + Vulcanite ( 489, TextureSet.SET_METALLIC , 6.0F, 64, 2, 1|2 |8|16 |64 , 255, 132, 72, 0, "Vulcanite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Vyroxeres ( 951, TextureSet.SET_METALLIC , 9.0F, 768, 3, 1|2 |8 |64 , 85, 224, 1, 0, "Vyroxeres" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL ), + Wimalite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 8 , 255, 255, 255, 0, "Wimalite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeYellow ), + Yellorite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 8 , 255, 255, 255, 0, "Yellorite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeYellow ), + Yellorium ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Yellorium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeYellow ), + Zectium ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 |8 , 255, 255, 255, 0, "Zectium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBlack ), + + /** + * Circuitry, Batteries and other Technical things + */ + Primitive ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Primitive" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 1))), + Basic ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Basic" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 2))), + Good ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Good" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 3))), + Advanced ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Advanced" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 4))), + Data ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Data" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 5))), + Elite ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Elite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 6))), + Master ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Master" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 7))), + Ultimate ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Ultimate" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 8))), + Superconductor ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Superconductor" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.ELECTRUM, 8))), + Infinite ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Infinite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray ), + + /** + * Not possible to determine exact Components + */ + Antimatter ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Antimatter" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePink , Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 9), new TC_AspectStack(TC_Aspects.PERFODIO, 8))), + BioFuel ( 705, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 255, 128, 0, 0, "Biofuel" , 0, 6, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange ), + Biomass ( 704, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 0, 255, 0, 0, "Biomass" , 3, 8, -1, 0, false, false, 1, 1, 1, Dyes.dyeGreen ), + Cheese ( 894, TextureSet.SET_FINE , 1.0F, 0, 0, 1 |8 , 255, 255, 0, 0, "Cheese" , 0, 0, 320, 0, false, false, 1, 1, 1, Dyes.dyeYellow ), + Chili ( 895, TextureSet.SET_FINE , 1.0F, 0, 0, 1 , 200, 0, 0, 0, "Chili" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeRed ), + Chocolate ( 886, TextureSet.SET_FINE , 1.0F, 0, 0, 1 , 190, 95, 0, 0, "Chocolate" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown ), + Cluster ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 127, "Cluster" , 0, 0, -1, 0, false, true, 1, 1, 1, Dyes.dyeWhite ), + CoalFuel ( 710, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 50, 50, 70, 0, "Coalfuel" , 0, 16, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack ), + Cocoa ( 887, TextureSet.SET_FINE , 1.0F, 0, 0, 1 , 190, 95, 0, 0, "Cocoa" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown ), + Coffee ( 888, TextureSet.SET_FINE , 1.0F, 0, 0, 1 , 150, 75, 0, 0, "Coffee" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown ), + Creosote ( 712, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 128, 64, 0, 0, "Creosote" , 3, 8, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown ), + Ethanol ( 706, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 255, 128, 0, 0, "Ethanol" , 0, 128, -1, 0, false, false, 1, 1, 1, Dyes.dyePurple ), + FishOil ( 711, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 255, 196, 0, 0, "Fish Oil" , 3, 2, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow , Arrays.asList(new TC_AspectStack(TC_Aspects.CORPUS, 2))), + Fuel ( 708, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 255, 255, 0, 0, "Diesel" , 0, 128, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow ), + Glue ( 726, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 200, 196, 0, 0, "Glue" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange , Arrays.asList(new TC_AspectStack(TC_Aspects.LIMUS, 2))), + Gunpowder ( 800, TextureSet.SET_DULL , 1.0F, 0, 0, 1 , 128, 128, 128, 0, "Gunpowder" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray , Arrays.asList(new TC_AspectStack(TC_Aspects.PERDITIO, 3), new TC_AspectStack(TC_Aspects.IGNIS, 4))), + FryingOilHot ( 727, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 200, 196, 0, 0, "Hot Frying Oil" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange , Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 1), new TC_AspectStack(TC_Aspects.IGNIS, 1))), + Honey ( 725, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 210, 200, 0, 0, "Honey" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow ), + Leather ( -1, TextureSet.SET_ROUGH , 1.0F, 0, 0, 1 , 150, 150, 80, 127, "Leather" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange ), + LimePure ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Pure Lime" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLime ), + Lubricant ( 724, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 255, 196, 0, 0, "Lubricant" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange , Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 2), new TC_AspectStack(TC_Aspects.MACHINA, 1))), + McGuffium239 ( 999, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 200, 50, 150, 0, "Mc Guffium 239" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePink , Arrays.asList(new TC_AspectStack(TC_Aspects.ALIENIS, 8), new TC_AspectStack(TC_Aspects.PERMUTATIO, 8), new TC_AspectStack(TC_Aspects.SPIRITUS, 8), new TC_AspectStack(TC_Aspects.AURAM, 8), new TC_AspectStack(TC_Aspects.VITIUM, 8), new TC_AspectStack(TC_Aspects.RADIO, 8), new TC_AspectStack(TC_Aspects.MAGNETO, 8), new TC_AspectStack(TC_Aspects.ELECTRUM, 8), new TC_AspectStack(TC_Aspects.NEBRISUM, 8), new TC_AspectStack(TC_Aspects.STRONTIO, 8))), + MeatRaw ( 892, TextureSet.SET_FINE , 1.0F, 0, 0, 1 , 255, 100, 100, 0, "Raw Meat" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePink ), + MeatCooked ( 893, TextureSet.SET_FINE , 1.0F, 0, 0, 1 , 150, 60, 20, 0, "Cooked Meat" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePink ), + Milk ( 885, TextureSet.SET_FINE , 1.0F, 0, 0, 1 |16 , 254, 254, 254, 0, "Milk" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , Arrays.asList(new TC_AspectStack(TC_Aspects.SANO, 2))), + Mud ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Mud" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown ), + Oil ( 707, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 10, 10, 10, 0, "Oil" , 3, 16, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack ), + Paper ( 879, TextureSet.SET_PAPER , 1.0F, 0, 0, 1 , 250, 250, 250, 0, "Paper" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , Arrays.asList(new TC_AspectStack(TC_Aspects.COGNITIO, 1))), + Peat ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Peat" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown , Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 2), new TC_AspectStack(TC_Aspects.IGNIS, 2))), + Quantum ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Quantum" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite ), + RareEarth ( 891, TextureSet.SET_FINE , 1.0F, 0, 0, 1 , 128, 128, 100, 0, "Rare Earth" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 1), new TC_AspectStack(TC_Aspects.LUCRUM, 1))), + Red ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 0, 0, 0, "Red" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeRed ), + Reinforced ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Reinforced" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray ), + SeedOil ( 713, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 196, 255, 0, 0, "Seed Oil" , 3, 2, -1, 0, false, false, 1, 1, 1, Dyes.dyeLime , Arrays.asList(new TC_AspectStack(TC_Aspects.GRANUM, 2))), + SeedOilHemp ( 722, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 196, 255, 0, 0, "Hemp Seed Oil" , 3, 2, -1, 0, false, false, 1, 1, 1, Dyes.dyeLime , Arrays.asList(new TC_AspectStack(TC_Aspects.GRANUM, 2))), + SeedOilLin ( 723, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 196, 255, 0, 0, "Lin Seed Oil" , 3, 2, -1, 0, false, false, 1, 1, 1, Dyes.dyeLime , Arrays.asList(new TC_AspectStack(TC_Aspects.GRANUM, 2))), + Stone ( 299, TextureSet.SET_ROUGH , 4.0F, 32, 1, 1 |64|128 , 205, 205, 205, 0, "Stone" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.TERRA, 1))), + TNT ( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "TNT" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeRed , Arrays.asList(new TC_AspectStack(TC_Aspects.PERDITIO, 7), new TC_AspectStack(TC_Aspects.IGNIS, 4))), + Unstable ( -1, TextureSet.SET_NONE , 1.0F, 0, 4, 0 , 255, 255, 255, 127, "Unstable" , 0, 0, -1, 0, false, true, 1, 1, 1, Dyes.dyeWhite , Arrays.asList(new TC_AspectStack(TC_Aspects.PERDITIO, 4))), + Unstableingot ( -1, TextureSet.SET_NONE , 1.0F, 0, 4, 0 , 255, 255, 255, 127, "Unstable" , 0, 0, -1, 0, false, true, 1, 1, 1, Dyes.dyeWhite , Arrays.asList(new TC_AspectStack(TC_Aspects.PERDITIO, 4))), + Wheat ( 881, TextureSet.SET_POWDER , 1.0F, 0, 0, 1 , 255, 255, 196, 0, "Wheat" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow , Arrays.asList(new TC_AspectStack(TC_Aspects.MESSIS, 2))), + + /** + * TODO: This + */ + AluminiumBrass ( -1, TextureSet.SET_METALLIC , 6.0F, 64, 2, 1|2 |64 , 255, 255, 255, 0, "Aluminium Brass" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow ), + Osmiridium ( 317, TextureSet.SET_METALLIC , 7.0F, 1600, 3, 1|2 |64|128 , 100, 100, 255, 0, "Osmiridium" , 0, 0, 3333, 2500, true, false, 1, 1, 1, Dyes.dyeLightBlue , 1, Arrays.asList(new MaterialStack(Iridium, 3), new MaterialStack(Osmium, 1))), + Sunnarium ( 318, TextureSet.SET_SHINY , 1.0F, 0, 1, 1|2 , 255, 255, 0, 0, "Sunnarium" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow ), + Endstone ( 808, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Endstone" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes.dyeYellow ), + Netherrack ( 807, TextureSet.SET_DULL , 1.0F, 0, 0, 1 , 200, 0, 0, 0, "Netherrack" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes.dyeRed ), + SoulSand ( -1, TextureSet.SET_DULL , 1.0F, 0, 0, 1 , 255, 255, 255, 0, "Soulsand" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes.dyeBrown ), + + /** + * First Degree Compounds + */ + Methane ( 715, TextureSet.SET_FLUID , 1.0F, 0, 1, 16 , 255, 255, 255, 0, "Methane" , 1, 45, -1, 0, false, false, 3, 1, 1, Dyes.dyeMagenta , 1, Arrays.asList(new MaterialStack(Carbon, 1), new MaterialStack(Hydrogen, 4))), + CarbonDioxide ( 497, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 169, 208, 245, 240, "Carbon Dioxide" , 0, 0, 25, 1, false, true, 1, 1, 1, Dyes.dyeLightBlue , 1, Arrays.asList(new MaterialStack(Carbon, 1), new MaterialStack(Oxygen, 2))), + NobleGases ( 496, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 169, 208, 245, 240, "Noble Gases" , 0, 0, 4, 0, false, true, 1, 1, 1, Dyes.dyeLightBlue , 2, Arrays.asList(new MaterialStack(CarbonDioxide,21),new MaterialStack(Helium, 9), new MaterialStack(Methane, 3), new MaterialStack(Deuterium, 1))), + Air ( -1, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 169, 208, 245, 240, "Air" , 0, 0, -1, 0, false, true, 1, 1, 1, Dyes.dyeLightBlue , 0, Arrays.asList(new MaterialStack(Nitrogen, 40), new MaterialStack(Oxygen, 11), new MaterialStack(Argon, 1),new MaterialStack(NobleGases,1))), + LiquidAir ( 495, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 169, 208, 245, 240, "Liquid Air" , 0, 0, 4, 0, false, true, 1, 1, 1, Dyes.dyeLightBlue , 2, Arrays.asList(new MaterialStack(Nitrogen, 40), new MaterialStack(Oxygen, 11), new MaterialStack(Argon, 1),new MaterialStack(NobleGases,1))), + Almandine ( 820, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 |8 , 255, 0, 0, 0, "Almandine" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeRed , 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Iron, 3), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 12))), + Andradite ( 821, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 |8 , 150, 120, 0, 0, "Andradite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeYellow , 1, Arrays.asList(new MaterialStack(Calcium, 3), new MaterialStack(Iron, 2), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 12))), + AnnealedCopper ( 345, TextureSet.SET_SHINY , 1.0F, 0, 2, 1|2 |128 , 255, 120, 20, 0, "Annealed Copper" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeOrange , 2, Arrays.asList(new MaterialStack(Copper, 1))), + Asbestos ( 946, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8 , 230, 230, 230, 0, "Asbestos" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(Magnesium, 3), new MaterialStack(Silicon, 2), new MaterialStack(Hydrogen, 4), new MaterialStack(Oxygen, 9))), // Mg3Si2O5(OH)4 + Ash ( 815, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 150, 150, 150, 0, "Ashes" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , 2, Arrays.asList(new MaterialStack(Carbon, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.PERDITIO, 1))), + BandedIron ( 917, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 145, 90, 90, 0, "Banded Iron" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown , 1, Arrays.asList(new MaterialStack(Iron, 2), new MaterialStack(Oxygen, 3))), + BatteryAlloy ( 315, TextureSet.SET_DULL , 1.0F, 0, 1, 1|2 , 156, 124, 160, 0, "Battery Alloy" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePurple , 2, Arrays.asList(new MaterialStack(Lead, 4), new MaterialStack(Antimony, 1))), + BlueTopaz ( 513, TextureSet.SET_GEM_HORIZONTAL , 7.0F, 256, 3, 1 |4|8 |64 , 0, 0, 255, 127, "Blue Topaz" , 0, 0, -1, 0, false, true, 3, 1, 1, Dyes.dyeBlue , 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 1), new MaterialStack(Fluorine, 2), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 6)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 6), new TC_AspectStack(TC_Aspects.VITREUS, 4))), + Bone ( 806, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 250, 250, 250, 0, "Bone" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 0, Arrays.asList(new MaterialStack(Calcium, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.MORTUUS, 2), new TC_AspectStack(TC_Aspects.CORPUS, 1))), + Brass ( 301, TextureSet.SET_METALLIC , 7.0F, 96, 1, 1|2 |64|128 , 255, 180, 0, 0, "Brass" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow , 2, Arrays.asList(new MaterialStack(Zinc, 1), new MaterialStack(Copper, 3)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1))), + Bronze ( 300, TextureSet.SET_METALLIC , 6.0F, 192, 2, 1|2 |64|128 , 255, 128, 0, 0, "Bronze" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange , 2, Arrays.asList(new MaterialStack(Tin, 1), new MaterialStack(Copper, 3)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1))), + BrownLimonite ( 930, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1 |8 , 200, 100, 0, 0, "Brown Limonite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown , 2, Arrays.asList(new MaterialStack(Iron, 1), new MaterialStack(Hydrogen, 1), new MaterialStack(Oxygen, 2))), // FeO(OH) + Calcite ( 823, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8 , 250, 230, 220, 0, "Calcite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange , 1, Arrays.asList(new MaterialStack(Calcium, 1), new MaterialStack(Carbon, 1), new MaterialStack(Oxygen, 3))), + Cassiterite ( 824, TextureSet.SET_METALLIC , 1.0F, 0, 1, 8 , 220, 220, 220, 0, "Cassiterite" , 0, 0, -1, 0, false, false, 4, 3, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(Tin, 1), new MaterialStack(Oxygen, 2))), + CassiteriteSand ( 937, TextureSet.SET_SAND , 1.0F, 0, 1, 8 , 220, 220, 220, 0, "Cassiterite Sand" , 0, 0, -1, 0, false, false, 4, 3, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(Tin, 1), new MaterialStack(Oxygen, 2))), + Chalcopyrite ( 855, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8 , 160, 120, 40, 0, "Chalcopyrite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow , 1, Arrays.asList(new MaterialStack(Copper, 1), new MaterialStack(Iron, 1), new MaterialStack(Sulfur, 2))), + //Chalk ( 856, TextureSet.SET_FINE , 1.0F, 0, 2, 1 , 250, 250, 250, 0, "Chalk" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(Calcium, 1), new MaterialStack(Carbon, 1), new MaterialStack(Oxygen, 3))), + Charcoal ( 536, TextureSet.SET_FINE , 1.0F, 0, 1, 1 |4 , 100, 70, 70, 0, "Charcoal" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack , 1, Arrays.asList(new MaterialStack(Carbon, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 2), new TC_AspectStack(TC_Aspects.IGNIS, 2))), + Chromite ( 825, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1 |8 , 35, 20, 15, 0, "Chromite" , 0, 0, 1700, 1700, true, false, 6, 1, 1, Dyes.dyePink , 1, Arrays.asList(new MaterialStack(Iron, 1), new MaterialStack(Chrome, 2), new MaterialStack(Oxygen, 4))), + ChromiumDioxide ( 361, TextureSet.SET_DULL , 11.0F, 256, 3, 1|2 , 230, 200, 200, 0, "Chromium Dioxide" , 0, 0, 650, 650, false, false, 5, 3, 1, Dyes.dyePink , 1, Arrays.asList(new MaterialStack(Chrome, 1), new MaterialStack(Oxygen, 2)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MACHINA, 1))), + Cinnabar ( 826, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 |8 , 150, 0, 0, 0, "Cinnabar" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBrown , 2, Arrays.asList(new MaterialStack(Mercury, 1), new MaterialStack(Sulfur, 1))), + Water ( 701, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 0, 0, 255, 0, "Water" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlue , 0, Arrays.asList(new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 2))), + Clay ( 805, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 , 200, 200, 220, 0, "Clay" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeLightBlue , 1, Arrays.asList(new MaterialStack(Sodium, 2), new MaterialStack(Lithium, 1), new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 2),new MaterialStack(Water,6))), + Coal ( 535, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 |4|8 , 70, 70, 70, 0, "Coal" , 0, 0, -1, 0, false, false, 2, 2, 1, Dyes.dyeBlack , 1, Arrays.asList(new MaterialStack(Carbon, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 2), new TC_AspectStack(TC_Aspects.IGNIS, 2))), + Cobaltite ( 827, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1 |8 , 80, 80, 250, 0, "Cobaltite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBlue , 1, Arrays.asList(new MaterialStack(Cobalt, 1), new MaterialStack(Arsenic, 1), new MaterialStack(Sulfur, 1))), + Cooperite ( 828, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1 |8 , 255, 255, 200, 0, "Sheldonite" , 0, 0, -1, 0, false, false, 5, 1, 1, Dyes.dyeYellow , 2, Arrays.asList(new MaterialStack(Platinum, 3), new MaterialStack(Nickel, 1), new MaterialStack(Sulfur, 1), new MaterialStack(Palladium, 1))), + Cupronickel ( 310, TextureSet.SET_METALLIC , 6.0F, 64, 1, 1|2 |64 , 227, 150, 128, 0, "Cupronickel" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange , 2, Arrays.asList(new MaterialStack(Copper, 1), new MaterialStack(Nickel, 1))), + DarkAsh ( 816, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 50, 50, 50, 0, "Dark Ashes" , 0, 0, -1, 0, false, false, 1, 2, 1, Dyes.dyeGray , 1, Arrays.asList(new MaterialStack(Carbon, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.IGNIS, 1), new TC_AspectStack(TC_Aspects.PERDITIO, 1))), + DeepIron ( 829, TextureSet.SET_METALLIC , 6.0F, 384, 2, 1|2 |8 |64 , 150, 140, 140, 0, "Deep Iron" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyePink , 2, Arrays.asList(new MaterialStack(Iron, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1))), + Diamond ( 500, TextureSet.SET_DIAMOND , 8.0F, 1280, 3, 1 |4|8 |64|128 , 200, 255, 255, 127, "Diamond" , 0, 0, -1, 0, false, true, 5, 64, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(Carbon, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 3), new TC_AspectStack(TC_Aspects.LUCRUM, 4))), + Electrum ( 303, TextureSet.SET_SHINY , 12.0F, 64, 2, 1|2 |8 |64|128 , 255, 255, 100, 0, "Electrum" , 0, 0, -1, 0, false, false, 4, 1, 1, Dyes.dyeYellow , 2, Arrays.asList(new MaterialStack(Silver, 1), new MaterialStack(Gold, 1))), + Emerald ( 501, TextureSet.SET_EMERALD , 7.0F, 256, 2, 1 |4|8 |64 , 80, 255, 80, 127, "Emerald" , 0, 0, -1, 0, false, true, 5, 1, 1, Dyes.dyeGreen , 1, Arrays.asList(new MaterialStack(Beryllium, 3), new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 6), new MaterialStack(Oxygen, 18)), Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 3), new TC_AspectStack(TC_Aspects.LUCRUM, 5))), + FreshWater ( -1, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 0, 0, 255, 0, "Fresh Water" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlue , 0, Arrays.asList(new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 2))), + Galena ( 830, TextureSet.SET_DULL , 1.0F, 0, 3, 1 |8 , 100, 60, 100, 0, "Galena" , 0, 0, -1, 0, false, false, 4, 1, 1, Dyes.dyePurple , 1, Arrays.asList(new MaterialStack(Lead, 3), new MaterialStack(Silver, 3), new MaterialStack(Sulfur, 2))), + Garnierite ( 906, TextureSet.SET_METALLIC , 1.0F, 0, 3, 1 |8 , 50, 200, 70, 0, "Garnierite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightBlue , 1, Arrays.asList(new MaterialStack(Nickel, 1), new MaterialStack(Oxygen, 1))), + Glyceryl ( 714, TextureSet.SET_FLUID , 1.0F, 0, 1, 16 , 0, 150, 150, 0, "Glyceryl Trinitrate" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeCyan , 1, Arrays.asList(new MaterialStack(Carbon, 3), new MaterialStack(Hydrogen, 5), new MaterialStack(Nitrogen, 3), new MaterialStack(Oxygen, 9))), + GreenSapphire ( 504, TextureSet.SET_GEM_HORIZONTAL , 7.0F, 256, 2, 1 |4|8 |64 , 100, 200, 130, 127, "Green Sapphire" , 0, 0, -1, 0, false, true, 5, 1, 1, Dyes.dyeCyan , 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Oxygen, 3)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 5), new TC_AspectStack(TC_Aspects.VITREUS, 3))), + Grossular ( 831, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 |8 , 200, 100, 0, 0, "Grossular" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeOrange , 1, Arrays.asList(new MaterialStack(Calcium, 3), new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 12))), + HolyWater ( 729, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 0, 0, 255, 0, "Holy Water" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlue , 0, Arrays.asList(new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 2), new TC_AspectStack(TC_Aspects.AURAM, 1))), + Ice ( 702, TextureSet.SET_SHINY , 1.0F, 0, 0, 1| 16 , 200, 200, 255, 0, "Ice" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlue , 0, Arrays.asList(new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.GELUM, 2))), + Ilmenite ( 918, TextureSet.SET_METALLIC , 1.0F, 0, 3, 1 |8 , 70, 55, 50, 0, "Ilmenite" , 0, 0, -1, 0, false, false, 1, 2, 1, Dyes.dyePurple , 0, Arrays.asList(new MaterialStack(Iron, 1), new MaterialStack(Titanium, 1), new MaterialStack(Oxygen, 3))), + Rutile ( 375, TextureSet.SET_GEM_HORIZONTAL , 1.0F, 0, 2, 1 |8 , 212, 13, 92, 0, "Rutile" , 0, 0, -1, 0, false, false, 1, 2, 1, Dyes.dyeRed , 0, Arrays.asList(new MaterialStack(Titanium, 1), new MaterialStack(Oxygen, 2))), + Bauxite ( 822, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8 , 200, 100, 0, 0, "Bauxite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBrown , 1, Arrays.asList(new MaterialStack(Rutile, 2), new MaterialStack(Aluminium, 16), new MaterialStack(Hydrogen, 10), new MaterialStack(Oxygen, 11))), + Titaniumtetrachloride( 376, TextureSet.SET_FLUID , 1.0F, 0, 2, 16 , 212, 13, 92, 0, "Titaniumtetrachloride" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeRed , 0, Arrays.asList(new MaterialStack(Titanium, 1), new MaterialStack(Carbon, 2), new MaterialStack(Chlorine, 2))), + Magnesiumchloride ( 377, TextureSet.SET_DULL , 1.0F, 0, 2, 1|16 , 212, 13, 92, 0, "Magnesiumchloride" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeRed , 0, Arrays.asList(new MaterialStack(Magnesium, 1), new MaterialStack(Chlorine, 2))), + Invar ( 302, TextureSet.SET_METALLIC , 6.0F, 256, 2, 1|2 |64|128 , 180, 180, 120, 0, "Invar" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown , 2, Arrays.asList(new MaterialStack(Iron, 2), new MaterialStack(Nickel, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.GELUM, 1))), + IronCompressed ( -1, TextureSet.SET_METALLIC , 7.0F, 96, 1, 1|2 |64|128 , 128, 128, 128, 0, "Compressed Iron" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray , 2, Arrays.asList(new MaterialStack(Iron, 1))), + Kanthal ( 312, TextureSet.SET_METALLIC , 6.0F, 64, 2, 1|2 |64 , 194, 210, 223, 0, "Kanthal" , 0, 0, 1800, 1800, true, false, 1, 1, 1, Dyes.dyeYellow , 2, Arrays.asList(new MaterialStack(Iron, 1), new MaterialStack(Aluminium, 1), new MaterialStack(Chrome, 1))), + Lazurite ( 524, TextureSet.SET_LAPIS , 1.0F, 0, 1, 1 |4|8 , 100, 120, 255, 0, "Lazurite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeCyan , 1, Arrays.asList(new MaterialStack(Aluminium, 6), new MaterialStack(Silicon, 6), new MaterialStack(Calcium, 8), new MaterialStack(Sodium, 8))), + Magnalium ( 313, TextureSet.SET_DULL , 6.0F, 256, 2, 1|2 |64|128 , 200, 190, 255, 0, "Magnalium" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightBlue , 2, Arrays.asList(new MaterialStack(Magnesium, 1), new MaterialStack(Aluminium, 2))), + Magnesite ( 908, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 , 250, 250, 180, 0, "Magnesite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePink , 1, Arrays.asList(new MaterialStack(Magnesium, 1), new MaterialStack(Carbon, 1), new MaterialStack(Oxygen, 3))), + Magnetite ( 870, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 , 30, 30, 30, 0, "Magnetite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray , 1, Arrays.asList(new MaterialStack(Iron, 3), new MaterialStack(Oxygen, 4)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1))), + Molybdenite ( 942, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 , 25, 25, 25, 0, "Molybdenite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlue , 1, Arrays.asList(new MaterialStack(Molybdenum, 1), new MaterialStack(Sulfur, 2))), // MoS2 (also source of Re) + Nichrome ( 311, TextureSet.SET_METALLIC , 6.0F, 64, 2, 1|2 |64 , 205, 206, 246, 0, "Nichrome" , 0, 0, 2700, 2700, true, false, 1, 1, 1, Dyes.dyeRed , 2, Arrays.asList(new MaterialStack(Nickel, 4), new MaterialStack(Chrome, 1))), + NiobiumNitride ( 359, TextureSet.SET_DULL , 1.0F, 0, 2, 1|2 , 29, 41, 29, 0, "Niobium Nitride" , 0, 0, 2573, 2573, true, false, 1, 1, 1, Dyes.dyeBlack , 1, Arrays.asList(new MaterialStack(Niobium, 1), new MaterialStack(Nitrogen, 1))), // Anti-Reflective Material + NiobiumTitanium ( 360, TextureSet.SET_DULL , 1.0F, 0, 2, 1|2 , 29, 29, 41, 0, "Niobium-Titanium" , 0, 0, 2800, 2800, true, false, 1, 1, 1, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Niobium, 1), new MaterialStack(Titanium, 1))), + NitroCarbon ( 716, TextureSet.SET_FLUID , 1.0F, 0, 1, 16 , 0, 75, 100, 0, "Nitro-Carbon" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeCyan , 1, Arrays.asList(new MaterialStack(Nitrogen, 1), new MaterialStack(Carbon, 1))), + NitrogenDioxide ( 717, TextureSet.SET_FLUID , 1.0F, 0, 1, 16 , 100, 175, 255, 0, "Nitrogen Dioxide" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeCyan , 1, Arrays.asList(new MaterialStack(Nitrogen, 1), new MaterialStack(Oxygen, 2))), + Obsidian ( 804, TextureSet.SET_DULL , 1.0F, 0, 3, 1 , 80, 50, 100, 0, "Obsidian" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack , 1, Arrays.asList(new MaterialStack(Magnesium, 1), new MaterialStack(Iron, 1), new MaterialStack(Silicon, 2), new MaterialStack(Oxygen, 8))), + Phosphate ( 833, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8|16 , 255, 255, 0, 0, "Phosphate" , 0, 0, -1, 0, false, false, 2, 1, 1, Dyes.dyeYellow , 1, Arrays.asList(new MaterialStack(Phosphor, 1), new MaterialStack(Oxygen, 4))), + PigIron ( 307, TextureSet.SET_METALLIC , 6.0F, 384, 2, 1|2 |8 |64 , 200, 180, 180, 0, "Pig Iron" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyePink , 2, Arrays.asList(new MaterialStack(Iron, 1))), + Plastic ( 874, TextureSet.SET_DULL , 3.0F, 32, 1, 1|2 |64|128 , 200, 200, 200, 0, "Polyethylene" , 0, 0, 400, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 0, Arrays.asList(new MaterialStack(Carbon, 1), new MaterialStack(Hydrogen, 2)), Arrays.asList(new TC_AspectStack(TC_Aspects.MOTUS, 2))), + Epoxid ( 470, TextureSet.SET_DULL , 3.0F, 32, 1, 1|2 |64|128 , 200, 140, 20, 0, "Epoxid" , 0, 0, 400, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 0, Arrays.asList(new MaterialStack(Carbon, 2), new MaterialStack(Hydrogen, 4), new MaterialStack(Oxygen, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.MOTUS, 2))), + Silicone ( 471, TextureSet.SET_DULL , 3.0F, 128, 1, 1|2 |64|128 , 220, 220, 220, 0, "Polysiloxane" , 0, 0, 900, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 0, Arrays.asList(new MaterialStack(Carbon, 1), new MaterialStack(Hydrogen, 1), new MaterialStack(Silicon, 2), new MaterialStack(Oxygen, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.MOTUS, 2))), + Polycaprolactam ( 472, TextureSet.SET_DULL , 3.0F, 32, 1, 1|2 |64|128 , 50, 50, 50, 0, "Polycaprolactam" , 0, 0, 500, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 0, Arrays.asList(new MaterialStack(Carbon, 6), new MaterialStack(Hydrogen, 11), new MaterialStack(Nitrogen, 1), new MaterialStack(Oxygen, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.MOTUS, 2))), + Polytetrafluoroethylene( 473, TextureSet.SET_DULL , 3.0F, 32, 1, 1|2 |64|128 , 100, 100, 100, 0, "Polytetrafluoroethylene" , 0, 0, 1400, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 0, Arrays.asList(new MaterialStack(Carbon, 2), new MaterialStack(Fluorine, 4)), Arrays.asList(new TC_AspectStack(TC_Aspects.MOTUS, 2))), + Powellite ( 883, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 255, 255, 0, 0, "Powellite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow , 2, Arrays.asList(new MaterialStack(Calcium, 1), new MaterialStack(Molybdenum, 1), new MaterialStack(Oxygen, 4))), + Pumice ( 926, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 230, 185, 185, 0, "Pumice" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray , 2, Arrays.asList(new MaterialStack(Stone, 1))), + Pyrite ( 834, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 |8 , 150, 120, 40, 0, "Pyrite" , 0, 0, -1, 0, false, false, 2, 1, 1, Dyes.dyeOrange , 1, Arrays.asList(new MaterialStack(Iron, 1), new MaterialStack(Sulfur, 2))), + Pyrolusite ( 943, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 150, 150, 170, 0, "Pyrolusite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , 1, Arrays.asList(new MaterialStack(Manganese, 1), new MaterialStack(Oxygen, 2))), + Pyrope ( 835, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 , 120, 50, 100, 0, "Pyrope" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyePurple , 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Magnesium, 3), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 12))), + RockSalt ( 944, TextureSet.SET_FINE , 1.0F, 0, 1, 1 |8 , 240, 200, 200, 0, "Rock Salt" , 0, 0, -1, 0, false, false, 2, 1, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Chlorine, 1))), + Rubber ( 880, TextureSet.SET_SHINY , 1.5F, 16, 0, 1|2 |64|128 , 0, 0, 0, 0, "Rubber" , 0, 0, 400, 0, false, false, 1, 1, 1, Dyes.dyeBlack , 0, Arrays.asList(new MaterialStack(Carbon, 5), new MaterialStack(Hydrogen, 8)), Arrays.asList(new TC_AspectStack(TC_Aspects.MOTUS, 2))), + RawRubber ( 896, TextureSet.SET_DULL , 1.0F, 0, 0, 1 , 204, 199, 137, 0, "Raw Rubber" , 0, 0, 400, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 0, Arrays.asList(new MaterialStack(Carbon, 5), new MaterialStack(Hydrogen, 8)), Arrays.asList(new TC_AspectStack(TC_Aspects.MOTUS, 2))), + Ruby ( 502, TextureSet.SET_RUBY , 7.0F, 256, 2, 1 |4|8 |64 , 255, 100, 100, 127, "Ruby" , 0, 0, -1, 0, false, true, 5, 1, 1, Dyes.dyeRed , 1, Arrays.asList(new MaterialStack(Chrome, 1), new MaterialStack(Aluminium, 2), new MaterialStack(Oxygen, 3)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 6), new TC_AspectStack(TC_Aspects.VITREUS, 4))), + Salt ( 817, TextureSet.SET_FINE , 1.0F, 0, 1, 1 |8 , 250, 250, 250, 0, "Salt" , 0, 0, -1, 0, false, false, 2, 1, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(Sodium, 1), new MaterialStack(Chlorine, 1))), + Saltpeter ( 836, TextureSet.SET_FINE , 1.0F, 0, 1, 1 |8 , 230, 230, 230, 0, "Saltpeter" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Nitrogen, 1), new MaterialStack(Oxygen, 3))), + SaltWater ( -1, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 0, 0, 255, 0, "Salt Water" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlue , 0, Arrays.asList(new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 2))), + Sapphire ( 503, TextureSet.SET_GEM_VERTICAL , 7.0F, 256, 2, 1 |4|8 |64 , 100, 100, 200, 127, "Sapphire" , 0, 0, -1, 0, false, true, 5, 1, 1, Dyes.dyeBlue , 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Oxygen, 3)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 5), new TC_AspectStack(TC_Aspects.VITREUS, 3))), + Scheelite ( 910, TextureSet.SET_DULL , 1.0F, 0, 3, 1 |8 , 200, 140, 20, 0, "Scheelite" , 0, 0, 2500, 2500, false, false, 4, 1, 1, Dyes.dyeBlack , 0, Arrays.asList(new MaterialStack(Tungsten, 1), new MaterialStack(Calcium, 2), new MaterialStack(Oxygen, 4))), + SiliconDioxide ( 837, TextureSet.SET_QUARTZ , 1.0F, 0, 1, 1 |16 , 200, 200, 200, 0, "Silicon Dioxide" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , 1, Arrays.asList(new MaterialStack(Silicon, 1), new MaterialStack(Oxygen, 2))), + Snow ( 728, TextureSet.SET_FINE , 1.0F, 0, 0, 1| 16 , 250, 250, 250, 0, "Snow" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 0, Arrays.asList(new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.GELUM, 1))), + Sodalite ( 525, TextureSet.SET_LAPIS , 1.0F, 0, 1, 1 |4|8 , 20, 20, 255, 0, "Sodalite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBlue , 1, Arrays.asList(new MaterialStack(Aluminium, 3), new MaterialStack(Silicon, 3), new MaterialStack(Sodium, 4), new MaterialStack(Chlorine, 1))), + SodiumPersulfate ( 718, TextureSet.SET_FLUID , 1.0F, 0, 2, 16 , 255, 255, 255, 0, "Sodium Persulfate" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange , 1, Arrays.asList(new MaterialStack(Sodium, 1), new MaterialStack(Sulfur, 1), new MaterialStack(Oxygen, 4))), + SodiumSulfide ( 719, TextureSet.SET_FLUID , 1.0F, 0, 2, 16 , 255, 255, 255, 0, "Sodium Sulfide" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange , 1, Arrays.asList(new MaterialStack(Sodium, 2), new MaterialStack(Sulfur, 1))), + HydricSulfide ( 460, TextureSet.SET_FLUID , 1.0F, 0, 2, 16 , 255, 255, 255, 0, "Hydrogen Sulfide" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange , 0, Arrays.asList(new MaterialStack(Hydrogen, 2), new MaterialStack(Sulfur, 1))), + + OilHeavy ( 730, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 10, 10, 10, 0, "Heavy Oil" , 3, 32, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack ), + OilMedium ( 731, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 10, 10, 10, 0, "Raw Oil" , 3, 24, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack ), + OilLight ( 732, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 10, 10, 10, 0, "Light Oil" , 3, 16, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack ), + + NatruralGas ( 733, TextureSet.SET_FLUID , 1.0F, 0, 1, 16 , 255, 255, 255, 0, "Natural Gas" , 1, 15, -1, 0, false, false, 3, 1, 1, Dyes.dyeWhite ), + SulfuricGas ( 734, TextureSet.SET_FLUID , 1.0F, 0, 1, 16 , 255, 255, 255, 0, "Sulfuric Gas" , 1, 20, -1, 0, false, false, 3, 1, 1, Dyes.dyeWhite ), + Gas ( 735, TextureSet.SET_FLUID , 1.0F, 0, 1, 16 , 255, 255, 255, 0, "Refinery Gas" , 1, 128, -1, 0, false, false, 3, 1, 1, Dyes.dyeWhite ), + SulfuricNaphtha ( 736, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 255, 255, 0, 0, "Sulfuric Naphtha" , 1, 32, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow ), + SulfuricLightFuel ( 737, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 255, 255, 0, 0, "Sulfuric Light Fuel" , 0, 32, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow ), + SulfuricHeavyFuel ( 738, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 255, 255, 0, 0, "Sulfuric Heavy Fuel" , 3, 32, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack ), + Naphtha ( 739, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 255, 255, 0, 0, "Naphtha" , 1, 256, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow ), + LightFuel ( 740, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 255, 255, 0, 0, "Light Fuel" , 0, 256, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow ), + HeavyFuel ( 741, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 255, 255, 0, 0, "Heavy Fuel" , 3, 192, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack ), + LPG ( 742, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 255, 255, 0, 0, "LPG" , 1, 256, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow ), + CrackedLightFuel ( 743, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 255, 255, 0, 0, "Cracked Light Fuel" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow ), + CrackedHeavyFuel ( 744, TextureSet.SET_FLUID , 1.0F, 0, 0, 16 , 255, 255, 0, 0, "Cracked Heavy Fuel" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack ), + + SolderingAlloy ( 314, TextureSet.SET_DULL , 1.0F, 0, 1, 1|2 , 220, 220, 230, 0, "Soldering Alloy" , 0, 0, 400, 400, false, false, 1, 1, 1, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(Tin, 9), new MaterialStack(Antimony, 1))), + Spessartine ( 838, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 255, 100, 100, 0, "Spessartine" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeRed , 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Manganese, 3), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 12))), + Sphalerite ( 839, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8 , 255, 255, 255, 0, "Sphalerite" , 0, 0, -1, 0, false, false, 2, 1, 1, Dyes.dyeYellow , 1, Arrays.asList(new MaterialStack(Zinc, 1), new MaterialStack(Sulfur, 1))), + StainlessSteel ( 306, TextureSet.SET_SHINY , 7.0F, 480, 2, 1|2 |64|128 , 200, 200, 220, 0, "Stainless Steel" , 0, 0, -1, 1700, true, false, 1, 1, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(Iron, 6), new MaterialStack(Chrome, 1), new MaterialStack(Manganese, 1), new MaterialStack(Nickel, 1))), + Steel ( 305, TextureSet.SET_METALLIC , 6.0F, 512, 2, 1|2 |64|128 , 128, 128, 128, 0, "Steel" , 0, 0, 1811, 1000, true, false, 4, 51, 50, Dyes.dyeGray , 1, Arrays.asList(new MaterialStack(Iron, 50), new MaterialStack(Carbon, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.ORDO, 1))), + Stibnite ( 945, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 , 70, 70, 70, 0, "Stibnite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(Antimony, 2), new MaterialStack(Sulfur, 3))), + SulfuricAcid ( 720, TextureSet.SET_FLUID , 1.0F, 0, 2, 16 , 255, 128, 0, 0, "Sulfuric Acid" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange , 1, Arrays.asList(new MaterialStack(Hydrogen, 2), new MaterialStack(Sulfur, 1), new MaterialStack(Oxygen, 4))), + Tanzanite ( 508, TextureSet.SET_GEM_VERTICAL , 7.0F, 256, 2, 1 |4|8 |64 , 64, 0, 200, 127, "Tanzanite" , 0, 0, -1, 0, false, true, 5, 1, 1, Dyes.dyePurple , 1, Arrays.asList(new MaterialStack(Calcium, 2), new MaterialStack(Aluminium, 3), new MaterialStack(Silicon, 3), new MaterialStack(Hydrogen, 1), new MaterialStack(Oxygen, 13)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 5), new TC_AspectStack(TC_Aspects.VITREUS, 3))), + Tetrahedrite ( 840, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 200, 32, 0, 0, "Tetrahedrite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeRed , 2, Arrays.asList(new MaterialStack(Copper, 3), new MaterialStack(Antimony, 1), new MaterialStack(Sulfur, 3), new MaterialStack(Iron, 1))), //Cu3SbS3 + x(Fe,Zn)6Sb2S9 + TinAlloy ( 363, TextureSet.SET_METALLIC , 6.5F, 96, 2, 1|2 |64|128 , 200, 200, 200, 0, "Tin Alloy" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(Tin, 1), new MaterialStack(Iron, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1))), + Topaz ( 507, TextureSet.SET_GEM_HORIZONTAL , 7.0F, 256, 3, 1 |4|8 |64 , 255, 128, 0, 127, "Topaz" , 0, 0, -1, 0, false, true, 5, 1, 1, Dyes.dyeOrange , 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 1), new MaterialStack(Fluorine, 2), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 6)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 6), new TC_AspectStack(TC_Aspects.VITREUS, 4))), + Tungstate ( 841, TextureSet.SET_DULL , 1.0F, 0, 3, 1 |8 , 55, 50, 35, 0, "Tungstate" , 0, 0, 2500, 2500, true, false, 4, 1, 1, Dyes.dyeBlack , 0, Arrays.asList(new MaterialStack(Tungsten, 1), new MaterialStack(Lithium, 2), new MaterialStack(Oxygen, 4))), + Ultimet ( 344, TextureSet.SET_SHINY , 9.0F, 2048, 4, 1|2 |64|128 , 180, 180, 230, 0, "Ultimet" , 0, 0, 2700, 2700, true, false, 1, 1, 1, Dyes.dyeLightBlue , 1, Arrays.asList(new MaterialStack(Cobalt, 5), new MaterialStack(Chrome, 2), new MaterialStack(Nickel, 1), new MaterialStack(Molybdenum, 1))), // 54% Cobalt, 26% Chromium, 9% Nickel, 5% Molybdenum, 3% Iron, 2% Tungsten, 0.8% Manganese, 0.3% Silicon, 0.08% Nitrogen and 0.06% Carbon + Uraninite ( 922, TextureSet.SET_METALLIC , 1.0F, 0, 3, 1 |8 , 35, 35, 35, 0, "Uraninite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLime , 2, Arrays.asList(new MaterialStack(Uranium, 1), new MaterialStack(Oxygen, 2))), + Uvarovite ( 842, TextureSet.SET_DIAMOND , 1.0F, 0, 2, 1 |8 , 180, 255, 180, 0, "Uvarovite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeGreen , 1, Arrays.asList(new MaterialStack(Calcium, 3), new MaterialStack(Chrome, 2), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 12))), + VanadiumGallium ( 357, TextureSet.SET_SHINY , 1.0F, 0, 2, 1|2 , 128, 128, 140, 0, "Vanadium-Gallium" , 0, 0, 3000, 3000, true, false, 1, 1, 1, Dyes.dyeGray , 2, Arrays.asList(new MaterialStack(Vanadium, 3), new MaterialStack(Gallium, 1))), + Wood ( 809, TextureSet.SET_WOOD , 2.0F, 16, 0, 1|2 |64|128 , 100, 50, 0, 0, "Wood" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown , 0, Arrays.asList(new MaterialStack(Carbon, 1), new MaterialStack(Oxygen, 1), new MaterialStack(Hydrogen, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.ARBOR, 2))), + WroughtIron ( 304, TextureSet.SET_METALLIC , 6.0F, 384, 2, 1|2 |64|128 , 200, 180, 180, 0, "Wrought Iron" , 0, 0, 1811, 0, false, false, 3, 1, 1, Dyes.dyeLightGray , 2, Arrays.asList(new MaterialStack(Iron, 1))), + Wulfenite ( 882, TextureSet.SET_DULL , 1.0F, 0, 3, 1 |8 , 255, 128, 0, 0, "Wulfenite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange , 2, Arrays.asList(new MaterialStack(Lead, 1), new MaterialStack(Molybdenum, 1), new MaterialStack(Oxygen, 4))), + YellowLimonite ( 931, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 , 200, 200, 0, 0, "Yellow Limonite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow , 2, Arrays.asList(new MaterialStack(Iron, 1), new MaterialStack(Hydrogen, 1), new MaterialStack(Oxygen, 2))), // FeO(OH) + a bit Ni and Co + YttriumBariumCuprate( 358, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 , 80, 64, 70, 0, "Yttrium Barium Cuprate" , 0, 0, 1200, 1200, true, false, 1, 1, 1, Dyes.dyeGray , 0, Arrays.asList(new MaterialStack(Yttrium, 1), new MaterialStack(Barium, 2), new MaterialStack(Copper, 3), new MaterialStack(Oxygen, 7))), + + /** + * Second Degree Compounds + */ + WoodSealed ( 889, TextureSet.SET_WOOD , 3.0F, 24, 0, 1|2 |64|128 , 80, 40, 0, 0, "Sealed Wood" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown , 0, Arrays.asList(new MaterialStack(Wood, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.ARBOR, 2), new TC_AspectStack(TC_Aspects.FABRICO, 1))), + LiveRoot ( 832, TextureSet.SET_WOOD , 1.0F, 0, 1, 1 , 220, 200, 0, 0, "Liveroot" , 5, 16, -1, 0, false, false, 2, 4, 3, Dyes.dyeBrown , 2, Arrays.asList(new MaterialStack(Wood, 3), new MaterialStack(Magic, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.ARBOR, 2), new TC_AspectStack(TC_Aspects.VICTUS, 2), new TC_AspectStack(TC_Aspects.PRAECANTATIO, 1))), + IronWood ( 338, TextureSet.SET_WOOD , 6.0F, 384, 2, 1|2 |64|128 , 150, 140, 110, 0, "Ironwood" , 5, 8, -1, 0, false, false, 2, 19, 18, Dyes.dyeBrown , 2, Arrays.asList(new MaterialStack(Iron, 9), new MaterialStack(LiveRoot, 9), new MaterialStack(Gold, 1))), + Glass ( 890, TextureSet.SET_GLASS , 1.0F, 4, 0, 1 |4 , 250, 250, 250, 220, "Glass" , 0, 0, 1500, 0, false, true, 1, 1, 1, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(SiliconDioxide, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 2))), + Perlite ( 925, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8 , 30, 20, 30, 0, "Perlite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Obsidian, 2), new MaterialStack(Water, 1))), + Borax ( 941, TextureSet.SET_FINE , 1.0F, 0, 1, 1 |8 , 250, 250, 250, 0, "Borax" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(Sodium, 2), new MaterialStack(Boron, 4), new MaterialStack(Water, 10), new MaterialStack(Oxygen, 7))), + Lignite ( 538, TextureSet.SET_LIGNITE , 1.0F, 0, 0, 1 |4|8 , 100, 70, 70, 0, "Lignite Coal" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack , 1, Arrays.asList(new MaterialStack(Carbon, 2), new MaterialStack(Water, 4), new MaterialStack(DarkAsh, 1))), + Olivine ( 505, TextureSet.SET_RUBY , 7.0F, 256, 2, 1 |4|8 |64 , 150, 255, 150, 127, "Olivine" , 0, 0, -1, 0, false, true, 5, 1, 1, Dyes.dyeLime , 1, Arrays.asList(new MaterialStack(Magnesium, 2), new MaterialStack(Iron, 1), new MaterialStack(SiliconDioxide, 2)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 4), new TC_AspectStack(TC_Aspects.VITREUS, 2))), + Opal ( 510, TextureSet.SET_OPAL , 7.0F, 256, 2, 1 |4|8 |64 , 0, 0, 255, 0, "Opal" , 0, 0, -1, 0, false, true, 3, 1, 1, Dyes.dyeBlue , 1, Arrays.asList(new MaterialStack(SiliconDioxide, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 5), new TC_AspectStack(TC_Aspects.VITREUS, 3))), + Amethyst ( 509, TextureSet.SET_FLINT , 7.0F, 256, 3, 1 |4|8 |64 , 210, 50, 210, 127, "Amethyst" , 0, 0, -1, 0, false, true, 3, 1, 1, Dyes.dyePink , 1, Arrays.asList(new MaterialStack(SiliconDioxide, 4), new MaterialStack(Iron, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 6), new TC_AspectStack(TC_Aspects.VITREUS, 4))), + Redstone ( 810, TextureSet.SET_ROUGH , 1.0F, 0, 2, 1 |8 , 200, 0, 0, 0, "Redstone" , 0, 0, 500, 0, false, false, 3, 1, 1, Dyes.dyeRed , 2, Arrays.asList(new MaterialStack(Silicon, 1), new MaterialStack(Pyrite, 5), new MaterialStack(Ruby, 1), new MaterialStack(Mercury, 3)), Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 1), new TC_AspectStack(TC_Aspects.POTENTIA, 2))), + Lapis ( 526, TextureSet.SET_LAPIS , 1.0F, 0, 1, 1 |4|8 , 70, 70, 220, 0, "Lapis" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBlue , 2, Arrays.asList(new MaterialStack(Lazurite, 12), new MaterialStack(Sodalite, 2), new MaterialStack(Pyrite, 1), new MaterialStack(Calcite, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.SENSUS, 1))), + Blaze ( 801, TextureSet.SET_POWDER , 2.0F, 16, 1, 1 |64 , 255, 200, 0, 0, "Blaze" , 0, 0, 6400, 0, false, false, 2, 3, 2, Dyes.dyeYellow , 2, Arrays.asList(new MaterialStack(DarkAsh, 1), new MaterialStack(Sulfur, 1), new MaterialStack(Magic, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTATIO, 2), new TC_AspectStack(TC_Aspects.IGNIS, 4))), + EnderPearl ( 532, TextureSet.SET_SHINY , 1.0F, 16, 1, 1 |4 , 108, 220, 200, 0, "Enderpearl" , 0, 0, -1, 0, false, false, 1, 16, 10, Dyes.dyeGreen , 1, Arrays.asList(new MaterialStack(Beryllium, 1), new MaterialStack(Potassium, 4), new MaterialStack(Nitrogen, 5), new MaterialStack(Magic, 6)), Arrays.asList(new TC_AspectStack(TC_Aspects.ALIENIS, 4), new TC_AspectStack(TC_Aspects.ITER, 4), new TC_AspectStack(TC_Aspects.PRAECANTATIO, 2))), + EnderEye ( 533, TextureSet.SET_SHINY , 1.0F, 16, 1, 1 |4 , 160, 250, 230, 0, "Endereye" , 5, 10, -1, 0, false, false, 1, 2, 1, Dyes.dyeGreen , 2, Arrays.asList(new MaterialStack(EnderPearl, 1), new MaterialStack(Blaze, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.SENSUS, 4), new TC_AspectStack(TC_Aspects.ALIENIS, 4), new TC_AspectStack(TC_Aspects.ITER, 4), new TC_AspectStack(TC_Aspects.PRAECANTATIO, 3), new TC_AspectStack(TC_Aspects.IGNIS, 2))), + Flint ( 802, TextureSet.SET_FLINT , 2.5F, 64, 1, 1 |64 , 0, 32, 64, 0, "Flint" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray , 2, Arrays.asList(new MaterialStack(SiliconDioxide, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.TERRA, 1), new TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1))), + Diatomite ( 948, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8 , 225, 225, 225, 0, "Diatomite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray , 2, Arrays.asList(new MaterialStack(Flint, 8), new MaterialStack(BandedIron, 1), new MaterialStack(Sapphire, 1))), + VolcanicAsh ( 940, TextureSet.SET_FLINT , 1.0F, 0, 0, 1 , 60, 50, 50, 0, "Volcanic Ashes" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Flint, 6), new MaterialStack(Iron, 1), new MaterialStack(Magnesium, 1))), + Niter ( 531, TextureSet.SET_FLINT , 1.0F, 0, 1, 1 |4|8 , 255, 200, 200, 0, "Niter" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePink , 2, Arrays.asList(new MaterialStack(Saltpeter, 1))), + Pyrotheum ( 843, TextureSet.SET_FIERY , 1.0F, 0, 1, 1 , 255, 128, 0, 0, "Pyrotheum" , 2, 62, -1, 0, false, false, 2, 3, 1, Dyes.dyeYellow , 2, Arrays.asList(new MaterialStack(Coal, 1), new MaterialStack(Redstone, 1), new MaterialStack(Blaze, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTATIO, 2), new TC_AspectStack(TC_Aspects.IGNIS, 1))), + HydratedCoal ( 818, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 , 70, 70, 100, 0, "Hydrated Coal" , 0, 0, -1, 0, false, false, 1, 9, 8, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Coal, 8), new MaterialStack(Water, 1))), + Apatite ( 530, TextureSet.SET_DIAMOND , 1.0F, 0, 1, 1 |4|8 , 200, 200, 255, 0, "Apatite" , 0, 0, -1, 0, false, false, 2, 1, 1, Dyes.dyeCyan , 1, Arrays.asList(new MaterialStack(Calcium, 5), new MaterialStack(Phosphate, 3), new MaterialStack(Chlorine, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.MESSIS, 2))), + Alumite ( -1, TextureSet.SET_METALLIC , 1.5F, 64, 0, 1|2 |64 , 255, 255, 255, 0, "Alumite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePink , 2, Arrays.asList(new MaterialStack(Aluminium, 5), new MaterialStack(Iron, 2), new MaterialStack(Obsidian, 2)), Arrays.asList(new TC_AspectStack(TC_Aspects.STRONTIO, 2))), + Manyullyn ( -1, TextureSet.SET_METALLIC , 1.5F, 64, 0, 1|2 |64 , 255, 255, 255, 0, "Manyullyn" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePurple , 2, Arrays.asList(new MaterialStack(Cobalt, 1), new MaterialStack(Aredrite, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.STRONTIO, 2))), + ShadowIron ( 336, TextureSet.SET_METALLIC , 6.0F, 384, 2, 1|2 |8 |64 , 120, 120, 120, 0, "Shadowiron" , 0, 0, -1, 0, false, false, 3, 4, 3, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Iron, 3), new MaterialStack(Magic, 1))), + ShadowSteel ( 337, TextureSet.SET_METALLIC , 6.0F, 768, 2, 1|2 |64 , 90, 90, 90, 0, "Shadowsteel" , 0, 0, -1, 1700, true, false, 4, 4, 3, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Steel, 3), new MaterialStack(Magic, 1))), + Steeleaf ( 339, TextureSet.SET_LEAF , 8.0F, 768, 3, 1|2 |64|128 , 50, 127, 50, 0, "Steeleaf" , 5, 24, -1, 0, false, false, 4, 1, 1, Dyes.dyeGreen , 2, Arrays.asList(new MaterialStack(Steel, 1), new MaterialStack(Magic, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.HERBA, 2), new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.PRAECANTATIO, 1))), + Knightmetal ( 362, TextureSet.SET_METALLIC , 8.0F, 1024, 3, 1|2 |64|128 , 210, 240, 200, 0, "Knightmetal" , 5, 24, -1, 0, false, false, 4, 1, 1, Dyes.dyeLime , 2, Arrays.asList(new MaterialStack(Steel, 2), new MaterialStack(Magic, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 1), new TC_AspectStack(TC_Aspects.METALLUM, 2))), + SterlingSilver ( 350, TextureSet.SET_SHINY , 13.0F, 128, 2, 1|2 |64|128 , 250, 220, 225, 0, "Sterling Silver" , 0, 0, -1, 1700, true, false, 4, 1, 1, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(Copper, 1), new MaterialStack(Silver, 4))), + RoseGold ( 351, TextureSet.SET_SHINY , 14.0F, 128, 2, 1|2 |64|128 , 255, 230, 30, 0, "Rose Gold" , 0, 0, -1, 1600, true, false, 4, 1, 1, Dyes.dyeOrange , 2, Arrays.asList(new MaterialStack(Copper, 1), new MaterialStack(Gold, 4))), + BlackBronze ( 352, TextureSet.SET_DULL , 12.0F, 256, 2, 1|2 |64|128 , 100, 50, 125, 0, "Black Bronze" , 0, 0, -1, 2000, true, false, 4, 1, 1, Dyes.dyePurple , 2, Arrays.asList(new MaterialStack(Gold, 1), new MaterialStack(Silver, 1), new MaterialStack(Copper, 3))), + BismuthBronze ( 353, TextureSet.SET_DULL , 8.0F, 256, 2, 1|2 |64|128 , 100, 125, 125, 0, "Bismuth Bronze" , 0, 0, -1, 1100, true, false, 4, 1, 1, Dyes.dyeCyan , 2, Arrays.asList(new MaterialStack(Bismuth, 1), new MaterialStack(Zinc, 1), new MaterialStack(Copper, 3))), + BlackSteel ( 334, TextureSet.SET_METALLIC , 6.5F, 768, 2, 1|2 |64 , 100, 100, 100, 0, "Black Steel" , 0, 0, -1, 1200, true, false, 4, 1, 1, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Nickel, 1), new MaterialStack(BlackBronze, 1), new MaterialStack(Steel, 3))), + RedSteel ( 348, TextureSet.SET_METALLIC , 7.0F, 896, 2, 1|2 |64 , 140, 100, 100, 0, "Red Steel" , 0, 0, -1, 1300, true, false, 4, 1, 1, Dyes.dyeRed , 2, Arrays.asList(new MaterialStack(SterlingSilver, 1), new MaterialStack(BismuthBronze, 1), new MaterialStack(Steel, 2), new MaterialStack(BlackSteel, 4))), + BlueSteel ( 349, TextureSet.SET_METALLIC , 7.5F, 1024, 2, 1|2 |64 , 100, 100, 140, 0, "Blue Steel" , 0, 0, -1, 1400, true, false, 4, 1, 1, Dyes.dyeBlue , 2, Arrays.asList(new MaterialStack(RoseGold, 1), new MaterialStack(Brass, 1), new MaterialStack(Steel, 2), new MaterialStack(BlackSteel, 4))), + DamascusSteel ( 335, TextureSet.SET_METALLIC , 8.0F, 1280, 2, 1|2 |64 , 110, 110, 110, 0, "Damascus Steel" , 0, 0, 2000, 1500, true, false, 4, 1, 1, Dyes.dyeGray , 2, Arrays.asList(new MaterialStack(Steel, 1))), + TungstenSteel ( 316, TextureSet.SET_METALLIC , 8.0F, 2560, 4, 1|2 |64|128 , 100, 100, 160, 0, "Tungstensteel" , 0, 0, -1, 3000, true, false, 4, 1, 1, Dyes.dyeBlue , 2, Arrays.asList(new MaterialStack(Steel, 1), new MaterialStack(Tungsten, 1))), + NitroCoalFuel ( -1, TextureSet.SET_FLUID , 1.0F, 0, 2, 16 , 50, 70, 50, 0, "Nitro-Coalfuel" , 0, 48, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack , 0, Arrays.asList(new MaterialStack(Glyceryl, 1), new MaterialStack(CoalFuel, 4))), + NitroFuel ( 709, TextureSet.SET_FLUID , 1.0F, 0, 2, 16 , 200, 255, 0, 0, "Nitro-Diesel" , 0, 512, -1, 0, false, false, 1, 1, 1, Dyes.dyeLime , 0, Arrays.asList(new MaterialStack(Glyceryl, 1), new MaterialStack(Fuel, 4))), + AstralSilver ( 333, TextureSet.SET_SHINY , 10.0F, 64, 2, 1|2 |8 |64 , 230, 230, 255, 0, "Astral Silver" , 0, 0, -1, 0, false, false, 4, 3, 2, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(Silver, 2), new MaterialStack(Magic, 1))), + Midasium ( 332, TextureSet.SET_SHINY , 12.0F, 64, 2, 1|2 |8 |64 , 255, 200, 40, 0, "Midasium" , 0, 0, -1, 0, false, false, 4, 3, 2, Dyes.dyeOrange , 2, Arrays.asList(new MaterialStack(Gold, 2), new MaterialStack(Magic, 1))), + Mithril ( 331, TextureSet.SET_SHINY , 14.0F, 64, 3, 1|2 |8 |64 , 255, 255, 210, 0, "Mithril" , 0, 0, -1, 0, false, false, 4, 3, 2, Dyes.dyeLightBlue , 2, Arrays.asList(new MaterialStack(Platinum, 2), new MaterialStack(Magic, 1))), + BlueAlloy ( 309, TextureSet.SET_DULL , 1.0F, 0, 0, 1|2 , 100, 180, 255, 0, "Blue Alloy" , 0, 0, -1, 0, false, false, 3, 5, 1, Dyes.dyeLightBlue , 2, Arrays.asList(new MaterialStack(Silver, 1), new MaterialStack(Nikolite, 4)), Arrays.asList(new TC_AspectStack(TC_Aspects.ELECTRUM, 3))), + RedAlloy ( 308, TextureSet.SET_DULL , 1.0F, 0, 0, 1|2 , 200, 0, 0, 0, "Red Alloy" , 0, 0, -1, 0, false, false, 3, 5, 1, Dyes.dyeRed , 2, Arrays.asList(new MaterialStack(Metal, 1), new MaterialStack(Redstone, 4)), Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 3))), + CobaltBrass ( 343, TextureSet.SET_METALLIC , 8.0F, 256, 2, 1|2 |64|128 , 180, 180, 160, 0, "Cobalt Brass" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeOrange , 2, Arrays.asList(new MaterialStack(Brass, 7), new MaterialStack(Aluminium, 1), new MaterialStack(Cobalt, 1))), + Phosphorus ( 534, TextureSet.SET_FLINT , 1.0F, 0, 2, 1 |4|8|16 , 255, 255, 0, 0, "Phosphorus" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeYellow , 2, Arrays.asList(new MaterialStack(Calcium, 3), new MaterialStack(Phosphate, 2))), + Basalt ( 844, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 , 30, 20, 20, 0, "Basalt" , 0, 0, -1, 0, false, false, 2, 1, 1, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Olivine, 1), new MaterialStack(Calcite, 3), new MaterialStack(Flint, 8), new MaterialStack(DarkAsh, 4)), Arrays.asList(new TC_AspectStack(TC_Aspects.TENEBRAE, 1))), + GarnetRed ( 527, TextureSet.SET_RUBY , 7.0F, 128, 2, 1 |4|8 |64 , 200, 80, 80, 127, "Red Garnet" , 0, 0, -1, 0, false, true, 4, 1, 1, Dyes.dyeRed , 2, Arrays.asList(new MaterialStack(Pyrope, 3), new MaterialStack(Almandine, 5), new MaterialStack(Spessartine, 8)), Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 3))), + GarnetYellow ( 528, TextureSet.SET_RUBY , 7.0F, 128, 2, 1 |4|8 |64 , 200, 200, 80, 127, "Yellow Garnet" , 0, 0, -1, 0, false, true, 4, 1, 1, Dyes.dyeYellow , 2, Arrays.asList(new MaterialStack(Andradite, 5), new MaterialStack(Grossular, 8), new MaterialStack(Uvarovite, 3)), Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 3))), + Marble ( 845, TextureSet.SET_FINE , 1.0F, 0, 1, 1 , 200, 200, 200, 0, "Marble" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(Magnesium, 1), new MaterialStack(Calcite, 7)), Arrays.asList(new TC_AspectStack(TC_Aspects.PERFODIO, 1))), + Sugar ( 803, TextureSet.SET_FINE , 1.0F, 0, 1, 1 , 250, 250, 250, 0, "Sugar" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 1, Arrays.asList(new MaterialStack(Carbon, 2), new MaterialStack(Water, 5), new MaterialStack(Oxygen, 25)), Arrays.asList(new TC_AspectStack(TC_Aspects.HERBA, 1), new TC_AspectStack(TC_Aspects.AQUA, 1), new TC_AspectStack(TC_Aspects.AER, 1))), + Thaumium ( 330, TextureSet.SET_METALLIC , 12.0F, 256, 3, 1|2 |64|128 , 150, 100, 200, 0, "Thaumium" , 0, 0, -1, 0, false, false, 5, 2, 1, Dyes.dyePurple , 0, Arrays.asList(new MaterialStack(Iron, 1), new MaterialStack(Magic, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.PRAECANTATIO, 1))), + Vinteum ( 529, TextureSet.SET_EMERALD , 10.0F, 128, 3, 1 |4|8 |64 , 100, 200, 255, 0, "Vinteum" , 5, 32, -1, 0, false, false, 4, 1, 1, Dyes.dyeLightBlue , 2, Arrays.asList(new MaterialStack(Magic, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 2), new TC_AspectStack(TC_Aspects.PRAECANTATIO, 1))), + Vis ( -1, TextureSet.SET_SHINY , 1.0F, 0, 3, 0 , 128, 0, 255, 0, "Vis" , 5, 32, -1, 0, false, false, 1, 1, 1, Dyes.dyePurple , 2, Arrays.asList(new MaterialStack(Magic, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.AURAM, 2), new TC_AspectStack(TC_Aspects.PRAECANTATIO, 1))), + Redrock ( 846, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 , 255, 80, 50, 0, "Redrock" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeRed , 2, Arrays.asList(new MaterialStack(Calcite, 2), new MaterialStack(Flint, 1), new MaterialStack(Clay, 1))), + PotassiumFeldspar ( 847, TextureSet.SET_FINE , 1.0F, 0, 1, 1 , 120, 40, 40, 0, "Potassium Feldspar" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePink , 1, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Aluminium, 1), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 8))), + Biotite ( 848, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1 , 20, 30, 20, 0, "Biotite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray , 1, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Magnesium, 3), new MaterialStack(Aluminium, 3), new MaterialStack(Fluorine, 2), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 10))), + GraniteBlack ( 849, TextureSet.SET_ROUGH , 4.0F, 64, 3, 1 |64|128 , 10, 10, 10, 0, "Black Granite" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(SiliconDioxide, 4), new MaterialStack(Biotite, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.TUTAMEN, 1))), + GraniteRed ( 850, TextureSet.SET_ROUGH , 4.0F, 64, 3, 1 |64|128 , 255, 0, 128, 0, "Red Granite" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes.dyeMagenta , 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(PotassiumFeldspar, 1), new MaterialStack(Oxygen, 3)), Arrays.asList(new TC_AspectStack(TC_Aspects.TUTAMEN, 1))), + Chrysotile ( 912, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 110, 140, 110, 0, "Chrysotile" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(Asbestos, 1))), + Realgar ( 913, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 140, 100, 100, 0, "Realgar" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(Arsenic, 4), new MaterialStack(Sulfur,4))), + VanadiumMagnetite ( 923, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 , 35, 35, 60, 0, "Vanadium Magnetite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Magnetite, 1), new MaterialStack(Vanadium, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1))), // Mixture of Fe3O4 and V2O5 + BasalticMineralSand ( 935, TextureSet.SET_SAND , 1.0F, 0, 1, 1 |8 , 40, 50, 40, 0, "Basaltic Mineral Sand" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Magnetite, 1), new MaterialStack(Basalt, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1))), + GraniticMineralSand ( 936, TextureSet.SET_SAND , 1.0F, 0, 1, 1 |8 , 40, 60, 60, 0, "Granitic Mineral Sand" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Magnetite, 1), new MaterialStack(GraniteBlack, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1))), + GarnetSand ( 938, TextureSet.SET_SAND , 1.0F, 0, 1, 1 |8 , 200, 100, 0, 0, "Garnet Sand" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange , 2, Arrays.asList(new MaterialStack(GarnetRed, 1), new MaterialStack(GarnetYellow, 1))), + QuartzSand ( 939, TextureSet.SET_SAND , 1.0F, 0, 1, 1 |8 , 200, 200, 200, 0, "Quartz Sand" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(CertusQuartz, 1), new MaterialStack(Quartzite, 1))), + Bastnasite ( 905, TextureSet.SET_FINE , 1.0F, 0, 2, 1 |8 , 200, 110, 45, 0, "Bastnasite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Cerium, 1), new MaterialStack(Carbon, 1), new MaterialStack(Fluorine, 1), new MaterialStack(Oxygen, 3))), // (Ce, La, Y)CO3F + Pentlandite ( 909, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 165, 150, 5, 0, "Pentlandite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Nickel, 9), new MaterialStack(Sulfur, 8))), // (Fe,Ni)9S8 + Spodumene ( 920, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 190, 170, 170, 0, "Spodumene" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Lithium, 1), new MaterialStack(Aluminium, 1), new MaterialStack(Silicon, 2), new MaterialStack(Oxygen, 6))), // LiAl(SiO3)2 + Pollucite ( 919, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 240, 210, 210, 0, "Pollucite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Caesium, 2), new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 4), new MaterialStack(Water, 2), new MaterialStack(Oxygen, 12))), // (Cs,Na)2Al2Si4O12 2H2O (also a source of Rb) + Tantalite ( 921, TextureSet.SET_METALLIC , 1.0F, 0, 3, 1 |8 , 145, 80, 40, 0, "Tantalite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Manganese, 1), new MaterialStack(Tantalum, 2), new MaterialStack(Oxygen, 6))), // (Fe, Mn)Ta2O6 (also source of Nb) + Lepidolite ( 907, TextureSet.SET_FINE , 1.0F, 0, 2, 1 |8 , 240, 50, 140, 0, "Lepidolite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Lithium, 3), new MaterialStack(Aluminium, 4), new MaterialStack(Fluorine, 2), new MaterialStack(Oxygen, 10))), // K(Li,Al,Rb)3(Al,Si)4O10(F,OH)2 + Glauconite ( 933, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 130, 180, 60, 0, "Glauconite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Magnesium, 2), new MaterialStack(Aluminium, 4), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 12))), // (K,Na)(Fe3+,Al,Mg)2(Si,Al)4O10(OH)2 + GlauconiteSand ( 949, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 130, 180, 60, 0, "Glauconite Sand" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Magnesium, 2), new MaterialStack(Aluminium, 4), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 12))), // (K,Na)(Fe3+,Al,Mg)2(Si,Al)4O10(OH)2 + Vermiculite ( 932, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 , 200, 180, 15, 0, "Vermiculite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Iron, 3), new MaterialStack(Aluminium, 4), new MaterialStack(Silicon, 4), new MaterialStack(Hydrogen, 2), new MaterialStack(Water, 4), new MaterialStack(Oxygen, 12))), // (Mg+2, Fe+2, Fe+3)3 [(AlSi)4O10] (OH)2 4H2O) + Bentonite ( 927, TextureSet.SET_ROUGH , 1.0F, 0, 2, 1 |8 , 245, 215, 210, 0, "Bentonite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Sodium, 1), new MaterialStack(Magnesium, 6), new MaterialStack(Silicon, 12), new MaterialStack(Hydrogen, 6), new MaterialStack(Water, 5), new MaterialStack(Oxygen, 36))), // (Na,Ca)0.33(Al,Mg)2(Si4O10)(OH)2 nH2O + FullersEarth ( 928, TextureSet.SET_FINE , 1.0F, 0, 2, 1 |8 , 160, 160, 120, 0, "Fullers Earth" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Magnesium, 1), new MaterialStack(Silicon, 4), new MaterialStack(Hydrogen, 1), new MaterialStack(Water, 4), new MaterialStack(Oxygen, 11))), // (Mg,Al)2Si4O10(OH) 4(H2O) + Pitchblende ( 873, TextureSet.SET_DULL , 1.0F, 0, 3, 1 |8 , 200, 210, 0, 0, "Pitchblende" , 0, 0, -1, 0, false, false, 5, 1, 1, Dyes.dyeYellow , 2, Arrays.asList(new MaterialStack(Uraninite, 3), new MaterialStack(Thorium, 1), new MaterialStack(Lead, 1))), + Monazite ( 520, TextureSet.SET_DIAMOND , 1.0F, 0, 1, 1 |4|8 , 50, 70, 50, 0, "Monazite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeGreen , 1, Arrays.asList(new MaterialStack(RareEarth, 1), new MaterialStack(Phosphate, 1))), // Wikipedia: (Ce, La, Nd, Th, Sm, Gd)PO4 Monazite also smelt-extract to Helium, it is brown like the rare earth Item Monazite sand deposits are inevitably of the monazite-(Ce) composition. Typically, the lanthanides in such monazites contain about 45ִ8% cerium, about 24% lanthanum, about 17% neodymium, about 5% praseodymium, and minor quantities of samarium, gadolinium, and yttrium. Europium concentrations tend to be low, about 0.05% Thorium content of monazite is variable and sometimes can be up to 20ֳ0% + Malachite ( 871, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 5, 95, 5, 0, "Malachite" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeGreen , 1, Arrays.asList(new MaterialStack(Copper, 2), new MaterialStack(Carbon, 1), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 5))), // Cu2CO3(OH)2 + Mirabilite ( 900, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 240, 250, 210, 0, "Mirabilite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Sodium, 2), new MaterialStack(Sulfur, 1), new MaterialStack(Water, 10), new MaterialStack(Oxygen, 4))), // Na2SO4 10H2O + Mica ( 901, TextureSet.SET_FINE , 1.0F, 0, 1, 1 |8 , 195, 195, 205, 0, "Mica" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Aluminium, 3), new MaterialStack(Silicon, 3), new MaterialStack(Fluorine, 2), new MaterialStack(Oxygen, 10))), // KAl2(AlSi3O10)(F,OH)2 + Trona ( 903, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1 |8 , 135, 135, 95, 0, "Trona" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Sodium, 3), new MaterialStack(Carbon, 2), new MaterialStack(Hydrogen, 1), new MaterialStack(Water, 2), new MaterialStack(Oxygen, 6))), // Na3(CO3)(HCO3) 2H2O + Barite ( 904, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 230, 235, 255, 0, "Barite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Barium, 1), new MaterialStack(Sulfur, 1), new MaterialStack(Oxygen, 4))), + Gypsum ( 934, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8 , 230, 230, 250, 0, "Gypsum" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Calcium, 1), new MaterialStack(Sulfur, 1), new MaterialStack(Water, 2), new MaterialStack(Oxygen, 4))), // CaSO4 2H2O + Alunite ( 911, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 , 225, 180, 65, 0, "Alunite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Aluminium, 3), new MaterialStack(Silicon, 2), new MaterialStack(Hydrogen, 6), new MaterialStack(Oxygen, 14))), // KAl3(SO4)2(OH)6 + Dolomite ( 914, TextureSet.SET_FLINT , 1.0F, 0, 1, 1 |8 , 225, 205, 205, 0, "Dolomite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Calcium, 1), new MaterialStack(Magnesium, 1), new MaterialStack(Carbon, 2), new MaterialStack(Oxygen, 6))), // CaMg(CO3)2 + Wollastonite ( 915, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 240, 240, 240, 0, "Wollastonite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Calcium, 1), new MaterialStack(Silicon, 1), new MaterialStack(Oxygen, 3))), // CaSiO3 + Zeolite ( 916, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 240, 230, 230, 0, "Zeolite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Sodium, 1), new MaterialStack(Calcium, 4), new MaterialStack(Silicon, 27), new MaterialStack(Aluminium, 9), new MaterialStack(Water, 28), new MaterialStack(Oxygen, 72))), // NaCa4(Si27Al9)O72 28(H2O) + Kyanite ( 924, TextureSet.SET_FLINT , 1.0F, 0, 2, 1 |8 , 110, 110, 250, 0, "Kyanite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 1), new MaterialStack(Oxygen, 5))), // Al2SiO5 + Kaolinite ( 929, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 245, 235, 235, 0, "Kaolinite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 2), new MaterialStack(Hydrogen, 4), new MaterialStack(Oxygen, 9))), // Al2Si2O5(OH)4 + Talc ( 902, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 , 90, 180, 90, 0, "Talc" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Magnesium, 3), new MaterialStack(Silicon, 4), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 12))), // H2Mg3(SiO3)4 + Soapstone ( 877, TextureSet.SET_DULL , 1.0F, 0, 1, 1 |8 , 95, 145, 95, 0, "Soapstone" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL , 1, Arrays.asList(new MaterialStack(Magnesium, 3), new MaterialStack(Silicon, 4), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 12))), // H2Mg3(SiO3)4 + Concrete ( 947, TextureSet.SET_ROUGH , 1.0F, 0, 1, 1 , 100, 100, 100, 0, "Concrete" , 0, 0, 300, 0, false, false, 0, 1, 1, Dyes.dyeGray , 0, Arrays.asList(new MaterialStack(Stone, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.TERRA, 1))), + IronMagnetic ( 354, TextureSet.SET_MAGNETIC , 6.0F, 256, 2, 1|2 |64|128 , 200, 200, 200, 0, "Magnetic Iron" , 0, 0, -1, 0, false, false, 4, 51, 50, Dyes.dyeGray , 1, Arrays.asList(new MaterialStack(Iron, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1))), + SteelMagnetic ( 355, TextureSet.SET_MAGNETIC , 6.0F, 512, 2, 1|2 |64|128 , 128, 128, 128, 0, "Magnetic Steel" , 0, 0, 1000, 1000, true, false, 4, 51, 50, Dyes.dyeGray , 1, Arrays.asList(new MaterialStack(Steel, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 1), new TC_AspectStack(TC_Aspects.ORDO, 1), new TC_AspectStack(TC_Aspects.MAGNETO, 1))), + NeodymiumMagnetic ( 356, TextureSet.SET_MAGNETIC , 7.0F, 512, 2, 1|2 |64|128 , 100, 100, 100, 0, "Magnetic Neodymium" , 0, 0, 1297, 1297, true, false, 4, 51, 50, Dyes.dyeGray , 1, Arrays.asList(new MaterialStack(Neodymium, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 1), new TC_AspectStack(TC_Aspects.MAGNETO, 3))), + TungstenCarbide ( 370, TextureSet.SET_METALLIC , 14.0F, 1280, 4, 1|2 |64|128 , 51, 0, 102, 0, "Tungstencarbide" , 0, 0, 2460, 2460, true, false, 4, 1, 1, Dyes.dyeBlack , 2, Arrays.asList(new MaterialStack(Tungsten, 1), new MaterialStack(Carbon, 1))), + VanadiumSteel ( 371, TextureSet.SET_METALLIC , 3.0F, 1920, 3, 1|2 |64|128 , 192, 192, 192, 0, "Vanadiumsteel" , 0, 0, 1453, 1453, true, false, 4, 1, 1, Dyes.dyeWhite , 2, Arrays.asList(new MaterialStack(Vanadium, 1), new MaterialStack(Chrome, 1), new MaterialStack(Steel, 7))), + HSSG ( 372, TextureSet.SET_METALLIC , 10.0F, 4000, 3, 1|2 |64|128 , 153, 153, 0, 0, "HSS-G" , 0, 0, 3123, 3123, true, false, 4, 1, 1, Dyes.dyeYellow , 2, Arrays.asList(new MaterialStack(TungstenSteel, 5), new MaterialStack(Chrome, 1), new MaterialStack(Molybdenum, 2), new MaterialStack(Vanadium, 1))), + HSSE ( 373, TextureSet.SET_METALLIC , 10.0F, 5120, 4, 1|2 |64|128 , 51, 102, 0, 0, "HSS-E" , 0, 0, 3383, 3383, true, false, 4, 1, 1, Dyes.dyeBlue , 2, Arrays.asList(new MaterialStack(HSSG, 6), new MaterialStack(Cobalt, 1),new MaterialStack(Manganese, 1), new MaterialStack(Silicon, 1))), + HSSS ( 374, TextureSet.SET_METALLIC , 14.0F, 3000, 4, 1|2 |64|128 , 102, 0, 51, 0, "HSS-S" , 0, 0, 3597, 3597, true, false, 4, 1, 1, Dyes.dyeRed , 2, Arrays.asList(new MaterialStack(HSSG, 6), new MaterialStack(Iridium, 2), new MaterialStack(Osmium, 1))), + + /** + * Materials which are renamed automatically + */ + @Deprecated IridiumAndSodiumOxide(IridiumSodiumOxide, false), + @Deprecated Palygorskite (FullersEarth, false), + @Deprecated Adamantine (Adamantium, true), + @Deprecated Ashes (Ash, false), + @Deprecated DarkAshes (DarkAsh, false), + @Deprecated Abyssal (Basalt, false), + @Deprecated Adamant (Adamantium, true), + @Deprecated AluminumBrass (AluminiumBrass, false), + @Deprecated Aluminum (Aluminium, false), + @Deprecated NaturalAluminum (Aluminium, false), + @Deprecated NaturalAluminium (Aluminium, false), + @Deprecated Americum (Americium, false), + @Deprecated Beryl (Emerald, false), // 30,200,200 + @Deprecated BlackGranite (GraniteBlack, false), + @Deprecated CalciumCarbonate (Calcite, false), + @Deprecated CreosoteOil (Creosote, false), + @Deprecated Chromium (Chrome, false), + @Deprecated Diesel (Fuel, false), + @Deprecated Enderpearl (EnderPearl, false), + @Deprecated Endereye (EnderEye, false), + @Deprecated EyeOfEnder (EnderEye, false), + @Deprecated Eyeofender (EnderEye, false), + @Deprecated Flour (Wheat, false), + @Deprecated Meat (MeatRaw, false), + @Deprecated Garnet (GarnetRed, true), + @Deprecated Granite (GraniteBlack, false), + @Deprecated Goethite (BrownLimonite, false), + @Deprecated Kalium (Potassium, false), + @Deprecated Lapislazuli (Lapis, false), + @Deprecated LapisLazuli (Lapis, false), + @Deprecated Monazit (Monazite, false), + @Deprecated Natrium (Sodium, false), + @Deprecated Mythril (Mithril, false), + @Deprecated NitroDiesel (NitroFuel, false), + @Deprecated Naquadriah (Naquadria, false), + @Deprecated Obby (Obsidian, false), + @Deprecated Peridot (Olivine, true), + @Deprecated Phosphorite (Phosphorus, true), + @Deprecated Quarried (Marble, false), + @Deprecated Quicksilver (Mercury, true), + @Deprecated QuickSilver (Mercury, false), + @Deprecated RedRock (Redrock, false), + @Deprecated RefinedIron (Iron, false), + @Deprecated RedGranite (GraniteRed, false), + @Deprecated Sheldonite (Cooperite, false), + @Deprecated Soulsand (SoulSand, false), + @Deprecated Titan (Titanium, false), + @Deprecated Uran (Uranium, false), + @Deprecated Wolframite (Tungstate, false), + @Deprecated Wolframium (Tungsten, false), + @Deprecated Wolfram (Tungsten, false), + ; + + /** List of all Materials. */ + public static final Collection VALUES = new HashSet(Arrays.asList(values())); + + static { + SubTag.ELECTROMAGNETIC_SEPERATION_NEODYMIUM.addTo(Bastnasite, Monazite, Forcicium, Forcillium); + SubTag.ELECTROMAGNETIC_SEPERATION_GOLD.addTo(Magnetite, VanadiumMagnetite, BasalticMineralSand, GraniticMineralSand); + SubTag.ELECTROMAGNETIC_SEPERATION_IRON.addTo(YellowLimonite, BrownLimonite, Pyrite, BandedIron, Nickel, Vermiculite, Glauconite, GlauconiteSand, Pentlandite, Tin, Antimony, Ilmenite, Manganese, Chrome, Chromite, Andradite); + SubTag.BLASTFURNACE_CALCITE_DOUBLE.addTo(Pyrite, YellowLimonite, BasalticMineralSand, GraniticMineralSand); + SubTag.BLASTFURNACE_CALCITE_TRIPLE.addTo(Iron, PigIron, DeepIron, ShadowIron, WroughtIron, MeteoricIron, BrownLimonite); + SubTag.WASHING_MERCURY.addTo(Gold, Silver, Osmium, Mithril, Platinum, Midasium, Cooperite, AstralSilver); + SubTag.WASHING_SODIUMPERSULFATE.addTo(Zinc, Nickel, Copper, Cobalt, Cobaltite, Tetrahedrite); + SubTag.METAL.addTo(AnyIron, AnyCopper, AnyBronze, Metal, Aluminium, Americium, Antimony, Beryllium, Bismuth, Caesium, Cerium, Chrome, Cobalt, Copper, Dysprosium, Erbium, Europium, Gadolinium, Gallium, Gold, + Holmium, Indium, Iridium, Iron, Lanthanum, Lead, Lutetium, Magnesium, Manganese, Mercury, Niobium, Molybdenum, Neodymium, Neutronium, Nickel, Osmium, Palladium, Platinum, Plutonium, Plutonium241, + Praseodymium, Promethium, Rubidium, Samarium, Scandium, Silicon, Silver, Tantalum, Tellurium, Terbium, Thorium, Thulium, Tin, Titanium, Tungsten, Uranium, Uranium235, Vanadium, Ytterbium, Yttrium, + Zinc, /**Satinspar, Selenite, Microcline, Sylvite, RefinedGlowstone, RefinedObsidian,**/ Serpentine, Signalum, Lumium, PhasedIron, PhasedGold, DarkSteel, Terrasteel, TinAlloy, ConductiveIron, ElectricalSteel, EnergeticAlloy, VibrantAlloy, + PulsatingIron, Manasteel, DarkThaumium, ElvenElementium, EnrichedCopper, DiamondCopper, Adamantium, Amordrine, Angmallen, Ardite, Aredrite, Atlarus, Blutonium, Carmot, Celenegil, Ceruclase, DarkIron, + Desh, Desichalkos, Duranium, ElectrumFlux, Enderium, EnderiumBase, Eximite, FierySteel, Force, Haderoth, Hematite, Hepatizon, HSLA, Infuscolium, InfusedGold, Inolashite, Mercassium, MeteoricIron, + MeteoricSteel, Naquadah, NaquadahAlloy, NaquadahEnriched, Naquadria, ObsidianFlux, Orichalcum, Osmonium, Oureclase, Phoenixite, Prometheum, Sanguinite, Starconium, + Tartarite, Thyrium, Tritanium, Vulcanite, Vyroxeres, Yellorium, Zectium, AluminiumBrass, Osmiridium, Sunnarium, AnnealedCopper, BatteryAlloy, Brass, Bronze, ChromiumDioxide, Cupronickel, DeepIron, + Electrum, Invar, IronCompressed, Kanthal, Magnalium, Nichrome, NiobiumNitride, NiobiumTitanium, PigIron, SolderingAlloy, StainlessSteel, Steel, Ultimet, VanadiumGallium, WroughtIron, + YttriumBariumCuprate, IronWood, Alumite, Manyullyn, ShadowIron, ShadowSteel, Steeleaf, SterlingSilver, RoseGold, BlackBronze, BismuthBronze, BlackSteel, RedSteel, BlueSteel, DamascusSteel, + TungstenSteel, AstralSilver, Midasium, Mithril, BlueAlloy, RedAlloy, CobaltBrass, Thaumium, IronMagnetic, SteelMagnetic, NeodymiumMagnetic, Knightmetal); + + SubTag.FOOD.addTo(MeatRaw, MeatCooked, Ice, Water, Salt, Chili, Cocoa, Cheese, Coffee, Chocolate, Milk, Honey, FryingOilHot, FishOil, SeedOil, SeedOilLin, SeedOilHemp, Wheat, Sugar, FreshWater); + + Wood .add(SubTag.WOOD, SubTag.FLAMMABLE, SubTag.NO_SMELTING, SubTag.NO_SMASHING); + WoodSealed .add(SubTag.WOOD, SubTag.FLAMMABLE, SubTag.NO_SMELTING, SubTag.NO_SMASHING, SubTag.NO_WORKING); + Peanutwood .add(SubTag.WOOD, SubTag.FLAMMABLE, SubTag.NO_SMELTING, SubTag.NO_SMASHING); + LiveRoot .add(SubTag.WOOD, SubTag.FLAMMABLE, SubTag.NO_SMELTING, SubTag.NO_SMASHING, SubTag.MAGICAL, SubTag.MORTAR_GRINDABLE); + IronWood .add(SubTag.WOOD, SubTag.FLAMMABLE, SubTag.MAGICAL, SubTag.MORTAR_GRINDABLE); + Steeleaf .add(SubTag.WOOD, SubTag.FLAMMABLE, SubTag.MAGICAL, SubTag.MORTAR_GRINDABLE, SubTag.NO_SMELTING); + + MeatRaw .add(SubTag.NO_SMASHING); + MeatCooked .add(SubTag.NO_SMASHING, SubTag.NO_SMELTING); + Snow .add(SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.NO_RECYCLING); + Ice .add(SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.NO_RECYCLING); + Water .add(SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.NO_RECYCLING); + Sulfur .add(SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.FLAMMABLE); + Saltpeter .add(SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.FLAMMABLE); + Graphite .add(SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.FLAMMABLE, SubTag.NO_SMELTING); + + Wheat .add(SubTag.FLAMMABLE, SubTag.MORTAR_GRINDABLE); + Paper .add(SubTag.FLAMMABLE, SubTag.NO_SMELTING, SubTag.NO_SMASHING, SubTag.MORTAR_GRINDABLE, SubTag.PAPER); + Coal .add(SubTag.FLAMMABLE, SubTag.NO_SMELTING, SubTag.NO_SMASHING, SubTag.MORTAR_GRINDABLE); + Charcoal .add(SubTag.FLAMMABLE, SubTag.NO_SMELTING, SubTag.NO_SMASHING, SubTag.MORTAR_GRINDABLE); + Lignite .add(SubTag.FLAMMABLE, SubTag.NO_SMELTING, SubTag.NO_SMASHING, SubTag.MORTAR_GRINDABLE); + + Rubber .add(SubTag.FLAMMABLE, SubTag.NO_SMASHING, SubTag.BOUNCY, SubTag.STRETCHY); + Plastic .add(SubTag.FLAMMABLE, SubTag.NO_SMASHING, SubTag.BOUNCY); + Silicone .add(SubTag.FLAMMABLE, SubTag.NO_SMASHING, SubTag.BOUNCY, SubTag.STRETCHY); + + TNT .add(SubTag.FLAMMABLE, SubTag.EXPLOSIVE, SubTag.NO_SMELTING, SubTag.NO_SMASHING); + Gunpowder .add(SubTag.FLAMMABLE, SubTag.EXPLOSIVE, SubTag.NO_SMELTING, SubTag.NO_SMASHING); + Glyceryl .add(SubTag.FLAMMABLE, SubTag.EXPLOSIVE, SubTag.NO_SMELTING, SubTag.NO_SMASHING); + NitroCoalFuel .add(SubTag.FLAMMABLE, SubTag.EXPLOSIVE, SubTag.NO_SMELTING, SubTag.NO_SMASHING); + NitroFuel .add(SubTag.FLAMMABLE, SubTag.EXPLOSIVE, SubTag.NO_SMELTING, SubTag.NO_SMASHING); + NitroCarbon .add(SubTag.FLAMMABLE, SubTag.EXPLOSIVE, SubTag.NO_SMELTING, SubTag.NO_SMASHING); + + Lead .add(SubTag.MORTAR_GRINDABLE, SubTag.SOLDERING_MATERIAL, SubTag.SOLDERING_MATERIAL_BAD); + Tin .add(SubTag.MORTAR_GRINDABLE, SubTag.SOLDERING_MATERIAL); + SolderingAlloy .add(SubTag.MORTAR_GRINDABLE, SubTag.SOLDERING_MATERIAL, SubTag.SOLDERING_MATERIAL_GOOD); + + Cheese .add(SubTag.SMELTING_TO_FLUID); + Sugar .add(SubTag.SMELTING_TO_FLUID); + + Concrete .add(SubTag.STONE, SubTag.NO_SMASHING, SubTag.SMELTING_TO_FLUID); + ConstructionFoam .add(SubTag.STONE, SubTag.NO_SMASHING, SubTag.EXPLOSIVE, SubTag.NO_SMELTING); + Redstone .add(SubTag.STONE, SubTag.NO_SMASHING, SubTag.UNBURNABLE, SubTag.SMELTING_TO_FLUID, SubTag.PULVERIZING_CINNABAR); + Glowstone .add(SubTag.STONE, SubTag.NO_SMASHING, SubTag.UNBURNABLE, SubTag.SMELTING_TO_FLUID); + Nikolite .add(SubTag.STONE, SubTag.NO_SMASHING, SubTag.UNBURNABLE, SubTag.SMELTING_TO_FLUID); + Teslatite .add(SubTag.STONE, SubTag.NO_SMASHING, SubTag.UNBURNABLE, SubTag.SMELTING_TO_FLUID); + Netherrack .add(SubTag.STONE, SubTag.NO_SMASHING, SubTag.UNBURNABLE, SubTag.FLAMMABLE); + Stone .add(SubTag.STONE, SubTag.NO_SMASHING, SubTag.NO_RECYCLING); + Brick .add(SubTag.STONE, SubTag.NO_SMASHING); + NetherBrick .add(SubTag.STONE, SubTag.NO_SMASHING); + Endstone .add(SubTag.STONE, SubTag.NO_SMASHING); + Marble .add(SubTag.STONE, SubTag.NO_SMASHING); + Basalt .add(SubTag.STONE, SubTag.NO_SMASHING); + Redrock .add(SubTag.STONE, SubTag.NO_SMASHING); + Obsidian .add(SubTag.STONE, SubTag.NO_SMASHING); + Flint .add(SubTag.STONE, SubTag.NO_SMASHING, SubTag.MORTAR_GRINDABLE); + GraniteRed .add(SubTag.STONE, SubTag.NO_SMASHING); + GraniteBlack .add(SubTag.STONE, SubTag.NO_SMASHING); + Salt .add(SubTag.STONE, SubTag.NO_SMASHING); + RockSalt .add(SubTag.STONE, SubTag.NO_SMASHING); + + Sand .add(SubTag.NO_RECYCLING); + + Gold .add(SubTag.MORTAR_GRINDABLE); + Silver .add(SubTag.MORTAR_GRINDABLE); + Iron .add(SubTag.MORTAR_GRINDABLE); + IronMagnetic .add(SubTag.MORTAR_GRINDABLE); + HSLA .add(SubTag.MORTAR_GRINDABLE); + Steel .add(SubTag.MORTAR_GRINDABLE); + SteelMagnetic .add(SubTag.MORTAR_GRINDABLE); + Zinc .add(SubTag.MORTAR_GRINDABLE); + Antimony .add(SubTag.MORTAR_GRINDABLE); + Copper .add(SubTag.MORTAR_GRINDABLE); + AnnealedCopper .add(SubTag.MORTAR_GRINDABLE); + Bronze .add(SubTag.MORTAR_GRINDABLE); + Nickel .add(SubTag.MORTAR_GRINDABLE); + Invar .add(SubTag.MORTAR_GRINDABLE); + Brass .add(SubTag.MORTAR_GRINDABLE); + WroughtIron .add(SubTag.MORTAR_GRINDABLE); + Electrum .add(SubTag.MORTAR_GRINDABLE); + Clay .add(SubTag.MORTAR_GRINDABLE); + + Glass .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_RECYCLING, SubTag.SMELTING_TO_FLUID); + Diamond .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.FLAMMABLE); + Emerald .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); + Amethyst .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); + Tanzanite .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); + Topaz .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); + BlueTopaz .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); + Amber .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); + GreenSapphire .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); + Sapphire .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); + Ruby .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); + FoolsRuby .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); + Opal .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); + Olivine .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); + Jasper .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); + GarnetRed .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); + GarnetYellow .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); + Mimichite .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); + CrystalFlux .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); + Crystal .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); + Niter .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); + Apatite .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE); + Lapis .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE); + Sodalite .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE); + Lazurite .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE); + Monazite .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE); + Quartzite .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE, SubTag.QUARTZ); + Quartz .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE, SubTag.QUARTZ); + SiliconDioxide .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE, SubTag.QUARTZ); + Dilithium .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE, SubTag.QUARTZ); + NetherQuartz .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE, SubTag.QUARTZ); + CertusQuartz .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE, SubTag.QUARTZ); + Fluix .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE, SubTag.QUARTZ); + Phosphorus .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.FLAMMABLE, SubTag.EXPLOSIVE); + Phosphate .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.FLAMMABLE, SubTag.EXPLOSIVE); + InfusedAir .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.MAGICAL, SubTag.UNBURNABLE); + InfusedFire .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.MAGICAL, SubTag.UNBURNABLE); + InfusedEarth .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.MAGICAL, SubTag.UNBURNABLE); + InfusedWater .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.MAGICAL, SubTag.UNBURNABLE); + InfusedEntropy .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.MAGICAL, SubTag.UNBURNABLE); + InfusedOrder .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.MAGICAL, SubTag.UNBURNABLE); + InfusedVis .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.MAGICAL, SubTag.UNBURNABLE); + InfusedDull .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.MAGICAL, SubTag.UNBURNABLE); + Vinteum .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.MAGICAL, SubTag.UNBURNABLE); + NetherStar .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.MAGICAL, SubTag.UNBURNABLE); + EnderPearl .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.MAGICAL, SubTag.PEARL); + EnderEye .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.MAGICAL, SubTag.PEARL); + Firestone .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE, SubTag.MAGICAL, SubTag.QUARTZ, SubTag.UNBURNABLE, SubTag.BURNING); + Forcicium .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE, SubTag.MAGICAL); + Forcillium .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE, SubTag.MAGICAL); + Force .add(SubTag.CRYSTAL, SubTag.MAGICAL, SubTag.UNBURNABLE); + Magic .add(SubTag.CRYSTAL, SubTag.MAGICAL, SubTag.UNBURNABLE); + + Primitive .add(SubTag.NO_SMASHING, SubTag.NO_SMELTING); + Basic .add(SubTag.NO_SMASHING, SubTag.NO_SMELTING); + Good .add(SubTag.NO_SMASHING, SubTag.NO_SMELTING); + Advanced .add(SubTag.NO_SMASHING, SubTag.NO_SMELTING); + Data .add(SubTag.NO_SMASHING, SubTag.NO_SMELTING); + Elite .add(SubTag.NO_SMASHING, SubTag.NO_SMELTING); + Master .add(SubTag.NO_SMASHING, SubTag.NO_SMELTING); + Ultimate .add(SubTag.NO_SMASHING, SubTag.NO_SMELTING); + Superconductor .add(SubTag.NO_SMASHING, SubTag.NO_SMELTING); + Infinite .add(SubTag.NO_SMASHING, SubTag.NO_SMELTING); - /** - * Direct Elements - */ - Aluminium ( 19, TextureSet.SET_DULL , 10.0F, 128, 2, 1|2 |8 |32|64|128 , 128, 200, 240, 0, "Aluminium" , 0, 0, 933, 1700, true, false, 3, 1, 1, Dyes.dyeLightBlue , Element.Al , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.VOLATUS, 1))), - Americium ( 103, TextureSet.SET_METALLIC , 1.0F, 0, 3, 1|2 |8 |32 , 200, 200, 200, 0, "Americium" , 0, 0, 1449, 1449, true, false, 3, 1, 1, Dyes.dyeLightGray , Element.Am , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Antimony ( 58, TextureSet.SET_SHINY , 1.0F, 0, 2, 1|2 |8 |32 , 220, 220, 240, 0, "Antimony" , 0, 0, 903, 0, false, false, 2, 1, 1, Dyes.dyeLightGray , Element.Sb , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.AQUA, 1))), - Argon ( 24, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 0, 255, 0, 240, "Argon" , 0, 0, 83, 0, false, true, 5, 1, 1, Dyes.dyeGreen , Element.Ar , Arrays.asList(new TC_AspectStack(TC_Aspects.AER, 2))), - Arsenic ( 39, TextureSet.SET_DULL , 1.0F, 0, 2, 1|2 |8|16|32 , 255, 255, 255, 0, "Arsenic" , 0, 0, 1090, 0, false, false, 3, 1, 1, Dyes.dyeOrange , Element.As , Arrays.asList(new TC_AspectStack(TC_Aspects.VENENUM, 3))), - Barium ( 63, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 |32 , 255, 255, 255, 0, "Barium" , 0, 0, 1000, 0, false, false, 1, 1, 1, Dyes._NULL , Element.Ba , Arrays.asList(new TC_AspectStack(TC_Aspects.VINCULUM, 3))), - Beryllium ( 8, TextureSet.SET_METALLIC , 14.0F, 64, 2, 1|2 |8 |32|64 , 100, 180, 100, 0, "Beryllium" , 0, 0, 1560, 0, false, false, 6, 1, 1, Dyes.dyeGreen , Element.Be , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.LUCRUM, 1))), - Bismuth ( 90, TextureSet.SET_METALLIC , 6.0F, 64, 1, 1|2 |8 |32|64|128 , 100, 160, 160, 0, "Bismuth" , 0, 0, 544, 0, false, false, 2, 1, 1, Dyes.dyeCyan , Element.Bi , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1))), - Boron ( 9, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 |32 , 250, 250, 250, 0, "Boron" , 0, 0, 2349, 0, false, false, 1, 1, 1, Dyes.dyeWhite , Element.B , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 3))), - Caesium ( 62, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Caesium" , 0, 0, 301, 0, false, false, 4, 1, 1, Dyes._NULL , Element.Cs , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Calcium ( 26, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |32 , 255, 245, 245, 0, "Calcium" , 0, 0, 1115, 0, false, false, 4, 1, 1, Dyes.dyePink , Element.Ca , Arrays.asList(new TC_AspectStack(TC_Aspects.SANO, 1), new TC_AspectStack(TC_Aspects.TUTAMEN, 1))), - Carbon ( 10, TextureSet.SET_DULL , 1.0F, 64, 2, 1|2 |32|64|128 , 20, 20, 20, 0, "Carbon" , 0, 0, 3800, 0, false, false, 2, 1, 1, Dyes.dyeBlack , Element.C , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 1), new TC_AspectStack(TC_Aspects.IGNIS, 1))), - Cadmium ( 55, TextureSet.SET_SHINY , 1.0F, 0, 2, 1 |8 |32 , 50, 50, 60, 0, "Cadmium" , 0, 0, 594, 0, false, false, 3, 1, 1, Dyes.dyeGray , Element.Cd , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 1), new TC_AspectStack(TC_Aspects.POTENTIA, 1), new TC_AspectStack(TC_Aspects.VENENUM, 1))), - Cerium ( 65, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Cerium" , 0, 0, 1068, 1068, true, false, 4, 1, 1, Dyes._NULL , Element.Ce , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Chlorine ( 23, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 255, 255, 255, 0, "Chlorine" , 0, 0, 171, 0, false, false, 2, 1, 1, Dyes.dyeCyan , Element.Cl , Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 2), new TC_AspectStack(TC_Aspects.PANNUS, 1))), - Chrome ( 30, TextureSet.SET_SHINY , 11.0F, 256, 3, 1|2 |8 |32|64|128 , 255, 230, 230, 0, "Chrome" , 0, 0, 2180, 1700, true, false, 5, 1, 1, Dyes.dyePink , Element.Cr , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MACHINA, 1))), - Cobalt ( 33, TextureSet.SET_METALLIC , 8.0F, 512, 3, 1|2 |8 |32|64 , 80, 80, 250, 0, "Cobalt" , 0, 0, 1768, 1700, true, false, 3, 1, 1, Dyes.dyeBlue , Element.Co , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1))), - Copper ( 35, TextureSet.SET_SHINY , 1.0F, 0, 1, 1|2 |8 |32 |128 , 255, 100, 0, 0, "Copper" , 0, 0, 1357, 0, false, false, 3, 1, 1, Dyes.dyeOrange , Element.Cu , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.PERMUTATIO, 1))), - Deuterium ( 2, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 255, 255, 0, 240, "Deuterium" , 0, 0, 14, 0, false, true, 10, 1, 1, Dyes.dyeYellow , Element.D , Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 3))), - Dysprosium ( 73, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Dysprosium" , 0, 0, 1680, 1680, true, false, 4, 1, 1, Dyes._NULL , Element.Dy , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 3))), - Empty ( 0, TextureSet.SET_NONE , 1.0F, 0, 2, 256/*Only for Prefixes which need it*/, 255, 255, 255, 255, "Empty" , 0, 0, -1, 0, false, true, 1, 1, 1, Dyes._NULL , Element._NULL , Arrays.asList(new TC_AspectStack(TC_Aspects.VACUOS, 2))), - Erbium ( 75, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Erbium" , 0, 0, 1802, 1802, true, false, 4, 1, 1, Dyes._NULL , Element.Er , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Europium ( 70, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Europium" , 0, 0, 1099, 1099, true, false, 4, 1, 1, Dyes._NULL , Element.Eu , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Fluorine ( 14, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 255, 255, 255, 127, "Fluorine" , 0, 0, 53, 0, false, true, 2, 1, 1, Dyes.dyeGreen , Element.F , Arrays.asList(new TC_AspectStack(TC_Aspects.PERDITIO, 2))), - Gadolinium ( 71, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Gadolinium" , 0, 0, 1585, 1585, true, false, 4, 1, 1, Dyes._NULL , Element.Gd , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Gallium ( 37, TextureSet.SET_SHINY , 1.0F, 64, 2, 1|2 |8 |32 , 220, 220, 255, 0, "Gallium" , 0, 0, 302, 0, false, false, 5, 1, 1, Dyes.dyeLightGray , Element.Ga , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.ELECTRUM, 1))), - Gold ( 86, TextureSet.SET_SHINY , 12.0F, 64, 2, 1|2 |8 |32|64|128 , 255, 255, 30, 0, "Gold" , 0, 0, 1337, 0, false, false, 4, 1, 1, Dyes.dyeYellow , Element.Au , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.LUCRUM, 2))), - Holmium ( 74, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Holmium" , 0, 0, 1734, 1734, true, false, 4, 1, 1, Dyes._NULL , Element.Ho , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Hydrogen ( 1, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 0, 0, 255, 240, "Hydrogen" , 1, 15, 14, 0, false, true, 2, 1, 1, Dyes.dyeBlue , Element.H , Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 1))), - Helium ( 4, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 255, 255, 0, 240, "Helium" , 0, 0, 1, 0, false, true, 5, 1, 1, Dyes.dyeYellow , Element.He , Arrays.asList(new TC_AspectStack(TC_Aspects.AER, 2))), - Helium_3 ( 5, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 255, 255, 0, 240, "Helium-3" , 0, 0, 1, 0, false, true, 10, 1, 1, Dyes.dyeYellow , Element.He_3 , Arrays.asList(new TC_AspectStack(TC_Aspects.AER, 3))), - Indium ( 56, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 64, 0, 128, 0, "Indium" , 0, 0, 429, 0, false, false, 4, 1, 1, Dyes.dyeGray , Element.In , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Iridium ( 84, TextureSet.SET_DULL , 6.0F, 2560, 3, 1|2 |8 |32|64|128 , 240, 240, 245, 0, "Iridium" , 0, 0, 2719, 2719, true, false, 10, 1, 1, Dyes.dyeWhite , Element.Ir , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MACHINA, 1))), - Iron ( 32, TextureSet.SET_METALLIC , 6.0F, 256, 2, 1|2 |8 |32|64|128 , 200, 200, 200, 0, "Iron" , 0, 0, 1811, 0, false, false, 3, 1, 1, Dyes.dyeLightGray , Element.Fe , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 3))), - Lanthanum ( 64, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Lanthanum" , 0, 0, 1193, 1193, true, false, 4, 1, 1, Dyes._NULL , Element.La , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Lead ( 89, TextureSet.SET_DULL , 8.0F, 64, 1, 1|2 |8 |32|64|128 , 140, 100, 140, 0, "Lead" , 0, 0, 600, 0, false, false, 3, 1, 1, Dyes.dyePurple , Element.Pb , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.ORDO, 1))), - Lithium ( 6, TextureSet.SET_DULL , 1.0F, 0, 2, 1|2 |8 |32 , 225, 220, 255, 0, "Lithium" , 0, 0, 454, 0, false, false, 4, 1, 1, Dyes.dyeLightBlue , Element.Li , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 1), new TC_AspectStack(TC_Aspects.POTENTIA, 2))), - Lutetium ( 78, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Lutetium" , 0, 0, 1925, 1925, true, false, 4, 1, 1, Dyes._NULL , Element.Lu , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Magic (-128, TextureSet.SET_SHINY , 8.0F, 5120, 5, 1|2|4|8|16|32|64|128 , 100, 0, 200, 0, "Magic" , 5, 32, 5000, 0, false, false, 7, 1, 1, Dyes.dyePurple , Element.Ma , Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTATIO, 4))), - Magnesium ( 18, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 200, 200, 0, "Magnesium" , 0, 0, 923, 0, false, false, 3, 1, 1, Dyes.dyePink , Element.Mg , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.SANO, 1))), - Manganese ( 31, TextureSet.SET_DULL , 7.0F, 512, 2, 1|2 |8 |32|64 , 250, 250, 250, 0, "Manganese" , 0, 0, 1519, 0, false, false, 3, 1, 1, Dyes.dyeWhite , Element.Mn , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 3))), - Mercury ( 87, TextureSet.SET_SHINY , 1.0F, 0, 0, 16|32 , 255, 220, 220, 0, "Mercury" , 5, 32, 234, 0, false, false, 3, 1, 1, Dyes.dyeLightGray , Element.Hg , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 1), new TC_AspectStack(TC_Aspects.AQUA, 1), new TC_AspectStack(TC_Aspects.VENENUM, 1))), - Molybdenum ( 48, TextureSet.SET_SHINY , 7.0F, 512, 2, 1|2 |8 |32|64 , 180, 180, 220, 0, "Molybdenum" , 0, 0, 2896, 0, false, false, 1, 1, 1, Dyes.dyeBlue , Element.Mo , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1))), - Neodymium ( 67, TextureSet.SET_METALLIC , 7.0F, 512, 2, 1|2 |8 |32|64|128 , 100, 100, 100, 0, "Neodymium" , 0, 0, 1297, 1297, true, false, 4, 1, 1, Dyes._NULL , Element.Nd , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 2))), - Neutronium ( 129, TextureSet.SET_DULL , 6.0F, 81920, 6, 1|2 |8 |32|64|128 , 250, 250, 250, 0, "Neutronium" , 0, 0, 10000, 9000, true, false, 20, 1, 1, Dyes.dyeWhite , Element.Nt , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 4), new TC_AspectStack(TC_Aspects.VITREUS, 3), new TC_AspectStack(TC_Aspects.ALIENIS, 2))), - Nickel ( 34, TextureSet.SET_METALLIC , 6.0F, 64, 2, 1|2 |8 |32|64|128 , 200, 200, 250, 0, "Nickel" , 0, 0, 1728, 0, false, false, 4, 1, 1, Dyes.dyeLightBlue , Element.Ni , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.IGNIS, 1))), - Niobium ( 47, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 190, 180, 200, 0, "Niobium" , 0, 0, 2750, 2750, true, false, 5, 1, 1, Dyes._NULL , Element.Nb , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.ELECTRUM, 1))), - Nitrogen ( 12, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 0, 150, 200, 240, "Nitrogen" , 0, 0, 63, 0, false, true, 2, 1, 1, Dyes.dyeCyan , Element.N , Arrays.asList(new TC_AspectStack(TC_Aspects.AER, 2))), - Osmium ( 83, TextureSet.SET_METALLIC , 16.0F, 1280, 4, 1|2 |8 |32|64|128 , 50, 50, 255, 0, "Osmium" , 0, 0, 3306, 3306, true, false, 10, 1, 1, Dyes.dyeBlue , Element.Os , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MACHINA, 1), new TC_AspectStack(TC_Aspects.NEBRISUM, 1))), - Oxygen ( 13, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 0, 100, 200, 240, "Oxygen" , 0, 0, 54, 0, false, true, 1, 1, 1, Dyes.dyeWhite , Element.O , Arrays.asList(new TC_AspectStack(TC_Aspects.AER, 1))), - Palladium ( 52, TextureSet.SET_SHINY , 8.0F, 512, 2, 1|2 |8 |32|64|128 , 128, 128, 128, 0, "Palladium" , 0, 0, 1828, 1828, true, false, 4, 1, 1, Dyes.dyeGray , Element.Pd , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 3))), - Phosphor ( 21, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 |32 , 255, 255, 0, 0, "Phosphor" , 0, 0, 317, 0, false, false, 2, 1, 1, Dyes.dyeYellow , Element.P , Arrays.asList(new TC_AspectStack(TC_Aspects.IGNIS, 2), new TC_AspectStack(TC_Aspects.POTENTIA, 1))), - Platinum ( 85, TextureSet.SET_SHINY , 12.0F, 64, 2, 1|2 |8 |32|64|128 , 255, 255, 200, 0, "Platinum" , 0, 0, 2041, 0, false, false, 6, 1, 1, Dyes.dyeOrange , Element.Pt , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.NEBRISUM, 1))), - Plutonium ( 100, TextureSet.SET_METALLIC , 6.0F, 512, 3, 1|2 |8 |32|64 , 240, 50, 50, 0, "Plutonium 244" , 0, 0, 912, 0, false, false, 6, 1, 1, Dyes.dyeLime , Element.Pu , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 2))), - Plutonium241 ( 101, TextureSet.SET_SHINY , 6.0F, 512, 3, 1|2 |8 |32|64 , 250, 70, 70, 0, "Plutonium 241" , 0, 0, 912, 0, false, false, 6, 1, 1, Dyes.dyeLime , Element.Pu_241 , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 3))), - Potassium ( 25, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1|2 |32 , 250, 250, 250, 0, "Potassium" , 0, 0, 336, 0, false, false, 2, 1, 1, Dyes.dyeWhite , Element.K , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 1), new TC_AspectStack(TC_Aspects.POTENTIA, 1))), - Praseodymium ( 66, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Praseodymium" , 0, 0, 1208, 1208, true, false, 4, 1, 1, Dyes._NULL , Element.Pr , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Promethium ( 68, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Promethium" , 0, 0, 1315, 1315, true, false, 4, 1, 1, Dyes._NULL , Element.Pm , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Radon ( 93, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 255, 0, 255, 240, "Radon" , 0, 0, 202, 0, false, true, 5, 1, 1, Dyes.dyePurple , Element.Rn , Arrays.asList(new TC_AspectStack(TC_Aspects.AER, 1), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Rubidium ( 43, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 240, 30, 30, 0, "Rubidium" , 0, 0, 312, 0, false, false, 4, 1, 1, Dyes.dyeRed , Element.Rb , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.VITREUS, 1))), - Samarium ( 69, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Samarium" , 0, 0, 1345, 1345, true, false, 4, 1, 1, Dyes._NULL , Element.Sm , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Scandium ( 27, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Scandium" , 0, 0, 1814, 1814, true, false, 2, 1, 1, Dyes.dyeYellow , Element.Sc , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Silicon ( 20, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 60, 60, 80, 0, "Silicon" , 0, 0, 1687, 1687, true, false, 1, 1, 1, Dyes.dyeBlack , Element.Si , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.TENEBRAE, 1))), - Silver ( 54, TextureSet.SET_SHINY , 10.0F, 64, 2, 1|2 |8 |32|64|128 , 220, 220, 255, 0, "Silver" , 0, 0, 1234, 0, false, false, 3, 1, 1, Dyes.dyeLightGray , Element.Ag , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.LUCRUM, 1))), - Sodium ( 17, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |32 , 0, 0, 150, 0, "Sodium" , 0, 0, 370, 0, false, false, 1, 1, 1, Dyes.dyeBlue , Element.Na , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 2), new TC_AspectStack(TC_Aspects.LUX, 1))), - Strontium ( 44, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |8 |32 , 200, 200, 200, 0, "Strontium" , 0, 0, 1050, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Element.Sr , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.STRONTIO, 1))), - Sulfur ( 22, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 |32 , 200, 200, 0, 0, "Sulfur" , 0, 0, 388, 0, false, false, 2, 1, 1, Dyes.dyeYellow , Element.S , Arrays.asList(new TC_AspectStack(TC_Aspects.IGNIS, 1))), - Tantalum ( 80, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Tantalum" , 0, 0, 3290, 0, false, false, 4, 1, 1, Dyes._NULL , Element.Ta , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.VINCULUM, 1))), - Tellurium ( 59, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Tellurium" , 0, 0, 722, 0, false, false, 4, 1, 1, Dyes.dyeGray , Element.Te , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Terbium ( 72, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Terbium" , 0, 0, 1629, 1629, true, false, 4, 1, 1, Dyes._NULL , Element.Tb , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Thorium ( 96, TextureSet.SET_SHINY , 6.0F, 512, 2, 1|2 |8 |32|64 , 0, 30, 0, 0, "Thorium" , 0, 0, 2115, 0, false, false, 4, 1, 1, Dyes.dyeBlack , Element.Th , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Thulium ( 76, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Thulium" , 0, 0, 1818, 1818, true, false, 4, 1, 1, Dyes._NULL , Element.Tm , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Tin ( 57, TextureSet.SET_DULL , 1.0F, 0, 1, 1|2 |8 |32 |128 , 220, 220, 220, 0, "Tin" , 0, 0, 505, 505, false, false, 3, 1, 1, Dyes.dyeWhite , Element.Sn , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.VITREUS, 1))), - Titanium ( 28, TextureSet.SET_METALLIC , 7.0F, 1600, 3, 1|2 |8 |32|64|128 , 220, 160, 240, 0, "Titanium" , 0, 0, 1941, 1500, true, false, 5, 1, 1, Dyes.dyePurple , Element.Ti , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.TUTAMEN, 1))), - Tritium ( 3, TextureSet.SET_METALLIC , 1.0F, 0, 2, 16|32 , 255, 0, 0, 240, "Tritium" , 0, 0, 14, 0, false, true, 10, 1, 1, Dyes.dyeRed , Element.T , Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 4))), - Tungsten ( 81, TextureSet.SET_METALLIC , 7.0F, 2560, 3, 1|2 |8 |32|64|128 , 50, 50, 50, 0, "Tungsten" , 0, 0, 3695, 2500, true, false, 4, 1, 1, Dyes.dyeBlack , Element.W , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 3), new TC_AspectStack(TC_Aspects.TUTAMEN, 1))), - Uranium ( 98, TextureSet.SET_METALLIC , 6.0F, 512, 3, 1|2 |8 |32|64 , 50, 240, 50, 0, "Uranium 238" , 0, 0, 1405, 0, false, false, 4, 1, 1, Dyes.dyeGreen , Element.U , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Uranium235 ( 97, TextureSet.SET_SHINY , 6.0F, 512, 3, 1|2 |8 |32|64 , 70, 250, 70, 0, "Uranium 235" , 0, 0, 1405, 0, false, false, 4, 1, 1, Dyes.dyeGreen , Element.U_235 , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 2))), - Vanadium ( 29, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 50, 50, 50, 0, "Vanadium" , 0, 0, 2183, 2183, true, false, 2, 1, 1, Dyes.dyeBlack , Element.V , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Ytterbium ( 77, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Ytterbium" , 0, 0, 1097, 1097, true, false, 4, 1, 1, Dyes._NULL , Element.Yb , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Yttrium ( 45, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 220, 250, 220, 0, "Yttrium" , 0, 0, 1799, 1799, true, false, 4, 1, 1, Dyes._NULL , Element.Y , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), - Zinc ( 36, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1|2 |8 |32 , 250, 240, 240, 0, "Zinc" , 0, 0, 692, 0, false, false, 2, 1, 1, Dyes.dyeWhite , Element.Zn , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.SANO, 1))), - /** - * The "Random Material" ones. - */ - Organic ( -1, TextureSet.SET_LEAF , 1.0F, 0, 1, false), - AnyCopper ( -1, TextureSet.SET_SHINY , 1.0F, 0, 3, false), - AnyBronze ( -1, TextureSet.SET_SHINY , 1.0F, 0, 3, false), - AnyIron ( -1, TextureSet.SET_SHINY , 1.0F, 0, 3, false), - Crystal ( -1, TextureSet.SET_SHINY , 1.0F, 0, 3, false), - Quartz ( -1, TextureSet.SET_QUARTZ , 1.0F, 0, 2, false), - Metal ( -1, TextureSet.SET_METALLIC , 1.0F, 0, 2, false), - Unknown ( -1, TextureSet.SET_DULL , 1.0F, 0, 2, false), - Cobblestone ( -1, TextureSet.SET_DULL , 1.0F, 0, 1, false), - Brick ( -1, TextureSet.SET_DULL , 1.0F, 0, 1, false), - BrickNether ( -1, TextureSet.SET_DULL , 1.0F, 0, 1, false), - /** - * The "I don't care" Section, everything I don't want to do anything with right now, is right here. Just to make the Material Finder shut up about them. - * But I do see potential uses in some of these Materials. - */ - TarPitch(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 2, 255, 255, 255, 0, "Tar Pitch", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - Carborundum(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Carborundum", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - Satinspar(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 2 | 8, 255, 255, 255, 0, "Satinspar", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - Selenite(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 2 | 8, 255, 255, 255, 0, "Selenite", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - PetrifiedWood(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 8, 255, 255, 255, 0, "Petrified Wood", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - Jet(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 4 | 8, 255, 255, 255, 0, "Jet", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - Microcline(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 2 | 8, 255, 255, 255, 0, "Microcline", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - Serpentine(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 2 | 8, 255, 255, 255, 0, "Serpentine", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - Sylvite(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 2 | 8, 255, 255, 255, 0, "Sylvite", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - Flux(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Flux", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - Goshen(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Goshen", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - Joshen(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Joshen", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - Itarius(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Itarius", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - Legendary(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Legendary", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - MutatedIron(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Mutated Iron", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - Witheria(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Witheria", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - RedstoneAlloy ( 381, TextureSet.SET_METALLIC , 3.0F, 128, 2, 1|2 |64|128 , 181, 51, 51, 0, "Redstone Alloy" , 0, 0, 500, 1000, true, false, 1, 1, 1, Dyes.dyeRed ), - OsmiumTetroxide(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Osmium Tetroxide", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - NitricAcid(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 0, 255, 255, 255, 0, "Nitric Acid", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - RubberTreeSap(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 0, 255, 255, 255, 0, "Rubber Tree Sap", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - AquaRegia(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 0, 255, 255, 255, 0, "Aqua Regia", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - SolutionBlueVitriol(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 0, 255, 255, 255, 0, "Blue Vitriol Solution", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - SolutionNickelSulfate(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 0, 255, 255, 255, 0, "Nickel Sulfate Solution", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - Signalum(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 2, 255, 255, 255, 0, "Signalum", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - Lumium(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 2, 255, 255, 255, 0, "Lumium", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - PhasedIron(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 2, 255, 255, 255, 0, "Phased Iron", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - PhasedGold(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 2, 255, 255, 255, 0, "Phased Gold", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - Soularium ( 379, TextureSet.SET_METALLIC , 8.0F, 256, 2, 1|2 |64|128 , 65, 46, 29, 0, "Soularium" , 0, 0, 800, 1000, true, false, 3, 1, 1, Dyes.dyeBrown ), - Endium ( 770, TextureSet.SET_DULL , 1.0F, 0, 2, 1|2 |8 , 165, 220, 250, 0, "Endium" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeYellow ), - Prismarine(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 4, 255, 255, 255, 0, "Prismarine", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - GraveyardDirt(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Graveyard Dirt", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - DarkSteel ( 364, TextureSet.SET_METALLIC , 8.0F, 512, 3, 1|2 |64|128 , 80, 70, 80, 0, "Dark Steel" , 0, 0, -1, 1800, true, false, 3, 1, 1, Dyes.dyePurple ), - Terrasteel ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Terrasteel" , 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL ), - ConductiveIron ( 369, TextureSet.SET_METALLIC , 6.0F, 256, 3, 1|2 |64|128 , 217, 178, 171, 0, "Conductive Iron" , 0, 0, -1, 1200, true, false, 4, 1, 1, Dyes.dyeRed ), - ElectricalSteel ( 365, TextureSet.SET_METALLIC , 6.0F, 512, 2, 1|2 |64|128 , 185, 185, 185, 0, "Electrical Steel" , 0, 0, 1811, 1000, true, false, 4, 1, 1, Dyes.dyeGray ), - EnergeticAlloy ( 366, TextureSet.SET_METALLIC , 12.0F, 1024, 3, 1|2 |64|128 , 255, 170, 81, 0, "Energetic Alloy" , 0, 0, -1, 2200, true, false, 3, 1, 1, Dyes.dyeOrange ), - VibrantAlloy ( 367, TextureSet.SET_METALLIC , 18.0F, 4048, 4, 1|2 |64|128 , 157, 188, 53, 0, "Vibrant Alloy" , 0, 0, 3300, 3000, true, false, 4, 1, 1, Dyes.dyeLime ), - PulsatingIron ( 378, TextureSet.SET_METALLIC , 6.0F, 256, 3, 1|2 |64|128 , 128, 246, 155, 0, "Pulsating Iron" , 0, 0, -1, 1800, true, false, 4, 1, 1, Dyes.dyeLime ), - Rutile(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Rutile", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), // TiO2 - Teslatite(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 60, 180, 200, 0, "Teslatite", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - Fluix(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 4, 255, 255, 255, 0, "Fluix", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - Manasteel(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 2, 255, 255, 255, 0, "Manasteel", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - Tennantite(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Tennantite", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - DarkThaumium(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 2, 255, 255, 255, 0, "Dark Thaumium", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - Alfium(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Alfium", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - Ryu(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Ryu", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - Mutation(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Mutation", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - Aquamarine(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 4, 255, 255, 255, 0, "Aquamarine", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - Ender(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Ender", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - ElvenElementium(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 2, 255, 255, 255, 0, "Elven Elementium", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - EnrichedCopper(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 2, 255, 255, 255, 0, "Enriched Copper", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - DiamondCopper(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 2, 255, 255, 255, 0, "Diamond Copper", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - SodiumPeroxide(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Sodium Peroxide", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - IridiumSodiumOxide(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Iridium Sodium Oxide", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - PlatinumGroupSludge(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Platinum Group Sludge", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - Fairy(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 2, 255, 255, 255, 0, "Fairy", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - Ludicrite(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 2, 255, 255, 255, 0, "Ludicrite", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - Pokefennium(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 2, 255, 255, 255, 0, "Pokefennium", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - Draconium(975, TextureSet.SET_SHINY, 20.0F, 32768, 7, 1|2| 8|16|32|64|128, 122, 68, 176, 0, "Draconium", 0, 0, 5000, 5000, true, false, 3, 1, 1, Dyes.dyePink), - DraconiumAwakened(976, TextureSet.SET_SHINY, 40.0F, 65536, 8, 1|2| 8|16|32|64|128, 244, 78, 0, 0, "Awakened Draconium", 0, 0, 9000, 9000, true, false, 3, 1, 1, Dyes.dyeOrange), - PurpleAlloy(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 0, 100, 180, 255, 0, "Purple Alloy", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - InfusedTeslatite(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 0, 100, 180, 255, 0, "Infused Teslatite", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), + Blaze .add(SubTag.MAGICAL, SubTag.NO_SMELTING, SubTag.SMELTING_TO_FLUID, SubTag.MORTAR_GRINDABLE, SubTag.UNBURNABLE, SubTag.BURNING); + FierySteel .add(SubTag.MAGICAL, SubTag.UNBURNABLE, SubTag.BURNING); + ElvenElementium .add(SubTag.MAGICAL); + DarkThaumium .add(SubTag.MAGICAL); + Thaumium .add(SubTag.MAGICAL); + Enderium .add(SubTag.MAGICAL); + AstralSilver .add(SubTag.MAGICAL); + Midasium .add(SubTag.MAGICAL); + Mithril .add(SubTag.MAGICAL); + + Iron .mOreReRegistrations.add(AnyIron ); + PigIron .mOreReRegistrations.add(AnyIron ); + WroughtIron .mOreReRegistrations.add(AnyIron ); + + Copper .mOreReRegistrations.add(AnyCopper ); + AnnealedCopper .mOreReRegistrations.add(AnyCopper ); + + Bronze .mOreReRegistrations.add(AnyBronze ); + + Peanutwood .setMaceratingInto(Wood ); + WoodSealed .setMaceratingInto(Wood ); + NetherBrick .setMaceratingInto(Netherrack ); + + NeodymiumMagnetic .setSmeltingInto(Neodymium ).setMaceratingInto(Neodymium ).setArcSmeltingInto(Neodymium ); + SteelMagnetic .setSmeltingInto(Steel ).setMaceratingInto(Steel ).setArcSmeltingInto(Steel ); + Iron .setSmeltingInto(Iron ).setMaceratingInto(Iron ).setArcSmeltingInto(WroughtIron ); + AnyIron .setSmeltingInto(Iron ).setMaceratingInto(Iron ).setArcSmeltingInto(WroughtIron ); + PigIron .setSmeltingInto(Iron ).setMaceratingInto(Iron ).setArcSmeltingInto(WroughtIron ); + WroughtIron .setSmeltingInto(Iron ).setMaceratingInto(Iron ).setArcSmeltingInto(WroughtIron ); + IronMagnetic .setSmeltingInto(Iron ).setMaceratingInto(Iron ).setArcSmeltingInto(WroughtIron ); + Copper .setSmeltingInto(Copper ).setMaceratingInto(Copper ).setArcSmeltingInto(AnnealedCopper ); + AnyCopper .setSmeltingInto(Copper ).setMaceratingInto(Copper ).setArcSmeltingInto(AnnealedCopper ); + AnnealedCopper .setSmeltingInto(Copper ).setMaceratingInto(Copper ).setArcSmeltingInto(AnnealedCopper ); + Netherrack .setSmeltingInto(NetherBrick ); + MeatRaw .setSmeltingInto(MeatCooked ); + Sand .setSmeltingInto(Glass ); + Ice .setSmeltingInto(Water ); + Snow .setSmeltingInto(Water ); + + Mercury .add(SubTag.SMELTING_TO_GEM); + Cinnabar .setDirectSmelting(Mercury ).add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT).add(SubTag.SMELTING_TO_GEM); + Tetrahedrite .setDirectSmelting(Copper ).add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT); + Chalcopyrite .setDirectSmelting(Copper ).add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT); + Malachite .setDirectSmelting(Copper ).add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT); + Pentlandite .setDirectSmelting(Nickel ).add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT); + Sphalerite .setDirectSmelting(Zinc ).add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT); + Pyrite .setDirectSmelting(Iron ).add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT); + BasalticMineralSand .setDirectSmelting(Iron ).add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT); + GraniticMineralSand .setDirectSmelting(Iron ).add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT); + YellowLimonite .setDirectSmelting(Iron ).add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT); + BrownLimonite .setDirectSmelting(Iron ); + BandedIron .setDirectSmelting(Iron ); + Cassiterite .setDirectSmelting(Tin ); + CassiteriteSand .setDirectSmelting(Tin ); + Chromite .setDirectSmelting(Chrome ); + Garnierite .setDirectSmelting(Nickel ); + Cobaltite .setDirectSmelting(Cobalt ); + Stibnite .setDirectSmelting(Antimony ); + Cooperite .setDirectSmelting(Platinum ); + Pyrolusite .setDirectSmelting(Manganese ); + Magnesite .setDirectSmelting(Magnesium ); + Molybdenite .setDirectSmelting(Molybdenum ); + + Amber .setOreMultiplier( 2).setSmeltingMultiplier( 2); + InfusedAir .setOreMultiplier( 2).setSmeltingMultiplier( 2); + InfusedFire .setOreMultiplier( 2).setSmeltingMultiplier( 2); + InfusedEarth .setOreMultiplier( 2).setSmeltingMultiplier( 2); + InfusedWater .setOreMultiplier( 2).setSmeltingMultiplier( 2); + InfusedEntropy .setOreMultiplier( 2).setSmeltingMultiplier( 2); + InfusedOrder .setOreMultiplier( 2).setSmeltingMultiplier( 2); + InfusedVis .setOreMultiplier( 2).setSmeltingMultiplier( 2); + InfusedDull .setOreMultiplier( 2).setSmeltingMultiplier( 2); + Salt .setOreMultiplier( 2).setSmeltingMultiplier( 2); + RockSalt .setOreMultiplier( 2).setSmeltingMultiplier( 2); + Scheelite .setOreMultiplier( 2).setSmeltingMultiplier( 2); + Tungstate .setOreMultiplier( 2).setSmeltingMultiplier( 2); + Cassiterite .setOreMultiplier( 2).setSmeltingMultiplier( 2); + CassiteriteSand .setOreMultiplier( 2).setSmeltingMultiplier( 2); + NetherQuartz .setOreMultiplier( 2).setSmeltingMultiplier( 2); + CertusQuartz .setOreMultiplier( 2).setSmeltingMultiplier( 2); + Phosphorus .setOreMultiplier( 3).setSmeltingMultiplier( 3); + Saltpeter .setOreMultiplier( 4).setSmeltingMultiplier( 4); + Apatite .setOreMultiplier( 4).setSmeltingMultiplier( 4).setByProductMultiplier(2); + Nikolite .setOreMultiplier( 5).setSmeltingMultiplier( 5); + Teslatite .setOreMultiplier( 5).setSmeltingMultiplier( 5); + Redstone .setOreMultiplier( 5).setSmeltingMultiplier( 5); + Glowstone .setOreMultiplier( 5).setSmeltingMultiplier( 5); + Lapis .setOreMultiplier( 6).setSmeltingMultiplier( 6).setByProductMultiplier(4); + Sodalite .setOreMultiplier( 6).setSmeltingMultiplier( 6).setByProductMultiplier(4); + Lazurite .setOreMultiplier( 6).setSmeltingMultiplier( 6).setByProductMultiplier(4); + Monazite .setOreMultiplier( 8).setSmeltingMultiplier( 8).setByProductMultiplier(2); + + Plastic .setEnchantmentForTools(Enchantment.knockback, 1); + Rubber .setEnchantmentForTools(Enchantment.knockback, 2); + InfusedAir .setEnchantmentForTools(Enchantment.knockback, 2); + + IronWood .setEnchantmentForTools(Enchantment.fortune, 1); + Steeleaf .setEnchantmentForTools(Enchantment.fortune, 2); + Midasium .setEnchantmentForTools(Enchantment.fortune, 2); + Mithril .setEnchantmentForTools(Enchantment.fortune, 3); + Vinteum .setEnchantmentForTools(Enchantment.fortune, 1); + Thaumium .setEnchantmentForTools(Enchantment.fortune, 2); + InfusedWater .setEnchantmentForTools(Enchantment.fortune, 3); + + Flint .setEnchantmentForTools(Enchantment.fireAspect, 1); + DarkIron .setEnchantmentForTools(Enchantment.fireAspect, 2); + Firestone .setEnchantmentForTools(Enchantment.fireAspect, 3); + FierySteel .setEnchantmentForTools(Enchantment.fireAspect, 3); + Pyrotheum .setEnchantmentForTools(Enchantment.fireAspect, 3); + Blaze .setEnchantmentForTools(Enchantment.fireAspect, 3); + InfusedFire .setEnchantmentForTools(Enchantment.fireAspect, 3); + + Force .setEnchantmentForTools(Enchantment.silkTouch, 1); + Amber .setEnchantmentForTools(Enchantment.silkTouch, 1); + EnderPearl .setEnchantmentForTools(Enchantment.silkTouch, 1); + Enderium .setEnchantmentForTools(Enchantment.silkTouch, 1); + NetherStar .setEnchantmentForTools(Enchantment.silkTouch, 1); + InfusedOrder .setEnchantmentForTools(Enchantment.silkTouch, 1); + + BlackBronze .setEnchantmentForTools(Enchantment.smite, 2); + Gold .setEnchantmentForTools(Enchantment.smite, 3); + RoseGold .setEnchantmentForTools(Enchantment.smite, 4); + Platinum .setEnchantmentForTools(Enchantment.smite, 5); + InfusedVis .setEnchantmentForTools(Enchantment.smite, 5); + + Lead .setEnchantmentForTools(Enchantment.baneOfArthropods, 2); + Nickel .setEnchantmentForTools(Enchantment.baneOfArthropods, 2); + Invar .setEnchantmentForTools(Enchantment.baneOfArthropods, 3); + Antimony .setEnchantmentForTools(Enchantment.baneOfArthropods, 3); + BatteryAlloy .setEnchantmentForTools(Enchantment.baneOfArthropods, 4); + Bismuth .setEnchantmentForTools(Enchantment.baneOfArthropods, 4); + BismuthBronze .setEnchantmentForTools(Enchantment.baneOfArthropods, 5); + InfusedEarth .setEnchantmentForTools(Enchantment.baneOfArthropods, 5); + + Iron .setEnchantmentForTools(Enchantment.sharpness, 1); + Bronze .setEnchantmentForTools(Enchantment.sharpness, 1); + Brass .setEnchantmentForTools(Enchantment.sharpness, 2); + HSLA .setEnchantmentForTools(Enchantment.sharpness, 2); + Steel .setEnchantmentForTools(Enchantment.sharpness, 2); + WroughtIron .setEnchantmentForTools(Enchantment.sharpness, 2); + StainlessSteel .setEnchantmentForTools(Enchantment.sharpness, 3); + Knightmetal .setEnchantmentForTools(Enchantment.sharpness, 3); + ShadowIron .setEnchantmentForTools(Enchantment.sharpness, 3); + ShadowSteel .setEnchantmentForTools(Enchantment.sharpness, 4); + BlackSteel .setEnchantmentForTools(Enchantment.sharpness, 4); + RedSteel .setEnchantmentForTools(Enchantment.sharpness, 4); + BlueSteel .setEnchantmentForTools(Enchantment.sharpness, 5); + DamascusSteel .setEnchantmentForTools(Enchantment.sharpness, 5); + InfusedEntropy .setEnchantmentForTools(Enchantment.sharpness, 5); + TungstenCarbide .setEnchantmentForTools(Enchantment.sharpness, 5); + HSSE .setEnchantmentForTools(Enchantment.sharpness, 5); + HSSG .setEnchantmentForTools(Enchantment.sharpness, 4); + HSSS .setEnchantmentForTools(Enchantment.sharpness, 5); + + InfusedAir .setEnchantmentForArmors(Enchantment.respiration, 3); + + InfusedFire .setEnchantmentForArmors(Enchantment.featherFalling, 4); + + Steeleaf .setEnchantmentForArmors(Enchantment.protection, 2); + Knightmetal .setEnchantmentForArmors(Enchantment.protection, 1); + InfusedEarth .setEnchantmentForArmors(Enchantment.protection, 4); + + InfusedEntropy .setEnchantmentForArmors(Enchantment.thorns, 3); + + InfusedWater .setEnchantmentForArmors(Enchantment.aquaAffinity, 1); + IronWood .setEnchantmentForArmors(Enchantment.aquaAffinity, 1); + + InfusedOrder .setEnchantmentForArmors(Enchantment.projectileProtection, 4); + + InfusedDull .setEnchantmentForArmors(Enchantment.blastProtection, 4); + + InfusedVis .setEnchantmentForArmors(Enchantment.protection, 4); - /** - * Unknown Material Components. Dead End Section. - */ - Adamantium(319, TextureSet.SET_SHINY, 10.0F, 5120, 5, 1 | 2 | 8 | 64 | 128, 255, 255, 255, 0, "Adamantium", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray), - Adamite(-1, TextureSet.SET_NONE, 1.0F, 0, 3, 1 | 8, 255, 255, 255, 0, "Adamite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray), - Adluorite(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 8, 255, 255, 255, 0, "Adluorite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), - Agate(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Agate", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - Alduorite(485, TextureSet.SET_SHINY, 1.0F, 0, 2, 1 | 8 | 16, 159, 180, 180, 0, "Alduorite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), - Amber(514, TextureSet.SET_RUBY, 4.0F, 128, 2, 1 | 4 | 8 | 64, 255, 128, 0, 127, "Amber", 5, 3, -1, 0, false, true, 1, 1, 1, Dyes.dyeOrange, Arrays.asList(new TC_AspectStack(TC_Aspects.VINCULUM, 2), new TC_AspectStack(TC_Aspects.VITREUS, 1))), - Ammonium(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Ammonium", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), - Amordrine(-1, TextureSet.SET_NONE, 6.0F, 64, 2, 1 | 2 | 8 | 16 | 64, 255, 255, 255, 0, "Amordrine", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), - Andesite(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 8, 255, 255, 255, 0, "Andesite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), - Angmallen(958, TextureSet.SET_METALLIC, 10.0F, 128, 2, 1 | 2 | 8 | 16 | 64, 215, 225, 138, 0, "Angmallen", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), - Ardite ( 382, TextureSet.SET_METALLIC , 18.0F, 1024, 4, 1|2 |8 |64|128 , 250, 129, 0, 0, "Ardite" , 0, 0, 1200, 1500, true, false, 1, 1, 1, Dyes.dyeRed), - Aredrite(-1, TextureSet.SET_NONE, 6.0F, 64, 2, 1 | 2 | 8 | 64, 255, 0, 0, 0, "Aredrite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow), - Atlarus(965, TextureSet.SET_METALLIC, 6.0F, 64, 2, 1 | 2 | 8 | 64, 255, 255, 255, 0, "Atlarus", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), - Bitumen(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 8, 255, 255, 255, 0, "Bitumen", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), - Black(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 0, 0, 0, 0, 0, "Black", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBlack), - Blizz(851, TextureSet.SET_SHINY, 1.0F, 0, 2, 1, 220, 233, 255, 0, "Blizz", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - Blueschist(852, TextureSet.SET_DULL, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Blueschist", 0, 0, -1, 0, false, false, 0, 1, 1, Dyes.dyeLightBlue), - Bluestone(813, TextureSet.SET_DULL, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Bluestone", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlue), - Bloodstone(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Bloodstone", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeRed), - Blutonium(-1, TextureSet.SET_SHINY, 1.0F, 0, 2, 1 | 2 | 8, 0, 0, 255, 0, "Blutonium", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBlue), - Carmot(962, TextureSet.SET_METALLIC, 16.0F, 128, 1, 1 | 2 | 8 | 64, 217, 205, 140, 0, "Carmot", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), - Celenegil(964, TextureSet.SET_METALLIC, 10.0F, 4096, 2, 1 | 2 | 8 | 16 | 64, 148, 204, 72, 0, "Celenegil", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), - CertusQuartz(516, TextureSet.SET_QUARTZ, 5.0F, 32, 1, 1 | 4 | 8 | 64, 210, 210, 230, 0, "Certus Quartz", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeLightGray, Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 1), new TC_AspectStack(TC_Aspects.VITREUS, 1))), - Ceruclase(952, TextureSet.SET_METALLIC, 6.0F, 1280, 2, 1 | 2 | 8, 140, 189, 208, 0, "Ceruclase", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), - Citrine(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Citrine", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - //ChargedCertusQuartz ( 517, TextureSet.SET_QUARTZ , 5.0F, 32, 1, 1 |4|8 |64 , 210, 210, 230, 0, "Charged Certus Quartz" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 2), new TC_AspectStack(TC_Aspects.VITREUS, 1))), - CobaltHexahydrate(853, TextureSet.SET_METALLIC, 1.0F, 0, 2, 1 | 16, 80, 80, 250, 0, "Cobalt Hexahydrate", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlue), - ConstructionFoam(854, TextureSet.SET_DULL, 1.0F, 0, 2, 1 | 16, 128, 128, 128, 0, "Construction Foam", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray), - Chert(857, TextureSet.SET_DULL, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Chert", 0, 0, -1, 0, false, false, 0, 1, 1, Dyes._NULL), - Chimerite(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Chimerite", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - Coral(-1, TextureSet.SET_NONE, 1.0F, 0, 1, 1, 255, 128, 255, 0, "Coral", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - CrudeOil(858, TextureSet.SET_DULL, 1.0F, 0, 2, 1, 10, 10, 10, 0, "Crude Oil", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack), - Chrysocolla(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Chrysocolla", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - CrystalFlux(-1, TextureSet.SET_QUARTZ, 1.0F, 0, 3, 1 | 4, 100, 50, 100, 0, "Flux Crystal", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), - Cyanite(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Cyanite", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeCyan), - Dacite(859, TextureSet.SET_DULL, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Dacite", 0, 0, -1, 0, false, false, 0, 1, 1, Dyes.dyeLightGray), - DarkIron(342, TextureSet.SET_DULL, 7.0F, 384, 3, 1 | 2 | 8 | 64, 55, 40, 60, 0, "Dark Iron", 0, 0, -1, 0, false, false, 5, 1, 1, Dyes.dyePurple), - DarkStone(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Dark Stone", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBlack), - Demonite(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Demonite", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeRed), - Desh ( 884, TextureSet.SET_DULL , 20.0F, 1280, 4, 1|2 |8 |64|128 , 40, 40, 40, 0, "Desh" , 0, 0, 2500, 2500, true, false, 1, 1, 1, Dyes.dyeBlack ), - Desichalkos(-1, TextureSet.SET_NONE, 6.0F, 1280, 3, 1 | 2 | 8 | 16 | 64, 255, 255, 255, 0, "Desichalkos", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), - Dilithium(515, TextureSet.SET_DIAMOND, 1.0F, 0, 1, 1 | 4 | 8 | 16, 255, 250, 250, 127, "Dilithium", 0, 0, -1, 0, false, true, 1, 1, 1, Dyes.dyeWhite), - Draconic(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Draconic", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeRed), - Drulloy(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 16, 255, 255, 255, 0, "Drulloy", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeRed), - Duranium(328, TextureSet.SET_METALLIC, 8.0F, 1280, 4, 1 | 2 | 64, 255, 255, 255, 0, "Duranium", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray), - Eclogite(860, TextureSet.SET_DULL, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Eclogite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), - ElectrumFlux(320, TextureSet.SET_SHINY, 16.0F, 512, 3, 1 | 2 | 64, 255, 255, 120, 0, "Fluxed Electrum", 0, 0, 3000, 3000, true, false, 1, 1, 1, Dyes.dyeYellow), - Emery(861, TextureSet.SET_DULL, 1.0F, 0, 2, 1 | 8, 255, 255, 255, 0, "Emery", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), - Enderium ( 321, TextureSet.SET_DULL , 8.0F, 1500, 3, 1|2 |64|128 , 89, 145, 135, 0, "Enderium" , 0, 0, 3500, 3500, true, false, 1, 1, 1, Dyes.dyeGreen , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.ALIENIS, 1))), - EnderiumBase ( 380, TextureSet.SET_DULL , 16.0F, 768, 4, 1|2 |64|128 , 72, 119, 153, 0, "Enderium Base" , 0, 0, 3000, 3000, true, false, 1, 1, 1, Dyes.dyeGreen , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.ALIENIS, 1))), - Energized(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 0, 255, 255, 255, 0, "Energized", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), - Epidote(862, TextureSet.SET_DULL, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Epidote", 0, 0, -1, 0, false, false, 0, 1, 1, Dyes._NULL), - Eximite(959, TextureSet.SET_METALLIC, 5.0F, 2560, 3, 1 | 2 | 8 | 64, 124, 90, 150, 0, "Eximite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), - FierySteel(346, TextureSet.SET_FIERY, 8.0F, 256, 3, 1 | 2 | 16 | 64 | 128, 64, 0, 0, 0, "Fiery Steel", 5, 2048, 1811, 1000, true, false, 1, 1, 1, Dyes.dyeRed, Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTATIO, 3), new TC_AspectStack(TC_Aspects.IGNIS, 3), new TC_AspectStack(TC_Aspects.CORPUS, 3))), - Firestone(347, TextureSet.SET_QUARTZ, 6.0F, 1280, 3, 1 | 4 | 8 | 64, 200, 20, 0, 0, "Firestone", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeRed), - Fluorite(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 8, 255, 255, 255, 0, "Fluorite", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeGreen), - FoolsRuby(512, TextureSet.SET_RUBY, 1.0F, 0, 2, 1 | 4 | 8, 255, 100, 100, 127, "Ruby", 0, 0, -1, 0, false, true, 3, 1, 1, Dyes.dyeRed, Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 2), new TC_AspectStack(TC_Aspects.VITREUS, 2))), - Force(521, TextureSet.SET_DIAMOND, 10.0F, 128, 3, 1 | 2 | 4 | 8 | 64 | 128, 255, 255, 0, 0, "Force", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeYellow, Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 5))), - Forcicium(518, TextureSet.SET_DIAMOND, 1.0F, 0, 1, 1 | 4 | 8 | 16, 50, 50, 70, 0, "Forcicium", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeGreen, Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 2))), - Forcillium(519, TextureSet.SET_DIAMOND, 1.0F, 0, 1, 1 | 4 | 8 | 16, 50, 50, 70, 0, "Forcillium", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeGreen, Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 2))), - Gabbro(863, TextureSet.SET_DULL, 1.0F, 0, 1, 1, 255, 255, 255, 0, "Gabbro", 0, 0, -1, 0, false, false, 0, 1, 1, Dyes._NULL), - Glowstone(811, TextureSet.SET_SHINY, 1.0F, 0, 1, 1 | 16, 255, 255, 0, 0, "Glowstone", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow, Arrays.asList(new TC_AspectStack(TC_Aspects.LUX, 2), new TC_AspectStack(TC_Aspects.SENSUS, 1))), - Gneiss(864, TextureSet.SET_DULL, 1.0F, 0, 1, 1, 255, 255, 255, 0, "Gneiss", 0, 0, -1, 0, false, false, 0, 1, 1, Dyes._NULL), - Graphite(865, TextureSet.SET_DULL, 5.0F, 32, 2, 1 | 8 | 16 | 64, 128, 128, 128, 0, "Graphite", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeGray, Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 2), new TC_AspectStack(TC_Aspects.IGNIS, 1))), - Graphene(819, TextureSet.SET_DULL, 6.0F, 32, 1, 1 | 64, 128, 128, 128, 0, "Graphene", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeGray, Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 2), new TC_AspectStack(TC_Aspects.ELECTRUM, 1))), - Greenschist(866, TextureSet.SET_DULL, 1.0F, 0, 1, 1, 255, 255, 255, 0, "Green Schist", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGreen), - Greenstone(867, TextureSet.SET_DULL, 1.0F, 0, 1, 1, 255, 255, 255, 0, "Greenstone", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGreen), - Greywacke(868, TextureSet.SET_DULL, 1.0F, 0, 1, 1, 255, 255, 255, 0, "Greywacke", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray), - Haderoth(963, TextureSet.SET_METALLIC, 10.0F, 3200, 3, 1 | 2 | 8 | 16 | 64, 119, 52, 30, 0, "Haderoth", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), - Hematite(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 2 | 8, 255, 255, 255, 0, "Hematite", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - Hepatizon(957, TextureSet.SET_METALLIC, 12.0F, 128, 2, 1 | 2 | 8 | 16 | 64, 117, 94, 117, 0, "Hepatizon", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), - HSLA(322, TextureSet.SET_METALLIC, 6.0F, 500, 2, 1 | 2 | 64 | 128, 128, 128, 128, 0, "HSLA Steel", 0, 0, 1811, 1000, true, false, 3, 1, 1, Dyes._NULL, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 1), new TC_AspectStack(TC_Aspects.ORDO, 1))), - Ignatius(950, TextureSet.SET_METALLIC, 12.0F, 512, 2, 1 | 2 | 16, 255, 169, 83, 0, "Ignatius", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), - Infernal(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 0, 255, 255, 255, 0, "Infernal", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), - Infuscolium(490, TextureSet.SET_METALLIC, 6.0F, 64, 2, 1 | 2 | 8 | 16 | 64, 146, 33, 86, 0, "Infuscolium", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - InfusedGold(323, TextureSet.SET_SHINY, 12.0F, 64, 3, 1 | 2 | 8 | 64 | 128, 255, 200, 60, 0, "Infused Gold", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeYellow), - InfusedAir(540, TextureSet.SET_SHARDS, 8.0F, 64, 3, 1 | 4 | 8 | 64 | 128, 255, 255, 0, 0, "Aer", 5, 160, -1, 0, false, true, 3, 1, 1, Dyes.dyeYellow, Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTATIO, 1), new TC_AspectStack(TC_Aspects.AER, 2))), - InfusedFire(541, TextureSet.SET_SHARDS, 8.0F, 64, 3, 1 | 4 | 8 | 64 | 128, 255, 0, 0, 0, "Ignis", 5, 320, -1, 0, false, true, 3, 1, 1, Dyes.dyeRed, Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTATIO, 1), new TC_AspectStack(TC_Aspects.IGNIS, 2))), - InfusedEarth(542, TextureSet.SET_SHARDS, 8.0F, 256, 3, 1 | 4 | 8 | 64 | 128, 0, 255, 0, 0, "Terra", 5, 160, -1, 0, false, true, 3, 1, 1, Dyes.dyeGreen, Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTATIO, 1), new TC_AspectStack(TC_Aspects.TERRA, 2))), - InfusedWater(543, TextureSet.SET_SHARDS, 8.0F, 64, 3, 1 | 4 | 8 | 64 | 128, 0, 0, 255, 0, "Aqua", 5, 160, -1, 0, false, true, 3, 1, 1, Dyes.dyeBlue, Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTATIO, 1), new TC_AspectStack(TC_Aspects.AQUA, 2))), - InfusedEntropy(544, TextureSet.SET_SHARDS, 32.0F, 64, 4, 1 | 4 | 8 | 64 | 128, 62, 62, 62, 0, "Perditio", 5, 320, -1, 0, false, true, 3, 1, 1, Dyes.dyeBlack, Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTATIO, 1), new TC_AspectStack(TC_Aspects.PERDITIO, 2))), - InfusedOrder(545, TextureSet.SET_SHARDS, 8.0F, 64, 3, 1 | 4 | 8 | 64 | 128, 252, 252, 252, 0, "Ordo", 5, 240, -1, 0, false, true, 3, 1, 1, Dyes.dyeWhite, Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTATIO, 1), new TC_AspectStack(TC_Aspects.ORDO, 2))), - InfusedVis(-1, TextureSet.SET_SHARDS, 8.0F, 64, 3, 1 | 4 | 8 | 64 | 128, 255, 0, 255, 0, "Auram", 5, 240, -1, 0, false, true, 3, 1, 1, Dyes.dyePurple, Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTATIO, 1), new TC_AspectStack(TC_Aspects.AURAM, 2))), - InfusedDull(-1, TextureSet.SET_SHARDS, 32.0F, 64, 3, 1 | 4 | 8 | 64 | 128, 100, 100, 100, 0, "Vacuus", 5, 160, -1, 0, false, true, 3, 1, 1, Dyes.dyeLightGray, Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTATIO, 1), new TC_AspectStack(TC_Aspects.VACUOS, 2))), - Inolashite(954, TextureSet.SET_NONE, 8.0F, 2304, 3, 1 | 2 | 8 | 16 | 64, 148, 216, 187, 0, "Inolashite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), - Invisium(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1, 255, 255, 255, 0, "Invisium", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - Jade(537, TextureSet.SET_SHINY, 1.0F, 0, 2, 1 | 8, 0, 100, 0, 0, "Jade", 0, 0, -1, 0, false, false, 5, 1, 1, Dyes.dyeGreen, Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 6), new TC_AspectStack(TC_Aspects.VITREUS, 3))), - Jasper(511, TextureSet.SET_EMERALD, 1.0F, 0, 2, 1 | 4 | 8, 200, 80, 80, 100, "Jasper", 0, 0, -1, 0, false, true, 3, 1, 1, Dyes.dyeRed, Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 4), new TC_AspectStack(TC_Aspects.VITREUS, 2))), - Kalendrite(953, TextureSet.SET_METALLIC, 5.0F, 2560, 3, 1 | 2 | 16, 170, 91, 189, 0, "Kalendrite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), - Komatiite(869, TextureSet.SET_DULL, 1.0F, 0, 1, 1, 255, 255, 255, 0, "Komatiite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow), - Lava(700, TextureSet.SET_FLUID, 1.0F, 0, 1, 16, 255, 64, 0, 0, "Lava", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange), - Lemurite(486, TextureSet.SET_METALLIC, 1.0F, 0, 2, 1 | 16, 219, 219, 219, 0, "Lemurite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), - Limestone(-1, TextureSet.SET_NONE, 1.0F, 0, 1, 1, 255, 255, 255, 0, "Limestone", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), - Lodestone(-1, TextureSet.SET_NONE, 1.0F, 0, 1, 1 | 8, 255, 255, 255, 0, "Lodestone", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), - Luminite(-1, TextureSet.SET_NONE, 1.0F, 0, 1, 1 | 8, 250, 250, 250, 0, "Luminite", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeWhite), - Magma(-1, TextureSet.SET_NONE, 1.0F, 0, 1, 0, 255, 64, 0, 0, "Magma", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange), - Mawsitsit(-1, TextureSet.SET_NONE, 1.0F, 0, 1, 1, 255, 255, 255, 0, "Mawsitsit", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - Mercassium(-1, TextureSet.SET_NONE, 6.0F, 64, 1, 1 | 2 | 8 | 64, 255, 255, 255, 0, "Mercassium", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), - MeteoricIron(340, TextureSet.SET_METALLIC, 6.0F, 384, 2, 1 | 2 | 8 | 64, 100, 50, 80, 0, "Meteoric Iron", 0, 0, 1811, 0, false, false, 1, 1, 1, Dyes.dyeGray, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1))), - MeteoricSteel(341, TextureSet.SET_METALLIC, 6.0F, 768, 2, 1 | 2 | 64, 50, 25, 40, 0, "Meteoric Steel", 0, 0, 1811, 1000, true, false, 1, 1, 1, Dyes.dyeGray, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1), new TC_AspectStack(TC_Aspects.ORDO, 1))), - Meteorite(-1, TextureSet.SET_NONE, 1.0F, 0, 1, 1 | 8, 80, 35, 60, 0, "Meteorite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePurple), - Meutoite(487, TextureSet.SET_METALLIC, 1.0F, 0, 1, 1 | 8 | 16, 95, 82, 105, 0, "Meutoite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), - Migmatite(872, TextureSet.SET_DULL, 1.0F, 0, 1, 1, 255, 255, 255, 0, "Migmatite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), - Mimichite(-1, TextureSet.SET_GEM_VERTICAL, 1.0F, 0, 1, 1 | 4 | 8, 255, 255, 255, 0, "Mimichite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), - Moonstone(-1, TextureSet.SET_NONE, 1.0F, 0, 1, 1 | 8, 255, 255, 255, 0, "Moonstone", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeWhite, Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 1), new TC_AspectStack(TC_Aspects.ALIENIS, 1))), - Naquadah(324, TextureSet.SET_METALLIC, 6.0F, 1280, 4, 1 | 2 | 8 | 16 | 64, 50, 50, 50, 0, "Naquadah", 0, 0, 3000, 3000, true, false, 10, 1, 1, Dyes.dyeBlack, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 3), new TC_AspectStack(TC_Aspects.RADIO, 1), new TC_AspectStack(TC_Aspects.NEBRISUM, 1))), - NaquadahAlloy(325, TextureSet.SET_METALLIC, 8.0F, 5120, 5, 1 | 2 | 64 | 128, 40, 40, 40, 0, "Naquadah Alloy", 0, 0, 3000, 3000, true, false, 10, 1, 1, Dyes.dyeBlack, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 4), new TC_AspectStack(TC_Aspects.NEBRISUM, 1))), - NaquadahEnriched(326, TextureSet.SET_METALLIC, 6.0F, 1280, 4, 1 | 2 | 8 | 16 | 64, 50, 50, 50, 0, "Enriched Naquadah", 0, 0, 3000, 3000, true, false, 15, 1, 1, Dyes.dyeBlack, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 3), new TC_AspectStack(TC_Aspects.RADIO, 2), new TC_AspectStack(TC_Aspects.NEBRISUM, 2))), - Naquadria(327, TextureSet.SET_SHINY, 1.0F, 512, 4, 1 | 2 | 8 | 64, 30, 30, 30, 0, "Naquadria", 0, 0, 3000, 3000, true, false, 20, 1, 1, Dyes.dyeBlack, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 4), new TC_AspectStack(TC_Aspects.RADIO, 3), new TC_AspectStack(TC_Aspects.NEBRISUM, 3))), - Nether(-1, TextureSet.SET_NONE, 1.0F, 0, 1, 0, 255, 255, 255, 0, "Nether", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - NetherBrick(814, TextureSet.SET_DULL, 1.0F, 0, 1, 1, 100, 0, 0, 0, "Nether Brick", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeRed, Arrays.asList(new TC_AspectStack(TC_Aspects.IGNIS, 1))), - NetherQuartz(522, TextureSet.SET_QUARTZ, 1.0F, 32, 1, 1 | 4 | 8 | 64, 230, 210, 210, 0, "Nether Quartz", 0, 0, -1, 0, false, false, 2, 1, 1, Dyes.dyeWhite, Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 1), new TC_AspectStack(TC_Aspects.VITREUS, 1))), - NetherStar(506, TextureSet.SET_NETHERSTAR, 1.0F, 5120, 4, 1 | 4 | 64, 255, 255, 255, 0, "Nether Star", 5, 50000, -1, 0, false, false, 15, 1, 1, Dyes.dyeWhite), - Nikolite(812, TextureSet.SET_SHINY, 1.0F, 0, 1, 1 | 8, 60, 180, 200, 0, "Nikolite", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeCyan, Arrays.asList(new TC_AspectStack(TC_Aspects.ELECTRUM, 2))), - ObsidianFlux(-1, TextureSet.SET_DULL, 1.0F, 0, 1, 1 | 2, 80, 50, 100, 0, "Fluxed Obsidian", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePurple), - Oilsands(878, TextureSet.SET_NONE, 1.0F, 0, 1, 1 | 8, 10, 10, 10, 0, "Oilsands", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), - Onyx(-1, TextureSet.SET_NONE, 1.0F, 0, 1, 1, 255, 255, 255, 0, "Onyx", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - Orichalcum(966, TextureSet.SET_METALLIC, 4.5F, 3456, 3, 1 | 2 | 8 | 64, 84, 122, 56, 0, "Orichalcum", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), - Osmonium(-1, TextureSet.SET_NONE, 6.0F, 64, 1, 1 | 2 | 8 | 64, 255, 255, 255, 0, "Osmonium", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBlue), - Oureclase(961, TextureSet.SET_METALLIC, 6.0F, 1920, 3, 1 | 2 | 8 | 64, 183, 98, 21, 0, "Oureclase", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), - Painite(-1, TextureSet.SET_NONE, 1.0F, 0, 1, 0, 255, 255, 255, 0, "Painite", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - Peanutwood(-1, TextureSet.SET_NONE, 1.0F, 0, 1, 0, 255, 255, 255, 0, "Peanut Wood", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - Petroleum(-1, TextureSet.SET_NONE, 1.0F, 0, 1, 1 | 8, 255, 255, 255, 0, "Petroleum", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), - Pewter(-1, TextureSet.SET_NONE, 1.0F, 0, 1, 0, 255, 255, 255, 0, "Pewter", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - Phoenixite(-1, TextureSet.SET_NONE, 6.0F, 64, 1, 1 | 2 | 8 | 64, 255, 255, 255, 0, "Phoenixite", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - Potash(-1, TextureSet.SET_NONE, 1.0F, 0, 1, 0, 255, 255, 255, 0, "Potash", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), - Prometheum(960, TextureSet.SET_METALLIC, 8.0F, 512, 1, 1 | 2 | 8 | 64, 90, 129, 86, 0, "Prometheum", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), - Quartzite(523, TextureSet.SET_QUARTZ, 1.0F, 0, 1, 1 | 4 | 8, 210, 230, 210, 0, "Quartzite", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeWhite), - Quicklime(-1, TextureSet.SET_NONE, 1.0F, 0, 1, 1, 255, 255, 255, 0, "Quicklime", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), - Randomite(-1, TextureSet.SET_NONE, 1.0F, 0, 1, 1 | 8, 255, 255, 255, 0, "Randomite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), - RefinedGlowstone(-326, TextureSet.SET_METALLIC, 1.0F, 0, 1, 1 | 2, 255, 255, 0, 0, "Refined Glowstone", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow), - RefinedObsidian(-327, TextureSet.SET_METALLIC, 1.0F, 0, 1, 1 | 2, 80, 50, 100, 0, "Refined Obsidian", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePurple), - Rhyolite(875, TextureSet.SET_DULL, 1.0F, 0, 1, 1, 255, 255, 255, 0, "Rhyolite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), - Rubracium(488, TextureSet.SET_METALLIC, 1.0F, 0, 1, 1 | 8 | 16, 151, 45, 45, 0, "Rubracium", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), - RyuDragonRyder(-1, TextureSet.SET_NONE, 1.0F, 0, 1, 0, 255, 255, 255, 0, "Ryu Dragon Ryder", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), - Sand(-1, TextureSet.SET_NONE, 1.0F, 0, 1, 0, 255, 255, 255, 0, "Sand", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow), - Sanguinite(955, TextureSet.SET_METALLIC, 3.0F, 4480, 4, 1 | 2 | 8, 185, 0, 0, 0, "Sanguinite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), - Siltstone(876, TextureSet.SET_DULL, 1.0F, 0, 1, 1, 255, 255, 255, 0, "Siltstone", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), - Spinel(-1, TextureSet.SET_NONE, 1.0F, 0, 1, 0, 255, 255, 255, 0, "Spinel", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - Starconium(-1, TextureSet.SET_NONE, 1.0F, 0, 1, 1 | 2 | 8, 255, 255, 255, 0, "Starconium", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - Sugilite(-1, TextureSet.SET_NONE, 1.0F, 0, 1, 1, 255, 255, 255, 0, "Sugilite", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - Sunstone(-1, TextureSet.SET_NONE, 1.0F, 0, 1, 1 | 8, 255, 255, 255, 0, "Sunstone", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeYellow, Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 1), new TC_AspectStack(TC_Aspects.ALIENIS, 1))), - Tar(-1, TextureSet.SET_NONE, 1.0F, 0, 1, 0, 10, 10, 10, 0, "Tar", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack), - Tartarite(956, TextureSet.SET_METALLIC, 20.0F, 7680, 5, 1 | 2 | 8 | 16, 255, 118, 60, 0, "Tartarite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), - Tapazite(-1, TextureSet.SET_NONE, 1.0F, 0, 1, 1, 255, 255, 255, 0, "Tapazite", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeGreen), - Thyrium(-1, TextureSet.SET_NONE, 1.0F, 0, 1, 1 | 2 | 8, 255, 255, 255, 0, "Thyrium", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - Tourmaline(-1, TextureSet.SET_RUBY, 1.0F, 0, 1, 1, 255, 255, 255, 0, "Tourmaline", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - Tritanium(329, TextureSet.SET_METALLIC, 6.0F, 2560, 4, 1 | 2 | 64, 255, 255, 255, 0, "Tritanium", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite, Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.ORDO, 2))), - Turquoise(-1, TextureSet.SET_NONE, 1.0F, 0, 1, 1, 255, 255, 255, 0, "Turquoise", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL), - UUAmplifier(721, TextureSet.SET_FLUID, 1.0F, 0, 1, 16, 96, 0, 128, 0, "UU-Amplifier", 0, 0, -1, 0, false, false, 10, 1, 1, Dyes.dyePink), - UUMatter(703, TextureSet.SET_FLUID, 1.0F, 0, 1, 16, 128, 0, 196, 0, "UU-Matter", 0, 0, -1, 0, false, false, 10, 1, 1, Dyes.dyePink), - Void(-1, TextureSet.SET_NONE, 1.0F, 0, 1, 0, 255, 255, 255, 200, "Void", 0, 0, -1, 0, false, true, 1, 1, 1, Dyes._NULL, Arrays.asList(new TC_AspectStack(TC_Aspects.VACUOS, 1))), - Voidmetal(970, TextureSet.SET_METALLIC, 16.0F, 512, 4, 1 | 2 | 64 | 128, 28, 6, 57, 0, "Void Metal", 0, 1500, -1, 0, false, false, 5, 2, 1, Dyes.dyeBlack, Arrays.asList(new TC_AspectStack(TC_Aspects.VACUOS, 1), new TC_AspectStack(TC_Aspects.VACUOS, 1))), - Vulcanite(489, TextureSet.SET_METALLIC, 6.0F, 64, 2, 1 | 2 | 8 | 16 | 64, 255, 132, 72, 0, "Vulcanite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), - Vyroxeres(951, TextureSet.SET_METALLIC, 9.0F, 768, 3, 1 | 2 | 8 | 64, 85, 224, 1, 0, "Vyroxeres", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL), - Wimalite(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 8, 255, 255, 255, 0, "Wimalite", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeYellow), - Yellorite(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 8, 255, 255, 255, 0, "Yellorite", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeYellow), - Yellorium(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 2, 255, 255, 255, 0, "Yellorium", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeYellow), - Zectium(-1, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 2 | 8, 255, 255, 255, 0, "Zectium", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBlack), - - /** - * Circuitry, Batteries and other Technical things - */ - Primitive(-1, TextureSet.SET_NONE, 1.0F, 0, 0, 0, 255, 255, 255, 0, "Primitive", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray, Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 1))), - Basic(-1, TextureSet.SET_NONE, 1.0F, 0, 0, 0, 255, 255, 255, 0, "Basic", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray, Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 2))), - Good(-1, TextureSet.SET_NONE, 1.0F, 0, 0, 0, 255, 255, 255, 0, "Good", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray, Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 3))), - Advanced(-1, TextureSet.SET_NONE, 1.0F, 0, 0, 0, 255, 255, 255, 0, "Advanced", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray, Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 4))), - Data(-1, TextureSet.SET_NONE, 1.0F, 0, 0, 0, 255, 255, 255, 0, "Data", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray, Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 5))), - Elite(-1, TextureSet.SET_NONE, 1.0F, 0, 0, 0, 255, 255, 255, 0, "Elite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray, Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 6))), - Master(-1, TextureSet.SET_NONE, 1.0F, 0, 0, 0, 255, 255, 255, 0, "Master", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray, Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 7))), - Ultimate(-1, TextureSet.SET_NONE, 1.0F, 0, 0, 0, 255, 255, 255, 0, "Ultimate", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray, Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 8))), - Superconductor(-1, TextureSet.SET_NONE, 1.0F, 0, 0, 0, 255, 255, 255, 0, "Superconductor", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray, Arrays.asList(new TC_AspectStack(TC_Aspects.ELECTRUM, 8))), - Infinite(-1, TextureSet.SET_NONE, 1.0F, 0, 0, 0, 255, 255, 255, 0, "Infinite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray), - - /** - * Not possible to determine exact Components - */ - Antimatter(-1, TextureSet.SET_NONE, 1.0F, 0, 0, 0, 255, 255, 255, 0, "Antimatter", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePink, Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 9), new TC_AspectStack(TC_Aspects.PERFODIO, 8))), - BioFuel(705, TextureSet.SET_FLUID, 1.0F, 0, 0, 16, 255, 128, 0, 0, "Biofuel", 0, 6, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange), - Biomass(704, TextureSet.SET_FLUID, 1.0F, 0, 0, 16, 0, 255, 0, 0, "Biomass", 3, 8, -1, 0, false, false, 1, 1, 1, Dyes.dyeGreen), - Cheese(894, TextureSet.SET_FINE, 1.0F, 0, 0, 1 | 8, 255, 255, 0, 0, "Cheese", 0, 0, 320, 0, false, false, 1, 1, 1, Dyes.dyeYellow), - Chili(895, TextureSet.SET_FINE, 1.0F, 0, 0, 1, 200, 0, 0, 0, "Chili", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeRed), - Chocolate(886, TextureSet.SET_FINE, 1.0F, 0, 0, 1, 190, 95, 0, 0, "Chocolate", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown), - Cluster(-1, TextureSet.SET_NONE, 1.0F, 0, 0, 0, 255, 255, 255, 127, "Cluster", 0, 0, -1, 0, false, true, 1, 1, 1, Dyes.dyeWhite), - CoalFuel(710, TextureSet.SET_FLUID, 1.0F, 0, 0, 16, 50, 50, 70, 0, "Coalfuel", 0, 16, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack), - Cocoa(887, TextureSet.SET_FINE, 1.0F, 0, 0, 1, 190, 95, 0, 0, "Cocoa", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown), - Coffee(888, TextureSet.SET_FINE, 1.0F, 0, 0, 1, 150, 75, 0, 0, "Coffee", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown), - Creosote(712, TextureSet.SET_FLUID, 1.0F, 0, 0, 16, 128, 64, 0, 0, "Creosote", 3, 8, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown), - EnhancedGalgadorian(385, TextureSet.SET_METALLIC, 32.0F, 7200, 5, 1|2| 64|128, 152 , 93, 133, 0, "Enhanced Galgadorian", 0, 0, 3500, 3500, true, false, 1, 1, 1, Dyes.dyePink ), - Ethanol(706, TextureSet.SET_FLUID, 1.0F, 0, 0, 16, 255, 192, 0, 0, "Ethanol", 0, 128, -1, 0, false, false, 1, 1, 1, Dyes.dyePurple), - FishOil(711, TextureSet.SET_FLUID, 1.0F, 0, 0, 16, 255, 196, 0, 0, "Fish Oil", 3, 2, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow, Arrays.asList(new TC_AspectStack(TC_Aspects.CORPUS, 2))), - Fuel(708, TextureSet.SET_FLUID, 1.0F, 0, 0, 16, 255, 255, 0, 0, "Diesel", 0, 192, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow), - Galgadorian ( 384, TextureSet.SET_METALLIC, 16.0F, 3600, 3, 1|2| 64|128, 154, 105, 119, 0, "Galgadorian", 0, 0, 2200, 2200, true, false, 1, 1, 1, Dyes.dyePink ), - Glue(726, TextureSet.SET_FLUID, 1.0F, 0, 0, 16, 200, 196, 0, 0, "Glue", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange, Arrays.asList(new TC_AspectStack(TC_Aspects.LIMUS, 2))), - Gunpowder(800, TextureSet.SET_DULL, 1.0F, 0, 0, 1, 128, 128, 128, 0, "Gunpowder", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray, Arrays.asList(new TC_AspectStack(TC_Aspects.PERDITIO, 3), new TC_AspectStack(TC_Aspects.IGNIS, 4))), - FryingOilHot(727, TextureSet.SET_FLUID, 1.0F, 0, 0, 16, 200, 196, 0, 0, "Hot Frying Oil", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange, Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 1), new TC_AspectStack(TC_Aspects.IGNIS, 1))), - Honey(725, TextureSet.SET_FLUID, 1.0F, 0, 0, 16, 210, 200, 0, 0, "Honey", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow), - Leather(-1, TextureSet.SET_ROUGH, 1.0F, 0, 0, 1, 150, 150, 80, 127, "Leather", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange), - LimePure(-1, TextureSet.SET_NONE, 1.0F, 0, 0, 0, 255, 255, 255, 0, "Pure Lime", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLime), - Lubricant(724, TextureSet.SET_FLUID, 1.0F, 0, 0, 16, 255, 196, 0, 0, "Lubricant", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange, Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 2), new TC_AspectStack(TC_Aspects.MACHINA, 1))), - McGuffium239(999, TextureSet.SET_FLUID, 1.0F, 0, 0, 16, 200, 50, 150, 0, "Mc Guffium 239", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePink, Arrays.asList(new TC_AspectStack(TC_Aspects.ALIENIS, 8), new TC_AspectStack(TC_Aspects.PERMUTATIO, 8), new TC_AspectStack(TC_Aspects.SPIRITUS, 8), new TC_AspectStack(TC_Aspects.AURAM, 8), new TC_AspectStack(TC_Aspects.VITIUM, 8), new TC_AspectStack(TC_Aspects.RADIO, 8), new TC_AspectStack(TC_Aspects.MAGNETO, 8), new TC_AspectStack(TC_Aspects.ELECTRUM, 8), new TC_AspectStack(TC_Aspects.NEBRISUM, 8), new TC_AspectStack(TC_Aspects.STRONTIO, 8))), - MeatRaw(892, TextureSet.SET_FINE, 1.0F, 0, 0, 1, 255, 100, 100, 0, "Raw Meat", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePink), - MeatCooked(893, TextureSet.SET_FINE, 1.0F, 0, 0, 1, 150, 60, 20, 0, "Cooked Meat", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePink), - Milk(885, TextureSet.SET_FINE, 1.0F, 0, 0, 1 | 16, 254, 254, 254, 0, "Milk", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite, Arrays.asList(new TC_AspectStack(TC_Aspects.SANO, 2))), - Mud(-1, TextureSet.SET_NONE, 1.0F, 0, 0, 0, 255, 255, 255, 0, "Mud", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown), - Oil(707, TextureSet.SET_FLUID, 1.0F, 0, 0, 16, 10, 10, 10, 0, "Oil", 3, 16, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack), - Paper(879, TextureSet.SET_PAPER, 1.0F, 0, 0, 1, 250, 250, 250, 0, "Paper", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite, Arrays.asList(new TC_AspectStack(TC_Aspects.COGNITIO, 1))), - Peat(-1, TextureSet.SET_NONE, 1.0F, 0, 0, 0, 255, 255, 255, 0, "Peat", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown, Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 2), new TC_AspectStack(TC_Aspects.IGNIS, 2))), - Quantum(-1, TextureSet.SET_NONE, 1.0F, 0, 0, 0, 255, 255, 255, 0, "Quantum", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite), - RareEarth(891, TextureSet.SET_FINE, 1.0F, 0, 0, 1, 128, 128, 100, 0, "Rare Earth", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray, Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 1), new TC_AspectStack(TC_Aspects.LUCRUM, 1))), - Red(-1, TextureSet.SET_NONE, 1.0F, 0, 0, 0, 255, 0, 0, 0, "Red", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeRed), - Reinforced ( 383, TextureSet.SET_METALLIC, 7.0F, 480, 2, 1|2 |64|128, 105, 141, 165, 0, "Reinforced", 0, 0, -1, 1700, true, false, 1, 1, 1, Dyes.dyeBlue ), - SeedOil(713, TextureSet.SET_FLUID, 1.0F, 0, 0, 16, 196, 255, 0, 0, "Seed Oil", 3, 2, -1, 0, false, false, 1, 1, 1, Dyes.dyeLime, Arrays.asList(new TC_AspectStack(TC_Aspects.GRANUM, 2))), - SeedOilHemp(722, TextureSet.SET_FLUID, 1.0F, 0, 0, 16, 196, 255, 0, 0, "Hemp Seed Oil", 3, 2, -1, 0, false, false, 1, 1, 1, Dyes.dyeLime, Arrays.asList(new TC_AspectStack(TC_Aspects.GRANUM, 2))), - SeedOilLin(723, TextureSet.SET_FLUID, 1.0F, 0, 0, 16, 196, 255, 0, 0, "Lin Seed Oil", 3, 2, -1, 0, false, false, 1, 1, 1, Dyes.dyeLime, Arrays.asList(new TC_AspectStack(TC_Aspects.GRANUM, 2))), - Stone(299, TextureSet.SET_ROUGH, 4.0F, 32, 1, 1 | 64 | 128, 205, 205, 205, 0, "Stone", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray, Arrays.asList(new TC_AspectStack(TC_Aspects.TERRA, 1))), - TNT(-1, TextureSet.SET_NONE, 1.0F, 0, 0, 0, 255, 255, 255, 0, "TNT", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeRed, Arrays.asList(new TC_AspectStack(TC_Aspects.PERDITIO, 7), new TC_AspectStack(TC_Aspects.IGNIS, 4))), - Unstable(-1, TextureSet.SET_NONE, 1.0F, 0, 4, 0, 255, 255, 255, 127, "Unstable", 0, 0, -1, 0, false, true, 1, 1, 1, Dyes.dyeWhite, Arrays.asList(new TC_AspectStack(TC_Aspects.PERDITIO, 4))), - Unstableingot(-1, TextureSet.SET_NONE, 1.0F, 0, 4, 0, 255, 255, 255, 127, "Unstable", 0, 0, -1, 0, false, true, 1, 1, 1, Dyes.dyeWhite, Arrays.asList(new TC_AspectStack(TC_Aspects.PERDITIO, 4))), - Wheat(881, TextureSet.SET_POWDER, 1.0F, 0, 0, 1, 255, 255, 196, 0, "Wheat", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow, Arrays.asList(new TC_AspectStack(TC_Aspects.MESSIS, 2))), - - /** - * TODO: This - */ - AluminiumBrass(-1, TextureSet.SET_METALLIC, 6.0F, 64, 2, 1 | 2 | 64, 255, 255, 255, 0, "Aluminium Brass", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow), - Osmiridium ( 317, TextureSet.SET_METALLIC , 7.0F, 1600, 3, 1|2 |64|128 , 100, 100, 255, 0, "Osmiridium" , 0, 0, 3500, 3500, true, false, 1, 1, 1, Dyes.dyeLightBlue ), - Sunnarium ( 318, TextureSet.SET_SHINY , 1.0F, 0, 1, 1|2 |64|128 , 255, 255, 0, 0, "Sunnarium" , 0, 0, 3600, 3600, true, false, 1, 1, 1, Dyes.dyeYellow ), - Endstone(808, TextureSet.SET_DULL, 1.0F, 0, 1, 1, 255, 255, 255, 0, "Endstone", 0, 0, -1, 0, false, false, 0, 1, 1, Dyes.dyeYellow), - Netherrack(807, TextureSet.SET_DULL, 1.0F, 0, 0, 1, 200, 0, 0, 0, "Netherrack", 0, 0, -1, 0, false, false, 0, 1, 1, Dyes.dyeRed), - SoulSand(-1, TextureSet.SET_DULL, 1.0F, 0, 0, 1, 255, 255, 255, 0, "Soulsand", 0, 0, -1, 0, false, false, 0, 1, 1, Dyes.dyeBrown), - - /** - * First Degree Compounds - */ - Air(-1, TextureSet.SET_FLUID, 1.0F, 0, 2, 16 | 32, 169, 208, 245, 240, "Air", 0, 0, -1, 0, false, true, 1, 1, 1, Dyes.dyeLightBlue, 0, Arrays.asList(new MaterialStack(Nitrogen, 40), new MaterialStack(Oxygen, 11), new MaterialStack(Argon, 1))), - Almandine(820, TextureSet.SET_ROUGH, 1.0F, 0, 1, 1 | 8, 255, 0, 0, 0, "Almandine", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeRed, 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Iron, 3), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 12))), - Andradite(821, TextureSet.SET_ROUGH, 1.0F, 0, 1, 1 | 8, 150, 120, 0, 0, "Andradite", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeYellow, 1, Arrays.asList(new MaterialStack(Calcium, 3), new MaterialStack(Iron, 2), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 12))), - AnnealedCopper(345, TextureSet.SET_SHINY, 1.0F, 0, 2, 1 | 2 | 128, 255, 120, 20, 0, "Annealed Copper", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeOrange, 2, Arrays.asList(new MaterialStack(Copper, 1))), - Asbestos(946, TextureSet.SET_DULL, 1.0F, 0, 1, 1 | 8, 230, 230, 230, 0, "Asbestos", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite, 1, Arrays.asList(new MaterialStack(Magnesium, 3), new MaterialStack(Silicon, 2), new MaterialStack(Hydrogen, 4), new MaterialStack(Oxygen, 9))), // Mg3Si2O5(OH)4 - Ash(815, TextureSet.SET_DULL, 1.0F, 0, 1, 1, 150, 150, 150, 0, "Ashes", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray, 2, Arrays.asList(new MaterialStack(Carbon, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.PERDITIO, 1))), - BandedIron(917, TextureSet.SET_DULL, 1.0F, 0, 2, 1 | 8, 145, 90, 90, 0, "Banded Iron", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown, 1, Arrays.asList(new MaterialStack(Iron, 2), new MaterialStack(Oxygen, 3))), - BatteryAlloy(315, TextureSet.SET_DULL, 1.0F, 0, 1, 1 | 2, 156, 124, 160, 0, "Battery Alloy", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePurple, 2, Arrays.asList(new MaterialStack(Lead, 4), new MaterialStack(Antimony, 1))), - Bauxite(822, TextureSet.SET_DULL, 1.0F, 0, 1, 1 | 8, 200, 100, 0, 0, "Bauxite", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBrown, 1, Arrays.asList(new MaterialStack(Titanium, 1), new MaterialStack(Aluminium, 16), new MaterialStack(Hydrogen, 10), new MaterialStack(Oxygen, 12))), - BlueTopaz(513, TextureSet.SET_GEM_HORIZONTAL, 7.0F, 256, 3, 1 | 4 | 8 | 64, 0, 0, 255, 127, "Blue Topaz", 0, 0, -1, 0, false, true, 3, 1, 1, Dyes.dyeBlue, 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 1), new MaterialStack(Fluorine, 2), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 6)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 6), new TC_AspectStack(TC_Aspects.VITREUS, 4))), - Bone(806, TextureSet.SET_DULL, 1.0F, 0, 1, 1, 250, 250, 250, 0, "Bone", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite, 0, Arrays.asList(new MaterialStack(Calcium, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.MORTUUS, 2), new TC_AspectStack(TC_Aspects.CORPUS, 1))), - Brass(301, TextureSet.SET_METALLIC, 7.0F, 96, 1, 1 | 2 | 64 | 128, 255, 180, 0, 0, "Brass", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow, 2, Arrays.asList(new MaterialStack(Zinc, 1), new MaterialStack(Copper, 3)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1))), - Bronze(300, TextureSet.SET_METALLIC, 6.0F, 192, 2, 1 | 2 | 64 | 128, 255, 128, 0, 0, "Bronze", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange, 2, Arrays.asList(new MaterialStack(Tin, 1), new MaterialStack(Copper, 3)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1))), - BrownLimonite(930, TextureSet.SET_METALLIC, 1.0F, 0, 1, 1 | 8, 200, 100, 0, 0, "Brown Limonite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown, 2, Arrays.asList(new MaterialStack(Iron, 1), new MaterialStack(Hydrogen, 1), new MaterialStack(Oxygen, 2))), // FeO(OH) - Calcite(823, TextureSet.SET_DULL, 1.0F, 0, 1, 1 | 8, 250, 230, 220, 0, "Calcite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange, 1, Arrays.asList(new MaterialStack(Calcium, 1), new MaterialStack(Carbon, 1), new MaterialStack(Oxygen, 3))), - Cassiterite(824, TextureSet.SET_METALLIC, 1.0F, 0, 1, 8, 220, 220, 220, 0, "Cassiterite", 0, 0, -1, 0, false, false, 4, 3, 1, Dyes.dyeWhite, 1, Arrays.asList(new MaterialStack(Tin, 1), new MaterialStack(Oxygen, 2))), - CassiteriteSand(937, TextureSet.SET_SAND, 1.0F, 0, 1, 8, 220, 220, 220, 0, "Cassiterite Sand", 0, 0, -1, 0, false, false, 4, 3, 1, Dyes.dyeWhite, 1, Arrays.asList(new MaterialStack(Tin, 1), new MaterialStack(Oxygen, 2))), - Celestine(913, TextureSet.SET_DULL, 1.0F, 0, 1, 1 | 8, 200, 205, 240, 0, "Celestine", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray, 1, Arrays.asList(new MaterialStack(Strontium, 1), new MaterialStack(Sulfur, 1), new MaterialStack(Oxygen, 4))), - Chalcopyrite(855, TextureSet.SET_DULL, 1.0F, 0, 1, 1 | 8, 160, 120, 40, 0, "Chalcopyrite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow, 1, Arrays.asList(new MaterialStack(Copper, 1), new MaterialStack(Iron, 1), new MaterialStack(Sulfur, 2))), - Chalk(856, TextureSet.SET_FINE, 1.0F, 0, 2, 1, 250, 250, 250, 0, "Chalk", 0, 0, -1, 0, false, false, 0, 1, 1, Dyes.dyeWhite, 1, Arrays.asList(new MaterialStack(Calcium, 1), new MaterialStack(Carbon, 1), new MaterialStack(Oxygen, 3))), - Charcoal(536, TextureSet.SET_FINE, 1.0F, 0, 1, 1 | 4, 100, 70, 70, 0, "Charcoal", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack, 1, Arrays.asList(new MaterialStack(Carbon, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 2), new TC_AspectStack(TC_Aspects.IGNIS, 2))), - Chromite(825, TextureSet.SET_METALLIC, 1.0F, 0, 1, 1 | 8, 35, 20, 15, 0, "Chromite", 0, 0, 1700, 1700, true, false, 6, 1, 1, Dyes.dyePink, 1, Arrays.asList(new MaterialStack(Iron, 1), new MaterialStack(Chrome, 2), new MaterialStack(Oxygen, 4))), - ChromiumDioxide(361, TextureSet.SET_DULL, 11.0F, 256, 3, 1 | 2, 230, 200, 200, 0, "Chromium Dioxide", 0, 0, 650, 650, false, false, 5, 3, 1, Dyes.dyePink, 1, Arrays.asList(new MaterialStack(Chrome, 1), new MaterialStack(Oxygen, 2)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MACHINA, 1))), - Cinnabar(826, TextureSet.SET_ROUGH, 1.0F, 0, 1, 1 | 8, 150, 0, 0, 0, "Cinnabar", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBrown, 2, Arrays.asList(new MaterialStack(Mercury, 1), new MaterialStack(Sulfur, 1))), - Clay(805, TextureSet.SET_ROUGH, 1.0F, 0, 1, 1, 200, 200, 220, 0, "Clay", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeLightBlue, 1, Arrays.asList(new MaterialStack(Sodium, 2), new MaterialStack(Lithium, 1), new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 2))), - Coal(535, TextureSet.SET_ROUGH, 1.0F, 0, 1, 1 | 4 | 8, 70, 70, 70, 0, "Coal", 0, 0, -1, 0, false, false, 2, 2, 1, Dyes.dyeBlack, 1, Arrays.asList(new MaterialStack(Carbon, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 2), new TC_AspectStack(TC_Aspects.IGNIS, 2))), - Cobaltite(827, TextureSet.SET_METALLIC, 1.0F, 0, 1, 1 | 8, 80, 80, 250, 0, "Cobaltite", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBlue, 1, Arrays.asList(new MaterialStack(Cobalt, 1), new MaterialStack(Arsenic, 1), new MaterialStack(Sulfur, 1))), - Cooperite(828, TextureSet.SET_METALLIC, 1.0F, 0, 1, 1 | 8, 255, 255, 200, 0, "Sheldonite", 0, 0, -1, 0, false, false, 5, 1, 1, Dyes.dyeYellow, 2, Arrays.asList(new MaterialStack(Platinum, 3), new MaterialStack(Nickel, 1), new MaterialStack(Sulfur, 1), new MaterialStack(Palladium, 1))), - Cupronickel(310, TextureSet.SET_METALLIC, 6.0F, 64, 1, 1 | 2 | 64, 227, 150, 128, 0, "Cupronickel", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange, 2, Arrays.asList(new MaterialStack(Copper, 1), new MaterialStack(Nickel, 1))), - DarkAsh(816, TextureSet.SET_DULL, 1.0F, 0, 1, 1, 50, 50, 50, 0, "Dark Ashes", 0, 0, -1, 0, false, false, 1, 2, 1, Dyes.dyeGray, 1, Arrays.asList(new MaterialStack(Carbon, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.IGNIS, 1), new TC_AspectStack(TC_Aspects.PERDITIO, 1))), - DeepIron(829, TextureSet.SET_METALLIC, 6.0F, 384, 2, 1 | 2 | 8 | 64, 150, 140, 140, 0, "Deep Iron", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyePink, 2, Arrays.asList(new MaterialStack(Iron, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1))), - Diamond(500, TextureSet.SET_DIAMOND, 8.0F, 1280, 3, 1 | 4 | 8 | 64 | 128, 200, 255, 255, 127, "Diamond", 0, 0, -1, 0, false, true, 5, 64, 1, Dyes.dyeWhite, 1, Arrays.asList(new MaterialStack(Carbon, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 3), new TC_AspectStack(TC_Aspects.LUCRUM, 4))), - Electrum(303, TextureSet.SET_SHINY, 12.0F, 64, 2, 1 | 2 | 8 | 64 | 128, 255, 255, 100, 0, "Electrum", 0, 0, -1, 0, false, false, 4, 1, 1, Dyes.dyeYellow, 2, Arrays.asList(new MaterialStack(Silver, 1), new MaterialStack(Gold, 1))), - Emerald(501, TextureSet.SET_EMERALD, 7.0F, 256, 2, 1 | 4 | 8 | 64, 80, 255, 80, 127, "Emerald", 0, 0, -1, 0, false, true, 5, 1, 1, Dyes.dyeGreen, 1, Arrays.asList(new MaterialStack(Beryllium, 3), new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 6), new MaterialStack(Oxygen, 18)), Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 3), new TC_AspectStack(TC_Aspects.LUCRUM, 5))), - FreshWater(-1, TextureSet.SET_FLUID, 1.0F, 0, 0, 16, 0, 0, 255, 0, "Fresh Water", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlue, 0, Arrays.asList(new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 2))), - Galena(830, TextureSet.SET_DULL, 1.0F, 0, 3, 1 | 8, 100, 60, 100, 0, "Galena", 0, 0, -1, 0, false, false, 4, 1, 1, Dyes.dyePurple, 1, Arrays.asList(new MaterialStack(Lead, 3), new MaterialStack(Silver, 3), new MaterialStack(Sulfur, 2))), - Garnierite(906, TextureSet.SET_METALLIC, 1.0F, 0, 3, 1 | 8, 50, 200, 70, 0, "Garnierite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightBlue, 1, Arrays.asList(new MaterialStack(Nickel, 1), new MaterialStack(Oxygen, 1))), - Glyceryl(714, TextureSet.SET_FLUID, 1.0F, 0, 1, 16, 0, 150, 150, 0, "Glyceryl Trinitrate", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeCyan, 1, Arrays.asList(new MaterialStack(Carbon, 3), new MaterialStack(Hydrogen, 5), new MaterialStack(Nitrogen, 3), new MaterialStack(Oxygen, 9))), - GreenSapphire(504, TextureSet.SET_GEM_HORIZONTAL, 7.0F, 256, 2, 1 | 4 | 8 | 64, 100, 200, 130, 127, "Green Sapphire", 0, 0, -1, 0, false, true, 5, 1, 1, Dyes.dyeCyan, 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Oxygen, 3)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 5), new TC_AspectStack(TC_Aspects.VITREUS, 3))), - Grossular(831, TextureSet.SET_ROUGH, 1.0F, 0, 1, 1 | 8, 200, 100, 0, 0, "Grossular", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeOrange, 1, Arrays.asList(new MaterialStack(Calcium, 3), new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 12))), - HolyWater(729, TextureSet.SET_FLUID, 1.0F, 0, 0, 16, 0, 0, 255, 0, "Holy Water", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlue, 0, Arrays.asList(new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 2), new TC_AspectStack(TC_Aspects.AURAM, 1))), - Ice(702, TextureSet.SET_SHINY, 1.0F, 0, 0, 1 | 16, 200, 200, 255, 0, "Ice", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlue, 0, Arrays.asList(new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.GELUM, 2))), - Ilmenite(918, TextureSet.SET_METALLIC, 1.0F, 0, 3, 1 | 8, 70, 55, 50, 0, "Ilmenite", 0, 0, -1, 0, false, false, 1, 2, 1, Dyes.dyePurple, 1, Arrays.asList(new MaterialStack(Iron, 1), new MaterialStack(Titanium, 1), new MaterialStack(Oxygen, 3))), - Invar(302, TextureSet.SET_METALLIC, 6.0F, 256, 2, 1 | 2 | 64 | 128, 180, 180, 120, 0, "Invar", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown, 2, Arrays.asList(new MaterialStack(Iron, 2), new MaterialStack(Nickel, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.GELUM, 1))), - IronCompressed(-1, TextureSet.SET_METALLIC, 7.0F, 96, 1, 1 | 2 | 64 | 128, 128, 128, 128, 0, "Compressed Iron", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray, 2, Arrays.asList(new MaterialStack(Iron, 1))), - Kanthal(312, TextureSet.SET_METALLIC, 6.0F, 64, 2, 1 | 2 | 64, 194, 210, 223, 0, "Kanthal", 0, 0, 1800, 1800, true, false, 1, 1, 1, Dyes.dyeYellow, 2, Arrays.asList(new MaterialStack(Iron, 1), new MaterialStack(Aluminium, 1), new MaterialStack(Chrome, 1))), - Lazurite(524, TextureSet.SET_LAPIS, 1.0F, 0, 1, 1 | 4 | 8, 100, 120, 255, 0, "Lazurite", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeCyan, 1, Arrays.asList(new MaterialStack(Aluminium, 6), new MaterialStack(Silicon, 6), new MaterialStack(Calcium, 8), new MaterialStack(Sodium, 8))), - Magnalium(313, TextureSet.SET_DULL, 6.0F, 256, 2, 1 | 2 | 64 | 128, 200, 190, 255, 0, "Magnalium", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightBlue, 2, Arrays.asList(new MaterialStack(Magnesium, 1), new MaterialStack(Aluminium, 2))), - Magnesite(908, TextureSet.SET_METALLIC, 1.0F, 0, 2, 1 | 8, 250, 250, 180, 0, "Magnesite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePink, 1, Arrays.asList(new MaterialStack(Magnesium, 1), new MaterialStack(Carbon, 1), new MaterialStack(Oxygen, 3))), - Magnetite(870, TextureSet.SET_METALLIC, 1.0F, 0, 2, 1 | 8, 30, 30, 30, 0, "Magnetite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray, 1, Arrays.asList(new MaterialStack(Iron, 3), new MaterialStack(Oxygen, 4)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1))), - Methane(715, TextureSet.SET_FLUID, 1.0F, 0, 1, 16, 255, 255, 255, 0, "Methane", 1, 45, -1, 0, false, false, 3, 1, 1, Dyes.dyeMagenta, 1, Arrays.asList(new MaterialStack(Carbon, 1), new MaterialStack(Hydrogen, 4))), - Molybdenite(942, TextureSet.SET_METALLIC, 1.0F, 0, 2, 1 | 8, 25, 25, 25, 0, "Molybdenite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlue, 1, Arrays.asList(new MaterialStack(Molybdenum, 1), new MaterialStack(Sulfur, 2))), // MoS2 (also source of Re) - Nichrome(311, TextureSet.SET_METALLIC, 6.0F, 64, 2, 1 | 2 | 64, 205, 206, 246, 0, "Nichrome", 0, 0, 2700, 2700, true, false, 1, 1, 1, Dyes.dyeRed, 2, Arrays.asList(new MaterialStack(Nickel, 4), new MaterialStack(Chrome, 1))), - NiobiumNitride(359, TextureSet.SET_DULL, 1.0F, 0, 2, 1 | 2, 29, 41, 29, 0, "Niobium Nitride", 0, 0, 2573, 2573, true, false, 1, 1, 1, Dyes.dyeBlack, 1, Arrays.asList(new MaterialStack(Niobium, 1), new MaterialStack(Nitrogen, 1))), // Anti-Reflective Material - NiobiumTitanium(360, TextureSet.SET_DULL, 1.0F, 0, 2, 1 | 2, 29, 29, 41, 0, "Niobium-Titanium", 0, 0, 2800, 2800, true, false, 1, 1, 1, Dyes.dyeBlack, 2, Arrays.asList(new MaterialStack(Niobium, 1), new MaterialStack(Titanium, 1))), - NitroCarbon(716, TextureSet.SET_FLUID, 1.0F, 0, 1, 16, 0, 75, 100, 0, "Nitro-Carbon", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeCyan, 1, Arrays.asList(new MaterialStack(Nitrogen, 1), new MaterialStack(Carbon, 1))), - NitrogenDioxide(717, TextureSet.SET_FLUID, 1.0F, 0, 1, 16, 100, 175, 255, 0, "Nitrogen Dioxide", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeCyan, 1, Arrays.asList(new MaterialStack(Nitrogen, 1), new MaterialStack(Oxygen, 2))), - Obsidian(804, TextureSet.SET_DULL, 1.0F, 0, 3, 1, 80, 50, 100, 0, "Obsidian", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack, 1, Arrays.asList(new MaterialStack(Magnesium, 1), new MaterialStack(Iron, 1), new MaterialStack(Silicon, 2), new MaterialStack(Oxygen, 8))), - Phosphate(833, TextureSet.SET_DULL, 1.0F, 0, 1, 1 | 8 | 16, 255, 255, 0, 0, "Phosphate", 0, 0, -1, 0, false, false, 2, 1, 1, Dyes.dyeYellow, 1, Arrays.asList(new MaterialStack(Phosphor, 1), new MaterialStack(Oxygen, 4))), - PigIron(307, TextureSet.SET_METALLIC, 6.0F, 384, 2, 1 | 2 | 8 | 64, 200, 180, 180, 0, "Pig Iron", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyePink, 2, Arrays.asList(new MaterialStack(Iron, 1))), - Plastic(874, TextureSet.SET_DULL, 3.0F, 32, 1, 1 | 2 | 64 | 128, 200, 200, 200, 0, "Plastic", 0, 0, 400, 0, false, false, 1, 1, 1, Dyes.dyeWhite, 0, Arrays.asList(new MaterialStack(Carbon, 1), new MaterialStack(Hydrogen, 2)), Arrays.asList(new TC_AspectStack(TC_Aspects.MOTUS, 2))), - Powellite(883, TextureSet.SET_DULL, 1.0F, 0, 2, 1 | 8, 255, 255, 0, 0, "Powellite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow, 2, Arrays.asList(new MaterialStack(Calcium, 1), new MaterialStack(Molybdenum, 1), new MaterialStack(Oxygen, 4))), - Pumice(926, TextureSet.SET_DULL, 1.0F, 0, 2, 1 | 8, 230, 185, 185, 0, "Pumice", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray, 2, Arrays.asList(new MaterialStack(Stone, 1))), - Pyrite(834, TextureSet.SET_ROUGH, 1.0F, 0, 1, 1 | 8, 150, 120, 40, 0, "Pyrite", 0, 0, -1, 0, false, false, 2, 1, 1, Dyes.dyeOrange, 1, Arrays.asList(new MaterialStack(Iron, 1), new MaterialStack(Sulfur, 2))), - Pyrolusite(943, TextureSet.SET_DULL, 1.0F, 0, 2, 1 | 8, 150, 150, 170, 0, "Pyrolusite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray, 1, Arrays.asList(new MaterialStack(Manganese, 1), new MaterialStack(Oxygen, 2))), - Pyrope(835, TextureSet.SET_METALLIC, 1.0F, 0, 2, 1 | 8, 120, 50, 100, 0, "Pyrope", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyePurple, 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Magnesium, 3), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 12))), - RockSalt(944, TextureSet.SET_FINE, 1.0F, 0, 1, 1 | 8, 240, 200, 200, 0, "Rock Salt", 0, 0, -1, 0, false, false, 2, 1, 1, Dyes.dyeWhite, 1, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Chlorine, 1))), - Rubber(880, TextureSet.SET_SHINY, 1.5F, 16, 0, 1 | 2 | 64 | 128, 0, 0, 0, 0, "Rubber", 0, 0, 400, 0, false, false, 1, 1, 1, Dyes.dyeBlack, 0, Arrays.asList(new MaterialStack(Carbon, 5), new MaterialStack(Hydrogen, 8)), Arrays.asList(new TC_AspectStack(TC_Aspects.MOTUS, 2))), - Ruby(502, TextureSet.SET_RUBY, 7.0F, 256, 2, 1 | 4 | 8 | 64, 255, 100, 100, 127, "Ruby", 0, 0, -1, 0, false, true, 5, 1, 1, Dyes.dyeRed, 1, Arrays.asList(new MaterialStack(Chrome, 1), new MaterialStack(Aluminium, 2), new MaterialStack(Oxygen, 3)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 6), new TC_AspectStack(TC_Aspects.VITREUS, 4))), - Salt(817, TextureSet.SET_FINE, 1.0F, 0, 1, 1 | 8, 250, 250, 250, 0, "Salt", 0, 0, -1, 0, false, false, 2, 1, 1, Dyes.dyeWhite, 1, Arrays.asList(new MaterialStack(Sodium, 1), new MaterialStack(Chlorine, 1))), - Saltpeter(836, TextureSet.SET_FINE, 1.0F, 0, 1, 1 | 8, 230, 230, 230, 0, "Saltpeter", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeWhite, 1, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Nitrogen, 1), new MaterialStack(Oxygen, 3))), - SaltWater(-1, TextureSet.SET_FLUID, 1.0F, 0, 0, 16, 0, 0, 255, 0, "Salt Water", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlue, 0, Arrays.asList(new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 2))), - Sapphire(503, TextureSet.SET_GEM_VERTICAL, 7.0F, 256, 2, 1 | 4 | 8 | 64, 100, 100, 200, 127, "Sapphire", 0, 0, -1, 0, false, true, 5, 1, 1, Dyes.dyeBlue, 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Oxygen, 3)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 5), new TC_AspectStack(TC_Aspects.VITREUS, 3))), - Scheelite(910, TextureSet.SET_DULL, 1.0F, 0, 3, 1 | 8, 200, 140, 20, 0, "Scheelite", 0, 0, 2500, 2500, false, false, 4, 1, 1, Dyes.dyeBlack, 1, Arrays.asList(new MaterialStack(Tungsten, 1), new MaterialStack(Calcium, 2), new MaterialStack(Oxygen, 4))), - SiliconDioxide(837, TextureSet.SET_QUARTZ, 1.0F, 0, 1, 1 | 16, 200, 200, 200, 0, "Silicon Dioxide", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray, 1, Arrays.asList(new MaterialStack(Silicon, 1), new MaterialStack(Oxygen, 2))), - Snow(728, TextureSet.SET_FINE, 1.0F, 0, 0, 1 | 16, 250, 250, 250, 0, "Snow", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite, 0, Arrays.asList(new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.GELUM, 1))), - Sodalite(525, TextureSet.SET_LAPIS, 1.0F, 0, 1, 1 | 4 | 8, 20, 20, 255, 0, "Sodalite", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBlue, 1, Arrays.asList(new MaterialStack(Aluminium, 3), new MaterialStack(Silicon, 3), new MaterialStack(Sodium, 4), new MaterialStack(Chlorine, 1))), - SodiumPersulfate(718, TextureSet.SET_FLUID, 1.0F, 0, 2, 16, 255, 255, 255, 0, "Sodium Persulfate", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange, 1, Arrays.asList(new MaterialStack(Sodium, 1), new MaterialStack(Sulfur, 1), new MaterialStack(Oxygen, 4))), - SodiumSulfide(719, TextureSet.SET_FLUID, 1.0F, 0, 2, 16, 255, 255, 255, 0, "Sodium Sulfide", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange, 1, Arrays.asList(new MaterialStack(Sodium, 1), new MaterialStack(Sulfur, 1))), - SolderingAlloy(314, TextureSet.SET_DULL, 1.0F, 0, 1, 1 | 2, 220, 220, 230, 0, "Soldering Alloy", 0, 0, 400, 400, false, false, 1, 1, 1, Dyes.dyeWhite, 2, Arrays.asList(new MaterialStack(Tin, 9), new MaterialStack(Antimony, 1))), - Spessartine(838, TextureSet.SET_DULL, 1.0F, 0, 2, 1 | 8, 255, 100, 100, 0, "Spessartine", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeRed, 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Manganese, 3), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 12))), - Sphalerite(839, TextureSet.SET_DULL, 1.0F, 0, 1, 1 | 8, 255, 255, 255, 0, "Sphalerite", 0, 0, -1, 0, false, false, 2, 1, 1, Dyes.dyeYellow, 1, Arrays.asList(new MaterialStack(Zinc, 1), new MaterialStack(Sulfur, 1))), - StainlessSteel(306, TextureSet.SET_SHINY, 7.0F, 480, 2, 1 | 2 | 64 | 128, 200, 200, 220, 0, "Stainless Steel", 0, 0, -1, 1700, true, false, 1, 1, 1, Dyes.dyeWhite, 1, Arrays.asList(new MaterialStack(Iron, 6), new MaterialStack(Chrome, 1), new MaterialStack(Manganese, 1), new MaterialStack(Nickel, 1))), - Steel(305, TextureSet.SET_METALLIC, 6.0F, 512, 2, 1 | 2 | 64 | 128, 128, 128, 128, 0, "Steel", 0, 0, 1811, 1000, true, false, 4, 51, 50, Dyes.dyeGray, 1, Arrays.asList(new MaterialStack(Iron, 50), new MaterialStack(Carbon, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.ORDO, 1))), - Stibnite(945, TextureSet.SET_METALLIC, 1.0F, 0, 2, 1 | 8, 70, 70, 70, 0, "Stibnite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite, 2, Arrays.asList(new MaterialStack(Antimony, 2), new MaterialStack(Sulfur, 3))), - SulfuricAcid(720, TextureSet.SET_FLUID, 1.0F, 0, 2, 16, 255, 128, 0, 0, "Sulfuric Acid", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange, 1, Arrays.asList(new MaterialStack(Hydrogen, 2), new MaterialStack(Sulfur, 1), new MaterialStack(Oxygen, 4))), - Tanzanite(508, TextureSet.SET_GEM_VERTICAL, 7.0F, 256, 2, 1 | 4 | 8 | 64, 64, 0, 200, 127, "Tanzanite", 0, 0, -1, 0, false, true, 5, 1, 1, Dyes.dyePurple, 1, Arrays.asList(new MaterialStack(Calcium, 2), new MaterialStack(Aluminium, 3), new MaterialStack(Silicon, 3), new MaterialStack(Hydrogen, 1), new MaterialStack(Oxygen, 13)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 5), new TC_AspectStack(TC_Aspects.VITREUS, 3))), - Tetrahedrite(840, TextureSet.SET_DULL, 1.0F, 0, 2, 1 | 8, 200, 32, 0, 0, "Tetrahedrite", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeRed, 2, Arrays.asList(new MaterialStack(Copper, 3), new MaterialStack(Antimony, 1), new MaterialStack(Sulfur, 3), new MaterialStack(Iron, 1))), //Cu3SbS3 + x(Fe,Zn)6Sb2S9 - TinAlloy(363, TextureSet.SET_METALLIC, 6.5F, 96, 2, 1 | 2 | 64 | 128, 200, 200, 200, 0, "Tin Alloy", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite, 2, Arrays.asList(new MaterialStack(Tin, 1), new MaterialStack(Iron, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1))), - Topaz(507, TextureSet.SET_GEM_HORIZONTAL, 7.0F, 256, 3, 1 | 4 | 8 | 64, 255, 128, 0, 127, "Topaz", 0, 0, -1, 0, false, true, 5, 1, 1, Dyes.dyeOrange, 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 1), new MaterialStack(Fluorine, 2), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 6)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 6), new TC_AspectStack(TC_Aspects.VITREUS, 4))), - Tungstate(841, TextureSet.SET_DULL, 1.0F, 0, 3, 1 | 8, 55, 50, 35, 0, "Tungstate", 0, 0, 2500, 2500, true, false, 4, 1, 1, Dyes.dyeBlack, 1, Arrays.asList(new MaterialStack(Tungsten, 1), new MaterialStack(Lithium, 2), new MaterialStack(Oxygen, 4))), - Ultimet(344, TextureSet.SET_SHINY, 6.0F, 512, 3, 1 | 2 | 64 | 128, 180, 180, 230, 0, "Ultimet", 0, 0, 2700, 2700, true, false, 1, 1, 1, Dyes.dyeLightBlue, 1, Arrays.asList(new MaterialStack(Cobalt, 5), new MaterialStack(Chrome, 2), new MaterialStack(Nickel, 1), new MaterialStack(Molybdenum, 1))), // 54% Cobalt, 26% Chromium, 9% Nickel, 5% Molybdenum, 3% Iron, 2% Tungsten, 0.8% Manganese, 0.3% Silicon, 0.08% Nitrogen and 0.06% Carbon - Uraninite(922, TextureSet.SET_METALLIC, 1.0F, 0, 3, 1 | 8, 35, 35, 35, 0, "Uraninite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLime, 2, Arrays.asList(new MaterialStack(Uranium, 1), new MaterialStack(Oxygen, 2))), - Uvarovite(842, TextureSet.SET_DIAMOND, 1.0F, 0, 2, 1 | 8, 180, 255, 180, 0, "Uvarovite", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeGreen, 1, Arrays.asList(new MaterialStack(Calcium, 3), new MaterialStack(Chrome, 2), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 12))), - VanadiumGallium(357, TextureSet.SET_SHINY, 1.0F, 0, 2, 1 | 2, 128, 128, 140, 0, "Vanadium-Gallium", 0, 0, 3000, 3000, true, false, 1, 1, 1, Dyes.dyeGray, 2, Arrays.asList(new MaterialStack(Vanadium, 3), new MaterialStack(Gallium, 1))), - Water(701, TextureSet.SET_FLUID, 1.0F, 0, 0, 16, 0, 0, 255, 0, "Water", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlue, 0, Arrays.asList(new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 2))), - Wood(809, TextureSet.SET_WOOD, 2.0F, 16, 0, 1 | 2 | 64 | 128, 100, 50, 0, 0, "Wood", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown, 0, Arrays.asList(new MaterialStack(Carbon, 1), new MaterialStack(Oxygen, 1), new MaterialStack(Hydrogen, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.ARBOR, 2))), - WroughtIron(304, TextureSet.SET_METALLIC, 6.0F, 384, 2, 1 | 2 | 64 | 128, 200, 180, 180, 0, "Wrought Iron", 0, 0, 1811, 0, false, false, 3, 1, 1, Dyes.dyeLightGray, 2, Arrays.asList(new MaterialStack(Iron, 1))), - Wulfenite(882, TextureSet.SET_DULL, 1.0F, 0, 3, 1 | 8, 255, 128, 0, 0, "Wulfenite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange, 2, Arrays.asList(new MaterialStack(Lead, 1), new MaterialStack(Molybdenum, 1), new MaterialStack(Oxygen, 4))), - YellowLimonite(931, TextureSet.SET_METALLIC, 1.0F, 0, 2, 1 | 8, 200, 200, 0, 0, "Yellow Limonite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow, 2, Arrays.asList(new MaterialStack(Iron, 1), new MaterialStack(Hydrogen, 1), new MaterialStack(Oxygen, 2))), // FeO(OH) + a bit Ni and Co - YttriumBariumCuprate(358, TextureSet.SET_METALLIC, 1.0F, 0, 2, 1 | 2, 80, 64, 70, 0, "Yttrium Barium Cuprate", 0, 0, 1200, 1200, true, false, 1, 1, 1, Dyes.dyeGray, 0, Arrays.asList(new MaterialStack(Yttrium, 1), new MaterialStack(Barium, 2), new MaterialStack(Copper, 3), new MaterialStack(Oxygen, 7))), - - /** - * Second Degree Compounds - */ - WoodSealed(889, TextureSet.SET_WOOD, 3.0F, 24, 0, 1 | 2 | 64 | 128, 80, 40, 0, 0, "Sealed Wood", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBrown, 0, Arrays.asList(new MaterialStack(Wood, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.ARBOR, 2), new TC_AspectStack(TC_Aspects.FABRICO, 1))), - LiveRoot(832, TextureSet.SET_WOOD, 1.0F, 0, 1, 1, 220, 200, 0, 0, "Liveroot", 5, 16, -1, 0, false, false, 2, 4, 3, Dyes.dyeBrown, 2, Arrays.asList(new MaterialStack(Wood, 3), new MaterialStack(Magic, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.ARBOR, 2), new TC_AspectStack(TC_Aspects.VICTUS, 2), new TC_AspectStack(TC_Aspects.PRAECANTATIO, 1))), - IronWood(338, TextureSet.SET_WOOD, 6.0F, 384, 2, 1 | 2 | 64 | 128, 150, 140, 110, 0, "Ironwood", 5, 8, -1, 0, false, false, 2, 19, 18, Dyes.dyeBrown, 2, Arrays.asList(new MaterialStack(Iron, 9), new MaterialStack(LiveRoot, 9), new MaterialStack(Gold, 1))), - Glass(890, TextureSet.SET_GLASS, 1.0F, 4, 0, 1 | 4, 250, 250, 250, 220, "Glass", 0, 0, 1500, 0, false, true, 1, 1, 1, Dyes.dyeWhite, 2, Arrays.asList(new MaterialStack(SiliconDioxide, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 2))), - Perlite(925, TextureSet.SET_DULL, 1.0F, 0, 1, 1 | 8, 30, 20, 30, 0, "Perlite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack, 2, Arrays.asList(new MaterialStack(Obsidian, 2), new MaterialStack(Water, 1))), - Borax(941, TextureSet.SET_FINE, 1.0F, 0, 1, 1 | 8, 250, 250, 250, 0, "Borax", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite, 1, Arrays.asList(new MaterialStack(Sodium, 2), new MaterialStack(Boron, 4), new MaterialStack(Water, 10), new MaterialStack(Oxygen, 7))), - Lignite(538, TextureSet.SET_LIGNITE, 1.0F, 0, 0, 1 | 4 | 8, 100, 70, 70, 0, "Lignite Coal", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack, 1, Arrays.asList(new MaterialStack(Carbon, 2), new MaterialStack(Water, 4), new MaterialStack(DarkAsh, 1))), - Olivine(505, TextureSet.SET_RUBY, 7.0F, 256, 2, 1 | 4 | 8 | 64, 150, 255, 150, 127, "Olivine", 0, 0, -1, 0, false, true, 5, 1, 1, Dyes.dyeLime, 1, Arrays.asList(new MaterialStack(Magnesium, 2), new MaterialStack(Iron, 1), new MaterialStack(SiliconDioxide, 2)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 4), new TC_AspectStack(TC_Aspects.VITREUS, 2))), - Opal(510, TextureSet.SET_OPAL, 7.0F, 256, 2, 1 | 4 | 8 | 64, 0, 0, 255, 0, "Opal", 0, 0, -1, 0, false, true, 3, 1, 1, Dyes.dyeBlue, 1, Arrays.asList(new MaterialStack(SiliconDioxide, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 5), new TC_AspectStack(TC_Aspects.VITREUS, 3))), - Amethyst(509, TextureSet.SET_FLINT, 7.0F, 256, 3, 1 | 4 | 8 | 64, 210, 50, 210, 127, "Amethyst", 0, 0, -1, 0, false, true, 3, 1, 1, Dyes.dyePink, 1, Arrays.asList(new MaterialStack(SiliconDioxide, 4), new MaterialStack(Iron, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 6), new TC_AspectStack(TC_Aspects.VITREUS, 4))), - Redstone(810, TextureSet.SET_ROUGH, 1.0F, 0, 2, 1 | 8, 200, 0, 0, 0, "Redstone", 0, 0, 500, 0, false, false, 3, 1, 1, Dyes.dyeRed, 2, Arrays.asList(new MaterialStack(Silicon, 1), new MaterialStack(Pyrite, 5), new MaterialStack(Ruby, 1), new MaterialStack(Mercury, 3)), Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 1), new TC_AspectStack(TC_Aspects.POTENTIA, 2))), - Lapis(526, TextureSet.SET_LAPIS, 1.0F, 0, 1, 1 | 4 | 8, 70, 70, 220, 0, "Lapis", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeBlue, 2, Arrays.asList(new MaterialStack(Lazurite, 12), new MaterialStack(Sodalite, 2), new MaterialStack(Pyrite, 1), new MaterialStack(Calcite, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.SENSUS, 1))), - Blaze(801, TextureSet.SET_POWDER, 2.0F, 16, 1, 1 | 64, 255, 200, 0, 0, "Blaze", 0, 0, 6400, 0, false, false, 2, 3, 2, Dyes.dyeYellow, 2, Arrays.asList(new MaterialStack(DarkAsh, 1), new MaterialStack(Sulfur, 1), new MaterialStack(Magic, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTATIO, 2), new TC_AspectStack(TC_Aspects.IGNIS, 4))), - EnderPearl(532, TextureSet.SET_SHINY, 1.0F, 16, 1, 1 | 4, 108, 220, 200, 0, "Enderpearl", 0, 0, -1, 0, false, false, 1, 16, 10, Dyes.dyeGreen, 1, Arrays.asList(new MaterialStack(Beryllium, 1), new MaterialStack(Potassium, 4), new MaterialStack(Nitrogen, 5), new MaterialStack(Magic, 6)), Arrays.asList(new TC_AspectStack(TC_Aspects.ALIENIS, 4), new TC_AspectStack(TC_Aspects.ITER, 4), new TC_AspectStack(TC_Aspects.PRAECANTATIO, 2))), - EnderEye(533, TextureSet.SET_SHINY, 1.0F, 16, 1, 1 | 4, 160, 250, 230, 0, "Endereye", 5, 10, -1, 0, false, false, 1, 2, 1, Dyes.dyeGreen, 2, Arrays.asList(new MaterialStack(EnderPearl, 1), new MaterialStack(Blaze, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.SENSUS, 4), new TC_AspectStack(TC_Aspects.ALIENIS, 4), new TC_AspectStack(TC_Aspects.ITER, 4), new TC_AspectStack(TC_Aspects.PRAECANTATIO, 3), new TC_AspectStack(TC_Aspects.IGNIS, 2))), - Flint(802, TextureSet.SET_FLINT, 2.5F, 64, 1, 1 | 64, 0, 32, 64, 0, "Flint", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray, 2, Arrays.asList(new MaterialStack(SiliconDioxide, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.TERRA, 1), new TC_AspectStack(TC_Aspects.INSTRUMENTUM, 1))), - Diatomite(948, TextureSet.SET_DULL, 1.0F, 0, 1, 1 | 8, 225, 225, 225, 0, "Diatomite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray, 2, Arrays.asList(new MaterialStack(Flint, 8), new MaterialStack(BandedIron, 1), new MaterialStack(Sapphire, 1))), - VolcanicAsh(940, TextureSet.SET_FLINT, 1.0F, 0, 0, 1, 60, 50, 50, 0, "Volcanic Ashes", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack, 2, Arrays.asList(new MaterialStack(Flint, 6), new MaterialStack(Iron, 1), new MaterialStack(Magnesium, 1))), - Niter(531, TextureSet.SET_FLINT, 1.0F, 0, 1, 1 | 4 | 8, 255, 200, 200, 0, "Niter", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePink, 2, Arrays.asList(new MaterialStack(Saltpeter, 1))), - Pyrotheum(843, TextureSet.SET_FIERY, 1.0F, 0, 1, 1, 255, 128, 0, 0, "Pyrotheum", 2, 62, -1, 0, false, false, 2, 3, 1, Dyes.dyeYellow, 2, Arrays.asList(new MaterialStack(Coal, 1), new MaterialStack(Redstone, 1), new MaterialStack(Blaze, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTATIO, 2), new TC_AspectStack(TC_Aspects.IGNIS, 1))), - HydratedCoal(818, TextureSet.SET_ROUGH, 1.0F, 0, 1, 1, 70, 70, 100, 0, "Hydrated Coal", 0, 0, -1, 0, false, false, 1, 9, 8, Dyes.dyeBlack, 2, Arrays.asList(new MaterialStack(Coal, 8), new MaterialStack(Water, 1))), - Apatite(530, TextureSet.SET_DIAMOND, 1.0F, 0, 1, 1 | 4 | 8, 200, 200, 255, 0, "Apatite", 0, 0, -1, 0, false, false, 2, 1, 1, Dyes.dyeCyan, 1, Arrays.asList(new MaterialStack(Calcium, 5), new MaterialStack(Phosphate, 3), new MaterialStack(Chlorine, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.MESSIS, 2))), - Alumite(-1, TextureSet.SET_METALLIC, 1.5F, 64, 0, 1 | 2 | 64, 255, 255, 255, 0, "Alumite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePink, 2, Arrays.asList(new MaterialStack(Aluminium, 5), new MaterialStack(Iron, 2), new MaterialStack(Obsidian, 2)), Arrays.asList(new TC_AspectStack(TC_Aspects.STRONTIO, 2))), - Manyullyn(-1, TextureSet.SET_METALLIC, 1.5F, 64, 0, 1 | 2 | 64, 255, 255, 255, 0, "Manyullyn", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePurple, 2, Arrays.asList(new MaterialStack(Cobalt, 1), new MaterialStack(Aredrite, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.STRONTIO, 2))), - ShadowIron(336, TextureSet.SET_METALLIC, 6.0F, 384, 2, 1 | 2 | 8 | 64, 120, 120, 120, 0, "Shadowiron", 0, 0, -1, 0, false, false, 3, 4, 3, Dyes.dyeBlack, 2, Arrays.asList(new MaterialStack(Iron, 3), new MaterialStack(Magic, 1))), - ShadowSteel(337, TextureSet.SET_METALLIC, 6.0F, 768, 2, 1 | 2 | 64, 90, 90, 90, 0, "Shadowsteel", 0, 0, -1, 1700, true, false, 4, 4, 3, Dyes.dyeBlack, 2, Arrays.asList(new MaterialStack(Steel, 3), new MaterialStack(Magic, 1))), - Steeleaf(339, TextureSet.SET_LEAF, 8.0F, 768, 3, 1 | 2 | 64 | 128, 50, 127, 50, 0, "Steeleaf", 5, 24, -1, 0, false, false, 4, 1, 1, Dyes.dyeGreen, 2, Arrays.asList(new MaterialStack(Steel, 1), new MaterialStack(Magic, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.HERBA, 2), new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.PRAECANTATIO, 1))), - Knightmetal(362, TextureSet.SET_METALLIC, 8.0F, 1024, 3, 1 | 2 | 64 | 128, 210, 240, 200, 0, "Knightmetal", 5, 24, -1, 0, false, false, 4, 1, 1, Dyes.dyeLime, 2, Arrays.asList(new MaterialStack(Steel, 2), new MaterialStack(Magic, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 1), new TC_AspectStack(TC_Aspects.METALLUM, 2))), - SterlingSilver(350, TextureSet.SET_SHINY, 13.0F, 128, 2, 1 | 2 | 64 | 128, 250, 220, 225, 0, "Sterling Silver", 0, 0, -1, 1700, true, false, 4, 1, 1, Dyes.dyeWhite, 2, Arrays.asList(new MaterialStack(Copper, 1), new MaterialStack(Silver, 4))), - RoseGold(351, TextureSet.SET_SHINY, 14.0F, 128, 2, 1 | 2 | 64 | 128, 255, 230, 30, 0, "Rose Gold", 0, 0, -1, 1600, true, false, 4, 1, 1, Dyes.dyeOrange, 2, Arrays.asList(new MaterialStack(Copper, 1), new MaterialStack(Gold, 4))), - BlackBronze(352, TextureSet.SET_DULL, 12.0F, 256, 2, 1 | 2 | 64 | 128, 100, 50, 125, 0, "Black Bronze", 0, 0, -1, 2000, true, false, 4, 1, 1, Dyes.dyePurple, 2, Arrays.asList(new MaterialStack(Gold, 1), new MaterialStack(Silver, 1), new MaterialStack(Copper, 3))), - BismuthBronze(353, TextureSet.SET_DULL, 8.0F, 256, 2, 1 | 2 | 64 | 128, 100, 125, 125, 0, "Bismuth Bronze", 0, 0, -1, 1100, true, false, 4, 1, 1, Dyes.dyeCyan, 2, Arrays.asList(new MaterialStack(Bismuth, 1), new MaterialStack(Zinc, 1), new MaterialStack(Copper, 3))), - BlackSteel(334, TextureSet.SET_METALLIC, 6.5F, 768, 2, 1 | 2 | 64, 100, 100, 100, 0, "Black Steel", 0, 0, -1, 1200, true, false, 4, 1, 1, Dyes.dyeBlack, 2, Arrays.asList(new MaterialStack(Nickel, 1), new MaterialStack(BlackBronze, 1), new MaterialStack(Steel, 3))), - RedSteel(348, TextureSet.SET_METALLIC, 7.0F, 896, 2, 1 | 2 | 64, 140, 100, 100, 0, "Red Steel", 0, 0, -1, 1300, true, false, 4, 1, 1, Dyes.dyeRed, 2, Arrays.asList(new MaterialStack(SterlingSilver, 1), new MaterialStack(BismuthBronze, 1), new MaterialStack(Steel, 2), new MaterialStack(BlackSteel, 4))), - BlueSteel(349, TextureSet.SET_METALLIC, 7.5F, 1024, 2, 1 | 2 | 64, 100, 100, 140, 0, "Blue Steel", 0, 0, -1, 1400, true, false, 4, 1, 1, Dyes.dyeBlue, 2, Arrays.asList(new MaterialStack(RoseGold, 1), new MaterialStack(Brass, 1), new MaterialStack(Steel, 2), new MaterialStack(BlackSteel, 4))), - DamascusSteel(335, TextureSet.SET_METALLIC, 8.0F, 1280, 2, 1 | 2 | 64, 110, 110, 110, 0, "Damascus Steel", 0, 0, 2000, 1500, true, false, 4, 1, 1, Dyes.dyeGray, 2, Arrays.asList(new MaterialStack(Steel, 1))), - TungstenSteel(316, TextureSet.SET_METALLIC, 10.0F, 5120, 4, 1 | 2 | 64 | 128, 100, 100, 160, 0, "Tungstensteel", 0, 0, -1, 3000, true, false, 4, 1, 1, Dyes.dyeBlue, 2, Arrays.asList(new MaterialStack(Steel, 1), new MaterialStack(Tungsten, 1))), - NitroCoalFuel(-1, TextureSet.SET_FLUID, 1.0F, 0, 2, 16, 50, 70, 50, 0, "Nitro-Coalfuel", 0, 48, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack, 0, Arrays.asList(new MaterialStack(Glyceryl, 1), new MaterialStack(CoalFuel, 4))), - NitroFuel(709, TextureSet.SET_FLUID, 1.0F, 0, 2, 16, 200, 255, 0, 0, "Nitro-Diesel", 0, 576, -1, 0, false, false, 1, 1, 1, Dyes.dyeLime, 0, Arrays.asList(new MaterialStack(Glyceryl, 1), new MaterialStack(Fuel, 4))), - AstralSilver(333, TextureSet.SET_SHINY, 10.0F, 64, 2, 1 | 2 | 8 | 64, 230, 230, 255, 0, "Astral Silver", 0, 0, -1, 0, false, false, 4, 3, 2, Dyes.dyeWhite, 2, Arrays.asList(new MaterialStack(Silver, 2), new MaterialStack(Magic, 1))), - Midasium(332, TextureSet.SET_SHINY, 12.0F, 64, 2, 1 | 2 | 8 | 64, 255, 200, 40, 0, "Midasium", 0, 0, -1, 0, false, false, 4, 3, 2, Dyes.dyeOrange, 2, Arrays.asList(new MaterialStack(Gold, 2), new MaterialStack(Magic, 1))), - Mithril(331, TextureSet.SET_SHINY, 14.0F, 64, 3, 1 | 2 | 8 | 64, 255, 255, 210, 0, "Mithril", 0, 0, -1, 0, false, false, 4, 3, 2, Dyes.dyeLightBlue, 2, Arrays.asList(new MaterialStack(Platinum, 2), new MaterialStack(Magic, 1))), - BlueAlloy(309, TextureSet.SET_DULL, 1.0F, 0, 0, 1 | 2, 100, 180, 255, 0, "Blue Alloy", 0, 0, -1, 0, false, false, 3, 5, 1, Dyes.dyeLightBlue, 2, Arrays.asList(new MaterialStack(Silver, 1), new MaterialStack(Nikolite, 4)), Arrays.asList(new TC_AspectStack(TC_Aspects.ELECTRUM, 3))), - RedAlloy(308, TextureSet.SET_DULL, 1.0F, 0, 0, 1 | 2, 200, 0, 0, 0, "Red Alloy", 0, 0, -1, 0, false, false, 3, 5, 1, Dyes.dyeRed, 2, Arrays.asList(new MaterialStack(Metal, 1), new MaterialStack(Redstone, 4)), Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 3))), - CobaltBrass(343, TextureSet.SET_METALLIC, 8.0F, 256, 2, 1 | 2 | 64 | 128, 180, 180, 160, 0, "Cobalt Brass", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeOrange, 2, Arrays.asList(new MaterialStack(Brass, 7), new MaterialStack(Aluminium, 1), new MaterialStack(Cobalt, 1))), - Phosphorus(534, TextureSet.SET_FLINT, 1.0F, 0, 2, 1 | 4 | 8 | 16, 255, 255, 0, 0, "Phosphorus", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeYellow, 2, Arrays.asList(new MaterialStack(Calcium, 3), new MaterialStack(Phosphate, 2))), - Basalt(844, TextureSet.SET_ROUGH, 1.0F, 0, 1, 1, 30, 20, 20, 0, "Basalt", 0, 0, -1, 0, false, false, 2, 1, 1, Dyes.dyeBlack, 2, Arrays.asList(new MaterialStack(Olivine, 1), new MaterialStack(Calcite, 3), new MaterialStack(Flint, 8), new MaterialStack(DarkAsh, 4)), Arrays.asList(new TC_AspectStack(TC_Aspects.TENEBRAE, 1))), - GarnetRed(527, TextureSet.SET_RUBY, 7.0F, 128, 2, 1 | 4 | 8 | 64, 200, 80, 80, 127, "Red Garnet", 0, 0, -1, 0, false, true, 4, 1, 1, Dyes.dyeRed, 2, Arrays.asList(new MaterialStack(Pyrope, 3), new MaterialStack(Almandine, 5), new MaterialStack(Spessartine, 8)), Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 3))), - GarnetYellow(528, TextureSet.SET_RUBY, 7.0F, 128, 2, 1 | 4 | 8 | 64, 200, 200, 80, 127, "Yellow Garnet", 0, 0, -1, 0, false, true, 4, 1, 1, Dyes.dyeYellow, 2, Arrays.asList(new MaterialStack(Andradite, 5), new MaterialStack(Grossular, 8), new MaterialStack(Uvarovite, 3)), Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 3))), - Marble(845, TextureSet.SET_FINE, 1.0F, 0, 1, 1, 200, 200, 200, 0, "Marble", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite, 2, Arrays.asList(new MaterialStack(Magnesium, 1), new MaterialStack(Calcite, 7)), Arrays.asList(new TC_AspectStack(TC_Aspects.PERFODIO, 1))), - Sugar(803, TextureSet.SET_FINE, 1.0F, 0, 1, 1, 250, 250, 250, 0, "Sugar", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite, 1, Arrays.asList(new MaterialStack(Carbon, 2), new MaterialStack(Water, 5), new MaterialStack(Oxygen, 25)), Arrays.asList(new TC_AspectStack(TC_Aspects.HERBA, 1), new TC_AspectStack(TC_Aspects.AQUA, 1), new TC_AspectStack(TC_Aspects.AER, 1))), - Thaumium(330, TextureSet.SET_METALLIC, 12.0F, 256, 3, 1 | 2 | 64 | 128, 150, 100, 200, 0, "Thaumium", 0, 0, -1, 0, false, false, 5, 2, 1, Dyes.dyePurple, 0, Arrays.asList(new MaterialStack(Iron, 1), new MaterialStack(Magic, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.PRAECANTATIO, 1))), - Vinteum(529, TextureSet.SET_EMERALD, 10.0F, 128, 3, 1 | 4 | 8 | 64, 100, 200, 255, 0, "Vinteum", 5, 32, -1, 0, false, false, 4, 1, 1, Dyes.dyeLightBlue, 2, Arrays.asList(new MaterialStack(Magic, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 2), new TC_AspectStack(TC_Aspects.PRAECANTATIO, 1))), - Vis(-1, TextureSet.SET_SHINY, 1.0F, 0, 3, 0, 128, 0, 255, 0, "Vis", 5, 32, -1, 0, false, false, 1, 1, 1, Dyes.dyePurple, 2, Arrays.asList(new MaterialStack(Magic, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.AURAM, 2), new TC_AspectStack(TC_Aspects.PRAECANTATIO, 1))), - Redrock(846, TextureSet.SET_ROUGH, 1.0F, 0, 1, 1, 255, 80, 50, 0, "Redrock", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeRed, 2, Arrays.asList(new MaterialStack(Calcite, 2), new MaterialStack(Flint, 1), new MaterialStack(Clay, 1))), - PotassiumFeldspar(847, TextureSet.SET_FINE, 1.0F, 0, 1, 1, 120, 40, 40, 0, "Potassium Feldspar", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyePink, 1, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Aluminium, 1), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 8))), - Biotite(848, TextureSet.SET_METALLIC, 1.0F, 0, 1, 1, 20, 30, 20, 0, "Biotite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeGray, 1, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Magnesium, 3), new MaterialStack(Aluminium, 3), new MaterialStack(Fluorine, 2), new MaterialStack(Silicon, 3), new MaterialStack(Oxygen, 10))), - GraniteBlack(849, TextureSet.SET_ROUGH, 4.0F, 64, 3, 1 | 64 | 128, 10, 10, 10, 0, "Black Granite", 0, 0, -1, 0, false, false, 0, 1, 1, Dyes.dyeBlack, 2, Arrays.asList(new MaterialStack(SiliconDioxide, 4), new MaterialStack(Biotite, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.TUTAMEN, 1))), - GraniteRed(850, TextureSet.SET_ROUGH, 4.0F, 64, 3, 1 | 64 | 128, 255, 0, 128, 0, "Red Granite", 0, 0, -1, 0, false, false, 0, 1, 1, Dyes.dyeMagenta, 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(PotassiumFeldspar, 1), new MaterialStack(Oxygen, 3)), Arrays.asList(new TC_AspectStack(TC_Aspects.TUTAMEN, 1))), - Chrysotile(912, TextureSet.SET_DULL, 1.0F, 0, 2, 1 | 8, 110, 140, 110, 0, "Chrysotile", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite, 2, Arrays.asList(new MaterialStack(Asbestos, 1))), - Realgar(555, TextureSet.SET_DULL, 1.0F, 0, 2, 1 | 8, 140, 100, 100, 0, "Realgar", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite, 2, Arrays.asList(new MaterialStack(Arsenic, 4), new MaterialStack(Sulfur, 4))), - VanadiumMagnetite(923, TextureSet.SET_METALLIC, 1.0F, 0, 2, 1 | 8, 35, 35, 60, 0, "Vanadium Magnetite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack, 2, Arrays.asList(new MaterialStack(Magnetite, 1), new MaterialStack(Vanadium, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1))), // Mixture of Fe3O4 and V2O5 - BasalticMineralSand(935, TextureSet.SET_SAND, 1.0F, 0, 1, 1 | 8, 40, 50, 40, 0, "Basaltic Mineral Sand", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack, 2, Arrays.asList(new MaterialStack(Magnetite, 1), new MaterialStack(Basalt, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1))), - GraniticMineralSand(936, TextureSet.SET_SAND, 1.0F, 0, 1, 1 | 8, 40, 60, 60, 0, "Granitic Mineral Sand", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack, 2, Arrays.asList(new MaterialStack(Magnetite, 1), new MaterialStack(GraniteBlack, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1))), - GarnetSand(938, TextureSet.SET_SAND, 1.0F, 0, 1, 1 | 8, 200, 100, 0, 0, "Garnet Sand", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeOrange, 2, Arrays.asList(new MaterialStack(GarnetRed, 1), new MaterialStack(GarnetYellow, 1))), - QuartzSand(939, TextureSet.SET_SAND, 1.0F, 0, 1, 1 | 8, 200, 200, 200, 0, "Quartz Sand", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeWhite, 2, Arrays.asList(new MaterialStack(CertusQuartz, 1), new MaterialStack(Quartzite, 1))), - Bastnasite(905, TextureSet.SET_FINE, 1.0F, 0, 2, 1 | 8, 200, 110, 45, 0, "Bastnasite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL, 1, Arrays.asList(new MaterialStack(Cerium, 1), new MaterialStack(Carbon, 1), new MaterialStack(Fluorine, 1), new MaterialStack(Oxygen, 3))), // (Ce, La, Y)CO3F - Pentlandite(909, TextureSet.SET_DULL, 1.0F, 0, 2, 1 | 8, 165, 150, 5, 0, "Pentlandite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL, 1, Arrays.asList(new MaterialStack(Nickel, 9), new MaterialStack(Sulfur, 8))), // (Fe,Ni)9S8 - Spodumene(920, TextureSet.SET_DULL, 1.0F, 0, 2, 1 | 8, 190, 170, 170, 0, "Spodumene", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL, 1, Arrays.asList(new MaterialStack(Lithium, 1), new MaterialStack(Aluminium, 1), new MaterialStack(Silicon, 2), new MaterialStack(Oxygen, 6))), // LiAl(SiO3)2 - Pollucite(919, TextureSet.SET_DULL, 1.0F, 0, 2, 1 | 8, 240, 210, 210, 0, "Pollucite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL, 1, Arrays.asList(new MaterialStack(Caesium, 2), new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 4), new MaterialStack(Water, 2), new MaterialStack(Oxygen, 12))), // (Cs,Na)2Al2Si4O12 2H2O (also a source of Rb) - Tantalite(921, TextureSet.SET_METALLIC, 1.0F, 0, 3, 1 | 8, 145, 80, 40, 0, "Tantalite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL, 1, Arrays.asList(new MaterialStack(Manganese, 1), new MaterialStack(Tantalum, 2), new MaterialStack(Oxygen, 6))), // (Fe, Mn)Ta2O6 (also source of Nb) - Lepidolite(907, TextureSet.SET_FINE, 1.0F, 0, 2, 1 | 8, 240, 50, 140, 0, "Lepidolite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL, 1, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Lithium, 3), new MaterialStack(Aluminium, 4), new MaterialStack(Fluorine, 2), new MaterialStack(Oxygen, 10))), // K(Li,Al,Rb)3(Al,Si)4O10(F,OH)2 - Glauconite(933, TextureSet.SET_DULL, 1.0F, 0, 2, 1 | 8, 130, 180, 60, 0, "Glauconite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL, 1, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Magnesium, 2), new MaterialStack(Aluminium, 4), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 12))), // (K,Na)(Fe3+,Al,Mg)2(Si,Al)4O10(OH)2 - GlauconiteSand(949, TextureSet.SET_DULL, 1.0F, 0, 2, 1 | 8, 130, 180, 60, 0, "Glauconite Sand", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL, 1, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Magnesium, 2), new MaterialStack(Aluminium, 4), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 12))), // (K,Na)(Fe3+,Al,Mg)2(Si,Al)4O10(OH)2 - Vermiculite(932, TextureSet.SET_METALLIC, 1.0F, 0, 2, 1 | 8, 200, 180, 15, 0, "Vermiculite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL, 1, Arrays.asList(new MaterialStack(Iron, 3), new MaterialStack(Aluminium, 4), new MaterialStack(Silicon, 4), new MaterialStack(Hydrogen, 2), new MaterialStack(Water, 4), new MaterialStack(Oxygen, 12))), // (Mg+2, Fe+2, Fe+3)3 [(AlSi)4O10] (OH)2 4H2O) - Bentonite(927, TextureSet.SET_ROUGH, 1.0F, 0, 2, 1 | 8, 245, 215, 210, 0, "Bentonite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL, 1, Arrays.asList(new MaterialStack(Sodium, 1), new MaterialStack(Magnesium, 6), new MaterialStack(Silicon, 12), new MaterialStack(Hydrogen, 6), new MaterialStack(Water, 5), new MaterialStack(Oxygen, 36))), // (Na,Ca)0.33(Al,Mg)2(Si4O10)(OH)2 nH2O - FullersEarth(928, TextureSet.SET_FINE, 1.0F, 0, 2, 1 | 8, 160, 160, 120, 0, "Fullers Earth", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL, 1, Arrays.asList(new MaterialStack(Magnesium, 1), new MaterialStack(Silicon, 4), new MaterialStack(Hydrogen, 1), new MaterialStack(Water, 4), new MaterialStack(Oxygen, 11))), // (Mg,Al)2Si4O10(OH) 4(H2O) - Pitchblende(873, TextureSet.SET_DULL, 1.0F, 0, 3, 1 | 8, 200, 210, 0, 0, "Pitchblende", 0, 0, -1, 0, false, false, 5, 1, 1, Dyes.dyeYellow, 2, Arrays.asList(new MaterialStack(Uraninite, 3), new MaterialStack(Thorium, 1), new MaterialStack(Lead, 1))), - Monazite(520, TextureSet.SET_DIAMOND, 1.0F, 0, 1, 1 | 4 | 8, 50, 70, 50, 0, "Monazite", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeGreen, 1, Arrays.asList(new MaterialStack(RareEarth, 1), new MaterialStack(Phosphate, 1))), // Wikipedia: (Ce, La, Nd, Th, Sm, Gd)PO4 Monazite also smelt-extract to Helium, it is brown like the rare earth Item Monazite sand deposits are inevitably of the monazite-(Ce) composition. Typically, the lanthanides in such monazites contain about 45�48% cerium, about 24% lanthanum, about 17% neodymium, about 5% praseodymium, and minor quantities of samarium, gadolinium, and yttrium. Europium concentrations tend to be low, about 0.05% Thorium content of monazite is variable and sometimes can be up to 20�30% - Malachite(871, TextureSet.SET_DULL, 1.0F, 0, 1, 1 | 8, 5, 95, 5, 0, "Malachite", 0, 0, -1, 0, false, false, 3, 1, 1, Dyes.dyeGreen, 1, Arrays.asList(new MaterialStack(Copper, 2), new MaterialStack(Carbon, 1), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 5))), // Cu2CO3(OH)2 - Mirabilite(900, TextureSet.SET_DULL, 1.0F, 0, 2, 1 | 8, 240, 250, 210, 0, "Mirabilite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL, 1, Arrays.asList(new MaterialStack(Sodium, 2), new MaterialStack(Sulfur, 1), new MaterialStack(Water, 10), new MaterialStack(Oxygen, 4))), // Na2SO4 10H2O - Mica(901, TextureSet.SET_FINE, 1.0F, 0, 1, 1 | 8, 195, 195, 205, 0, "Mica", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL, 1, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Aluminium, 3), new MaterialStack(Silicon, 3), new MaterialStack(Fluorine, 2), new MaterialStack(Oxygen, 10))), // KAl2(AlSi3O10)(F,OH)2 - Trona(903, TextureSet.SET_METALLIC, 1.0F, 0, 1, 1 | 8, 135, 135, 95, 0, "Trona", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL, 1, Arrays.asList(new MaterialStack(Sodium, 3), new MaterialStack(Carbon, 2), new MaterialStack(Hydrogen, 1), new MaterialStack(Water, 2), new MaterialStack(Oxygen, 6))), // Na3(CO3)(HCO3) 2H2O - Barite(904, TextureSet.SET_DULL, 1.0F, 0, 2, 1 | 8, 230, 235, 255, 0, "Barite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL, 1, Arrays.asList(new MaterialStack(Barium, 1), new MaterialStack(Sulfur, 1), new MaterialStack(Oxygen, 4))), - Gypsum(934, TextureSet.SET_DULL, 1.0F, 0, 1, 1 | 8, 230, 230, 250, 0, "Gypsum", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL, 1, Arrays.asList(new MaterialStack(Calcium, 1), new MaterialStack(Sulfur, 1), new MaterialStack(Water, 2), new MaterialStack(Oxygen, 4))), // CaSO4 2H2O - Alunite(911, TextureSet.SET_METALLIC, 1.0F, 0, 2, 1 | 8, 225, 180, 65, 0, "Alunite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL, 1, Arrays.asList(new MaterialStack(Potassium, 1), new MaterialStack(Aluminium, 3), new MaterialStack(Silicon, 2), new MaterialStack(Hydrogen, 6), new MaterialStack(Oxygen, 14))), // KAl3(SO4)2(OH)6 - Dolomite(914, TextureSet.SET_FLINT, 1.0F, 0, 1, 1 | 8, 225, 205, 205, 0, "Dolomite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL, 1, Arrays.asList(new MaterialStack(Calcium, 1), new MaterialStack(Magnesium, 1), new MaterialStack(Carbon, 2), new MaterialStack(Oxygen, 6))), // CaMg(CO3)2 - Wollastonite(915, TextureSet.SET_DULL, 1.0F, 0, 2, 1 | 8, 240, 240, 240, 0, "Wollastonite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL, 1, Arrays.asList(new MaterialStack(Calcium, 1), new MaterialStack(Silicon, 1), new MaterialStack(Oxygen, 3))), // CaSiO3 - Zeolite(916, TextureSet.SET_DULL, 1.0F, 0, 2, 1 | 8, 240, 230, 230, 0, "Zeolite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL, 1, Arrays.asList(new MaterialStack(Sodium, 1), new MaterialStack(Calcium, 4), new MaterialStack(Silicon, 27), new MaterialStack(Aluminium, 9), new MaterialStack(Water, 28), new MaterialStack(Oxygen, 72))), // NaCa4(Si27Al9)O72 28(H2O) - Kyanite(924, TextureSet.SET_FLINT, 1.0F, 0, 2, 1 | 8, 110, 110, 250, 0, "Kyanite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL, 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 1), new MaterialStack(Oxygen, 5))), // Al2SiO5 - Kaolinite(929, TextureSet.SET_DULL, 1.0F, 0, 2, 1 | 8, 245, 235, 235, 0, "Kaolinite", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL, 1, Arrays.asList(new MaterialStack(Aluminium, 2), new MaterialStack(Silicon, 2), new MaterialStack(Hydrogen, 4), new MaterialStack(Oxygen, 9))), // Al2Si2O5(OH)4 - Talc(902, TextureSet.SET_DULL, 1.0F, 0, 2, 1 | 8, 90, 180, 90, 0, "Talc", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL, 1, Arrays.asList(new MaterialStack(Magnesium, 3), new MaterialStack(Silicon, 4), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 12))), // H2Mg3(SiO3)4 - Soapstone(877, TextureSet.SET_DULL, 1.0F, 0, 1, 1 | 8, 95, 145, 95, 0, "Soapstone", 0, 0, -1, 0, false, false, 1, 1, 1, Dyes._NULL, 1, Arrays.asList(new MaterialStack(Magnesium, 3), new MaterialStack(Silicon, 4), new MaterialStack(Hydrogen, 2), new MaterialStack(Oxygen, 12))), // H2Mg3(SiO3)4 - Concrete(947, TextureSet.SET_ROUGH, 1.0F, 0, 1, 1 | 16, 100, 100, 100, 0, "Concrete", 0, 0, 300, 0, false, false, 0, 1, 1, Dyes.dyeGray, 0, Arrays.asList(new MaterialStack(Stone, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.TERRA, 1))), - IronMagnetic(354, TextureSet.SET_MAGNETIC, 6.0F, 256, 2, 1 | 2 | 64 | 128, 200, 200, 200, 0, "Magnetic Iron", 0, 0, -1, 0, false, false, 4, 51, 50, Dyes.dyeGray, 1, Arrays.asList(new MaterialStack(Iron, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.MAGNETO, 1))), - SteelMagnetic(355, TextureSet.SET_MAGNETIC, 6.0F, 512, 2, 1 | 2 | 64 | 128, 128, 128, 128, 0, "Magnetic Steel", 0, 0, 1000, 1000, true, false, 4, 51, 50, Dyes.dyeGray, 1, Arrays.asList(new MaterialStack(Steel, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 1), new TC_AspectStack(TC_Aspects.ORDO, 1), new TC_AspectStack(TC_Aspects.MAGNETO, 1))), - NeodymiumMagnetic(356, TextureSet.SET_MAGNETIC, 7.0F, 512, 2, 1 | 2 | 64 | 128, 100, 100, 100, 0, "Magnetic Neodymium", 0, 0, 1297, 1297, true, false, 4, 51, 50, Dyes.dyeGray, 1, Arrays.asList(new MaterialStack(Neodymium, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 1), new TC_AspectStack(TC_Aspects.MAGNETO, 3))), - - /** - * Materials which are renamed automatically - */ - @Deprecated IridiumAndSodiumOxide(IridiumSodiumOxide, false), - @Deprecated Palygorskite(FullersEarth, false), - @Deprecated Adamantine(Adamantium, true), - @Deprecated FzDarkIron(DarkIron, true), - @Deprecated FZDarkIron(DarkIron, true), - @Deprecated Ashes(Ash, false), - @Deprecated DarkAshes(DarkAsh, false), - @Deprecated Abyssal(Basalt, false), - @Deprecated Adamant(Adamantium, true), - @Deprecated AluminumBrass(AluminiumBrass, false), - @Deprecated Aluminum(Aluminium, false), - @Deprecated NaturalAluminum(Aluminium, false), - @Deprecated NaturalAluminium(Aluminium, false), - @Deprecated Americum(Americium, false), - @Deprecated Beryl(Emerald, false), // 30,200,200 - @Deprecated BlackGranite(GraniteBlack, false), - @Deprecated CalciumCarbonate(Calcite, false), - @Deprecated CreosoteOil(Creosote, false), - @Deprecated Chromium(Chrome, false), - @Deprecated Diesel(Fuel, false), - @Deprecated Enderpearl(EnderPearl, false), - @Deprecated Endereye(EnderEye, false), - @Deprecated EyeOfEnder(EnderEye, false), - @Deprecated Eyeofender(EnderEye, false), - @Deprecated Flour(Wheat, false), - @Deprecated Meat(MeatRaw, false), - @Deprecated Garnet(GarnetRed, true), - @Deprecated Granite(GraniteBlack, false), - @Deprecated Goethite(BrownLimonite, false), - @Deprecated Kalium(Potassium, false), - @Deprecated Lapislazuli(Lapis, false), - @Deprecated LapisLazuli(Lapis, false), - @Deprecated Monazit(Monazite, false), - @Deprecated Natrium(Sodium, false), - @Deprecated Mythril(Mithril, false), - @Deprecated NitroDiesel(NitroFuel, false), - @Deprecated Naquadriah(Naquadria, false), - @Deprecated Obby(Obsidian, false), - @Deprecated Peridot(Olivine, true), - @Deprecated Phosphorite(Phosphorus, true), - @Deprecated Quarried(Marble, false), - @Deprecated Quicksilver(Mercury, true), - @Deprecated QuickSilver(Mercury, false), - @Deprecated RedRock(Redrock, false), - @Deprecated RefinedIron(Iron, false), - @Deprecated RedGranite(GraniteRed, false), - @Deprecated Sheldonite(Cooperite, false), - @Deprecated Soulsand(SoulSand, false), - @Deprecated SilverLead(Galena, false), - @Deprecated Titan(Titanium, false), - @Deprecated Uran(Uranium, false), - @Deprecated Wolframite(Tungstate, false), - @Deprecated Wolframium(Tungsten, false), - @Deprecated Wolfram(Tungsten, false), - @Deprecated WrougtIron(WroughtIron, false); - - /** - * List of all Materials. - */ - public static final Collection VALUES = new HashSet(Arrays.asList(values())); - public static volatile int VERSION = 508; - - static { - SubTag.ELECTROMAGNETIC_SEPERATION_NEODYMIUM.addTo(Bastnasite, Monazite, Forcicium, Forcillium); - SubTag.ELECTROMAGNETIC_SEPERATION_GOLD.addTo(Magnetite, VanadiumMagnetite, BasalticMineralSand, GraniticMineralSand); - SubTag.ELECTROMAGNETIC_SEPERATION_IRON.addTo(YellowLimonite, BrownLimonite, Pyrite, BandedIron, Nickel, Vermiculite, Glauconite, GlauconiteSand, Pentlandite, Tin, Antimony, Ilmenite, Manganese, Chrome, Chromite, Andradite); - SubTag.BLASTFURNACE_CALCITE_DOUBLE.addTo(Pyrite, YellowLimonite, BasalticMineralSand, GraniticMineralSand); - SubTag.BLASTFURNACE_CALCITE_TRIPLE.addTo(Iron, PigIron, DeepIron, ShadowIron, WroughtIron, MeteoricIron, BrownLimonite); - SubTag.WASHING_MERCURY.addTo(Gold, Silver, Osmium, Mithril, Platinum, Midasium, Cooperite, AstralSilver); - SubTag.WASHING_SODIUMPERSULFATE.addTo(Zinc, Nickel, Copper, Cobalt, Cobaltite, Tetrahedrite); - SubTag.METAL.addTo(AnyIron, AnyCopper, AnyBronze, Metal, Aluminium, Americium, Antimony, Beryllium, Bismuth, Caesium, Cerium, Chrome, Cobalt, Copper, Dysprosium, Erbium, Europium, Gadolinium, Gallium, Gold, Holmium, Indium, Iridium, Iron, Lanthanum, Lead, Lutetium, Magnesium, Manganese, Mercury, Niobium, Molybdenum, Neodymium, Neutronium, Nickel, Osmium, Palladium, Platinum, Plutonium, Plutonium241, Praseodymium, Promethium, Rubidium, Samarium, Scandium, Silicon, Silver, Tantalum, Tellurium, Terbium, Thorium, Thulium, Tin, Titanium, Tungsten, Uranium, Uranium235, Vanadium, Ytterbium, Yttrium, Zinc, Satinspar, Selenite, Microcline, Serpentine, Sylvite, Signalum, Lumium, PhasedIron, PhasedGold, DarkSteel, Terrasteel, TinAlloy, ConductiveIron, ElectricalSteel, EnergeticAlloy, VibrantAlloy, PulsatingIron, Manasteel, DarkThaumium, ElvenElementium, EnrichedCopper, DiamondCopper, Adamantium, Amordrine, Angmallen, Ardite, Aredrite, Atlarus, Blutonium, Carmot, Celenegil, Ceruclase, DarkIron, Desh, Desichalkos, Duranium, ElectrumFlux, Enderium, EnderiumBase, Eximite, FierySteel, Force, Haderoth, Hematite, Hepatizon, HSLA, Infuscolium, InfusedGold, Inolashite, Mercassium, MeteoricIron, MeteoricSteel, Naquadah, NaquadahAlloy, NaquadahEnriched, Naquadria, ObsidianFlux, Orichalcum, Osmonium, Oureclase, Phoenixite, Prometheum, RefinedGlowstone, RefinedObsidian, Sanguinite, Starconium, Tartarite, Thyrium, Tritanium, Vulcanite, Vyroxeres, Yellorium, Zectium, AluminiumBrass, Osmiridium, Sunnarium, AnnealedCopper, BatteryAlloy, Brass, Bronze, ChromiumDioxide, Cupronickel, DeepIron, Electrum, Invar, IronCompressed, Kanthal, Magnalium, Nichrome, NiobiumNitride, NiobiumTitanium, PigIron, SolderingAlloy, StainlessSteel, Steel, Ultimet, VanadiumGallium, WroughtIron, YttriumBariumCuprate, IronWood, Alumite, Manyullyn, ShadowIron, ShadowSteel, Steeleaf, SterlingSilver, RoseGold, BlackBronze, BismuthBronze, BlackSteel, RedSteel, BlueSteel, DamascusSteel, TungstenSteel, AstralSilver, Midasium, Mithril, BlueAlloy, RedAlloy, CobaltBrass, Thaumium, IronMagnetic, SteelMagnetic, NeodymiumMagnetic, Knightmetal, Reinforced, Galgadorian, EnhancedGalgadorian, Draconium, DraconiumAwakened); - - SubTag.FOOD.addTo(MeatRaw, MeatCooked, Ice, Water, Salt, Chili, Cocoa, Cheese, Coffee, Chocolate, Milk, Honey, FryingOilHot, FishOil, SeedOil, SeedOilLin, SeedOilHemp, Wheat, Sugar, FreshWater); - - Wood.add(SubTag.WOOD, SubTag.FLAMMABLE, SubTag.NO_SMELTING, SubTag.NO_SMASHING); - WoodSealed.add(SubTag.WOOD, SubTag.FLAMMABLE, SubTag.NO_SMELTING, SubTag.NO_SMASHING, SubTag.NO_WORKING); - Peanutwood.add(SubTag.WOOD, SubTag.FLAMMABLE, SubTag.NO_SMELTING, SubTag.NO_SMASHING); - LiveRoot.add(SubTag.WOOD, SubTag.FLAMMABLE, SubTag.NO_SMELTING, SubTag.NO_SMASHING, SubTag.MAGICAL, SubTag.MORTAR_GRINDABLE); - IronWood.add(SubTag.WOOD, SubTag.FLAMMABLE, SubTag.MAGICAL, SubTag.MORTAR_GRINDABLE); - Steeleaf.add(SubTag.WOOD, SubTag.FLAMMABLE, SubTag.MAGICAL, SubTag.MORTAR_GRINDABLE, SubTag.NO_SMELTING); - - MeatRaw.add(SubTag.NO_SMASHING); - MeatCooked.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING); - Snow.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.NO_RECYCLING); - Ice.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.NO_RECYCLING); - Water.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.NO_RECYCLING); - Silicon.add(SubTag.NO_RECYCLING); - Sulfur.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.FLAMMABLE); - Saltpeter.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.FLAMMABLE); - Graphite.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.FLAMMABLE, SubTag.NO_SMELTING); - - Wheat.add(SubTag.FLAMMABLE, SubTag.MORTAR_GRINDABLE); - Paper.add(SubTag.FLAMMABLE, SubTag.NO_SMELTING, SubTag.NO_SMASHING, SubTag.MORTAR_GRINDABLE, SubTag.PAPER); - Coal.add(SubTag.FLAMMABLE, SubTag.NO_SMELTING, SubTag.NO_SMASHING, SubTag.MORTAR_GRINDABLE); - Charcoal.add(SubTag.FLAMMABLE, SubTag.NO_SMELTING, SubTag.NO_SMASHING, SubTag.MORTAR_GRINDABLE); - Lignite.add(SubTag.FLAMMABLE, SubTag.NO_SMELTING, SubTag.NO_SMASHING, SubTag.MORTAR_GRINDABLE); - - Rubber.add(SubTag.FLAMMABLE, SubTag.NO_SMASHING, SubTag.BOUNCY, SubTag.STRETCHY); - Plastic.add(SubTag.FLAMMABLE, SubTag.NO_SMASHING, SubTag.BOUNCY); - - TNT.add(SubTag.FLAMMABLE, SubTag.EXPLOSIVE, SubTag.NO_SMELTING, SubTag.NO_SMASHING); - Gunpowder.add(SubTag.FLAMMABLE, SubTag.EXPLOSIVE, SubTag.NO_SMELTING, SubTag.NO_SMASHING); - Glyceryl.add(SubTag.FLAMMABLE, SubTag.EXPLOSIVE, SubTag.NO_SMELTING, SubTag.NO_SMASHING); - NitroCoalFuel.add(SubTag.FLAMMABLE, SubTag.EXPLOSIVE, SubTag.NO_SMELTING, SubTag.NO_SMASHING); - NitroFuel.add(SubTag.FLAMMABLE, SubTag.EXPLOSIVE, SubTag.NO_SMELTING, SubTag.NO_SMASHING); - NitroCarbon.add(SubTag.FLAMMABLE, SubTag.EXPLOSIVE, SubTag.NO_SMELTING, SubTag.NO_SMASHING); - - Lead.add(SubTag.MORTAR_GRINDABLE, SubTag.SOLDERING_MATERIAL, SubTag.SOLDERING_MATERIAL_BAD); - Tin.add(SubTag.MORTAR_GRINDABLE, SubTag.SOLDERING_MATERIAL); - SolderingAlloy.add(SubTag.MORTAR_GRINDABLE, SubTag.SOLDERING_MATERIAL, SubTag.SOLDERING_MATERIAL_GOOD); - - Cheese.add(SubTag.SMELTING_TO_FLUID); - Sugar.add(SubTag.SMELTING_TO_FLUID); - - Concrete.add(SubTag.STONE, SubTag.NO_SMASHING, SubTag.SMELTING_TO_FLUID); - ConstructionFoam.add(SubTag.STONE, SubTag.NO_SMASHING, SubTag.EXPLOSIVE, SubTag.NO_SMELTING); - Redstone.add(SubTag.STONE, SubTag.NO_SMASHING, SubTag.UNBURNABLE, SubTag.SMELTING_TO_FLUID, SubTag.PULVERIZING_CINNABAR); - Glowstone.add(SubTag.STONE, SubTag.NO_SMASHING, SubTag.UNBURNABLE, SubTag.SMELTING_TO_FLUID); - Nikolite.add(SubTag.STONE, SubTag.NO_SMASHING, SubTag.UNBURNABLE, SubTag.SMELTING_TO_FLUID); - Teslatite.add(SubTag.STONE, SubTag.NO_SMASHING, SubTag.UNBURNABLE, SubTag.SMELTING_TO_FLUID); - Netherrack.add(SubTag.STONE, SubTag.NO_SMASHING, SubTag.UNBURNABLE, SubTag.FLAMMABLE); - Stone.add(SubTag.STONE, SubTag.NO_SMASHING, SubTag.NO_RECYCLING); - Brick.add(SubTag.STONE, SubTag.NO_SMASHING); - NetherBrick.add(SubTag.STONE, SubTag.NO_SMASHING); - Endstone.add(SubTag.STONE, SubTag.NO_SMASHING); - Marble.add(SubTag.STONE, SubTag.NO_SMASHING); - Basalt.add(SubTag.STONE, SubTag.NO_SMASHING); - Redrock.add(SubTag.STONE, SubTag.NO_SMASHING); - Obsidian.add(SubTag.STONE, SubTag.NO_SMASHING); - Flint.add(SubTag.STONE, SubTag.NO_SMASHING, SubTag.MORTAR_GRINDABLE); - GraniteRed.add(SubTag.STONE, SubTag.NO_SMASHING); - GraniteBlack.add(SubTag.STONE, SubTag.NO_SMASHING); - Salt.add(SubTag.STONE, SubTag.NO_SMASHING); - RockSalt.add(SubTag.STONE, SubTag.NO_SMASHING); - - Sand.add(SubTag.NO_RECYCLING); - - Gold.add(SubTag.MORTAR_GRINDABLE); - Silver.add(SubTag.MORTAR_GRINDABLE); - Iron.add(SubTag.MORTAR_GRINDABLE); - IronMagnetic.add(SubTag.MORTAR_GRINDABLE); - HSLA.add(SubTag.MORTAR_GRINDABLE); - Steel.add(SubTag.MORTAR_GRINDABLE); - SteelMagnetic.add(SubTag.MORTAR_GRINDABLE); - Zinc.add(SubTag.MORTAR_GRINDABLE); - Antimony.add(SubTag.MORTAR_GRINDABLE); - Copper.add(SubTag.MORTAR_GRINDABLE); - AnnealedCopper.add(SubTag.MORTAR_GRINDABLE); - Bronze.add(SubTag.MORTAR_GRINDABLE); - Nickel.add(SubTag.MORTAR_GRINDABLE); - Invar.add(SubTag.MORTAR_GRINDABLE); - Brass.add(SubTag.MORTAR_GRINDABLE); - WroughtIron.add(SubTag.MORTAR_GRINDABLE); - Electrum.add(SubTag.MORTAR_GRINDABLE); - Clay.add(SubTag.MORTAR_GRINDABLE); - - Glass.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_RECYCLING, SubTag.SMELTING_TO_FLUID); - Diamond.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.FLAMMABLE); - Emerald.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); - Amethyst.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); - Tanzanite.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); - Topaz.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); - BlueTopaz.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); - Amber.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); - GreenSapphire.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); - Sapphire.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); - Ruby.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); - FoolsRuby.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); - Opal.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); - Olivine.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); - Jasper.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); - GarnetRed.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); - GarnetYellow.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); - Mimichite.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); - CrystalFlux.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); - Crystal.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); - Niter.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING); - Apatite.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE); - Lapis.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE); - Sodalite.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE); - Lazurite.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE); - Monazite.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE); - Quartzite.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE, SubTag.QUARTZ); - Quartz.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE, SubTag.QUARTZ); - SiliconDioxide.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE, SubTag.QUARTZ); - Dilithium.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE, SubTag.QUARTZ); - NetherQuartz.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE, SubTag.QUARTZ); - CertusQuartz.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE, SubTag.QUARTZ); - Fluix.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE, SubTag.QUARTZ); - //ChargedCertusQuartz .add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.QUARTZ); - Phosphorus.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.FLAMMABLE, SubTag.EXPLOSIVE); - Phosphate.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.FLAMMABLE, SubTag.EXPLOSIVE); - InfusedAir.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.MAGICAL, SubTag.UNBURNABLE); - InfusedFire.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.MAGICAL, SubTag.UNBURNABLE); - InfusedEarth.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.MAGICAL, SubTag.UNBURNABLE); - InfusedWater.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.MAGICAL, SubTag.UNBURNABLE); - InfusedEntropy.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.MAGICAL, SubTag.UNBURNABLE); - InfusedOrder.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.MAGICAL, SubTag.UNBURNABLE); - InfusedVis.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.MAGICAL, SubTag.UNBURNABLE); - InfusedDull.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.MAGICAL, SubTag.UNBURNABLE); - Vinteum.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.MAGICAL, SubTag.UNBURNABLE); - NetherStar.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.MAGICAL, SubTag.UNBURNABLE); - EnderPearl.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.MAGICAL, SubTag.PEARL); - EnderEye.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.MAGICAL, SubTag.PEARL); - Firestone.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE, SubTag.MAGICAL, SubTag.QUARTZ, SubTag.UNBURNABLE, SubTag.BURNING); - Forcicium.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE, SubTag.MAGICAL); - Forcillium.add(SubTag.CRYSTAL, SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.CRYSTALLISABLE, SubTag.MAGICAL); - Force.add(SubTag.CRYSTAL, SubTag.MAGICAL, SubTag.UNBURNABLE); - Magic.add(SubTag.CRYSTAL, SubTag.MAGICAL, SubTag.UNBURNABLE); - - Primitive.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING); - Basic.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING); - Good.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING); - Advanced.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING); - Data.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING); - Elite.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING); - Master.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING); - Ultimate.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING); - Superconductor.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING); - Infinite.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING); - - Blaze.add(SubTag.MAGICAL, SubTag.NO_SMELTING, SubTag.SMELTING_TO_FLUID, SubTag.MORTAR_GRINDABLE, SubTag.UNBURNABLE, SubTag.BURNING); - FierySteel.add(SubTag.MAGICAL, SubTag.UNBURNABLE, SubTag.BURNING); - ElvenElementium.add(SubTag.MAGICAL); - DarkThaumium.add(SubTag.MAGICAL); - Thaumium.add(SubTag.MAGICAL); - Enderium.add(SubTag.MAGICAL); - AstralSilver.add(SubTag.MAGICAL); - Midasium.add(SubTag.MAGICAL); - Mithril.add(SubTag.MAGICAL); - - Iron.mOreReRegistrations.add(AnyIron); - PigIron.mOreReRegistrations.add(AnyIron); - WroughtIron.mOreReRegistrations.add(AnyIron); - - Copper.mOreReRegistrations.add(AnyCopper); - AnnealedCopper.mOreReRegistrations.add(AnyCopper); - - Bronze.mOreReRegistrations.add(AnyBronze); - - Peanutwood.setMaceratingInto(Wood); - WoodSealed.setMaceratingInto(Wood); - NetherBrick.setMaceratingInto(Netherrack); - - NeodymiumMagnetic.setSmeltingInto(Neodymium).setMaceratingInto(Neodymium).setArcSmeltingInto(Neodymium); - SteelMagnetic.setSmeltingInto(Steel).setMaceratingInto(Steel).setArcSmeltingInto(Steel); - Iron.setSmeltingInto(Iron).setMaceratingInto(Iron).setArcSmeltingInto(WroughtIron); - AnyIron.setSmeltingInto(Iron).setMaceratingInto(Iron).setArcSmeltingInto(WroughtIron); - PigIron.setSmeltingInto(Iron).setMaceratingInto(Iron).setArcSmeltingInto(WroughtIron); - WroughtIron.setSmeltingInto(Iron).setMaceratingInto(Iron).setArcSmeltingInto(WroughtIron); - IronMagnetic.setSmeltingInto(Iron).setMaceratingInto(Iron).setArcSmeltingInto(WroughtIron); - Copper.setSmeltingInto(Copper).setMaceratingInto(Copper).setArcSmeltingInto(AnnealedCopper); - AnyCopper.setSmeltingInto(Copper).setMaceratingInto(Copper).setArcSmeltingInto(AnnealedCopper); - AnnealedCopper.setSmeltingInto(Copper).setMaceratingInto(Copper).setArcSmeltingInto(AnnealedCopper); - Netherrack.setSmeltingInto(NetherBrick); - MeatRaw.setSmeltingInto(MeatCooked); - Sand.setSmeltingInto(Glass); - Ice.setSmeltingInto(Water); - Snow.setSmeltingInto(Water); - - Mercury.add(SubTag.SMELTING_TO_GEM); - Cinnabar.setDirectSmelting(Mercury).add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT).add(SubTag.SMELTING_TO_GEM); - Celestine.setDirectSmelting(Strontium).add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT); - Tetrahedrite.setDirectSmelting(Copper).add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT); - Chalcopyrite.setDirectSmelting(Copper).add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT); - Malachite.setDirectSmelting(Copper).add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT); - Pentlandite.setDirectSmelting(Nickel).add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT); - Sphalerite.setDirectSmelting(Zinc).add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT); - Pyrite.setDirectSmelting(Iron).add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT); - BasalticMineralSand.setDirectSmelting(Iron).add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT); - GraniticMineralSand.setDirectSmelting(Iron).add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT); - YellowLimonite.setDirectSmelting(Iron).add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT); - BrownLimonite.setDirectSmelting(Iron); - BandedIron.setDirectSmelting(Iron); - Cassiterite.setDirectSmelting(Tin); - CassiteriteSand.setDirectSmelting(Tin); - Chromite.setDirectSmelting(Chrome); - Garnierite.setDirectSmelting(Nickel); - Cobaltite.setDirectSmelting(Cobalt); - Stibnite.setDirectSmelting(Antimony); - Cooperite.setDirectSmelting(Platinum); - Pyrolusite.setDirectSmelting(Manganese); - Magnesite.setDirectSmelting(Magnesium); - Molybdenite.setDirectSmelting(Molybdenum); - - Amber.setOreMultiplier(2).setSmeltingMultiplier(2); - InfusedAir.setOreMultiplier(2).setSmeltingMultiplier(2); - InfusedFire.setOreMultiplier(2).setSmeltingMultiplier(2); - InfusedEarth.setOreMultiplier(2).setSmeltingMultiplier(2); - InfusedWater.setOreMultiplier(2).setSmeltingMultiplier(2); - InfusedEntropy.setOreMultiplier(2).setSmeltingMultiplier(2); - InfusedOrder.setOreMultiplier(2).setSmeltingMultiplier(2); - InfusedVis.setOreMultiplier(2).setSmeltingMultiplier(2); - InfusedDull.setOreMultiplier(2).setSmeltingMultiplier(2); - Salt.setOreMultiplier(2).setSmeltingMultiplier(2); - RockSalt.setOreMultiplier(2).setSmeltingMultiplier(2); - Scheelite.setOreMultiplier(2).setSmeltingMultiplier(2); - Tungstate.setOreMultiplier(2).setSmeltingMultiplier(2); - Cassiterite.setOreMultiplier(2).setSmeltingMultiplier(2); - CassiteriteSand.setOreMultiplier(2).setSmeltingMultiplier(2); - NetherQuartz.setOreMultiplier(2).setSmeltingMultiplier(2); - CertusQuartz.setOreMultiplier(2).setSmeltingMultiplier(2); - //ChargedCertusQuartz .setOreMultiplier( 2).setSmeltingMultiplier( 2); - Phosphorus.setOreMultiplier(3).setSmeltingMultiplier(3); - Saltpeter.setOreMultiplier(4).setSmeltingMultiplier(4); - Apatite.setOreMultiplier(4).setSmeltingMultiplier(4).setByProductMultiplier(2); - Nikolite.setOreMultiplier(5).setSmeltingMultiplier(5); - Teslatite.setOreMultiplier(5).setSmeltingMultiplier(5); - Redstone.setOreMultiplier(5).setSmeltingMultiplier(5); - Glowstone.setOreMultiplier(5).setSmeltingMultiplier(5); - Lapis.setOreMultiplier(6).setSmeltingMultiplier(6).setByProductMultiplier(4); - Sodalite.setOreMultiplier(6).setSmeltingMultiplier(6).setByProductMultiplier(4); - Lazurite.setOreMultiplier(6).setSmeltingMultiplier(6).setByProductMultiplier(4); - Monazite.setOreMultiplier(8).setSmeltingMultiplier(8).setByProductMultiplier(2); - - Plastic.setEnchantmentForTools(Enchantment.knockback, 1); - Rubber.setEnchantmentForTools(Enchantment.knockback, 2); - InfusedAir.setEnchantmentForTools(Enchantment.knockback, 2); - - IronWood.setEnchantmentForTools(Enchantment.fortune, 1); - Steeleaf.setEnchantmentForTools(Enchantment.fortune, 2); - Midasium.setEnchantmentForTools(Enchantment.fortune, 2); - Mithril.setEnchantmentForTools(Enchantment.fortune, 3); - Vinteum.setEnchantmentForTools(Enchantment.fortune, 1); - Thaumium.setEnchantmentForTools(Enchantment.fortune, 2); - DarkThaumium.setEnchantmentForTools(Enchantment.fortune, 3); - Magic.setEnchantmentForTools(Enchantment.fortune, 3); - InfusedWater.setEnchantmentForTools(Enchantment.fortune, 3); - - Flint.setEnchantmentForTools(Enchantment.fireAspect, 1); - DarkIron.setEnchantmentForTools(Enchantment.fireAspect, 2); - Firestone.setEnchantmentForTools(Enchantment.fireAspect, 3); - FierySteel.setEnchantmentForTools(Enchantment.fireAspect, 3); - Pyrotheum.setEnchantmentForTools(Enchantment.fireAspect, 3); - Blaze.setEnchantmentForTools(Enchantment.fireAspect, 3); - InfusedFire.setEnchantmentForTools(Enchantment.fireAspect, 3); - - Force.setEnchantmentForTools(Enchantment.silkTouch, 1); - Amber.setEnchantmentForTools(Enchantment.silkTouch, 1); - EnderPearl.setEnchantmentForTools(Enchantment.silkTouch, 1); - Enderium.setEnchantmentForTools(Enchantment.silkTouch, 1); - NetherStar.setEnchantmentForTools(Enchantment.silkTouch, 1); - InfusedOrder.setEnchantmentForTools(Enchantment.silkTouch, 1); - - BlackBronze.setEnchantmentForTools(Enchantment.smite, 2); - Gold.setEnchantmentForTools(Enchantment.smite, 3); - RoseGold.setEnchantmentForTools(Enchantment.smite, 4); - Platinum.setEnchantmentForTools(Enchantment.smite, 5); - InfusedVis.setEnchantmentForTools(Enchantment.smite, 5); - - Lead.setEnchantmentForTools(Enchantment.baneOfArthropods, 2); - Nickel.setEnchantmentForTools(Enchantment.baneOfArthropods, 2); - Invar.setEnchantmentForTools(Enchantment.baneOfArthropods, 3); - Antimony.setEnchantmentForTools(Enchantment.baneOfArthropods, 3); - BatteryAlloy.setEnchantmentForTools(Enchantment.baneOfArthropods, 4); - Bismuth.setEnchantmentForTools(Enchantment.baneOfArthropods, 4); - BismuthBronze.setEnchantmentForTools(Enchantment.baneOfArthropods, 5); - InfusedEarth.setEnchantmentForTools(Enchantment.baneOfArthropods, 5); - - Iron.setEnchantmentForTools(Enchantment.sharpness, 1); - Bronze.setEnchantmentForTools(Enchantment.sharpness, 1); - Brass.setEnchantmentForTools(Enchantment.sharpness, 2); - HSLA.setEnchantmentForTools(Enchantment.sharpness, 2); - Steel.setEnchantmentForTools(Enchantment.sharpness, 2); - WroughtIron.setEnchantmentForTools(Enchantment.sharpness, 2); - StainlessSteel.setEnchantmentForTools(Enchantment.sharpness, 3); - Knightmetal.setEnchantmentForTools(Enchantment.sharpness, 3); - ShadowIron.setEnchantmentForTools(Enchantment.sharpness, 3); - ShadowSteel.setEnchantmentForTools(Enchantment.sharpness, 4); - BlackSteel.setEnchantmentForTools(Enchantment.sharpness, 4); - RedSteel.setEnchantmentForTools(Enchantment.sharpness, 4); - BlueSteel.setEnchantmentForTools(Enchantment.sharpness, 5); - DamascusSteel.setEnchantmentForTools(Enchantment.sharpness, 5); - InfusedEntropy.setEnchantmentForTools(Enchantment.sharpness, 5); - - InfusedAir.setEnchantmentForArmors(Enchantment.respiration, 3); - - InfusedFire.setEnchantmentForArmors(Enchantment.featherFalling, 4); - - Steeleaf.setEnchantmentForArmors(Enchantment.protection, 2); - Knightmetal.setEnchantmentForArmors(Enchantment.protection, 1); - InfusedEarth.setEnchantmentForArmors(Enchantment.protection, 4); - - InfusedEntropy.setEnchantmentForArmors(Enchantment.thorns, 3); - - InfusedWater.setEnchantmentForArmors(Enchantment.aquaAffinity, 1); - IronWood.setEnchantmentForArmors(Enchantment.aquaAffinity, 1); - - InfusedOrder.setEnchantmentForArmors(Enchantment.projectileProtection, 4); - - InfusedDull.setEnchantmentForArmors(Enchantment.blastProtection, 4); - - InfusedVis.setEnchantmentForArmors(Enchantment.protection, 4); - - /* - Stone .setSpecialEffect(SpecialToolEffect.Crushing, 1); - GraniteRed .setSpecialEffect(SpecialToolEffect.Crushing, 2); - GraniteBlack .setSpecialEffect(SpecialToolEffect.Crushing, 2); - Adamantium .setSpecialEffect(SpecialToolEffect.Crushing, 3); - - DeepIron .setSpecialEffect(SpecialToolEffect.Magnetic, 1); - MeteoricIron .setSpecialEffect(SpecialToolEffect.Magnetic, 2); - MeteoricSteel .setSpecialEffect(SpecialToolEffect.Magnetic, 3); - IronMagnetic .setSpecialEffect(SpecialToolEffect.Magnetic, 1); - SteelMagnetic .setSpecialEffect(SpecialToolEffect.Magnetic, 2); - NeodymiumMagnetic .setSpecialEffect(SpecialToolEffect.Magnetic, 3); - */ - - FryingOilHot.setHeatDamage(1.0F); - Lava.setHeatDamage(3.0F); - Firestone.setHeatDamage(5.0F); - Pyrotheum.setHeatDamage(5.0F); - - Chalcopyrite.addOreByProducts(Pyrite, Cobalt, Cadmium, Gold); - Sphalerite.addOreByProducts(GarnetYellow, Cadmium, Gallium, Zinc); - MeteoricIron.addOreByProducts(Iron, Nickel, Iridium, Platinum); - GlauconiteSand.addOreByProducts(Sodium, Aluminium, Iron); - Glauconite.addOreByProducts(Sodium, Aluminium, Iron); - Vermiculite.addOreByProducts(Iron, Aluminium, Magnesium); - FullersEarth.addOreByProducts(Aluminium, Silicon, Magnesium); - Bentonite.addOreByProducts(Aluminium, Calcium, Magnesium); - Uraninite.addOreByProducts(Uranium, Thorium, Plutonium); - Pitchblende.addOreByProducts(Thorium, Uranium, Lead); - Galena.addOreByProducts(Sulfur, Silver, Lead); - Lapis.addOreByProducts(Lazurite, Sodalite, Pyrite); - Pyrite.addOreByProducts(Sulfur, Phosphorus, Iron); - Copper.addOreByProducts(Cobalt, Gold, Nickel); - Nickel.addOreByProducts(Cobalt, Platinum, Iron); - GarnetRed.addOreByProducts(Spessartine, Pyrope, Almandine); - GarnetYellow.addOreByProducts(Andradite, Grossular, Uvarovite); - Cooperite.addOreByProducts(Palladium, Nickel, Iridium); - Cinnabar.addOreByProducts(Redstone, Sulfur, Glowstone); - Tantalite.addOreByProducts(Manganese, Niobium, Tantalum); - Pollucite.addOreByProducts(Caesium, Aluminium, Rubidium); - Chrysotile.addOreByProducts(Asbestos, Silicon, Magnesium); - Asbestos.addOreByProducts(Asbestos, Silicon, Magnesium); - Pentlandite.addOreByProducts(Iron, Sulfur, Cobalt); - Uranium.addOreByProducts(Lead, Plutonium, Thorium); - Scheelite.addOreByProducts(Manganese, Molybdenum, Calcium); - Tungstate.addOreByProducts(Manganese, Silver, Lithium); - Bauxite.addOreByProducts(Grossular, Titanium, Gallium); - QuartzSand.addOreByProducts(CertusQuartz, Quartzite, Barite); - Quartzite.addOreByProducts(CertusQuartz, Barite); - CertusQuartz.addOreByProducts(Quartzite, Barite); - //ChargedCertusQuartz .addOreByProducts(CertusQuartz , Quartzite , Barite ); - Redstone.addOreByProducts(Cinnabar, RareEarth, Glowstone); - Monazite.addOreByProducts(Thorium, Neodymium, RareEarth); - Forcicium.addOreByProducts(Thorium, Neodymium, RareEarth); - Forcillium.addOreByProducts(Thorium, Neodymium, RareEarth); - Malachite.addOreByProducts(Copper, BrownLimonite, Calcite); - YellowLimonite.addOreByProducts(Nickel, BrownLimonite, Cobalt); - BrownLimonite.addOreByProducts(Malachite, YellowLimonite); - Neodymium.addOreByProducts(Monazite, RareEarth); - Bastnasite.addOreByProducts(Neodymium, RareEarth); - Glowstone.addOreByProducts(Redstone, Gold); - Zinc.addOreByProducts(Tin, Gallium); - Tungsten.addOreByProducts(Manganese, Molybdenum); - Diatomite.addOreByProducts(BandedIron, Sapphire); - Iron.addOreByProducts(Nickel, Tin); - Lepidolite.addOreByProducts(Lithium, Caesium); - Gold.addOreByProducts(Copper, Nickel); - Tin.addOreByProducts(Iron, Zinc); - Antimony.addOreByProducts(Zinc, Iron); - Silver.addOreByProducts(Lead, Sulfur); - Lead.addOreByProducts(Silver, Sulfur); - Thorium.addOreByProducts(Uranium, Lead); - Plutonium.addOreByProducts(Uranium, Lead); - Electrum.addOreByProducts(Gold, Silver); - Bronze.addOreByProducts(Copper, Tin); - Brass.addOreByProducts(Copper, Zinc); - Coal.addOreByProducts(Lignite, Thorium); - Ilmenite.addOreByProducts(Iron, Titanium); - Manganese.addOreByProducts(Chrome, Iron); - Sapphire.addOreByProducts(Aluminium, GreenSapphire); - GreenSapphire.addOreByProducts(Aluminium, Sapphire); - Platinum.addOreByProducts(Nickel, Iridium); - Emerald.addOreByProducts(Beryllium, Aluminium); - Olivine.addOreByProducts(Pyrope, Magnesium); - Chrome.addOreByProducts(Iron, Magnesium); - Chromite.addOreByProducts(Iron, Magnesium); - Tetrahedrite.addOreByProducts(Antimony, Zinc); - GarnetSand.addOreByProducts(GarnetRed, GarnetYellow); - Magnetite.addOreByProducts(Iron, Gold); - GraniticMineralSand.addOreByProducts(GraniteBlack, Magnetite); - BasalticMineralSand.addOreByProducts(Basalt, Magnetite); - Basalt.addOreByProducts(Olivine, DarkAsh); - Celestine.addOreByProducts(Strontium, Sulfur); - VanadiumMagnetite.addOreByProducts(Magnetite, Vanadium); - Lazurite.addOreByProducts(Sodalite, Lapis); - Sodalite.addOreByProducts(Lazurite, Lapis); - Spodumene.addOreByProducts(Aluminium, Lithium); - Ruby.addOreByProducts(Chrome, GarnetRed); - Phosphorus.addOreByProducts(Apatite, Phosphate); - Iridium.addOreByProducts(Platinum, Osmium); - Pyrope.addOreByProducts(GarnetRed, Magnesium); - Almandine.addOreByProducts(GarnetRed, Aluminium); - Spessartine.addOreByProducts(GarnetRed, Manganese); - Andradite.addOreByProducts(GarnetYellow, Iron); - Grossular.addOreByProducts(GarnetYellow, Calcium); - Uvarovite.addOreByProducts(GarnetYellow, Chrome); - Calcite.addOreByProducts(Andradite, Malachite); - NaquadahEnriched.addOreByProducts(Naquadah, Naquadria); - Naquadah.addOreByProducts(NaquadahEnriched); - Pyrolusite.addOreByProducts(Manganese); - Molybdenite.addOreByProducts(Molybdenum); - Stibnite.addOreByProducts(Antimony); - Garnierite.addOreByProducts(Nickel); - Lignite.addOreByProducts(Coal); - Diamond.addOreByProducts(Graphite); - Beryllium.addOreByProducts(Emerald); - Apatite.addOreByProducts(Phosphorus); - Nikolite.addOreByProducts(Diamond); - Teslatite.addOreByProducts(Diamond); - Magnesite.addOreByProducts(Magnesium); - NetherQuartz.addOreByProducts(Netherrack); - PigIron.addOreByProducts(Iron); - DeepIron.addOreByProducts(Iron); - ShadowIron.addOreByProducts(Iron); - DarkIron.addOreByProducts(Iron); - MeteoricIron.addOreByProducts(Iron); - Steel.addOreByProducts(Iron); - HSLA.addOreByProducts(Iron); - Mithril.addOreByProducts(Platinum); - Midasium.addOreByProducts(Gold); - AstralSilver.addOreByProducts(Silver); - Graphite.addOreByProducts(Carbon); - Netherrack.addOreByProducts(Sulfur); - Flint.addOreByProducts(Obsidian); - Cobaltite.addOreByProducts(Cobalt); - Cobalt.addOreByProducts(Cobaltite); - Sulfur.addOreByProducts(Sulfur); - Saltpeter.addOreByProducts(Saltpeter); - Endstone.addOreByProducts(Helium_3); - Osmium.addOreByProducts(Iridium); - Magnesium.addOreByProducts(Olivine); - Aluminium.addOreByProducts(Bauxite); - Titanium.addOreByProducts(Almandine); - Obsidian.addOreByProducts(Olivine); - Ash.addOreByProducts(Carbon); - DarkAsh.addOreByProducts(Carbon); - Redrock.addOreByProducts(Clay); - Marble.addOreByProducts(Calcite); - Clay.addOreByProducts(Clay); - Cassiterite.addOreByProducts(Tin); - CassiteriteSand.addOreByProducts(Tin); - GraniteBlack.addOreByProducts(Biotite); - GraniteRed.addOreByProducts(PotassiumFeldspar); - Phosphate.addOreByProducts(Phosphor); - Phosphor.addOreByProducts(Phosphate); - Jade.addOreByProducts(Jade); - Tanzanite.addOreByProducts(Opal); - Opal.addOreByProducts(Tanzanite); - Amethyst.addOreByProducts(Amethyst); - Jasper.addOreByProducts(FoolsRuby); - FoolsRuby.addOreByProducts(Jasper); - Amber.addOreByProducts(Amber); - Topaz.addOreByProducts(BlueTopaz); - BlueTopaz.addOreByProducts(Topaz); - Niter.addOreByProducts(Saltpeter); - Vinteum.addOreByProducts(Vinteum); - Force.addOreByProducts(Force); - Dilithium.addOreByProducts(Dilithium); - Neutronium.addOreByProducts(Neutronium); - Lithium.addOreByProducts(Lithium); - Silicon.addOreByProducts(SiliconDioxide); - Salt.addOreByProducts(RockSalt); - RockSalt.addOreByProducts(Salt); - - Glue.mChemicalFormula = "No Horses were harmed for the Production"; - UUAmplifier.mChemicalFormula = "Accelerates the Mass Fabricator"; - LiveRoot.mChemicalFormula = ""; - WoodSealed.mChemicalFormula = ""; - Wood.mChemicalFormula = ""; - FoolsRuby.mChemicalFormula = Ruby.mChemicalFormula; - - // Naquadah is green when molten, so this reflects the Color change approciately - Naquadah.mMoltenRGBa[0] = 0; - Naquadah.mMoltenRGBa[1] = 255; - Naquadah.mMoltenRGBa[2] = 0; - Naquadah.mMoltenRGBa[3] = 0; - NaquadahEnriched.mMoltenRGBa[0] = 64; - NaquadahEnriched.mMoltenRGBa[1] = 255; - NaquadahEnriched.mMoltenRGBa[2] = 64; - NaquadahEnriched.mMoltenRGBa[3] = 0; - Naquadria.mMoltenRGBa[0] = 128; - Naquadria.mMoltenRGBa[1] = 255; - Naquadria.mMoltenRGBa[2] = 128; - Naquadria.mMoltenRGBa[3] = 0; - - NaquadahEnriched.mChemicalFormula = "Nq+"; - Naquadah.mChemicalFormula = "Nq"; - Naquadria.mChemicalFormula = "NqX"; - } + FryingOilHot .setHeatDamage(1.0F); + Lava .setHeatDamage(3.0F); + Firestone .setHeatDamage(5.0F); + Pyrotheum .setHeatDamage(5.0F); + + Chalcopyrite .addOreByProducts(Pyrite , Cobalt , Cadmium , Gold ); + Sphalerite .addOreByProducts(GarnetYellow , Cadmium , Gallium , Zinc ); + MeteoricIron .addOreByProducts(Iron , Nickel , Iridium , Platinum ); + GlauconiteSand .addOreByProducts(Sodium , Aluminium , Iron ); + Glauconite .addOreByProducts(Sodium , Aluminium , Iron ); + Vermiculite .addOreByProducts(Iron , Aluminium , Magnesium ); + FullersEarth .addOreByProducts(Aluminium , Silicon , Magnesium ); + Bentonite .addOreByProducts(Aluminium , Calcium , Magnesium ); + Uraninite .addOreByProducts(Uranium , Thorium , Uranium235 ); + Pitchblende .addOreByProducts(Thorium , Uranium , Lead ); + Galena .addOreByProducts(Sulfur , Silver , Lead ); + Lapis .addOreByProducts(Lazurite , Sodalite , Pyrite ); + Pyrite .addOreByProducts(Sulfur , Phosphorus , Iron ); + Copper .addOreByProducts(Cobalt , Gold , Nickel ); + Nickel .addOreByProducts(Cobalt , Platinum , Iron ); + GarnetRed .addOreByProducts(Spessartine , Pyrope , Almandine ); + GarnetYellow .addOreByProducts(Andradite , Grossular , Uvarovite ); + Cooperite .addOreByProducts(Palladium , Nickel , Iridium ); + Cinnabar .addOreByProducts(Redstone , Sulfur , Glowstone ); + Tantalite .addOreByProducts(Manganese , Niobium , Tantalum ); + Pollucite .addOreByProducts(Caesium , Aluminium , Rubidium ); + Chrysotile .addOreByProducts(Asbestos , Silicon , Magnesium ); + Asbestos .addOreByProducts(Asbestos , Silicon , Magnesium ); + Pentlandite .addOreByProducts(Iron , Sulfur , Cobalt ); + Uranium .addOreByProducts(Lead , Uranium235 , Thorium ); + Scheelite .addOreByProducts(Manganese , Molybdenum , Calcium ); + Tungstate .addOreByProducts(Manganese , Silver , Lithium ); + Bauxite .addOreByProducts(Grossular , Rutile , Gallium ); + QuartzSand .addOreByProducts(CertusQuartz , Quartzite , Barite ); + Quartzite .addOreByProducts(CertusQuartz , Barite ); + CertusQuartz .addOreByProducts(Quartzite , Barite ); + Redstone .addOreByProducts(Cinnabar , RareEarth , Glowstone ); + Monazite .addOreByProducts(Thorium , Neodymium , RareEarth ); + Forcicium .addOreByProducts(Thorium , Neodymium , RareEarth ); + Forcillium .addOreByProducts(Thorium , Neodymium , RareEarth ); + Malachite .addOreByProducts(Copper , BrownLimonite , Calcite ); + YellowLimonite .addOreByProducts(Nickel , BrownLimonite , Cobalt ); + BrownLimonite .addOreByProducts(Malachite , YellowLimonite ); + Neodymium .addOreByProducts(Monazite , RareEarth ); + Bastnasite .addOreByProducts(Neodymium , RareEarth ); + Glowstone .addOreByProducts(Redstone , Gold ); + Zinc .addOreByProducts(Tin , Gallium ); + Tungsten .addOreByProducts(Manganese , Molybdenum ); + Diatomite .addOreByProducts(BandedIron , Sapphire ); + Iron .addOreByProducts(Nickel , Tin ); + Lepidolite .addOreByProducts(Lithium , Caesium ); + Gold .addOreByProducts(Copper , Nickel ); + Tin .addOreByProducts(Iron , Zinc ); + Antimony .addOreByProducts(Zinc , Iron ); + Silver .addOreByProducts(Lead , Sulfur ); + Lead .addOreByProducts(Silver , Sulfur ); + Thorium .addOreByProducts(Uranium , Lead ); + Plutonium .addOreByProducts(Uranium , Lead ); + Electrum .addOreByProducts(Gold , Silver ); + Bronze .addOreByProducts(Copper , Tin ); + Brass .addOreByProducts(Copper , Zinc ); + Coal .addOreByProducts(Lignite , Thorium ); + Ilmenite .addOreByProducts(Iron , Rutile ); + Manganese .addOreByProducts(Chrome , Iron ); + Sapphire .addOreByProducts(Aluminium , GreenSapphire ); + GreenSapphire .addOreByProducts(Aluminium , Sapphire ); + Platinum .addOreByProducts(Nickel , Iridium ); + Emerald .addOreByProducts(Beryllium , Aluminium ); + Olivine .addOreByProducts(Pyrope , Magnesium ); + Chrome .addOreByProducts(Iron , Magnesium ); + Chromite .addOreByProducts(Iron , Magnesium ); + Tetrahedrite .addOreByProducts(Antimony , Zinc ); + GarnetSand .addOreByProducts(GarnetRed , GarnetYellow ); + Magnetite .addOreByProducts(Iron , Gold ); + GraniticMineralSand .addOreByProducts(GraniteBlack , Magnetite ); + BasalticMineralSand .addOreByProducts(Basalt , Magnetite ); + Basalt .addOreByProducts(Olivine , DarkAsh ); + VanadiumMagnetite .addOreByProducts(Magnetite , Vanadium ); + Lazurite .addOreByProducts(Sodalite , Lapis ); + Sodalite .addOreByProducts(Lazurite , Lapis ); + Spodumene .addOreByProducts(Aluminium , Lithium ); + Ruby .addOreByProducts(Chrome , GarnetRed ); + Phosphorus .addOreByProducts(Apatite , Phosphate ); + Iridium .addOreByProducts(Platinum , Osmium ); + Pyrope .addOreByProducts(GarnetRed , Magnesium ); + Almandine .addOreByProducts(GarnetRed , Aluminium ); + Spessartine .addOreByProducts(GarnetRed , Manganese ); + Andradite .addOreByProducts(GarnetYellow , Iron ); + Grossular .addOreByProducts(GarnetYellow , Calcium ); + Uvarovite .addOreByProducts(GarnetYellow , Chrome ); + Calcite .addOreByProducts(Andradite , Malachite ); + NaquadahEnriched .addOreByProducts(Naquadah , Naquadria ); + Naquadah .addOreByProducts(NaquadahEnriched ); + Pyrolusite .addOreByProducts(Manganese ); + Molybdenite .addOreByProducts(Molybdenum ); + Stibnite .addOreByProducts(Antimony ); + Garnierite .addOreByProducts(Nickel ); + Lignite .addOreByProducts(Coal ); + Diamond .addOreByProducts(Graphite ); + Beryllium .addOreByProducts(Emerald ); + Apatite .addOreByProducts(Phosphorus ); + Nikolite .addOreByProducts(Diamond ); + Teslatite .addOreByProducts(Diamond ); + Magnesite .addOreByProducts(Magnesium ); + NetherQuartz .addOreByProducts(Netherrack ); + PigIron .addOreByProducts(Iron ); + DeepIron .addOreByProducts(Iron ); + ShadowIron .addOreByProducts(Iron ); + DarkIron .addOreByProducts(Iron ); + MeteoricIron .addOreByProducts(Iron ); + Steel .addOreByProducts(Iron ); + HSLA .addOreByProducts(Iron ); + Mithril .addOreByProducts(Platinum ); + Midasium .addOreByProducts(Gold ); + AstralSilver .addOreByProducts(Silver ); + Graphite .addOreByProducts(Carbon ); + Netherrack .addOreByProducts(Sulfur ); + Flint .addOreByProducts(Obsidian ); + Cobaltite .addOreByProducts(Cobalt ); + Cobalt .addOreByProducts(Cobaltite ); + Sulfur .addOreByProducts(Sulfur ); + Saltpeter .addOreByProducts(Saltpeter ); + Endstone .addOreByProducts(Helium_3 ); + Osmium .addOreByProducts(Iridium ); + Magnesium .addOreByProducts(Olivine ); + Aluminium .addOreByProducts(Bauxite ); + Titanium .addOreByProducts(Almandine ); + Obsidian .addOreByProducts(Olivine ); + Ash .addOreByProducts(Carbon ); + DarkAsh .addOreByProducts(Carbon ); + Redrock .addOreByProducts(Clay ); + Marble .addOreByProducts(Calcite ); + Clay .addOreByProducts(Clay ); + Cassiterite .addOreByProducts(Tin ); + CassiteriteSand .addOreByProducts(Tin ); + GraniteBlack .addOreByProducts(Biotite ); + GraniteRed .addOreByProducts(PotassiumFeldspar ); + Phosphate .addOreByProducts(Phosphor ); + Phosphor .addOreByProducts(Phosphate ); + Tanzanite .addOreByProducts(Opal ); + Opal .addOreByProducts(Tanzanite ); + Amethyst .addOreByProducts(Amethyst ); + FoolsRuby .addOreByProducts(Jasper ); + Amber .addOreByProducts(Amber ); + Topaz .addOreByProducts(BlueTopaz ); + BlueTopaz .addOreByProducts(Topaz ); + Niter .addOreByProducts(Saltpeter ); + Vinteum .addOreByProducts(Vinteum ); + Force .addOreByProducts(Force ); + Dilithium .addOreByProducts(Dilithium ); + Neutronium .addOreByProducts(Neutronium ); + Lithium .addOreByProducts(Lithium ); + Silicon .addOreByProducts(SiliconDioxide ); + Salt .addOreByProducts(RockSalt ); + RockSalt .addOreByProducts(Salt ); + + Glue.mChemicalFormula = "No Horses were harmed for the Production"; + UUAmplifier.mChemicalFormula = "Accelerates the Mass Fabricator"; + LiveRoot.mChemicalFormula = ""; + WoodSealed.mChemicalFormula = ""; + Wood.mChemicalFormula = ""; + FoolsRuby.mChemicalFormula = Ruby.mChemicalFormula; + + Naquadah.mMoltenRGBa[0] = 0; + Naquadah.mMoltenRGBa[1] = 255; + Naquadah.mMoltenRGBa[2] = 0; + Naquadah.mMoltenRGBa[3] = 0; + NaquadahEnriched.mMoltenRGBa[0] = 64; + NaquadahEnriched.mMoltenRGBa[1] = 255; + NaquadahEnriched.mMoltenRGBa[2] = 64; + NaquadahEnriched.mMoltenRGBa[3] = 0; + Naquadria.mMoltenRGBa[0] = 128; + Naquadria.mMoltenRGBa[1] = 255; + Naquadria.mMoltenRGBa[2] = 128; + Naquadria.mMoltenRGBa[3] = 0; + + NaquadahEnriched.mChemicalFormula = "Nq+"; + Naquadah.mChemicalFormula = "Nq"; + Naquadria.mChemicalFormula = "NqX"; + } /** * This Array can be changed dynamically by a Tick Handler in order to get a glowing Effect on all GT Meta Items out of this Material. @@ -1673,5 +1676,6 @@ public enum Materials implements IColorModulationContainer, ISubTagContainer { public short[] getRGBA() { return mRGBa; } - + + public static volatile int VERSION = 509; } \ No newline at end of file diff --git a/src/main/java/gregtech/api/enums/OrePrefixes.java b/src/main/java/gregtech/api/enums/OrePrefixes.java index df3591c3..8c432372 100644 --- a/src/main/java/gregtech/api/enums/OrePrefixes.java +++ b/src/main/java/gregtech/api/enums/OrePrefixes.java @@ -79,6 +79,7 @@ public enum OrePrefixes { stick("Sticks/Rods", "", " Rod", true, true, false, false, false, false, true, true, false, false, B[1] | B[2], M / 2, 64, 23), // Stick made of half an Ingot. Introduced by Eloraam round("Rounds", "", " Round", true, true, false, false, false, false, true, true, false, false, B[1], M / 9, 64, 25), // consisting out of one Nugget. bolt("Bolts", "", " Bolt", true, true, false, false, false, false, true, true, false, false, B[1] | B[2], M / 8, 64, 26), // consisting out of 1/8 Ingot or 1/4 Stick. + comb("Combs", "", " Comb", false, false, false, false, false, false, false, true, false, false, B[1] | B[2], M, 64, 101), // contain dusts screw("Screws", "", " Screw", true, true, false, false, false, false, true, true, false, false, B[1] | B[2], M / 9, 64, 27), // consisting out of a Bolt. ring("Rings", "", " Ring", true, true, false, false, false, false, true, true, false, false, B[1], M / 4, 64, 28), // consisting out of 1/2 Stick. springSmall("Small Springs", "Small ", " Spring", true, true, false, false, false, false, true, true, false, false, B[1], M / 4, 64, 55), // consisting out of 1 Fine Wire. @@ -306,9 +307,11 @@ public enum OrePrefixes { ganys("Ganys Stuff", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), liquid("Liquids", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), bars("Bars", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), - bar("Bars", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1); - - public static volatile int VERSION = 508; + bar("Bars", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1), + toolHeadMallet("Mallet Heads", "", " Mallet Head", true, true, false, false, false, false, true, true, false, false, B[6], M * 6, 16, 127), // Reverse Head consisting out of 6 Ingots. + handleMallet("Mallet Handle", "", " Handle", true, true, false, false, false, false, true, true, false, false, B[1] | B[2], M / 2, 64, 126); // Reverse Stick made of half an Ingot. Introduced by Eloraam + + public static volatile int VERSION = 509; static { pulp.mPrefixInto = dust; @@ -489,11 +492,11 @@ public enum OrePrefixes { pipeRestrictiveMedium.mSecondaryMaterial = new MaterialStack(Materials.Steel, ring.mMaterialAmount * 3); pipeRestrictiveLarge.mSecondaryMaterial = new MaterialStack(Materials.Steel, ring.mMaterialAmount * 4); pipeRestrictiveHuge.mSecondaryMaterial = new MaterialStack(Materials.Steel, ring.mMaterialAmount * 5); - cableGt12.mSecondaryMaterial = new MaterialStack(Materials.Rubber, plate.mMaterialAmount * 4); - cableGt08.mSecondaryMaterial = new MaterialStack(Materials.Rubber, plate.mMaterialAmount * 3); - cableGt04.mSecondaryMaterial = new MaterialStack(Materials.Rubber, plate.mMaterialAmount * 2); - cableGt02.mSecondaryMaterial = new MaterialStack(Materials.Rubber, plate.mMaterialAmount); - cableGt01.mSecondaryMaterial = new MaterialStack(Materials.Rubber, plate.mMaterialAmount); + cableGt12.mSecondaryMaterial = new MaterialStack(Materials.Ash, dustSmall.mMaterialAmount * 4); + cableGt08.mSecondaryMaterial = new MaterialStack(Materials.Ash, dustSmall.mMaterialAmount * 3); + cableGt04.mSecondaryMaterial = new MaterialStack(Materials.Ash, dustSmall.mMaterialAmount * 2); + cableGt02.mSecondaryMaterial = new MaterialStack(Materials.Ash, dustSmall.mMaterialAmount); + cableGt01.mSecondaryMaterial = new MaterialStack(Materials.Ash, dustSmall.mMaterialAmount); bucket.mSecondaryMaterial = new MaterialStack(Materials.Iron, ingot.mMaterialAmount * 3); cell.mSecondaryMaterial = new MaterialStack(Materials.Tin, plate.mMaterialAmount * 2); cellPlasma.mSecondaryMaterial = new MaterialStack(Materials.Tin, plate.mMaterialAmount * 2); diff --git a/src/main/java/gregtech/api/enums/TC_Aspects.java b/src/main/java/gregtech/api/enums/TC_Aspects.java index c4e7d3d6..6a9f085d 100644 --- a/src/main/java/gregtech/api/enums/TC_Aspects.java +++ b/src/main/java/gregtech/api/enums/TC_Aspects.java @@ -3,7 +3,7 @@ package gregtech.api.enums; import java.util.List; public enum TC_Aspects { - AER(1), ALIENIS(20), AQUA(3), ARBOR(1), AURAM(16), BESTIA(6), COGNITIO(2), CORPUS(2), ELECTRUM(24), EXAMINIS(32), FABRICO(2), FAMES(2), GELUM(1), GRANUM(4), HERBA(2), HUMANUS(8), IGNIS(4), INSTRUMENTUM(4), ITER(6), LIMUS(3), LUCRUM(32), LUX(4), MACHINA(16), MAGNETO(24), MESSIS(3), METALLUM(8), METO(2), MORTUUS(16), MOTUS(4), NEBRISUM(48), ORDO(8), PANNUS(6), PERDITIO(2), PERFODIO(4), PERMUTATIO(12), POTENTIA(16), PRAECANTATIO(16), RADIO(48), SANO(24), SENSUS(4), SPIRITUS(24), STRONTIO(64), TELUM(6), TERRA(1), TEMPESTAS(64), TENEBRAE(24), TUTAMEN(12), VACUOS(6), VENENUM(16), VICTUS(4), VINCULUM(16), VITIUM(48), VITREUS(3), VOLATUS(12); + AER(1), ALIENIS(20), AQUA(3), ARBOR(1), AURAM(16), BESTIA(6), COGNITIO(2), CORPUS(2), ELECTRUM(24), EXANIMIS(32), FABRICO(2), FAMES(2), GELUM(1), GRANUM(4), HERBA(2), HUMANUS(8), IGNIS(4), INSTRUMENTUM(4), ITER(6), LIMUS(3), LUCRUM(32), LUX(4), MACHINA(16), MAGNETO(24), MESSIS(3), METALLUM(8), METO(2), MORTUUS(16), MOTUS(4), NEBRISUM(48), ORDO(8), PANNUS(6), PERDITIO(2), PERFODIO(4), PERMUTATIO(12), POTENTIA(16), PRAECANTATIO(16), RADIO(48), SANO(24), SENSUS(4), SPIRITUS(24), STRONTIO(64), TELUM(6), TERRA(1), TEMPESTAS(64), TENEBRAE(24), TUTAMEN(12), VACUOS(6), VENENUM(16), VICTUS(4), VINCULUM(16), VITIUM(48), VITREUS(3), VOLATUS(12); /** * The Thaumcraft Aspect Object of the Mod itself. diff --git a/src/main/java/gregtech/api/enums/TextureSet.java b/src/main/java/gregtech/api/enums/TextureSet.java index 8448b026..4cedf08e 100644 --- a/src/main/java/gregtech/api/enums/TextureSet.java +++ b/src/main/java/gregtech/api/enums/TextureSet.java @@ -143,7 +143,7 @@ public class TextureSet { mTextures[123] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/void"); mTextures[124] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/void"); mTextures[125] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/void"); - mTextures[126] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/void"); - mTextures[127] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/void"); + mTextures[126] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/handleMallet"); + mTextures[127] = new Textures.ItemIcons.CustomIcon("materialicons/" + mSetName + "/toolHeadMallet"); } } \ No newline at end of file diff --git a/src/main/java/gregtech/api/enums/Textures.java b/src/main/java/gregtech/api/enums/Textures.java index 1ac967bd..0b424e88 100644 --- a/src/main/java/gregtech/api/enums/Textures.java +++ b/src/main/java/gregtech/api/enums/Textures.java @@ -15,7 +15,7 @@ import static gregtech.api.enums.GT_Values.RES_PATH_ITEM; public class Textures { public enum BlockIcons implements IIconContainer, Runnable { VOID // The Empty Texture - , RENDERING_ERROR, PIPE_RESTRICTOR, INSULATION_FULL, INSULATION_TINY, INSULATION_SMALL, INSULATION_MEDIUM, INSULATION_LARGE, INSULATION_HUGE, CFOAM_FRESH, CFOAM_HARDENED, SOLARPANEL, SOLARPANEL_8V, SOLARPANEL_LV, SOLARPANEL_MV, SOLARPANEL_HV, SOLARPANEL_EV, SOLARPANEL_IV, SOLARPANEL_LuV, SOLARPANEL_ZPM, SOLARPANEL_UV, VENT_NORMAL, VENT_ADVANCED, COVER_WOOD_PLATE, ARROW_UP, ARROW_DOWN, ARROW_LEFT, ARROW_RIGHT, AUTOMATION_FILTER, AUTOMATION_TYPEFILTER, AUTOMATION_CHESTBUFFER, AUTOMATION_SUPERBUFFER, AUTOMATION_REGULATOR, CONCRETE_LIGHT_STONE, CONCRETE_LIGHT_COBBLE, CONCRETE_LIGHT_COBBLE_MOSSY, CONCRETE_LIGHT_BRICKS, CONCRETE_LIGHT_BRICKS_CRACKED, CONCRETE_LIGHT_BRICKS_MOSSY, CONCRETE_LIGHT_BRICKS_CHISELED, CONCRETE_LIGHT_SMOOTH, CONCRETE_DARK_STONE, CONCRETE_DARK_COBBLE, CONCRETE_DARK_COBBLE_MOSSY, CONCRETE_DARK_BRICKS, CONCRETE_DARK_BRICKS_CRACKED, CONCRETE_DARK_BRICKS_MOSSY, CONCRETE_DARK_BRICKS_CHISELED, CONCRETE_DARK_SMOOTH, GRANITE_BLACK_STONE, GRANITE_BLACK_COBBLE, GRANITE_BLACK_COBBLE_MOSSY, GRANITE_BLACK_BRICKS, GRANITE_BLACK_BRICKS_CRACKED, GRANITE_BLACK_BRICKS_MOSSY, GRANITE_BLACK_BRICKS_CHISELED, GRANITE_BLACK_SMOOTH, GRANITE_RED_STONE, GRANITE_RED_COBBLE, GRANITE_RED_COBBLE_MOSSY, GRANITE_RED_BRICKS, GRANITE_RED_BRICKS_CRACKED, GRANITE_RED_BRICKS_MOSSY, GRANITE_RED_BRICKS_CHISELED, GRANITE_RED_SMOOTH, MACHINE_BRONZEBRICKS_TOP, MACHINE_BRONZEBRICKS_SIDE, MACHINE_BRONZEBRICKS_BOTTOM, MACHINE_STEELBRICKS_TOP, MACHINE_STEELBRICKS_SIDE, MACHINE_STEELBRICKS_BOTTOM, MACHINE_BRONZE_TOP, MACHINE_BRONZE_SIDE, MACHINE_BRONZE_BOTTOM, MACHINE_STEEL_TOP, MACHINE_STEEL_SIDE, MACHINE_STEEL_BOTTOM, MACHINE_8V_TOP, MACHINE_8V_SIDE, MACHINE_8V_BOTTOM, MACHINE_LV_TOP, MACHINE_LV_SIDE, MACHINE_LV_BOTTOM, MACHINE_MV_TOP, MACHINE_MV_SIDE, MACHINE_MV_BOTTOM, MACHINE_HV_TOP, MACHINE_HV_SIDE, MACHINE_HV_BOTTOM, MACHINE_EV_TOP, MACHINE_EV_SIDE, MACHINE_EV_BOTTOM, MACHINE_IV_TOP, MACHINE_IV_SIDE, MACHINE_IV_BOTTOM, MACHINE_LuV_TOP, MACHINE_LuV_SIDE, MACHINE_LuV_BOTTOM, MACHINE_ZPM_TOP, MACHINE_ZPM_SIDE, MACHINE_ZPM_BOTTOM, MACHINE_UV_TOP, MACHINE_UV_SIDE, MACHINE_UV_BOTTOM, MACHINE_MAX_TOP, MACHINE_MAX_SIDE, MACHINE_MAX_BOTTOM, MACHINE_BRONZEPLATEDBRICKS, MACHINE_HEATPROOFCASING, MACHINE_BRONZEBLASTFURNACE, MACHINE_BRONZEBLASTFURNACE_ACTIVE, MACHINE_CASING_ROBUST_TUNGSTENSTEEL, MACHINE_CASING_CLEAN_STAINLESSSTEEL, MACHINE_CASING_STABLE_TITANIUM, MACHINE_CASING_FIREBOX_TITANIUM, MACHINE_CASING_FUSION_COIL, MACHINE_CASING_FUSION, MACHINE_CASING_FUSION_GLASS, MACHINE_CASING_FUSION_GLASS_YELLOW, MACHINE_CASING_FUSION_2, MACHINE_CASING_MAGIC, MACHINE_CASING_MAGIC_ACTIVE, MACHINE_CASING_MAGIC_FRONT, MACHINE_CASING_MAGIC_FRONT_ACTIVE, MACHINE_CASING_DRAGONEGG, MACHINE_CASING_SOLID_STEEL, MACHINE_CASING_FROST_PROOF, MACHINE_CASING_PUMP, MACHINE_CASING_MOTOR, MACHINE_CASING_PIPE_BRONZE, MACHINE_CASING_PIPE_STEEL, MACHINE_CASING_PIPE_TITANIUM, MACHINE_CASING_PIPE_TUNGSTENSTEEL, MACHINE_CASING_GEARBOX_BRONZE, MACHINE_CASING_GEARBOX_STEEL, MACHINE_CASING_GEARBOX_TITANIUM, MACHINE_CASING_GEARBOX_TUNGSTENSTEEL, MACHINE_CASING_DATA_DRIVE, MACHINE_CASING_CONTAINMENT_FIELD, MACHINE_CASING_ASSEMBLER, MACHINE_CASING_PROCESSOR, MACHINE_CASING_STRIPES_A, MACHINE_CASING_STRIPES_B, MACHINE_CASING_RADIOACTIVEHAZARD, MACHINE_CASING_BIOHAZARD, MACHINE_CASING_EXPLOSIONHAZARD, MACHINE_CASING_FIREHAZARD, MACHINE_CASING_ACIDHAZARD, MACHINE_CASING_MAGICHAZARD, MACHINE_CASING_FROSTHAZARD, MACHINE_CASING_NOISEHAZARD, MACHINE_CASING_GRATE, MACHINE_CASING_VENT, MACHINE_CASING_RADIATIONPROOF, MACHINE_CASING_FIREBOX_BRONZE, MACHINE_CASING_FIREBOX_STEEL, MACHINE_CASING_FIREBOX_TUNGSTENSTEEL, BOILER_SOLAR, BOILER_FRONT, BOILER_FRONT_ACTIVE, BOILER_LAVA_FRONT, BOILER_LAVA_FRONT_ACTIVE, NAQUADAH_REACTOR_SOLID_BACK, NAQUADAH_REACTOR_SOLID_FRONT, NAQUADAH_REACTOR_SOLID_SIDE, NAQUADAH_REACTOR_SOLID_BOTTOM, NAQUADAH_REACTOR_SOLID_TOP, NAQUADAH_REACTOR_SOLID_BACK_ACTIVE, NAQUADAH_REACTOR_SOLID_FRONT_ACTIVE, NAQUADAH_REACTOR_SOLID_SIDE_ACTIVE, NAQUADAH_REACTOR_SOLID_BOTTOM_ACTIVE, NAQUADAH_REACTOR_SOLID_TOP_ACTIVE, NAQUADAH_REACTOR_FLUID_BACK, NAQUADAH_REACTOR_FLUID_FRONT, NAQUADAH_REACTOR_FLUID_SIDE, NAQUADAH_REACTOR_FLUID_BOTTOM, NAQUADAH_REACTOR_FLUID_TOP, NAQUADAH_REACTOR_FLUID_BACK_ACTIVE, NAQUADAH_REACTOR_FLUID_FRONT_ACTIVE, NAQUADAH_REACTOR_FLUID_SIDE_ACTIVE, NAQUADAH_REACTOR_FLUID_BOTTOM_ACTIVE, NAQUADAH_REACTOR_FLUID_TOP_ACTIVE, DIESEL_GENERATOR_BACK, DIESEL_GENERATOR_FRONT, DIESEL_GENERATOR_SIDE, DIESEL_GENERATOR_BOTTOM, DIESEL_GENERATOR_TOP, DIESEL_GENERATOR_BACK_ACTIVE, DIESEL_GENERATOR_FRONT_ACTIVE, DIESEL_GENERATOR_SIDE_ACTIVE, DIESEL_GENERATOR_BOTTOM_ACTIVE, DIESEL_GENERATOR_TOP_ACTIVE, GAS_TURBINE_BACK, GAS_TURBINE_FRONT, GAS_TURBINE_SIDE, GAS_TURBINE_BOTTOM, GAS_TURBINE_TOP, GAS_TURBINE_BACK_ACTIVE, GAS_TURBINE_FRONT_ACTIVE, GAS_TURBINE_SIDE_ACTIVE, GAS_TURBINE_BOTTOM_ACTIVE, GAS_TURBINE_TOP_ACTIVE, STEAM_TURBINE_BACK, STEAM_TURBINE_FRONT, STEAM_TURBINE_SIDE, STEAM_TURBINE_BOTTOM, STEAM_TURBINE_TOP, STEAM_TURBINE_BACK_ACTIVE, STEAM_TURBINE_FRONT_ACTIVE, STEAM_TURBINE_SIDE_ACTIVE, STEAM_TURBINE_BOTTOM_ACTIVE, STEAM_TURBINE_TOP_ACTIVE, MACHINE_COIL_CUPRONICKEL, MACHINE_COIL_KANTHAL, MACHINE_COIL_NICHROME, MACHINE_COIL_SUPERCONDUCTOR, BLOCK_BRONZEPREIN, BLOCK_IRREIN, BLOCK_PLASCRETE, BLOCK_TSREIN, OVERLAY_LOCKER, OVERLAY_LOCKER_000, OVERLAY_LOCKER_001, OVERLAY_LOCKER_002, OVERLAY_LOCKER_003, OVERLAY_LOCKER_004, OVERLAY_LOCKER_005, OVERLAY_LOCKER_006, OVERLAY_LOCKER_007, OVERLAY_LOCKER_008, OVERLAY_LOCKER_009, OVERLAY_LOCKER_010, OVERLAY_LOCKER_011, OVERLAY_LOCKER_012, OVERLAY_LOCKER_013, OVERLAY_LENS, OVERLAY_PIPE, OVERLAY_PIPE_IN, OVERLAY_PIPE_OUT, OVERLAY_MUFFLER, OVERLAY_CONTROLLER, OVERLAY_ACTIVITYDETECTOR, OVERLAY_ENERGYDETECTOR, OVERLAY_FLUIDDETECTOR, OVERLAY_ITEMDETECTOR, OVERLAY_FUSION1, OVERLAY_FUSION2, OVERLAY_FUSION3, OVERLAY_SCREEN, OVERLAY_QTANK, OVERLAY_QCHEST, OVERLAY_SHUTTER, OVERLAY_CLOSET, OVERLAY_DUCTTAPE, OVERLAY_MAINTENANCE, OVERLAY_CONVEYOR, OVERLAY_PUMP, OVERLAY_ARM, OVERLAY_DRAIN, OVERLAY_CRAFTING, OVERLAY_ENERGY_IN, OVERLAY_ENERGY_OUT, OVERLAY_ENERGY_IN_MULTI, OVERLAY_ENERGY_OUT_MULTI, OVERLAY_FRONT_LARGE_BOILER, OVERLAY_FRONT_LARGE_BOILER_ACTIVE, OVERLAY_FRONT_VACUUM_FREEZER, OVERLAY_FRONT_VACUUM_FREEZER_ACTIVE, OVERLAY_FRONT_MULTI_SMELTER, OVERLAY_FRONT_MULTI_SMELTER_ACTIVE, OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE, OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE_ACTIVE, OVERLAY_FRONT_IMPLOSION_COMPRESSOR, OVERLAY_FRONT_IMPLOSION_COMPRESSOR_ACTIVE, OVERLAY_TOP_POTIONBREWER, OVERLAY_TOP_REPLICATOR, OVERLAY_TOP_MASSFAB, OVERLAY_TOP_STEAM_HAMMER, OVERLAY_TOP_STEAM_FURNACE, OVERLAY_TOP_STEAM_ALLOY_SMELTER, OVERLAY_TOP_STEAM_MACERATOR, OVERLAY_TOP_STEAM_COMPRESSOR, OVERLAY_TOP_STEAM_EXTRACTOR, OVERLAY_TOP_DISASSEMBLER, OVERLAY_TOP_BOXINATOR, OVERLAY_TOP_ROCK_BREAKER, OVERLAY_TOP_SCANNER, OVERLAY_FRONT_POTIONBREWER, OVERLAY_FRONT_REPLICATOR, OVERLAY_FRONT_MASSFAB, OVERLAY_FRONT_STEAM_HAMMER, OVERLAY_FRONT_STEAM_FURNACE, OVERLAY_FRONT_STEAM_ALLOY_SMELTER, OVERLAY_FRONT_STEAM_MACERATOR, OVERLAY_FRONT_STEAM_COMPRESSOR, OVERLAY_FRONT_STEAM_EXTRACTOR, OVERLAY_FRONT_DISASSEMBLER, OVERLAY_FRONT_BOXINATOR, OVERLAY_FRONT_ROCK_BREAKER, OVERLAY_FRONT_SCANNER, OVERLAY_BOTTOM_POTIONBREWER, OVERLAY_BOTTOM_REPLICATOR, OVERLAY_BOTTOM_MASSFAB, OVERLAY_BOTTOM_STEAM_HAMMER, OVERLAY_BOTTOM_STEAM_FURNACE, OVERLAY_BOTTOM_STEAM_ALLOY_SMELTER, OVERLAY_BOTTOM_STEAM_MACERATOR, OVERLAY_BOTTOM_STEAM_COMPRESSOR, OVERLAY_BOTTOM_STEAM_EXTRACTOR, OVERLAY_BOTTOM_DISASSEMBLER, OVERLAY_BOTTOM_BOXINATOR, OVERLAY_BOTTOM_ROCK_BREAKER, OVERLAY_BOTTOM_SCANNER, OVERLAY_SIDE_POTIONBREWER, OVERLAY_SIDE_REPLICATOR, OVERLAY_SIDE_MASSFAB, OVERLAY_SIDE_STEAM_HAMMER, OVERLAY_SIDE_STEAM_FURNACE, OVERLAY_SIDE_STEAM_ALLOY_SMELTER, OVERLAY_SIDE_STEAM_MACERATOR, OVERLAY_SIDE_STEAM_COMPRESSOR, OVERLAY_SIDE_STEAM_EXTRACTOR, OVERLAY_SIDE_DISASSEMBLER, OVERLAY_SIDE_BOXINATOR, OVERLAY_SIDE_ROCK_BREAKER, OVERLAY_SIDE_SCANNER, OVERLAY_TOP_POTIONBREWER_ACTIVE, OVERLAY_TOP_REPLICATOR_ACTIVE, OVERLAY_TOP_MASSFAB_ACTIVE, OVERLAY_TOP_STEAM_HAMMER_ACTIVE, OVERLAY_TOP_STEAM_FURNACE_ACTIVE, OVERLAY_TOP_STEAM_ALLOY_SMELTER_ACTIVE, OVERLAY_TOP_STEAM_MACERATOR_ACTIVE, OVERLAY_TOP_STEAM_COMPRESSOR_ACTIVE, OVERLAY_TOP_STEAM_EXTRACTOR_ACTIVE, OVERLAY_TOP_DISASSEMBLER_ACTIVE, OVERLAY_TOP_BOXINATOR_ACTIVE, OVERLAY_TOP_ROCK_BREAKER_ACTIVE, OVERLAY_TOP_SCANNER_ACTIVE, OVERLAY_FRONT_POTIONBREWER_ACTIVE, OVERLAY_FRONT_REPLICATOR_ACTIVE, OVERLAY_FRONT_MASSFAB_ACTIVE, OVERLAY_FRONT_STEAM_HAMMER_ACTIVE, OVERLAY_FRONT_STEAM_FURNACE_ACTIVE, OVERLAY_FRONT_STEAM_ALLOY_SMELTER_ACTIVE, OVERLAY_FRONT_STEAM_MACERATOR_ACTIVE, OVERLAY_FRONT_STEAM_COMPRESSOR_ACTIVE, OVERLAY_FRONT_STEAM_EXTRACTOR_ACTIVE, OVERLAY_FRONT_DISASSEMBLER_ACTIVE, OVERLAY_FRONT_BOXINATOR_ACTIVE, OVERLAY_FRONT_ROCK_BREAKER_ACTIVE, OVERLAY_FRONT_SCANNER_ACTIVE, OVERLAY_BOTTOM_POTIONBREWER_ACTIVE, OVERLAY_BOTTOM_REPLICATOR_ACTIVE, OVERLAY_BOTTOM_MASSFAB_ACTIVE, OVERLAY_BOTTOM_STEAM_HAMMER_ACTIVE, OVERLAY_BOTTOM_STEAM_FURNACE_ACTIVE, OVERLAY_BOTTOM_STEAM_ALLOY_SMELTER_ACTIVE, OVERLAY_BOTTOM_STEAM_MACERATOR_ACTIVE, OVERLAY_BOTTOM_STEAM_COMPRESSOR_ACTIVE, OVERLAY_BOTTOM_STEAM_EXTRACTOR_ACTIVE, OVERLAY_BOTTOM_DISASSEMBLER_ACTIVE, OVERLAY_BOTTOM_BOXINATOR_ACTIVE, OVERLAY_BOTTOM_ROCK_BREAKER_ACTIVE, OVERLAY_BOTTOM_SCANNER_ACTIVE, OVERLAY_SIDE_POTIONBREWER_ACTIVE, OVERLAY_SIDE_REPLICATOR_ACTIVE, OVERLAY_SIDE_MASSFAB_ACTIVE, OVERLAY_SIDE_STEAM_HAMMER_ACTIVE, OVERLAY_SIDE_STEAM_FURNACE_ACTIVE, OVERLAY_SIDE_STEAM_ALLOY_SMELTER_ACTIVE, OVERLAY_SIDE_STEAM_MACERATOR_ACTIVE, OVERLAY_SIDE_STEAM_COMPRESSOR_ACTIVE, OVERLAY_SIDE_STEAM_EXTRACTOR_ACTIVE, OVERLAY_SIDE_DISASSEMBLER_ACTIVE, OVERLAY_SIDE_BOXINATOR_ACTIVE, OVERLAY_SIDE_ROCK_BREAKER_ACTIVE, OVERLAY_SIDE_SCANNER_ACTIVE, OVERLAY_ADV_PUMP, OVERLAY_TELEPORTER, OVERLAY_TELEPORTER_ACTIVE, FUSIONI_1, FUSIONI_2, FUSIONI_3, FUSIONI_4, FUSIONI_5, FUSIONI_6, FUSIONI_7, FUSIONI_8, FUSIONI_9, FUSIONI_10, FUSIONI_11, FUSIONI_12, FUSIONII_1, FUSIONII_2, FUSIONII_3, FUSIONII_4, FUSIONII_5, FUSIONII_6, FUSIONII_7, FUSIONII_8, FUSIONII_9, FUSIONII_10, FUSIONII_11, FUSIONII_12, LARGETURBINE_ST1, LARGETURBINE_ST2, LARGETURBINE_ST3, LARGETURBINE_ST4, LARGETURBINE_ST5, LARGETURBINE_ST6, LARGETURBINE_ST7, LARGETURBINE_ST8, LARGETURBINE_ST9, LARGETURBINE_ST_ACTIVE1, LARGETURBINE_ST_ACTIVE2, LARGETURBINE_ST_ACTIVE3, LARGETURBINE_ST_ACTIVE4, LARGETURBINE_ST_ACTIVE5, LARGETURBINE_ST_ACTIVE6, LARGETURBINE_ST_ACTIVE7, LARGETURBINE_ST_ACTIVE8, LARGETURBINE_ST_ACTIVE9, LARGETURBINE_SS1, LARGETURBINE_SS2, LARGETURBINE_SS3, LARGETURBINE_SS4, LARGETURBINE_SS5, LARGETURBINE_SS6, LARGETURBINE_SS7, LARGETURBINE_SS8, LARGETURBINE_SS9, LARGETURBINE_SS_ACTIVE1, LARGETURBINE_SS_ACTIVE2, LARGETURBINE_SS_ACTIVE3, LARGETURBINE_SS_ACTIVE4, LARGETURBINE_SS_ACTIVE5, LARGETURBINE_SS_ACTIVE6, LARGETURBINE_SS_ACTIVE7, LARGETURBINE_SS_ACTIVE8, LARGETURBINE_SS_ACTIVE9, LARGETURBINE_TI1, LARGETURBINE_TI2, LARGETURBINE_TI3, LARGETURBINE_TI4, LARGETURBINE_TI5, LARGETURBINE_TI6, LARGETURBINE_TI7, LARGETURBINE_TI8, LARGETURBINE_TI9, LARGETURBINE_TI_ACTIVE1, LARGETURBINE_TI_ACTIVE2, LARGETURBINE_TI_ACTIVE3, LARGETURBINE_TI_ACTIVE4, LARGETURBINE_TI_ACTIVE5, LARGETURBINE_TI_ACTIVE6, LARGETURBINE_TI_ACTIVE7, LARGETURBINE_TI_ACTIVE8, LARGETURBINE_TI_ACTIVE9, LARGETURBINE_TU1, LARGETURBINE_TU2, LARGETURBINE_TU3, LARGETURBINE_TU4, LARGETURBINE_TU5, LARGETURBINE_TU6, LARGETURBINE_TU7, LARGETURBINE_TU8, LARGETURBINE_TU9, LARGETURBINE_TU_ACTIVE1, LARGETURBINE_TU_ACTIVE2, LARGETURBINE_TU_ACTIVE3, LARGETURBINE_TU_ACTIVE4, LARGETURBINE_TU_ACTIVE5, LARGETURBINE_TU_ACTIVE6, LARGETURBINE_TU_ACTIVE7, LARGETURBINE_TU_ACTIVE8, LARGETURBINE_TU_ACTIVE9, MACHINE_CASING_TURBINE, BLOCK_ADAMANTIUM, BLOCK_ALUMINIUM, BLOCK_AMERICIUM, BLOCK_ANNEALEDCOPPER, BLOCK_ANTIMONY, BLOCK_ARSENIC, BLOCK_ASTRALSILVER, BLOCK_BATTERYALLOY, BLOCK_BERYLLIUM, BLOCK_BISMUTH, BLOCK_BISMUTHBRONZE, BLOCK_BLACKBRONZE, BLOCK_BLACKSTEEL, BLOCK_BLUEALLOY, BLOCK_BLUESTEEL, BLOCK_BRASS, BLOCK_BRONZE, BLOCK_CAESIUM, BLOCK_CERIUM, BLOCK_CHROME, BLOCK_CHROMIUMDIOXIDE, BLOCK_COBALT, BLOCK_COBALTBRASS, BLOCK_COPPER, BLOCK_CUPRONICKEL, BLOCK_DAMASCUSSTEEL, BLOCK_DARKIRON, BLOCK_DEEPIRON, BLOCK_DESH, BLOCK_DURANIUM, BLOCK_DYSPROSIUM, BLOCK_ELECTRUM, BLOCK_ELECTRUMFLUX, BLOCK_ENDERIUM, BLOCK_ERBIUM, BLOCK_EUROPIUM, BLOCK_FIERYSTEEL, BLOCK_GADOLINIUM, BLOCK_GALLIUM, BLOCK_HOLMIUM, BLOCK_HSLA, BLOCK_INDIUM, BLOCK_INFUSEDGOLD, BLOCK_INVAR, BLOCK_IRIDIUM, BLOCK_IRONMAGNETIC, BLOCK_IRONWOOD, BLOCK_KANTHAL, BLOCK_KNIGHTMETAL, BLOCK_LANTHANUM, BLOCK_LEAD, BLOCK_LUTETIUM, BLOCK_MAGNALIUM, BLOCK_MAGNESIUM, BLOCK_MANGANESE, BLOCK_METEORICIRON, BLOCK_METEORICSTEEL, BLOCK_MIDASIUM, BLOCK_MITHRIL, BLOCK_MOLYBDENUM, BLOCK_NAQUADAH, BLOCK_NAQUADAHALLOY, BLOCK_NAQUADAHENRICHED, BLOCK_NAQUADRIA, BLOCK_NEODYMIUM, BLOCK_NEODYMIUMMAGNETIC, BLOCK_NEUTRONIUM, BLOCK_NICHROME, BLOCK_NICKEL, BLOCK_NIOBIUM, BLOCK_NIOBIUMNITRIDE, BLOCK_NIOBIUMTITANIUM, BLOCK_OSMIRIDIUM, BLOCK_OSMIUM, BLOCK_PALLADIUM, BLOCK_PIGIRON, BLOCK_PLATINUM, BLOCK_PLUTONIUM, BLOCK_PLUTONIUM241, BLOCK_PRASEODYMIUM, BLOCK_PROMETHIUM, BLOCK_REDALLOY, BLOCK_REDSTEEL, BLOCK_ROSEGOLD, BLOCK_RUBIDIUM, BLOCK_SAMARIUM, BLOCK_SCANDIUM, BLOCK_SHADOWIRON, BLOCK_SHADOWSTEEL, BLOCK_SILICON, BLOCK_SILVER, BLOCK_SOLDERINGALLOY, BLOCK_STAINLESSSTEEL, BLOCK_STEEL, BLOCK_STEELMAGNETIC, BLOCK_STERLINGSILVER, BLOCK_SUNNARIUM, BLOCK_TANTALUM, BLOCK_TELLURIUM, BLOCK_TERBIUM, BLOCK_THAUMIUM, BLOCK_THORIUM, BLOCK_THULIUM, BLOCK_TIN, BLOCK_TINALLOY, BLOCK_TITANIUM, BLOCK_TRITANIUM, BLOCK_TUNGSTEN, BLOCK_TUNGSTENSTEEL, BLOCK_ULTIMET, BLOCK_URANIUM, BLOCK_URANIUM235, BLOCK_VANADIUM, BLOCK_VANADIUMGALLIUM, BLOCK_WROUGHTIRON, BLOCK_YTTRBIUM, BLOCK_YTTRIUM, BLOCK_YTTRIUMBARIUMCUPRATE, BLOCK_ZINC, BLOCK_TUNGSTENCARBIDE, BLOCK_VANADIUMSTEEL, BLOCK_HSSG, BLOCK_HSSE, BLOCK_HSSS, BLOCK_AERCRYSTAL, BLOCK_AMBER, BLOCK_AMETHYST, BLOCK_AQUACRYSTAL, BLOCK_BLUETOPAZ, BLOCK_CERTUSQUARTZ, BLOCK_DILITHIUM, BLOCK_ENDEREYE, BLOCK_ENDERPEARL, BLOCK_FOOLSRUBY, BLOCK_FORCE, BLOCK_FORCICIUM, BLOCK_FORCILLIUM, BLOCK_GREENSAPPHIRE, BLOCK_IGNISCRYSTAL, BLOCK_JASPER, BLOCK_LAZURITE, BLOCK_LIGNITE, BLOCK_MONAZITE, BLOCK_NITER, BLOCK_OLIVINE, BLOCK_OPAL, BLOCK_ORDOCRYSTAL, BLOCK_PERDITIOCRYSTAL, BLOCK_PHOSPHORUS, BLOCK_QUARTZITE, BLOCK_REDGARNET, BLOCK_RUBY, BLOCK_SAPPHIRE, BLOCK_SODALITE, BLOCK_TANZANITE, BLOCK_TERRACRYSTAL, BLOCK_TOPAZ, BLOCK_VINTEUM, BLOCK_YELLOWGARNET, BLOCK_NETHERSTAR, BLOCK_CHARCOAL; + , RENDERING_ERROR, PIPE_RESTRICTOR, INSULATION_FULL, INSULATION_TINY, INSULATION_SMALL, INSULATION_MEDIUM, INSULATION_LARGE, INSULATION_HUGE, CFOAM_FRESH, CFOAM_HARDENED, SOLARPANEL, SOLARPANEL_8V, SOLARPANEL_LV, SOLARPANEL_MV, SOLARPANEL_HV, SOLARPANEL_EV, SOLARPANEL_IV, SOLARPANEL_LuV, SOLARPANEL_ZPM, SOLARPANEL_UV, VENT_NORMAL, VENT_ADVANCED, COVER_WOOD_PLATE, ARROW_UP, ARROW_DOWN, ARROW_LEFT, ARROW_RIGHT, AUTOMATION_FILTER, AUTOMATION_TYPEFILTER, AUTOMATION_CHESTBUFFER, AUTOMATION_SUPERBUFFER, AUTOMATION_REGULATOR, CONCRETE_LIGHT_STONE, CONCRETE_LIGHT_COBBLE, CONCRETE_LIGHT_COBBLE_MOSSY, CONCRETE_LIGHT_BRICKS, CONCRETE_LIGHT_BRICKS_CRACKED, CONCRETE_LIGHT_BRICKS_MOSSY, CONCRETE_LIGHT_BRICKS_CHISELED, CONCRETE_LIGHT_SMOOTH, CONCRETE_DARK_STONE, CONCRETE_DARK_COBBLE, CONCRETE_DARK_COBBLE_MOSSY, CONCRETE_DARK_BRICKS, CONCRETE_DARK_BRICKS_CRACKED, CONCRETE_DARK_BRICKS_MOSSY, CONCRETE_DARK_BRICKS_CHISELED, CONCRETE_DARK_SMOOTH, GRANITE_BLACK_STONE, GRANITE_BLACK_COBBLE, GRANITE_BLACK_COBBLE_MOSSY, GRANITE_BLACK_BRICKS, GRANITE_BLACK_BRICKS_CRACKED, GRANITE_BLACK_BRICKS_MOSSY, GRANITE_BLACK_BRICKS_CHISELED, GRANITE_BLACK_SMOOTH, GRANITE_RED_STONE, GRANITE_RED_COBBLE, GRANITE_RED_COBBLE_MOSSY, GRANITE_RED_BRICKS, GRANITE_RED_BRICKS_CRACKED, GRANITE_RED_BRICKS_MOSSY, GRANITE_RED_BRICKS_CHISELED, GRANITE_RED_SMOOTH, MACHINE_BRONZEBRICKS_TOP, MACHINE_BRONZEBRICKS_SIDE, MACHINE_BRONZEBRICKS_BOTTOM, MACHINE_STEELBRICKS_TOP, MACHINE_STEELBRICKS_SIDE, MACHINE_STEELBRICKS_BOTTOM, MACHINE_BRONZE_TOP, MACHINE_BRONZE_SIDE, MACHINE_BRONZE_BOTTOM, MACHINE_STEEL_TOP, MACHINE_STEEL_SIDE, MACHINE_STEEL_BOTTOM, MACHINE_8V_TOP, MACHINE_8V_SIDE, MACHINE_8V_BOTTOM, MACHINE_LV_TOP, MACHINE_LV_SIDE, MACHINE_LV_BOTTOM, MACHINE_MV_TOP, MACHINE_MV_SIDE, MACHINE_MV_BOTTOM, MACHINE_HV_TOP, MACHINE_HV_SIDE, MACHINE_HV_BOTTOM, MACHINE_EV_TOP, MACHINE_EV_SIDE, MACHINE_EV_BOTTOM, MACHINE_IV_TOP, MACHINE_IV_SIDE, MACHINE_IV_BOTTOM, MACHINE_LuV_TOP, MACHINE_LuV_SIDE, MACHINE_LuV_BOTTOM, MACHINE_ZPM_TOP, MACHINE_ZPM_SIDE, MACHINE_ZPM_BOTTOM, MACHINE_UV_TOP, MACHINE_UV_SIDE, MACHINE_UV_BOTTOM, MACHINE_MAX_TOP, MACHINE_MAX_SIDE, MACHINE_MAX_BOTTOM, MACHINE_BRONZEPLATEDBRICKS, MACHINE_HEATPROOFCASING, MACHINE_BRONZEBLASTFURNACE, MACHINE_BRONZEBLASTFURNACE_ACTIVE, MACHINE_CASING_ROBUST_TUNGSTENSTEEL, MACHINE_CASING_CLEAN_STAINLESSSTEEL, MACHINE_CASING_STABLE_TITANIUM, MACHINE_CASING_FIREBOX_TITANIUM, MACHINE_CASING_FUSION_COIL, MACHINE_CASING_FUSION, MACHINE_CASING_FUSION_GLASS, MACHINE_CASING_FUSION_GLASS_YELLOW, MACHINE_CASING_FUSION_2, MACHINE_CASING_MAGIC, MACHINE_CASING_MAGIC_ACTIVE, MACHINE_CASING_MAGIC_FRONT, MACHINE_CASING_MAGIC_FRONT_ACTIVE, MACHINE_CASING_DRAGONEGG, MACHINE_CASING_SOLID_STEEL, MACHINE_CASING_FROST_PROOF, MACHINE_CASING_PUMP, MACHINE_CASING_MOTOR, MACHINE_CASING_PIPE_BRONZE, MACHINE_CASING_PIPE_STEEL, MACHINE_CASING_PIPE_TITANIUM, MACHINE_CASING_PIPE_TUNGSTENSTEEL, MACHINE_CASING_GEARBOX_BRONZE, MACHINE_CASING_GEARBOX_STEEL, MACHINE_CASING_GEARBOX_TITANIUM, MACHINE_CASING_GEARBOX_TUNGSTENSTEEL, MACHINE_CASING_DATA_DRIVE, MACHINE_CASING_CONTAINMENT_FIELD, MACHINE_CASING_ASSEMBLER, MACHINE_CASING_PROCESSOR, MACHINE_CASING_STRIPES_A, MACHINE_CASING_STRIPES_B, MACHINE_CASING_RADIOACTIVEHAZARD, MACHINE_CASING_BIOHAZARD, MACHINE_CASING_EXPLOSIONHAZARD, MACHINE_CASING_FIREHAZARD, MACHINE_CASING_ACIDHAZARD, MACHINE_CASING_MAGICHAZARD, MACHINE_CASING_FROSTHAZARD, MACHINE_CASING_NOISEHAZARD, MACHINE_CASING_GRATE, MACHINE_CASING_VENT, MACHINE_CASING_RADIATIONPROOF, MACHINE_CASING_FIREBOX_BRONZE, MACHINE_CASING_FIREBOX_STEEL, MACHINE_CASING_FIREBOX_TUNGSTENSTEEL, MACHINE_CASING_ENGINE_INTAKE, BOILER_SOLAR, BOILER_FRONT, BOILER_FRONT_ACTIVE, BOILER_LAVA_FRONT, BOILER_LAVA_FRONT_ACTIVE, NAQUADAH_REACTOR_SOLID_BACK, NAQUADAH_REACTOR_SOLID_FRONT, NAQUADAH_REACTOR_SOLID_SIDE, NAQUADAH_REACTOR_SOLID_BOTTOM, NAQUADAH_REACTOR_SOLID_TOP, NAQUADAH_REACTOR_SOLID_BACK_ACTIVE, NAQUADAH_REACTOR_SOLID_FRONT_ACTIVE, NAQUADAH_REACTOR_SOLID_SIDE_ACTIVE, NAQUADAH_REACTOR_SOLID_BOTTOM_ACTIVE, NAQUADAH_REACTOR_SOLID_TOP_ACTIVE, NAQUADAH_REACTOR_FLUID_BACK, NAQUADAH_REACTOR_FLUID_FRONT, NAQUADAH_REACTOR_FLUID_SIDE, NAQUADAH_REACTOR_FLUID_BOTTOM, NAQUADAH_REACTOR_FLUID_TOP, NAQUADAH_REACTOR_FLUID_BACK_ACTIVE, NAQUADAH_REACTOR_FLUID_FRONT_ACTIVE, NAQUADAH_REACTOR_FLUID_SIDE_ACTIVE, NAQUADAH_REACTOR_FLUID_BOTTOM_ACTIVE, NAQUADAH_REACTOR_FLUID_TOP_ACTIVE, DIESEL_GENERATOR_BACK, DIESEL_GENERATOR_FRONT, DIESEL_GENERATOR_SIDE, DIESEL_GENERATOR_BOTTOM, DIESEL_GENERATOR_TOP, DIESEL_GENERATOR_BACK_ACTIVE, DIESEL_GENERATOR_FRONT_ACTIVE, DIESEL_GENERATOR_SIDE_ACTIVE, DIESEL_GENERATOR_BOTTOM_ACTIVE, DIESEL_GENERATOR_TOP_ACTIVE, GAS_TURBINE_BACK, GAS_TURBINE_FRONT, GAS_TURBINE_SIDE, GAS_TURBINE_BOTTOM, GAS_TURBINE_TOP, GAS_TURBINE_BACK_ACTIVE, GAS_TURBINE_FRONT_ACTIVE, GAS_TURBINE_SIDE_ACTIVE, GAS_TURBINE_BOTTOM_ACTIVE, GAS_TURBINE_TOP_ACTIVE, STEAM_TURBINE_BACK, STEAM_TURBINE_FRONT, STEAM_TURBINE_SIDE, STEAM_TURBINE_BOTTOM, STEAM_TURBINE_TOP, STEAM_TURBINE_BACK_ACTIVE, STEAM_TURBINE_FRONT_ACTIVE, STEAM_TURBINE_SIDE_ACTIVE, STEAM_TURBINE_BOTTOM_ACTIVE, STEAM_TURBINE_TOP_ACTIVE, MACHINE_COIL_CUPRONICKEL, MACHINE_COIL_KANTHAL, MACHINE_COIL_NICHROME, MACHINE_COIL_SUPERCONDUCTOR, BLOCK_BRONZEPREIN, BLOCK_IRREIN, BLOCK_PLASCRETE, BLOCK_TSREIN, OVERLAY_LOCKER, OVERLAY_LOCKER_000, OVERLAY_LOCKER_001, OVERLAY_LOCKER_002, OVERLAY_LOCKER_003, OVERLAY_LOCKER_004, OVERLAY_LOCKER_005, OVERLAY_LOCKER_006, OVERLAY_LOCKER_007, OVERLAY_LOCKER_008, OVERLAY_LOCKER_009, OVERLAY_LOCKER_010, OVERLAY_LOCKER_011, OVERLAY_LOCKER_012, OVERLAY_LOCKER_013, OVERLAY_LENS, OVERLAY_PIPE, OVERLAY_PIPE_IN, OVERLAY_PIPE_OUT, OVERLAY_MUFFLER, OVERLAY_CONTROLLER, OVERLAY_ACTIVITYDETECTOR, OVERLAY_ENERGYDETECTOR, OVERLAY_FLUIDDETECTOR, OVERLAY_ITEMDETECTOR, OVERLAY_FUSION1, OVERLAY_FUSION2, OVERLAY_FUSION3, OVERLAY_SCREEN, OVERLAY_QTANK, OVERLAY_QCHEST, OVERLAY_SHUTTER, OVERLAY_CLOSET, OVERLAY_DUCTTAPE, OVERLAY_MAINTENANCE, OVERLAY_CONVEYOR, OVERLAY_PUMP, OVERLAY_ARM, OVERLAY_DRAIN, OVERLAY_CRAFTING, OVERLAY_ENERGY_IN, OVERLAY_ENERGY_OUT, OVERLAY_ENERGY_IN_MULTI, OVERLAY_ENERGY_OUT_MULTI, OVERLAY_FRONT_LARGE_BOILER, OVERLAY_FRONT_LARGE_BOILER_ACTIVE, OVERLAY_FRONT_VACUUM_FREEZER, OVERLAY_FRONT_VACUUM_FREEZER_ACTIVE, OVERLAY_FRONT_MULTI_SMELTER, OVERLAY_FRONT_MULTI_SMELTER_ACTIVE, OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE, OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE_ACTIVE, OVERLAY_FRONT_IMPLOSION_COMPRESSOR, OVERLAY_FRONT_IMPLOSION_COMPRESSOR_ACTIVE, OVERLAY_TOP_POTIONBREWER, OVERLAY_TOP_REPLICATOR, OVERLAY_TOP_MASSFAB, OVERLAY_TOP_STEAM_HAMMER, OVERLAY_TOP_STEAM_FURNACE, OVERLAY_TOP_STEAM_ALLOY_SMELTER, OVERLAY_TOP_STEAM_MACERATOR, OVERLAY_TOP_STEAM_COMPRESSOR, OVERLAY_TOP_STEAM_EXTRACTOR, OVERLAY_TOP_DISASSEMBLER, OVERLAY_TOP_BOXINATOR, OVERLAY_TOP_ROCK_BREAKER, OVERLAY_TOP_SCANNER, OVERLAY_FRONT_POTIONBREWER, OVERLAY_FRONT_REPLICATOR, OVERLAY_FRONT_MASSFAB, OVERLAY_FRONT_STEAM_HAMMER, OVERLAY_FRONT_STEAM_FURNACE, OVERLAY_FRONT_STEAM_ALLOY_SMELTER, OVERLAY_FRONT_STEAM_MACERATOR, OVERLAY_FRONT_STEAM_COMPRESSOR, OVERLAY_FRONT_STEAM_EXTRACTOR, OVERLAY_FRONT_DISASSEMBLER, OVERLAY_FRONT_BOXINATOR, OVERLAY_FRONT_ROCK_BREAKER, OVERLAY_FRONT_SCANNER, OVERLAY_BOTTOM_POTIONBREWER, OVERLAY_BOTTOM_REPLICATOR, OVERLAY_BOTTOM_MASSFAB, OVERLAY_BOTTOM_STEAM_HAMMER, OVERLAY_BOTTOM_STEAM_FURNACE, OVERLAY_BOTTOM_STEAM_ALLOY_SMELTER, OVERLAY_BOTTOM_STEAM_MACERATOR, OVERLAY_BOTTOM_STEAM_COMPRESSOR, OVERLAY_BOTTOM_STEAM_EXTRACTOR, OVERLAY_BOTTOM_DISASSEMBLER, OVERLAY_BOTTOM_BOXINATOR, OVERLAY_BOTTOM_ROCK_BREAKER, OVERLAY_BOTTOM_SCANNER, OVERLAY_SIDE_POTIONBREWER, OVERLAY_SIDE_REPLICATOR, OVERLAY_SIDE_MASSFAB, OVERLAY_SIDE_STEAM_HAMMER, OVERLAY_SIDE_STEAM_FURNACE, OVERLAY_SIDE_STEAM_ALLOY_SMELTER, OVERLAY_SIDE_STEAM_MACERATOR, OVERLAY_SIDE_STEAM_COMPRESSOR, OVERLAY_SIDE_STEAM_EXTRACTOR, OVERLAY_SIDE_DISASSEMBLER, OVERLAY_SIDE_BOXINATOR, OVERLAY_SIDE_ROCK_BREAKER, OVERLAY_SIDE_SCANNER, OVERLAY_TOP_POTIONBREWER_ACTIVE, OVERLAY_TOP_REPLICATOR_ACTIVE, OVERLAY_TOP_MASSFAB_ACTIVE, OVERLAY_TOP_STEAM_HAMMER_ACTIVE, OVERLAY_TOP_STEAM_FURNACE_ACTIVE, OVERLAY_TOP_STEAM_ALLOY_SMELTER_ACTIVE, OVERLAY_TOP_STEAM_MACERATOR_ACTIVE, OVERLAY_TOP_STEAM_COMPRESSOR_ACTIVE, OVERLAY_TOP_STEAM_EXTRACTOR_ACTIVE, OVERLAY_TOP_DISASSEMBLER_ACTIVE, OVERLAY_TOP_BOXINATOR_ACTIVE, OVERLAY_TOP_ROCK_BREAKER_ACTIVE, OVERLAY_TOP_SCANNER_ACTIVE, OVERLAY_FRONT_POTIONBREWER_ACTIVE, OVERLAY_FRONT_REPLICATOR_ACTIVE, OVERLAY_FRONT_MASSFAB_ACTIVE, OVERLAY_FRONT_STEAM_HAMMER_ACTIVE, OVERLAY_FRONT_STEAM_FURNACE_ACTIVE, OVERLAY_FRONT_STEAM_ALLOY_SMELTER_ACTIVE, OVERLAY_FRONT_STEAM_MACERATOR_ACTIVE, OVERLAY_FRONT_STEAM_COMPRESSOR_ACTIVE, OVERLAY_FRONT_STEAM_EXTRACTOR_ACTIVE, OVERLAY_FRONT_DISASSEMBLER_ACTIVE, OVERLAY_FRONT_BOXINATOR_ACTIVE, OVERLAY_FRONT_ROCK_BREAKER_ACTIVE, OVERLAY_FRONT_SCANNER_ACTIVE, OVERLAY_BOTTOM_POTIONBREWER_ACTIVE, OVERLAY_BOTTOM_REPLICATOR_ACTIVE, OVERLAY_BOTTOM_MASSFAB_ACTIVE, OVERLAY_BOTTOM_STEAM_HAMMER_ACTIVE, OVERLAY_BOTTOM_STEAM_FURNACE_ACTIVE, OVERLAY_BOTTOM_STEAM_ALLOY_SMELTER_ACTIVE, OVERLAY_BOTTOM_STEAM_MACERATOR_ACTIVE, OVERLAY_BOTTOM_STEAM_COMPRESSOR_ACTIVE, OVERLAY_BOTTOM_STEAM_EXTRACTOR_ACTIVE, OVERLAY_BOTTOM_DISASSEMBLER_ACTIVE, OVERLAY_BOTTOM_BOXINATOR_ACTIVE, OVERLAY_BOTTOM_ROCK_BREAKER_ACTIVE, OVERLAY_BOTTOM_SCANNER_ACTIVE, OVERLAY_SIDE_POTIONBREWER_ACTIVE, OVERLAY_SIDE_REPLICATOR_ACTIVE, OVERLAY_SIDE_MASSFAB_ACTIVE, OVERLAY_SIDE_STEAM_HAMMER_ACTIVE, OVERLAY_SIDE_STEAM_FURNACE_ACTIVE, OVERLAY_SIDE_STEAM_ALLOY_SMELTER_ACTIVE, OVERLAY_SIDE_STEAM_MACERATOR_ACTIVE, OVERLAY_SIDE_STEAM_COMPRESSOR_ACTIVE, OVERLAY_SIDE_STEAM_EXTRACTOR_ACTIVE, OVERLAY_SIDE_DISASSEMBLER_ACTIVE, OVERLAY_SIDE_BOXINATOR_ACTIVE, OVERLAY_SIDE_ROCK_BREAKER_ACTIVE, OVERLAY_SIDE_SCANNER_ACTIVE, OVERLAY_ADV_PUMP, OVERLAY_TELEPORTER, OVERLAY_TELEPORTER_ACTIVE, FUSIONI_1, FUSIONI_2, FUSIONI_3, FUSIONI_4, FUSIONI_5, FUSIONI_6, FUSIONI_7, FUSIONI_8, FUSIONI_9, FUSIONI_10, FUSIONI_11, FUSIONI_12, FUSIONII_1, FUSIONII_2, FUSIONII_3, FUSIONII_4, FUSIONII_5, FUSIONII_6, FUSIONII_7, FUSIONII_8, FUSIONII_9, FUSIONII_10, FUSIONII_11, FUSIONII_12, LARGETURBINE_ST1, LARGETURBINE_ST2, LARGETURBINE_ST3, LARGETURBINE_ST4, LARGETURBINE_ST5, LARGETURBINE_ST6, LARGETURBINE_ST7, LARGETURBINE_ST8, LARGETURBINE_ST9, LARGETURBINE_ST_ACTIVE1, LARGETURBINE_ST_ACTIVE2, LARGETURBINE_ST_ACTIVE3, LARGETURBINE_ST_ACTIVE4, LARGETURBINE_ST_ACTIVE5, LARGETURBINE_ST_ACTIVE6, LARGETURBINE_ST_ACTIVE7, LARGETURBINE_ST_ACTIVE8, LARGETURBINE_ST_ACTIVE9, LARGETURBINE_SS1, LARGETURBINE_SS2, LARGETURBINE_SS3, LARGETURBINE_SS4, LARGETURBINE_SS5, LARGETURBINE_SS6, LARGETURBINE_SS7, LARGETURBINE_SS8, LARGETURBINE_SS9, LARGETURBINE_SS_ACTIVE1, LARGETURBINE_SS_ACTIVE2, LARGETURBINE_SS_ACTIVE3, LARGETURBINE_SS_ACTIVE4, LARGETURBINE_SS_ACTIVE5, LARGETURBINE_SS_ACTIVE6, LARGETURBINE_SS_ACTIVE7, LARGETURBINE_SS_ACTIVE8, LARGETURBINE_SS_ACTIVE9, LARGETURBINE_TI1, LARGETURBINE_TI2, LARGETURBINE_TI3, LARGETURBINE_TI4, LARGETURBINE_TI5, LARGETURBINE_TI6, LARGETURBINE_TI7, LARGETURBINE_TI8, LARGETURBINE_TI9, LARGETURBINE_TI_ACTIVE1, LARGETURBINE_TI_ACTIVE2, LARGETURBINE_TI_ACTIVE3, LARGETURBINE_TI_ACTIVE4, LARGETURBINE_TI_ACTIVE5, LARGETURBINE_TI_ACTIVE6, LARGETURBINE_TI_ACTIVE7, LARGETURBINE_TI_ACTIVE8, LARGETURBINE_TI_ACTIVE9, LARGETURBINE_TU1, LARGETURBINE_TU2, LARGETURBINE_TU3, LARGETURBINE_TU4, LARGETURBINE_TU5, LARGETURBINE_TU6, LARGETURBINE_TU7, LARGETURBINE_TU8, LARGETURBINE_TU9, LARGETURBINE_TU_ACTIVE1, LARGETURBINE_TU_ACTIVE2, LARGETURBINE_TU_ACTIVE3, LARGETURBINE_TU_ACTIVE4, LARGETURBINE_TU_ACTIVE5, LARGETURBINE_TU_ACTIVE6, LARGETURBINE_TU_ACTIVE7, LARGETURBINE_TU_ACTIVE8, LARGETURBINE_TU_ACTIVE9, MACHINE_CASING_TURBINE, BLOCK_ADAMANTIUM, BLOCK_ALUMINIUM, BLOCK_AMERICIUM, BLOCK_ANNEALEDCOPPER, BLOCK_ANTIMONY, BLOCK_ARSENIC, BLOCK_ASTRALSILVER, BLOCK_BATTERYALLOY, BLOCK_BERYLLIUM, BLOCK_BISMUTH, BLOCK_BISMUTHBRONZE, BLOCK_BLACKBRONZE, BLOCK_BLACKSTEEL, BLOCK_BLUEALLOY, BLOCK_BLUESTEEL, BLOCK_BRASS, BLOCK_BRONZE, BLOCK_CAESIUM, BLOCK_CERIUM, BLOCK_CHROME, BLOCK_CHROMIUMDIOXIDE, BLOCK_COBALT, BLOCK_COBALTBRASS, BLOCK_COPPER, BLOCK_CUPRONICKEL, BLOCK_DAMASCUSSTEEL, BLOCK_DARKIRON, BLOCK_DEEPIRON, BLOCK_DESH, BLOCK_DURANIUM, BLOCK_DYSPROSIUM, BLOCK_ELECTRUM, BLOCK_ELECTRUMFLUX, BLOCK_ENDERIUM, BLOCK_ERBIUM, BLOCK_EUROPIUM, BLOCK_FIERYSTEEL, BLOCK_GADOLINIUM, BLOCK_GALLIUM, BLOCK_HOLMIUM, BLOCK_HSLA, BLOCK_INDIUM, BLOCK_INFUSEDGOLD, BLOCK_INVAR, BLOCK_IRIDIUM, BLOCK_IRONMAGNETIC, BLOCK_IRONWOOD, BLOCK_KANTHAL, BLOCK_KNIGHTMETAL, BLOCK_LANTHANUM, BLOCK_LEAD, BLOCK_LUTETIUM, BLOCK_MAGNALIUM, BLOCK_MAGNESIUM, BLOCK_MANGANESE, BLOCK_METEORICIRON, BLOCK_METEORICSTEEL, BLOCK_MIDASIUM, BLOCK_MITHRIL, BLOCK_MOLYBDENUM, BLOCK_NAQUADAH, BLOCK_NAQUADAHALLOY, BLOCK_NAQUADAHENRICHED, BLOCK_NAQUADRIA, BLOCK_NEODYMIUM, BLOCK_NEODYMIUMMAGNETIC, BLOCK_NEUTRONIUM, BLOCK_NICHROME, BLOCK_NICKEL, BLOCK_NIOBIUM, BLOCK_NIOBIUMNITRIDE, BLOCK_NIOBIUMTITANIUM, BLOCK_OSMIRIDIUM, BLOCK_OSMIUM, BLOCK_PALLADIUM, BLOCK_PIGIRON, BLOCK_PLATINUM, BLOCK_PLUTONIUM, BLOCK_PLUTONIUM241, BLOCK_PRASEODYMIUM, BLOCK_PROMETHIUM, BLOCK_REDALLOY, BLOCK_REDSTEEL, BLOCK_ROSEGOLD, BLOCK_RUBIDIUM, BLOCK_SAMARIUM, BLOCK_SCANDIUM, BLOCK_SHADOWIRON, BLOCK_SHADOWSTEEL, BLOCK_SILICON, BLOCK_SILVER, BLOCK_SOLDERINGALLOY, BLOCK_STAINLESSSTEEL, BLOCK_STEEL, BLOCK_STEELMAGNETIC, BLOCK_STERLINGSILVER, BLOCK_SUNNARIUM, BLOCK_TANTALUM, BLOCK_TELLURIUM, BLOCK_TERBIUM, BLOCK_THAUMIUM, BLOCK_THORIUM, BLOCK_THULIUM, BLOCK_TIN, BLOCK_TINALLOY, BLOCK_TITANIUM, BLOCK_TRITANIUM, BLOCK_TUNGSTEN, BLOCK_TUNGSTENSTEEL, BLOCK_ULTIMET, BLOCK_URANIUM, BLOCK_URANIUM235, BLOCK_VANADIUM, BLOCK_VANADIUMGALLIUM, BLOCK_WROUGHTIRON, BLOCK_YTTRBIUM, BLOCK_YTTRIUM, BLOCK_YTTRIUMBARIUMCUPRATE, BLOCK_ZINC, BLOCK_TUNGSTENCARBIDE, BLOCK_VANADIUMSTEEL, BLOCK_HSSG, BLOCK_HSSE, BLOCK_HSSS, BLOCK_AERCRYSTAL, BLOCK_AMBER, BLOCK_AMETHYST, BLOCK_AQUACRYSTAL, BLOCK_BLUETOPAZ, BLOCK_CERTUSQUARTZ, BLOCK_DILITHIUM, BLOCK_ENDEREYE, BLOCK_ENDERPEARL, BLOCK_FOOLSRUBY, BLOCK_FORCE, BLOCK_FORCICIUM, BLOCK_FORCILLIUM, BLOCK_GREENSAPPHIRE, BLOCK_IGNISCRYSTAL, BLOCK_JASPER, BLOCK_LAZURITE, BLOCK_LIGNITE, BLOCK_MONAZITE, BLOCK_NITER, BLOCK_OLIVINE, BLOCK_OPAL, BLOCK_ORDOCRYSTAL, BLOCK_PERDITIOCRYSTAL, BLOCK_PHOSPHORUS, BLOCK_QUARTZITE, BLOCK_REDGARNET, BLOCK_RUBY, BLOCK_SAPPHIRE, BLOCK_SODALITE, BLOCK_TANZANITE, BLOCK_TERRACRYSTAL, BLOCK_TOPAZ, BLOCK_VINTEUM, BLOCK_YELLOWGARNET, BLOCK_NETHERSTAR, BLOCK_CHARCOAL; /** * Icon for Fresh CFoam @@ -671,4 +671,4 @@ public class Textures { } } } -} +} \ No newline at end of file diff --git a/src/main/java/gregtech/api/interfaces/IToolStats.java b/src/main/java/gregtech/api/interfaces/IToolStats.java index d6819ec1..3c03bb85 100644 --- a/src/main/java/gregtech/api/interfaces/IToolStats.java +++ b/src/main/java/gregtech/api/interfaces/IToolStats.java @@ -98,10 +98,16 @@ public interface IToolStats { public boolean isCrowbar(); /** - * @return If this Tool can be used as an RC Crowbar. + * @return If this Tool can be used as an FR Grafter. */ public boolean isGrafter(); + public boolean isChainsaw(); + /** + * @return If this Tool can be used as an BC Wrench. + */ + public boolean isWrench(); + /** * @return If this Tool can be used as Weapon i.e. if that is the main purpose. */ diff --git a/src/main/java/gregtech/api/interfaces/internal/IGT_RecipeAdder.java b/src/main/java/gregtech/api/interfaces/internal/IGT_RecipeAdder.java index a98e9c60..92eb801a 100644 --- a/src/main/java/gregtech/api/interfaces/internal/IGT_RecipeAdder.java +++ b/src/main/java/gregtech/api/interfaces/internal/IGT_RecipeAdder.java @@ -98,6 +98,18 @@ public interface IGT_RecipeAdder { */ public boolean addChemicalRecipe(ItemStack aInput1, ItemStack aInput2, FluidStack aFluidInput, FluidStack aFluidOutput, ItemStack aOutput, int aDuration); + /** + * Adds a Chemical Recipe + * + * @param aInput1 must be != null + * @param aInput2 must be != null + * @param aOutput1 must be != null + * @param aDuration must be > 0 + * @param aEUtick must be > 0 + */ + public boolean addChemicalRecipe(ItemStack aInput1, ItemStack aInput2, FluidStack aFluidInput, FluidStack aFluidOutput, ItemStack aOutput, int aDuration, int aEUtick); + + /** * Adds a Blast Furnace Recipe * @@ -147,6 +159,9 @@ public interface IGT_RecipeAdder { */ public boolean addAlloySmelterRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aOutput1, int aDuration, int aEUt); + public boolean addAlloySmelterRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aOutput1, int aDuration, int aEUt, boolean hidden); + + /** * Adds a CNC-Machine Recipe * @@ -177,7 +192,6 @@ public interface IGT_RecipeAdder { */ public boolean addAssemblerRecipe(ItemStack aInput1, ItemStack aInput2, FluidStack aFluidInput, ItemStack aOutput1, int aDuration, int aEUt); - /** * Adds a Assemblyline Recipe * @@ -189,7 +203,6 @@ public interface IGT_RecipeAdder { */ public boolean addAssemblylineRecipe(ItemStack[] aInputs, FluidStack[] aFluidInputs, ItemStack aOutput1, int aDuration, int aEUt); - /** * Adds a Forge Hammer Recipe * @@ -374,6 +387,11 @@ public interface IGT_RecipeAdder { * Adds a Recipe for Fluid Smelting */ public boolean addFluidSmelterRecipe(ItemStack aInput, ItemStack aRemains, FluidStack aOutput, int aChance, int aDuration, int aEUt); + + /** + * Adds a Recipe for Fluid Smelting + */ + public boolean addFluidSmelterRecipe(ItemStack aInput, ItemStack aRemains, FluidStack aOutput, int aChance, int aDuration, int aEUt, boolean hidden); /** * Adds a Recipe for Fluid Extraction @@ -430,11 +448,54 @@ public interface IGT_RecipeAdder { */ public boolean addArcFurnaceRecipe(ItemStack aInput, ItemStack[] aOutputs, int[] aChances, int aDuration, int aEUt); + /** + * Adds a Recipe for the Arc Furnace. (up to 4 Outputs) + */ + public boolean addArcFurnaceRecipe(ItemStack aInput, ItemStack[] aOutputs, int[] aChances, int aDuration, int aEUt, boolean hidden); + + /** * Adds a Recipe for the GT Pulveriser. (up to 4 Outputs) */ public boolean addPulveriserRecipe(ItemStack aInput, ItemStack[] aOutputs, int[] aChances, int aDuration, int aEUt); + /** + * Adds a Recipe for the GT Pulveriser. (up to 4 Outputs) + */ + public boolean addPulveriserRecipe(ItemStack aInput, ItemStack[] aOutputs, int[] aChances, int aDuration, int aEUt, boolean hidden); + + /** + * Adds a Distillation Tower Recipe + * Every Fluid also gets seperate distillation recipes + * + * @param aInput1 must be != null + * @param aOutputs must be != null 1-5 Fluids + * @param aOutput2 can be null + */ + public boolean addUniversalDistillationRecipe(FluidStack aInput, FluidStack[] aOutputs, ItemStack aOutput2, int aDuration, int aEUt); + + /** + * Adds Pyrolyse Recipe + * + * @param aInput + * @param intCircuit + * @param aOutput + * @param aFluidOutput + * @param aDuration + * @param aEUt + */ + public boolean addPyrolyseRecipe(ItemStack aInput, FluidStack aFluidInput, int intCircuit, ItemStack aOutput, FluidStack aFluidOutput, int aDuration, int aEUt); + + /** + * Adds Oil Cracking Recipe + * + * @param aInput + * @param aOutput + * @param aDuration + * @param aEUt + */ + public boolean addCrackingRecipe(FluidStack aInput, FluidStack aOutput, int aDuration, int aEUt); + /** * Adds a Sound to the Sonictron9001 * you should NOT call this in the preInit-Phase! diff --git a/src/main/java/gregtech/api/items/GT_CoolantCellIC_Item.java b/src/main/java/gregtech/api/items/GT_CoolantCellIC_Item.java index cc986564..0d8c9a67 100644 --- a/src/main/java/gregtech/api/items/GT_CoolantCellIC_Item.java +++ b/src/main/java/gregtech/api/items/GT_CoolantCellIC_Item.java @@ -39,7 +39,6 @@ public class GT_CoolantCellIC_Item } public int alterHeat(IReactor aReactor, ItemStack aStack, int x, int y, int aHeat) { - int tHeat = getHeatOfStack(aStack); if ((tHeat == 0) && (getControlTagOfStack(aStack) != 0)) { setControlTagOfStack(aStack, 0); diff --git a/src/main/java/gregtech/api/items/GT_CoolantCell_Item.java b/src/main/java/gregtech/api/items/GT_CoolantCell_Item.java index c085bf93..5a94d3b4 100644 --- a/src/main/java/gregtech/api/items/GT_CoolantCell_Item.java +++ b/src/main/java/gregtech/api/items/GT_CoolantCell_Item.java @@ -67,5 +67,4 @@ public class GT_CoolantCell_Item NBTTagCompound nbtData = StackUtil.getOrCreateNbtData(stack); nbtData.setInteger("tag", tag); } - } diff --git a/src/main/java/gregtech/api/items/GT_MetaBase_Item.java b/src/main/java/gregtech/api/items/GT_MetaBase_Item.java index c97d34f7..a921377a 100644 --- a/src/main/java/gregtech/api/items/GT_MetaBase_Item.java +++ b/src/main/java/gregtech/api/items/GT_MetaBase_Item.java @@ -560,7 +560,7 @@ public abstract class GT_MetaBase_Item extends GT_Generic_Item implements ISpeci @Override public int getItemStackLimit(ItemStack aStack) { Long[] tStats = getElectricStats(aStack); - if (tStats != null && (tStats[3] == -1 || tStats[3] == -3) && getRealCharge(aStack) > 0) return 1; + if (tStats != null && (tStats[3] == -1 || tStats[3] == -2 || tStats[3] == -3) && getRealCharge(aStack) > 0) return 1; tStats = getFluidContainerStats(aStack); if (tStats != null) return (int) (long) tStats[1]; if(getDamage(aStack)==32763)return 1; diff --git a/src/main/java/gregtech/api/items/GT_MetaGenerated_Item_X32.java b/src/main/java/gregtech/api/items/GT_MetaGenerated_Item_X32.java index e4014c56..38ed38bd 100644 --- a/src/main/java/gregtech/api/items/GT_MetaGenerated_Item_X32.java +++ b/src/main/java/gregtech/api/items/GT_MetaGenerated_Item_X32.java @@ -59,7 +59,7 @@ public abstract class GT_MetaGenerated_Item_X32 extends GT_MetaGenerated_Item { } else { GT_OreDictUnificator.registerOre(tPrefix.get(tMaterial), tStack); } - if ((tPrefix == OrePrefixes.stick || tPrefix == OrePrefixes.wireFine) && (tMaterial == Materials.Lead || tMaterial == Materials.Tin || tMaterial == Materials.SolderingAlloy)) { + if ((tPrefix == OrePrefixes.stick || tPrefix == OrePrefixes.wireFine || tPrefix == OrePrefixes.ingot) && (tMaterial == Materials.Lead || tMaterial == Materials.Tin || tMaterial == Materials.SolderingAlloy)) { GregTech_API.sSolderingMetalList.add(tStack); } } diff --git a/src/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java b/src/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java index 864c66b4..cfbf9deb 100644 --- a/src/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java +++ b/src/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java @@ -1,8 +1,10 @@ package gregtech.api.items; +import buildcraft.api.tools.IToolWrench; import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import crazypants.enderio.api.tool.ITool; import forestry.api.arboriculture.IToolGrafter; import gregtech.api.GregTech_API; import gregtech.api.enchants.Enchantment_Radioactivity; @@ -23,6 +25,7 @@ import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.item.EntityMinecart; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.EnumAction; @@ -36,6 +39,7 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IIcon; import net.minecraft.util.MathHelper; import net.minecraft.world.World; +import net.minecraftforge.common.IShearable; import net.minecraftforge.event.world.BlockEvent; import java.util.ArrayList; @@ -51,8 +55,8 @@ import static gregtech.api.enums.GT_Values.MOD_ID_RC; * This is an example on how you can create a Tool ItemStack, in this case a Bismuth Wrench: * GT_MetaGenerated_Tool.sInstances.get("gt.metatool.01").getToolWithStats(16, 1, Materials.Bismuth, Materials.Bismuth, null); */ -@Optional.InterfaceList(value = {@Optional.Interface(iface = "forestry.api.arboriculture.IToolGrafter", modid = MOD_ID_FR), @Optional.Interface(iface = "mods.railcraft.api.core.items.IToolCrowbar", modid = MOD_ID_RC)}) -public abstract class GT_MetaGenerated_Tool extends GT_MetaBase_Item implements IDamagableItem, IToolGrafter, IToolCrowbar { +@Optional.InterfaceList(value = {@Optional.Interface(iface = "forestry.api.arboriculture.IToolGrafter", modid = MOD_ID_FR), @Optional.Interface(iface = "mods.railcraft.api.core.items.IToolCrowbar", modid = MOD_ID_RC), @Optional.Interface(iface = "buildcraft.api.tools.IToolWrench", modid = "BuildCraft"), @Optional.Interface(iface = "crazypants.enderio.api.tool.ITool", modid = "EnderIO")}) +public abstract class GT_MetaGenerated_Tool extends GT_MetaBase_Item implements IDamagableItem, IToolGrafter, IToolCrowbar, IToolWrench, ITool { /** * All instances of this Item Class are listed here. * This gets used to register the Renderer to all Items of this Type, if useStandardMetaItemRenderer() returns true. @@ -208,6 +212,38 @@ public abstract class GT_MetaGenerated_Tool extends GT_MetaBase_Item implements if (isItemStackUsable(aStack) && getDigSpeed(aStack, aBlock, aMetaData) > 0.0F) doDamage(aStack, tStats.convertBlockDrops(aDrops, aStack, aPlayer, aBlock, aX, aY, aZ, aMetaData, aFortune, aSilkTouch, aEvent) * tStats.getToolDamagePerDropConversion()); } + + @Override + public boolean onBlockStartBreak(ItemStack aStack, int aX, int aY, int aZ, EntityPlayer aPlayer) + { + if(aPlayer.worldObj.isRemote){ + return false; + } + IToolStats tStats = getToolStats(aStack); + Block aBlock = aPlayer.worldObj.getBlock(aX, aY, aZ); + if (tStats.isChainsaw()&&(aBlock instanceof IShearable)) + { + IShearable target = (IShearable)aBlock; + if ((target.isShearable(aStack, aPlayer.worldObj, aX, aY, aZ))) + { + ArrayList drops = target.onSheared(aStack, aPlayer.worldObj, aX, aY, aZ, EnchantmentHelper.getEnchantmentLevel(Enchantment.fortune.effectId, aStack)); + for (ItemStack stack : drops) + { + float f = 0.7F; + double d = itemRand.nextFloat() * f + (1.0F - f) * 0.5D; + double d1 = itemRand.nextFloat() * f + (1.0F - f) * 0.5D; + double d2 = itemRand.nextFloat() * f + (1.0F - f) * 0.5D; + EntityItem entityitem = new EntityItem(aPlayer.worldObj, aX + d, aY + d1, aZ + d2, stack); + entityitem.delayBeforeCanPickup = 10; + aPlayer.worldObj.spawnEntityInWorld(entityitem); + } + aPlayer.addStat(net.minecraft.stats.StatList.mineBlockStatArray[Block.getIdFromBlock(aBlock)], 1); + onBlockDestroyed(aStack, aPlayer.worldObj, aBlock, aX, aY, aZ, aPlayer); + } + return false; + } + return super.onBlockStartBreak(aStack, aX, aY, aZ, aPlayer); + } @Override public boolean onLeftClickEntity(ItemStack aStack, EntityPlayer aPlayer, Entity aEntity) { @@ -312,6 +348,25 @@ public abstract class GT_MetaGenerated_Tool extends GT_MetaBase_Item implements aList.add(tOffset + 1, EnumChatFormatting.WHITE + tMaterial.mDefaultLocalName + EnumChatFormatting.YELLOW + " lvl " + getHarvestLevel(aStack, "") + EnumChatFormatting.GRAY); aList.add(tOffset + 2, EnumChatFormatting.WHITE + "Attack Damage: " + EnumChatFormatting.BLUE + getToolCombatDamage(aStack) + EnumChatFormatting.GRAY); aList.add(tOffset + 3, EnumChatFormatting.WHITE + "Mining Speed: " + EnumChatFormatting.LIGHT_PURPLE + Math.max(Float.MIN_NORMAL, tStats.getSpeedMultiplier() * getPrimaryMaterial(aStack).mToolSpeed) + EnumChatFormatting.GRAY); + NBTTagCompound aNBT = aStack.getTagCompound(); + if (aNBT != null) { + aNBT = aNBT.getCompoundTag("GT.ToolStats"); + if (aNBT != null && aNBT.hasKey("Heat")){ + int tHeat = aNBT.getInteger("Heat"); + long tWorldTime = aPlayer.getEntityWorld().getWorldTime(); + if(aNBT.hasKey("HeatTime")){ + long tHeatTime = aNBT.getLong("HeatTime"); + if(tWorldTime>(tHeatTime+10)){ + tHeat = (int) (tHeat - ((tWorldTime-tHeatTime)/10)); + if(tHeat<300&&tHeat>-10000)tHeat=300; + } + aNBT.setLong("HeatTime", tWorldTime); + if(tHeat>-10000)aNBT.setInteger("Heat", tHeat); + } + + aList.add(tOffset + 3, EnumChatFormatting.RED + "Heat: " + aNBT.getInteger("Heat")+" K" + EnumChatFormatting.GRAY); + } + } } } } @@ -456,6 +511,43 @@ public abstract class GT_MetaGenerated_Tool extends GT_MetaBase_Item implements IToolStats tStats = getToolStats(aStack); if (tStats != null) doDamage(aStack, tStats.getToolDamagePerEntityAttack()); } + + @Override + public boolean canWrench(EntityPlayer player, int x, int y, int z) { + if(player==null)return false; + if(player.getCurrentEquippedItem()==null)return false; + if (!isItemStackUsable(player.getCurrentEquippedItem())) return false; + IToolStats tStats = getToolStats(player.getCurrentEquippedItem()); + return tStats != null && tStats.isWrench(); + } + + @Override + public void wrenchUsed(EntityPlayer player, int x, int y, int z) { + if(player==null)return; + if(player.getCurrentEquippedItem()==null)return; + IToolStats tStats = getToolStats(player.getCurrentEquippedItem()); + if (tStats != null) doDamage(player.getCurrentEquippedItem(), tStats.getToolDamagePerEntityAttack()); + } + + @Override + public boolean canUse(ItemStack stack, EntityPlayer player, int x, int y, int z){ + return canWrench(player, x, y, z); + } + + @Override + public void used(ItemStack stack, EntityPlayer player, int x, int y, int z){ + wrenchUsed(player, x, y, z); + } + + @Override + public boolean shouldHideFacades(ItemStack stack, EntityPlayer player) { + if(player==null)return false; + if(player.getCurrentEquippedItem()==null)return false; + if (!isItemStackUsable(player.getCurrentEquippedItem())) return false; + IToolStats tStats = getToolStats(player.getCurrentEquippedItem()); + return tStats.isWrench(); + } + @Override public boolean canLink(EntityPlayer aPlayer, ItemStack aStack, EntityMinecart cart) { diff --git a/src/main/java/gregtech/api/items/GT_RadioactiveCellIC_Item.java b/src/main/java/gregtech/api/items/GT_RadioactiveCellIC_Item.java index eeec476d..455cfb14 100644 --- a/src/main/java/gregtech/api/items/GT_RadioactiveCellIC_Item.java +++ b/src/main/java/gregtech/api/items/GT_RadioactiveCellIC_Item.java @@ -162,4 +162,4 @@ public class GT_RadioactiveCellIC_Item extends GT_RadioactiveCell_Item implement this.y = y1; } } -} \ No newline at end of file +} diff --git a/src/main/java/gregtech/api/items/GT_RadioactiveCell_Item.java b/src/main/java/gregtech/api/items/GT_RadioactiveCell_Item.java index e990fc29..082dab75 100644 --- a/src/main/java/gregtech/api/items/GT_RadioactiveCell_Item.java +++ b/src/main/java/gregtech/api/items/GT_RadioactiveCell_Item.java @@ -1,5 +1,6 @@ package gregtech.api.items; +import ic2.api.item.IBoxable; import ic2.core.util.StackUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -8,7 +9,7 @@ import net.minecraft.nbt.NBTTagCompound; import java.util.List; public class GT_RadioactiveCell_Item - extends GT_Generic_Item { + extends GT_Generic_Item implements IBoxable{ protected int cellCount; protected int maxDmg; protected int dura; @@ -140,4 +141,9 @@ public class GT_RadioactiveCell_Item //aList.add("Time left: " + (this.maxDelay - getDurabilityOfStack(aStack)) + " secs"); aList.add("Durability: " + (this.maxDmg - getDurabilityOfStack(aStack)) + "/" + this.maxDmg); } -} \ No newline at end of file + + @Override + public boolean canBeStoredInToolbox(ItemStack itemstack) { + return true; + } +} diff --git a/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java b/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java index bed5d38c..1470ac73 100644 --- a/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java +++ b/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java @@ -448,6 +448,12 @@ public class BaseMetaTileEntity extends BaseTileEntity implements IGregTechTileE for (int i = mMetaTileEntity.dechargerSlotStartIndex(), k = mMetaTileEntity.dechargerSlotCount() + i; i < k; i++) { if (mMetaTileEntity.mInventory[i] != null && getStoredEU() < getEUCapacity()) { dischargeItem(mMetaTileEntity.mInventory[i]); + if(ic2.api.info.Info.itemEnergy.getEnergyValue(mMetaTileEntity.mInventory[i])>0){ + if((getStoredEU() + ic2.api.info.Info.itemEnergy.getEnergyValue(mMetaTileEntity.mInventory[i])) 0.6 && difference < 0.99) { + aSide = 1; + } + if (difference < -1.5 && difference > -1.99) { + aSide = 0; + } + difference = aEntity.posZ - (double) aPipe.zCoord; + if (difference < -0.05 && difference > -0.4) { + aSide = 2; + } + if (difference > 1.05 && difference < 1.4) { + aSide = 3; + } + difference = aEntity.posX - (double) aPipe.xCoord; + if (difference < -0.05 && difference > -0.4) { + aSide = 4; + } + if (difference > 1.05 && difference < 1.4) { + aSide = 5; + } + boolean tCovered = false; + if (aSide < 6 && mBaseMetaTileEntity.getCoverIDAtSide(aSide) > 0) { + tCovered = true; + } + if((mConnections & (byte)(Math.pow(2, aSide))) != 0){ + tCovered = true; + } + //System.out.println("Cover: "+mBaseMetaTileEntity.getCoverIDAtSide(aSide)); + //toDo: filter cover ids that actually protect against temperature (rubber/plastic maybe?) + return tCovered; + } + @Override public void onServerStart() {/*Do nothing*/} diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java index deed3726..5d7a7255 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java @@ -77,7 +77,7 @@ public class GT_MetaPipeEntity_Cable extends MetaPipeEntity implements IMetaTile @Override public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aConnections, byte aColorIndex, boolean aConnected, boolean aRedstone) { if (!mInsulated) - return new ITexture[]{new GT_RenderedTexture(mMaterial.mIconSet.mTextures[TextureSet.INDEX_wire], Dyes.getModulation(aColorIndex, mMaterial.mRGBa) )}; + return new ITexture[]{new GT_RenderedTexture(mMaterial.mIconSet.mTextures[TextureSet.INDEX_wire], mMaterial.mRGBa)}; if (aConnected) { float tThickNess = getThickNess(); if (tThickNess < 0.37F) @@ -95,7 +95,7 @@ public class GT_MetaPipeEntity_Cable extends MetaPipeEntity implements IMetaTile @Override public void onEntityCollidedWithBlock(World aWorld, int aX, int aY, int aZ, Entity aEntity) { - if (mCanShock && (((BaseMetaPipeEntity) getBaseMetaTileEntity()).mConnections & -128) == 0 && aEntity instanceof EntityLivingBase) + if (mCanShock && (((BaseMetaPipeEntity) getBaseMetaTileEntity()).mConnections & -128) == 0 && aEntity instanceof EntityLivingBase && !isCoverOnSide((BaseMetaPipeEntity) getBaseMetaTileEntity(), (EntityLivingBase) aEntity)) GT_Utility.applyElectricityDamage((EntityLivingBase) aEntity, mTransferredVoltageLast20, mTransferredAmperageLast20); } @@ -199,9 +199,9 @@ public class GT_MetaPipeEntity_Cable extends MetaPipeEntity implements IMetaTile mTransferredVoltageLast20 = Math.max(mTransferredVoltageLast20, aVoltage); mTransferredAmperageLast20 = Math.max(mTransferredAmperageLast20, mTransferredAmperage); if (aVoltage > mVoltage || mTransferredAmperage > mAmperage) { - if(mOverheat> GT_Mod.gregtechproxy.mWireHeatingTicks * 100){ - getBaseMetaTileEntity().setToFire();}else{mOverheat +=100;} - return aAmperage; + if(mOverheat>GT_Mod.gregtechproxy.mWireHeatingTicks * 100){ + getBaseMetaTileEntity().setToFire();}else{mOverheat +=100;} + return aAmperage; } return rUsedAmperes; } @@ -210,9 +210,7 @@ public class GT_MetaPipeEntity_Cable extends MetaPipeEntity implements IMetaTile public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { if (aBaseMetaTileEntity.isServerSide()) { mTransferredAmperage = 0; - if(mOverheat>0)mOverheat--; - if (aTick % 20 == 0) { mTransferredVoltageLast20 = 0; mTransferredAmperageLast20 = 0; @@ -289,4 +287,4 @@ public class GT_MetaPipeEntity_Cable extends MetaPipeEntity implements IMetaTile public void loadNBTData(NBTTagCompound aNBT) { // } -} +} \ No newline at end of file diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java index 7899b9d3..59e38ac5 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java @@ -131,9 +131,9 @@ public class GT_MetaPipeEntity_Fluid extends MetaPipeEntity { public void onEntityCollidedWithBlock(World aWorld, int aX, int aY, int aZ, Entity aEntity) { if (mFluid != null && (((BaseMetaPipeEntity) getBaseMetaTileEntity()).mConnections & -128) == 0 && aEntity instanceof EntityLivingBase) { int tTemperature = mFluid.getFluid().getTemperature(mFluid); - if (tTemperature > 320) { + if (tTemperature > 320 && !isCoverOnSide((BaseMetaPipeEntity) getBaseMetaTileEntity(), (EntityLivingBase) aEntity)) { GT_Utility.applyHeatDamage((EntityLivingBase) aEntity, (tTemperature - 300) / 50.0F); - } else if (tTemperature < 260) { + } else if (tTemperature < 260 && !isCoverOnSide((BaseMetaPipeEntity) getBaseMetaTileEntity(), (EntityLivingBase) aEntity)) { GT_Utility.applyFrostDamage((EntityLivingBase) aEntity, (270 - tTemperature) / 25.0F); } } diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Item.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Item.java index 5ba79b1b..7cb88cb0 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Item.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Item.java @@ -25,16 +25,27 @@ public class GT_MetaPipeEntity_Item extends MetaPipeEntity implements IMetaTileE public final float mThickNess; public final Materials mMaterial; public final int mStepSize; + public final int mTickTime; public int mTransferredItems = 0; public byte mLastReceivedFrom = 0, oLastReceivedFrom = 0; public boolean mIsRestrictive = false; + public GT_MetaPipeEntity_Item(int aID, String aName, String aNameRegional, float aThickNess, Materials aMaterial, int aInvSlotCount, int aStepSize, boolean aIsRestrictive, int aTickTime) { + super(aID, aName, aNameRegional, aInvSlotCount); + mIsRestrictive = aIsRestrictive; + mThickNess = aThickNess; + mMaterial = aMaterial; + mStepSize = aStepSize; + mTickTime = aTickTime; + } + public GT_MetaPipeEntity_Item(int aID, String aName, String aNameRegional, float aThickNess, Materials aMaterial, int aInvSlotCount, int aStepSize, boolean aIsRestrictive) { super(aID, aName, aNameRegional, aInvSlotCount); mIsRestrictive = aIsRestrictive; mThickNess = aThickNess; mMaterial = aMaterial; mStepSize = aStepSize; + mTickTime = 20; } public GT_MetaPipeEntity_Item(String aName, float aThickNess, Materials aMaterial, int aInvSlotCount, int aStepSize, boolean aIsRestrictive) { @@ -43,6 +54,7 @@ public class GT_MetaPipeEntity_Item extends MetaPipeEntity implements IMetaTileE mThickNess = aThickNess; mMaterial = aMaterial; mStepSize = aStepSize; + mTickTime = 20; } @Override @@ -131,7 +143,7 @@ public class GT_MetaPipeEntity_Item extends MetaPipeEntity implements IMetaTileE public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { if (aBaseMetaTileEntity.isServerSide() && aTick % 10 == 0) { mConnections = 0; - if (aTick % 20 == 0) mTransferredItems = 0; + if (aTick % mTickTime == 0) mTransferredItems = 0; for (byte i = 0; i < 6; i++) { TileEntity tTileEntity = aBaseMetaTileEntity.getTileEntityAtSide(i); diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicBatteryBuffer.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicBatteryBuffer.java index 637d4a04..7091e70a 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicBatteryBuffer.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicBatteryBuffer.java @@ -244,7 +244,8 @@ public class GT_MetaTileEntity_BasicBatteryBuffer extends GT_MetaTileEntity_Tier name.equals("gt.metaitem.01.32521") || name.equals("gt.metaitem.01.32530") || name.equals("gt.metaitem.01.32531")) { - return true; + if(ic2.api.item.ElectricItem.manager.getCharge(aStack)==0){ + return true;} } } return false; @@ -262,8 +263,8 @@ public class GT_MetaTileEntity_BasicBatteryBuffer extends GT_MetaTileEntity_Tier } public long[] getStoredEnergy() { - boolean scaleOverflow =false; - boolean storedOverflow = false; + boolean scaleOverflow =false; + boolean storedOverflow = false; long tScale = getBaseMetaTileEntity().getEUCapacity(); long tStored = getBaseMetaTileEntity().getStoredEU(); long tStep = 0; @@ -274,7 +275,7 @@ public class GT_MetaTileEntity_BasicBatteryBuffer extends GT_MetaTileEntity_Tier if (aStack.getItem() instanceof GT_MetaBase_Item) { Long[] stats = ((GT_MetaBase_Item) aStack.getItem()).getElectricStats(aStack); if (stats != null) { - if(stats[0]>Long.MAX_VALUE/2){scaleOverflow=true;} + if(stats[0]>Long.MAX_VALUE/2){scaleOverflow=true;} tScale = tScale + stats[0]; tStep = ((GT_MetaBase_Item) aStack.getItem()).getRealCharge(aStack); if(tStep > Long.MAX_VALUE/2){storedOverflow=true;} diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java index 82147c88..4ab9ad53 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java @@ -660,8 +660,7 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B public String[] getInfoData() { return new String[]{ mNEIName, - "Progress:", - (mProgresstime / 20) + " secs", + "Progress:", (mProgresstime / 20) + " secs", (mMaxProgresstime / 20) + " secs", "Stored Energy:", getBaseMetaTileEntity().getStoredEU() + "EU", diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_GT_Recipe.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_GT_Recipe.java index 87a57105..edab9b77 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_GT_Recipe.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_GT_Recipe.java @@ -550,17 +550,17 @@ public class GT_MetaTileEntity_BasicMachine_GT_Recipe extends GT_MetaTileEntity_ return new GT_GUIContainer_BasicMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), mGUIName, GT_Utility.isStringValid(mNEIName) ? mNEIName : getRecipeList() != null ? getRecipeList().mUnlocalizedName : "", mGUIParameterA, mGUIParameterB); } - @Override - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - if (!super.allowPutStack(aBaseMetaTileEntity, aIndex, aSide, aStack)) return false; - if (mInventory[aIndex] != null) return true; - switch (mInputSlotCount) { - case 0: return false; - case 1: return getFillableStack() == null ? !mRequiresFluidForFiltering && getRecipeList().containsInput(aStack) : null!=getRecipeList().findRecipe(getBaseMetaTileEntity(), mLastRecipe, true, V[mTier], new FluidStack[] {getFillableStack()}, getSpecialSlot(), new ItemStack[] {aStack}); - case 2: return (!mRequiresFluidForFiltering || getFillableStack() != null) && (((getInputAt(0)!=null&&getInputAt(1)!=null) || (getInputAt(0)==null&&getInputAt(1)==null?getRecipeList().containsInput(aStack):(getRecipeList().containsInput(aStack)&&null!=getRecipeList().findRecipe(getBaseMetaTileEntity(), mLastRecipe, true, V[mTier], new FluidStack[] {getFillableStack()}, getSpecialSlot(), aIndex == getInputSlot() ? new ItemStack[] {aStack, getInputAt(1)} : new ItemStack[] {getInputAt(0), aStack}))))); - default: return getRecipeList().containsInput(aStack); - } - } + @Override + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + if (!super.allowPutStack(aBaseMetaTileEntity, aIndex, aSide, aStack)) return false; + if (mInventory[aIndex] != null) return true; + switch (mInputSlotCount) { + case 0: return false; + case 1: return getFillableStack() == null ? !mRequiresFluidForFiltering && getRecipeList().containsInput(aStack) : null!=getRecipeList().findRecipe(getBaseMetaTileEntity(), mLastRecipe, true, V[mTier], new FluidStack[] {getFillableStack()}, getSpecialSlot(), new ItemStack[] {aStack}); + case 2: return (!mRequiresFluidForFiltering || getFillableStack() != null) && (((getInputAt(0)!=null&&getInputAt(1)!=null) || (getInputAt(0)==null&&getInputAt(1)==null?getRecipeList().containsInput(aStack):(getRecipeList().containsInput(aStack)&&null!=getRecipeList().findRecipe(getBaseMetaTileEntity(), mLastRecipe, true, V[mTier], new FluidStack[] {getFillableStack()}, getSpecialSlot(), aIndex == getInputSlot() ? new ItemStack[] {aStack, getInputAt(1)} : new ItemStack[] {getInputAt(0), aStack}))))); + default: return getRecipeList().containsInput(aStack); + } + } @Override public void onPreTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Buffer.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Buffer.java index 28c7fba4..cffa8883 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Buffer.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Buffer.java @@ -204,7 +204,9 @@ public abstract class GT_MetaTileEntity_Buffer extends GT_MetaTileEntity_TieredM @Override public void onScrewdriverRightClick(byte aSide, EntityPlayer aPlayer, float aX, float aY, float aZ) { if (aSide == getBaseMetaTileEntity().getBackFacing()) { + mTargetStackSize = (byte) ((mTargetStackSize + (aPlayer.isSneaking()? -1 : 1)) % 65); + if(mTargetStackSize <0){mTargetStackSize = 64;} if (mTargetStackSize == 0) { GT_Utility.sendChatToPlayer(aPlayer, "Do not regulate Item Stack Size"); } else { diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch.java index 619f4f8b..b6910865 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch.java @@ -32,7 +32,7 @@ public abstract class GT_MetaTileEntity_Hatch extends GT_MetaTileEntity_BasicTan @Override public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { - return aSide != aFacing ? mMachineBlock != 0 ? new ITexture[]{Textures.BlockIcons.CASING_BLOCKS[mMachineBlock]} : new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][aColorIndex + 1]} : mMachineBlock != 0 ? aActive ? getTexturesActive(Textures.BlockIcons.CASING_BLOCKS[mMachineBlock]) : getTexturesInactive(Textures.BlockIcons.CASING_BLOCKS[mMachineBlock]) : aActive ? getTexturesActive(Textures.BlockIcons.MACHINE_CASINGS[mTier][aColorIndex + 1]) : getTexturesInactive(Textures.BlockIcons.MACHINE_CASINGS[mTier][aColorIndex + 1]); + return aSide != aFacing ? mMachineBlock > 0 ? new ITexture[]{Textures.BlockIcons.CASING_BLOCKS[mMachineBlock]} : new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][aColorIndex + 1]} : mMachineBlock > 0 ? aActive ? getTexturesActive(Textures.BlockIcons.CASING_BLOCKS[mMachineBlock]) : getTexturesInactive(Textures.BlockIcons.CASING_BLOCKS[mMachineBlock]) : aActive ? getTexturesActive(Textures.BlockIcons.MACHINE_CASINGS[mTier][aColorIndex + 1]) : getTexturesInactive(Textures.BlockIcons.MACHINE_CASINGS[mTier][aColorIndex + 1]); } @Override diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java index 6e8e8e1b..9003e441 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java @@ -25,6 +25,8 @@ import net.minecraftforge.fluids.FluidStack; import java.util.ArrayList; +import org.apache.commons.lang3.ArrayUtils; + import static gregtech.api.enums.GT_Values.V; public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity { @@ -34,6 +36,10 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity { public int mPollution = 0, mProgresstime = 0, mMaxProgresstime = 0, mEUt = 0, mEfficiencyIncrease = 0, mUpdate = 0, mStartUpCheck = 100, mRuntime = 0, mEfficiency = 0; public ItemStack[] mOutputItems = null; public FluidStack[] mOutputFluids = null; + public String mNEI; + public int damageFactorLow = 5; + public float damageFactorHigh = 0.6f; + public ArrayList mInputHatches = new ArrayList(); public ArrayList mOutputHatches = new ArrayList(); public ArrayList mInputBusses = new ArrayList(); @@ -46,11 +52,16 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity { public GT_MetaTileEntity_MultiBlockBase(int aID, String aName, String aNameRegional) { super(aID, aName, aNameRegional, 2); this.disableMaintenance = GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "MultiBlockMachines.disableMaintenance", false); + this.damageFactorLow = GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "MultiBlockMachines.damageFactorLow", 5); + this.damageFactorHigh = (float) GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "MultiBlockMachines.damageFactorHigh", 0.6f); + this.mNEI = ""; } public GT_MetaTileEntity_MultiBlockBase(String aName) { super(aName, 2); this.disableMaintenance = GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "MultiBlockMachines.disableMaintenance", false); + this.damageFactorLow = GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "MultiBlockMachines.damageFactorLow", 5); + this.damageFactorHigh = (float) GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "MultiBlockMachines.damageFactorHigh", 0.6f); } public static boolean isValidMetaTileEntity(MetaTileEntity aMetaTileEntity) { @@ -119,7 +130,6 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity { mOutputFluids[i].writeToNBT(tNBT); aNBT.setTag("mOutputFluids" + i, tNBT); } - aNBT.setBoolean("mWrench", mWrench); aNBT.setBoolean("mScrewdriver", mScrewdriver); aNBT.setBoolean("mSoftHammer", mSoftHammer); @@ -252,7 +262,10 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity { if (aBaseMetaTileEntity.isAllowedToWork()) checkRecipe(mInventory[1]); if (mOutputFluids != null && mOutputFluids.length > 0) { if (mOutputFluids.length > 1) { - GT_Mod.instance.achievements.issueAchievement(aBaseMetaTileEntity.getWorld().getPlayerEntityByName(aBaseMetaTileEntity.getOwnerName()), "oilplant"); + try { + GT_Mod.instance.achievements.issueAchievement(aBaseMetaTileEntity.getWorld().getPlayerEntityByName(aBaseMetaTileEntity.getOwnerName()), "oilplant"); + } catch (Exception e) { + } } } } @@ -458,8 +471,7 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity { } } - - ((GT_MetaGenerated_Tool) mInventory[1].getItem()).doDamage(mInventory[1], (long) Math.min(mEUt / 5, Math.pow(mEUt, 0.7))); + ((GT_MetaGenerated_Tool) mInventory[1].getItem()).doDamage(mInventory[1], (long) Math.min(mEUt / this.damageFactorLow, Math.pow(mEUt, this.damageFactorHigh))); if (mInventory[1].stackSize == 0) mInventory[1] = null; } } @@ -556,16 +568,21 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity { aStack = GT_Utility.copy(aStack); // FluidStack aLiquid = GT_Utility.getFluidForFilledItem(aStack, true); // if (aLiquid == null) { - for (GT_MetaTileEntity_Hatch_OutputBus tHatch : mOutputBusses) { - if (isValidMetaTileEntity(tHatch)) { - for (int i = tHatch.getSizeInventory() - 1; i >= 0; i--) { - if (tHatch.getBaseMetaTileEntity().addStackToSlot(i, aStack)) return true; + boolean outputSuccess = true; + while (outputSuccess && aStack.stackSize > 0) { + outputSuccess = false; + ItemStack single = aStack.splitStack(1); + for (GT_MetaTileEntity_Hatch_OutputBus tHatch : mOutputBusses) { + if (!outputSuccess && isValidMetaTileEntity(tHatch)) { + for (int i = tHatch.getSizeInventory() - 1; i >= 0 && !outputSuccess; i--) { + if (tHatch.getBaseMetaTileEntity().addStackToSlot(i, single)) outputSuccess = true; + } } } - } - for (GT_MetaTileEntity_Hatch_Output tHatch : mOutputHatches) { - if (isValidMetaTileEntity(tHatch) && tHatch.outputsItems()) { - if (tHatch.getBaseMetaTileEntity().addStackToSlot(1, aStack)) return true; + for (GT_MetaTileEntity_Hatch_Output tHatch : mOutputHatches) { + if (!outputSuccess && isValidMetaTileEntity(tHatch) && tHatch.outputsItems()) { + if (tHatch.getBaseMetaTileEntity().addStackToSlot(1, single)) outputSuccess = true; + } } } // }else { @@ -578,7 +595,7 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity { // } // } // } - return false; + return outputSuccess; } public boolean depleteInput(ItemStack aStack) { @@ -776,7 +793,7 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity { @Override public String[] getInfoData() { - return new String[]{"Progress:", (mProgresstime / 20) + " secs", (mMaxProgresstime / 20) + " secs", "Efficiency: " + (mEfficiency / 100.0F) + "%", "Problems: " + (getIdealStatus() - getRepairStatus())}; + return new String[]{"Progress:", (mProgresstime / 20) + "secs", (mMaxProgresstime / 20) + "secs", "Efficiency:", (mEfficiency / 100.0F) + "%", "Problems:", "" + (getIdealStatus() - getRepairStatus())}; } @Override diff --git a/src/main/java/gregtech/api/objects/GT_FluidStack.java b/src/main/java/gregtech/api/objects/GT_FluidStack.java index d4afd2bd..3f9e5281 100644 --- a/src/main/java/gregtech/api/objects/GT_FluidStack.java +++ b/src/main/java/gregtech/api/objects/GT_FluidStack.java @@ -16,7 +16,7 @@ import java.util.Map; */ public class GT_FluidStack extends FluidStack { private static final Collection sAllFluidStacks = new ArrayList(5000); - private static boolean lock = false; + private static volatile boolean lock = false; private Fluid mFluid; public GT_FluidStack(Fluid aFluid, int aAmount) { @@ -29,7 +29,7 @@ public class GT_FluidStack extends FluidStack { this(aFluid.getFluid(), aFluid.amount); } - public static void fixAllThoseFuckingFluidIDs() { + public static synchronized void fixAllThoseFuckingFluidIDs() { if (ForgeVersion.getBuildVersion() < 1355) { while (lock) { try { diff --git a/src/main/java/gregtech/api/util/GT_BaseCrop.java b/src/main/java/gregtech/api/util/GT_BaseCrop.java index 4b0e4a55..304a0f3c 100644 --- a/src/main/java/gregtech/api/util/GT_BaseCrop.java +++ b/src/main/java/gregtech/api/util/GT_BaseCrop.java @@ -1,23 +1,37 @@ package gregtech.api.util; +import cpw.mods.fml.common.Loader; +import gregtech.GT_Mod; +import gregtech.api.GregTech_API; import gregtech.api.enums.ConfigCategories; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.objects.ItemData; +import gregtech.common.blocks.GT_Block_Ores; +import gregtech.common.blocks.GT_TileEntity_Ores; import ic2.api.crops.CropCard; import ic2.api.crops.Crops; import ic2.api.crops.ICropTile; +import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import speiger.src.crops.api.ICropCardInfo; import java.util.ArrayList; +import java.util.List; import java.util.Random; import static gregtech.api.enums.GT_Values.E; -public class GT_BaseCrop extends CropCard { +public class GT_BaseCrop extends CropCard implements ICropCardInfo { public static ArrayList sCropList = new ArrayList(); private String mName = E, mDiscoveredBy = "Gregorius Techneticies", mAttributes[]; - private int mTier = 0, mMaxSize = 0, mAfterHarvestSize = 0, mHarvestSize = 0, mStats[] = new int[5]; + private int mTier = 0, mMaxSize = 0, mAfterHarvestSize = 0, mHarvestSize = 0, mStats[] = new int[5], mGrowthSpeed = 0; private ItemStack mDrop = null, mSpecialDrops[] = null; + private Materials mBlock = null; + private static boolean bIc2NeiLoaded = Loader.isModLoaded("Ic2Nei"); /** * To create new Crops @@ -32,7 +46,26 @@ public class GT_BaseCrop extends CropCard { * @param aGrowthSpeed how fast the Crop grows. if < 0 then its set to Tier*300 * @param aHarvestSize the size the Crop needs to be harvested. forced to be between 2 and max size */ - public GT_BaseCrop(int aID, String aCropName, String aDiscoveredBy, ItemStack aDrop, ItemStack[] aSpecialDrops, ItemStack aBaseSeed, int aTier, int aMaxSize, int aGrowthSpeed, int aAfterHarvestSize, int aHarvestSize, int aStatChemical, int aStatFood, int aStatDefensive, int aStatColor, int aStatWeed, String[] aAttributes) { + public GT_BaseCrop(int aID, String aCropName, String aDiscoveredBy, ItemStack aBaseSeed, int aTier, int aMaxSize, int aGrowthSpeed, int aAfterHarvestSize, int aHarvestSize, int aStatChemical, int aStatFood, int aStatDefensive, int aStatColor, int aStatWeed, String[] aAttributes, ItemStack aDrop, ItemStack[] aSpecialDrops) { + new GT_BaseCrop(aID, aCropName, aDiscoveredBy, aBaseSeed, aTier, aMaxSize, aGrowthSpeed, aAfterHarvestSize, aHarvestSize, aStatChemical, aStatFood, aStatDefensive, aStatColor, aStatWeed, aAttributes, null, aDrop, aSpecialDrops); + } + + /** + * To create new Crops + * + * @param aID Default ID + * @param aCropName Name of the Crop + * @param aDiscoveredBy The one who discovered the Crop + * @param aDrop The Item which is dropped by the Crop. must be != null + * @param aBaseSeed Baseseed to plant this Crop. null == crossbreed only + * @param aTier tier of the Crop. forced to be >= 1 + * @param aMaxSize maximum Size of the Crop. forced to be >= 3 + * @param aGrowthSpeed how fast the Crop grows. if < 0 then its set to Tier*300 + * @param aHarvestSize the size the Crop needs to be harvested. forced to be between 2 and max size + * @param aBlock the block below needed for crop to grow. If null no block needed + * @param aMeta meta of the block below(-1 if no meta) + */ + public GT_BaseCrop(int aID, String aCropName, String aDiscoveredBy, ItemStack aBaseSeed, int aTier, int aMaxSize, int aGrowthSpeed, int aAfterHarvestSize, int aHarvestSize, int aStatChemical, int aStatFood, int aStatDefensive, int aStatColor, int aStatWeed, String[] aAttributes, Materials aBlock, ItemStack aDrop, ItemStack[] aSpecialDrops) { mName = aCropName; aID = GT_Config.addIDConfig(ConfigCategories.IDs.crops, mName.replaceAll(" ", "_"), aID); if (aDiscoveredBy != null && !aDiscoveredBy.equals(E)) mDiscoveredBy = aDiscoveredBy; @@ -41,7 +74,6 @@ public class GT_BaseCrop extends CropCard { mSpecialDrops = aSpecialDrops; mTier = Math.max(1, aTier); mMaxSize = Math.max(3, aMaxSize); -// mGrowthSpeed = aGrowthSpeed>0?aGrowthSpeed:mTier*300; mHarvestSize = Math.min(Math.max(aHarvestSize, 2), mMaxSize); mAfterHarvestSize = Math.min(Math.max(aAfterHarvestSize, 1), mMaxSize - 1); mStats[0] = aStatChemical; @@ -50,10 +82,31 @@ public class GT_BaseCrop extends CropCard { mStats[3] = aStatColor; mStats[4] = aStatWeed; mAttributes = aAttributes; + mBlock = aBlock; + if(GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.crops, aCropName, true)){ if (!Crops.instance.registerCrop(this, aID)) throw new GT_ItsNotMyFaultException("Make sure the Crop ID is valid!"); - if (aBaseSeed != null) Crops.instance.registerBaseSeed(aBaseSeed, aID, 1, 1, 1, 1); - sCropList.add(this); + if (aBaseSeed != null) Crops.instance.registerBaseSeed(aBaseSeed, this, 1, 1, 1, 1); + sCropList.add(this);} + } + if (bIc2NeiLoaded) { + try { + Class.forName("speiger.src.crops.api.CropPluginAPI").getMethod("registerCropInfo", Class.forName("speiger.src.crops.api.ICropCardInfo")).invoke(Class.forName("speiger.src.crops.api.CropPluginAPI").getField("instance"), this); + } catch (IllegalAccessException ex) { + bIc2NeiLoaded = false; + } catch (IllegalArgumentException ex) { + bIc2NeiLoaded = false; + } catch (java.lang.reflect.InvocationTargetException ex) { + bIc2NeiLoaded = false; + } catch (NoSuchFieldException ex) { + bIc2NeiLoaded = false; + } catch (NoSuchMethodException ex) { + bIc2NeiLoaded = false; + } catch (SecurityException ex) { + bIc2NeiLoaded = false; + } catch (ClassNotFoundException ex) { + bIc2NeiLoaded = false; + } } } @@ -62,6 +115,16 @@ public class GT_BaseCrop extends CropCard { return (byte) mAfterHarvestSize; } + @Override + public int growthDuration(ICropTile aCrop) { + if (mGrowthSpeed < 200) return super.growthDuration(aCrop); + return tier() * mGrowthSpeed; + } + + public int getrootslength(ICropTile crop) { + return 5; + } + @Override public String[] attributes() { return mAttributes; @@ -74,6 +137,9 @@ public class GT_BaseCrop extends CropCard { @Override public final boolean canGrow(ICropTile aCrop) { + if (mBlock != null && aCrop.getSize() == mMaxSize - 1) { + return isBlockBelow(aCrop); + } return aCrop.getSize() < maxSize(); } @@ -111,7 +177,7 @@ public class GT_BaseCrop extends CropCard { @Override public ItemStack getGain(ICropTile aCrop) { int tDrop = 0; - if (mSpecialDrops != null && (tDrop = new Random().nextInt(mSpecialDrops.length + 4)) < mSpecialDrops.length && mSpecialDrops[tDrop] != null) { + if (mSpecialDrops != null && (tDrop = new Random().nextInt((mSpecialDrops.length*2) + 2)) < mSpecialDrops.length && mSpecialDrops[tDrop] != null) { return GT_Utility.copy(mSpecialDrops[tDrop]); } return GT_Utility.copy(mDrop); @@ -127,4 +193,62 @@ public class GT_BaseCrop extends CropCard { public int getOptimalHavestSize(ICropTile crop) { return maxSize(); } + + public boolean isBlockBelow(ICropTile aCrop) { + if (aCrop == null) { + return false; + } + for (int i = 1; i < this.getrootslength(aCrop); i++) { + Block tBlock = aCrop.getWorld().getBlock(aCrop.getLocation().posX, aCrop.getLocation().posY - i, aCrop.getLocation().posZ); + if ((tBlock instanceof GT_Block_Ores)) { + TileEntity tTileEntity = aCrop.getWorld().getTileEntity(aCrop.getLocation().posX, aCrop.getLocation().posY - i, aCrop.getLocation().posZ); + if ((tTileEntity instanceof GT_TileEntity_Ores)) { + Materials tMaterial = GregTech_API.sGeneratedMaterials[(((GT_TileEntity_Ores) tTileEntity).mMetaData % 1000)]; + if ((tMaterial != null) && (tMaterial != Materials._NULL)) { + if (tMaterial == mBlock) { + return true; + } else { + return false; + } + } + } + } else { + int tMetaID = aCrop.getWorld().getBlockMetadata(aCrop.getLocation().posX, aCrop.getLocation().posY - i, aCrop.getLocation().posZ); + ItemData tAssotiation = GT_OreDictUnificator.getAssociation(new ItemStack(tBlock, 1, tMetaID)); + if ((tAssotiation != null) && (tAssotiation.mPrefix.toString().startsWith("ore")) && (tAssotiation.mMaterial.mMaterial == mBlock)) { + return true; + } + if ((tAssotiation != null) && (tAssotiation.mPrefix == OrePrefixes.block) && (tAssotiation.mMaterial.mMaterial == mBlock)) { + return true; + } + } +// Block block = aCrop.getWorld().getBlock(aCrop.getLocation().posX, aCrop.getLocation().posY - i, aCrop.getLocation().posZ); +// if (block.isAir(aCrop.getWorld(), aCrop.getLocation().posX, aCrop.getLocation().posY - i, aCrop.getLocation().posZ)) { +// return false; +// } +// if (block == mBlock) { +// int tMeta = aCrop.getWorld().getBlockMetadata(aCrop.getLocation().posX, aCrop.getLocation().posY - i, aCrop.getLocation().posZ); +// if(mMeta < 0 || tMeta == mMeta){ +// return true;} +// } + } + return false; + } + + public List getCropInformation() { + if (mBlock != null) { + ArrayList result = new ArrayList(1); + result.add(String.format("Requires %s Ore or Block of %s as soil block to reach full growth.", mBlock.name(), mBlock.name())); + return result; + } + return null; + } + + public ItemStack getDisplayItem() { + if (mSpecialDrops != null && mSpecialDrops[mSpecialDrops.length - 1] != null) { + return GT_Utility.copy(mSpecialDrops[mSpecialDrops.length - 1]); + } + return GT_Utility.copy(mDrop); + } + } diff --git a/src/main/java/gregtech/api/util/GT_ModHandler.java b/src/main/java/gregtech/api/util/GT_ModHandler.java index 809a5219..83fe3ff5 100644 --- a/src/main/java/gregtech/api/util/GT_ModHandler.java +++ b/src/main/java/gregtech/api/util/GT_ModHandler.java @@ -53,7 +53,7 @@ public class GT_ModHandler { public static final List sSingleNonBlockDamagableRecipeList = new ArrayList(1000); private static final Map sIC2ItemMap = new HashMap(); private static final List sAllRecipeList = Collections.synchronizedList(new ArrayList(5000)), sBufferRecipeList = new ArrayList(1000); - public static volatile int VERSION = 508; + public static volatile int VERSION = 509; public static Collection sNativeRecipeClasses = new HashSet(), sSpecialRecipeClasses = new HashSet(); public static GT_HashSet sNonReplaceableItems = new GT_HashSet(); public static Object sBoxableWrapper = GT_Utility.callConstructor("gregtechmod.api.util.GT_IBoxableWrapper", 0, null, false); @@ -381,11 +381,11 @@ public class GT_ModHandler { /** * Adds to Furnace AND Alloysmelter AND Induction Smelter */ - public static boolean addSmeltingAndAlloySmeltingRecipe(ItemStack aInput, ItemStack aOutput) { + public static boolean addSmeltingAndAlloySmeltingRecipe(ItemStack aInput, ItemStack aOutput, boolean hidden) { if (aInput == null || aOutput == null) return false; boolean temp = false; if (aInput.stackSize == 1 && addSmeltingRecipe(aInput, aOutput)) temp = true; - if (RA.addAlloySmelterRecipe(aInput, OrePrefixes.ingot.contains(aOutput) ? ItemList.Shape_Mold_Ingot.get(0) : OrePrefixes.block.contains(aOutput) ? ItemList.Shape_Mold_Block.get(0) : OrePrefixes.nugget.contains(aOutput) ? ItemList.Shape_Mold_Nugget.get(0) : null, aOutput, 130, 3)) + if (RA.addAlloySmelterRecipe(aInput, OrePrefixes.ingot.contains(aOutput) ? ItemList.Shape_Mold_Ingot.get(0) : OrePrefixes.block.contains(aOutput) ? ItemList.Shape_Mold_Block.get(0) : OrePrefixes.nugget.contains(aOutput) ? ItemList.Shape_Mold_Nugget.get(0) : null, aOutput, 130, 3,hidden)) temp = true; if (addInductionSmelterRecipe(aInput, null, aOutput, null, aOutput.stackSize * 1600, 0)) temp = true; return temp; @@ -1591,7 +1591,6 @@ public class GT_ModHandler { } else { tPlayer.inventory.mainInventory[i].stackSize--; } - if (tPlayer.inventoryContainer != null) tPlayer.inventoryContainer.detectAndSendChanges(); if (canUseElectricItem(aStack, 10000)) { return GT_ModHandler.useElectricItem(aStack, 10000, (EntityPlayer) aPlayer); diff --git a/src/main/java/gregtech/api/util/GT_OreDictUnificator.java b/src/main/java/gregtech/api/util/GT_OreDictUnificator.java index 39eabad2..b404299f 100644 --- a/src/main/java/gregtech/api/util/GT_OreDictUnificator.java +++ b/src/main/java/gregtech/api/util/GT_OreDictUnificator.java @@ -32,7 +32,7 @@ public class GT_OreDictUnificator { private static final HashMap sName2StackMap = new HashMap(); private static final HashMap sItemStack2DataMap = new HashMap(); private static final GT_HashSet sNoUnificationList = new GT_HashSet(); - public static volatile int VERSION = 508; + public static volatile int VERSION = 509; private static int isRegisteringOre = 0, isAddingOre = 0; private static boolean mRunThroughTheList = true; diff --git a/src/main/java/gregtech/api/util/GT_Recipe.java b/src/main/java/gregtech/api/util/GT_Recipe.java index 90b004d3..71b00199 100644 --- a/src/main/java/gregtech/api/util/GT_Recipe.java +++ b/src/main/java/gregtech/api/util/GT_Recipe.java @@ -34,7 +34,7 @@ import static gregtech.api.enums.GT_Values.*; * I know this File causes some Errors, because of missing Main Functions, but if you just need to compile Stuff, then remove said erroreous Functions. */ public class GT_Recipe { - public static volatile int VERSION = 508; + public static volatile int VERSION = 509; /** * If you want to change the Output, feel free to modify or even replace the whole ItemStack Array, for Inputs, please add a new Recipe, because of the HashMaps. */ @@ -382,12 +382,12 @@ public class GT_Recipe { public static final GT_Recipe_Map sFurnaceRecipes = new GT_Recipe_Map_Furnace(new HashSet(0), "mc.recipe.furnace", "Furnace", "smelting", RES_PATH_GUI + "basicmachines/E_Furnace", 1, 1, 1, 0, 1, E, 1, E, true, false); public static final GT_Recipe_Map sMicrowaveRecipes = new GT_Recipe_Map_Microwave(new HashSet(0), "gt.recipe.microwave", "Microwave", "smelting", RES_PATH_GUI + "basicmachines/E_Furnace", 1, 1, 1, 0, 1, E, 1, E, true, false); - public static final GT_Recipe_Map sScannerFakeRecipes = new GT_Recipe_Map(new HashSet(3), "gt.recipe.scanner", "Scanner", null, RES_PATH_GUI + "basicmachines/Scanner", 1, 1, 1, 0, 1, E, 1, E, true, true); + public static final GT_Recipe_Map sScannerFakeRecipes = new GT_Recipe_Map(new HashSet(300), "gt.recipe.scanner", "Scanner", null, RES_PATH_GUI + "basicmachines/Scanner", 1, 1, 1, 0, 1, E, 1, E, true, true); public static final GT_Recipe_Map sRockBreakerFakeRecipes = new GT_Recipe_Map(new HashSet(3), "gt.recipe.rockbreaker", "Rock Breaker", null, RES_PATH_GUI + "basicmachines/RockBreaker", 1, 1, 0, 0, 1, E, 1, E, true, true); public static final GT_Recipe_Map sByProductList = new GT_Recipe_Map(new HashSet(1000), "gt.recipe.byproductlist", "Ore Byproduct List", null, RES_PATH_GUI + "basicmachines/Default", 1, 6, 1, 0, 1, E, 1, E, true, true); public static final GT_Recipe_Map sRepicatorFakeRecipes = new GT_Recipe_Map(new HashSet(100), "gt.recipe.replicator", "Replicator", null, RES_PATH_GUI + "basicmachines/Replicator", 0, 1, 0, 1, 1, E, 1, E, true, true); public static final GT_Recipe_Map sAssemblylineFakeRecipes = new GT_Recipe_Map(new HashSet(30), "gt.recipe.scanner", "Scanner", null, RES_PATH_GUI + "basicmachines/Default", 1, 1, 1, 0, 1, E, 1, E, true, true); - + public static final GT_Recipe_Map sPlasmaArcFurnaceRecipes = new GT_Recipe_Map(new HashSet(10000), "gt.recipe.plasmaarcfurnace", "Plasma Arc Furnace", null, RES_PATH_GUI + "basicmachines/PlasmaArcFurnace", 1, 4, 1, 1, 1, E, 1, E, true, true); public static final GT_Recipe_Map sArcFurnaceRecipes = new GT_Recipe_Map(new HashSet(10000), "gt.recipe.arcfurnace", "Arc Furnace", null, RES_PATH_GUI + "basicmachines/ArcFurnace", 1, 4, 1, 1, 3, E, 1, E, true, true); public static final GT_Recipe_Map sPrinterRecipes = new GT_Recipe_Map_Printer(new HashSet(100), "gt.recipe.printer", "Printer", null, RES_PATH_GUI + "basicmachines/Printer", 1, 1, 1, 1, 1, E, 1, E, true, true); @@ -417,6 +417,8 @@ public class GT_Recipe { public static final GT_Recipe_Map sVacuumRecipes = new GT_Recipe_Map(new HashSet(100), "gt.recipe.vacuumfreezer", "Vacuum Freezer", null, RES_PATH_GUI + "basicmachines/Default", 1, 1, 1, 0, 1, E, 1, E, true, true); public static final GT_Recipe_Map sChemicalRecipes = new GT_Recipe_Map(new HashSet(100), "gt.recipe.chemicalreactor", "Chemical Reactor", null, RES_PATH_GUI + "basicmachines/ChemicalReactor", 2, 1, 1, 0, 1, E, 1, E, true, true); public static final GT_Recipe_Map sDistillationRecipes = new GT_Recipe_Map(new HashSet(50), "gt.recipe.distillationtower", "Distillation Tower", null, RES_PATH_GUI + "basicmachines/Default", 2, 4, 0, 0, 1, E, 1, E, true, true); + public static final GT_Recipe_Map sCrakingRecipes = new GT_Recipe_Map(new HashSet(50), "gt.recipe.craker", "Oil Cracker", null, RES_PATH_GUI + "basicmachines/Default", 1, 1, 0, 1, 1, E, 1, E, true, true); + public static final GT_Recipe_Map sPyrolyseRecipes = new GT_Recipe_Map(new HashSet(50), "gt.recipe.pyro", "Pyrolyse Oven", null, RES_PATH_GUI + "basicmachines/Default", 2, 1, 1, 0, 1, E, 1, E, true, true); public static final GT_Recipe_Map sWiremillRecipes = new GT_Recipe_Map(new HashSet(50), "gt.recipe.wiremill", "Wiremill", null, RES_PATH_GUI + "basicmachines/Wiremill", 1, 1, 1, 0, 1, E, 1, E, true, true); public static final GT_Recipe_Map sBenderRecipes = new GT_Recipe_Map(new HashSet(400), "gt.recipe.metalbender", "Metal Bender", null, RES_PATH_GUI + "basicmachines/Bender", 2, 1, 2, 0, 1, E, 1, E, true, true); public static final GT_Recipe_Map sAlloySmelterRecipes = new GT_Recipe_Map(new HashSet(3000), "gt.recipe.alloysmelter", "Alloy Smelter", null, RES_PATH_GUI + "basicmachines/AlloySmelter", 2, 1, 2, 0, 1, E, 1, E, true, true); @@ -439,8 +441,7 @@ public class GT_Recipe { public static final GT_Recipe_Map_Fuel sLargeNaquadahReactorFuels = new GT_Recipe_Map_Fuel(new HashSet(10), "gt.recipe.largenaquadahreactor", "Large Naquadah Reactor", null, RES_PATH_GUI + "basicmachines/Default", 1, 1, 0, 0, 1, "Fuel Value: ", 1000, " EU", true, true); public static final GT_Recipe_Map_Fuel sFluidNaquadahReactorFuels = new GT_Recipe_Map_Fuel(new HashSet(10), "gt.recipe.fluidnaquadahreactor", "Fluid Naquadah Reactor", null, RES_PATH_GUI + "basicmachines/Default", 1, 1, 0, 0, 1, "Fuel Value: ", 1000, " EU", true, true); public static final GT_Recipe_Map sAssemblylineRecipes = new GT_Recipe_Map(new HashSet(100), "gt.recipe.assemblyline", "Assemblyline", null, RES_PATH_GUI + "basicmachines/Default", 15, 1, 4, 0, 1, E, 1, E, false, false); - - /** + /** * HashMap of Recipes based on their Items */ diff --git a/src/main/java/gregtech/api/util/GT_RecipeRegistrator.java b/src/main/java/gregtech/api/util/GT_RecipeRegistrator.java index 1d391cd8..611c8d34 100644 --- a/src/main/java/gregtech/api/util/GT_RecipeRegistrator.java +++ b/src/main/java/gregtech/api/util/GT_RecipeRegistrator.java @@ -1,5 +1,6 @@ package gregtech.api.util; +import gregtech.GT_Mod; import gregtech.api.GregTech_API; import gregtech.api.enums.*; import gregtech.api.enums.TC_Aspects.TC_AspectStack; @@ -119,7 +120,7 @@ public class GT_RecipeRegistrator { {"Scythe", s_I + s_P + s_H, s_R + s_F + s_P, s_R + " " + " "}, {"Scythe", s_H + s_P + s_I, s_P + s_F + s_R, " " + " " + s_R} }; - public static volatile int VERSION = 508; + public static volatile int VERSION = 509; public static void registerMaterialRecycling(ItemStack aStack, Materials aMaterial, long aMaterialAmount, MaterialStack aByproduct) { if (GT_Utility.isStackInvalid(aStack)) return; @@ -147,7 +148,12 @@ public class GT_RecipeRegistrator { public static void registerReverseFluidSmelting(ItemStack aStack, Materials aMaterial, long aMaterialAmount, MaterialStack aByproduct) { if (aStack == null || aMaterial == null || aMaterial.mSmeltInto.mStandardMoltenFluid == null || !aMaterial.contains(SubTag.SMELTING_TO_FLUID) || (L * aMaterialAmount) / (M * aStack.stackSize) <= 0) return; - RA.addFluidSmelterRecipe(GT_Utility.copyAmount(1, aStack), aByproduct == null ? null : aByproduct.mMaterial.contains(SubTag.NO_SMELTING) || !aByproduct.mMaterial.contains(SubTag.METAL) ? aByproduct.mMaterial.contains(SubTag.FLAMMABLE) ? GT_OreDictUnificator.getDust(Materials.Ash, aByproduct.mAmount / 2) : aByproduct.mMaterial.contains(SubTag.UNBURNABLE) ? GT_OreDictUnificator.getDustOrIngot(aByproduct.mMaterial.mSmeltInto, aByproduct.mAmount) : null : GT_OreDictUnificator.getIngotOrDust(aByproduct.mMaterial.mSmeltInto, aByproduct.mAmount), aMaterial.mSmeltInto.getMolten((L * aMaterialAmount) / (M * aStack.stackSize)), 10000, (int) Math.max(1, (24 * aMaterialAmount) / M), Math.max(8, (int) Math.sqrt(2 * aMaterial.mSmeltInto.mStandardMoltenFluid.getTemperature()))); + ItemData tData = GT_OreDictUnificator.getItemData(aStack); + boolean tHide = (aMaterial != Materials.Iron)&&(GT_Mod.gregtechproxy.mHideRecyclingRecipes); + if(tHide && tData!=null&&tData.hasValidPrefixData()&&tData.mPrefix==OrePrefixes.ingot){ + tHide=false; + } + RA.addFluidSmelterRecipe(GT_Utility.copyAmount(1, aStack), aByproduct == null ? null : aByproduct.mMaterial.contains(SubTag.NO_SMELTING) || !aByproduct.mMaterial.contains(SubTag.METAL) ? aByproduct.mMaterial.contains(SubTag.FLAMMABLE) ? GT_OreDictUnificator.getDust(Materials.Ash, aByproduct.mAmount / 2) : aByproduct.mMaterial.contains(SubTag.UNBURNABLE) ? GT_OreDictUnificator.getDustOrIngot(aByproduct.mMaterial.mSmeltInto, aByproduct.mAmount) : null : GT_OreDictUnificator.getIngotOrDust(aByproduct.mMaterial.mSmeltInto, aByproduct.mAmount), aMaterial.mSmeltInto.getMolten((L * aMaterialAmount) / (M * aStack.stackSize)), 10000, (int) Math.max(1, (24 * aMaterialAmount) / M), Math.max(8, (int) Math.sqrt(2 * aMaterial.mSmeltInto.mStandardMoltenFluid.getTemperature())), tHide); } /** @@ -161,8 +167,10 @@ public class GT_RecipeRegistrator { return; aMaterialAmount /= aStack.stackSize; if(aMaterial==Materials.Naquadah||aMaterial==Materials.NaquadahEnriched)return; + + boolean tHide = (aMaterial != Materials.Iron)&&(GT_Mod.gregtechproxy.mHideRecyclingRecipes); if (aAllowAlloySmelter) - GT_ModHandler.addSmeltingAndAlloySmeltingRecipe(GT_Utility.copyAmount(1, aStack), GT_OreDictUnificator.getIngot(aMaterial.mSmeltInto, aMaterialAmount)); + GT_ModHandler.addSmeltingAndAlloySmeltingRecipe(GT_Utility.copyAmount(1, aStack), GT_OreDictUnificator.getIngot(aMaterial.mSmeltInto, aMaterialAmount),tHide); else GT_ModHandler.addSmeltingRecipe(GT_Utility.copyAmount(1, aStack), GT_OreDictUnificator.getIngot(aMaterial.mSmeltInto, aMaterialAmount)); } @@ -176,8 +184,13 @@ public class GT_RecipeRegistrator { aData = new ItemData(aData); if (!aData.hasValidMaterialData()) return; + boolean tIron = false; + for (MaterialStack tMaterial : aData.getAllMaterialStacks()) { + if (tMaterial.mMaterial == Materials.Iron||tMaterial.mMaterial == Materials.Copper || + tMaterial.mMaterial == Materials.WroughtIron||tMaterial.mMaterial == Materials.AnnealedCopper) tIron = true; + if (tMaterial.mMaterial.contains(SubTag.UNBURNABLE)) { tMaterial.mMaterial = tMaterial.mMaterial.mSmeltInto.mArcSmeltInto; continue; @@ -204,9 +217,9 @@ public class GT_RecipeRegistrator { } aData = new ItemData(aData); - - if (aData.mByProducts.length > 3) for (MaterialStack tMaterial : aData.getAllMaterialStacks()) + if (aData.mByProducts.length > 3) for (MaterialStack tMaterial : aData.getAllMaterialStacks()){ if (tMaterial.mMaterial == Materials.Ash) tMaterial.mAmount = 0; + } aData = new ItemData(aData); @@ -215,8 +228,9 @@ public class GT_RecipeRegistrator { long tAmount = 0; for (MaterialStack tMaterial : aData.getAllMaterialStacks()) tAmount += tMaterial.mAmount * tMaterial.mMaterial.getMass(); - - RA.addArcFurnaceRecipe(aStack, new ItemStack[]{GT_OreDictUnificator.getIngotOrDust(aData.mMaterial), GT_OreDictUnificator.getIngotOrDust(aData.getByProduct(0)), GT_OreDictUnificator.getIngotOrDust(aData.getByProduct(1)), GT_OreDictUnificator.getIngotOrDust(aData.getByProduct(2))}, null, (int) Math.max(16, tAmount / M), 96); + + boolean tHide = !tIron && GT_Mod.gregtechproxy.mHideRecyclingRecipes; + RA.addArcFurnaceRecipe(aStack, new ItemStack[]{GT_OreDictUnificator.getIngotOrDust(aData.mMaterial), GT_OreDictUnificator.getIngotOrDust(aData.getByProduct(0)), GT_OreDictUnificator.getIngotOrDust(aData.getByProduct(1)), GT_OreDictUnificator.getIngotOrDust(aData.getByProduct(2))}, null, (int) Math.max(16, tAmount / M), 96, tHide); } public static void registerReverseMacerating(ItemStack aStack, Materials aMaterial, long aMaterialAmount, MaterialStack aByProduct01, MaterialStack aByProduct02, MaterialStack aByProduct03, boolean aAllowHammer) { @@ -239,8 +253,8 @@ public class GT_RecipeRegistrator { long tAmount = 0; for (MaterialStack tMaterial : aData.getAllMaterialStacks()) tAmount += tMaterial.mAmount * tMaterial.mMaterial.getMass(); - - RA.addPulveriserRecipe(aStack, new ItemStack[]{GT_OreDictUnificator.getDust(aData.mMaterial), GT_OreDictUnificator.getDust(aData.getByProduct(0)), GT_OreDictUnificator.getDust(aData.getByProduct(1)), GT_OreDictUnificator.getDust(aData.getByProduct(2))}, null, (int) Math.max(16, tAmount / M), 4); + boolean tHide = (aData.mMaterial.mMaterial != Materials.Iron)&&(GT_Mod.gregtechproxy.mHideRecyclingRecipes); + RA.addPulveriserRecipe(aStack, new ItemStack[]{GT_OreDictUnificator.getDust(aData.mMaterial), GT_OreDictUnificator.getDust(aData.getByProduct(0)), GT_OreDictUnificator.getDust(aData.getByProduct(1)), GT_OreDictUnificator.getDust(aData.getByProduct(2))}, null, aData.mMaterial.mMaterial==Materials.Marble ? 1 : (int) Math.max(16, tAmount / M), 4, tHide); if (aAllowHammer) for (MaterialStack tMaterial : aData.getAllMaterialStacks()) if (tMaterial.mMaterial.contains(SubTag.CRYSTAL) && !tMaterial.mMaterial.contains(SubTag.METAL)) { diff --git a/src/main/java/gregtech/api/util/GT_Shaped_Recipe.java b/src/main/java/gregtech/api/util/GT_Shaped_Recipe.java index 46e2fc57..e51c4905 100644 --- a/src/main/java/gregtech/api/util/GT_Shaped_Recipe.java +++ b/src/main/java/gregtech/api/util/GT_Shaped_Recipe.java @@ -75,8 +75,7 @@ public class GT_Shaped_Recipe extends ShapedOreRecipe implements IGT_CraftingRec tStack = GT_Utility.copyAmount(1, tStack); if(GT_Utility.isStackValid(tStack)){ GT_ModHandler.dischargeElectricItem(tStack, Integer.MAX_VALUE, Integer.MAX_VALUE, true, false, true); - tNBT.setTag("Ingredient." + i, tStack.writeToNBT(new NBTTagCompound())); - } + tNBT.setTag("Ingredient." + i, tStack.writeToNBT(new NBTTagCompound()));} } } rNBT.setTag("GT.CraftingComponents", tNBT); diff --git a/src/main/java/gregtech/api/util/GT_Utility.java b/src/main/java/gregtech/api/util/GT_Utility.java index 32225279..c6d1ab52 100644 --- a/src/main/java/gregtech/api/util/GT_Utility.java +++ b/src/main/java/gregtech/api/util/GT_Utility.java @@ -5,24 +5,26 @@ import cpw.mods.fml.common.FMLCommonHandler; import gregtech.api.GregTech_API; import gregtech.api.damagesources.GT_DamageSources; import gregtech.api.enchants.Enchantment_Radioactivity; +import gregtech.api.enums.GT_Values; import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; import gregtech.api.enums.SubTag; import gregtech.api.events.BlockScanningEvent; import gregtech.api.interfaces.IDebugableBlock; import gregtech.api.interfaces.IProjectileItem; import gregtech.api.interfaces.tileentity.*; -import gregtech.api.interfaces.metatileentity.*; import gregtech.api.items.GT_EnergyArmor_Item; import gregtech.api.items.GT_Generic_Item; import gregtech.api.net.GT_Packet_Sound; import gregtech.api.objects.GT_ItemStack; import gregtech.api.objects.ItemData; import gregtech.api.threads.GT_Runnable_Sound; +import gregtech.common.GT_Proxy; +import ic2.api.recipe.ICannerBottleRecipeManager; import ic2.api.recipe.IRecipeInput; import ic2.api.recipe.RecipeInputItemStack; import ic2.api.recipe.RecipeInputOreDict; import ic2.api.recipe.RecipeOutput; -import ic2.api.recipe.ICannerBottleRecipeManager; import net.minecraft.block.Block; import net.minecraft.enchantment.Enchantment; import net.minecraft.enchantment.EnchantmentHelper; @@ -51,6 +53,7 @@ import net.minecraft.tileentity.TileEntityChest; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.ChatComponentText; import net.minecraft.util.MathHelper; +import net.minecraft.world.ChunkPosition; import net.minecraft.world.World; import net.minecraft.world.WorldServer; import net.minecraftforge.common.DimensionManager; @@ -82,8 +85,8 @@ public class GT_Utility { private static final List sFluidContainerList = new ArrayList(); private static final Map sFilledContainerToData = new HashMap(); private static final Map> sEmptyContainerToFluidToData = new HashMap>(); - public static volatile int VERSION = 508; - public static boolean TE_CHECK = false, BC_CHECK = false, CHECK_ALL = true; + public static volatile int VERSION = 509; + public static boolean TE_CHECK = false, BC_CHECK = false, CHECK_ALL = true, RF_CHECK = false; public static Map sPlayedSoundMap = new HashMap(); private static int sBookCount = 0; @@ -334,6 +337,11 @@ public class GT_Utility { tClass.getCanonicalName(); BC_CHECK = true; } catch (Throwable e) {/**/} + try { + Class tClass = cofh.api.energy.IEnergyReceiver.class; + tClass.getCanonicalName(); + RF_CHECK = true; + } catch (Throwable e) {/**/} CHECK_ALL = false; } } @@ -803,25 +811,26 @@ public class GT_Utility { return copyMetaData(Items.feather.getDamage(aStack) + 1, aStack); return null; } + public static synchronized boolean removeIC2BottleRecipe(ItemStack aContainer, ItemStack aInput, Map aRecipeList, ItemStack aOutput){ - if ((isStackInvalid(aInput) && isStackInvalid(aOutput) && isStackInvalid(aContainer)) || aRecipeList == null) return false; - boolean rReturn = false; - Iterator> tIterator = aRecipeList.entrySet().iterator(); - aOutput = GT_OreDictUnificator.get(aOutput); - while (tIterator.hasNext()) { - Map.Entry tEntry = tIterator.next(); - if (aInput == null || tEntry.getKey().matches(aContainer, aInput)) { - List tList = tEntry.getValue().items; - if (tList != null) for (ItemStack tOutput : tList) - if (aOutput == null || areStacksEqual(GT_OreDictUnificator.get(tOutput), aOutput)) { - tIterator.remove(); - rReturn = true; - break; - } - } + if ((isStackInvalid(aInput) && isStackInvalid(aOutput) && isStackInvalid(aContainer)) || aRecipeList == null) return false; + boolean rReturn = false; + Iterator> tIterator = aRecipeList.entrySet().iterator(); + aOutput = GT_OreDictUnificator.get(aOutput); + while (tIterator.hasNext()) { + Map.Entry tEntry = tIterator.next(); + if (aInput == null || tEntry.getKey().matches(aContainer, aInput)) { + List tList = tEntry.getValue().items; + if (tList != null) for (ItemStack tOutput : tList) + if (aOutput == null || areStacksEqual(GT_OreDictUnificator.get(tOutput), aOutput)) { + tIterator.remove(); + rReturn = true; + break; } - return rReturn; } + } + return rReturn; + } public static synchronized boolean removeSimpleIC2MachineRecipe(ItemStack aInput, Map aRecipeList, ItemStack aOutput) { if ((isStackInvalid(aInput) && isStackInvalid(aOutput)) || aRecipeList == null) return false; @@ -1036,33 +1045,15 @@ public class GT_Utility { } public static boolean isOpaqueBlock(World aWorld, int aX, int aY, int aZ) { - boolean result; - try{ - result=aWorld.getBlock(aX, aY, aZ).isOpaqueCube(); - } catch (Throwable e) { - result=true; - } - return result; + return aWorld.getBlock(aX, aY, aZ).isOpaqueCube(); } public static boolean isBlockAir(World aWorld, int aX, int aY, int aZ) { - boolean result; - try{ - result=aWorld.getBlock(aX, aY, aZ).isAir(aWorld, aX, aY, aZ); - } catch (Throwable e) { - result=false; - } - return result; + return aWorld.getBlock(aX, aY, aZ).isAir(aWorld, aX, aY, aZ); } public static boolean hasBlockHitBox(World aWorld, int aX, int aY, int aZ) { - boolean result; - try{ - result=aWorld.getBlock(aX, aY, aZ).getCollisionBoundingBoxFromPool(aWorld, aX, aY, aZ) != null; - } catch (Throwable e) { - result=false; - } - return result; + return aWorld.getBlock(aX, aY, aZ).getCollisionBoundingBoxFromPool(aWorld, aX, aY, aZ) != null; } public static void setCoordsOnFire(World aWorld, int aX, int aY, int aZ, boolean aReplaceCenter) { @@ -1331,9 +1322,6 @@ public class GT_Utility { return loadItem(aNBT.getCompoundTag(aTagName)); } - /** - * Loads an ItemStack properly. - */ public static FluidStack loadFluid(NBTTagCompound aNBT, String aTagName) { return loadFluid(aNBT.getCompoundTag(aTagName)); } @@ -1355,7 +1343,7 @@ public class GT_Utility { } /** - * Loads an ItemStack properly. + * Loads an FluidStack properly. */ public static FluidStack loadFluid(NBTTagCompound aNBT) { if (aNBT == null) return null; @@ -1516,6 +1504,47 @@ public class GT_Utility { return false; } + public static FluidStack getUndergroundOil(World aWorld, int aX, int aZ) { + + + Random tRandom = new Random((aWorld.getSeed() + (aX / 96) + (7 * (aZ / 96)))); + int oil = tRandom.nextInt(3); + double amount = tRandom.nextInt(50) + tRandom.nextDouble(); + oil = tRandom.nextInt(4); +// System.out.println("Oil: "+(aX/96)+" "+(aZ/96)+" "+oil+" "+amount); +// amount = 40; + Fluid tFluid = null; + switch (oil) { + case 0: + tFluid = Materials.NatruralGas.mGas; + break; + case 1: + tFluid = Materials.OilLight.mFluid; + break; + case 2: + tFluid = Materials.OilMedium.mFluid; + break; + case 3: + tFluid = Materials.OilHeavy.mFluid; + break; + default: + tFluid = Materials.Oil.mFluid; + } + int tAmount = (int) (Math.pow(amount, 5) / 100); + ChunkPosition tPos = new ChunkPosition(aX/16, 1, aZ/16); + if(GT_Proxy.chunkData.containsKey(tPos)){ + int[] tInts = GT_Proxy.chunkData.get(tPos); + if(tInts.length>0){ + if(tInts[0]>=0){tAmount = tInts[0];} + } + GT_Proxy.chunkData.remove(tPos); + } + tAmount = tAmount - 5; + GT_Proxy.chunkData.put(tPos, new int[]{tAmount}); + + return new FluidStack(tFluid, tAmount); + } + public static int getCoordinateScan(ArrayList aList, EntityPlayer aPlayer, World aWorld, int aScanLevel, int aX, int aY, int aZ, int aSide, float aClickX, float aClickY, float aClickZ) { if (aList == null) return 0; @@ -1703,6 +1732,11 @@ public class GT_Utility { if (D1) e.printStackTrace(GT_Log.err); } } + if (aPlayer.capabilities.isCreativeMode&>_Values.D1) { + FluidStack tFluid = getUndergroundOil(aWorld, aX, aZ); + tList.add("Oil in Chunk: " + tFluid.amount + " " + tFluid.getLocalizedName()); + } + try { if (tBlock instanceof IDebugableBlock) { rEUAmount += 500; @@ -1882,6 +1916,33 @@ public class GT_Utility { return tNBT.getString("author"); } + public static void setProspectionData(ItemStack aStack, int aX, int aY, int aZ, int aDim, FluidStack aFluid, String[] aOres) { + NBTTagCompound tNBT = getNBT(aStack); + String tData = aX + "," + aY + "," + aZ + "," + aDim + "," + (aFluid.amount / 5000) + "," + aFluid.getLocalizedName() + ","; + for (String tString : aOres) { + tData += tString + ","; + } + tNBT.setString("prospection", tData); + setNBT(aStack, tNBT); + } + + public static void convertProspectionData(ItemStack aStack) { + NBTTagCompound tNBT = getNBT(aStack); + String tData = tNBT.getString("prospection"); + String[] tDataArray = tData.split(","); + if (tDataArray.length > 6) { + tNBT.setString("author", "X: " + tDataArray[0] + " Y: " + tDataArray[1] + " Z: " + tDataArray[2] + " Dim: " + tDataArray[3]); + NBTTagList tNBTList = new NBTTagList(); + String tOres = " Prospected Ores: "; + for (int i = 6; tDataArray.length > i; i++) { + tOres += (tDataArray[i] + " "); + } + tNBTList.appendTag(new NBTTagString("Prospection Data From: X" + tDataArray[0] + " Z:" + tDataArray[2] + " Dim:" + tDataArray[3] + " Produces " + tDataArray[4] + "L " + tDataArray[5] + " " + tOres)); + tNBT.setTag("pages", tNBTList); + } + setNBT(aStack, tNBT); + } + public static void addEnchantment(ItemStack aStack, Enchantment aEnchantment, int aLevel) { NBTTagCompound tNBT = getNBT(aStack), tEnchantmentTag; if (!tNBT.hasKey("ench", 9)) tNBT.setTag("ench", new NBTTagList()); @@ -1988,4 +2049,4 @@ public class GT_Utility { } } -} +} \ No newline at end of file diff --git a/src/main/java/gregtech/common/GT_Client.java b/src/main/java/gregtech/common/GT_Client.java index e58669e1..a50fc174 100644 --- a/src/main/java/gregtech/common/GT_Client.java +++ b/src/main/java/gregtech/common/GT_Client.java @@ -243,30 +243,6 @@ public class GT_Client extends GT_Proxy } } catch (Throwable e) { } - - try { - GT_Log.out.println("GT New Horizons: Downloading Cape List."); - @SuppressWarnings("resource") - Scanner tScanner = new Scanner(new URL("https://raw.githubusercontent.com/GTNewHorizons/CustomGTCapeHook-Cape-List/master/capes.txt").openStream()); - while (tScanner.hasNextLine()) { - String tName = tScanner.nextLine(); - - if (tName.contains(":")) { - int splitLocation = tName.indexOf(":"); - String username = tName.substring(0, splitLocation); - if (!this.mCapeList.contains(username.toLowerCase()) && !this.mCapeList.contains(tName.toLowerCase())) { - this.mCapeList.add(tName.toLowerCase()); - } - } else { - if (!this.mCapeList.contains(tName.toLowerCase())) { - this.mCapeList.add(tName.toLowerCase()); - } - } - } - } catch (Throwable e) { - } - - try { GT_Log.out.println("GT_Mod: Downloading News."); @SuppressWarnings("resource") diff --git a/src/main/java/gregtech/common/GT_Proxy.java b/src/main/java/gregtech/common/GT_Proxy.java index e35fdec1..47219e96 100644 --- a/src/main/java/gregtech/common/GT_Proxy.java +++ b/src/main/java/gregtech/common/GT_Proxy.java @@ -1,5 +1,9 @@ package gregtech.common; +import java.io.File; +import java.text.DateFormat; +import java.util.*; + import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.IFuelHandler; import cpw.mods.fml.common.Loader; @@ -13,6 +17,7 @@ import cpw.mods.fml.common.network.NetworkRegistry; import cpw.mods.fml.common.registry.GameRegistry; import gregtech.api.GregTech_API; import gregtech.api.enums.*; +import gregtech.api.enums.TC_Aspects.TC_AspectStack; import gregtech.api.interfaces.IProjectileItem; import gregtech.api.interfaces.internal.IGT_Mod; import gregtech.api.interfaces.internal.IThaumcraftCompat; @@ -27,6 +32,7 @@ import gregtech.api.objects.MaterialStack; import gregtech.api.util.*; import gregtech.common.entities.GT_Entity_Arrow; import gregtech.common.items.GT_MetaGenerated_Tool_01; +import gregtech.common.items.armor.*; import net.minecraft.enchantment.Enchantment; import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.entity.Entity; @@ -46,6 +52,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.potion.Potion; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.DamageSource; +import net.minecraft.world.ChunkPosition; import net.minecraft.world.World; import net.minecraft.world.WorldSettings.GameType; import net.minecraft.world.gen.feature.WorldGenMinable; @@ -58,6 +65,7 @@ import net.minecraftforge.event.entity.player.ArrowNockEvent; import net.minecraftforge.event.entity.player.PlayerInteractEvent; import net.minecraftforge.event.terraingen.OreGenEvent; import net.minecraftforge.event.world.BlockEvent; +import net.minecraftforge.event.world.ChunkDataEvent; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidContainerRegistry; import net.minecraftforge.fluids.FluidRegistry; @@ -67,21 +75,17 @@ import net.minecraftforge.oredict.RecipeSorter; import net.minecraftforge.oredict.ShapedOreRecipe; import net.minecraftforge.oredict.ShapelessOreRecipe; -import java.io.File; -import java.text.DateFormat; -import java.util.*; - public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler { private static final EnumSet PREVENTED_ORES = EnumSet.of(OreGenEvent.GenerateMinable.EventType.COAL, new OreGenEvent.GenerateMinable.EventType[]{OreGenEvent.GenerateMinable.EventType.IRON, OreGenEvent.GenerateMinable.EventType.GOLD, OreGenEvent.GenerateMinable.EventType.DIAMOND, OreGenEvent.GenerateMinable.EventType.REDSTONE, OreGenEvent.GenerateMinable.EventType.LAPIS, OreGenEvent.GenerateMinable.EventType.QUARTZ}); - public final HashSet mRegisteredOres = new HashSet(10000); - public final ArrayList mSoundNames = new ArrayList(); - public final ArrayList mSoundItems = new ArrayList(); - public final ArrayList mSoundCounts = new ArrayList(); - private final Collection mEvents = new HashSet(); - private final Collection mIgnoredItems = new HashSet(Arrays.asList(new String[]{"itemGhastTear", "itemFlint", "itemClay", "itemBucketSaltWater", + public final HashSet mRegisteredOres = new HashSet(10000); + public final ArrayList mSoundNames = new ArrayList(); + public final ArrayList mSoundItems = new ArrayList(); + public final ArrayList mSoundCounts = new ArrayList(); + private final Collection mEvents = new HashSet(); + private final Collection mIgnoredItems = new HashSet(Arrays.asList(new String[]{"itemGhastTear", "itemFlint", "itemClay", "itemBucketSaltWater", "itemBucketFreshWater", "itemBucketWater", "itemRock", "itemReed", "itemArrow", "itemSaw", "itemKnife", "itemHammer", "itemChisel", "itemRubber", "itemEssence", "itemIlluminatedPanel", "itemSkull", "itemRawRubber", "itemBacon", "itemJetpackAccelerator", "itemLazurite", "itemIridium", "itemTear", "itemClaw", "itemFertilizer", "itemTar", "itemSlimeball", "itemCoke", "itemBeeswax", "itemBeeQueen", "itemForcicium", "itemForcillium", @@ -92,7 +96,7 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler { "itemWhippingCream", "itemGlisteningWhippingCream", "itemCleaver", "itemHerbalMedicineWhippingCream", "itemStrangeWhippingCream", "itemBlazeCleaver", "itemBakedCakeSponge", "itemMagmaCake", "itemGlisteningCake", "itemOgreCleaver", "itemFishandPumpkinCake", "itemMagmaWhippingCream", "itemMultimeter", "itemSuperconductor"})); - private final Collection mIgnoredNames = new HashSet(Arrays.asList(new String[]{"grubBee", "chainLink", "candyCane", "bRedString", "bVial", + private final Collection mIgnoredNames = new HashSet(Arrays.asList(new String[]{"grubBee", "chainLink", "candyCane", "bRedString", "bVial", "bFlask", "anorthositeSmooth", "migmatiteSmooth", "slateSmooth", "travertineSmooth", "limestoneSmooth", "orthogneissSmooth", "marbleSmooth", "honeyDrop", "lumpClay", "honeyEqualssugar", "flourEqualswheat", "bluestoneInsulated", "blockWaterstone", "blockSand", "blockTorch", "blockPumpkin", "blockClothRock", "blockStainedHardenedClay", "blockQuartzPillar", "blockQuartzChiselled", "blockSpawner", "blockCloth", "mobHead", @@ -109,8 +113,8 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler { "unfinishedTank", "valvePart", "aquaRegia", "leatherSeal", "leatherSlimeSeal", "hambone", "slimeball", "clay", "enrichedUranium", "camoPaste", "antiBlock", "burntQuartz", "salmonRaw", "blockHopper", "blockEnderObsidian", "blockIcestone", "blockMagicWood", "blockEnderCore", "blockHeeEndium", "oreHeeEndPowder", "oreHeeStardust", "oreHeeIgneousRock", "oreHeeInstabilityOrb", "crystalPureFluix", "shardNether", "gemFluorite", - "stickObsidian", "caveCrystal", "shardCrystal", "dyeCrystal","shardFire","shardWater","shardAir","shardEarth","ingotRefinedIron","blockMarble"})); - private final Collection mInvalidNames = new HashSet(Arrays.asList(new String[]{"diamondShard", "redstoneRoot", "obsidianStick", "bloodstoneOre", + "stickObsidian", "caveCrystal", "shardCrystal", "dyeCrystal","shardFire","shardWater","shardAir","shardEarth","ingotRefinedIron","blockMarble","ingotUnstable"})); + private final Collection mInvalidNames = new HashSet(Arrays.asList(new String[]{"diamondShard", "redstoneRoot", "obsidianStick", "bloodstoneOre", "universalCable", "bronzeTube", "ironTube", "netherTube", "obbyTube", "infiniteBattery", "eliteBattery", "advancedBattery", "10kEUStore", "blueDye", "MonazitOre", "quartzCrystal", "whiteLuminiteCrystal", "darkStoneIngot", "invisiumIngot", "demoniteOrb", "enderGem", "starconiumGem", "osmoniumIngot", "tapaziteGem", "zectiumIngot", "foolsRubyGem", "rubyGem", "meteoriteGem", "adamiteShard", "sapphireGem", "copperIngot", @@ -148,15 +152,18 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler { public int mFlintChance = 30; public int mItemDespawnTime = 6000; public int mUpgradeCount = 4; + public boolean mGTBees = true; private World mUniverse = null; private boolean isFirstServerWorldTick = true; private boolean mOreDictActivated = false; - public int mWireHeatingTicks = 4; public int[] mHarvestLevel= new int[1000]; public int mGraniteHavestLevel=3; public int mMaxHarvestLevel=7; public boolean mChangeHarvestLevels=false; - + public boolean mNerfedCombs = true; + public int mWireHeatingTicks = 4; + public boolean mHideUnusedOres = true; + public boolean mHideRecyclingRecipes = true; public GT_Proxy() { GameRegistry.registerFuelHandler(this); @@ -275,8 +282,7 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler { ItemList.IC2_Item_Casing_Lead.set(GT_ModHandler.getIC2Item("casinglead", 1L)); ItemList.IC2_Item_Casing_Steel.set(GT_ModHandler.getIC2Item("casingadviron", 1L)); ItemList.IC2_Spray_WeedEx.set(GT_ModHandler.getIC2Item("weedEx", 1L)); - ItemList.IC2_Fuel_Can_Empty.set(GT_ModHandler.getIC2Item("fuelCan", 1L, - GT_ModHandler.getIC2Item("fuelCanEmpty", 1L, GT_ModHandler.getIC2Item("emptyFuelCan", 1L)))); + ItemList.IC2_Fuel_Can_Empty.set(GT_ModHandler.getIC2Item("fuelCan", 1L, GT_ModHandler.getIC2Item("fuelCanEmpty", 1L, GT_ModHandler.getIC2Item("emptyFuelCan", 1L)))); ItemList.IC2_Fuel_Can_Filled.set(GT_ModHandler.getIC2Item("filledFuelCan", 1L)); ItemList.IC2_Mixed_Metal_Ingot.set(GT_ModHandler.getIC2Item("mixedMetalIngot", 1L)); ItemList.IC2_Fertilizer.set(GT_ModHandler.getIC2Item("fertilizer", 1L)); @@ -543,7 +549,7 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler { GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadSword, aMaterial, 1L), tBits, new Object[]{" P ", "fPh", Character.valueOf('P'), OrePrefixes.plate.get(aMaterial), Character.valueOf('I'), OrePrefixes.ingot.get(aMaterial)}); GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.ring, aMaterial, 1L), tBits, - new Object[]{"h ", "fX", Character.valueOf('X'), OrePrefixes.stick.get(aMaterial)}); + new Object[]{"h ", " X", Character.valueOf('X'), OrePrefixes.stick.get(aMaterial)}); GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.stickLong, aMaterial, 1L), tBits, new Object[]{"ShS", Character.valueOf('S'), OrePrefixes.stick.get(aMaterial)}); } @@ -561,6 +567,9 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler { GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.rotor, aMaterial, 1L), tBits, new Object[]{"PhP", "SRf", "PdP", Character.valueOf('P'), aMaterial == Materials.Wood ? OrePrefixes.plank.get(aMaterial) : OrePrefixes.plate.get(aMaterial), Character.valueOf('R'), OrePrefixes.ring.get(aMaterial), Character.valueOf('S'), OrePrefixes.screw.get(aMaterial)}); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 4L), GT_OreDictUnificator.get(OrePrefixes.ring, aMaterial, 1L), Materials.Tin.getMolten(32), GT_OreDictUnificator.get(OrePrefixes.rotor, aMaterial, 1L), 240, 24); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 4L), GT_OreDictUnificator.get(OrePrefixes.ring, aMaterial, 1L), Materials.Lead.getMolten(48), GT_OreDictUnificator.get(OrePrefixes.rotor, aMaterial, 1L), 240, 24); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 4L), GT_OreDictUnificator.get(OrePrefixes.ring, aMaterial, 1L), Materials.SolderingAlloy.getMolten(16), GT_OreDictUnificator.get(OrePrefixes.rotor, aMaterial, 1L), 240, 24); GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.stickLong, aMaterial, 1L), tBits, new Object[]{"sf", "G ", Character.valueOf('G'), OrePrefixes.gemFlawless.get(aMaterial)}); GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.stickLong, aMaterial, 2L), tBits, @@ -624,8 +633,8 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler { Character.valueOf('P'), OrePrefixes.stoneSmooth}); break; default: - GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, aMaterial, 1L), tBits, new Object[]{" S ", "hPx"," S ", - Character.valueOf('S'), OrePrefixes.stick.get(aMaterial), Character.valueOf('P'), OrePrefixes.plate.get(aMaterial)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, aMaterial, 1L), tBits, + new Object[]{"P ", aMaterial.contains(SubTag.WOOD) ? " s" : " h", Character.valueOf('P'), OrePrefixes.plate.get(aMaterial)}); } switch (aMaterial) { case Wood: @@ -1114,21 +1123,14 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler { tReRegisteredMaterial = (Materials) i$.next(); } aMaterial.add(GT_Utility.copyAmount(1L, new Object[]{aEvent.Ore})); - if ((GregTech_API.sThaumcraftCompat != null) && (aPrefix.doGenerateItem(aMaterial)) && (!aPrefix.isIgnored(aMaterial))) { - long tAmount = aPrefix.mMaterialAmount < 0L ? 3628800L : aPrefix.mMaterialAmount; - List tAspects = new ArrayList(); - TC_Aspects.TC_AspectStack tAspect; - for (Iterator i$ = aPrefix.mAspects.iterator(); i$.hasNext(); tAspect.addToAspectList(tAspects)) { - tAspect = (TC_Aspects.TC_AspectStack) i$.next(); - } - tAspect = null; - for (Iterator i$ = aMaterial.mAspects.iterator(); i$.hasNext(); tAspect.copy(tAspect.mAmount * tAmount / 3628800L) - .addToAspectList(tAspects)) { - tAspect = (TC_Aspects.TC_AspectStack) i$.next(); - } - GregTech_API.sThaumcraftCompat.registerThaumcraftAspectsToItem(GT_Utility.copyAmount(1L, new Object[]{aEvent.Ore}), - tAspects, aEvent.Name); - } + + if (GregTech_API.sThaumcraftCompat != null && aPrefix.doGenerateItem(aMaterial) && !aPrefix.isIgnored(aMaterial)) { + List tAspects = new ArrayList(); + for (TC_AspectStack tAspect : aPrefix.mAspects) tAspect.addToAspectList(tAspects); + if (aPrefix.mMaterialAmount >= 3628800 || aPrefix.mMaterialAmount < 0) for (TC_AspectStack tAspect : aMaterial.mAspects) tAspect.addToAspectList(tAspects); + GregTech_API.sThaumcraftCompat.registerThaumcraftAspectsToItem(GT_Utility.copyAmount(1, aEvent.Ore), tAspects, aEvent.Name); + } + switch (aPrefix) { case crystal: if ((aMaterial == Materials.CertusQuartz) || (aMaterial == Materials.NetherQuartz) || (aMaterial == Materials.Fluix)) { @@ -1511,6 +1513,19 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler { } public Object getServerGuiElement(int aID, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ) { + if(aID>=1000){ + int ID = aID-1000; + switch(ID){ + case 0: + return new ContainerBasicArmor(aPlayer, new InventoryArmor(ModularArmor_Item.class, aPlayer.getCurrentEquippedItem())); + case 1: + return new ContainerElectricArmor1(aPlayer, new InventoryArmor(ModularArmor_Item.class, aPlayer.getCurrentEquippedItem())); + case 2: + return new ContainerElectricArmor1(aPlayer, new InventoryArmor(ModularArmor_Item.class, aPlayer.getCurrentEquippedItem())); + default: + return getRightItem(aPlayer, ID); + } + } TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); if ((tTileEntity instanceof IGregTechTileEntity)) { IMetaTileEntity tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity(); @@ -1521,7 +1536,36 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler { return null; } + public Object getRightItem(EntityPlayer player, int ID){ + ItemStack mStack = player.getEquipmentInSlot(ID/100); + if(mStack==null||!(mStack.getItem() instanceof ModularArmor_Item))return null; + + switch(ID % 100){ + case 0: + return new ContainerBasicArmor(player, new InventoryArmor(ModularArmor_Item.class, mStack)); + case 1: + return new ContainerElectricArmor1(player, new InventoryArmor(ModularArmor_Item.class, mStack)); + case 2: + return new ContainerElectricArmor1(player, new InventoryArmor(ModularArmor_Item.class, mStack)); + } + return null; + + } + public Object getClientGuiElement(int aID, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ) { + if(aID>=1000){ + int ID = aID-1000; + switch(ID){ + case 0: + return new GuiModularArmor(new ContainerBasicArmor(aPlayer, new InventoryArmor(ModularArmor_Item.class, aPlayer.getCurrentEquippedItem())), aPlayer); + case 1: + return new GuiElectricArmor1(new ContainerElectricArmor1(aPlayer, new InventoryArmor(ModularArmor_Item.class, aPlayer.getCurrentEquippedItem())), aPlayer); + case 2: + return new GuiElectricArmor1(new ContainerElectricArmor1(aPlayer, new InventoryArmor(ModularArmor_Item.class, aPlayer.getCurrentEquippedItem())), aPlayer); + default: + return getRightItemGui(aPlayer, ID); + } + } TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); if ((tTileEntity instanceof IGregTechTileEntity)) { IMetaTileEntity tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity(); @@ -1532,6 +1576,22 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler { return null; } + public Object getRightItemGui(EntityPlayer player, int ID){ + ItemStack mStack = player.getEquipmentInSlot(ID/100); + if(mStack==null||!(mStack.getItem() instanceof ModularArmor_Item))return null; + + switch(ID % 100){ + case 0: + return new GuiModularArmor(new ContainerBasicArmor(player, new InventoryArmor(ModularArmor_Item.class, mStack)),player); + case 1: + return new GuiElectricArmor1(new ContainerElectricArmor1(player, new InventoryArmor(ModularArmor_Item.class, mStack)), player); + case 2: + return new GuiElectricArmor1(new ContainerElectricArmor1(player, new InventoryArmor(ModularArmor_Item.class, mStack)), player); + } + return null; + + } + public int getBurnTime(ItemStack aFuel) { if ((aFuel == null) || (aFuel.getItem() == null)) { return 0; @@ -1594,7 +1654,7 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler { rFuelValue = (short) Math.max(rFuelValue, 6000); } if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "dustCaesium")) { - rFuelValue = (short) Math.max(rFuelValue, 6000); + rFuelValue = (short) Math.max(rFuelValue, 6000); } if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "dustSmallCaesium")) { rFuelValue = (short) Math.max(rFuelValue, 2000); @@ -1615,10 +1675,10 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler { rFuelValue = (short) Math.max(rFuelValue, 1200); } if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "dustSmallLignite")) { - rFuelValue = (short) Math.max(rFuelValue, 300); + rFuelValue = (short) Math.max(rFuelValue, 375); } if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "dustTinyLignite")) { - rFuelValue = (short) Math.max(rFuelValue, 132); + rFuelValue = (short) Math.max(rFuelValue, 166); } if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "gemCoal")) { rFuelValue = (short) Math.max(rFuelValue, 1600); @@ -1665,6 +1725,9 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler { if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "dustTinyWood")) { rFuelValue = (short) Math.max(rFuelValue, 11); } + if (GT_OreDictUnificator.isItemStackInstanceOf(aFuel, "plateWood")) { + rFuelValue = (short) Math.min(rFuelValue, 300); + } if (GT_Utility.areStacksEqual(aFuel, new ItemStack(Blocks.wooden_button, 1))) { rFuelValue = (short) Math.max(rFuelValue, 150); } @@ -1685,11 +1748,6 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler { aMaterial.mMoltenRGBa, 4, aMaterial.mMeltingPoint <= 0 ? 1000 : aMaterial.mMeltingPoint, null, null, 0); } - public Fluid addAutogeneratedWetFluid(Materials aMaterial) { - return addFluid("wet." + aMaterial.name().toLowerCase(), "wet.autogenerated", "Wet " + aMaterial.mDefaultLocalName, aMaterial, - aMaterial.mMoltenRGBa, 4, aMaterial.mMeltingPoint <= 0 ? 1000 : aMaterial.mMeltingPoint, GT_OreDictUnificator.get(OrePrefixes.cell, aMaterial, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); - } - public Fluid addAutogeneratedPlasmaFluid(Materials aMaterial) { return addFluid("plasma." + aMaterial.name().toLowerCase(), "plasma.autogenerated", aMaterial.mDefaultLocalName + " Plasma", aMaterial, aMaterial.mMoltenRGBa, 3, 10000, GT_OreDictUnificator.get(OrePrefixes.cellPlasma, aMaterial, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), @@ -1807,6 +1865,9 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler { } else if (tOre.mModID != null && tOre.mModID.toLowerCase().equals("appliedenergistics2") && tOre.mPrefix == OrePrefixes.dust && tOre.mMaterial == Materials.CertusQuartz) { GT_OreDictUnificator.addAssociation(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, false); GT_OreDictUnificator.set(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, (tOre.mModID != null) && (GregTech_API.sUnification.get(ConfigCategories.specialunificationtargets + "." + tOre.mModID, tOre.mEvent.Name, true)), true); + } else if (tOre.mModID != null && tOre.mModID.toLowerCase().equals(GT_Values.MOD_ID_TC) && tOre.mPrefix == OrePrefixes.block && tOre.mMaterial == Materials.Thaumium) { + GT_OreDictUnificator.addAssociation(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, false); + GT_OreDictUnificator.set(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, (tOre.mModID != null) && (GregTech_API.sUnification.get(ConfigCategories.specialunificationtargets + "." + tOre.mModID, tOre.mEvent.Name, true)), true); } else if (GT_OreDictUnificator.isBlacklisted(tOre.mEvent.Ore)) { GT_OreDictUnificator.addAssociation(tOre.mPrefix, tOre.mMaterial, tOre.mEvent.Ore, true); } else { @@ -1840,6 +1901,29 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler { } } + public static final HashMap chunkData = new HashMap(5000); + + @SubscribeEvent + public void handleChunkSaveEvent(ChunkDataEvent.Save event) + { + ChunkPosition tPos = new ChunkPosition(event.getChunk().xPosition,1,event.getChunk().zPosition); + if(chunkData.containsKey(tPos)){ + int[] tInts = chunkData.get(tPos); + if(tInts.length>0){event.getData().setInteger("GTOIL", tInts[0]);}} + } + + @SubscribeEvent + public void handleChunkLoadEvent(ChunkDataEvent.Load event) + { + int tOil = -1; + if(event.getData().hasKey("GTOIL")){ + tOil = event.getData().getInteger("GTOIL");} + ChunkPosition tPos = new ChunkPosition(event.getChunk().xPosition,1,event.getChunk().zPosition); + if(chunkData.containsKey(tPos)){ + chunkData.remove(tPos);} + chunkData.put(tPos, new int[]{ tOil}); + } + public static class OreDictEventContainer { public final OreDictionary.OreRegisterEvent mEvent; public final OrePrefixes mPrefix; diff --git a/src/main/java/gregtech/common/GT_RecipeAdder.java b/src/main/java/gregtech/common/GT_RecipeAdder.java index 5a658f97..5a036a66 100644 --- a/src/main/java/gregtech/common/GT_RecipeAdder.java +++ b/src/main/java/gregtech/common/GT_RecipeAdder.java @@ -8,6 +8,7 @@ import gregtech.api.enums.OrePrefixes; import gregtech.api.interfaces.internal.IGT_RecipeAdder; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_Recipe; +import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidStack; @@ -68,6 +69,10 @@ public class GT_RecipeAdder } public boolean addChemicalRecipe(ItemStack aInput1, ItemStack aInput2, FluidStack aFluidInput, FluidStack aFluidOutput, ItemStack aOutput, int aDuration) { + return addChemicalRecipe(aInput1, aInput2, aFluidInput, aFluidOutput, aOutput, aDuration, 30); + } + + public boolean addChemicalRecipe(ItemStack aInput1, ItemStack aInput2, FluidStack aFluidInput, FluidStack aFluidOutput, ItemStack aOutput, int aDuration, int aEUtick) { if (((aInput1 == null) && (aFluidInput == null)) || ((aOutput == null) && (aFluidOutput == null))) { return false; } @@ -77,7 +82,10 @@ public class GT_RecipeAdder if ((aFluidOutput != null) && ((aDuration = GregTech_API.sRecipeFile.get("chemicalreactor", aFluidOutput.getFluid().getName(), aDuration)) <= 0)) { return false; } - GT_Recipe.GT_Recipe_Map.sChemicalRecipes.addRecipe(true, new ItemStack[]{aInput1, aInput2}, new ItemStack[]{aOutput}, null, null, new FluidStack[]{aFluidInput}, new FluidStack[]{aFluidOutput}, aDuration, 30, 0); + if (aEUtick <= 0) { + return false; + } + GT_Recipe.GT_Recipe_Map.sChemicalRecipes.addRecipe(true, new ItemStack[]{aInput1, aInput2}, new ItemStack[]{aOutput}, null, null, new FluidStack[]{aFluidInput}, new FluidStack[]{aFluidOutput}, aDuration, aEUtick, 0); return true; } @@ -106,8 +114,13 @@ public class GT_RecipeAdder new GT_Recipe(aInput1, aEUt, aInput2, aDuration, aOutput1, aOutput2); return true; } + + @Override + public boolean addAlloySmelterRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aOutput1, int aDuration, int aEUt) { + return addAlloySmelterRecipe(aInput1, aInput2, aOutput1, aDuration, aEUt, false); + } - public boolean addAlloySmelterRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aOutput1, int aDuration, int aEUt) { + public boolean addAlloySmelterRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aOutput1, int aDuration, int aEUt, boolean hidden) { if ((aInput1 == null) || (aOutput1 == null || Materials.Graphite.contains(aInput1))) { return false; } @@ -117,7 +130,10 @@ public class GT_RecipeAdder if ((aDuration = GregTech_API.sRecipeFile.get("alloysmelting", aInput2 == null ? aInput1 : aOutput1, aDuration)) <= 0) { return false; } - new GT_Recipe(aInput1, aInput2, aEUt, aDuration, aOutput1); + GT_Recipe tRecipe =new GT_Recipe(aInput1, aInput2, aEUt, aDuration, aOutput1); + if ((hidden) && (tRecipe != null)) { + tRecipe.mHidden = true; + } return true; } @@ -250,7 +266,21 @@ public class GT_RecipeAdder if ((aInput2 = GregTech_API.sRecipeFile.get("implosion", aInput1, aInput2)) <= 0) { return false; } - new GT_Recipe(aInput1, aInput2, aOutput1, aOutput2); + int tExplosives = aInput2 > 0 ? aInput2 < 64 ? aInput2 : 64 : 1; + int tGunpowder = tExplosives * 2; + int tDynamite = tExplosives * 4; + int tTNT = Math.max(1, tExplosives/2); + int tITNT = Math.max(1, tExplosives/4); + //new GT_Recipe(aInput1, aInput2, aOutput1, aOutput2); + if(tGunpowder<65){ + GT_Recipe.GT_Recipe_Map.sImplosionRecipes.addRecipe(true, new ItemStack[]{aInput1, ItemList.Block_Powderbarrel.get(tGunpowder, new Object[0])}, new ItemStack[]{aOutput1, aOutput2}, null, null, null, null, 20, 30, 0); + } + if(tDynamite<17){ + GT_Recipe.GT_Recipe_Map.sImplosionRecipes.addRecipe(true, new ItemStack[]{aInput1, GT_ModHandler.getIC2Item("dynamite", tDynamite, null)}, new ItemStack[]{aOutput1, aOutput2}, null, null, null, null, 20, 30, 0); + } + GT_Recipe.GT_Recipe_Map.sImplosionRecipes.addRecipe(true, new ItemStack[]{aInput1, new ItemStack(Blocks.tnt,tTNT)}, new ItemStack[]{aOutput1, aOutput2}, null, null, null, null, 20, 30, 0); + GT_Recipe.GT_Recipe_Map.sImplosionRecipes.addRecipe(true, new ItemStack[]{aInput1, GT_ModHandler.getIC2Item("industrialTnt", tITNT, null)}, new ItemStack[]{aOutput1, aOutput2}, null, null, null, null, 20, 30, 0); + return true; } @@ -267,6 +297,31 @@ public class GT_RecipeAdder return false; } + + @Override + public boolean addUniversalDistillationRecipe(FluidStack aInput, FluidStack[] aOutputs, ItemStack aOutput2, int aDuration, int aEUt) { + if (aOutputs.length > 0) { + addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 0L, new Object[0]), aInput, aOutputs[0], aDuration * 2, aEUt / 4, false); + } + if (aOutputs.length > 1) { + addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 1L, new Object[0]), aInput, aOutputs[1], aDuration * 2, aEUt / 4, false); + } + if (aOutputs.length > 2) { + addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 2L, new Object[0]), aInput, aOutputs[2], aDuration * 2, aEUt / 4, false); + } + if (aOutputs.length > 3) { + addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 3L, new Object[0]), aInput, aOutputs[3], aDuration * 2, aEUt / 4, false); + } + if (aOutputs.length > 4) { + addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 4L, new Object[0]), aInput, aOutputs[4], aDuration * 2, aEUt / 4, false); + } + if (aOutputs.length > 5) { + addDistilleryRecipe(ItemList.Circuit_Integrated.getWithDamage(0L, 5L, new Object[0]), aInput, aOutputs[5], aDuration * 2, aEUt / 4, false); + } + + return addDistillationTowerRecipe(aInput, aOutputs, aOutput2, aDuration, aEUt); + } + public boolean addDistillationTowerRecipe(FluidStack aInput, FluidStack[] aOutputs, ItemStack aOutput2, int aDuration, int aEUt) { if (aInput == null || aOutputs == null || aOutputs.length < 1 || aOutputs.length > 5) { return false; @@ -411,15 +466,19 @@ public class GT_RecipeAdder if (aInput.isFluidEqual(Materials.PhasedIron.getMolten(144))) { aInput = Materials.PulsatingIron.getMolten(aInput.amount); } - if ((aDuration = GregTech_API.sRecipeFile.get("fluidsolidifier", aOutput, aDuration)) <= 0) { return false; } GT_Recipe.GT_Recipe_Map.sFluidSolidficationRecipes.addRecipe(true, new ItemStack[]{aMold}, new ItemStack[]{aOutput}, null, new FluidStack[]{aInput}, null, aDuration, aEUt, 0); return true; } + + @Override + public boolean addFluidSmelterRecipe(ItemStack aInput, ItemStack aRemains, FluidStack aOutput, int aChance, int aDuration, int aEUt) { + return addFluidSmelterRecipe(aInput, aRemains, aOutput, aChance, aDuration, aEUt, false); + } - public boolean addFluidSmelterRecipe(ItemStack aInput, ItemStack aRemains, FluidStack aOutput, int aChance, int aDuration, int aEUt) { + public boolean addFluidSmelterRecipe(ItemStack aInput, ItemStack aRemains, FluidStack aOutput, int aChance, int aDuration, int aEUt, boolean hidden) { if ((aInput == null) || (aOutput == null)) { return false; } @@ -432,7 +491,10 @@ public class GT_RecipeAdder if ((aDuration = GregTech_API.sRecipeFile.get("fluidsmelter", aInput, aDuration)) <= 0) { return false; } - GT_Recipe.GT_Recipe_Map.sFluidExtractionRecipes.addRecipe(true, new ItemStack[]{aInput}, new ItemStack[]{aRemains}, null, new int[]{aChance}, null, new FluidStack[]{aOutput}, aDuration, aEUt, 0); + GT_Recipe tRecipe =GT_Recipe.GT_Recipe_Map.sFluidExtractionRecipes.addRecipe(true, new ItemStack[]{aInput}, new ItemStack[]{aRemains}, null, new int[]{aChance}, null, new FluidStack[]{aOutput}, aDuration, aEUt, 0); + if ((hidden) && (tRecipe != null)) { + tRecipe.mHidden = true; + } return true; } @@ -449,7 +511,6 @@ public class GT_RecipeAdder if ((aDuration = GregTech_API.sRecipeFile.get("fluidextractor", aInput, aDuration)) <= 0) { return false; } - GT_Recipe.GT_Recipe_Map.sFluidExtractionRecipes.addRecipe(true, new ItemStack[]{aInput}, new ItemStack[]{aRemains}, null, new int[]{aChance}, null, new FluidStack[]{aOutput}, aDuration, aEUt, 0); return true; } @@ -574,8 +635,14 @@ public class GT_RecipeAdder } return false; } + - public boolean addArcFurnaceRecipe(ItemStack aInput, ItemStack[] aOutputs, int[] aChances, int aDuration, int aEUt) { + @Override + public boolean addArcFurnaceRecipe(ItemStack aInput, ItemStack[] aOutputs, int[] aChances, int aDuration, int aEUt) { + return addArcFurnaceRecipe(aInput, aOutputs, aChances, aDuration, aEUt, false); + } + + public boolean addArcFurnaceRecipe(ItemStack aInput, ItemStack[] aOutputs, int[] aChances, int aDuration, int aEUt, boolean hidden) { if ((aInput == null) || (aOutputs == null)) { return false; } @@ -584,11 +651,17 @@ public class GT_RecipeAdder if ((aDuration = GregTech_API.sRecipeFile.get("arcfurnace", aInput, aDuration)) <= 0) { return false; } - GT_Recipe.GT_Recipe_Map.sArcFurnaceRecipes.addRecipe(true, new ItemStack[]{aInput}, aOutputs, null, aChances, new FluidStack[]{Materials.Oxygen.getGas(aDuration)}, null, Math.max(1, aDuration), Math.max(1, aEUt), 0); + GT_Recipe sRecipe = GT_Recipe.GT_Recipe_Map.sArcFurnaceRecipes.addRecipe(true, new ItemStack[]{aInput}, aOutputs, null, aChances, new FluidStack[]{Materials.Oxygen.getGas(aDuration)}, null, Math.max(1, aDuration), Math.max(1, aEUt), 0); + if ((hidden) && (sRecipe != null)) { + sRecipe.mHidden = true; + } for (Materials tMaterial : new Materials[]{Materials.Argon, Materials.Nitrogen}) { if (tMaterial.mPlasma != null) { int tPlasmaAmount = (int) Math.max(1L, aDuration / (tMaterial.getMass() * 16L)); - GT_Recipe.GT_Recipe_Map.sPlasmaArcFurnaceRecipes.addRecipe(true, new ItemStack[]{aInput}, aOutputs, null, aChances, new FluidStack[]{tMaterial.getPlasma(tPlasmaAmount)}, new FluidStack[]{tMaterial.getGas(tPlasmaAmount)}, Math.max(1, aDuration / 16), Math.max(1, aEUt / 3), 0); + GT_Recipe tRecipe =GT_Recipe.GT_Recipe_Map.sPlasmaArcFurnaceRecipes.addRecipe(true, new ItemStack[]{aInput}, aOutputs, null, aChances, new FluidStack[]{tMaterial.getPlasma(tPlasmaAmount)}, new FluidStack[]{tMaterial.getGas(tPlasmaAmount)}, Math.max(1, aDuration / 16), Math.max(1, aEUt / 3), 0); + if ((hidden) && (tRecipe != null)) { + tRecipe.mHidden = true; + } } } return true; @@ -644,8 +717,14 @@ public class GT_RecipeAdder } return false; } + - public boolean addPulveriserRecipe(ItemStack aInput, ItemStack[] aOutputs, int[] aChances, int aDuration, int aEUt) { + @Override + public boolean addPulveriserRecipe(ItemStack aInput, ItemStack[] aOutputs, int[] aChances, int aDuration, int aEUt) { + return addPulveriserRecipe(aInput, aOutputs, aChances, aDuration, aEUt, false); + } + + public boolean addPulveriserRecipe(ItemStack aInput, ItemStack[] aOutputs, int[] aChances, int aDuration, int aEUt, boolean hidden) { if ((aInput == null) || (aOutputs == null)) { return false; } @@ -654,7 +733,10 @@ public class GT_RecipeAdder if ((aDuration = GregTech_API.sRecipeFile.get("pulveriser", aInput, aDuration)) <= 0) { return false; } - GT_Recipe.GT_Recipe_Map.sMaceratorRecipes.addRecipe(true, new ItemStack[]{aInput}, aOutputs, null, aChances, null, null, aDuration, aEUt, 0); + GT_Recipe tRecipe =GT_Recipe.GT_Recipe_Map.sMaceratorRecipes.addRecipe(true, new ItemStack[]{aInput}, aOutputs, null, aChances, null, null, aDuration, aEUt, 0); + if ((hidden) && (tRecipe != null)) { + tRecipe.mHidden = true; + } return true; } } @@ -662,7 +744,33 @@ public class GT_RecipeAdder } @Override - public boolean addAssemblylineRecipe(ItemStack[] aInputs, FluidStack[] aFluidInputs, ItemStack aOutput1, int aDuration, int aEUt) { + public boolean addPyrolyseRecipe(ItemStack aInput, FluidStack aFluidInput, int intCircuit, ItemStack aOutput, FluidStack aFluidOutput, int aDuration, int aEUt) { + if (aInput == null) { + return false; + } + if ((aDuration = GregTech_API.sRecipeFile.get("pyrolyse", aInput, aDuration)) <= 0) { + return false; + } + GT_Recipe.GT_Recipe_Map.sPyrolyseRecipes.addRecipe(false, new ItemStack[]{aInput, ItemList.Circuit_Integrated.getWithDamage(0L, intCircuit, new Object[0])}, new ItemStack[]{aOutput}, null, null, new FluidStack[]{aFluidInput}, new FluidStack[]{aFluidOutput}, aDuration, aEUt, 0); + return true; + } + + @Override + public boolean addCrackingRecipe(FluidStack aInput, FluidStack aOutput, int aDuration, int aEUt) { + if ((aInput == null) || (aOutput == null)) { + return false; + } + if ((aDuration = GregTech_API.sRecipeFile.get("cracking", aInput.getUnlocalizedName(), aDuration)) <= 0) { + return false; + } + GT_Recipe.GT_Recipe_Map.sCrakingRecipes.addRecipe(true, null, null, null, null, new FluidStack[]{aInput}, new FluidStack[]{aOutput}, aDuration, aEUt, 0); + GT_Recipe.GT_Recipe_Map.sCrakingRecipes.addRecipe(true, null, null, null, null, new FluidStack[]{aInput, GT_ModHandler.getSteam(aInput.amount)}, new FluidStack[]{aOutput, Materials.Hydrogen.getGas(aInput.amount)}, aDuration, aEUt, 0); + GT_Recipe.GT_Recipe_Map.sCrakingRecipes.addRecipe(true, null, null, null, null, new FluidStack[]{aInput, Materials.Hydrogen.getGas(aInput.amount)}, new FluidStack[]{new FluidStack(aOutput.getFluid(), (int) (aOutput.amount * 1.3))}, aDuration, aEUt, 0); + return true; + } + + @Override + public boolean addAssemblylineRecipe(ItemStack[] aInputs, FluidStack[] aFluidInputs, ItemStack aOutput1, int aDuration, int aEUt) { if ((aInputs == null) || (aOutput1 == null) || aInputs.length>15 || aInputs.length<4) { return false; } @@ -671,17 +779,20 @@ public class GT_RecipeAdder } String tRecipe = ""; for(ItemStack sStack: aInputs){ - tRecipe += sStack.getItem().getItemStackDisplayName(sStack)+" x"+sStack.stackSize+"; "; + tRecipe += sStack.getItem().getItemStackDisplayName(sStack)+" x"+sStack.stackSize+"; "; } - + for(FluidStack sStack: aFluidInputs){ - tRecipe += sStack.getLocalizedName()+" "+sStack.amount+"L; "; + tRecipe += sStack.getLocalizedName()+" "+sStack.amount+"L; "; } - + GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe(false, new ItemStack[]{ItemList.Tool_DataStick.getWithName(1L, "tRecipe", new Object[0])}, new ItemStack[]{aOutput1}, null, null, null, aDuration, aEUt, 0); - + GT_Recipe.GT_Recipe_Map.sAssemblylineRecipes.addRecipe(true, aInputs, new ItemStack[]{aOutput1}, null, aFluidInputs, null, aDuration, aEUt, 0); return true; - } + } + + + } diff --git a/src/main/java/gregtech/common/GT_ThaumcraftCompat.java b/src/main/java/gregtech/common/GT_ThaumcraftCompat.java index b5d2886c..8e5c00c1 100644 --- a/src/main/java/gregtech/common/GT_ThaumcraftCompat.java +++ b/src/main/java/gregtech/common/GT_ThaumcraftCompat.java @@ -38,7 +38,7 @@ public class GT_ThaumcraftCompat TC_Aspects.BESTIA.mAspect = Aspect.BEAST; TC_Aspects.COGNITIO.mAspect = Aspect.MIND; TC_Aspects.CORPUS.mAspect = Aspect.FLESH; - TC_Aspects.EXAMINIS.mAspect = Aspect.UNDEAD; + TC_Aspects.EXANIMIS.mAspect = Aspect.UNDEAD; TC_Aspects.FABRICO.mAspect = Aspect.CRAFT; TC_Aspects.FAMES.mAspect = Aspect.HUNGER; TC_Aspects.GELUM.mAspect = Aspect.COLD; diff --git a/src/main/java/gregtech/common/GT_Worldgen_GT_Ore_Layer.java b/src/main/java/gregtech/common/GT_Worldgen_GT_Ore_Layer.java index 7d4662b6..7d642cc9 100644 --- a/src/main/java/gregtech/common/GT_Worldgen_GT_Ore_Layer.java +++ b/src/main/java/gregtech/common/GT_Worldgen_GT_Ore_Layer.java @@ -28,12 +28,14 @@ public class GT_Worldgen_GT_Ore_Layer public final boolean mOverworld; public final boolean mNether; public final boolean mEnd; + public final boolean mEndAsteroid; public GT_Worldgen_GT_Ore_Layer(String aName, boolean aDefault, int aMinY, int aMaxY, int aWeight, int aDensity, int aSize, boolean aOverworld, boolean aNether, boolean aEnd, Materials aPrimary, Materials aSecondary, Materials aBetween, Materials aSporadic) { super(aName, sList, aDefault); this.mOverworld = GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "Overworld", aOverworld); this.mNether = GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "Nether", aNether); this.mEnd = GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "TheEnd", aEnd); + this.mEndAsteroid = GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "EndAsteroid", aEnd); this.mMinY = ((short) GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "MinHeight", aMinY)); this.mMaxY = ((short) Math.max(this.mMinY + 5, GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "MaxHeight", aMaxY))); this.mWeight = ((short) GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "RandomWeight", aWeight)); @@ -44,10 +46,10 @@ public class GT_Worldgen_GT_Ore_Layer this.mBetweenMeta = ((short) GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "OreSporadiclyInbetween", aBetween.mMetaItemSubID)); this.mSporadicMeta = ((short) GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "OreSporaticlyAround", aSporadic.mMetaItemSubID)); if (this.mEnabled) { - GT_Achievements.registerOre(aPrimary, aMinY, aMaxY, aWeight, aOverworld, aNether, aEnd); - GT_Achievements.registerOre(aSecondary, aMinY, aMaxY, aWeight, aOverworld, aNether, aEnd); - GT_Achievements.registerOre(aBetween, aMinY, aMaxY, aWeight, aOverworld, aNether, aEnd); - GT_Achievements.registerOre(aSporadic, aMinY, aMaxY, aWeight, aOverworld, aNether, aEnd); + GT_Achievements.registerOre(GregTech_API.sGeneratedMaterials[(mPrimaryMeta % 1000)], aMinY, aMaxY, aWeight, aOverworld, aNether, aEnd); + GT_Achievements.registerOre(GregTech_API.sGeneratedMaterials[(mSecondaryMeta % 1000)], aMinY, aMaxY, aWeight, aOverworld, aNether, aEnd); + GT_Achievements.registerOre(GregTech_API.sGeneratedMaterials[(mBetweenMeta % 1000)], aMinY, aMaxY, aWeight, aOverworld, aNether, aEnd); + GT_Achievements.registerOre(GregTech_API.sGeneratedMaterials[(mSporadicMeta % 1000)], aMinY, aMaxY, aWeight, aOverworld, aNether, aEnd); sWeight += this.mWeight; } } diff --git a/src/main/java/gregtech/common/GT_Worldgenerator.java b/src/main/java/gregtech/common/GT_Worldgenerator.java index 5a198293..c87b0ab2 100644 --- a/src/main/java/gregtech/common/GT_Worldgenerator.java +++ b/src/main/java/gregtech/common/GT_Worldgenerator.java @@ -5,6 +5,9 @@ import cpw.mods.fml.common.registry.GameRegistry; import gregtech.api.GregTech_API; import gregtech.api.util.GT_Log; import gregtech.api.world.GT_Worldgen; +import gregtech.common.blocks.GT_TileEntity_Ores; +import net.minecraft.init.Blocks; +import net.minecraft.util.MathHelper; import net.minecraft.world.World; import net.minecraft.world.biome.BiomeGenBase; import net.minecraft.world.chunk.Chunk; @@ -19,10 +22,20 @@ import java.util.Random; public class GT_Worldgenerator implements IWorldGenerator { public static boolean sAsteroids = true; + private static int mEndAsteroidProbability = 300; + private static int mSize = 100; + private static int endMinSize = 50; + private static int endMaxSize = 200; + private static boolean endAsteroids = true; public List mList = new ArrayList(); public boolean mIsGenerating = false; + public GT_Worldgenerator() { + endAsteroids = GregTech_API.sWorldgenFile.get("endasteroids", "GenerateAsteroids", true); + endMinSize = GregTech_API.sWorldgenFile.get("endasteroids", "AsteroidMinSize", 50); + endMaxSize = GregTech_API.sWorldgenFile.get("endasteroids", "AsteroidMaxSize", 200); + mEndAsteroidProbability = GregTech_API.sWorldgenFile.get("endasteroids", "AsteroidProbability", 300); GameRegistry.registerWorldGenerator(this, 1073741823); } @@ -74,10 +87,10 @@ public class GT_Worldgenerator if (tWorldGen.executeWorldgen(this.mWorld, this.mRandom, this.mBiome, this.mDimensionType, this.mX, this.mZ, this.mChunkGenerator, this.mChunkProvider)) { temp = false; } + break; } catch (Throwable e) { e.printStackTrace(GT_Log.err); } - break; } } } @@ -102,6 +115,97 @@ public class GT_Worldgenerator i++; } } + //Asteroid Worldgen + int tDimensionType = this.mWorld.provider.dimensionId; + Random aRandom = new Random(); + if (((tDimensionType == 1) && endAsteroids && ((mEndAsteroidProbability <= 1) || (aRandom.nextInt(mEndAsteroidProbability) == 0)))) { + short primaryMeta = 0; + short secondaryMeta = 0; + short betweenMeta = 0; + short sporadicMeta = 0; + if ((GT_Worldgen_GT_Ore_Layer.sWeight > 0) && (GT_Worldgen_GT_Ore_Layer.sList.size() > 0)) { + boolean temp = true; + int tRandomWeight; + for (int i = 0; (i < 256) && (temp); i++) { + tRandomWeight = aRandom.nextInt(GT_Worldgen_GT_Ore_Layer.sWeight); + for (GT_Worldgen_GT_Ore_Layer tWorldGen : GT_Worldgen_GT_Ore_Layer.sList) { + tRandomWeight -= ((GT_Worldgen_GT_Ore_Layer) tWorldGen).mWeight; + if (tRandomWeight <= 0) { + try { + if (tWorldGen.mEndAsteroid && tDimensionType == 1) { + primaryMeta = tWorldGen.mPrimaryMeta; + secondaryMeta = tWorldGen.mSecondaryMeta; + betweenMeta = tWorldGen.mBetweenMeta; + sporadicMeta = tWorldGen.mSporadicMeta; + temp = false; + break; + } + } catch (Throwable e) { + e.printStackTrace(GT_Log.err); + } + } + } + } + } + int tX = mX + aRandom.nextInt(16); + int tY = 50 + aRandom.nextInt(200 - 50); + int tZ = mZ + aRandom.nextInt(16); + if (tDimensionType == 1) { + mSize = aRandom.nextInt((int) (endMaxSize - endMinSize)); + } + if ((mWorld.getBlock(tX, tY, tZ).isAir(mWorld, tX, tY, tZ))) { + float var6 = aRandom.nextFloat() * 3.141593F; + double var7 = tX + 8 + MathHelper.sin(var6) * mSize / 8.0F; + double var9 = tX + 8 - MathHelper.sin(var6) * mSize / 8.0F; + double var11 = tZ + 8 + MathHelper.cos(var6) * mSize / 8.0F; + double var13 = tZ + 8 - MathHelper.cos(var6) * mSize / 8.0F; + double var15 = tY + aRandom.nextInt(3) - 2; + double var17 = tY + aRandom.nextInt(3) - 2; + for (int var19 = 0; var19 <= mSize; var19++) { + double var20 = var7 + (var9 - var7) * var19 / mSize; + double var22 = var15 + (var17 - var15) * var19 / mSize; + double var24 = var11 + (var13 - var11) * var19 / mSize; + double var26 = aRandom.nextDouble() * mSize / 16.0D; + double var28 = (MathHelper.sin(var19 * 3.141593F / mSize) + 1.0F) * var26 + 1.0D; + double var30 = (MathHelper.sin(var19 * 3.141593F / mSize) + 1.0F) * var26 + 1.0D; + int tMinX = MathHelper.floor_double(var20 - var28 / 2.0D); + int tMinY = MathHelper.floor_double(var22 - var30 / 2.0D); + int tMinZ = MathHelper.floor_double(var24 - var28 / 2.0D); + int tMaxX = MathHelper.floor_double(var20 + var28 / 2.0D); + int tMaxY = MathHelper.floor_double(var22 + var30 / 2.0D); + int tMaxZ = MathHelper.floor_double(var24 + var28 / 2.0D); + for (int eX = tMinX; eX <= tMaxX; eX++) { + double var39 = (eX + 0.5D - var20) / (var28 / 2.0D); + if (var39 * var39 < 1.0D) { + for (int eY = tMinY; eY <= tMaxY; eY++) { + double var42 = (eY + 0.5D - var22) / (var30 / 2.0D); + if (var39 * var39 + var42 * var42 < 1.0D) { + for (int eZ = tMinZ; eZ <= tMaxZ; eZ++) { + double var45 = (eZ + 0.5D - var24) / (var28 / 2.0D); + if ((var39 * var39 + var42 * var42 + var45 * var45 < 1.0D) && (mWorld.getBlock(tX, tY, tZ).isAir(mWorld, tX, tY, tZ))) { + int ranOre = aRandom.nextInt(50); + if (ranOre < 3) { + GT_TileEntity_Ores.setOreBlock(mWorld, eX, eY, eZ, primaryMeta , true); + } else if (ranOre < 6) { + GT_TileEntity_Ores.setOreBlock(mWorld, eX, eY, eZ, secondaryMeta , true); + } else if (ranOre < 8) { + GT_TileEntity_Ores.setOreBlock(mWorld, eX, eY, eZ, betweenMeta , true); + } else if (ranOre < 10) { + GT_TileEntity_Ores.setOreBlock(mWorld, eX, eY, eZ, sporadicMeta , true); + } else {mWorld.setBlock(eX, eY, eZ, Blocks.end_stone, 0, 0); + } + } + } + } + } + } + } + } + } + + } + + Chunk tChunk = this.mWorld.getChunkFromBlockCoords(this.mX, this.mZ); if (tChunk != null) { tChunk.isModified = true; diff --git a/src/main/java/gregtech/common/blocks/GT_Block_Casings1.java b/src/main/java/gregtech/common/blocks/GT_Block_Casings1.java index 53956a7a..3a951775 100644 --- a/src/main/java/gregtech/common/blocks/GT_Block_Casings1.java +++ b/src/main/java/gregtech/common/blocks/GT_Block_Casings1.java @@ -15,6 +15,7 @@ public class GT_Block_Casings1 for (byte i = 0; i < 16; i = (byte) (i + 1)) { Textures.BlockIcons.CASING_BLOCKS[i] = new GT_CopiedBlockTexture(this, 6, i); } + Textures.BlockIcons.CASING_BLOCKS[120] = new GT_CopiedBlockTexture(this, 6, 0); GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".0.name", "ULV Machine Casing"); GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".1.name", "LV Machine Casing"); GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".2.name", "MV Machine Casing"); diff --git a/src/main/java/gregtech/common/blocks/GT_Block_Casings2.java b/src/main/java/gregtech/common/blocks/GT_Block_Casings2.java index 80d8900d..6cb65158 100644 --- a/src/main/java/gregtech/common/blocks/GT_Block_Casings2.java +++ b/src/main/java/gregtech/common/blocks/GT_Block_Casings2.java @@ -22,7 +22,7 @@ public class GT_Block_Casings2 GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".2.name", "Bronze Gear Box Casing"); GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".3.name", "Steel Gear Box Casing"); GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".4.name", "Titanium Gear Box Casing"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".5.name", "Tungstensteel Gear Box Casing"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".5.name", "Assembling Line Casing"); GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".6.name", "Processor Machine Casing"); GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".7.name", "Data Drive Machine Casing"); GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".8.name", "Containment Field Machine Casing"); diff --git a/src/main/java/gregtech/common/blocks/GT_Block_Casings4.java b/src/main/java/gregtech/common/blocks/GT_Block_Casings4.java index 1afe7f5e..cd9eff1f 100644 --- a/src/main/java/gregtech/common/blocks/GT_Block_Casings4.java +++ b/src/main/java/gregtech/common/blocks/GT_Block_Casings4.java @@ -36,6 +36,7 @@ public class GT_Block_Casings4 GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".10.name", "Stainless Steel Turbine Casing"); GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".11.name", "Titanium Turbine Casing"); GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".12.name", "Tungstensteel Turbine Casing"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".13.name", "Engine Intake Casing"); ItemList.Casing_RobustTungstenSteel.set(new ItemStack(this, 1, 0)); ItemList.Casing_CleanStainlessSteel.set(new ItemStack(this, 1, 1)); @@ -48,6 +49,7 @@ public class GT_Block_Casings4 ItemList.Casing_Turbine1.set(new ItemStack(this, 1, 10)); ItemList.Casing_Turbine2.set(new ItemStack(this, 1, 11)); ItemList.Casing_Turbine3.set(new ItemStack(this, 1, 12)); + ItemList.Casing_EngineIntake.set(new ItemStack(this, 1, 13)); } public IIcon getIcon(int aSide, int aMeta) { @@ -79,7 +81,7 @@ public class GT_Block_Casings4 case 12: return Textures.BlockIcons.MACHINE_CASING_ROBUST_TUNGSTENSTEEL.getIcon(); case 13: - return Textures.BlockIcons.MACHINE_CASING_ROBUST_TUNGSTENSTEEL.getIcon(); + return Textures.BlockIcons.MACHINE_CASING_ENGINE_INTAKE.getIcon(); case 14: return Textures.BlockIcons.MACHINE_CASING_ROBUST_TUNGSTENSTEEL.getIcon(); case 15: @@ -505,4 +507,4 @@ public class GT_Block_Casings4 } return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 7)].getIcon(); } -} +} \ No newline at end of file diff --git a/src/main/java/gregtech/common/blocks/GT_Block_Concretes.java b/src/main/java/gregtech/common/blocks/GT_Block_Concretes.java index 6b0ca7ba..6f3f80c7 100644 --- a/src/main/java/gregtech/common/blocks/GT_Block_Concretes.java +++ b/src/main/java/gregtech/common/blocks/GT_Block_Concretes.java @@ -77,8 +77,10 @@ public class GT_Block_Concretes aEntity.motionX *= 0.8999999761581421D; aEntity.motionZ *= 0.8999999761581421D; } else { - aEntity.motionX *= 1.100000023841858D; - aEntity.motionZ *= 1.100000023841858D; + if (aEntity.motionX < 6.0 && aEntity.motionZ < 6.0) { + aEntity.motionX *= 1.100000023841858D; + aEntity.motionZ *= 1.100000023841858D; + } } } } diff --git a/src/main/java/gregtech/common/blocks/GT_Block_Machines.java b/src/main/java/gregtech/common/blocks/GT_Block_Machines.java index b7058be2..c5fdc17d 100644 --- a/src/main/java/gregtech/common/blocks/GT_Block_Machines.java +++ b/src/main/java/gregtech/common/blocks/GT_Block_Machines.java @@ -247,22 +247,26 @@ public class GT_Block_Machines } public float getPlayerRelativeBlockHardness(EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ) { -// System.out.println("player hardness"); TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); if (((tTileEntity instanceof BaseMetaTileEntity)) && (((BaseMetaTileEntity) tTileEntity).privateAccess()) && (!((BaseMetaTileEntity) tTileEntity).playerOwnsThis(aPlayer, true))) { -// System.out.println("locked"); return -1.0F; } -// System.out.println("unlocked"); -// System.out.println("hardness: "+super.getPlayerRelativeBlockHardness(aPlayer, aWorld, aX, aY, aZ)); return super.getPlayerRelativeBlockHardness(aPlayer, aWorld, aX, aY, aZ); } public boolean onBlockActivated(World aWorld, int aX, int aY, int aZ, EntityPlayer aPlayer, int aSide, float par1, float par2, float par3) { TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); - if ((tTileEntity == null) || (aPlayer.isSneaking())) { + if (tTileEntity == null) { return false; } + if(aPlayer.isSneaking()){ + ItemStack tCurrentItem = aPlayer.inventory.getCurrentItem(); + if(tCurrentItem!=null){ + if(!GT_Utility.isStackInList(tCurrentItem, GregTech_API.sScrewdriverList)){ + return false; + } + }else {return false;} + } if ((tTileEntity instanceof IGregTechTileEntity)) { if (((IGregTechTileEntity) tTileEntity).getTimer() < 50L) { return false; diff --git a/src/main/java/gregtech/common/blocks/GT_Block_Ores.java b/src/main/java/gregtech/common/blocks/GT_Block_Ores.java index 6912d9a6..07be0e31 100644 --- a/src/main/java/gregtech/common/blocks/GT_Block_Ores.java +++ b/src/main/java/gregtech/common/blocks/GT_Block_Ores.java @@ -1,7 +1,9 @@ package gregtech.common.blocks; +import cpw.mods.fml.common.Loader; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import gregtech.GT_Mod; import gregtech.api.GregTech_API; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; @@ -40,6 +42,7 @@ public class GT_Block_Ores this.isBlockContainer = true; setStepSound(soundTypeStone); setCreativeTab(GregTech_API.TAB_GREGTECH_ORES); + boolean tHideOres = Loader.isModLoaded("NotEnoughItems") && GT_Mod.gregtechproxy.mHideUnusedOres; for (int i = 0; i < 16; i++) { GT_ModHandler.addValuableOre(this, i, 1); } @@ -60,8 +63,19 @@ public class GT_Block_Ores GT_OreDictUnificator.registerOre(OrePrefixes.oreNetherrack.get(GregTech_API.sGeneratedMaterials[i]), new ItemStack(this, 1, i + 1000)); GT_OreDictUnificator.registerOre(OrePrefixes.oreEndstone.get(GregTech_API.sGeneratedMaterials[i]), new ItemStack(this, 1, i + 2000)); GT_OreDictUnificator.registerOre(OrePrefixes.oreBlackgranite.get(GregTech_API.sGeneratedMaterials[i]), new ItemStack(this, 1, i + 3000)); - GT_OreDictUnificator.registerOre(OrePrefixes.oreRedgranite.get(GregTech_API.sGeneratedMaterials[i]), new ItemStack(this, 1, i + 4000)); + GT_OreDictUnificator.registerOre(OrePrefixes.oreRedgranite.get(GregTech_API.sGeneratedMaterials[i]), new ItemStack(this, 1, i + 4000)); + if (tHideOres) { + codechicken.nei.api.API.hideItem(new ItemStack(this, 1, i + 1000)); + codechicken.nei.api.API.hideItem(new ItemStack(this, 1, i + 2000)); + codechicken.nei.api.API.hideItem(new ItemStack(this, 1, i + 3000)); + codechicken.nei.api.API.hideItem(new ItemStack(this, 1, i + 4000)); + codechicken.nei.api.API.hideItem(new ItemStack(this, 1, i + 16000)); + codechicken.nei.api.API.hideItem(new ItemStack(this, 1, i + 17000)); + codechicken.nei.api.API.hideItem(new ItemStack(this, 1, i + 18000)); + codechicken.nei.api.API.hideItem(new ItemStack(this, 1, i + 19000)); + codechicken.nei.api.API.hideItem(new ItemStack(this, 1, i + 20000)); } + } } } } @@ -115,7 +129,6 @@ public class GT_Block_Ores default: return aMaterial.mDefaultLocalName + OrePrefixes.ore.mLocalizedMaterialPost; } - } public boolean onBlockEventReceived(World p_149696_1_, int p_149696_2_, int p_149696_3_, int p_149696_4_, int p_149696_5_, int p_149696_6_) { diff --git a/src/main/java/gregtech/common/blocks/GT_Item_Casings1.java b/src/main/java/gregtech/common/blocks/GT_Item_Casings1.java index 7ff6e44e..4ce102dc 100644 --- a/src/main/java/gregtech/common/blocks/GT_Item_Casings1.java +++ b/src/main/java/gregtech/common/blocks/GT_Item_Casings1.java @@ -23,9 +23,6 @@ public class GT_Item_Casings1 break; case 14: aList.add(this.mCoil03Tooltip); - break; - case 15: - aList.add(this.mCoil04Tooltip); } } } diff --git a/src/main/java/gregtech/common/blocks/GT_Item_Casings_Abstract.java b/src/main/java/gregtech/common/blocks/GT_Item_Casings_Abstract.java index 68b919bc..159244fb 100644 --- a/src/main/java/gregtech/common/blocks/GT_Item_Casings_Abstract.java +++ b/src/main/java/gregtech/common/blocks/GT_Item_Casings_Abstract.java @@ -16,7 +16,6 @@ public abstract class GT_Item_Casings_Abstract protected final String mCoil01Tooltip = GT_LanguageManager.addStringLocalization("gt.coil01tooltip", "Base Heating Capacity = 1800 Kelvin"); protected final String mCoil02Tooltip = GT_LanguageManager.addStringLocalization("gt.coil02tooltip", "Base Heating Capacity = 2700 Kelvin"); protected final String mCoil03Tooltip = GT_LanguageManager.addStringLocalization("gt.coil03tooltip", "Base Heating Capacity = 3600 Kelvin"); - protected final String mCoil04Tooltip = GT_LanguageManager.addStringLocalization("gt.coil04tooltip", "Base Heating Capacity = 9000 Kelvin"); protected final String mBlastProofTooltip = GT_LanguageManager.addStringLocalization("gt.blastprooftooltip", "This Block is Blast Proof"); public GT_Item_Casings_Abstract(Block par1) { super(par1); diff --git a/src/main/java/gregtech/common/blocks/GT_TileEntity_Ores.java b/src/main/java/gregtech/common/blocks/GT_TileEntity_Ores.java index 7664363f..787c1bc9 100644 --- a/src/main/java/gregtech/common/blocks/GT_TileEntity_Ores.java +++ b/src/main/java/gregtech/common/blocks/GT_TileEntity_Ores.java @@ -35,16 +35,21 @@ public class GT_TileEntity_Ores Materials aMaterial = GregTech_API.sGeneratedMaterials[(aMetaData % 1000)]; byte tByte = aMaterial == null ? 0 : (byte) Math.max((aMetaData % 16000 / 1000 == 3) || (aMetaData % 16000 / 1000 == 4) ? 3 : 0, Math.min(7, aMaterial.mToolQuality - (aMetaData < 16000 ? 0 : 1))); if(GT_Mod.gregtechproxy.mChangeHarvestLevels ){ - tByte = aMaterial == null ? 0 : (byte) Math.max((aMetaData % 16000 / 1000 == 3) || (aMetaData % 16000 / 1000 == 4) ? GT_Mod.gregtechproxy.mGraniteHavestLevel : 0, Math.min(GT_Mod.gregtechproxy.mMaxHarvestLevel, GT_Mod.gregtechproxy.mHarvestLevel[aMaterial.mMetaItemSubID] - (aMetaData < 16000 ? 0 : 1))); + tByte = aMaterial == null ? 0 : (byte) Math.max((aMetaData % 16000 / 1000 == 3) || (aMetaData % 16000 / 1000 == 4) ? GT_Mod.gregtechproxy.mGraniteHavestLevel : 0, Math.min(GT_Mod.gregtechproxy.mMaxHarvestLevel, GT_Mod.gregtechproxy.mHarvestLevel[aMaterial.mMetaItemSubID] - (aMetaData < 16000 ? 0 : 1))); } return tByte; - } public static boolean setOreBlock(World aWorld, int aX, int aY, int aZ, int aMetaData) { - aY = Math.min(aWorld.getActualHeight(), Math.max(aY, 1)); + return setOreBlock(aWorld, aX, aY, aZ, aMetaData, false); + } + + public static boolean setOreBlock(World aWorld, int aX, int aY, int aZ, int aMetaData, boolean air) { + if (!air) { + aY = Math.min(aWorld.getActualHeight(), Math.max(aY, 1)); + } Block tBlock = aWorld.getBlock(aX, aY, aZ); - if ((aMetaData > 0) && (tBlock != Blocks.air)) { + if ((aMetaData > 0) && ((tBlock != Blocks.air) || air)) { if (tBlock.isReplaceableOreGen(aWorld, aX, aY, aZ, Blocks.netherrack)) { aMetaData += 1000; } else if (tBlock.isReplaceableOreGen(aWorld, aX, aY, aZ, Blocks.end_stone)) { diff --git a/src/main/java/gregtech/common/covers/GT_Cover_Arm.java b/src/main/java/gregtech/common/covers/GT_Cover_Arm.java index 4ee6e1be..7206bedc 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_Arm.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_Arm.java @@ -21,7 +21,7 @@ public class GT_Cover_Arm return aCoverVariable; } TileEntity tTileEntity = aTileEntity.getTileEntityAtSide(aSide); - aTileEntity.decreaseStoredEnergyUnits(1L, true); + //aTileEntity.decreaseStoredEnergyUnits(1L, true); if (aTileEntity.getUniversalEnergyCapacity() >= 128L) { if (aTileEntity.isUniversalEnergyStored(256L)) { aTileEntity.decreaseStoredEnergyUnits(4 * GT_Utility.moveOneItemStackIntoSlot(aCoverVariable > 0 ? aTileEntity : tTileEntity, aCoverVariable > 0 ? tTileEntity : aTileEntity, aCoverVariable > 0 ? aSide : GT_Utility.getOppositeSide(aSide), Math.abs(aCoverVariable) - 1, null, false, (byte) 64, (byte) 1, (byte) 64, (byte) 1), true); diff --git a/src/main/java/gregtech/common/covers/GT_Cover_ControlsWork.java b/src/main/java/gregtech/common/covers/GT_Cover_ControlsWork.java index 9bbdc3a7..65ba3266 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_ControlsWork.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_ControlsWork.java @@ -53,7 +53,8 @@ public class GT_Cover_ControlsWork } public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) { - aCoverVariable = (aCoverVariable + 1) % 3; + aCoverVariable = (aCoverVariable + (aPlayer.isSneaking()? -1 : 1)) % 3; + if(aCoverVariable <0){aCoverVariable = 2;} if (aCoverVariable == 0) { GT_Utility.sendChatToPlayer(aPlayer, "Normal"); } diff --git a/src/main/java/gregtech/common/covers/GT_Cover_Conveyor.java b/src/main/java/gregtech/common/covers/GT_Cover_Conveyor.java index 58025a06..8467506d 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_Conveyor.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_Conveyor.java @@ -23,7 +23,7 @@ public class GT_Cover_Conveyor } } TileEntity tTileEntity = aTileEntity.getTileEntityAtSide(aSide); - aTileEntity.decreaseStoredEnergyUnits(1L, true); + //aTileEntity.decreaseStoredEnergyUnits(1L, true); if (((aCoverVariable % 2 != 1) || (aSide != 1)) && ((aCoverVariable % 2 != 0) || (aSide != 0)) && (aTileEntity.getUniversalEnergyCapacity() >= 128L)) { if (aTileEntity.isUniversalEnergyStored(256L)) { aTileEntity.decreaseStoredEnergyUnits(4 * GT_Utility.moveOneItemStack(aCoverVariable % 2 == 0 ? aTileEntity : tTileEntity, aCoverVariable % 2 != 0 ? aTileEntity : tTileEntity, aCoverVariable % 2 != 0 ? GT_Utility.getOppositeSide(aSide) : aSide, aCoverVariable % 2 == 0 ? GT_Utility.getOppositeSide(aSide) : aSide, null, false, (byte) 64, (byte) 1, (byte) 64, (byte) 1), true); @@ -35,7 +35,8 @@ public class GT_Cover_Conveyor } public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) { - aCoverVariable = (aCoverVariable + 1) % 12; + aCoverVariable = (aCoverVariable + (aPlayer.isSneaking()? -1 : 1)) % 12; + if(aCoverVariable <0){aCoverVariable = 11;} switch(aCoverVariable) { case 0: GT_Utility.sendChatToPlayer(aPlayer, "Export"); break; case 1: GT_Utility.sendChatToPlayer(aPlayer, "Import"); break; diff --git a/src/main/java/gregtech/common/covers/GT_Cover_DoesWork.java b/src/main/java/gregtech/common/covers/GT_Cover_DoesWork.java index 3ae41161..08acc6fa 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_DoesWork.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_DoesWork.java @@ -28,7 +28,8 @@ public class GT_Cover_DoesWork } public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) { - aCoverVariable = (aCoverVariable + 1) % 4; + aCoverVariable = (aCoverVariable + (aPlayer.isSneaking()? -1 : 1)) % 4; + if(aCoverVariable <0){aCoverVariable = 3;} switch(aCoverVariable) { case 0: GT_Utility.sendChatToPlayer(aPlayer, "Normal"); break; case 1: GT_Utility.sendChatToPlayer(aPlayer, "Inverted"); break; diff --git a/src/main/java/gregtech/common/covers/GT_Cover_Drain.java b/src/main/java/gregtech/common/covers/GT_Cover_Drain.java index 7c1aa03d..5aaef6fc 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_Drain.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_Drain.java @@ -58,7 +58,8 @@ public class GT_Cover_Drain } public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) { - aCoverVariable = (aCoverVariable + 1) % 6; + aCoverVariable = (aCoverVariable + (aPlayer.isSneaking()? -1 : 1)) % 6; + if(aCoverVariable <0){aCoverVariable = 5;} switch(aCoverVariable) { case 0: GT_Utility.sendChatToPlayer(aPlayer, "Import"); break; case 1: GT_Utility.sendChatToPlayer(aPlayer, "Import (conditional)"); break; diff --git a/src/main/java/gregtech/common/covers/GT_Cover_EUMeter.java b/src/main/java/gregtech/common/covers/GT_Cover_EUMeter.java index ce3dc28f..41a24767 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_EUMeter.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_EUMeter.java @@ -91,7 +91,8 @@ public class GT_Cover_EUMeter } public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) { - aCoverVariable = (aCoverVariable + 1) % 12; + aCoverVariable = (aCoverVariable + (aPlayer.isSneaking()? -1 : 1)) % 12; + if(aCoverVariable <0){aCoverVariable = 11;} switch(aCoverVariable) { case 0: GT_Utility.sendChatToPlayer(aPlayer, "Normal Universal Storage"); break; case 1: GT_Utility.sendChatToPlayer(aPlayer, "Inverted Universal Storage"); break; diff --git a/src/main/java/gregtech/common/covers/GT_Cover_ItemMeter.java b/src/main/java/gregtech/common/covers/GT_Cover_ItemMeter.java index 56845d2b..b1f92da2 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_ItemMeter.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_ItemMeter.java @@ -28,16 +28,15 @@ public class GT_Cover_ItemMeter } } tAll /= 14; - if (tAll > 0) { - aTileEntity.setOutputRedstoneSignal(aSide, aCoverVariable != 1 ? 0 : tFull > 0 ? (byte) (tFull / tAll + 1) : (byte) (15 - (tFull > 0 ? tFull / tAll + 1 : 0))); - } else { - aTileEntity.setOutputRedstoneSignal(aSide, (byte) (aCoverVariable != 1 ? 0 : 15)); - } + if(tAll > 0) + aTileEntity.setOutputRedstoneSignal(aSide, aCoverVariable == 1 ? (byte)(15 - (tFull <= 0 ? 0 : tFull / tAll + 1)) : tFull <= 0 ? 0 : (byte)(tFull / tAll + 1)); + else + aTileEntity.setOutputRedstoneSignal(aSide, ((byte)(aCoverVariable == 1 ? 15 : 0))); return aCoverVariable; } public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) { - aCoverVariable = (aCoverVariable + 1) % (2 + aTileEntity.getSizeInventory()); + aCoverVariable = (aCoverVariable + (aPlayer.isSneaking()? -1 : 1)) % (2 + aTileEntity.getSizeInventory()); switch(aCoverVariable) { case 0: GT_Utility.sendChatToPlayer(aPlayer, "Normal"); break; case 1: GT_Utility.sendChatToPlayer(aPlayer, "Inverted"); break; diff --git a/src/main/java/gregtech/common/covers/GT_Cover_NeedMaintainance.java b/src/main/java/gregtech/common/covers/GT_Cover_NeedMaintainance.java index 2c60daa6..83c37e35 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_NeedMaintainance.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_NeedMaintainance.java @@ -44,7 +44,8 @@ public class GT_Cover_NeedMaintainance extends GT_CoverBehavior { } public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) { - aCoverVariable = (aCoverVariable + 1) % 10; + aCoverVariable = (aCoverVariable + (aPlayer.isSneaking()? -1 : 1)) % 10; + if(aCoverVariable <0){aCoverVariable = 9;} switch(aCoverVariable) { case 0: GT_Utility.sendChatToPlayer(aPlayer, "Emit if 1 Maintenance Needed"); break; case 1: GT_Utility.sendChatToPlayer(aPlayer, "Emit if 1 Maintenance Needed(inverted)"); break; diff --git a/src/main/java/gregtech/common/covers/GT_Cover_PlayerDetector.java b/src/main/java/gregtech/common/covers/GT_Cover_PlayerDetector.java index ee2ce60b..9c61f4fe 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_PlayerDetector.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_PlayerDetector.java @@ -53,7 +53,8 @@ public class GT_Cover_PlayerDetector extends GT_CoverBehavior { } public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) { - aCoverVariable = (aCoverVariable + 1) % 3; + aCoverVariable = (aCoverVariable + (aPlayer.isSneaking()? -1 : 1)) % 3; + if(aCoverVariable <0){aCoverVariable = 2;} switch(aCoverVariable) { case 0: GT_Utility.sendChatToPlayer(aPlayer, "Emit if any Player is close"); break; case 1: GT_Utility.sendChatToPlayer(aPlayer, "Emit if you are close"); break; diff --git a/src/main/java/gregtech/common/covers/GT_Cover_Pump.java b/src/main/java/gregtech/common/covers/GT_Cover_Pump.java index fa96d36f..f93d6c0d 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_Pump.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_Pump.java @@ -27,7 +27,7 @@ public class GT_Cover_Pump if ((aTileEntity instanceof IFluidHandler)) { IFluidHandler tTank2 = aTileEntity.getITankContainerAtSide(aSide); if (tTank2 != null) { - aTileEntity.decreaseStoredEnergyUnits(GT_Utility.getTier(this.mTransferRate), true); + //aTileEntity.decreaseStoredEnergyUnits(GT_Utility.getTier(this.mTransferRate), true); IFluidHandler tTank1 = (IFluidHandler) aTileEntity; if (aCoverVariable % 2 == 0) { FluidStack tLiquid = tTank1.drain(ForgeDirection.getOrientation(aSide), this.mTransferRate, false); @@ -68,7 +68,8 @@ public class GT_Cover_Pump } public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) { - aCoverVariable = (aCoverVariable + 1) % 12; + aCoverVariable = (aCoverVariable + (aPlayer.isSneaking()? -1 : 1)) % 12; + if(aCoverVariable <0){aCoverVariable = 11;} switch(aCoverVariable) { case 0: GT_Utility.sendChatToPlayer(aPlayer, "Export"); break; case 1: GT_Utility.sendChatToPlayer(aPlayer, "Import"); break; diff --git a/src/main/java/gregtech/common/covers/GT_Cover_RedstoneConductor.java b/src/main/java/gregtech/common/covers/GT_Cover_RedstoneConductor.java index 52b67480..5e5a5579 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_RedstoneConductor.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_RedstoneConductor.java @@ -18,7 +18,8 @@ public class GT_Cover_RedstoneConductor } public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) { - aCoverVariable = (aCoverVariable + 1) % 7; + aCoverVariable = (aCoverVariable + (aPlayer.isSneaking()? -1 : 1)) % 7; + if(aCoverVariable <0){aCoverVariable = 6;} switch (aCoverVariable) { case 0: GT_Utility.sendChatToPlayer(aPlayer, "Conducts strongest Input"); break; case 1: GT_Utility.sendChatToPlayer(aPlayer, "Conducts from bottom Input"); break; diff --git a/src/main/java/gregtech/common/covers/GT_Cover_RedstoneTransmitterInternal.java b/src/main/java/gregtech/common/covers/GT_Cover_RedstoneTransmitterInternal.java index 107d452f..f6325619 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_RedstoneTransmitterInternal.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_RedstoneTransmitterInternal.java @@ -14,11 +14,11 @@ public class GT_Cover_RedstoneTransmitterInternal return true; } - public boolean manipulatesSidedRedstoneOutput(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { - return true; - } - public int getTickRate(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { return 1; } + + public boolean manipulatesSidedRedstoneOutput(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { + return true; + } } diff --git a/src/main/java/gregtech/common/covers/GT_Cover_Shutter.java b/src/main/java/gregtech/common/covers/GT_Cover_Shutter.java index 296969d0..d4fa9ba1 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_Shutter.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_Shutter.java @@ -14,7 +14,8 @@ public class GT_Cover_Shutter } public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) { - aCoverVariable = (aCoverVariable + 1) % 4; + aCoverVariable = (aCoverVariable + (aPlayer.isSneaking()? -1 : 1)) % 4; + if(aCoverVariable <0){aCoverVariable = 3;} switch(aCoverVariable) { case 0: GT_Utility.sendChatToPlayer(aPlayer, "Open if work enabled"); break; case 1: GT_Utility.sendChatToPlayer(aPlayer, "Open if work disabled"); break; diff --git a/src/main/java/gregtech/common/gui/GT_Container_Filter.java b/src/main/java/gregtech/common/gui/GT_Container_Filter.java index 0e89e5e6..6a437886 100644 --- a/src/main/java/gregtech/common/gui/GT_Container_Filter.java +++ b/src/main/java/gregtech/common/gui/GT_Container_Filter.java @@ -3,6 +3,7 @@ package gregtech.common.gui; import gregtech.api.gui.GT_ContainerMetaTile_Machine; import gregtech.api.gui.GT_Slot_Holo; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_Utility; import gregtech.common.tileentities.automation.GT_MetaTileEntity_Filter; import net.minecraft.entity.player.EntityPlayer; @@ -60,8 +61,8 @@ public class GT_Container_Filter if (aMouseclick == 0) { tSlot.putStack(null); } else if (tStack != null) { - tStack = GT_Utility.copyAmountAndMetaData(tStack.stackSize, 32767, tStack); - if(GT_Utility.isStackInvalid(tStack)){tStack=null;} + tStack = GT_Utility.copyAmountAndMetaData(tStack.stackSize, 32767, tStack); + if(GT_Utility.isStackInvalid(tStack)){tStack=null;} } } else { tSlot.putStack(GT_Utility.copyAmount(1L, new Object[]{tStack})); diff --git a/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java b/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java index 705fc333..f2abbfc4 100644 --- a/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java +++ b/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java @@ -14,6 +14,7 @@ import gregtech.api.objects.MaterialStack; import gregtech.api.util.*; import gregtech.common.covers.*; import gregtech.common.items.behaviors.*; +import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_FusionComputer; import net.minecraft.block.Block; import net.minecraft.enchantment.Enchantment; import net.minecraft.entity.item.EntityItem; @@ -24,7 +25,9 @@ import net.minecraft.item.EnumAction; import net.minecraft.item.ItemStack; import net.minecraft.potion.Potion; import net.minecraft.util.MathHelper; +import net.minecraftforge.fluids.FluidStack; +import java.util.Collection; import java.util.List; public class GT_MetaGenerated_Item_01 @@ -266,63 +269,26 @@ public class GT_MetaGenerated_Item_01 GT_ModHandler.addCraftingRecipe(ItemList.Crate_Empty.get(4L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"SWS", "WdW", "SWS", Character.valueOf('W'), OrePrefixes.plank.get(Materials.Wood), Character.valueOf('S'), OrePrefixes.screw.get(Materials.AnyIron)}); GT_ModHandler.addCraftingRecipe(ItemList.Crate_Empty.get(4L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"SWS", "WdW", "SWS", Character.valueOf('W'), OrePrefixes.plank.get(Materials.Wood), Character.valueOf('S'), OrePrefixes.screw.get(Materials.Steel)}); - ItemList.ThermosCan_Empty.set(addItem(tLastID = 404, "Empty Thermos Can", "Keeping hot things hot and cold things cold", new Object[]{new ItemData(Materials.Aluminium, OrePrefixes.plateDouble.mMaterialAmount * 1L + 2L * OrePrefixes.ring.mMaterialAmount, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.GELUM, 1L)})); + ItemList.ThermosCan_Empty.set(addItem(tLastID = 404, "Empty Thermos Can", "Keeping hot things hot and cold things cold", new Object[]{new ItemData(Materials.Aluminium, OrePrefixes.plate.mMaterialAmount * 1L + 2L * OrePrefixes.ring.mMaterialAmount, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.GELUM, 1L)})); GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Aluminium, 1L), GT_OreDictUnificator.get(OrePrefixes.ring, Materials.Aluminium, 2L), ItemList.ThermosCan_Empty.get(1L, new Object[0]), 800, 1); - ItemList.Large_Fluid_Cell_Steel.set(addItem(tLastID = 405, "Large Steel Fluid Cell", "", new Object[]{new ItemData(Materials.Steel, OrePrefixes.plateDouble.mMaterialAmount * 4L, new MaterialStack(Materials.Bronze, OrePrefixes.ring.mMaterialAmount * 4L)), new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 2L)})); - setFluidContainerStats(32000 + tLastID, 8000L, 64L); + ItemList.Large_Fluid_Cell_Steel.set(addItem(tLastID = 405, "Large Steel Fluid Cell", "", new Object[]{new ItemData(Materials.Steel, OrePrefixes.plate.mMaterialAmount * 2L + 2L * OrePrefixes.ring.mMaterialAmount, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 2L)})); + setFluidContainerStats(32000 + tLastID, 16000L, 16L); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Steel, 4L), GT_OreDictUnificator.get(OrePrefixes.ring, Materials.AnyBronze, 4L), ItemList.Large_Fluid_Cell_Steel.get(1L, new Object[0]), 200, 30); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Steel, 1L), GT_OreDictUnificator.get(OrePrefixes.ring, Materials.Steel, 2L), ItemList.Large_Fluid_Cell_Steel.get(1L, new Object[0]), 100, 64); - ItemList.Large_Fluid_Cell_TungstenSteel.set(addItem(tLastID = 406, "Large Tungstensteel Fluid Cell", "", new Object[]{new ItemData(Materials.TungstenSteel, OrePrefixes.plateDouble.mMaterialAmount * 4L, new MaterialStack(Materials.Platinum, OrePrefixes.ring.mMaterialAmount * 4L)), new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 9L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 7L)})); - setFluidContainerStats(32000 + tLastID, 512000L, 32L); + ItemList.Large_Fluid_Cell_TungstenSteel.set(addItem(tLastID = 406, "Large Tungstensteel Fluid Cell", "", new Object[]{new ItemData(Materials.TungstenSteel, OrePrefixes.plate.mMaterialAmount * 2L + 2L * OrePrefixes.ring.mMaterialAmount, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 6L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 3L)})); + setFluidContainerStats(32000 + tLastID, 64000L, 16L); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.TungstenSteel, 4L), GT_OreDictUnificator.get(OrePrefixes.ring, Materials.Platinum, 4L), ItemList.Large_Fluid_Cell_TungstenSteel.get(1L, new Object[0]), 200, 480); - - ItemList.Large_Fluid_Cell_Aluminium.set(addItem(tLastID = 407, "Large Aluminium Fluid Cell", "", new Object[]{new ItemData(Materials.Aluminium, OrePrefixes.plateDouble.mMaterialAmount * 4L, new MaterialStack(Materials.Silver, OrePrefixes.ring.mMaterialAmount * 4L)), new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 5L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 3L)})); - setFluidContainerStats(32000 + tLastID, 32000L, 64L); - - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Aluminium, 4L), GT_OreDictUnificator.get(OrePrefixes.ring, Materials.Silver, 4L), ItemList.Large_Fluid_Cell_Aluminium.get(1L, new Object[0]), 200, 64); - - ItemList.Large_Fluid_Cell_StainlessSteel.set(addItem(tLastID = 408, "Large StainlessSteel Fluid Cell", "", new Object[]{new ItemData(Materials.StainlessSteel, OrePrefixes.plateDouble.mMaterialAmount * 4L , new MaterialStack(Materials.Electrum, OrePrefixes.ring.mMaterialAmount * 4L)), new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 6L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 4L)})); - setFluidContainerStats(32000 + tLastID, 64000L, 64L); - - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.StainlessSteel, 4L), GT_OreDictUnificator.get(OrePrefixes.ring, Materials.Electrum, 4L), ItemList.Large_Fluid_Cell_StainlessSteel.get(1L, new Object[0]), 200, 120); - - ItemList.Large_Fluid_Cell_Titanium.set(addItem(tLastID = 409, "Large Titanium Fluid Cell", "", new Object[]{new ItemData(Materials.Titanium, OrePrefixes.plateDouble.mMaterialAmount * 4L, new MaterialStack(Materials.RoseGold, OrePrefixes.ring.mMaterialAmount * 4L)), new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 7L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 5L)})); - setFluidContainerStats(32000 + tLastID, 128000L, 64L); - - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Titanium, 4L), GT_OreDictUnificator.get(OrePrefixes.ring, Materials.RoseGold, 4L), ItemList.Large_Fluid_Cell_Titanium.get(1L, new Object[0]), 200, 256); - - ItemList.Large_Fluid_Cell_Chrome.set(addItem(tLastID = 410, "Large Chrome Fluid Cell", "", new Object[]{new ItemData(Materials.Chrome, OrePrefixes.plateDouble.mMaterialAmount * 4L, new MaterialStack(Materials.Palladium, OrePrefixes.ring.mMaterialAmount * 4L)), new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 6L)})); - setFluidContainerStats(32000 + tLastID, 2048000L, 8L); - - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Chrome, 4L), GT_OreDictUnificator.get(OrePrefixes.ring, Materials.Palladium, 4L), ItemList.Large_Fluid_Cell_Chrome.get(1L, new Object[0]), 200, 1024); - - ItemList.Large_Fluid_Cell_Iridium.set(addItem(tLastID = 411, "Large Iridium Fluid Cell", "", new Object[]{new ItemData(Materials.Iridium, OrePrefixes.plateDouble.mMaterialAmount * 4L, new MaterialStack(Materials.Naquadah, OrePrefixes.ring.mMaterialAmount * 4L)), new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 10L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 8L)})); - setFluidContainerStats(32000 + tLastID, 8192000L, 2L); - - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Iridium, 4L), GT_OreDictUnificator.get(OrePrefixes.ring, Materials.Naquadah, 4L), ItemList.Large_Fluid_Cell_Iridium.get(1L, new Object[0]), 200, 1920); - - ItemList.Large_Fluid_Cell_Osmium.set(addItem(tLastID = 412, "Large Osmium Fluid Cell", "", new Object[]{new ItemData(Materials.Osmium, OrePrefixes.plateDouble.mMaterialAmount * 4L, new MaterialStack(Materials.ElectrumFlux, OrePrefixes.ring.mMaterialAmount * 4L)), new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 11L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 9L)})); - setFluidContainerStats(32000 + tLastID, 32768000L, 1L); - - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Osmium, 4L), GT_OreDictUnificator.get(OrePrefixes.ring, Materials.ElectrumFlux, 4L), ItemList.Large_Fluid_Cell_Osmium.get(1L, new Object[0]), 200, 4096); - - ItemList.Large_Fluid_Cell_Neutronium.set(addItem(tLastID = 413, "Large Neutronium Fluid Cell", "", new Object[]{new ItemData(Materials.Neutronium, OrePrefixes.plateDouble.mMaterialAmount * 4L, new MaterialStack(Materials.Draconium, OrePrefixes.ring.mMaterialAmount * 4L)), new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 12L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 10L)})); - setFluidContainerStats(32000 + tLastID, 131072000L, 1L); - - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Neutronium, 4L), GT_OreDictUnificator.get(OrePrefixes.ring, Materials.Draconium, 4L), ItemList.Large_Fluid_Cell_Neutronium.get(1L, new Object[0]), 200, 7680); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.TungstenSteel, 1L), GT_OreDictUnificator.get(OrePrefixes.ring, Materials.TungstenSteel, 2L), ItemList.Large_Fluid_Cell_TungstenSteel.get(1L, new Object[0]), 200, 256); for (byte i = 0; i < 16; i = (byte) (i + 1)) { - ItemList.SPRAY_CAN_DYES[i].set(addItem(tLastID = 430 + 2 * i, "Spray Can (" + Dyes.get(i).mName + ")", "Full", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 4L)})); - ItemList.SPRAY_CAN_DYES_USED[i].set(addItem(tLastID + 1, "Spray Can (" + Dyes.get(i).mName + ")", "Used", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 3L), SubTag.INVISIBLE})); - IItemBehaviour tBehaviour = new Behaviour_Spray_Color(ItemList.Spray_Empty.get(1L, new Object[0]), ItemList.SPRAY_CAN_DYES_USED[i].get(1L, new Object[0]), ItemList.SPRAY_CAN_DYES[i].get(1L, new Object[0]), 512L, i); - addItemBehavior(32000 + tLastID, tBehaviour); - addItemBehavior(32001 + tLastID, tBehaviour); + ItemList.SPRAY_CAN_DYES[i].set(addItem(tLastID = 430 + 2 * i, "Spray Can (" + Dyes.get(i).mName + ")", "Full", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 4L)})); + ItemList.SPRAY_CAN_DYES_USED[i].set(addItem(tLastID + 1, "Spray Can (" + Dyes.get(i).mName + ")", "Used", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 3L), SubTag.INVISIBLE})); + IItemBehaviour tBehaviour = new Behaviour_Spray_Color(ItemList.Spray_Empty.get(1L, new Object[0]), ItemList.SPRAY_CAN_DYES_USED[i].get(1L, new Object[0]), ItemList.SPRAY_CAN_DYES[i].get(1L, new Object[0]), 512L, i); + addItemBehavior(32000 + tLastID, tBehaviour); + addItemBehavior(32001 + tLastID, tBehaviour); } - - ItemList.Tool_Matches.set(addItem(tLastID = 471, "Match", "", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 1L)})); ItemList.Tool_MatchBox_Used.set(addItem(tLastID = 472, "Match Box", "This is not a Car", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 1L), SubTag.INVISIBLE})); ItemList.Tool_MatchBox_Full.set(addItem(tLastID = 473, "Match Box (Full)", "This is not a Car", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 2L)})); @@ -361,22 +327,18 @@ public class GT_MetaGenerated_Item_01 GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Platinum, 2L), new ItemStack(Items.flint, 1), ItemList.Tool_Lighter_Platinum_Empty.get(1L, new Object[0]), 256, 256); if (Loader.isModLoaded("GalacticraftMars")) { - ItemList.Ingot_Heavy1.set(addItem(tLastID = 462, "Heavy Duty Alloy Ingot T1", "Used to make Heavy Duty Plates T1", new Object[0])); + ItemList.Ingot_Heavy1.set(addItem(tLastID = 462, "Heavy Duty Alloy Ingot", "Used to make Heavy Duty Plates", new Object[0])); ItemList.Ingot_Heavy2.set(addItem(tLastID = 463, "Heavy Duty Alloy Ingot T2", "Used to make Heavy Duty Plates T2", new Object[0])); ItemList.Ingot_Heavy3.set(addItem(tLastID = 464, "Heavy Duty Alloy Ingot T3", "Used to make Heavy Duty Plates T3", new Object[0])); GT_ModHandler.addCraftingRecipe(ItemList.Ingot_Heavy1.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"BhB", "CAS", "B B", 'B', OrePrefixes.bolt.get(Materials.StainlessSteel), 'C', OrePrefixes.compressed.get(Materials.Bronze), 'A', OrePrefixes.compressed.get(Materials.Aluminium), 'S', OrePrefixes.compressed.get(Materials.Steel)}); - GT_Values.RA.addImplosionRecipe(ItemList.Ingot_Heavy1.get(1L, new Object[0]), 8, GT_ModHandler.getModItem("GalacticraftCore", "item.heavyPlating", 1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.StainlessSteel, 2L)); - //GT_ModHandler.addCraftingRecipe(ItemList.Ingot_Heavy2.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{" BB", "hPC", " BB", 'B', OrePrefixes.bolt.get(Materials.Tungsten), 'C', OrePrefixes.compressed.get(Materials.MeteoricIron), 'P', GT_ModHandler.getModItem("GalacticraftCore", "item.heavyPlating", 1L)}); - GT_Values.RA.addImplosionRecipe(ItemList.Ingot_Heavy2.get(1L, new Object[0]), 16, GT_ModHandler.getModItem("GalacticraftMars", "item.null", 1L, 3), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Titanium, 2L)); - //GT_ModHandler.addCraftingRecipe(ItemList.Ingot_Heavy3.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{" BB", "hPC", " BB", 'B', OrePrefixes.bolt.get(Materials.TungstenSteel), 'C', OrePrefixes.compressed.get(Materials.Desh), 'P', GT_ModHandler.getModItem("GalacticraftMars", "item.null", 1L, 3)}); - GT_Values.RA.addImplosionRecipe(ItemList.Ingot_Heavy3.get(1L, new Object[0]), 24, GT_ModHandler.getModItem("GalacticraftMars", "item.itemBasicAsteroids", 1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.TungstenSteel, 2L)); - } + GT_ModHandler.addCraftingRecipe(ItemList.Ingot_Heavy2.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{" BB", "hPC", " BB", 'B', OrePrefixes.bolt.get(Materials.Tungsten), 'C', OrePrefixes.compressed.get(Materials.MeteoricIron), 'P', GT_ModHandler.getModItem("GalacticraftCore", "item.heavyPlating", 1L)}); + GT_ModHandler.addCraftingRecipe(ItemList.Ingot_Heavy3.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{" BB", "hPC", " BB", 'B', OrePrefixes.bolt.get(Materials.TungstenSteel), 'C', OrePrefixes.compressed.get(Materials.Desh), 'P', GT_ModHandler.getModItem("GalacticraftMars", "item.null", 1L, 3)}); + } ItemList.Ingot_IridiumAlloy.set(addItem(tLastID = 480, "Iridium Alloy Ingot", "Used to make Iridium Plates", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.TUTAMEN, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L)})); GT_ModHandler.addRollingMachineRecipe(ItemList.Ingot_IridiumAlloy.get(1L, new Object[0]), new Object[]{"IAI", "ADA", "IAI", Character.valueOf('D'), GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.harderrecipes, "iridiumplate", true) ? OreDictNames.craftingIndustrialDiamond : OrePrefixes.dust.get(Materials.Diamond), Character.valueOf('A'), OrePrefixes.plateAlloy.get("Advanced"), Character.valueOf('I'), OrePrefixes.plate.get(Materials.Iridium)}); GT_ModHandler.addCraftingRecipe(ItemList.Ingot_IridiumAlloy.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"IAI", "ADA", "IAI", Character.valueOf('D'), GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.harderrecipes, "iridiumplate", true) ? OreDictNames.craftingIndustrialDiamond : OrePrefixes.dust.get(Materials.Diamond), Character.valueOf('A'), OrePrefixes.plateAlloy.get("Advanced"), Character.valueOf('I'), OrePrefixes.plate.get(Materials.Iridium)}); - GT_Values.RA.addImplosionRecipe(ItemList.Ingot_IridiumAlloy.get(1L, new Object[0]), 8, GT_OreDictUnificator.get(OrePrefixes.plateAlloy, Materials.Iridium, 1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 4L)); ItemList.Paper_Printed_Pages.set(addItem(tLastID = 481, "Printed Pages", "Used to make written Books", new Object[]{new ItemData(Materials.Paper, 10886400L, new MaterialStack[0]), new Behaviour_PrintedPages(), new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITIO, 2L)})); ItemList.Paper_Magic_Empty.set(addItem(tLastID = 482, "Magic Paper", "", new Object[]{SubTag.INVISIBLE, new ItemData(Materials.Paper, 3628800L, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITIO, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.PRAECANTATIO, 1L)})); @@ -406,23 +368,18 @@ public class GT_MetaGenerated_Item_01 GT_ModHandler.addShapelessCraftingRecipe(ItemList.Schematic.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Schematic_3by3}); GT_ModHandler.addShapelessCraftingRecipe(ItemList.Schematic.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{ItemList.Schematic_Dust}); - ItemList.Battery_Hull_LV.set(addItem(tLastID = 500, "Small Battery Hull", "An empty LV Battery Hull", new Object[]{new ItemData(Materials.BatteryAlloy, OrePrefixes.plate.mMaterialAmount * 2L, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 1L)})); - ItemList.Battery_Hull_MV.set(addItem(tLastID = 501, "Medium Battery Hull", "An empty MV Battery Hull", new Object[]{new ItemData(Materials.BatteryAlloy, OrePrefixes.plate.mMaterialAmount * 6L, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 1L)})); - ItemList.Battery_Hull_HV.set(addItem(tLastID = 502, "Large Battery Hull", "An empty HV Battery Hull", new Object[]{new ItemData(Materials.BatteryAlloy, OrePrefixes.plate.mMaterialAmount * 18L, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 1L)})); + ItemList.Battery_Hull_LV.set(addItem(tLastID = 500, "Small Battery Hull", "An empty LV Battery Hull", new Object[]{new ItemData(Materials.BatteryAlloy, OrePrefixes.plate.mMaterialAmount * 1L, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 1L)})); + ItemList.Battery_Hull_MV.set(addItem(tLastID = 501, "Medium Battery Hull", "An empty MV Battery Hull", new Object[]{new ItemData(Materials.BatteryAlloy, OrePrefixes.plate.mMaterialAmount * 3L, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 1L)})); + ItemList.Battery_Hull_HV.set(addItem(tLastID = 502, "Large Battery Hull", "An empty HV Battery Hull", new Object[]{new ItemData(Materials.BatteryAlloy, OrePrefixes.plate.mMaterialAmount * 9L, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 1L)})); GT_ModHandler.addCraftingRecipe(ItemList.Battery_Hull_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"C", "P", "P", Character.valueOf('P'), OrePrefixes.plate.get(Materials.BatteryAlloy), Character.valueOf('C'), OreDictNames.craftingWireTin}); GT_ModHandler.addCraftingRecipe(ItemList.Battery_Hull_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"C C", "PPP", "PPP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.BatteryAlloy), Character.valueOf('C'), OreDictNames.craftingWireCopper}); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Tin, 1L), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.BatteryAlloy, 2L), ItemList.Battery_Hull_LV.get(1L, new Object[0]), 800, 1); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Copper, 2L), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.BatteryAlloy, 6L), ItemList.Battery_Hull_MV.get(1L, new Object[0]), 1600, 2); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.AnnealedCopper, 2L), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.BatteryAlloy, 6L), ItemList.Battery_Hull_MV.get(1L, new Object[0]), 1600, 2); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Gold, 4L), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.BatteryAlloy, 18L), ItemList.Battery_Hull_HV.get(1L, new Object[0]), 3200, 4); - ItemList.Battery_RE_ULV_Tantalum.set(addItem(tLastID = 499, "Tantalum Capacitor", "Reusable", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 1L)})); setElectricStats(32000 + tLastID, 1000L, GT_Values.V[0], 0L, -3L, false); ItemList.Battery_SU_LV_SulfuricAcid.set(addItem(tLastID = 510, "Small Acid Battery", "Single Use", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 2L)})); - setElectricStats(32000 + tLastID, 12000L, GT_Values.V[1], 1L, -2L, true); + setElectricStats(32000 + tLastID, 18000L, GT_Values.V[1], 1L, -2L, true); ItemList.Battery_SU_LV_Mercury.set(addItem(tLastID = 511, "Small Mercury Battery", "Single Use", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 2L)})); setElectricStats(32000 + tLastID, 32000L, GT_Values.V[1], 1L, -2L, true); @@ -434,7 +391,7 @@ public class GT_MetaGenerated_Item_01 setElectricStats(32000 + tLastID, 50000L, GT_Values.V[1], 1L, -3L, true); ItemList.Battery_SU_MV_SulfuricAcid.set(addItem(tLastID = 520, "Medium Acid Battery", "Single Use", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 4L)})); - setElectricStats(32000 + tLastID, 48000L, GT_Values.V[2], 2L, -2L, true); + setElectricStats(32000 + tLastID, 72000L, GT_Values.V[2], 2L, -2L, true); ItemList.Battery_SU_MV_Mercury.set(addItem(tLastID = 521, "Medium Mercury Battery", "Single Use", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 4L)})); setElectricStats(32000 + tLastID, 128000L, GT_Values.V[2], 2L, -2L, true); @@ -446,7 +403,7 @@ public class GT_MetaGenerated_Item_01 setElectricStats(32000 + tLastID, 200000L, GT_Values.V[2], 2L, -3L, true); ItemList.Battery_SU_HV_SulfuricAcid.set(addItem(tLastID = 530, "Large Acid Battery", "Single Use", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 8L)})); - setElectricStats(32000 + tLastID, 192000L, GT_Values.V[3], 3L, -2L, true); + setElectricStats(32000 + tLastID, 288000L, GT_Values.V[3], 3L, -2L, true); ItemList.Battery_SU_HV_Mercury.set(addItem(tLastID = 531, "Large Mercury Battery", "Single Use", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 8L)})); setElectricStats(32000 + tLastID, 512000L, GT_Values.V[3], 3L, -2L, true); @@ -505,11 +462,11 @@ public class GT_MetaGenerated_Item_01 ItemList.Electric_Motor_UV.set(ItemList.Electric_Motor_ZPM.get(1L, new Object[0])); GT_ModHandler.addCraftingRecipe(ItemList.Electric_Motor_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"CWR", "WIW", "RWC", Character.valueOf('I'), OrePrefixes.stick.get(Materials.IronMagnetic), Character.valueOf('R'), OrePrefixes.stick.get(Materials.AnyIron), Character.valueOf('W'), OrePrefixes.wireGt01.get(Materials.AnyCopper), Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Tin)}); - GT_ModHandler.addCraftingRecipe(ItemList.Electric_Motor_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"CWR", "WIW", "RWC", Character.valueOf('I'), OrePrefixes.stick.get(Materials.SteelMagnetic), Character.valueOf('R'), OrePrefixes.stick.get(Materials.Steel), Character.valueOf('W'), OrePrefixes.wireGt01.get(Materials.AnyCopper), Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Tin)}); - GT_ModHandler.addCraftingRecipe(ItemList.Electric_Motor_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"CWR", "WIW", "RWC", Character.valueOf('I'), OrePrefixes.stick.get(Materials.SteelMagnetic), Character.valueOf('R'), OrePrefixes.stick.get(Materials.Aluminium), Character.valueOf('W'), OrePrefixes.wireGt02.get(Materials.Cupronickel), Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.AnyCopper)}); - GT_ModHandler.addCraftingRecipe(ItemList.Electric_Motor_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"CWR", "WIW", "RWC", Character.valueOf('I'), OrePrefixes.stick.get(Materials.SteelMagnetic), Character.valueOf('R'), OrePrefixes.stick.get(Materials.StainlessSteel), Character.valueOf('W'), OrePrefixes.wireGt04.get(Materials.Electrum), Character.valueOf('C'), OrePrefixes.cableGt02.get(Materials.Silver)}); - GT_ModHandler.addCraftingRecipe(ItemList.Electric_Motor_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"CWR", "WIW", "RWC", Character.valueOf('I'), OrePrefixes.stick.get(Materials.NeodymiumMagnetic), Character.valueOf('R'), OrePrefixes.stick.get(Materials.Titanium), Character.valueOf('W'), OrePrefixes.wireGt04.get(Materials.AnnealedCopper), Character.valueOf('C'), OrePrefixes.cableGt02.get(Materials.Aluminium)}); - GT_ModHandler.addCraftingRecipe(ItemList.Electric_Motor_IV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"CWR", "WIW", "RWC", Character.valueOf('I'), OrePrefixes.stick.get(Materials.NeodymiumMagnetic), Character.valueOf('R'), OrePrefixes.stick.get(Materials.TungstenSteel), Character.valueOf('W'), OrePrefixes.wireGt04.get(Materials.Graphene), Character.valueOf('C'), OrePrefixes.cableGt02.get(Materials.Tungsten)}); + GT_ModHandler.addCraftingRecipe(ItemList.Electric_Motor_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"CWR", "WIW", "RWC", Character.valueOf('I'), OrePrefixes.stick.get(Materials.SteelMagnetic), Character.valueOf('R'), OrePrefixes.stick.get(Materials.Steel), Character.valueOf('W'), OrePrefixes.wireGt01.get(Materials.AnyCopper), Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Tin)}); + GT_ModHandler.addCraftingRecipe(ItemList.Electric_Motor_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"CWR", "WIW", "RWC", Character.valueOf('I'), OrePrefixes.stick.get(Materials.SteelMagnetic), Character.valueOf('R'), OrePrefixes.stick.get(Materials.Aluminium), Character.valueOf('W'), OrePrefixes.wireGt02.get(Materials.AnyCopper), Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.AnyCopper)}); + GT_ModHandler.addCraftingRecipe(ItemList.Electric_Motor_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"CWR", "WIW", "RWC", Character.valueOf('I'), OrePrefixes.stick.get(Materials.SteelMagnetic), Character.valueOf('R'), OrePrefixes.stick.get(Materials.StainlessSteel), Character.valueOf('W'), OrePrefixes.wireGt04.get(Materials.AnyCopper), Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Gold)}); + GT_ModHandler.addCraftingRecipe(ItemList.Electric_Motor_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"CWR", "WIW", "RWC", Character.valueOf('I'), OrePrefixes.stick.get(Materials.NeodymiumMagnetic), Character.valueOf('R'), OrePrefixes.stick.get(Materials.Titanium), Character.valueOf('W'), OrePrefixes.wireGt08.get(Materials.AnnealedCopper), Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Aluminium)}); + GT_ModHandler.addCraftingRecipe(ItemList.Electric_Motor_IV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"CWR", "WIW", "RWC", Character.valueOf('I'), OrePrefixes.stick.get(Materials.NeodymiumMagnetic), Character.valueOf('R'), OrePrefixes.stick.get(Materials.TungstenSteel), Character.valueOf('W'), OrePrefixes.wireGt16.get(Materials.AnnealedCopper), Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Tungsten)}); ItemList.Electric_Pump_LV.set(addItem(tLastID = 610, "Electric Pump (LV)", "640 L/sec (as Cover)", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L)})); ItemList.Electric_Pump_MV.set(addItem(tLastID = 611, "Electric Pump (MV)", "2560 L/sec (as Cover)", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 2L)})); @@ -526,6 +483,30 @@ public class GT_MetaGenerated_Item_01 GregTech_API.registerCover(ItemList.Electric_Pump_EV.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[4][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PUMP)}), new GT_Cover_Pump(2048)); GregTech_API.registerCover(ItemList.Electric_Pump_IV.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[5][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PUMP)}), new GT_Cover_Pump(8192)); + ItemList.FluidRegulator_LV.set(addItem(tLastID = 615, "Fluid Regulator (LV)", "Configuable up to 640 L/sec (as Cover)", new Object[]{})); + ItemList.FluidRegulator_MV.set(addItem(tLastID = 616, "Fluid Regulator (MV)", "Configuable up to 2560 L/sec (as Cover)", new Object[]{})); + ItemList.FluidRegulator_HV.set(addItem(tLastID = 617, "Fluid Regulator (HV)", "Configuable up to 10240 L/sec (as Cover)", new Object[]{})); + ItemList.FluidRegulator_EV.set(addItem(tLastID = 618, "Fluid Regulator (EV)", "Configuable up to 40960 L/sec (as Cover)", new Object[]{})); + ItemList.FluidRegulator_IV.set(addItem(tLastID = 619, "Fluid Regulator (IV)", "Configuable up to 163840 L/sec (as Cover)", new Object[]{})); + + GregTech_API.registerCover(ItemList.FluidRegulator_LV.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[1][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PUMP)}), new GT_Cover_FluidRegulator(32)); + GregTech_API.registerCover(ItemList.FluidRegulator_MV.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[2][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PUMP)}), new GT_Cover_FluidRegulator(128)); + GregTech_API.registerCover(ItemList.FluidRegulator_HV.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[3][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PUMP)}), new GT_Cover_FluidRegulator(512)); + GregTech_API.registerCover(ItemList.FluidRegulator_EV.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[4][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PUMP)}), new GT_Cover_FluidRegulator(2048)); + GregTech_API.registerCover(ItemList.FluidRegulator_IV.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[5][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PUMP)}), new GT_Cover_FluidRegulator(8192)); + + ItemList.FluidFilter.set(addItem(tLastID = 635, "Fluid Filter", "Set with Fluid Container to only accept one Fluid Type", new Object[]{})); + GregTech_API.registerCover(ItemList.FluidFilter.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[1][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SHUTTER)}), new GT_Cover_Fluidfilter()); + + /**ItemList.Rotor_LV.set(addItem(tLastID = 620, "Tin Rotor", "", new Object[] { OrePrefixes.rotor.get(Materials.Tin), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 1L) })); + ItemList.Rotor_MV.set(addItem(tLastID = 621, "Bronze Rotor", "", new Object[] { OrePrefixes.rotor.get(Materials.Bronze), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 2L) })); + ItemList.Rotor_HV.set(addItem(tLastID = 622, "Steel Rotor", "", new Object[] { OrePrefixes.rotor.get(Materials.Steel), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 4L) })); + ItemList.Rotor_EV.set(addItem(tLastID = 623, "Stainless Steel Rotor", "", new Object[] { OrePrefixes.rotor.get(Materials.StainlessSteel), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 8L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 8L) })); + ItemList.Rotor_IV.set(addItem(tLastID = 624, "Tungstensteel Rotor", "", new Object[] { OrePrefixes.rotor.get(Materials.TungstenSteel), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 16L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 16L) })); + ItemList.Rotor_LuV.set(ItemList.Rotor_IV.get(1L, new Object[0])); + ItemList.Rotor_ZPM.set(ItemList.Rotor_LuV.get(1L, new Object[0])); + ItemList.Rotor_UV.set(ItemList.Rotor_ZPM.get(1L, new Object[0]));**/ + GT_ModHandler.addCraftingRecipe(ItemList.Electric_Pump_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"SXO", "dPw", "OMW", Character.valueOf('M'), ItemList.Electric_Motor_LV, Character.valueOf('O'), OrePrefixes.ring.get(Materials.Rubber), Character.valueOf('X'), OrePrefixes.rotor.get(Materials.Tin), Character.valueOf('S'), OrePrefixes.screw.get(Materials.Tin), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Tin), Character.valueOf('P'), OrePrefixes.pipeMedium.get(Materials.Bronze)}); GT_ModHandler.addCraftingRecipe(ItemList.Electric_Pump_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"SXO", "dPw", "OMW", Character.valueOf('M'), ItemList.Electric_Motor_MV, Character.valueOf('O'), OrePrefixes.ring.get(Materials.Rubber), Character.valueOf('X'), OrePrefixes.rotor.get(Materials.Bronze), Character.valueOf('S'), OrePrefixes.screw.get(Materials.Bronze), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.AnyCopper), Character.valueOf('P'), OrePrefixes.pipeMedium.get(Materials.Steel)}); GT_ModHandler.addCraftingRecipe(ItemList.Electric_Pump_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"SXO", "dPw", "OMW", Character.valueOf('M'), ItemList.Electric_Motor_HV, Character.valueOf('O'), OrePrefixes.ring.get(Materials.Rubber), Character.valueOf('X'), OrePrefixes.rotor.get(Materials.Steel), Character.valueOf('S'), OrePrefixes.screw.get(Materials.Steel), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Gold), Character.valueOf('P'), OrePrefixes.pipeMedium.get(Materials.StainlessSteel)}); @@ -598,11 +579,11 @@ public class GT_MetaGenerated_Item_01 ItemList.Field_Generator_ZPM.set(ItemList.Field_Generator_LuV.get(1L, new Object[0])); ItemList.Field_Generator_UV.set(ItemList.Field_Generator_ZPM.get(1L, new Object[0])); - GT_ModHandler.addCraftingRecipe(ItemList.Field_Generator_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"WCW", "CGC", "WCW", Character.valueOf('G'), OrePrefixes.plate.get(Materials.EnderPearl), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Basic), Character.valueOf('W'), OrePrefixes.wireGt02.get(Materials.TungstenSteel)}); - GT_ModHandler.addCraftingRecipe(ItemList.Field_Generator_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"WCW", "CGC", "WCW", Character.valueOf('G'), OrePrefixes.plate.get(Materials.EnderEye), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Good), Character.valueOf('W'), OrePrefixes.wireGt02.get(Materials.TungstenSteel)}); - GT_ModHandler.addCraftingRecipe(ItemList.Field_Generator_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"WCW", "CGC", "WCW", Character.valueOf('G'), OrePrefixes.plate.get(Materials.NetherStar), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('W'), OrePrefixes.wireGt02.get(Materials.Platinum)}); - GT_ModHandler.addCraftingRecipe(ItemList.Field_Generator_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"WCW", "CGC", "WCW", Character.valueOf('G'), OrePrefixes.plate.get(Materials.Enderium), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Elite), Character.valueOf('W'), OrePrefixes.wireGt02.get(Materials.Platinum)}); - GT_ModHandler.addCraftingRecipe(ItemList.Field_Generator_IV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"WCW", "CGC", "WCW", Character.valueOf('G'), OrePrefixes.plate.get(Materials.Sunnarium), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Master), Character.valueOf('W'), OrePrefixes.wireGt02.get(Materials.Osmium)}); + GT_ModHandler.addCraftingRecipe(ItemList.Field_Generator_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"WCW", "CGC", "WCW", Character.valueOf('G'), OrePrefixes.gem.get(Materials.EnderPearl), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Basic), Character.valueOf('W'), OrePrefixes.wireGt01.get(Materials.Osmium)}); + GT_ModHandler.addCraftingRecipe(ItemList.Field_Generator_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"WCW", "CGC", "WCW", Character.valueOf('G'), OrePrefixes.gem.get(Materials.EnderEye), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Good), Character.valueOf('W'), OrePrefixes.wireGt02.get(Materials.Osmium)}); + GT_ModHandler.addCraftingRecipe(ItemList.Field_Generator_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"WCW", "CGC", "WCW", Character.valueOf('G'), OrePrefixes.gem.get(Materials.NetherStar), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('W'), OrePrefixes.wireGt04.get(Materials.Osmium)}); + GT_ModHandler.addCraftingRecipe(ItemList.Field_Generator_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"WCW", "CGC", "WCW", Character.valueOf('G'), OrePrefixes.gem.get(Materials.NetherStar), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Elite), Character.valueOf('W'), OrePrefixes.wireGt08.get(Materials.Osmium)}); + GT_ModHandler.addCraftingRecipe(ItemList.Field_Generator_IV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"WCW", "CGC", "WCW", Character.valueOf('G'), OrePrefixes.gem.get(Materials.NetherStar), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Master), Character.valueOf('W'), OrePrefixes.wireGt16.get(Materials.Osmium)}); ItemList.Emitter_LV.set(addItem(tLastID = 680, "Emitter (LV)", "", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.LUX, 1L)})); ItemList.Emitter_MV.set(addItem(tLastID = 681, "Emitter (MV)", "", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.LUX, 2L)})); @@ -657,6 +638,8 @@ public class GT_MetaGenerated_Item_01 ItemList.Circuit_Parts_Wiring_Basic.set(addItem(tLastID = 716, "Etched Medium Voltage Wiring", "Part of Circuit Boards", new Object[0])); ItemList.Circuit_Parts_Wiring_Advanced.set(addItem(tLastID = 717, "Etched High Voltage Wiring", "Part of Circuit Boards", new Object[0])); ItemList.Circuit_Parts_Wiring_Elite.set(addItem(tLastID = 718, "Etched Extreme Voltage Wiring", "Part of Circuit Boards", new Object[0])); + ItemList.Empty_Board_Basic.set(addItem(tLastID = 719, "Empty Circuit Board", "A Board Part", new Object[0])); + ItemList.Empty_Board_Elite.set(addItem(tLastID = 720, "Empty Processor Board", "A Processor Board Part", new Object[0])); ItemList.Component_Sawblade_Diamond.set(addItem(tLastID = 721, "Diamond Sawblade", "", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERDITIO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 4L), OreDictNames.craftingDiamondBlade})); @@ -682,7 +665,7 @@ public class GT_MetaGenerated_Item_01 ItemList.Component_Filter.set(addItem(tLastID = 729, "Item Filter", "", new Object[]{new ItemData(Materials.Zinc, OrePrefixes.foil.mMaterialAmount * 16L, new MaterialStack[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITIO, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 1L), OreDictNames.craftingFilter})); - GT_Values.RA.addAssemblerRecipe(GT_ModHandler.getIC2Item("carbonMesh", 4L), GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Zinc, 16L), ItemList.Component_Filter.get(1L, new Object[0]), 1600, 30); + GT_Values.RA.addAssemblerRecipe(GT_ModHandler.getIC2Item("carbonMesh", 4L), GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Zinc, 16L), Materials.Plastic.getMolten(144), ItemList.Component_Filter.get(1L, new Object[0]), 1600, 32); ItemList.Cover_Controller.set(addItem(tLastID = 730, "Machine Controller", "Turns Machines ON/OFF", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 1L)})); ItemList.Cover_ActivityDetector.set(addItem(tLastID = 731, "Activity Detector", "Gives out Activity as Redstone", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 1L)})); @@ -707,16 +690,17 @@ public class GT_MetaGenerated_Item_01 GT_ModHandler.addCraftingRecipe(ItemList.Cover_Screen.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"AGA", "RPB", "ALA", Character.valueOf('A'), OrePrefixes.plate.get(Materials.Aluminium), Character.valueOf('L'), OrePrefixes.dust.get(Materials.Glowstone), Character.valueOf('R'), Dyes.dyeRed, Character.valueOf('G'), Dyes.dyeLime, Character.valueOf('B'), Dyes.dyeBlue, Character.valueOf('P'), OrePrefixes.plate.get(Materials.Glass)}); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Aluminium, 1L), ItemList.Cover_Drain.get(1L, new Object[0]), ItemList.Cover_Shutter.get(1L, new Object[0]), 200, 64); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 1L), ItemList.Cover_Drain.get(1L, new Object[0]), ItemList.Cover_Shutter.get(1L, new Object[0]), 800, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 1L), ItemList.Cover_Drain.get(1L, new Object[0]), ItemList.Cover_Shutter.get(1L, new Object[0]), 400, 30); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Aluminium, 2L), new ItemStack(Blocks.iron_bars, 2), ItemList.Cover_Drain.get(1L, new Object[0]), 200, 64); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Aluminium, 2L), new ItemStack(Items.iron_door, 1), ItemList.Cover_Shutter.get(2L, new Object[0]), 800, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 2L), new ItemStack(Items.iron_door, 1), ItemList.Cover_Shutter.get(2L, new Object[0]), 800, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 2L), new ItemStack(Items.iron_door, 1), ItemList.Cover_Shutter.get(2L, new Object[0]), 800, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Aluminium, 2L), new ItemStack(Blocks.iron_bars, 2), ItemList.Cover_Drain.get(1L, new Object[0]), 800, 16); GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 2L), new ItemStack(Blocks.iron_bars, 2), ItemList.Cover_Drain.get(1L, new Object[0]), 800, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 2L), new ItemStack(Blocks.iron_bars, 2), ItemList.Cover_Drain.get(1L, new Object[0]), 400, 30); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Aluminium, 1L), new ItemStack(Blocks.crafting_table, 1), ItemList.Cover_Crafting.get(1L, new Object[0]), 200, 64); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 2L), new ItemStack(Blocks.iron_bars, 2), ItemList.Cover_Drain.get(1L, new Object[0]), 800, 16); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Aluminium, 1L), new ItemStack(Blocks.crafting_table, 1), ItemList.Cover_Crafting.get(1L, new Object[0]), 800, 16); GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Iron, 1L), new ItemStack(Blocks.crafting_table, 1), ItemList.Cover_Crafting.get(1L, new Object[0]), 800, 16); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 1L), new ItemStack(Blocks.crafting_table, 1), ItemList.Cover_Crafting.get(1L, new Object[0]), 400, 30); - + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.WroughtIron, 1L), new ItemStack(Blocks.crafting_table, 1), ItemList.Cover_Crafting.get(1L, new Object[0]), 800, 16); + GT_Values.RA.addAssemblerRecipe(ItemList.Cover_Shutter.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Advanced, 2), ItemList.FluidFilter.get(1L, new Object[0]), 800, 4); + GregTech_API.registerCover(ItemList.Cover_Screen.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[2][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SCREEN)}), new GT_Cover_Screen()); GregTech_API.registerCover(ItemList.Cover_Crafting.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[1][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_CRAFTING)}), new GT_Cover_Crafting()); GregTech_API.registerCover(ItemList.Cover_Drain.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[0][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_DRAIN)}), new GT_Cover_Drain()); @@ -777,6 +761,13 @@ public class GT_MetaGenerated_Item_01 ItemList.Cover_NeedsMaintainance.set(addItem(tLastID = 748, "Needs Maintainance Cover", "Attach to Multiblock Controller. Emits Redstone Signal if needs Maintainance", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 1L)})); GregTech_API.registerCover(ItemList.Cover_NeedsMaintainance.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[2][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_ACTIVITYDETECTOR)}), new GT_Cover_NeedMaintainance()); GT_Values.RA.addAssemblerRecipe(ItemList.Emitter_MV.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Aluminium, 1L), ItemList.Cover_NeedsMaintainance.get(1L, new Object[0]), 600, 24); + + GT_Values.RA.addAssemblerRecipe(ItemList.Electric_Pump_LV.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Basic, 2), ItemList.FluidRegulator_LV.get(1L, new Object[0]), 800, 4); + GT_Values.RA.addAssemblerRecipe(ItemList.Electric_Pump_MV.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Good, 2), ItemList.FluidRegulator_MV.get(1L, new Object[0]), 800, 8); + GT_Values.RA.addAssemblerRecipe(ItemList.Electric_Pump_HV.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Advanced, 2), ItemList.FluidRegulator_HV.get(1L, new Object[0]), 800, 16); + GT_Values.RA.addAssemblerRecipe(ItemList.Electric_Pump_EV.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Elite, 2), ItemList.FluidRegulator_EV.get(1L, new Object[0]), 800, 32); + GT_Values.RA.addAssemblerRecipe(ItemList.Electric_Pump_IV.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Master, 2), ItemList.FluidRegulator_IV.get(1L, new Object[0]), 800, 64); + } public boolean onEntityItemUpdate(EntityItem aItemEntity) { @@ -825,8 +816,21 @@ public class GT_MetaGenerated_Item_01 } } + public boolean isPlasmaCellUsed(OrePrefixes aPrefix, Materials aMaterial) { + Collection fusionRecipes = GT_Recipe.GT_Recipe_Map.sFusionRecipes.mRecipeList; + if(aPrefix == OrePrefixes.cellPlasma && aMaterial.getPlasma(1L) != null) { //Materials has a plasma fluid + for(GT_Recipe recipe : fusionRecipes) { //Loop through fusion recipes + if(recipe.getFluidOutput(0) != null) { //Make sure fluid output can't be null (not sure if possible) + if (recipe.getFluidOutput(0).isFluidEqual(aMaterial.getPlasma(1L))) + return true; //Fusion recipe output matches current plasma cell fluid + } + } + } + return false; + } + public boolean doesShowInCreative(OrePrefixes aPrefix, Materials aMaterial, boolean aDoShowAllItems) { - return (aDoShowAllItems) || (((aPrefix != OrePrefixes.gem) || (!aMaterial.name().startsWith("Infused"))) && (aPrefix != OrePrefixes.nugget) && (aPrefix != OrePrefixes.dustTiny) && (aPrefix != OrePrefixes.dustSmall) && (aPrefix != OrePrefixes.dustImpure) && (aPrefix != OrePrefixes.dustPure) && (aPrefix != OrePrefixes.crushed) && (aPrefix != OrePrefixes.crushedPurified) && (aPrefix != OrePrefixes.crushedCentrifuged) && (aPrefix != OrePrefixes.ingotHot) && (aPrefix != OrePrefixes.cellPlasma)); + return (aDoShowAllItems) || (((aPrefix != OrePrefixes.gem) || (!aMaterial.name().startsWith("Infused"))) && (aPrefix != OrePrefixes.nugget) && (aPrefix != OrePrefixes.dustTiny) && (aPrefix != OrePrefixes.dustSmall) && (aPrefix != OrePrefixes.dustImpure) && (aPrefix != OrePrefixes.dustPure) && (aPrefix != OrePrefixes.crushed) && (aPrefix != OrePrefixes.crushedPurified) && (aPrefix != OrePrefixes.crushedCentrifuged) && (aPrefix != OrePrefixes.ingotHot) && isPlasmaCellUsed(aPrefix, aMaterial)); } public ItemStack getContainerItem(ItemStack aStack) { diff --git a/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_02.java b/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_02.java index 247f2da7..59d1960f 100644 --- a/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_02.java +++ b/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_02.java @@ -1,5 +1,9 @@ package gregtech.common.items; +import com.google.common.collect.ImmutableMap; + +import forestry.api.recipes.RecipeManagers; +import gregtech.GT_Mod; import gregtech.api.GregTech_API; import gregtech.api.enums.*; import gregtech.api.items.GT_MetaGenerated_Item_X32; @@ -44,6 +48,8 @@ public class GT_MetaGenerated_Item_02 ItemList.ThermosCan_Sweet_Tea.set(addItem(tLastID = 8, "Sweet Tea", "How about a Tea Party? In Boston?", new Object[]{SubTag.INVISIBLE, new GT_FoodStat(2, 0.2F, EnumAction.drink, ItemList.ThermosCan_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.GELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 2L)})); ItemList.ThermosCan_Ice_Tea.set(addItem(tLastID = 9, "Ice Tea", "Better than this purple Junk Drink from failed Potions", new Object[]{new GT_FoodStat(2, 0.2F, EnumAction.drink, ItemList.ThermosCan_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[]{Potion.moveSlowdown.id, 300, 0, 50}), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.GELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 2L)})); + ItemList.GelledToluene.set(addItem(tLastID = 10, "Gelled Toluene", "Raw Explosive", new Object[]{})); + ItemList.Bottle_Purple_Drink.set(addItem(tLastID = 100, "Purple Drink", "How about Lemonade. Or some Ice Tea? I got Purple Drink!", new Object[]{new GT_FoodStat(8, 0.2F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[]{Potion.moveSlowdown.id, 400, 1, 90}), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VINCULUM, 1L)})); ItemList.Bottle_Grape_Juice.set(addItem(tLastID = 101, "Grape Juice", "This has a cleaning effect on your internals.", new Object[]{new GT_FoodStat(4, 0.2F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[]{Potion.hunger.id, 400, 1, 60}), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.SANO, 1L)})); ItemList.Bottle_Wine.set(addItem(tLastID = 102, "Wine", "Ordinary", new Object[]{new GT_FoodStat(2, 0.2F, EnumAction.drink, ItemList.Bottle_Empty.get(1L, new Object[0]), GregTech_API.sDrinksAlwaysDrinkable, false, false, new int[]{Potion.confusion.id, 400, 1, 60, Potion.heal.id, 0, 0, 60, Potion.poison.id, 200, 1, 5}), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.SANO, 1L)})); @@ -275,6 +281,8 @@ public class GT_MetaGenerated_Item_02 ItemList.Crop_Drop_OilBerry.set(addItem(tLastID = 510, "Oil Berry", "Oil in Berry form", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 1L)})); ItemList.Crop_Drop_BobsYerUncleRanks.set(addItem(tLastID = 511, "Bobs-Yer-Uncle-Berry", "Source of Emeralds", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.LUCRUM, 1L)})); + ItemList.Crop_Drop_UUMBerry.set(addItem(tLastID = 512, "UUM Berry", "UUM in Berry form", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 1L)})); + ItemList.Crop_Drop_UUABerry.set(addItem(tLastID = 513, "UUA Berry", "UUA in Berry form", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 1L)})); ItemList.Crop_Drop_MilkWart.set(addItem(tLastID = 520, "Milk Wart", "Source of Milk", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.SANO, 1L)})); @@ -283,6 +291,20 @@ public class GT_MetaGenerated_Item_02 ItemList.Crop_Drop_Tine.set(addItem(tLastID = 540, "Tine Twig", "Source of Tin", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)})); setBurnValue(32000 + tLastID, 100); + ItemList.Crop_Drop_Bauxite.set(addItem(tLastID = 521, "Bauxia Leaf", "Source of Aluminium", new Object[]{})); + ItemList.Crop_Drop_Ilmenite.set(addItem(tLastID = 522, "Titania Leaf", "Source of Titanium", new Object[]{})); + ItemList.Crop_Drop_Pitchblende.set(addItem(tLastID = 523, "Reactoria Leaf", "Source of Uranium", new Object[]{})); + ItemList.Crop_Drop_Uraninite.set(addItem(tLastID = 524, "Uranium Leaf", "Source of Uranite", new Object[]{})); + ItemList.Crop_Drop_Thorium.set(addItem(tLastID = 526, "Thunder Leaf", "Source of Thorium", new Object[]{})); + ItemList.Crop_Drop_Nickel.set(addItem(tLastID = 527, "Nickelback Leaf", "Source of Nickel", new Object[]{})); + ItemList.Crop_Drop_Zinc.set(addItem(tLastID = 528, "Galvania Leaf", "Source of Zinc", new Object[]{})); + ItemList.Crop_Drop_Manganese.set(addItem(tLastID = 529, "Pyrolusium Leaf", "Source of Manganese", new Object[]{})); + ItemList.Crop_Drop_Scheelite.set(addItem(tLastID = 531, "Scheelinium Leaf", "Source of Tungsten", new Object[]{})); + ItemList.Crop_Drop_Platinum.set(addItem(tLastID = 532, "Platina Leaf", "Source of Platinum", new Object[]{})); + ItemList.Crop_Drop_Iridium.set(addItem(tLastID = 533, "Quantaria Leaf", "Source of Iridium", new Object[]{})); + ItemList.Crop_Drop_Osmium.set(addItem(tLastID = 534, "Quantaria Leaf", "Source of Osmium", new Object[]{})); + ItemList.Crop_Drop_Naquadah.set(addItem(tLastID = 535, "Stargatium Leaf", "Source of Naquadah", new Object[]{})); + ItemList.Crop_Drop_Chilly.set(addItem(tLastID = 550, "Chilly Pepper", "It is red and hot", new Object[]{"cropChilipepper", new GT_FoodStat(1, 0.3F, EnumAction.eat, null, false, true, false, new int[]{Potion.confusion.id, 200, 1, 40}), new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L)})); ItemList.Crop_Drop_Lemon.set(addItem(tLastID = 551, "Lemon", "Don't make Lemonade", new Object[]{"cropLemon", new GT_FoodStat(1, 0.3F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L)})); ItemList.Crop_Drop_Tomato.set(addItem(tLastID = 552, "Tomato", "Solid Ketchup", new Object[]{"cropTomato", new GT_FoodStat(1, 0.2F, EnumAction.eat, null, false, true, false, new int[0]), new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FAMES, 1L)})); @@ -328,9 +350,6 @@ public class GT_MetaGenerated_Item_02 GT_ModHandler.addExtractionRecipe(ItemList.Crop_Drop_Plumbilia.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Lead, 1L)); GT_ModHandler.addExtractionRecipe(ItemList.Crop_Drop_Argentia.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Silver, 1L)); GT_ModHandler.addExtractionRecipe(ItemList.Crop_Drop_Indigo.get(1L, new Object[0]), ItemList.Dye_Indigo.get(1L, new Object[0])); - GT_ModHandler.addExtractionRecipe(ItemList.Crop_Drop_Ferru.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Iron, 1L)); - GT_ModHandler.addExtractionRecipe(ItemList.Crop_Drop_Aurelia.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Gold, 1L)); - GT_ModHandler.addExtractionRecipe(ItemList.Crop_Drop_BobsYerUncleRanks.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Emerald, 1L)); GT_ModHandler.addExtractionRecipe(ItemList.Crop_Drop_MilkWart.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Milk, 1L)); GT_ModHandler.addExtractionRecipe(ItemList.Crop_Drop_Coppon.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Copper, 1L)); GT_ModHandler.addExtractionRecipe(ItemList.Crop_Drop_Tine.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Tin, 1L)); diff --git a/src/main/java/gregtech/common/items/GT_MetaGenerated_Tool_01.java b/src/main/java/gregtech/common/items/GT_MetaGenerated_Tool_01.java index cd388e57..dc9d9d67 100644 --- a/src/main/java/gregtech/common/items/GT_MetaGenerated_Tool_01.java +++ b/src/main/java/gregtech/common/items/GT_MetaGenerated_Tool_01.java @@ -6,12 +6,12 @@ import gregtech.api.items.GT_MetaGenerated_Tool; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.common.tools.*; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; -public class GT_MetaGenerated_Tool_01 - extends GT_MetaGenerated_Tool { +public class GT_MetaGenerated_Tool_01 extends GT_MetaGenerated_Tool { public static final short SWORD = 0; public static final short PICKAXE = 2; public static final short SHOVEL = 4; @@ -66,7 +66,7 @@ public class GT_MetaGenerated_Tool_01 addTool(8, "Hoe", "", new GT_Tool_Hoe(), new Object[]{ToolDictNames.craftingToolHoe, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.MESSIS, 4L)}); addTool(10, "Saw", "Can also harvest Ice", new GT_Tool_Saw(), new Object[]{ToolDictNames.craftingToolSaw, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 2L)}); GregTech_API.registerTool(addTool(12, "Hammer", "Crushes Ores instead of harvesting them", new GT_Tool_HardHammer(), new Object[]{ToolDictNames.craftingToolHardHammer, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L)}), GregTech_API.sHardHammerList); - GregTech_API.registerTool(addTool(14, "Soft Hammer", "", new GT_Tool_SoftHammer(), new Object[]{ToolDictNames.craftingToolSoftHammer, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.LIMUS, 4L)}), GregTech_API.sSoftHammerList); + GregTech_API.registerTool(addTool(14, "Soft Mallet", "", new GT_Tool_SoftHammer(), new Object[]{ToolDictNames.craftingToolSoftHammer, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.LIMUS, 4L)}), GregTech_API.sSoftHammerList); GregTech_API.registerTool(addTool(WRENCH, "Wrench", "Hold Leftclick to dismantle Machines", new GT_Tool_Wrench(), new Object[]{ToolDictNames.craftingToolWrench, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L)}), GregTech_API.sWrenchList); addTool(18, "File", "", new GT_Tool_File(), new Object[]{ToolDictNames.craftingToolFile, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L)}); GregTech_API.registerTool(addTool(20, "Crowbar", "Dismounts Covers and Rotates Rails", new GT_Tool_Crowbar(), new Object[]{ToolDictNames.craftingToolCrowbar, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 2L)}), GregTech_API.sCrowbarList); diff --git a/src/main/java/gregtech/common/items/behaviors/Behaviour_Plunger_Fluid.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_Plunger_Fluid.java index a5811d3d..e4773356 100644 --- a/src/main/java/gregtech/common/items/behaviors/Behaviour_Plunger_Fluid.java +++ b/src/main/java/gregtech/common/items/behaviors/Behaviour_Plunger_Fluid.java @@ -1,8 +1,12 @@ package gregtech.common.items.behaviors; import gregtech.api.GregTech_API; +import gregtech.api.interfaces.metatileentity.IMetaTileEntity; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.items.GT_MetaBase_Item; import gregtech.api.items.GT_MetaGenerated_Tool; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicBatteryBuffer; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicTank; import gregtech.api.util.GT_LanguageManager; import gregtech.api.util.GT_Utility; import net.minecraft.entity.player.EntityPlayer; @@ -38,7 +42,18 @@ public class Behaviour_Plunger_Fluid } } } - } + + } + if (aTileEntity instanceof IGregTechTileEntity) { + IGregTechTileEntity tTileEntity = (IGregTechTileEntity) aTileEntity; + IMetaTileEntity mTileEntity = tTileEntity.getMetaTileEntity(); + if (mTileEntity instanceof GT_MetaTileEntity_BasicTank) { + GT_MetaTileEntity_BasicTank machine = (GT_MetaTileEntity_BasicTank) mTileEntity; + if(machine.mFluid!=null&&machine.mFluid.amount>0) + machine.mFluid.amount = machine.mFluid.amount - Math.min(machine.mFluid.amount, 1000); + return true; + } + } return false; } diff --git a/src/main/java/gregtech/common/items/behaviors/Behaviour_Spray_Color.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_Spray_Color.java index d7231698..748a660c 100644 --- a/src/main/java/gregtech/common/items/behaviors/Behaviour_Spray_Color.java +++ b/src/main/java/gregtech/common/items/behaviors/Behaviour_Spray_Color.java @@ -59,8 +59,7 @@ public class Behaviour_Spray_Color Items.feather.setDamage(aStack, Items.feather.getDamage(this.mUsed)); tUses = this.mUses; } - if ((GT_Utility.areStacksEqual(aStack, this.mUsed, true)) && - (colorize(aWorld, aX, aY, aZ, aSide))) { + if ((GT_Utility.areStacksEqual(aStack, this.mUsed, true)) && (colorize(aWorld, aX, aY, aZ, aSide))) { GT_Utility.sendSoundToPlayers(aWorld, (String) GregTech_API.sSoundList.get(Integer.valueOf(102)), 1.0F, 1.0F, aX, aY, aZ); if (!aPlayer.capabilities.isCreativeMode) { tUses -= 1L; diff --git a/src/main/java/gregtech/common/render/GT_CapeRenderer.java b/src/main/java/gregtech/common/render/GT_CapeRenderer.java index 43dc43e5..50e55344 100644 --- a/src/main/java/gregtech/common/render/GT_CapeRenderer.java +++ b/src/main/java/gregtech/common/render/GT_CapeRenderer.java @@ -17,13 +17,7 @@ import java.util.Collection; public class GT_CapeRenderer extends RenderPlayer { - private final ResourceLocation[] mCapes = { new ResourceLocation("gregtech:textures/BrainTechCape.png"), - new ResourceLocation("gregtech:textures/GregTechCape.png"), - new ResourceLocation("gregtech:textures/MrBrainCape.png"), - new ResourceLocation("gregtech:textures/GregoriusCape.png"), - new ResourceLocation("gregtech:textures/DonorCape.png"), - new ResourceLocation("gregtech:textures/DevCape.png"), - new ResourceLocation("gregtech:textures/TecCape.png")}; + private final ResourceLocation[] mCapes = {new ResourceLocation("gregtech:textures/BrainTechCape.png"), new ResourceLocation("gregtech:textures/GregTechCape.png"), new ResourceLocation("gregtech:textures/MrBrainCape.png"), new ResourceLocation("gregtech:textures/GregoriusCape.png")}; private final Collection mCapeList; public GT_CapeRenderer(Collection aCapeList) { @@ -58,15 +52,6 @@ public class GT_CapeRenderer if (aPlayer.getDisplayName().equalsIgnoreCase("GregoriusT")) { tResource = this.mCapes[3]; } - if (this.mCapeList.contains(aPlayer.getDisplayName().toLowerCase() + ":capedonor")) { - tResource = this.mCapes[4]; - } - if (this.mCapeList.contains(aPlayer.getDisplayName().toLowerCase() + ":capedev")) { - tResource = this.mCapes[5]; - } - if (this.mCapeList.contains(aPlayer.getDisplayName().toLowerCase() + ":capetec")) { - tResource = this.mCapes[6]; - } if ((tResource != null) && (!aPlayer.getHideCape())) { bindTexture(tResource); GL11.glPushMatrix(); diff --git a/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_TypeFilter.java b/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_TypeFilter.java index 4ed60318..2cd775c7 100644 --- a/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_TypeFilter.java +++ b/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_TypeFilter.java @@ -63,7 +63,6 @@ public class GT_MetaTileEntity_TypeFilter i = OrePrefixes.values().length - 1; } } while (OrePrefixes.values()[i].mPrefixedItems.isEmpty()); - } else { do { i++; diff --git a/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler.java b/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler.java index f9dd1ccf..04be6888 100644 --- a/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler.java +++ b/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler.java @@ -228,7 +228,7 @@ public abstract class GT_MetaTileEntity_Boiler aBaseMetaTileEntity.addStackToSlot(3, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Ash, 1L)); } } else if ((GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.gem.get(Materials.Lignite))) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.dust.get(Materials.Lignite))) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.dustImpure.get(Materials.Lignite))) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.crushed.get(Materials.Lignite)))) { - this.mProcessingEnergy += 40; + this.mProcessingEnergy += 120; aBaseMetaTileEntity.decrStackSize(2, 1); if (aBaseMetaTileEntity.getRandomNumber(8) == 0) { aBaseMetaTileEntity.addStackToSlot(3, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 1L)); @@ -244,11 +244,11 @@ public abstract class GT_MetaTileEntity_Boiler } public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - return (aIndex == 1) || (aIndex == 3); + return false; } public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - return aIndex == 2; + return false; } public void doSound(byte aIndex, double aX, double aY, double aZ) { diff --git a/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Bronze.java b/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Bronze.java index 1a68147f..dfe74e34 100644 --- a/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Bronze.java +++ b/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Bronze.java @@ -127,7 +127,7 @@ public class GT_MetaTileEntity_Boiler_Bronze aBaseMetaTileEntity.addStackToSlot(3, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Ash, 1L)); } } else if ((GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.gem.get(Materials.Lignite))) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.dust.get(Materials.Lignite))) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.dustImpure.get(Materials.Lignite))) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.crushed.get(Materials.Lignite)))) { - this.mProcessingEnergy += 40; + this.mProcessingEnergy += 120; aBaseMetaTileEntity.decrStackSize(2, 1); if (aBaseMetaTileEntity.getRandomNumber(8) == 0) { aBaseMetaTileEntity.addStackToSlot(3, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 1L)); diff --git a/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Solar.java b/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Solar.java index 0a35e849..ced9fb6b 100644 --- a/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Solar.java +++ b/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Solar.java @@ -10,6 +10,7 @@ import gregtech.api.util.GT_ModHandler; import gregtech.common.gui.GT_Container_Boiler; import gregtech.common.gui.GT_GUIContainer_Boiler; import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.IFluidHandler; @@ -58,6 +59,20 @@ public class GT_MetaTileEntity_Boiler_Solar public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { return new GT_MetaTileEntity_Boiler_Solar(this.mName, this.mTier, this.mDescription, this.mTextures); } + + private int mRunTime = 0; + + @Override + public void saveNBTData(NBTTagCompound aNBT) { + super.saveNBTData(aNBT); + aNBT.setInteger("mRunTime", this.mRunTime); + } + + @Override + public void loadNBTData(NBTTagCompound aNBT) { + super.loadNBTData(aNBT); + this.mRunTime = aNBT.getInteger("mRunTime"); + } public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { if ((aBaseMetaTileEntity.isServerSide()) && (aTick > 20L)) { @@ -92,12 +107,17 @@ public class GT_MetaTileEntity_Boiler_Solar return; } this.mFluid.amount -= 1; + mRunTime += 1; + int tOutput = 150; + if(mRunTime > 10000){ + tOutput = Math.max(50, 150 - ((mRunTime-10000)/100)); + } if (this.mSteam == null) { - this.mSteam = GT_ModHandler.getSteam(150L); + this.mSteam = GT_ModHandler.getSteam(tOutput); } else if (GT_ModHandler.isSteam(this.mSteam)) { - this.mSteam.amount += 150; + this.mSteam.amount += tOutput; } else { - this.mSteam = GT_ModHandler.getSteam(150L); + this.mSteam = GT_ModHandler.getSteam(tOutput); } } } else { diff --git a/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Steel.java b/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Steel.java index bf9c67e6..e9751a2d 100644 --- a/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Steel.java +++ b/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Steel.java @@ -132,7 +132,7 @@ public class GT_MetaTileEntity_Boiler_Steel aBaseMetaTileEntity.addStackToSlot(3, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Ash, 1L)); } } else if ((GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.gem.get(Materials.Lignite))) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.dust.get(Materials.Lignite))) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.dustImpure.get(Materials.Lignite))) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[2], OrePrefixes.crushed.get(Materials.Lignite)))) { - this.mProcessingEnergy += 40; + this.mProcessingEnergy += 120; aBaseMetaTileEntity.decrStackSize(2, 1); if (aBaseMetaTileEntity.getRandomNumber(8) == 0) { aBaseMetaTileEntity.addStackToSlot(3, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 1L)); diff --git a/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_DieselGenerator.java b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_DieselGenerator.java index 91f5ed38..14c4e58c 100644 --- a/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_DieselGenerator.java +++ b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_DieselGenerator.java @@ -46,7 +46,7 @@ public class GT_MetaTileEntity_DieselGenerator } public void onConfigLoad() { - this.mEfficiency = GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "DieselGenerator.efficiency.tier." + this.mTier, (100 - this.mTier * 10)); + this.mEfficiency = GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "DieselGenerator.efficiency.tier." + this.mTier, (100 - this.mTier * 5)); } public int getEfficiency() { diff --git a/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_GasTurbine.java b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_GasTurbine.java index 44d6ceb1..3c311e5e 100644 --- a/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_GasTurbine.java +++ b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_GasTurbine.java @@ -42,7 +42,7 @@ public class GT_MetaTileEntity_GasTurbine } public void onConfigLoad() { - this.mEfficiency = GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "GasTurbine.efficiency.tier." + this.mTier, (100 - this.mTier * 10)); + this.mEfficiency = GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "GasTurbine.efficiency.tier." + this.mTier, (100 - this.mTier * 5)); } diff --git a/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_MagicEnergyConverter.java b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_MagicEnergyConverter.java index 602c7fc8..5007c9a9 100644 --- a/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_MagicEnergyConverter.java +++ b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_MagicEnergyConverter.java @@ -42,7 +42,7 @@ public class GT_MetaTileEntity_MagicEnergyConverter } public void onConfigLoad() { - this.mEfficiency = GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "MagicEnergyConverter.efficiency.tier." + this.mTier, 100 - this.mTier * 10); + this.mEfficiency = GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "MagicEnergyConverter.efficiency.tier." + this.mTier, 100 - this.mTier * 5); } diff --git a/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_MagicalEnergyAbsorber.java b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_MagicalEnergyAbsorber.java index f638beba..a7438235 100644 --- a/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_MagicalEnergyAbsorber.java +++ b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_MagicalEnergyAbsorber.java @@ -70,7 +70,8 @@ public class GT_MetaTileEntity_MagicalEnergyAbsorber extends GT_MetaTileEntity_B } public void onConfigLoad() { - this.mEfficiency = GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "MagicEnergyAbsorber.efficiency.tier." + this.mTier, 100 - this.mTier * 10); + this.mEfficiency = GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "MagicEnergyAbsorber.efficiency.tier." + this.mTier, + 100 - this.mTier * 10); this.sAllowMultipleEggs = GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "MagicEnergyAbsorber.AllowMultipleEggs", false); this.sEnergyPerEnderCrystal = GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "MagicEnergyAbsorber.EnergyPerTick.EnderCrystal", 32); this.sEnergyFromVis = (GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "MagicEnergyAbsorber.EnergyPerVisDivisor", 2500) * 10); @@ -80,12 +81,14 @@ public class GT_MetaTileEntity_MagicalEnergyAbsorber extends GT_MetaTileEntity_B @Override public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { - if (aBaseMetaTileEntity.isServerSide() && aBaseMetaTileEntity.isAllowedToWork() && aBaseMetaTileEntity.getUniversalEnergyStored() < maxEUOutput() + aBaseMetaTileEntity.getEUCapacity()) { - //Dragon Egg + if (aBaseMetaTileEntity.isServerSide() && aBaseMetaTileEntity.isAllowedToWork() + && aBaseMetaTileEntity.getUniversalEnergyStored() < maxEUOutput() + aBaseMetaTileEntity.getEUCapacity()) { + // Dragon Egg if (hasEgg() && aTick % 10 == 0) { - getBaseMetaTileEntity().increaseStoredEnergyUnits(sDragonEggEnergyPerTick * getEfficiency() * 10, false); + getBaseMetaTileEntity().increaseStoredEnergyUnits(sDragonEggEnergyPerTick * getEfficiency() / 10, false); if ((mActiveSiphon != this) && (!sAllowMultipleEggs)) { - if ((mActiveSiphon == null) || (mActiveSiphon.getBaseMetaTileEntity() == null) || (mActiveSiphon.getBaseMetaTileEntity().isInvalidTileEntity()) || (!mActiveSiphon.hasEgg())) { + if ((mActiveSiphon == null) || (mActiveSiphon.getBaseMetaTileEntity() == null) + || (mActiveSiphon.getBaseMetaTileEntity().isInvalidTileEntity()) || (!mActiveSiphon.hasEgg())) { mActiveSiphon = this; } else { Block tEgg = mActiveSiphon.getBaseMetaTileEntity().getBlockOffset(0, 1, 0); @@ -94,11 +97,10 @@ public class GT_MetaTileEntity_MagicalEnergyAbsorber extends GT_MetaTileEntity_B } else { mActiveSiphon = this; } - } } } - //Energyzed node + // Energyzed node if (isThaumcraftLoaded) { try { World tmpWorld = this.getBaseMetaTileEntity().getWorld(); @@ -111,24 +113,34 @@ public class GT_MetaTileEntity_MagicalEnergyAbsorber extends GT_MetaTileEntity_B int destruction = VisNetHandler.drainVis(tmpWorld, tmpX, tmpY, tmpZ, Aspect.ENTROPY, 1000); int order = VisNetHandler.drainVis(tmpWorld, tmpX, tmpY, tmpZ, Aspect.ORDER, 1000); int water = VisNetHandler.drainVis(tmpWorld, tmpX, tmpY, tmpZ, Aspect.WATER, 1000); - int visEU = (int) (Math.pow(fire, 4) + Math.pow(earth, 4) + Math.pow(air, 4) + Math.pow(destruction, 4) + Math.pow(order, 4) + Math.pow(water, 4)); + int visEU = (int) (Math.pow(fire, 4) + Math.pow(earth, 4) + Math.pow(air, 4) + Math.pow(destruction, 4) + Math.pow(order, 4) + Math.pow( + water, 4)); int mult = 85; - if (fire > 4) mult += 15; - if (earth > 4) mult += 15; - if (air > 4) mult += 15; - if (destruction > 4) mult += 15; - if (order > 4) mult += 15; - if (water > 4) mult += 15; + if (fire > 4) + mult += 15; + if (earth > 4) + mult += 15; + if (air > 4) + mult += 15; + if (destruction > 4) + mult += 15; + if (order > 4) + mult += 15; + if (water > 4) + mult += 15; visEU = (visEU * mult) / 100; getBaseMetaTileEntity().increaseStoredEnergyUnits(Math.min(maxEUOutput(), visEU * getEfficiency() / this.sEnergyFromVis), false); } catch (Throwable e) { } } - //EnderCrystal - + // EnderCrystal if (sEnergyPerEnderCrystal > 0) { if (this.mTargetedCrystal == null) { - ArrayList tList = (ArrayList) getBaseMetaTileEntity().getWorld().getEntitiesWithinAABB(EntityEnderCrystal.class, AxisAlignedBB.getBoundingBox(getBaseMetaTileEntity().getXCoord() - 64, getBaseMetaTileEntity().getYCoord() - 64, getBaseMetaTileEntity().getZCoord() - 64, getBaseMetaTileEntity().getXCoord() + 64, getBaseMetaTileEntity().getYCoord() + 64, getBaseMetaTileEntity().getZCoord() + 64)); + ArrayList tList = (ArrayList) getBaseMetaTileEntity().getWorld().getEntitiesWithinAABB( + EntityEnderCrystal.class, + AxisAlignedBB.getBoundingBox(getBaseMetaTileEntity().getXCoord() - 64, getBaseMetaTileEntity().getYCoord() - 64, + getBaseMetaTileEntity().getZCoord() - 64, getBaseMetaTileEntity().getXCoord() + 64, + getBaseMetaTileEntity().getYCoord() + 64, getBaseMetaTileEntity().getZCoord() + 64)); if ((tList != null) && (!tList.isEmpty())) { tList.removeAll(sUsedDragonCrystalList); if (tList.size() > 0) { @@ -146,14 +158,14 @@ public class GT_MetaTileEntity_MagicalEnergyAbsorber extends GT_MetaTileEntity_B } } - //Absorb entchantments + // Absorb entchantments and TC essentia try { if ((this.mInventory[0] != null) && (this.mInventory[1] == null)) { if (isThaumcraftLoaded && this.mInventory[0].getItem() instanceof IEssentiaContainerItem) { AspectList tAspect = ((IEssentiaContainerItem) this.mInventory[0].getItem()).getAspects(this.mInventory[0]); TC_Aspects tValue = TC_Aspects.valueOf(tAspect.getAspects()[0].getTag().toUpperCase()); int tEU = (tValue.mValue * tAspect.getAmount((Aspect) tValue.mAspect) * 100); - getBaseMetaTileEntity().increaseStoredEnergyUnits(tEU, true); + getBaseMetaTileEntity().increaseStoredEnergyUnits(tEU * getEfficiency() / 100, true); ItemStack tStack = this.mInventory[0].copy(); tStack.setTagCompound(null); tStack.setItemDamage(0); @@ -174,7 +186,8 @@ public class GT_MetaTileEntity_MagicalEnergyAbsorber extends GT_MetaTileEntity_B if ((tID > -1) && (tID < Enchantment.enchantmentsList.length)) { Enchantment tEnchantment = Enchantment.enchantmentsList[tID]; if (tEnchantment != null) { - getBaseMetaTileEntity().increaseStoredEnergyUnits(1000000 * tLevel / (tEnchantment.getMaxLevel() * tEnchantment.getWeight()), true); + getBaseMetaTileEntity().increaseStoredEnergyUnits( + 1000000 * getEfficiency() * tLevel / (tEnchantment.getMaxLevel() * tEnchantment.getWeight() * 100), true); } } } @@ -186,10 +199,11 @@ public class GT_MetaTileEntity_MagicalEnergyAbsorber extends GT_MetaTileEntity_B for (int i = 0; i < tEnchantments.tagCount(); i++) { short tID = ((NBTTagCompound) tEnchantments.getCompoundTagAt(i)).getShort("id"); short tLevel = ((NBTTagCompound) tEnchantments.getCompoundTagAt(i)).getShort("lvl"); - if ((tID > -1) && (tID < Enchantment.enchantmentsBookList.length)) { - Enchantment tEnchantment = Enchantment.enchantmentsBookList[tID]; + if ((tID > -1) && (tID < Enchantment.enchantmentsList.length)) { + Enchantment tEnchantment = Enchantment.enchantmentsList[tID]; if (tEnchantment != null) { - getBaseMetaTileEntity().increaseStoredEnergyUnits(1000000 * tLevel / (tEnchantment.getMaxLevel() * tEnchantment.getWeight()), true); + getBaseMetaTileEntity().increaseStoredEnergyUnits( + 1000000 * tLevel / (tEnchantment.getMaxLevel() * tEnchantment.getWeight()), true); } } } @@ -219,17 +233,18 @@ public class GT_MetaTileEntity_MagicalEnergyAbsorber extends GT_MetaTileEntity_B return Blocks.dragon_egg == above || above.getUnlocalizedName().equals("tile.dragonEgg"); } + public int getEfficiency() { + return this.mEfficiency; + } + @Override public long maxEUStore() { return Math.max(getEUVar(), V[mTier] * 16000 + getMinimumStoredEU()); } - public int getEfficiency() { - return this.mEfficiency; - } - public ITexture[] getFront(byte aColor) { - return new ITexture[]{super.getFront(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_MAGIC), Textures.BlockIcons.OVERLAYS_ENERGY_OUT[this.mTier]}; + return new ITexture[]{super.getFront(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_MAGIC), + Textures.BlockIcons.OVERLAYS_ENERGY_OUT[this.mTier]}; } public ITexture[] getBack(byte aColor) { @@ -249,7 +264,8 @@ public class GT_MetaTileEntity_MagicalEnergyAbsorber extends GT_MetaTileEntity_B } public ITexture[] getFrontActive(byte aColor) { - return new ITexture[]{super.getFrontActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_MAGIC_ACTIVE), Textures.BlockIcons.OVERLAYS_ENERGY_OUT[this.mTier]}; + return new ITexture[]{super.getFrontActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_MAGIC_ACTIVE), + Textures.BlockIcons.OVERLAYS_ENERGY_OUT[this.mTier]}; } public ITexture[] getBackActive(byte aColor) { diff --git a/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_SteamTurbine.java b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_SteamTurbine.java index f9d1e22b..870d61d5 100644 --- a/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_SteamTurbine.java +++ b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_SteamTurbine.java @@ -12,8 +12,7 @@ import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_Recipe; import net.minecraftforge.fluids.FluidStack; -public class GT_MetaTileEntity_SteamTurbine - extends GT_MetaTileEntity_BasicGenerator { +public class GT_MetaTileEntity_SteamTurbine extends GT_MetaTileEntity_BasicGenerator { public int mEfficiency; @@ -39,12 +38,17 @@ public class GT_MetaTileEntity_SteamTurbine return null; } + @Override + public String[] getDescription() { + return new String[]{mDescription, "Fuel Efficiency: " + (600 / getEfficiency()) + "%"}; + } + public int getCapacity() { return 24000 * this.mTier; } public void onConfigLoad() { - this.mEfficiency = GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "SteamTurbine.efficiency.tier." + this.mTier, (200 / consumedFluidPerOperation(GT_ModHandler.getSteam(1L)))); + this.mEfficiency = GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "SteamTurbine.efficiency.tier." + this.mTier, 6 + this.mTier); } public int getEfficiency() { @@ -52,15 +56,16 @@ public class GT_MetaTileEntity_SteamTurbine } public int getFuelValue(FluidStack aLiquid) { - return GT_ModHandler.isSteam(aLiquid) ? 1 : 0; + return GT_ModHandler.isSteam(aLiquid) ? 3 : 0; } public int consumedFluidPerOperation(FluidStack aLiquid) { - return 2 + this.mTier; + return this.mEfficiency; } public ITexture[] getFront(byte aColor) { - return new ITexture[]{super.getFront(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.STEAM_TURBINE_FRONT), Textures.BlockIcons.OVERLAYS_ENERGY_OUT[this.mTier]}; + return new ITexture[]{super.getFront(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.STEAM_TURBINE_FRONT), + Textures.BlockIcons.OVERLAYS_ENERGY_OUT[this.mTier]}; } public ITexture[] getBack(byte aColor) { @@ -80,7 +85,8 @@ public class GT_MetaTileEntity_SteamTurbine } public ITexture[] getFrontActive(byte aColor) { - return new ITexture[]{super.getFrontActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.STEAM_TURBINE_FRONT_ACTIVE), Textures.BlockIcons.OVERLAYS_ENERGY_OUT[this.mTier]}; + return new ITexture[]{super.getFrontActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.STEAM_TURBINE_FRONT_ACTIVE), + Textures.BlockIcons.OVERLAYS_ENERGY_OUT[this.mTier]}; } public ITexture[] getBackActive(byte aColor) { diff --git a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Disassembler.java b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Disassembler.java index 137ebacf..315207d6 100644 --- a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Disassembler.java +++ b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Disassembler.java @@ -30,7 +30,6 @@ public class GT_MetaTileEntity_Disassembler if (tNBT != null) { tNBT = tNBT.getCompoundTag("GT.CraftingComponents"); if (tNBT != null) { - getInputAt(0).stackSize -= 1; this.mEUt = (16 * (1 << this.mTier - 1) * (1 << this.mTier - 1)); this.mMaxProgresstime = 80; for (int i = 0; i < this.mOutputItems.length; i++) { @@ -41,6 +40,10 @@ public class GT_MetaTileEntity_Disassembler } } } + if(mMaxProgresstime==80){ + return 0; + } + getInputAt(0).stackSize -= 1; return 2; } } diff --git a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Massfabricator.java b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Massfabricator.java index 948ab8ee..da08f325 100644 --- a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Massfabricator.java +++ b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Massfabricator.java @@ -12,6 +12,8 @@ import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_Config; import net.minecraftforge.fluids.FluidStack; +import static gregtech.api.enums.GT_Values.V; + public class GT_MetaTileEntity_Massfabricator extends GT_MetaTileEntity_BasicMachine { public static int sUUAperUUM = 1; @@ -40,11 +42,21 @@ public class GT_MetaTileEntity_Massfabricator Materials.UUAmplifier.mChemicalFormula = ("Mass Fabricator Eff/Speed Bonus: x" + sUUASpeedBonus); } + @Override + public long maxAmperesIn() { + return 10; + } + + @Override + public long maxEUStore() { + return V[mTier] * 512; + } + public int checkRecipe() { FluidStack tFluid = getDrainableStack(); if ((tFluid == null) || (tFluid.amount < getCapacity())) { this.mOutputFluid = Materials.UUMatter.getFluid(1L); - this.mEUt = ((int) gregtech.api.enums.GT_Values.V[this.mTier]); + this.mEUt = (((int) gregtech.api.enums.GT_Values.V[1]) * (int)Math.pow(2, this.mTier + 2)); this.mMaxProgresstime = (sDurationMultiplier / (1 << this.mTier - 1)); if (((tFluid = getFillableStack()) != null) && (tFluid.amount >= sUUAperUUM) && (tFluid.isFluidEqual(Materials.UUAmplifier.getFluid(1L)))) { tFluid.amount -= sUUAperUUM; diff --git a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_MonsterRepellent.java b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_MonsterRepellent.java index 88434e31..2ba2cd14 100644 --- a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_MonsterRepellent.java +++ b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_MonsterRepellent.java @@ -17,7 +17,7 @@ public class GT_MetaTileEntity_MonsterRepellent extends GT_MetaTileEntity_Tiered public int mRange = 16; public GT_MetaTileEntity_MonsterRepellent(int aID, String aName, String aNameRegional, int aTier) { - super(aID, aName, aNameRegional, aTier, 0, "Reprells nasty Creatures. Range: " + (4 + (12 * aTier)) + " unpowered / " + (16 + (48 * aTier)) + " powered"); + super(aID, aName, aNameRegional, aTier, 0, "Repels nasty Creatures. Range: " + (4 + (12 * aTier)) + " unpowered / " + (16 + (48 * aTier)) + " powered"); } public GT_MetaTileEntity_MonsterRepellent(String aName, int aTier, int aInvSlotCount, String aDescription, ITexture[][][] aTextures) { diff --git a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Pump.java b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Pump.java index b1ba0101..6aabea82 100644 --- a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Pump.java +++ b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Pump.java @@ -203,7 +203,6 @@ public class GT_MetaTileEntity_Pump extends GT_MetaTileEntity_Hatch { getBaseMetaTileEntity().getWorld().setBlock(getBaseMetaTileEntity().getXCoord(), y, getBaseMetaTileEntity().getZCoord(), GT_Utility.getBlockFromStack(GT_ModHandler.getIC2Item("miningPipeTip", 1L))); getBaseMetaTileEntity().decrStackSize(0, 1); - } return y; } diff --git a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Scanner.java b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Scanner.java index 2ff6e9f0..90746e3f 100644 --- a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Scanner.java +++ b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Scanner.java @@ -134,6 +134,20 @@ public class GT_MetaTileEntity_Scanner return 2; } } + if (getSpecialSlot() == null && ItemList.Tool_DataStick.isStackEqual(aStack, false, true)) { + if (GT_Utility.ItemNBT.getBookTitle(aStack).equals("Raw Prospection Data")) { + GT_Utility.ItemNBT.setBookTitle(aStack, "Analyzed Prospection Data"); + GT_Utility.ItemNBT.convertProspectionData(aStack); + aStack.stackSize -= 1; + + this.mOutputItems[0] = GT_Utility.copyAmount(1L, new Object[]{aStack}); + this.mMaxProgresstime = (1000 / (1 << this.mTier - 1)); + this.mEUt = (32 * (1 << this.mTier - 1) * (1 << this.mTier - 1)); + return 2; + + } + } + } return 0; } diff --git a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Teleporter.java b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Teleporter.java index 0410c927..e49a1bbe 100644 --- a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Teleporter.java +++ b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Teleporter.java @@ -160,7 +160,7 @@ public class GT_MetaTileEntity_Teleporter extends GT_MetaTileEntity_BasicTank { public boolean isGivingInformation() { return true; } - + public String[] getInfoData() { return new String[]{"Coordinates:", "X: " + this.mTargetX, "Y: " + this.mTargetY, "Z: " + this.mTargetZ, "Dimension: " + this.mTargetD}; @@ -431,4 +431,4 @@ public class GT_MetaTileEntity_Teleporter extends GT_MetaTileEntity_BasicTank { public ITexture[][][] getTextureSet(ITexture[] aTextures) { return null; } -} \ No newline at end of file +} diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_AssemblyLine.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_AssemblyLine.java index 5e0d539a..e4a7d0df 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_AssemblyLine.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_AssemblyLine.java @@ -36,8 +36,7 @@ public class GT_MetaTileEntity_AssemblyLine public String[] getDescription() { return new String[]{"Assembly line", "Size: 3x(2-16)x4, variable length", - "Bottom: Steel Casing(or Maintenance or Input Hatch), +", - "Input Bus(Last Output Bus), Steel Casing", + "Bottom: Steel Casing(or Maintenance or Input Hatch), Input Bus(Last Output Bus), Steel Casing", "Middle: Reinforced Glass, Assembling Line, Reinforced Glass", "UpMiddle: Grate Casing(or Controller), Assembling Casing, Grate Casing", "Top: Steel Casing(or Energy Hatch)", @@ -228,4 +227,4 @@ public class GT_MetaTileEntity_AssemblyLine public boolean explodesOnComponentBreak(ItemStack aStack) { return false; } -} +} \ No newline at end of file diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_BronzeBlastFurnace.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_BronzeBlastFurnace.java index affc2222..5d17de69 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_BronzeBlastFurnace.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_BronzeBlastFurnace.java @@ -43,7 +43,11 @@ public class GT_MetaTileEntity_BronzeBlastFurnace } public String[] getDescription() { - return new String[]{"To get your first Steel", "Multiblock: 3x3x4 hollow with opening on top", "32 Bronze Plated Bricks required"}; + return new String[]{ + "Controller Block for the Bronze Blast Furnace", + "How to get your first Steel", + "Size(WxHxD): 3x4x3 (Hollow, with opening on top)", + "Bronze Plated Bricks for the rest (32 at least!)"}; } public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { @@ -338,4 +342,4 @@ public class GT_MetaTileEntity_BronzeBlastFurnace public byte getTileEntityBaseType() { return 0; } -} +} \ No newline at end of file diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DistillationTower.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DistillationTower.java index 5174e7d0..d1274c0c 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DistillationTower.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DistillationTower.java @@ -1,5 +1,10 @@ package gregtech.common.tileentities.machines.multi; +import java.util.ArrayList; +import java.util.Arrays; + +import org.apache.commons.lang3.ArrayUtils; + import gregtech.api.GregTech_API; import gregtech.api.enums.Textures; import gregtech.api.gui.GT_GUIContainer_MultiMachine; @@ -36,11 +41,12 @@ public class GT_MetaTileEntity_DistillationTower public String[] getDescription() { return new String[]{ "Controller Block for the Distillation Tower", - "Size: 3x3x6 (Hollow)", "Controller (front bottom)", - "1x Input Hatch (bottom)", - "5x Output Hatch (one each height level besides botton)", - "1x Output Bus (Botton)", "1x Energy Hatch (anywhere)", - "1x Maintenance Hatch (anywhere)", + "Size(WxHxD): 3x6x3 (Hollow), Controller (Front bottom)", + "1x Input Hatch (Any bottom layer casing)", + "5x Output Hatch (Any casing besides bottom layer)", + "1x Output Bus (Any bottom layer casing)", + "1x Maintenance Hatch (Any casing)", + "1x Energy Hatch (Any casing)", "Clean Stainless Steel Casings for the rest (26 at least!)"}; } @@ -69,12 +75,28 @@ public class GT_MetaTileEntity_DistillationTower public boolean checkRecipe(ItemStack aStack) { + ArrayList tFluidList = getStoredFluids(); + for (int i = 0; i < tFluidList.size() - 1; i++) { + for (int j = i + 1; j < tFluidList.size(); j++) { + if (GT_Utility.areFluidsEqual((FluidStack) tFluidList.get(i), (FluidStack) tFluidList.get(j))) { + if (((FluidStack) tFluidList.get(i)).amount >= ((FluidStack) tFluidList.get(j)).amount) { + tFluidList.remove(j--); + } else { + tFluidList.remove(i--); + break; + } + } + } + } + long tVoltage = getMaxInputVoltage(); byte tTier = (byte) Math.max(1, GT_Utility.getTier(tVoltage)); - if (this.mInputHatches.size() > 0 && this.mInputHatches.get(0) != null && this.mInputHatches.get(0).mFluid != null && this.mInputHatches.get(0).mFluid.amount > 0) { - GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sDistillationRecipes.findRecipe(getBaseMetaTileEntity(), false, gregtech.api.enums.GT_Values.V[tTier], new FluidStack[]{this.mInputHatches.get(0).mFluid}, new ItemStack[]{}); + FluidStack[] tFluids = (FluidStack[]) Arrays.copyOfRange(tFluidList.toArray(new FluidStack[tFluidList.size()]), 0, tFluidList.size()); + if (tFluids.length > 0) { + for(int i = 0;i 0; i++) { String fluidName = aFluids.get(i).getFluid().getUnlocalizedName(aFluids.get(i)); @@ -80,6 +82,7 @@ public class GT_MetaTileEntity_LargeTurbine_HPSteam extends GT_MetaTileEntity_La flow = aFluids.get(i).amount; // Get all (steam) in hatch flow = Math.min(flow, Math.min(remainingFlow, (int) (aOptFlow * 1.25f))); // try to use up to 125% of optimal flow w/o exceeding remainingFlow depleteInput(new FluidStack(aFluids.get(i), flow)); // deplete that amount + this.storedFluid = aFluids.get(i).amount; remainingFlow -= flow; // track amount we're allowed to keep depleting from hatches totalFlow += flow; // track total used if (!achievement) { @@ -109,4 +112,4 @@ public class GT_MetaTileEntity_LargeTurbine_HPSteam extends GT_MetaTileEntity_La } -} +} \ No newline at end of file diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Plasma.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Plasma.java index c72e8807..2880c609 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Plasma.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Plasma.java @@ -35,12 +35,13 @@ public class GT_MetaTileEntity_LargeTurbine_Plasma extends GT_MetaTileEntity_Lar public String[] getDescription() { return new String[]{ "Controller Block for the Large Plasma Generator", - "Size: 3x4x3 (Hollow)", "Controller (front centered)", - "1x Input Hatch (side centered)", - "1x Dynamo Hatch (back centered)", - "1x Maintenance Hatch (side centered)", + "Size(WxHxD): 3x3x4 (Hollow), Controller (Front centered)", + "1x Input Hatch (Side centered)", + "1x Maintenance Hatch (Side centered)", + "1x Muffler Hatch (Side centered)", + "1x Dynamo Hatch (Back centered)", "Tungstensteel Turbine Casings for the rest (24 at least!)", - "Needs a Turbine Item (inside controller GUI)"}; + "Needs a Turbine Item (Inside controller GUI)"}; } public int getFuelValue(FluidStack aLiquid) { @@ -90,6 +91,7 @@ public class GT_MetaTileEntity_LargeTurbine_Plasma extends GT_MetaTileEntity_Lar FluidStack firstFuelType = new FluidStack(aFluids.get(0), 0); // Identify a SINGLE type of fluid to process. Doesn't matter which one. Ignore the rest! int fuelValue = getFuelValue(firstFuelType); actualOptimalFlow = (int) ((aOptFlow + fuelValue - 1) / fuelValue); + this.realOptFlow = (aOptFlow / fuelValue); // For scanner info int remainingFlow = (int) (actualOptimalFlow * 1.25f); // Allowed to use up to 125% of optimal flow. Variable required outside of loop for multi-hatch scenarios. int flow = 0; @@ -100,6 +102,7 @@ public class GT_MetaTileEntity_LargeTurbine_Plasma extends GT_MetaTileEntity_Lar flow = aFluids.get(i).amount; // Get all (steam) in hatch flow = Math.min(flow, Math.min(remainingFlow, (int) (actualOptimalFlow * 1.25f))); // try to use up to 125% of optimal flow w/o exceeding remainingFlow depleteInput(new FluidStack(aFluids.get(i), flow)); // deplete that amount + this.storedFluid = aFluids.get(i).amount; remainingFlow -= flow; // track amount we're allowed to continue depleting from hatches totalFlow += flow; // track total input used } @@ -125,4 +128,4 @@ public class GT_MetaTileEntity_LargeTurbine_Plasma extends GT_MetaTileEntity_Lar } -} +} \ No newline at end of file diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Steam.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Steam.java index 534f53c3..6cf3897e 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Steam.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Steam.java @@ -36,12 +36,13 @@ public class GT_MetaTileEntity_LargeTurbine_Steam extends GT_MetaTileEntity_Larg public String[] getDescription() { return new String[]{ "Controller Block for the Large Steam Turbine", - "Size: 3x4x3 (Hollow)", "Controller (front centered)", - "1x Input Hatch (side centered)", "1x Output Hatch(side centered)", - "1x Dynamo Hatch (back centered)", - "1x Maintenance Hatch (side centered)", + "Size(WxHxD): 3x3x4 (Hollow), Controller (Front centered)", + "1x Input Hatch (Side centered)", + "1x Maintenance Hatch (Side centered)", + "1x Muffler Hatch (Side centered)", + "1x Dynamo Hatch (Back centered)", "Turbine Casings for the rest (24 at least!)", - "Needs a Turbine Item (inside controller GUI)"}; + "Needs a Turbine Item (Inside controller GUI)"}; } @Override @@ -82,6 +83,7 @@ public class GT_MetaTileEntity_LargeTurbine_Steam extends GT_MetaTileEntity_Larg int totalFlow = 0; // Byproducts are based on actual flow int flow = 0; int remainingFlow = (int) (aOptFlow * 1.25f); // Allowed to use up to 125% of optimal flow. Variable required outside of loop for multi-hatch scenarios. + this.realOptFlow = ((aOptFlow / 2) / 2); for (int i = 0; i < aFluids.size() && remainingFlow > 0; i++) { // loop through each hatch; extract inputs and track totals. String fluidName = aFluids.get(i).getFluid().getUnlocalizedName(aFluids.get(i)); @@ -89,6 +91,7 @@ public class GT_MetaTileEntity_LargeTurbine_Steam extends GT_MetaTileEntity_Larg flow = aFluids.get(i).amount; // Get all (steam) in hatch flow = Math.min(flow, Math.min(remainingFlow, (int) (aOptFlow * 1.25f))); // try to use up to 125% of optimal flow w/o exceeding remainingFlow depleteInput(new FluidStack(aFluids.get(i), flow)); // deplete that amount + this.storedFluid = aFluids.get(i).amount; remainingFlow -= flow; // track amount we're allowed to continue depleting from hatches totalFlow += flow; // track total input used if (!achievement) { @@ -115,4 +118,4 @@ public class GT_MetaTileEntity_LargeTurbine_Steam extends GT_MetaTileEntity_Larg return tEU; } -} +} \ No newline at end of file diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_MultiFurnace.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_MultiFurnace.java index 32ae0a67..efd69309 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_MultiFurnace.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_MultiFurnace.java @@ -34,7 +34,17 @@ public class GT_MetaTileEntity_MultiFurnace } public String[] getDescription() { - return new String[]{"Smelts up to 8-256 Items at once", "Controller Block for the Multi Smelter", "Size: 3x3x3 (Hollow)", "Controller (front middle at bottom)", "8x Coil Blocks (middle Layer, hollow)", "1x Input (one of bottom)", "1x Output (one of bottom)", "1x Energy Hatch (one of bottom)", "1x Maintenance Hatch (one of bottom)", "1x Muffler Hatch (top middle)", "Heat Proof Machine Casings for the rest"}; + return new String[]{ + "Controller Block for the Multi Smelter", + "Smelts up to 6-18 Items at once", + "Size(WxHxD): 3x3x3 (Hollow), Controller (Front middle at bottom)", + "8x Heating Coils (Middle layer, hollow)", + "1x Input Bus (One of bottom)", + "1x Output Bus (One of bottom)", + "1x Maintenance Hatch (One of bottom)", + "1x Muffler Hatch (Top middle)", + "1x Energy Hatch (One of bottom)", + "Heat Proof Machine Casings for the rest",}; } public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { @@ -66,8 +76,8 @@ public class GT_MetaTileEntity_MultiFurnace byte tTier = (byte) Math.max(1, GT_Utility.getTier(getMaxInputVoltage())); int j = 0; - this.mOutputItems = new ItemStack[8 * this.mLevel]; - for (int i = 0; (i < 256) && (j < this.mOutputItems.length); i++) { + this.mOutputItems = new ItemStack[6 * this.mLevel]; + for (int i = 0; (i < 100) && (j < this.mOutputItems.length); i++) { if (null != (this.mOutputItems[j] = GT_ModHandler.getSmeltingOutput((ItemStack) tInputList.get(i % tInputList.size()), true, null))) { j++; } @@ -76,7 +86,7 @@ public class GT_MetaTileEntity_MultiFurnace this.mEfficiency = (10000 - (getIdealStatus() - getRepairStatus()) * 1000); this.mEfficiencyIncrease = 10000; - this.mEUt = (-5 * (1 << tTier - 1) * (1 << tTier - 1) * Math.min(this.mLevel,8)); + this.mEUt = (-4 * (1 << tTier - 1) * (1 << tTier - 1) * this.mLevel); this.mMaxProgresstime = Math.max(1, 512 / (1 << tTier - 1)); } updateSlots(); @@ -85,7 +95,7 @@ public class GT_MetaTileEntity_MultiFurnace return false; } - private boolean checkMachineFunction(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { + public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { int xDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetX; int zDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetZ; @@ -98,16 +108,13 @@ public class GT_MetaTileEntity_MultiFurnace byte tUsedMeta = aBaseMetaTileEntity.getMetaIDOffset(xDir + 1, 1, zDir); switch (tUsedMeta) { case 12: - this.mLevel = 1;//8 at once + this.mLevel = 1; break; case 13: - this.mLevel = 2;//16 at once + this.mLevel = 2; break; case 14: - this.mLevel = 4;//32 at once - break; - case 15://Superconductor Coil Block Support - this.mLevel = 32;//4 stacks at once + this.mLevel = 3; break; default: return false; @@ -148,12 +155,6 @@ public class GT_MetaTileEntity_MultiFurnace return true; } - public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack){ - boolean result= this.checkMachineFunction(aBaseMetaTileEntity,aStack); - if (!result) this.mLevel=0; - return result; - } - public int getMaxEfficiency(ItemStack aStack) { return 10000; } @@ -173,10 +174,4 @@ public class GT_MetaTileEntity_MultiFurnace public boolean explodesOnComponentBreak(ItemStack aStack) { return false; } - - @Override - public String[] getInfoData() { - - return new String[]{"Parallel smelting: " + this.mLevel*8, "Progress:", (mProgresstime / 20) + " secs", (mMaxProgresstime / 20) + " secs", "Efficiency: " + (mEfficiency / 100.0F) + "%", "Problems: " + (getIdealStatus() - getRepairStatus())}; - } -} +} \ No newline at end of file diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ProcessingArray.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ProcessingArray.java index 8d46c43e..036709e0 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ProcessingArray.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ProcessingArray.java @@ -37,16 +37,16 @@ public class GT_MetaTileEntity_ProcessingArray extends GT_MetaTileEntity_MultiBl } public String[] getDescription() { - return new String[]{"Controller Block for the Processing Array", - "Size: 3x3x3 (Hollow)", - "Controller (front centered)", - "1x Input (anywhere)", - "1x Output (anywhere)", - "1x Energy Hatch (anywhere)", - "1x Maintenance Hatch (anywhere)", + return new String[]{ + "Controller Block for the Processing Array", + "Runs supplied machines as if placed in the world", + "Size(WxHxD): 3x3x3 (Hollow), Controller (Front centered)", + "1x Input Hatch/Bus (Any casing)", + "1x Output Hatch/Bus (Any casing)", + "1x Maintenance Hatch (Any casing)", + "1x Energy Hatch (Any casing)", "Robust Tungstensteel Casings for the rest (16 at least!)", - "Place up to 64 Single Block GT Machines into the GUI Inventory",// Updated String - "They will work the same way as placed directly in world"}; + "Place up to 16 Single Block GT Machines into the GUI Inventory"}; } public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { @@ -107,41 +107,28 @@ public class GT_MetaTileEntity_ProcessingArray extends GT_MetaTileEntity_MultiBl return GT_Recipe.GT_Recipe_Map.sWiremillRecipes; } else if (tmp.startsWith("arcfurnace")) { return GT_Recipe.GT_Recipe_Map.sArcFurnaceRecipes; - } else if (tmp.startsWith("plasmaarcfurnace")) {//OK - return GT_Recipe.GT_Recipe_Map.sPlasmaArcFurnaceRecipes; - } else if (tmp.startsWith("press")) {//OK - return GT_Recipe.GT_Recipe_Map.sPressRecipes; - } else if (tmp.startsWith("polarizer")) {//OK - return GT_Recipe.GT_Recipe_Map.sPolarizerRecipes; - } else if (tmp.startsWith("fluidcanner")) {//OK - return GT_Recipe.GT_Recipe_Map.sFluidCannerRecipes; - } else if (tmp.startsWith("brewer")) {//OK + } else if (tmp.startsWith("brewery")) { return GT_Recipe.GT_Recipe_Map.sBrewingRecipes; - } else if (tmp.startsWith("fluidheater")) {//OK - return GT_Recipe.GT_Recipe_Map.sFluidHeaterRecipes; - } else if (tmp.startsWith("distillery")) {//OK - return GT_Recipe.GT_Recipe_Map.sDistilleryRecipes; - } else if (tmp.startsWith("fermenter")) {//OK - return GT_Recipe.GT_Recipe_Map.sFermentingRecipes; - } else if (tmp.startsWith("fluidsolidifier")) {//OK - return GT_Recipe.GT_Recipe_Map.sFluidSolidficationRecipes; - } else if (tmp.startsWith("fluidextractor")) {//OK - return GT_Recipe.GT_Recipe_Map.sFluidExtractionRecipes; - } else if (tmp.startsWith("boxinator")) {//OK - return GT_Recipe.GT_Recipe_Map.sBoxinatorRecipes; - } else if (tmp.startsWith("unboxinator")) {//OK - return GT_Recipe.GT_Recipe_Map.sUnboxinatorRecipes; - } else if (tmp.startsWith("canner")) {//OK + } else if (tmp.startsWith("canner")) { return GT_Recipe.GT_Recipe_Map.sCannerRecipes; - } else if (tmp.startsWith("lathe")) {//OK - return GT_Recipe.GT_Recipe_Map.sLatheRecipes; - } else if (tmp.startsWith("cutter")) {//OK + } else if (tmp.startsWith("cutter")) { return GT_Recipe.GT_Recipe_Map.sCutterRecipes; - } else if (tmp.startsWith("slicer")) {//OK - return GT_Recipe.GT_Recipe_Map.sSlicerRecipes; - } else if (tmp.startsWith("amplifab")) {//OK - return GT_Recipe.GT_Recipe_Map.sAmplifiers; + } else if (tmp.startsWith("fermenter")) { + return GT_Recipe.GT_Recipe_Map.sFermentingRecipes; + } else if (tmp.startsWith("fluidextractor")) { + return GT_Recipe.GT_Recipe_Map.sFluidExtractionRecipes; + } else if (tmp.startsWith("fluidsolidifier")) { + return GT_Recipe.GT_Recipe_Map.sFluidSolidficationRecipes; + } else if (tmp.startsWith("lathe")) { + return GT_Recipe.GT_Recipe_Map.sLatheRecipes; + } else if (tmp.startsWith("boxinator")) { + return GT_Recipe.GT_Recipe_Map.sBoxinatorRecipes; + } else if (tmp.startsWith("unboxinator")) { + return GT_Recipe.GT_Recipe_Map.sUnboxinatorRecipes; + } else if (tmp.startsWith("polarizer")) { + return GT_Recipe.GT_Recipe_Map.sPolarizerRecipes; } + return null; } @@ -212,14 +199,11 @@ public class GT_MetaTileEntity_ProcessingArray extends GT_MetaTileEntity_MultiBl if (tInputList.size() > 0 || tFluids.length > 0) { GT_Recipe tRecipe = map.findRecipe(getBaseMetaTileEntity(), mLastRecipe, false, gregtech.api.enums.GT_Values.V[tTier], tFluids, tInputs); if (tRecipe != null) { - if (tRecipe.mFluidInputs != null) { - - } mLastRecipe = tRecipe; this.mEUt = 0; this.mOutputItems = null; this.mOutputFluids = null; - int machines = Math.min(64, mInventory[1].stackSize);//Upped max cap to 64 + int machines = Math.min(16, mInventory[1].stackSize); int i = 0; for (; i < machines; i++) { if (!tRecipe.isRecipeInputEqual(true, tFluids, tInputs)) { @@ -344,4 +328,4 @@ public class GT_MetaTileEntity_ProcessingArray extends GT_MetaTileEntity_MultiBl public boolean explodesOnComponentBreak(ItemStack aStack) { return false; } -} +} \ No newline at end of file diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_VacuumFreezer.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_VacuumFreezer.java index f5cfd161..6bad3005 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_VacuumFreezer.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_VacuumFreezer.java @@ -31,7 +31,15 @@ public class GT_MetaTileEntity_VacuumFreezer } public String[] getDescription() { - return new String[]{"Controller Block for the Vacuum Freezer", "Size: 3x3x3 (Hollow)", "Controller (front centered)", "1x Input (anywhere)", "1x Output (anywhere)", "1x Energy Hatch (anywhere)", "1x Maintenance Hatch (anywhere)", "Frost Proof Casings for the rest (16 at least!)"}; + return new String[]{ + "Controller Block for the Vacuum Freezer", + "Super cools hot ingots and cells", + "Size(WxHxD): 3x3x3 (Hollow), Controller (Front centered)", + "1x Input Bus (Any casing)", + "1x Output Bus (Any casing)", + "1x Maintenance Hatch (Any casing)", + "1x Energy Hatch (Any casing)", + "Frost Proof Casings for the rest (16 at least!)"}; } public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { @@ -139,4 +147,4 @@ public class GT_MetaTileEntity_VacuumFreezer public boolean explodesOnComponentBreak(ItemStack aStack) { return false; } -} +} \ No newline at end of file diff --git a/src/main/java/gregtech/common/tileentities/storage/GT_MetaTileEntity_QuantumChest.java b/src/main/java/gregtech/common/tileentities/storage/GT_MetaTileEntity_QuantumChest.java index a920f550..a5a0a11a 100644 --- a/src/main/java/gregtech/common/tileentities/storage/GT_MetaTileEntity_QuantumChest.java +++ b/src/main/java/gregtech/common/tileentities/storage/GT_MetaTileEntity_QuantumChest.java @@ -109,6 +109,9 @@ public class GT_MetaTileEntity_QuantumChest extends GT_MetaTileEntity_TieredMach public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTimer) { if (getBaseMetaTileEntity().isServerSide() && getBaseMetaTileEntity().isAllowedToWork()) { +// if(mInventory[0]!=null)System.out.println("input: "+mInventory[0].stackSize); +// System.out.println("store: "+mItemCount); +// if(mInventory[0]!=null)System.out.println("output: "+mInventory[2].stackSize); if ((getItemCount() <= 0)) { this.mItemStack = null; this.mItemCount = 0; diff --git a/src/main/java/gregtech/common/tools/GT_Tool.java b/src/main/java/gregtech/common/tools/GT_Tool.java index bb4e8f96..8ce02c2d 100644 --- a/src/main/java/gregtech/common/tools/GT_Tool.java +++ b/src/main/java/gregtech/common/tools/GT_Tool.java @@ -84,6 +84,14 @@ public abstract class GT_Tool public boolean isGrafter() { return false; } + + public boolean isChainsaw(){ + return false; + } + + public boolean isWrench() { + return false; + } public boolean isWeapon() { return false; diff --git a/src/main/java/gregtech/common/tools/GT_Tool_Chainsaw_LV.java b/src/main/java/gregtech/common/tools/GT_Tool_Chainsaw_LV.java index f140daa5..ca118b6d 100644 --- a/src/main/java/gregtech/common/tools/GT_Tool_Chainsaw_LV.java +++ b/src/main/java/gregtech/common/tools/GT_Tool_Chainsaw_LV.java @@ -1,16 +1,27 @@ package gregtech.common.tools; +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + import gregtech.GT_Mod; import gregtech.api.GregTech_API; +import gregtech.api.enums.OrePrefixes; import gregtech.api.enums.Textures; import gregtech.api.interfaces.IIconContainer; import gregtech.api.items.GT_MetaGenerated_Tool; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.util.ChatComponentText; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IChatComponent; +import net.minecraftforge.common.IShearable; +import net.minecraftforge.event.world.BlockEvent; public class GT_Tool_Chainsaw_LV extends GT_Tool_Saw { @@ -66,6 +77,10 @@ public class GT_Tool_Chainsaw_LV return false; } + public boolean isChainsaw(){ + return true; + } + public boolean isWeapon() { return true; } @@ -77,7 +92,48 @@ public class GT_Tool_Chainsaw_LV } catch (Exception e) { } } - + @Override + public int convertBlockDrops(List aDrops, ItemStack aStack, EntityPlayer aPlayer, Block aBlock, int aX, int aY, int aZ, byte aMetaData, int aFortune, boolean aSilkTouch, BlockEvent.HarvestDropsEvent aEvent) { + int rAmount = 0; + if ((aBlock.getMaterial() == Material.leaves) && ((aBlock instanceof IShearable))) { + aPlayer.worldObj.setBlock(aX, aY, aZ, aBlock, aMetaData, 0); + if (((IShearable) aBlock).isShearable(aStack, aPlayer.worldObj, aX, aY, aZ)) { + ArrayList tDrops = ((IShearable) aBlock).onSheared(aStack, aPlayer.worldObj, aX, aY, aZ, aFortune); + aDrops.clear(); +// aDrops.addAll(tDrops); +// aEvent.dropChance = 1.0F; +// for (ItemStack stack : tDrops) +// { +// Random itemRand = new Random(); +// float f = 0.7F; +// double d = itemRand.nextFloat() * f + (1.0F - f) * 0.5D; +// double d1 = itemRand.nextFloat() * f + (1.0F - f) * 0.5D; +// double d2 = itemRand.nextFloat() * f + (1.0F - f) * 0.5D; +// EntityItem entityitem = new EntityItem(aPlayer.worldObj, aX + d, aY + d1, aZ + d2, stack); +// entityitem.delayBeforeCanPickup = 10; +// aPlayer.worldObj.spawnEntityInWorld(entityitem); +// } +// aPlayer.addStat(net.minecraft.stats.StatList.mineBlockStatArray[Block.getIdFromBlock(aBlock)], 1); + } + aPlayer.worldObj.setBlock(aX, aY, aZ, Blocks.air, 0, 0); + } else + if (((aBlock.getMaterial() == Material.ice) || (aBlock.getMaterial() == Material.packedIce)) && (aDrops.isEmpty())) { + aDrops.add(new ItemStack(aBlock, 1, aMetaData)); + aPlayer.worldObj.setBlockToAir(aX, aY, aZ); + aEvent.dropChance = 1.0F; + return 1; + } + if ((GregTech_API.sTimber) && (!aPlayer.isSneaking()) && (OrePrefixes.log.contains(new ItemStack(aBlock, 1, aMetaData)))) { + int tY = aY + 1; + for (int tH = aPlayer.worldObj.getHeight(); tY < tH; tY++) { + if ((aPlayer.worldObj.getBlock(aX, tY, aZ) != aBlock) || (!aPlayer.worldObj.func_147480_a(aX, tY, aZ, true))) { + break; + } + rAmount++; + } + } + return rAmount; + } public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) { return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.toolHeadChainsaw.mTextureIndex] : Textures.ItemIcons.POWER_UNIT_LV; diff --git a/src/main/java/gregtech/common/tools/GT_Tool_Sense.java b/src/main/java/gregtech/common/tools/GT_Tool_Sense.java index 4ab27a6d..369c558a 100644 --- a/src/main/java/gregtech/common/tools/GT_Tool_Sense.java +++ b/src/main/java/gregtech/common/tools/GT_Tool_Sense.java @@ -23,6 +23,11 @@ public class GT_Tool_Sense public float getBaseDamage() { return 3.0F; } + + public float getMaxDurabilityMultiplier() { + return 4.0F; + } + public boolean isMinableBlock(Block aBlock, byte aMetaData) { String tTool = aBlock.getHarvestTool(aMetaData); @@ -33,9 +38,9 @@ public class GT_Tool_Sense int rConversions = 0; if ((this.sIsHarvestingRightNow.get() == null) && ((aPlayer instanceof EntityPlayerMP))) { this.sIsHarvestingRightNow.set(this); - for (int i = -1; i < 2; i++) { - for (int j = -1; j < 2; j++) { - for (int k = -1; k < 2; k++) { + for (int i = -2; i < 3; i++) { + for (int j = -2; j < 3; j++) { + for (int k = -2; k < 3; k++) { if (((i != 0) || (j != 0) || (k != 0)) && (aStack.getItem().getDigSpeed(aStack, aPlayer.worldObj.getBlock(aX + i, aY + j, aZ + k), aPlayer.worldObj.getBlockMetadata(aX + i, aY + j, aZ + k)) > 0.0F) && (((EntityPlayerMP) aPlayer).theItemInWorldManager.tryHarvestBlock(aX + i, aY + j, aZ + k))) { rConversions++; } diff --git a/src/main/java/gregtech/common/tools/GT_Tool_SoftHammer.java b/src/main/java/gregtech/common/tools/GT_Tool_SoftHammer.java index 7c2c2274..0b77a45e 100644 --- a/src/main/java/gregtech/common/tools/GT_Tool_SoftHammer.java +++ b/src/main/java/gregtech/common/tools/GT_Tool_SoftHammer.java @@ -92,7 +92,7 @@ public class GT_Tool_SoftHammer } public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) { - return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.toolHeadHammer.mTextureIndex] : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.stick.mTextureIndex]; + return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.toolHeadMallet.mTextureIndex] : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.handleMallet.mTextureIndex]; } public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) { diff --git a/src/main/java/gregtech/common/tools/GT_Tool_Turbine_Small.java b/src/main/java/gregtech/common/tools/GT_Tool_Turbine_Small.java index 58bd6b2d..d9517525 100644 --- a/src/main/java/gregtech/common/tools/GT_Tool_Turbine_Small.java +++ b/src/main/java/gregtech/common/tools/GT_Tool_Turbine_Small.java @@ -23,5 +23,4 @@ public class GT_Tool_Turbine_Small extends GT_Tool_Turbine { public IIconContainer getTurbineIcon() { return Textures.ItemIcons.TURBINE_SMALL; } - } diff --git a/src/main/java/gregtech/common/tools/GT_Tool_Wrench.java b/src/main/java/gregtech/common/tools/GT_Tool_Wrench.java index f7ce879a..a97a5bd1 100644 --- a/src/main/java/gregtech/common/tools/GT_Tool_Wrench.java +++ b/src/main/java/gregtech/common/tools/GT_Tool_Wrench.java @@ -90,6 +90,10 @@ public class GT_Tool_Wrench return false; } + public boolean isWrench() { + return true; + } + public boolean isMinableBlock(Block aBlock, byte aMetaData) { String tTool = aBlock.getHarvestTool(aMetaData); return ((tTool != null) && (tTool.equals("wrench"))) || (aBlock.getMaterial() == Material.piston) || (aBlock == Blocks.hopper) || (aBlock == Blocks.dispenser) || (aBlock == Blocks.dropper); @@ -114,4 +118,14 @@ public class GT_Tool_Wrench public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) { return new ChatComponentText(EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE + " threw a Monkey Wrench into the Plans of " + EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE); } -} \ No newline at end of file +} + + + +/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar + + * Qualified Name: gregtech.common.tools.GT_Tool_Wrench + + * JD-Core Version: 0.7.0.1 + + */ \ No newline at end of file diff --git a/src/main/java/gregtech/loaders/load/GT_FuelLoader.java b/src/main/java/gregtech/loaders/load/GT_FuelLoader.java index 19245cda..27ebd138 100644 --- a/src/main/java/gregtech/loaders/load/GT_FuelLoader.java +++ b/src/main/java/gregtech/loaders/load/GT_FuelLoader.java @@ -1,6 +1,8 @@ package gregtech.loaders.load; +import gregtech.GT_Mod; import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.util.GT_Log; @@ -15,6 +17,9 @@ public class GT_FuelLoader implements Runnable { public void run() { GT_Log.out.println("GT_Mod: Initializing various Fuels."); + ItemList.sNitricAcid = GT_Mod.gregtechproxy.addFluid("nitricacid", "Nitric acid ", null, 1, 295); + ItemList.sBlueVitriol = GT_Mod.gregtechproxy.addFluid("solution.bluevitriol", "Blue Vitriol water solution", null, 1, 295); + ItemList.sNickelSulfate = GT_Mod.gregtechproxy.addFluid("solution.nickelsulfate", "Nickel sulfate water solution", null, 1, 295); new GT_Recipe(new ItemStack(Items.lava_bucket), new ItemStack(Blocks.obsidian), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Copper, 1L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Tin, 1L), GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Electrum, 1L), 30, 2); GT_Recipe.GT_Recipe_Map.sSmallNaquadahReactorFuels.addRecipe(true, new ItemStack[]{GT_OreDictUnificator.get(OrePrefixes.bolt, Materials.NaquadahEnriched, 1L)}, new ItemStack[]{GT_OreDictUnificator.get(OrePrefixes.bolt, Materials.Naquadah, 1L)}, null, null, null, 0, 0, 25000); diff --git a/src/main/java/gregtech/loaders/load/GT_ItemIterator.java b/src/main/java/gregtech/loaders/load/GT_ItemIterator.java index de2e0737..651b8e86 100644 --- a/src/main/java/gregtech/loaders/load/GT_ItemIterator.java +++ b/src/main/java/gregtech/loaders/load/GT_ItemIterator.java @@ -196,7 +196,7 @@ public class GT_ItemIterator GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Basalt, new ItemStack(tItem, 1, 5)); GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Basalt, new ItemStack(tItem, 1, 6)); } - if ((tName.equals("tile.sedimentaryStone")) || ((tName.equals("tile.igneousStone")) || (tName.equals("tile.igneousStoneBrick")) || (tName.equals("tile.igneousCobblestone")))) { + if (/**(tName.equals("tile.sedimentaryStone")) ||**/ ((tName.equals("tile.igneousStone")) || (tName.equals("tile.igneousStoneBrick")) || (tName.equals("tile.igneousCobblestone")))) { GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteRed, new ItemStack(tItem, 1, 0)); GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteBlack, new ItemStack(tItem, 1, 1)); GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Rhyolite, new ItemStack(tItem, 1, 2)); @@ -237,6 +237,7 @@ public class GT_ItemIterator if (tName.equals("tile.blockCosmeticSolid")) { GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Obsidian, new ItemStack(tItem, 1, 0)); GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Obsidian, new ItemStack(tItem, 1, 1)); + GT_OreDictUnificator.registerOre(OrePrefixes.block, Materials.Thaumium, new ItemStack(tItem, 1, 4)); } if (tName.equals("tile.enderchest")) { GT_OreDictUnificator.registerOre(OreDictNames.enderChest, new ItemStack(tItem, 1, 32767)); diff --git a/src/main/java/gregtech/loaders/misc/GT_Achievements.java b/src/main/java/gregtech/loaders/misc/GT_Achievements.java index 4328daa3..87e18a98 100644 --- a/src/main/java/gregtech/loaders/misc/GT_Achievements.java +++ b/src/main/java/gregtech/loaders/misc/GT_Achievements.java @@ -48,24 +48,25 @@ public class GT_Achievements { for (int i = 0; i < oreList.size(); i++) { if (GT_Values.D1 && this.achievementList.get(oreList.get(i).name()) == null) { GT_Log.out.println("achievement." + oreList.get(i).name() + "=Find " + oreList.get(i).name() + " Ore"); + StringBuilder dimensions = new StringBuilder(); - boolean isFirst = true; - if(oreStats.get(i)[3] == 1) { - dimensions.append("Overworld"); - isFirst = false; - } - if(oreStats.get(i)[4] == 1) { - if(!isFirst) dimensions.append("/"); - dimensions.append("Nether"); - isFirst = false; - } - if(oreStats.get(i)[5] == 1) { - if(!isFirst) dimensions.append("/"); - dimensions.append("End"); - isFirst = false; - } - GT_Log.out.println("achievement." + oreList.get(i).name() + ".desc=Height: " + (oreStats.get(i)[0]) + "-" + (oreStats.get(i)[1]) + ", Chance: " + (oreStats.get(i)[2]) + ", " + dimensions.toString()); - } + boolean isFirst = true; + if(oreStats.get(i)[3] == 1) { + dimensions.append("Overworld"); + isFirst = false; + } + if(oreStats.get(i)[4] == 1) { + if(!isFirst) dimensions.append("/"); + dimensions.append("Nether"); + isFirst = false; + } + if(oreStats.get(i)[5] == 1) { + if(!isFirst) dimensions.append("/"); + dimensions.append("End"); + isFirst = false; + } + GT_Log.out.println("achievement." + oreList.get(i).name() + ".desc=Height: " + (oreStats.get(i)[0]) + "-" + (oreStats.get(i)[1]) + ", Chance: " + (oreStats.get(i)[2]) + ", " + dimensions.toString()); + } registerOreAchievement(oreList.get(i)); } registerAchievement("flintpick", 0, 0, GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(2, 1, Materials.Flint, Materials.Wood, null), "", false); @@ -171,10 +172,19 @@ public class GT_Achievements { registerAchievement("higherefficency", 14, 10, ItemList.Generator_Plasma_IV.get(1, new Object[]{}), "fusion", false); registerAchievement("advancing", 12, 8, ItemList.FusionComputer_ZPMV.get(1, new Object[]{}), "fusion", false); registerAchievement("tothelimit", 12, 10, ItemList.Generator_Plasma_LuV.get(1, new Object[]{}), "advancing", false); - registerAchievement("denseaspossible", 10, 10, ItemList.FusionComputer_UV.get(1, new Object[]{}), "tothelimit", false); - registerAchievement("fullefficiency", 10, 12, ItemList.Generator_Plasma_ZPMV.get(1, new Object[]{}), "denseaspossible", false); - registerAchievement("whatnow", 8, 10, ItemList.ZPM2.get(1, new Object[]{}), "denseaspossible", false); - + registerAchievement("fullefficiency", 10, 10, ItemList.Generator_Plasma_ZPMV.get(1, new Object[]{}), "tothelimit", false); + registerAchievement("denseaspossible", 8, 10, ItemList.FusionComputer_UV.get(1, new Object[]{}), "fullefficiency", false); + registerAchievement("whatnow", 6, 10, ItemList.ZPM2.get(1, new Object[]{}), "denseaspossible", false); + + if(Loader.isModLoaded("NotEnoughItems") && GT_Mod.gregtechproxy.mHideUnusedOres){ + for (int i = 1; i < GregTech_API.sGeneratedMaterials.length; i++) { + if (GregTech_API.sGeneratedMaterials[i] != null) { + if(!oreList.contains(GregTech_API.sGeneratedMaterials[i])){ + codechicken.nei.api.API.hideItem(GT_OreDictUnificator.get(OrePrefixes.ore, GregTech_API.sGeneratedMaterials[i], 1)); + } + } + } + } if (GT_Mod.gregtechproxy.mAchievements) { AchievementPage.registerAchievementPage(new AchievementPage("GregTech 5", (Achievement[]) this.achievementList.values().toArray( new Achievement[this.achievementList.size()]))); @@ -353,14 +363,10 @@ public class GT_Achievements { issueAchievement(player, "alloysmelter"); } else if (stack.getUnlocalizedName().equals("gt.blockmachines.bronzemachine.extractor")) { issueAchievement(player, "extract"); - } else if (stack.getUnlocalizedName().startsWith("gt.blockmachines.basicmachine.disassembler.tier.")) { - issueAchievement(player, "repair"); } else if (stack.getUnlocalizedName().startsWith("gt.blockmachines.automation.superbuffer.tier.")) { issueAchievement(player, "superbuffer"); } else if (stack.getUnlocalizedName().startsWith("gt.blockmachines.quantum.tank.tier.")) { issueAchievement(player, "whereistheocean"); - } else if (stack.getUnlocalizedName().startsWith("gt.blockmachines.basicmachine.disassembler.tier.")) { - issueAchievement(player, "repair"); } else if (stack.getUnlocalizedName().startsWith("gt.blockmachines.quantum.chest.tier.")) { issueAchievement(player, "newstorage"); } else if (stack.getUnlocalizedName().startsWith("gt.blockmachines.basicmachine.hammer.tier.")) { @@ -369,7 +375,7 @@ public class GT_Achievements { issueAchievement(player, "buffer"); } else if (stack.getUnlocalizedName().startsWith("gt.blockmachines.basicgenerator.steamturbine.tier.")) { issueAchievement(player, "steampower"); - } else if (stack.getUnlocalizedName().startsWith("gt.blockmachines.basicmachine.pump.tier.")) { + } else if (stack.getUnlocalizedName().equals("gt.blockmachines.basicmachine.pump.tier.03")) { issueAchievement(player, "slurp"); } else if (stack.getUnlocalizedName().startsWith("gt.blockmachines.basicmachine.assembler.tier.")) { issueAchievement(player, "avengers"); @@ -404,8 +410,6 @@ public class GT_Achievements { } else if (stack.getUnlocalizedName().equals("gt.blockmachines.multimachine.largehpturbine")) { issueAchievement(player, "efficientsteam"); } - } else if (stack.getUnlocalizedName().equals("gt.Thoriumcell")) { - issueAchievement(player, "newfuel"); } else if (stack.getUnlocalizedName().equals("gt.neutronreflector")) { issueAchievement(player, "reflect"); } else if (stack.getUnlocalizedName().equals("gt.blockcasings.13")) { @@ -436,14 +440,15 @@ public class GT_Achievements { if (player == null || stack == null) { return; } -// System.out.println("Pickup: "+stack.getUnlocalizedName()); ItemData data = GT_OreDictUnificator.getItemData(stack); if (data != null) { if (data.mPrefix == OrePrefixes.dust) { if (data.mMaterial.mMaterial == Materials.Lutetium) { issueAchievement(player, "newmetal"); } + if(data.mMaterial.mMaterial != Materials.Gunpowder){ issueAchievement(player, "cleandust"); + } } else if (data.mPrefix == OrePrefixes.ore || data.mPrefix == OrePrefixes.oreBlackgranite || data.mPrefix == OrePrefixes.oreEndstone || data.mPrefix == OrePrefixes.oreNetherrack || data.mPrefix == OrePrefixes.oreRedgranite) { for (int i = 0; i < data.getAllMaterialStacks().size(); i++) { @@ -507,9 +512,9 @@ public class GT_Achievements { issueAchievement(player, "filterregulate"); } else if (stack.getUnlocalizedName().equals("gt.metaitem.01.32605")) { issueAchievement(player, "whatnow"); - } else if (stack.getUnlocalizedName().equals("gt.Thoriumcell")) { + } + } else if (stack.getUnlocalizedName().equals("gt.Thoriumcell")) { issueAchievement(player, "newfuel"); } - } } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingBattery.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingBattery.java index 2b8eecfc..56b8b2af 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingBattery.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingBattery.java @@ -15,7 +15,7 @@ public class ProcessingBattery implements gregtech.api.interfaces.IOreRecipeRegi public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { if (aMaterial == Materials.Lithium) { - GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_ModHandler.getIC2Item("cropnalyzer", 1L, 32767), ItemList.Tool_Scanner.getAlmostBroken(1L, new Object[0]), 12800, 16); + // GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_ModHandler.getIC2Item("cropnalyzer", 1L, 32767), ItemList.Tool_Scanner.getAlmostBroken(1L, new Object[0]), 12800, 16); } } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingCircuit.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCircuit.java index 33f9dcac..7b5838c8 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingCircuit.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCircuit.java @@ -31,6 +31,8 @@ public class ProcessingCircuit implements gregtech.api.interfaces.IOreRecipeRegi GT_ModHandler.removeRecipeByOutput(aStack); GT_ModHandler.addCraftingRecipe(ItemList.Circuit_Basic.get(1L, new Object[0]), new Object[]{"WWW", "CPC", "WWW", Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Primitive), Character.valueOf('W'), OreDictNames.craftingWireCopper, Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel)}); GT_ModHandler.addCraftingRecipe(ItemList.Circuit_Basic.get(1L, new Object[0]), new Object[]{"WCW", "WPW", "WCW", Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Primitive), Character.valueOf('W'), OreDictNames.craftingWireCopper, Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel)}); + GT_ModHandler.addCraftingRecipe(ItemList.Circuit_Basic.get(1L, new Object[0]), new Object[]{"WWW", "CPC", "WWW", Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Primitive), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.RedAlloy), Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel)}); + GT_ModHandler.addCraftingRecipe(ItemList.Circuit_Basic.get(1L, new Object[0]), new Object[]{"WCW", "WPW", "WCW", Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Primitive), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.RedAlloy), Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel)}); GT_ModHandler.addShapelessCraftingRecipe(ItemList.Circuit_Basic.get(1L, new Object[0]), new Object[]{ItemList.Circuit_Integrated.getWildcard(1L, new Object[0])}); } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrafting.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrafting.java index 772da941..5c8e4143 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrafting.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrafting.java @@ -1,6 +1,5 @@ package gregtech.loaders.oreprocessing; -import cpw.mods.fml.common.Loader; import gregtech.api.enums.*; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; @@ -51,4 +50,4 @@ public class ProcessingCrafting implements gregtech.api.interfaces.IOreRecipeReg GT_Values.RA.addLaserEngraverRecipe(GT_ModHandler.getModItem("appliedenergistics2", "tile.BlockQuartz", 1L), GT_Utility.copyAmount(0L, new Object[]{aStack}), GT_ModHandler.getModItem("appliedenergistics2", "tile.BlockQuartzChiseled", 1L), 50, 16); } } -} \ No newline at end of file +} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingDye.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingDye.java index 2d0255cd..0061937c 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingDye.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingDye.java @@ -23,8 +23,9 @@ public class ProcessingDye implements IOreRecipeRegistrator { (GT_Utility.getContainerItem(aStack, true) == null)) { GT_ModHandler.addAlloySmelterRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glass, 8L), GT_Utility.copyAmount(1L, new Object[]{aStack}), new ItemStack(Blocks.stained_glass, 8, 15 - aDye.mIndex), 200, 8, false); GT_ModHandler.addAlloySmelterRecipe(new ItemStack(Blocks.glass, 8, 32767), GT_Utility.copyAmount(1L, new Object[]{aStack}), new ItemStack(Blocks.stained_glass, 8, 15 - aDye.mIndex), 200, 8, false); - GT_Values.RA.addMixerRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), null, null, null, Materials.Water.getFluid(144L), FluidRegistry.getFluidStack("dye.watermixed." + aDye.name().toLowerCase(), 144), null, 16, 4); - GT_Values.RA.addMixerRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), null, null, null, GT_ModHandler.getDistilledWater(144L), FluidRegistry.getFluidStack("dye.watermixed." + aDye.name().toLowerCase(), 144), null, 16, 4); + GT_Values.RA.addMixerRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), null, null, null, Materials.Water.getFluid(216L), FluidRegistry.getFluidStack("dye.watermixed." + aDye.name().toLowerCase(), 192), null, 16, 4); + GT_Values.RA.addMixerRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), null, null, null, GT_ModHandler.getDistilledWater(288L), FluidRegistry.getFluidStack("dye.watermixed." + aDye.name().toLowerCase(), 216), null, 16, 4); + GT_Values.RA.addChemicalRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Salt, 2), Materials.SulfuricAcid.getFluid(432), FluidRegistry.getFluidStack("dye.chemical." + aDye.name().toLowerCase(), 288), GT_Values.NI, 600, 48); } } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingLog.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingLog.java index 38bcf2d7..e4583966 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingLog.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingLog.java @@ -18,7 +18,7 @@ public class ProcessingLog implements gregtech.api.interfaces.IOreRecipeRegistra if (aOreDictName.equals("logRubber")) { GT_Values.RA.addCentrifugeRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), null, null, Materials.Methane.getGas(60L), ItemList.IC2_Resin.get(1L, new Object[0]), GT_ModHandler.getIC2Item("plantBall", 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Carbon, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 1L), null, null, new int[]{5000, 3750, 2500, 2500}, 200, 20); GT_ModHandler.addSawmillRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), ItemList.IC2_Resin.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 16L)); - GT_ModHandler.addExtractionRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Rubber, 1L)); + GT_ModHandler.addExtractionRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.RawRubber, 1L)); GT_ModHandler.addPulverisationRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 6L), ItemList.IC2_Resin.get(1L, new Object[0]), 33, false); } else { GT_ModHandler.addPulverisationRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 6L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 1L), 80, false); @@ -34,25 +34,31 @@ public class ProcessingLog implements gregtech.api.interfaces.IOreRecipeRegistra if (aMeta == Short.MAX_VALUE) { if ((GT_Utility.areStacksEqual(GT_ModHandler.getSmeltingOutput(GT_Utility.copyAmount(1L, new Object[]{aStack}), false, null), new ItemStack(Items.coal, 1, 1)))) { + GT_Values.RA.addPyrolyseRecipe(GT_Utility.copyAmount(16L, new Object[]{aStack}), null, 1, new ItemStack(Items.coal, 20, 1), Materials.Creosote.getFluid(4000), 640, 64); + GT_Values.RA.addPyrolyseRecipe(GT_Utility.copyAmount(16L, new Object[]{aStack}), Materials.Nitrogen.getGas(1000), 2, new ItemStack(Items.coal, 20, 1), Materials.Creosote.getFluid(4000), 320, 96); + GT_Values.RA.addPyrolyseRecipe(GT_Utility.copyAmount(16L, new Object[]{aStack}), null, 3, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 4), Materials.OilHeavy.getFluid(200), 320, 192); if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "wood2charcoalsmelting", true)) { GT_ModHandler.removeFurnaceSmelting(GT_Utility.copyAmount(1L, new Object[]{aStack})); } } for (int i = 0; i < 32767; i++) { if ((GT_Utility.areStacksEqual(GT_ModHandler.getSmeltingOutput(new ItemStack(aStack.getItem(), 1, i), false, null), new ItemStack(Items.coal, 1, 1)))) { + GT_Values.RA.addPyrolyseRecipe(GT_Utility.copyAmount(16L, new Object[]{aStack}), null, 1, new ItemStack(Items.coal, 20, 1), Materials.Creosote.getFluid(4000), 640, 64); + GT_Values.RA.addPyrolyseRecipe(GT_Utility.copyAmount(16L, new Object[]{aStack}), Materials.Nitrogen.getGas(1000), 2, new ItemStack(Items.coal, 20, 1), Materials.Creosote.getFluid(4000), 320, 96); + GT_Values.RA.addPyrolyseRecipe(GT_Utility.copyAmount(16L, new Object[]{aStack}), null, 3, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 4), Materials.OilHeavy.getFluid(200), 320, 192); if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "wood2charcoalsmelting", true)) { GT_ModHandler.removeFurnaceSmelting(new ItemStack(aStack.getItem(), 1, i)); } } ItemStack tStack = GT_ModHandler.getRecipeOutput(new ItemStack[]{new ItemStack(aStack.getItem(), 1, i)}); if (tStack == null) { - if (i >= 16) { + if (i >= 16) { break; + } } - } - else - { - + else + { + ItemStack tPlanks = GT_Utility.copy(new Object[]{tStack}); tPlanks.stackSize = (tPlanks.stackSize * 3 / 2); GT_Values.RA.addCutterRecipe(new ItemStack(aStack.getItem(), 1, i), Materials.Lubricant.getFluid(1L), GT_Utility.copy(new Object[]{tPlanks}), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 1L), 200, 8); @@ -65,7 +71,10 @@ public class ProcessingLog implements gregtech.api.interfaces.IOreRecipeRegistra } } else { if ((GT_Utility.areStacksEqual(GT_ModHandler.getSmeltingOutput(GT_Utility.copyAmount(1L, new Object[]{aStack}), false, null), new ItemStack(Items.coal, 1, 1)))) { - if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "wood2charcoalsmelting", true)) { + GT_Values.RA.addPyrolyseRecipe(GT_Utility.copyAmount(16L, new Object[]{aStack}), null, 1, new ItemStack(Items.coal, 20, 1), Materials.Creosote.getFluid(4000), 640, 64); + GT_Values.RA.addPyrolyseRecipe(GT_Utility.copyAmount(16L, new Object[]{aStack}), Materials.Nitrogen.getGas(1000), 2, new ItemStack(Items.coal, 20, 1), Materials.Creosote.getFluid(4000), 320, 96); + GT_Values.RA.addPyrolyseRecipe(GT_Utility.copyAmount(16L, new Object[]{aStack}), null, 3, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 4), Materials.OilHeavy.getFluid(200), 320, 192); + if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "wood2charcoalsmelting", true)) { GT_ModHandler.removeFurnaceSmelting(GT_Utility.copyAmount(1L, new Object[]{aStack})); } } @@ -83,8 +92,11 @@ public class ProcessingLog implements gregtech.api.interfaces.IOreRecipeRegistra } if ((GT_Utility.areStacksEqual(GT_ModHandler.getSmeltingOutput(GT_Utility.copyAmount(1L, new Object[]{aStack}), false, null), new ItemStack(Items.coal, 1, 1)))) { + GT_Values.RA.addPyrolyseRecipe(GT_Utility.copyAmount(16L, new Object[]{aStack}), null, 1, new ItemStack(Items.coal, 20, 1), Materials.Creosote.getFluid(4000), 640, 64); + GT_Values.RA.addPyrolyseRecipe(GT_Utility.copyAmount(16L, new Object[]{aStack}), Materials.Nitrogen.getGas(1000), 2, new ItemStack(Items.coal, 20, 1), Materials.Creosote.getFluid(4000), 320, 96); + GT_Values.RA.addPyrolyseRecipe(GT_Utility.copyAmount(16L, new Object[]{aStack}), null, 3, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 4), Materials.OilHeavy.getFluid(200), 320, 192); if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "wood2charcoalsmelting", true)) GT_ModHandler.removeFurnaceSmelting(GT_Utility.copyAmount(1L, new Object[]{aStack})); } } -} \ No newline at end of file +} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingNugget.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingNugget.java index a84c11c6..dd699c6c 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingNugget.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingNugget.java @@ -24,7 +24,6 @@ public class ProcessingNugget implements gregtech.api.interfaces.IOreRecipeRegis GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Nugget.get(0L, new Object[0]), aMaterial.getMolten(16L), GT_OreDictUnificator.get(OrePrefixes.nugget, aMaterial, 1L), 16, 4); GT_RecipeRegistrator.registerReverseFluidSmelting(aStack, aMaterial, aPrefix.mMaterialAmount, null); GT_RecipeRegistrator.registerReverseMacerating(aStack, aMaterial, aPrefix.mMaterialAmount, null, null, null, false); - if (GT_Mod.gregtechproxy.mAE2Integration) { Api.INSTANCE.registries().matterCannon().registerAmmo(GT_OreDictUnificator.get(OrePrefixes.round, aMaterial, 1L), aMaterial.getMass()); ; diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingPipeLarge.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPipeLarge.java index 6eb17be1..8f55c612 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingPipeLarge.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPipeLarge.java @@ -15,7 +15,9 @@ public class ProcessingPipeLarge implements gregtech.api.interfaces.IOreRecipeRe public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { if ((!aMaterial.contains(SubTag.NO_WORKING)) && ((aMaterial.contains(SubTag.WOOD)) || (!aMaterial.contains(SubTag.NO_SMASHING)))) { - GT_ModHandler.addCraftingRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_ModHandler.RecipeBits.MIRRORED | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PHP", "P P", "PWP", Character.valueOf('P'), aMaterial == Materials.Wood ? OrePrefixes.plank.get(aMaterial) : OrePrefixes.plate.get(aMaterial), Character.valueOf('H'), aMaterial.contains(SubTag.WOOD) ? ToolDictNames.craftingToolSoftHammer : ToolDictNames.craftingToolHardHammer, Character.valueOf('W'), aMaterial.contains(SubTag.WOOD) ? ToolDictNames.craftingToolSaw : ToolDictNames.craftingToolWrench}); + if (!(aMaterial == Materials.Redstone || aMaterial == Materials.Glowstone)) { + GT_ModHandler.addCraftingRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_ModHandler.RecipeBits.MIRRORED | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PHP", "P P", "PWP", Character.valueOf('P'), aMaterial == Materials.Wood ? OrePrefixes.plank.get(aMaterial) : OrePrefixes.plate.get(aMaterial), Character.valueOf('H'), aMaterial.contains(SubTag.WOOD) ? ToolDictNames.craftingToolSoftHammer : ToolDictNames.craftingToolHardHammer, Character.valueOf('W'), aMaterial.contains(SubTag.WOOD) ? ToolDictNames.craftingToolSaw : ToolDictNames.craftingToolWrench}); + } } } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingPipeMedium.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPipeMedium.java index 2bfc4b86..d889e8de 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingPipeMedium.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPipeMedium.java @@ -15,7 +15,9 @@ public class ProcessingPipeMedium implements gregtech.api.interfaces.IOreRecipeR public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { if ((!aMaterial.contains(SubTag.NO_WORKING)) && ((aMaterial.contains(SubTag.WOOD)) || (!aMaterial.contains(SubTag.NO_SMASHING)))) { - GT_ModHandler.addCraftingRecipe(GT_Utility.copyAmount(2L, new Object[]{aStack}), GT_ModHandler.RecipeBits.MIRRORED | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PPP", "W H", "PPP", Character.valueOf('P'), aMaterial == Materials.Wood ? OrePrefixes.plank.get(aMaterial) : OrePrefixes.plate.get(aMaterial), Character.valueOf('H'), aMaterial.contains(SubTag.WOOD) ? ToolDictNames.craftingToolSoftHammer : ToolDictNames.craftingToolHardHammer, Character.valueOf('W'), aMaterial.contains(SubTag.WOOD) ? ToolDictNames.craftingToolSaw : ToolDictNames.craftingToolWrench}); + if (!(aMaterial == Materials.Redstone || aMaterial == Materials.Glowstone)) { + GT_ModHandler.addCraftingRecipe(GT_Utility.copyAmount(2L, new Object[]{aStack}), GT_ModHandler.RecipeBits.MIRRORED | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PPP", "W H", "PPP", Character.valueOf('P'), aMaterial == Materials.Wood ? OrePrefixes.plank.get(aMaterial) : OrePrefixes.plate.get(aMaterial), Character.valueOf('H'), aMaterial.contains(SubTag.WOOD) ? ToolDictNames.craftingToolSoftHammer : ToolDictNames.craftingToolHardHammer, Character.valueOf('W'), aMaterial.contains(SubTag.WOOD) ? ToolDictNames.craftingToolSaw : ToolDictNames.craftingToolWrench}); + } } } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingPipeSmall.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPipeSmall.java index 57d43c8c..f60e99e2 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingPipeSmall.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPipeSmall.java @@ -15,7 +15,9 @@ public class ProcessingPipeSmall implements gregtech.api.interfaces.IOreRecipeRe public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { if ((!aMaterial.contains(SubTag.NO_WORKING)) && ((aMaterial.contains(SubTag.WOOD)) || (!aMaterial.contains(SubTag.NO_SMASHING)))) { - GT_ModHandler.addCraftingRecipe(GT_Utility.copyAmount(6L, new Object[]{aStack}), GT_ModHandler.RecipeBits.MIRRORED | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PWP", "P P", "PHP", Character.valueOf('P'), aMaterial == Materials.Wood ? OrePrefixes.plank.get(aMaterial) : OrePrefixes.plate.get(aMaterial), Character.valueOf('H'), aMaterial.contains(SubTag.WOOD) ? ToolDictNames.craftingToolSoftHammer : ToolDictNames.craftingToolHardHammer, Character.valueOf('W'), aMaterial.contains(SubTag.WOOD) ? ToolDictNames.craftingToolSaw : ToolDictNames.craftingToolWrench}); + if (!(aMaterial == Materials.Redstone || aMaterial == Materials.Glowstone)) { + GT_ModHandler.addCraftingRecipe(GT_Utility.copyAmount(6L, new Object[]{aStack}), GT_ModHandler.RecipeBits.MIRRORED | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PWP", "P P", "PHP", Character.valueOf('P'), aMaterial == Materials.Wood ? OrePrefixes.plank.get(aMaterial) : OrePrefixes.plate.get(aMaterial), Character.valueOf('H'), aMaterial.contains(SubTag.WOOD) ? ToolDictNames.craftingToolSoftHammer : ToolDictNames.craftingToolHardHammer, Character.valueOf('W'), aMaterial.contains(SubTag.WOOD) ? ToolDictNames.craftingToolSaw : ToolDictNames.craftingToolWrench}); + } } } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlank.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlank.java index 2c640073..0ab6d19e 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlank.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlank.java @@ -42,10 +42,10 @@ public class ProcessingPlank implements gregtech.api.interfaces.IOreRecipeRegist GT_ModHandler.removeRecipe(new ItemStack[]{tStack, tStack, tStack}); GT_ModHandler.addCraftingRecipe(GT_Utility.copyAmount(tOutput.stackSize / 3, new Object[]{tOutput}), new Object[]{"sP", Character.valueOf('P'), tStack}); } - if(tStack==null){ - if(i>=16){ - break; - } + if(tStack==null){ + if(i>=16){ + break; + } } } } else { diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate1.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate1.java index 7f1108cc..55966cbd 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate1.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate1.java @@ -25,10 +25,6 @@ public class ProcessingPlate1 implements gregtech.api.interfaces.IOreRecipeRegis GT_Values.RA.addBoxingRecipe(GT_Utility.copyAmount(16L, new Object[]{aStack}), ItemList.Crate_Empty.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.crateGtPlate, aMaterial, 1L), 100, 8); GT_Values.RA.addUnboxingRecipe(GT_OreDictUnificator.get(OrePrefixes.crateGtPlate, aMaterial, 1L), GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 16L), ItemList.Crate_Empty.get(1L, new Object[0]), 800, 1); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 4L), GT_OreDictUnificator.get(OrePrefixes.ring, aMaterial, 1L), Materials.Tin.getMolten(32), GT_OreDictUnificator.get(OrePrefixes.rotor, aMaterial, 1L), 240, 24); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 4L), GT_OreDictUnificator.get(OrePrefixes.ring, aMaterial, 1L), Materials.Lead.getMolten(48), GT_OreDictUnificator.get(OrePrefixes.rotor, aMaterial, 1L), 240, 24); - GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 4L), GT_OreDictUnificator.get(OrePrefixes.ring, aMaterial, 1L), Materials.SolderingAlloy.getMolten(16), GT_OreDictUnificator.get(OrePrefixes.rotor, aMaterial, 1L), 240, 24); - if (aMaterial.mStandardMoltenFluid != null) { GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Plate.get(0L, new Object[0]), aMaterial.getMolten(144L), GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L), 32, 8); } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingShaping.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingShaping.java index d1520082..4e1202e1 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingShaping.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingShaping.java @@ -35,9 +35,11 @@ public class ProcessingShaping implements gregtech.api.interfaces.IOreRecipeRegi } GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), ItemList.Shape_Extruder_Pipe_Tiny.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.pipeTiny, aMaterial.mSmeltInto, tAmount * 2), 4 * tAmount, 8 * tVoltageMultiplier); - GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), ItemList.Shape_Extruder_Pipe_Small.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.pipeSmall, aMaterial.mSmeltInto, tAmount), 8 * tAmount, 8 * tVoltageMultiplier); - GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(3L, new Object[]{aStack}), ItemList.Shape_Extruder_Pipe_Medium.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.pipeMedium, aMaterial.mSmeltInto, tAmount), 24 * tAmount, 8 * tVoltageMultiplier); - GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(6L, new Object[]{aStack}), ItemList.Shape_Extruder_Pipe_Large.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.pipeLarge, aMaterial.mSmeltInto, tAmount), 48 * tAmount, 8 * tVoltageMultiplier); + if (!(aMaterial == Materials.Redstone || aMaterial == Materials.Glowstone)) { + GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), ItemList.Shape_Extruder_Pipe_Small.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.pipeSmall, aMaterial.mSmeltInto, tAmount), 8 * tAmount, 8 * tVoltageMultiplier); + GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(3L, new Object[]{aStack}), ItemList.Shape_Extruder_Pipe_Medium.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.pipeMedium, aMaterial.mSmeltInto, tAmount), 24 * tAmount, 8 * tVoltageMultiplier); + GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(6L, new Object[]{aStack}), ItemList.Shape_Extruder_Pipe_Large.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.pipeLarge, aMaterial.mSmeltInto, tAmount), 48 * tAmount, 8 * tVoltageMultiplier); + } GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(12L, new Object[]{aStack}), ItemList.Shape_Extruder_Pipe_Huge.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.pipeHuge, aMaterial.mSmeltInto, tAmount), 96 * tAmount, 8 * tVoltageMultiplier); GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), ItemList.Shape_Extruder_Plate.get(0L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial.mSmeltInto, tAmount), (int) Math.max(aMaterial.getMass() * 1L * tAmount, tAmount), 8 * tVoltageMultiplier); if (tAmount * 2 <= 64) diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingStone.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingStone.java index 848586d9..f56daa11 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingStone.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingStone.java @@ -50,6 +50,33 @@ public class ProcessingStone GT_Values.RA.addCutterRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L), null, 100, 32); GT_ModHandler.addPulverisationRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L)); break; + case Rhyolite: + GT_ModHandler.addPulverisationRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.PotassiumFeldspar, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Quartz, 1L), 20, false); + break; + case Komatiite: + GT_ModHandler.addPulverisationRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Biotite, 1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Uranium, 1L), 5, false); + break; + case Dacite: + case Andesite: + GT_ModHandler.addPulverisationRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SiliconDioxide, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Obsidian, 1L), 20, false); + break; + case Gabbro: + GT_ModHandler.addPulverisationRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.PotassiumFeldspar, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Pyrite, 1L), 20, false); + break; + case Eclogite: + GT_ModHandler.addPulverisationRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SiliconDioxide, 1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Rutile, 1L), 10, false); + break; + case Soapstone: + GT_ModHandler.addPulverisationRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.dustImpure, Materials.Talc, 1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Chromite, 1L), 10, false); + break; + case Greenschist: + case Blueschist: + GT_ModHandler.addPulverisationRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Glauconite, 2L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Basalt, 1L), 100, false); + break; + case Gneiss: + case Migmatite: + GT_ModHandler.addPulverisationRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SiliconDioxide, 1L), GT_OreDictUnificator.get(OrePrefixes.dustImpure, Materials.GraniteBlack, 1L), 50, false); + break; case Redrock: case Marble: case Basalt: diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingWire01.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingWire01.java index 96c02700..bbff6a18 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingWire01.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingWire01.java @@ -10,6 +10,8 @@ import gregtech.api.enums.OrePrefixes; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; import net.minecraft.item.ItemStack; public class ProcessingWire01 implements gregtech.api.interfaces.IOreRecipeRegistrator { @@ -18,13 +20,24 @@ public class ProcessingWire01 implements gregtech.api.interfaces.IOreRecipeRegis } public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, aMaterial, 1L), new Object[]{aOreDictName, OrePrefixes.plate.get(Materials.Rubber)}); + if (aMaterial == Materials.Cobalt || aMaterial == Materials.Lead || aMaterial == Materials.Tin || aMaterial == Materials.Zinc || aMaterial == Materials.SolderingAlloy) { + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, aMaterial, 1L), new Object[]{aOreDictName, new ItemStack(Blocks.carpet, 1, 15), new ItemStack(Items.string, 1)}); + GT_Values.RA.addBoxingRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), new ItemStack(Blocks.carpet, 1, 15), GT_OreDictUnificator.get(OrePrefixes.cableGt01, aMaterial, 1L), 100, 8); + GT_Values.RA.addUnboxingRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, aMaterial, 1L), GT_Utility.copyAmount(1L, new Object[]{aStack}), new ItemStack(Blocks.carpet, 1, 15), 100, 8); + } else if (aMaterial == Materials.RedAlloy) { + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, aMaterial, 1L), new Object[]{aOreDictName, OrePrefixes.plate.get(Materials.Paper)}); + GT_Values.RA.addBoxingRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Paper, 1L), GT_OreDictUnificator.get(OrePrefixes.cableGt01, aMaterial, 1L), 100, 8); + GT_Values.RA.addUnboxingRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, aMaterial, 1L), GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Paper, 1L), 100, 8); + + } else { + GT_Values.RA.addAssemblerRecipe(aStack, ItemList.Circuit_Integrated.getWithDamage(0L, 24L, new Object[0]), Materials.Rubber.getMolten(144L), GT_OreDictUnificator.get(OrePrefixes.cableGt01, aMaterial, 1L), 100, 8); + GT_Values.RA.addUnboxingRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, aMaterial, 1L), GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Rubber, 1L), 100, 8); + } + if (!aMaterial.contains(gregtech.api.enums.SubTag.NO_SMASHING)) { GT_Values.RA.addBenderRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.springSmall, aMaterial, 2L), 100, 8); GT_Values.RA.addWiremillRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.wireFine, aMaterial, 4L), 200, 8); } - GT_Values.RA.addBoxingRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Rubber, 1L), GT_OreDictUnificator.get(OrePrefixes.cableGt01, aMaterial, 1L), 100, 8); - GT_Values.RA.addUnboxingRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, aMaterial, 1L), GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Rubber, 1L), 100, 8); GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(2L, new Object[]{aStack}), ItemList.Circuit_Integrated.getWithDamage(0L, 2L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.wireGt02, aMaterial, 1L), 150, 8); GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(4L, new Object[]{aStack}), ItemList.Circuit_Integrated.getWithDamage(0L, 4L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.wireGt04, aMaterial, 1L), 200, 8); GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(8L, new Object[]{aStack}), ItemList.Circuit_Integrated.getWithDamage(0L, 8L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.wireGt08, aMaterial, 1L), 300, 8); diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingWire02.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingWire02.java index 90ef818a..0a8d3573 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingWire02.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingWire02.java @@ -4,11 +4,14 @@ import appeng.api.config.TunnelType; import appeng.core.Api; import gregtech.GT_Mod; import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; import net.minecraft.item.ItemStack; public class ProcessingWire02 implements gregtech.api.interfaces.IOreRecipeRegistrator { @@ -17,9 +20,21 @@ public class ProcessingWire02 implements gregtech.api.interfaces.IOreRecipeRegis } public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { - GT_Values.RA.addBoxingRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Rubber, 1L), GT_OreDictUnificator.get(OrePrefixes.cableGt02, aMaterial, 1L), 150, 8); - GT_Values.RA.addUnboxingRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt02, aMaterial, 1L), GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Rubber, 1L), 150, 8); - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt02, aMaterial, 1L), new Object[]{aOreDictName, OrePrefixes.plate.get(Materials.Rubber)}); + + if (aMaterial == Materials.Cobalt || aMaterial == Materials.Lead || aMaterial == Materials.Tin || aMaterial == Materials.Zinc || aMaterial == Materials.SolderingAlloy) { + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt02, aMaterial, 1L), new Object[]{aOreDictName, new ItemStack(Blocks.carpet, 1, 15), new ItemStack(Items.string, 1)}); + GT_Values.RA.addBoxingRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), new ItemStack(Blocks.carpet, 1, 15), GT_OreDictUnificator.get(OrePrefixes.cableGt02, aMaterial, 1L), 100, 8); + GT_Values.RA.addUnboxingRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt02, aMaterial, 1L), GT_Utility.copyAmount(1L, new Object[]{aStack}), new ItemStack(Blocks.carpet, 1, 15), 100, 8); + } else if (aMaterial == Materials.RedAlloy) { + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt02, aMaterial, 1L), new Object[]{aOreDictName, OrePrefixes.plate.get(Materials.Paper)}); + GT_Values.RA.addBoxingRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Paper, 1L), GT_OreDictUnificator.get(OrePrefixes.cableGt02, aMaterial, 1L), 100, 8); + GT_Values.RA.addUnboxingRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt02, aMaterial, 1L), GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Paper, 1L), 100, 8); + + } else { + GT_Values.RA.addAssemblerRecipe(aStack, ItemList.Circuit_Integrated.getWithDamage(0L, 24L, new Object[0]), Materials.Rubber.getMolten(144L), GT_OreDictUnificator.get(OrePrefixes.cableGt02, aMaterial, 1L), 100, 8); + GT_Values.RA.addUnboxingRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt02, aMaterial, 1L), GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Rubber, 1L), 100, 8); + } + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.wireGt01, aMaterial, 2L), new Object[]{aOreDictName}); GT_ModHandler.addShapelessCraftingRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), new Object[]{OrePrefixes.wireGt01.get(aMaterial), OrePrefixes.wireGt01.get(aMaterial)}); diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingWire04.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingWire04.java index c2513492..1bfc3964 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingWire04.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingWire04.java @@ -4,11 +4,14 @@ import appeng.api.config.TunnelType; import appeng.core.Api; import gregtech.GT_Mod; import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; import net.minecraft.item.ItemStack; public class ProcessingWire04 implements gregtech.api.interfaces.IOreRecipeRegistrator { @@ -17,9 +20,20 @@ public class ProcessingWire04 implements gregtech.api.interfaces.IOreRecipeRegis } public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { - GT_Values.RA.addBoxingRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Rubber, 2L), GT_OreDictUnificator.get(OrePrefixes.cableGt04, aMaterial, 1L), 200, 8); - GT_Values.RA.addUnboxingRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt04, aMaterial, 1L), GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Rubber, 2L), 200, 8); - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt04, aMaterial, 1L), new Object[]{aOreDictName, OrePrefixes.plate.get(Materials.Rubber), OrePrefixes.plate.get(Materials.Rubber)}); + if (aMaterial == Materials.Cobalt || aMaterial == Materials.Lead || aMaterial == Materials.Tin || aMaterial == Materials.Zinc || aMaterial == Materials.SolderingAlloy) { + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt04, aMaterial, 1L), new Object[]{aOreDictName, new ItemStack(Blocks.carpet, 1, 15), new ItemStack(Blocks.carpet, 1, 15), new ItemStack(Items.string, 1)}); + GT_Values.RA.addBoxingRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), new ItemStack(Blocks.carpet, 2, 15), GT_OreDictUnificator.get(OrePrefixes.cableGt04, aMaterial, 1L), 100, 8); + GT_Values.RA.addUnboxingRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt04, aMaterial, 1L), GT_Utility.copyAmount(1L, new Object[]{aStack}), new ItemStack(Blocks.carpet, 2, 15), 100, 8); + } else if (aMaterial == Materials.RedAlloy) { + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt04, aMaterial, 1L), new Object[]{aOreDictName, OrePrefixes.plate.get(Materials.Paper), OrePrefixes.plate.get(Materials.Paper)}); + GT_Values.RA.addBoxingRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Paper, 2L), GT_OreDictUnificator.get(OrePrefixes.cableGt04, aMaterial, 1L), 100, 8); + GT_Values.RA.addUnboxingRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt04, aMaterial, 1L), GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Paper, 2L), 100, 8); + + } else { + GT_Values.RA.addAssemblerRecipe(aStack, ItemList.Circuit_Integrated.getWithDamage(0L, 24L, new Object[0]), Materials.Rubber.getMolten(288L), GT_OreDictUnificator.get(OrePrefixes.cableGt04, aMaterial, 1L), 100, 8); + GT_Values.RA.addUnboxingRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt04, aMaterial, 1L), GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Rubber, 2L), 100, 8); + } + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.wireGt01, aMaterial, 4L), new Object[]{aOreDictName}); GT_ModHandler.addShapelessCraftingRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), new Object[]{OrePrefixes.wireGt02.get(aMaterial), OrePrefixes.wireGt02.get(aMaterial)}); @@ -28,4 +42,4 @@ public class ProcessingWire04 implements gregtech.api.interfaces.IOreRecipeRegis Api.INSTANCE.registries().p2pTunnel().addNewAttunement(GT_OreDictUnificator.get(OrePrefixes.cableGt04, aMaterial, 1L), TunnelType.IC2_POWER); } } -} +} \ No newline at end of file diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingWire08.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingWire08.java index 69b90165..111af0be 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingWire08.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingWire08.java @@ -4,11 +4,14 @@ import appeng.api.config.TunnelType; import appeng.core.Api; import gregtech.GT_Mod; import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; import net.minecraft.item.ItemStack; public class ProcessingWire08 implements gregtech.api.interfaces.IOreRecipeRegistrator { @@ -17,9 +20,20 @@ public class ProcessingWire08 implements gregtech.api.interfaces.IOreRecipeRegis } public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { - GT_Values.RA.addBoxingRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Rubber, 3L), GT_OreDictUnificator.get(OrePrefixes.cableGt08, aMaterial, 1L), 300, 8); - GT_Values.RA.addUnboxingRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt08, aMaterial, 1L), GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Rubber, 3L), 300, 8); - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt08, aMaterial, 1L), new Object[]{aOreDictName, OrePrefixes.plate.get(Materials.Rubber), OrePrefixes.plate.get(Materials.Rubber), OrePrefixes.plate.get(Materials.Rubber)}); + if (aMaterial == Materials.Cobalt || aMaterial == Materials.Lead || aMaterial == Materials.Tin || aMaterial == Materials.Zinc || aMaterial == Materials.SolderingAlloy) { + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt08, aMaterial, 1L), new Object[]{aOreDictName, new ItemStack(Blocks.carpet, 1, 15), new ItemStack(Blocks.carpet, 1, 15), new ItemStack(Blocks.carpet, 1, 15), new ItemStack(Items.string, 1)}); + GT_Values.RA.addBoxingRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), new ItemStack(Blocks.carpet, 3, 15), GT_OreDictUnificator.get(OrePrefixes.cableGt08, aMaterial, 1L), 100, 8); + GT_Values.RA.addUnboxingRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt08, aMaterial, 1L), GT_Utility.copyAmount(1L, new Object[]{aStack}), new ItemStack(Blocks.carpet, 3, 15), 100, 8); + } else if (aMaterial == Materials.RedAlloy) { + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt08, aMaterial, 1L), new Object[]{aOreDictName, OrePrefixes.plate.get(Materials.Paper), OrePrefixes.plate.get(Materials.Paper), OrePrefixes.plate.get(Materials.Paper)}); + GT_Values.RA.addBoxingRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Paper, 3L), GT_OreDictUnificator.get(OrePrefixes.cableGt08, aMaterial, 1L), 100, 8); + GT_Values.RA.addUnboxingRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt08, aMaterial, 1L), GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Paper, 3L), 100, 8); + + } else { + GT_Values.RA.addAssemblerRecipe(aStack, ItemList.Circuit_Integrated.getWithDamage(0L, 24L, new Object[0]), Materials.Rubber.getMolten(432L), GT_OreDictUnificator.get(OrePrefixes.cableGt08, aMaterial, 1L), 100, 8); + GT_Values.RA.addUnboxingRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt08, aMaterial, 1L), GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Rubber, 3L), 100, 8); + } + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.wireGt01, aMaterial, 8L), new Object[]{aOreDictName}); GT_ModHandler.addShapelessCraftingRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), new Object[]{OrePrefixes.wireGt04.get(aMaterial), OrePrefixes.wireGt04.get(aMaterial)}); @@ -28,4 +42,4 @@ public class ProcessingWire08 implements gregtech.api.interfaces.IOreRecipeRegis Api.INSTANCE.registries().p2pTunnel().addNewAttunement(GT_OreDictUnificator.get(OrePrefixes.cableGt08, aMaterial, 1L), TunnelType.IC2_POWER); } } -} +} \ No newline at end of file diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingWire12.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingWire12.java index 9aa8474a..85b213eb 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingWire12.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingWire12.java @@ -4,11 +4,14 @@ import appeng.api.config.TunnelType; import appeng.core.Api; import gregtech.GT_Mod; import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; import net.minecraft.item.ItemStack; public class ProcessingWire12 implements gregtech.api.interfaces.IOreRecipeRegistrator { @@ -17,9 +20,19 @@ public class ProcessingWire12 implements gregtech.api.interfaces.IOreRecipeRegis } public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { - GT_Values.RA.addBoxingRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Rubber, 4L), GT_OreDictUnificator.get(OrePrefixes.cableGt12, aMaterial, 1L), 400, 8); - GT_Values.RA.addUnboxingRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt12, aMaterial, 1L), GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Rubber, 4L), 400, 8); - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt12, aMaterial, 1L), new Object[]{aOreDictName, OrePrefixes.plate.get(Materials.Rubber), OrePrefixes.plate.get(Materials.Rubber), OrePrefixes.plate.get(Materials.Rubber), OrePrefixes.plate.get(Materials.Rubber)}); + if (aMaterial == Materials.Cobalt || aMaterial == Materials.Lead || aMaterial == Materials.Tin || aMaterial == Materials.Zinc || aMaterial == Materials.SolderingAlloy) { + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt12, aMaterial, 1L), new Object[]{aOreDictName, new ItemStack(Blocks.carpet, 1, 15), new ItemStack(Blocks.carpet, 1, 15), new ItemStack(Blocks.carpet, 1, 15), new ItemStack(Blocks.carpet, 1, 15), new ItemStack(Items.string, 1)}); + GT_Values.RA.addBoxingRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), new ItemStack(Blocks.carpet, 4, 15), GT_OreDictUnificator.get(OrePrefixes.cableGt12, aMaterial, 1L), 100, 8); + GT_Values.RA.addUnboxingRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt12, aMaterial, 1L), GT_Utility.copyAmount(1L, new Object[]{aStack}), new ItemStack(Blocks.carpet, 4, 15), 100, 8); + } else if (aMaterial == Materials.RedAlloy) { + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt12, aMaterial, 1L), new Object[]{aOreDictName, OrePrefixes.plate.get(Materials.Paper), OrePrefixes.plate.get(Materials.Paper), OrePrefixes.plate.get(Materials.Paper), OrePrefixes.plate.get(Materials.Paper)}); + GT_Values.RA.addBoxingRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Paper, 4L), GT_OreDictUnificator.get(OrePrefixes.cableGt12, aMaterial, 1L), 100, 8); + GT_Values.RA.addUnboxingRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt12, aMaterial, 1L), GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Paper, 4L), 100, 8); + + } else { + GT_Values.RA.addAssemblerRecipe(aStack, ItemList.Circuit_Integrated.getWithDamage(0L, 24L, new Object[0]), Materials.Rubber.getMolten(576L), GT_OreDictUnificator.get(OrePrefixes.cableGt12, aMaterial, 1L), 100, 8); + GT_Values.RA.addUnboxingRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt12, aMaterial, 1L), GT_Utility.copyAmount(1L, new Object[]{aStack}), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Rubber, 4L), 100, 8); + } GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.wireGt01, aMaterial, 12L), new Object[]{aOreDictName}); GT_ModHandler.addShapelessCraftingRecipe(GT_Utility.copyAmount(1L, new Object[]{aStack}), new Object[]{OrePrefixes.wireGt08.get(aMaterial), OrePrefixes.wireGt04.get(aMaterial)}); @@ -28,4 +41,4 @@ public class ProcessingWire12 implements gregtech.api.interfaces.IOreRecipeRegis Api.INSTANCE.registries().p2pTunnel().addNewAttunement(GT_OreDictUnificator.get(OrePrefixes.cableGt12, aMaterial, 1L), TunnelType.IC2_POWER); } } -} +} \ No newline at end of file diff --git a/src/main/java/gregtech/loaders/postload/GT_CraftingRecipeLoader.java b/src/main/java/gregtech/loaders/postload/GT_CraftingRecipeLoader.java index 285df382..328e8c68 100644 --- a/src/main/java/gregtech/loaders/postload/GT_CraftingRecipeLoader.java +++ b/src/main/java/gregtech/loaders/postload/GT_CraftingRecipeLoader.java @@ -72,6 +72,9 @@ public class GT_CraftingRecipeLoader GT_ModHandler.removeRecipeByOutput(ItemList.Bottle_Empty.get(1L, new Object[0])); GT_ModHandler.removeRecipeByOutput(ItemList.IC2_Spray_WeedEx.get(1L, new Object[0])); GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("reBattery", 1L)); + GT_ModHandler.removeRecipeByOutput(new ItemStack(Blocks.tnt)); + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("dynamite", 1L)); + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("industrialTnt", 1L)); ItemStack tStack = GT_ModHandler.removeRecipe(new ItemStack[]{new ItemStack(Blocks.planks, 1, 0), null, null, new ItemStack(Blocks.planks, 1, 0)}); if (tStack != null) { @@ -408,7 +411,7 @@ public class GT_CraftingRecipeLoader GT_ModHandler.addCraftingRecipe(ItemList.IC2_Item_Casing_Tin.get(1L, new Object[0]), new Object[]{"h P", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Tin)}); GT_ModHandler.addCraftingRecipe(ItemList.IC2_Item_Casing_Lead.get(1L, new Object[0]), new Object[]{"h P", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Lead)}); GT_ModHandler.addCraftingRecipe(ItemList.IC2_Item_Casing_Steel.get(1L, new Object[0]), new Object[]{"h P", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel)}); - + GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.torch, 2), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"C", "S", Character.valueOf('C'), OrePrefixes.dust.get(Materials.Sulfur), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Wood)}); GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.torch, 6), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"C", "S", Character.valueOf('C'), OrePrefixes.dust.get(Materials.Phosphorus), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Wood)}); @@ -449,6 +452,7 @@ public class GT_CraftingRecipeLoader GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.BlackSteel, 5L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.Nickel), OrePrefixes.dust.get(Materials.BlackBronze), OrePrefixes.dust.get(Materials.Steel), OrePrefixes.dust.get(Materials.Steel), OrePrefixes.dust.get(Materials.Steel)}); GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.RedSteel, 8L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.SterlingSilver), OrePrefixes.dust.get(Materials.BismuthBronze), OrePrefixes.dust.get(Materials.Steel), OrePrefixes.dust.get(Materials.Steel), OrePrefixes.dust.get(Materials.BlackSteel), OrePrefixes.dust.get(Materials.BlackSteel), OrePrefixes.dust.get(Materials.BlackSteel), OrePrefixes.dust.get(Materials.BlackSteel)}); GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.BlueSteel, 8L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.RoseGold), OrePrefixes.dust.get(Materials.Brass), OrePrefixes.dust.get(Materials.Steel), OrePrefixes.dust.get(Materials.Steel), OrePrefixes.dust.get(Materials.BlackSteel), OrePrefixes.dust.get(Materials.BlackSteel), OrePrefixes.dust.get(Materials.BlackSteel), OrePrefixes.dust.get(Materials.BlackSteel)}); + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Osmiridium, 4L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.Iridium), OrePrefixes.dust.get(Materials.Iridium), OrePrefixes.dust.get(Materials.Iridium), OrePrefixes.dust.get(Materials.Osmium)}); GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ultimet, 9L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.Cobalt), OrePrefixes.dust.get(Materials.Cobalt), OrePrefixes.dust.get(Materials.Cobalt), OrePrefixes.dust.get(Materials.Cobalt), OrePrefixes.dust.get(Materials.Cobalt), OrePrefixes.dust.get(Materials.Chrome), OrePrefixes.dust.get(Materials.Chrome), OrePrefixes.dust.get(Materials.Nickel), OrePrefixes.dust.get(Materials.Molybdenum)}); GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.CobaltBrass, 9L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.Brass), OrePrefixes.dust.get(Materials.Brass), OrePrefixes.dust.get(Materials.Brass), OrePrefixes.dust.get(Materials.Brass), OrePrefixes.dust.get(Materials.Brass), OrePrefixes.dust.get(Materials.Brass), OrePrefixes.dust.get(Materials.Brass), OrePrefixes.dust.get(Materials.Aluminium), OrePrefixes.dust.get(Materials.Cobalt)}); @@ -461,36 +465,20 @@ public class GT_CraftingRecipeLoader GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.StainlessSteel, 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dustTiny.get(Materials.Iron), OrePrefixes.dustTiny.get(Materials.Iron), OrePrefixes.dustTiny.get(Materials.Iron), OrePrefixes.dustTiny.get(Materials.Iron), OrePrefixes.dustTiny.get(Materials.Iron), OrePrefixes.dustTiny.get(Materials.Iron), OrePrefixes.dustTiny.get(Materials.Nickel), OrePrefixes.dustTiny.get(Materials.Manganese), OrePrefixes.dustTiny.get(Materials.Chrome)}); GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.YttriumBariumCuprate, 6L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dustTiny.get(Materials.Yttrium), OrePrefixes.dustTiny.get(Materials.Barium), OrePrefixes.dustTiny.get(Materials.Barium), OrePrefixes.dustTiny.get(Materials.AnyCopper), OrePrefixes.dustTiny.get(Materials.AnyCopper), OrePrefixes.dustTiny.get(Materials.AnyCopper)}); GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Kanthal, 3L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dustTiny.get(Materials.Iron), OrePrefixes.dustTiny.get(Materials.Aluminium), OrePrefixes.dustTiny.get(Materials.Chrome)}); - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Osmiridium, 3L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.Osmium), OrePrefixes.dust.get(Materials.Iridium), OrePrefixes.dust.get(Materials.Iridium), OrePrefixes.dust.get(Materials.Iridium)}); - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DamascusSteel, 2L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.Steel), OrePrefixes.dustSmall.get(Materials.Nickel), OrePrefixes.dustSmall.get(Materials.Nickel), OrePrefixes.dustSmall.get(Materials.Nickel), OrePrefixes.dustTiny.get(Materials.Coal), OrePrefixes.dustTiny.get(Materials.Silicon), OrePrefixes.dustTiny.get(Materials.Manganese), OrePrefixes.dustTiny.get(Materials.Chrome), OrePrefixes.dustTiny.get(Materials.Molybdenum)}); - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DamascusSteel, 2L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.Steel), OrePrefixes.dustSmall.get(Materials.Manganese), OrePrefixes.dustSmall.get(Materials.Manganese), OrePrefixes.dustSmall.get(Materials.Chrome), OrePrefixes.dustSmall.get(Materials.Chrome), OrePrefixes.dustTiny.get(Materials.Coal), OrePrefixes.dustTiny.get(Materials.Silicon), OrePrefixes.dustTiny.get(Materials.Vanadium)}); - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.HSLA, 2L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.Steel), OrePrefixes.dustSmall.get(Materials.Niobium), OrePrefixes.dustSmall.get(Materials.AnnealedCopper), OrePrefixes.dustSmall.get(Materials.Nickel), OrePrefixes.dustSmall.get(Materials.Vanadium), OrePrefixes.dustSmall.get(Materials.Chrome), OrePrefixes.dustTiny.get(Materials.Molybdenum), OrePrefixes.dustSmall.get(Materials.Titanium), OrePrefixes.dustTiny.get(Materials.Carbon)}); - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.RedstoneAlloy, 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.Redstone), OrePrefixes.dust.get(Materials.Silicon), OrePrefixes.dust.get(Materials.Coal)}); - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.ConductiveIron, 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.RedstoneAlloy), OrePrefixes.dust.get(Materials.Iron), OrePrefixes.dust.get(Materials.Titanium)}); - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.EnergeticAlloy, 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.ConductiveIron), OrePrefixes.dust.get(Materials.Gold), OrePrefixes.dust.get(Materials.TungstenSteel)}); - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.VibrantAlloy, 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.EnergeticAlloy), OrePrefixes.dust.get(Materials.EnderEye), OrePrefixes.dust.get(Materials.Chrome)}); - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.ElectricalSteel, 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.Steel), OrePrefixes.dust.get(Materials.Coal), OrePrefixes.dust.get(Materials.Silicon)}); - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.PulsatingIron, 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.Iron), OrePrefixes.dust.get(Materials.EnderPearl), OrePrefixes.dust.get(Materials.RedstoneAlloy)}); - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Soularium, 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{new ItemStack(Blocks.soul_sand, 1, 32767), OrePrefixes.dust.get(Materials.Gold), OrePrefixes.dust.get(Materials.Ash)}); - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkSteel, 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.ElectricalSteel), OrePrefixes.dust.get(Materials.Coal), OrePrefixes.dust.get(Materials.Obsidian)}); - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.EnderiumBase, 4L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.Tin), OrePrefixes.dust.get(Materials.Tin), OrePrefixes.dust.get(Materials.Silver), OrePrefixes.dust.get(Materials.Platinum)}); - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Enderium, 2L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.EnderiumBase), OrePrefixes.dust.get(Materials.EnderiumBase), OrePrefixes.dust.get(Materials.Thaumium), OrePrefixes.dust.get(Materials.EnderPearl)}); + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.VanadiumSteel, 9L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.Steel), OrePrefixes.dust.get(Materials.Steel), OrePrefixes.dust.get(Materials.Steel), OrePrefixes.dust.get(Materials.Steel), OrePrefixes.dust.get(Materials.Steel), OrePrefixes.dust.get(Materials.Steel), OrePrefixes.dust.get(Materials.Steel), OrePrefixes.dust.get(Materials.Vanadium), OrePrefixes.dust.get(Materials.Chrome)}); + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.HSSG, 9L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.TungstenSteel), OrePrefixes.dust.get(Materials.TungstenSteel), OrePrefixes.dust.get(Materials.TungstenSteel), OrePrefixes.dust.get(Materials.TungstenSteel), OrePrefixes.dust.get(Materials.TungstenSteel), OrePrefixes.dust.get(Materials.Chrome), OrePrefixes.dust.get(Materials.Molybdenum), OrePrefixes.dust.get(Materials.Molybdenum), OrePrefixes.dust.get(Materials.Vanadium)}); + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.HSSE, 9L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.HSSG), OrePrefixes.dust.get(Materials.HSSG), OrePrefixes.dust.get(Materials.HSSG), OrePrefixes.dust.get(Materials.HSSG), OrePrefixes.dust.get(Materials.HSSG), OrePrefixes.dust.get(Materials.HSSG), OrePrefixes.dust.get(Materials.Cobalt), OrePrefixes.dust.get(Materials.Manganese), OrePrefixes.dust.get(Materials.Silicon)}); + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.HSSS, 9L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.HSSG), OrePrefixes.dust.get(Materials.HSSG), OrePrefixes.dust.get(Materials.HSSG), OrePrefixes.dust.get(Materials.HSSG), OrePrefixes.dust.get(Materials.HSSG), OrePrefixes.dust.get(Materials.HSSG), OrePrefixes.dust.get(Materials.Iridium), OrePrefixes.dust.get(Materials.Iridium), OrePrefixes.dust.get(Materials.Osmium)}); - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.ShadowIron, 3L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.Iron), OrePrefixes.dust.get(Materials.Thaumium), OrePrefixes.dust.get(Materials.Thaumium), OrePrefixes.dust.get(Materials.Thaumium)}); GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.IronWood, 2L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.Iron), OrePrefixes.dust.get(Materials.LiveRoot), OrePrefixes.dustTiny.get(Materials.Gold)}); - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Hepatizon, 3L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.Copper), OrePrefixes.dust.get(Materials.Copper), OrePrefixes.dust.get(Materials.Copper), OrePrefixes.dustTiny.get(Materials.Gold), OrePrefixes.dustTiny.get(Materials.Gold), OrePrefixes.dustTiny.get(Materials.Gold), OrePrefixes.dustTiny.get(Materials.Silver), OrePrefixes.dustTiny.get(Materials.Silver), OrePrefixes.dustTiny.get(Materials.Silver)}); - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Angmallen, 2L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.Iron), OrePrefixes.dust.get(Materials.Gold)}); - GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Inolashite, 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.Alduorite), OrePrefixes.dust.get(Materials.Ceruclase)}); - GT_ModHandler.addShapelessCraftingRecipe(new ItemStack(Items.gunpowder, 3), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.Coal), OrePrefixes.dust.get(Materials.Sulfur), OrePrefixes.dust.get(Materials.Saltpeter), OrePrefixes.dust.get(Materials.Saltpeter)}); GT_ModHandler.addShapelessCraftingRecipe(new ItemStack(Items.gunpowder, 2), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.Charcoal), OrePrefixes.dust.get(Materials.Sulfur), OrePrefixes.dust.get(Materials.Saltpeter), OrePrefixes.dust.get(Materials.Saltpeter)}); GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Saltpeter, 5L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.Potassium), OrePrefixes.cell.get(Materials.Nitrogen), OrePrefixes.cell.get(Materials.Oxygen), OrePrefixes.cell.get(Materials.Oxygen), OrePrefixes.cell.get(Materials.Oxygen)}); GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("carbonFiber", 1L)); - if (GT_Mod.gregtechproxy.mDisableIC2Cables) { GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("copperCableItem", 1L)); GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("insulatedCopperCableItem", 1L)); @@ -505,7 +493,6 @@ public class GT_CraftingRecipeLoader GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("splitterCableItem", 1L)); GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("electrolyzer", 1L)); - if (Loader.isModLoaded("NotEnoughItems")) { codechicken.nei.api.API.hideItem(GT_ModHandler.getIC2Item("copperCableItem", 1L)); codechicken.nei.api.API.hideItem(GT_ModHandler.getIC2Item("insulatedCopperCableItem", 1L)); @@ -520,7 +507,6 @@ public class GT_CraftingRecipeLoader codechicken.nei.api.API.hideItem(GT_ModHandler.getIC2Item("splitterCableItem", 1L)); codechicken.nei.api.API.hideItem(GT_ModHandler.getIC2Item("electrolyzer", 1L)); codechicken.nei.api.API.hideItem(GT_ModHandler.getIC2Item("cutter", 1L)); - } GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("batBox", 1L)); GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("batBox", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"PCP", "BBB", "PPP", 'C', OrePrefixes.cableGt01.get(Materials.Tin), 'P', OrePrefixes.plank.get(Materials.Wood), 'B', OrePrefixes.battery.get(Materials.Basic)}); @@ -583,25 +569,26 @@ public class GT_CraftingRecipeLoader } else { GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("glassFiberCableItem", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"GGG", "EDE", "GGG", Character.valueOf('G'), new ItemStack(Blocks.glass, 1, 32767), Character.valueOf('D'), OrePrefixes.dust.get(Materials.Silver), Character.valueOf('E'), ItemList.IC2_Energium_Dust.get(1L, new Object[0])}); } + if (Loader.isModLoaded("NotEnoughItems")) { - codechicken.nei.api.API.hideItem(GT_ModHandler.getIC2Item("reactorUraniumSimple", 1L,1)); - codechicken.nei.api.API.hideItem(GT_ModHandler.getIC2Item("reactorUraniumDual", 1L,1)); - codechicken.nei.api.API.hideItem(GT_ModHandler.getIC2Item("reactorUraniumQuad", 1L,1)); - codechicken.nei.api.API.hideItem(GT_ModHandler.getIC2Item("reactorMOXSimple", 1L,1)); - codechicken.nei.api.API.hideItem(GT_ModHandler.getIC2Item("reactorMOXDual", 1L,1)); - codechicken.nei.api.API.hideItem(GT_ModHandler.getIC2Item("reactorMOXQuad", 1L,1)); - } - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("UranFuel", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"UUU", "NNN", "UUU", 'U', OrePrefixes.ingot.get(Materials.Uranium), 'N', OrePrefixes.nugget.get(Materials.Uranium235)}); - GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("MOXFuel", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"UUU", "NNN", "UUU", 'U', OrePrefixes.ingot.get(Materials.Uranium), 'N', OrePrefixes.ingot.get(Materials.Plutonium)}); + codechicken.nei.api.API.hideItem(GT_ModHandler.getIC2Item("reactorUraniumSimple", 1L,1)); + codechicken.nei.api.API.hideItem(GT_ModHandler.getIC2Item("reactorUraniumDual", 1L,1)); + codechicken.nei.api.API.hideItem(GT_ModHandler.getIC2Item("reactorUraniumQuad", 1L,1)); + codechicken.nei.api.API.hideItem(GT_ModHandler.getIC2Item("reactorMOXSimple", 1L,1)); + codechicken.nei.api.API.hideItem(GT_ModHandler.getIC2Item("reactorMOXDual", 1L,1)); + codechicken.nei.api.API.hideItem(GT_ModHandler.getIC2Item("reactorMOXQuad", 1L,1)); + } + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("UranFuel", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"UUU", "NNN", "UUU", 'U', OrePrefixes.ingot.get(Materials.Uranium), 'N', OrePrefixes.nugget.get(Materials.Uranium235)}); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("MOXFuel", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"UUU", "NNN", "UUU", 'U', OrePrefixes.ingot.get(Materials.Uranium), 'N', OrePrefixes.ingot.get(Materials.Plutonium)}); + + + GT_ModHandler.addCraftingRecipe(ItemList.Uraniumcell_2.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"RPR", " ", " ", 'R', ItemList.Uraniumcell_1, 'P', OrePrefixes.plate.get(Materials.Iron)}); + GT_ModHandler.addCraftingRecipe(ItemList.Uraniumcell_4.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"RPR", "CPC", "RPR", 'R', ItemList.Uraniumcell_1, 'P', OrePrefixes.plate.get(Materials.Iron), 'C', OrePrefixes.plate.get(Materials.Copper)}); + GT_ModHandler.addCraftingRecipe(ItemList.Moxcell_2.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"RPR", " ", " ", 'R', ItemList.Moxcell_1, 'P', OrePrefixes.plate.get(Materials.Iron)}); + GT_ModHandler.addCraftingRecipe(ItemList.Moxcell_4.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"RPR", "CPC", "RPR", 'R', ItemList.Moxcell_1, 'P', OrePrefixes.plate.get(Materials.Iron), 'C', OrePrefixes.plate.get(Materials.Copper)}); - - GT_ModHandler.addCraftingRecipe(ItemList.Uraniumcell_2.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"RPR", " ", " ", 'R', ItemList.Uraniumcell_1, 'P', OrePrefixes.plate.get(Materials.Iron)}); - GT_ModHandler.addCraftingRecipe(ItemList.Uraniumcell_4.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"RPR", "CPC", "RPR", 'R', ItemList.Uraniumcell_1, 'P', OrePrefixes.plate.get(Materials.Iron), 'C', OrePrefixes.plate.get(Materials.Copper)}); - GT_ModHandler.addCraftingRecipe(ItemList.Moxcell_2.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"RPR", " ", " ", 'R', ItemList.Moxcell_1, 'P', OrePrefixes.plate.get(Materials.Iron)}); - GT_ModHandler.addCraftingRecipe(ItemList.Moxcell_4.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"RPR", "CPC", "RPR", 'R', ItemList.Moxcell_1, 'P', OrePrefixes.plate.get(Materials.Iron), 'C', OrePrefixes.plate.get(Materials.Copper)}); - - GT_ModHandler.removeRecipeByOutput(ItemList.IC2_Energium_Dust.get(1L, new Object[0])); - if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.gregtechrecipes, "energycrystalruby", true)) { + GT_ModHandler.removeRecipeByOutput(ItemList.IC2_Energium_Dust.get(1L, new Object[0])); + if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.gregtechrecipes, "energycrystalruby", true)) { GT_ModHandler.addCraftingRecipe(ItemList.IC2_Energium_Dust.get(9L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"RDR", "DRD", "RDR", Character.valueOf('R'), OrePrefixes.dust.get(Materials.Redstone), Character.valueOf('D'), OrePrefixes.dust.get(Materials.Ruby)}); } else { GT_ModHandler.addCraftingRecipe(ItemList.IC2_Energium_Dust.get(9L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"RDR", "DRD", "RDR", Character.valueOf('R'), OrePrefixes.dust.get(Materials.Redstone), Character.valueOf('D'), OrePrefixes.dust.get(Materials.Diamond)}); @@ -627,6 +614,46 @@ public class GT_CraftingRecipeLoader (GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("reactorReflectorThick", 1L, 1)))) { GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("reactorReflectorThick", 1L, 1), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{" N ", "NBN", " N ", Character.valueOf('B'), OrePrefixes.plate.get(Materials.Beryllium), Character.valueOf('N'), GT_ModHandler.getIC2Item("reactorReflector", 1L, 1)}); } + if ((GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.harderrecipes, "cropharvester", true)) && + (GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("crophavester", 1L)))) { + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("crophavester", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"ACA", "PMS", "WOW", 'M', ItemList.Hull_HV, 'C', OrePrefixes.circuit.get(Materials.Master), 'A', ItemList.Robot_Arm_HV, 'P', ItemList.Electric_Piston_HV, 'S', ItemList.Sensor_HV, 'W', OrePrefixes.toolHeadSense.get(Materials.StainlessSteel), 'O', ItemList.Conveyor_Module_HV}); + } + if ((GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.harderrecipes, "nuclearReactor", true)) && + (GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("nuclearReactor", 1L)))) { + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("nuclearReactor", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"PCP", "PMP", "PAP", 'P', OrePrefixes.plateDense.get(Materials.Lead), 'C', OrePrefixes.circuit.get(Materials.Master), 'M', GT_ModHandler.getIC2Item("reactorChamber", 1), 'A', ItemList.Robot_Arm_EV}); + + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("reactorChamber", 1L)); + GT_Values.RA.addAssemblerRecipe(ItemList.Hull_EV.get(1, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Lead, 4), GT_ModHandler.getIC2Item("reactorChamber", 1), 200, 256); + + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("reactorvessel", 1L)); + GT_Values.RA.addChemicalBathRecipe(GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Lead, 1), Materials.Concrete.getMolten(144), GT_ModHandler.getIC2Item("reactorvessel", 1), GT_Values.NI, GT_Values.NI, null, 400, 80); + + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("reactorAccessHatch", 1L)); + GT_Values.RA.addAssemblerRecipe(GT_ModHandler.getIC2Item("reactorvessel", 1L), ItemList.Conveyor_Module_EV.get(1, new Object[0]), GT_ModHandler.getIC2Item("reactorAccessHatch", 1L), 200, 80); + + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("reactorFluidPort", 1L)); + GT_Values.RA.addAssemblerRecipe(GT_ModHandler.getIC2Item("reactorvessel", 1L), ItemList.Electric_Pump_EV.get(1, new Object[0]), GT_ModHandler.getIC2Item("reactorFluidPort", 1L), 200, 80); + + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("reactorRedstonePort", 1L)); + GT_Values.RA.addAssemblerRecipe(GT_ModHandler.getIC2Item("reactorvessel", 1L), GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Master, 1), GT_ModHandler.getIC2Item("reactorRedstonePort", 1L), 200, 80); + } + if ((GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.harderrecipes, "rtg", true)) && + (GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("RTGenerator", 1L)))) { + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("RTGenerator", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"III", "IMI", "ICI", 'I', ItemList.IC2_Item_Casing_Steel, 'C', OrePrefixes.circuit.get(Materials.Master), 'M', ItemList.Hull_IV}); + + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("RTHeatGenerator", 1L)); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("RTHeatGenerator", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"III", "IMB", "ICI", 'I', ItemList.IC2_Item_Casing_Steel, 'C', OrePrefixes.circuit.get(Materials.Master), 'M', ItemList.Hull_IV, 'B', GT_OreDictUnificator.get(OrePrefixes.block, Materials.Copper, 1)}); + } + if ((GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.harderrecipes, "windRotor", true)) && + (GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("carbonrotor", 1L)))) { + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("carbonrotor", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"dBS", "BTB", "SBw", 'B', GT_ModHandler.getIC2Item("carbonrotorblade", 1), 'S', OrePrefixes.screw.get(Materials.Iridium), 'T', GT_ModHandler.getIC2Item("steelshaft", 1)}); + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("steelrotor", 1L)); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("steelrotor", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"dBS", "BTB", "SBw", 'B', GT_ModHandler.getIC2Item("steelrotorblade", 1), 'S', OrePrefixes.screw.get(Materials.StainlessSteel), 'T', GT_ModHandler.getIC2Item("ironshaft", 1)}); + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("ironrotor", 1L)); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("ironrotor", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"dBS", "BTB", "SBw", 'B', GT_ModHandler.getIC2Item("ironrotorblade", 1), 'S', OrePrefixes.screw.get(Materials.WroughtIron), 'T', GT_ModHandler.getIC2Item("ironshaft", 1)}); + GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("woodrotor", 1L)); + GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("woodrotor", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"dBS", "BTB", "SBw", 'B', GT_ModHandler.getIC2Item("woodrotorblade", 1), 'S', OrePrefixes.screw.get(Materials.WroughtIron), 'T', OrePrefixes.stickLong.get(Materials.WroughtIron)}); + } if (GT_OreDictUnificator.get(OrePrefixes.gear, Materials.Diamond, 1L) != null) { tStack = GT_ModHandler.getRecipeOutput(new ItemStack[]{GT_OreDictUnificator.get(OrePrefixes.gear, Materials.Iron, 1L), new ItemStack(Items.redstone, 1), GT_OreDictUnificator.get(OrePrefixes.gear, Materials.Iron, 1L), GT_OreDictUnificator.get(OrePrefixes.gear, Materials.Gold, 1L), GT_OreDictUnificator.get(OrePrefixes.gear, Materials.Iron, 1L), GT_OreDictUnificator.get(OrePrefixes.gear, Materials.Gold, 1L), GT_OreDictUnificator.get(OrePrefixes.gear, Materials.Diamond, 1L), new ItemStack(Items.diamond_pickaxe, 1), GT_OreDictUnificator.get(OrePrefixes.gear, Materials.Diamond, 1L)}); if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.harderrecipes, "quarry", true)) { @@ -637,6 +664,14 @@ public class GT_CraftingRecipeLoader GT_ModHandler.removeRecipeByOutput(tStack); } } + if ((GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.harderrecipes, "sugarpaper", true))) { + GT_ModHandler.removeRecipeByOutput(new ItemStack(Items.paper)); + GT_ModHandler.removeRecipeByOutput(new ItemStack(Items.sugar)); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Paper, 2), new Object[]{"SSS", " m ", 'S', new ItemStack(Items.reeds)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sugar, 1), new Object[]{"Sm ", 'S', new ItemStack(Items.reeds)}); + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.paper, Materials.Empty, 2), new Object[]{" C ", "SSS", " C ", 'S', GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Paper, 1), 'C', new ItemStack(Blocks.stone_slab)}); + } + GT_Log.out.println("GT_Mod: Applying Recipes for Tools"); if ((GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.harderrecipes, "nanosaber", true)) && (GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("nanoSaber", 1L)))) { diff --git a/src/main/java/gregtech/loaders/postload/GT_CropLoader.java b/src/main/java/gregtech/loaders/postload/GT_CropLoader.java index d50c45fc..6cc30cab 100644 --- a/src/main/java/gregtech/loaders/postload/GT_CropLoader.java +++ b/src/main/java/gregtech/loaders/postload/GT_CropLoader.java @@ -15,31 +15,54 @@ public class GT_CropLoader public void run() { GT_Log.out.println("GT_Mod: Register Crops to IC2."); try { - new GT_BaseCrop(124, "Indigo", "Eloraam", ItemList.Crop_Drop_Indigo.get(1L, new Object[0]), null, ItemList.Crop_Drop_Indigo.get(4L, new Object[0]), 2, 4, 0, 1, 4, 1, 1, 0, 4, 0, new String[]{"Flower", "Color", "Ingredient"}); - new GT_BaseCrop(125, "Flax", "Eloraam", new ItemStack(Items.string, 1), null, null, 2, 4, 0, 1, 4, 1, 1, 2, 0, 1, new String[]{"Silk", "Vine", "Addictive"}); - new GT_BaseCrop(126, "Oilberries", "Spacetoad", ItemList.Crop_Drop_OilBerry.get(1L, new Object[0]), null, null, 9, 4, 0, 1, 4, 6, 1, 2, 1, 12, new String[]{"Fire", "Dark", "Reed", "Rotten", "Coal", "Oil"}); - new GT_BaseCrop(127, "Bobsyeruncleranks", "GenerikB", ItemList.Crop_Drop_BobsYerUncleRanks.get(1L, new Object[0]), new ItemStack[]{new ItemStack(Items.emerald, 1)}, null, 11, 4, 0, 1, 4, 4, 0, 8, 2, 9, new String[]{"Shiny", "Vine", "Emerald", "Berylium", "Crystal"}); - new GT_BaseCrop(128, "Diareed", "Direwolf20", GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Diamond, 1L), new ItemStack[]{new ItemStack(Items.diamond, 1)}, null, 12, 4, 0, 1, 4, 5, 0, 10, 2, 10, new String[]{"Fire", "Shiny", "Reed", "Coal", "Diamond", "Crystal"}); - new GT_BaseCrop(129, "Withereed", "CovertJaguar", GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coal, 1L), new ItemStack[]{new ItemStack(Items.coal, 1), new ItemStack(Items.coal, 1)}, null, 8, 4, 0, 1, 4, 2, 0, 4, 1, 3, new String[]{"Fire", "Undead", "Reed", "Coal", "Rotten", "Wither"}); - new GT_BaseCrop(130, "Blazereed", "Mr. Brain", new ItemStack(Items.blaze_powder, 1), new ItemStack[]{new ItemStack(Items.blaze_rod, 1)}, null, 6, 4, 0, 1, 4, 0, 4, 1, 0, 0, new String[]{"Fire", "Blaze", "Reed", "Sulfur"}); - new GT_BaseCrop(131, "Eggplant", "Link", new ItemStack(Items.egg, 1), new ItemStack[]{new ItemStack(Items.chicken, 1), new ItemStack(Items.feather, 1), new ItemStack(Items.feather, 1), new ItemStack(Items.feather, 1)}, null, 6, 3, 900, 2, 3, 0, 4, 1, 0, 0, new String[]{"Chicken", "Egg", "Edible", "Feather", "Flower", "Addictive"}); - new GT_BaseCrop(132, "Corium", "Gregorius Techneticies", new ItemStack(Items.leather, 1), null, null, 6, 4, 0, 1, 4, 0, 2, 3, 1, 0, new String[]{"Cow", "Silk", "Vine"}); - new GT_BaseCrop(133, "Corpseplant", "Mr. Kenny", new ItemStack(Items.rotten_flesh, 1), new ItemStack[]{ItemList.Dye_Bonemeal.get(1L, new Object[0]), ItemList.Dye_Bonemeal.get(1L, new Object[0]), new ItemStack(Items.bone, 1)}, null, 5, 4, 0, 1, 4, 0, 2, 1, 0, 3, new String[]{"Toxic", "Undead", "Vine", "Edible", "Rotten"}); - new GT_BaseCrop(134, "Creeperweed", "General Spaz", GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Gunpowder, 1L), null, null, 7, 4, 0, 1, 4, 3, 0, 5, 1, 3, new String[]{"Creeper", "Vine", "Explosive", "Fire", "Sulfur", "Saltpeter", "Coal"}); - new GT_BaseCrop(135, "Enderbloom", "RichardG", GT_OreDictUnificator.get(OrePrefixes.dust, Materials.EnderPearl, 1L), new ItemStack[]{new ItemStack(Items.ender_pearl, 1), new ItemStack(Items.ender_pearl, 1), new ItemStack(Items.ender_eye, 1)}, null, 10, 4, 0, 1, 4, 5, 0, 2, 1, 6, new String[]{"Ender", "Flower", "Shiny"}); - new GT_BaseCrop(136, "Meatrose", "VintageBeef", new ItemStack(Items.dye, 1, 9), new ItemStack[]{new ItemStack(Items.beef, 1), new ItemStack(Items.porkchop, 1), new ItemStack(Items.chicken, 1), new ItemStack(Items.fish, 1)}, null, 7, 4, 1500, 1, 4, 0, 4, 1, 3, 0, new String[]{"Edible", "Flower", "Cow", "Fish", "Chicken", "Pig"}); - new GT_BaseCrop(137, "Milkwart", "Mr. Brain", ItemList.Crop_Drop_MilkWart.get(1L, new Object[0]), null, ItemList.Crop_Drop_MilkWart.get(4L, new Object[0]), 6, 3, 900, 1, 3, 0, 3, 0, 1, 0, new String[]{"Edible", "Milk", "Cow"}); - new GT_BaseCrop(138, "Slimeplant", "Neowulf", new ItemStack(Items.slime_ball, 1), null, null, 6, 4, 0, 3, 4, 3, 0, 0, 0, 2, new String[]{"Slime", "Bouncy", "Sticky", "Bush"}); - new GT_BaseCrop(139, "Spidernip", "Mr. Kenny", new ItemStack(Items.string, 1), new ItemStack[]{new ItemStack(Items.spider_eye, 1), new ItemStack(Blocks.web, 1)}, null, 4, 4, 600, 1, 4, 2, 1, 4, 1, 3, new String[]{"Toxic", "Silk", "Spider", "Flower", "Ingredient", "Addictive"}); - new GT_BaseCrop(140, "Tearstalks", "Neowulf", new ItemStack(Items.ghast_tear, 1), null, null, 8, 4, 0, 1, 4, 1, 2, 0, 0, 0, new String[]{"Healing", "Nether", "Ingredient", "Reed", "Ghast"}); - new GT_BaseCrop(141, "Tine", "Gregorius Techneticies", ItemList.Crop_Drop_Tine.get(1L, new Object[0]), null, null, 5, 3, 0, 2, 3, 2, 0, 3, 0, 0, new String[]{"Shiny", "Metal", "Pine", "Tin", "Bush"}); - new GT_BaseCrop(142, "Coppon", "Mr. Brain", ItemList.Crop_Drop_Coppon.get(1L, new Object[0]), null, null, 6, 3, 0, 2, 3, 2, 0, 1, 1, 1, new String[]{"Shiny", "Metal", "Cotton", "Copper", "Bush"}); - new GT_BaseCrop(143, "Brown Mushrooms", "Mr. Brain", new ItemStack(Blocks.brown_mushroom, 1), null, new ItemStack(Blocks.brown_mushroom, 4), 1, 3, 0, 1, 3, 0, 2, 0, 0, 2, new String[]{"Edible", "Mushroom", "Ingredient"}); - new GT_BaseCrop(144, "Red Mushrooms", "Mr. Kenny", new ItemStack(Blocks.red_mushroom, 1), null, new ItemStack(Blocks.red_mushroom, 4), 1, 3, 0, 1, 3, 0, 1, 3, 0, 2, new String[]{"Toxic", "Mushroom", "Ingredient"}); - new GT_BaseCrop(145, "Argentia", "Eloraam", ItemList.Crop_Drop_Argentia.get(1L, new Object[0]), null, null, 7, 4, 0, 3, 4, 2, 0, 1, 0, 0, new String[]{"Shiny", "Metal", "Silver", "Reed"}); - new GT_BaseCrop(146, "Plumbilia", "KingLemming", ItemList.Crop_Drop_Plumbilia.get(1L, new Object[0]), null, null, 6, 4, 0, 3, 4, 2, 0, 3, 1, 1, new String[]{"Heavy", "Metal", "Lead", "Reed"}); - new GT_BaseCrop(147, "Steeleafranks", "Benimatic", GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Steeleaf, 1L), new ItemStack[]{GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steeleaf, 1L)}, null, 10, 4, 0, 1, 4, 3, 0, 7, 2, 8, new String[]{"Metal", "Vine", "Iron"}); - new GT_BaseCrop(148, "Liveroots", "Benimatic", GT_OreDictUnificator.get(OrePrefixes.dust, Materials.LiveRoot, 1L), new ItemStack[]{ItemList.TF_LiveRoot.get(1L, new Object[0])}, null, 8, 4, 0, 1, 4, 2, 0, 5, 2, 6, new String[]{"Wood", "Vine"}); + ItemStack[] tI = new ItemStack[]{ItemList.Crop_Drop_Indigo.get(4L, new Object[0]),ItemList.Crop_Drop_MilkWart.get(4L, new Object[0]),new ItemStack(Blocks.brown_mushroom, 4),new ItemStack(Blocks.red_mushroom, 4)}; + new GT_BaseCrop(124, "Indigo", "Eloraam", tI[0], 2, 4, 0, 1, 4, 1, 1, 0, 4, 0, new String[]{"Flower", "Color", "Ingredient"}, ItemList.Crop_Drop_Indigo.get(1L, new Object[0]), null); + new GT_BaseCrop(125, "Flax", "Eloraam", null, 2, 4, 0, 1, 4, 1, 1, 2, 0, 1, new String[]{"Silk", "Vine", "Addictive"}, new ItemStack(Items.string, 1), null); + new GT_BaseCrop(126, "Oilberries", "Spacetoad", null, 9, 4, 0, 1, 4, 6, 1, 2, 1,12, new String[]{"Fire", "Dark", "Reed", "Rotten", "Coal", "Oil"}, ItemList.Crop_Drop_OilBerry.get(1L, new Object[0]), null); + new GT_BaseCrop(127, "Bobsyeruncleranks", "GenerikB", null, 11, 4, 0, 1, 4, 4, 0, 8, 2, 9, new String[]{"Shiny", "Vine", "Emerald", "Berylium", "Crystal"}, Materials.Emerald, ItemList.Crop_Drop_BobsYerUncleRanks.get(1L, new Object[0]), new ItemStack[]{new ItemStack(Items.emerald, 1)}); + new GT_BaseCrop(128, "Diareed", "Direwolf20", null, 12, 4, 0, 1, 4, 5, 0,10, 2,10, new String[]{"Fire", "Shiny", "Reed", "Coal", "Diamond", "Crystal"}, Materials.Diamond, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Diamond, 1L), new ItemStack[]{new ItemStack(Items.diamond, 1)}); + new GT_BaseCrop(129, "Withereed", "CovertJaguar", null, 8, 4, 0, 1, 4, 2, 0, 4, 1, 3, new String[]{"Fire", "Undead", "Reed", "Coal", "Rotten", "Wither"}, Materials.Coal, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coal, 1L), new ItemStack[]{new ItemStack(Items.coal, 1), new ItemStack(Items.coal, 1)}); + new GT_BaseCrop(130, "Blazereed", "Mr. Brain", null, 6, 4, 0, 1, 4, 0, 4, 1, 0, 0, new String[]{"Fire", "Blaze", "Reed", "Sulfur"}, new ItemStack(Items.blaze_powder, 1), new ItemStack[]{new ItemStack(Items.blaze_rod, 1)}); + new GT_BaseCrop(131, "Eggplant", "Link", null, 6, 3, 900, 2, 3, 0, 4, 1, 0, 0, new String[]{"Chicken", "Egg", "Edible", "Feather", "Flower", "Addictive"}, new ItemStack(Items.egg, 1), new ItemStack[]{new ItemStack(Items.chicken, 1), new ItemStack(Items.feather, 1), new ItemStack(Items.feather, 1), new ItemStack(Items.feather, 1)}); + new GT_BaseCrop(132, "Corium", "Gregorius Techneticies",null, 6, 4, 0, 1, 4, 0, 2, 3, 1, 0, new String[]{"Cow", "Silk", "Vine"}, new ItemStack(Items.leather, 1), null); + new GT_BaseCrop(133, "Corpseplant", "Mr. Kenny", null, 5, 4, 0, 1, 4, 0, 2, 1, 0, 3, new String[]{"Toxic", "Undead", "Vine", "Edible", "Rotten"}, new ItemStack(Items.rotten_flesh, 1), new ItemStack[]{ItemList.Dye_Bonemeal.get(1L, new Object[0]), ItemList.Dye_Bonemeal.get(1L, new Object[0]), new ItemStack(Items.bone, 1)}); + new GT_BaseCrop(134, "Creeperweed", "General Spaz", null, 7, 4, 0, 1, 4, 3, 0, 5, 1, 3, new String[]{"Creeper", "Vine", "Explosive", "Fire", "Sulfur", "Saltpeter", "Coal"}, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Gunpowder, 1L), null); + new GT_BaseCrop(135, "Enderbloom", "RichardG", null, 10, 4, 0, 1, 4, 5, 0, 2, 1, 6, new String[]{"Ender", "Flower", "Shiny"}, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.EnderPearl, 1L), new ItemStack[]{new ItemStack(Items.ender_pearl, 1), new ItemStack(Items.ender_pearl, 1), new ItemStack(Items.ender_eye, 1)}); + new GT_BaseCrop(136, "Meatrose", "VintageBeef", null, 7, 4, 1500, 1, 4, 0, 4, 1, 3, 0, new String[]{"Edible", "Flower", "Cow", "Fish", "Chicken", "Pig"}, new ItemStack(Items.dye, 1, 9), new ItemStack[]{new ItemStack(Items.beef, 1), new ItemStack(Items.porkchop, 1), new ItemStack(Items.chicken, 1), new ItemStack(Items.fish, 1)}); + new GT_BaseCrop(137, "Milkwart", "Mr. Brain", tI[1], 6, 3, 900, 1, 3, 0, 3, 0, 1, 0, new String[]{"Edible", "Milk", "Cow"}, ItemList.Crop_Drop_MilkWart.get(1L, new Object[0]), null); + new GT_BaseCrop(138, "Slimeplant", "Neowulf", null, 6, 4, 0, 3, 4, 3, 0, 0, 0, 2, new String[]{"Slime", "Bouncy", "Sticky", "Bush"}, new ItemStack(Items.slime_ball, 1), null); + new GT_BaseCrop(139, "Spidernip", "Mr. Kenny", null, 4, 4, 600, 1, 4, 2, 1, 4, 1, 3, new String[]{"Toxic", "Silk", "Spider", "Flower", "Ingredient", "Addictive"}, new ItemStack(Items.string, 1), new ItemStack[]{new ItemStack(Items.spider_eye, 1), new ItemStack(Blocks.web, 1)}); + new GT_BaseCrop(140, "Tearstalks", "Neowulf", null, 8, 4, 0, 1, 4, 1, 2, 0, 0, 0, new String[]{"Healing", "Nether", "Ingredient", "Reed", "Ghast"}, new ItemStack(Items.ghast_tear, 1), null); + new GT_BaseCrop(141, "Tine", "Gregorius Techneticies", null, 5, 3, 0, 2, 3, 2, 0, 3, 0, 0, new String[]{"Shiny", "Metal", "Pine", "Tin", "Bush"}, Materials.Tin, ItemList.Crop_Drop_Tine.get(1L, new Object[0]), null); + new GT_BaseCrop(142, "Coppon", "Mr. Brain", null, 6, 3, 0, 2, 3, 2, 0, 1, 1, 1, new String[]{"Shiny", "Metal", "Cotton", "Copper", "Bush"}, Materials.Copper, ItemList.Crop_Drop_Coppon.get(1L, new Object[0]), null); + new GT_BaseCrop(143, "Brown Mushrooms", "Mr. Brain", tI[2], 1, 3, 0, 1, 3, 0, 2, 0, 0, 2, new String[]{"Edible", "Mushroom", "Ingredient"}, new ItemStack(Blocks.brown_mushroom, 1), null); + new GT_BaseCrop(144, "Red Mushrooms", "Mr. Kenny", tI[3], 1, 3, 0, 1, 3, 0, 1, 3, 0, 2, new String[]{"Toxic", "Mushroom", "Ingredient"}, new ItemStack(Blocks.red_mushroom, 1), null); + new GT_BaseCrop(145, "Argentia", "Eloraam", null, 7, 4, 0, 3, 4, 2, 0, 1, 0, 0, new String[]{"Shiny", "Metal", "Silver", "Reed"}, Materials.Silver, ItemList.Crop_Drop_Argentia.get(1L, new Object[0]), null); + new GT_BaseCrop(146, "Plumbilia", "KingLemming", null, 6, 4, 0, 3, 4, 2, 0, 3, 1, 1, new String[]{"Heavy", "Metal", "Lead", "Reed"}, Materials.Lead, ItemList.Crop_Drop_Plumbilia.get(1L, new Object[0]), null); + new GT_BaseCrop(147, "Steeleafranks", "Benimatic", null, 10, 4, 0, 1, 4, 3, 0, 7, 2, 8, new String[]{"Metal", "Vine", "Iron"}, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Steeleaf, 1L), new ItemStack[]{GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steeleaf, 1L)}); + new GT_BaseCrop(148, "Liveroots", "Benimatic", null, 8, 4, 0, 1, 4, 2, 0, 5, 2, 6, new String[]{"Wood", "Vine"}, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.LiveRoot, 1L), new ItemStack[]{ItemList.TF_LiveRoot.get(1L, new Object[0])}); + + new GT_BaseCrop(149, "Trollplant", "unknown", null, 6, 5, 1000, 1, 4, 0, 0, 5, 2, 8, new String[]{"Troll", "Bad", "Scrap"}, GT_OreDictUnificator.get(OrePrefixes.gem, Materials.FoolsRuby, 1L), new ItemStack[]{ItemList.IC2_Plantball.get(1, new Object[0]), ItemList.IC2_Scrap.get(1, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Plutonium241, 1L)}); + new GT_BaseCrop(150, "Lazulia", "unknown", null, 7, 4, 0, 2, 4, 4, 2, 5, 7, 4, new String[]{"Shiny", "Bad", "Crystal", "Lapis"}, Materials.Lapis, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Lapis, 1L), null); + new GT_BaseCrop(151, "Glowheat", "unknown", null, 10, 7, 0, 5, 7, 3, 3, 3, 5, 4, new String[]{"Light", "Shiny", "Crystal"}, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Glowstone, 1L), null); + new GT_BaseCrop(153, "Fertilia", "unknown", null, 3, 4, 0, 1, 4, 2, 3, 5, 4, 8, new String[]{"Growth", "Healing", "Flower"}, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Calcite, 1L), new ItemStack[]{ItemList.IC2_Fertilizer.get(1, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Apatite, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Phosphate, 1L)}); + new GT_BaseCrop(154, "Bauxia", "unknown", null, 6, 3, 0, 2, 3, 5, 0, 2, 3, 3, new String[]{"Metal", "Aluminium", "Reed", "Aluminium"}, Materials.Aluminium, ItemList.Crop_Drop_Bauxite.get(1, new Object[0]), null); + new GT_BaseCrop(155, "Titania", "unknown", null, 9, 3, 0, 2, 3, 5, 0, 3, 3, 1, new String[]{"Metal", "Heavy", "Reed", "Titanium"}, Materials.Titanium, ItemList.Crop_Drop_Ilmenite.get(1, new Object[0]), null); + new GT_BaseCrop(156, "Reactoria", "unknown", null, 12, 4, 0, 2, 4, 4, 0, 1, 2, 1, new String[]{"Radioactive", "Metal", "Danger", "Uranium"}, Materials.Uranium, ItemList.Crop_Drop_Pitchblende.get(1, new Object[0]), new ItemStack[]{ItemList.Crop_Drop_Uraninite.get(1, new Object[0])}); + new GT_BaseCrop(157, "God of Thunder", "unknown", null, 9, 4, 0, 2, 4, 3, 0, 5, 1, 2, new String[]{"Radioactive", "Metal", "Coal", "Thorium"}, Materials.Thorium, GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Coal, 1L), new ItemStack[]{GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Coal, 1L), ItemList.Crop_Drop_Thorium.get(1, new Object[0])}); + new GT_BaseCrop(158, "Transformium", "unknown", null, 12, 4, 2500, 1, 4, 6, 2, 1, 6, 1, new String[]{"Transform", "Coal", "Reed"}, ItemList.Crop_Drop_UUABerry.get(1L, new Object[0]), new ItemStack[]{ItemList.Crop_Drop_UUABerry.get(1L, new Object[0]), ItemList.Crop_Drop_UUABerry.get(1L, new Object[0]), ItemList.Crop_Drop_UUABerry.get(1L, new Object[0]), ItemList.Crop_Drop_UUABerry.get(1L, new Object[0]), ItemList.Crop_Drop_UUMBerry.get(1L, new Object[0])}); + new GT_BaseCrop(159, "Starwart", "unknown", null, 12, 4, 4000, 1, 4, 2, 0, 0, 1, 0, new String[]{"Wither", "Nether", "Undead", "Netherstar"}, Materials.NetherStar, GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Coal, 1L), new ItemStack[]{GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Coal, 1L), new ItemStack(Items.skull, 1), new ItemStack(Items.skull, 1, 1), new ItemStack(Items.skull, 1, 1), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.NetherStar, 1L)}); + new GT_BaseCrop(160, "Zomplant", "unknown", null, 3, 4, 0, 1, 4, 1, 3, 4, 2, 6, new String[]{"Zombie", "Rotten", "Undead"}, new ItemStack(Items.rotten_flesh), null); + new GT_BaseCrop(161, "Nickelback", "unknown", null, 5, 3, 0, 2, 3, 3, 0, 1, 2, 2, new String[]{"Metal", "Fire", "Alloy"}, Materials.Nickel, ItemList.Crop_Drop_Nickel.get(1, new Object[0]), null); + new GT_BaseCrop(162, "Galvania", "unknown", null, 6, 3, 0, 2, 3, 3, 0, 2, 2, 3, new String[]{"Metal", "Alloy", "Bush"}, Materials.Zinc, ItemList.Crop_Drop_Zinc.get(1, new Object[0]), null); + new GT_BaseCrop(163, "Evil Ore", "unknown", null, 8, 4, 0, 3, 4, 4, 0, 2, 1, 3, new String[]{"Crystal", "Fire", "Nether"}, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.NetherQuartz, 1L), new ItemStack[]{GT_OreDictUnificator.get(OrePrefixes.gem, Materials.NetherQuartz, 1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.CertusQuartz, 1L),}); + new GT_BaseCrop(164, "Olivia", "unknown", null, 2, 4, 0, 3, 4, 1, 0, 1, 4, 0, new String[]{"Crystal", "Shiny", "Processing", "Olivine"}, Materials.Olivine, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Olivine, 1L), new ItemStack[]{GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Olivine, 1L),}); + new GT_BaseCrop(165, "Sapphirum", "unknown", null, 4, 4, 0, 3, 4, 1, 0, 1, 5, 0, new String[]{"Crystal", "Shiny", "Metal", "Sapphire"}, Materials.Sapphire, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Sapphire, 1L), new ItemStack[]{GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Sapphire, 1L),}); + new GT_BaseCrop(166, "Pyrolusium", "unknown", null, 12, 3, 0, 2, 3, 1, 0, 1, 1, 0, new String[]{"Metal", "Clean", "Bush", "Manganese"}, Materials.Manganese, ItemList.Crop_Drop_Manganese.get(1, new Object[0]), null); + new GT_BaseCrop(167, "Scheelinium", "unknown", null, 12, 3, 0, 2, 3, 3, 0, 1, 1, 0, new String[]{"Metal", "Hard", "Bush", "Tungsten"}, Materials.Tungsten, ItemList.Crop_Drop_Scheelite.get(1, new Object[0]), null); + new GT_BaseCrop(168, "Platina", "unknown", null, 11, 4, 0, 1, 4, 3, 0, 0, 3, 0, new String[]{"Metal", "Shiny", "Reed", "Platinum"}, Materials.Platinum, ItemList.Crop_Drop_Platinum.get(1, new Object[0]), null); + new GT_BaseCrop(169, "Quantaria", "unknown", null, 12, 4, 1000, 1, 4, 4, 0, 0, 1, 0, new String[]{"Metal", "Iridium", "Reed"}, Materials.Iridium, ItemList.Crop_Drop_Iridium.get(1, new Object[0]), new ItemStack[]{ItemList.Crop_Drop_Osmium.get(1, new Object[0])}); + new GT_BaseCrop(170, "Stargatium", "unknown", null, 12, 4, 1500, 1, 4, 4, 0, 0, 2, 0, new String[]{"Metal", "Heavy", "Alien", "Naquadah"}, Materials.Naquadah, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Endstone, 1L), new ItemStack[]{ItemList.Crop_Drop_Naquadah.get(1, new Object[0])}); } catch (Throwable e) { GT_Log.err.println("GT_Mod: Failed to register Crops to IC2."); e.printStackTrace(GT_Log.err); diff --git a/src/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java b/src/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java index 5650728e..d8033933 100644 --- a/src/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java +++ b/src/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java @@ -7,24 +7,25 @@ import gregtech.api.enums.*; import gregtech.api.objects.MaterialStack; import gregtech.api.util.*; import gregtech.common.GT_DummyWorld; -import ic2.api.recipe.ILiquidHeatExchangerManager; -import ic2.api.recipe.ILiquidHeatExchangerManager.HeatExchangeProperty; -import ic2.api.recipe.Recipes; +import gregtech.common.items.CombType; import net.minecraft.init.Blocks; import net.minecraft.init.Items; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraftforge.common.ForgeHooks; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; +import ic2.api.recipe.IRecipeInput; +import ic2.api.recipe.RecipeOutput; +import ic2.api.recipe.ILiquidHeatExchangerManager.HeatExchangeProperty; +import ic2.api.recipe.Recipes; +import ic2.core.block.machine.tileentity.TileEntityLiquidHeatExchanger; import java.util.Arrays; import java.util.Iterator; +import java.util.List; import java.util.Map; -//import gregtech.api.enums.TC_Aspects.TC_AspectStack; - public class GT_MachineRecipeLoader implements Runnable { private final MaterialStack[][] mAlloySmelterList = {{new MaterialStack(Materials.Tetrahedrite, 3L), new MaterialStack(Materials.Tin, 1L), new MaterialStack(Materials.Bronze, 3L)}, {new MaterialStack(Materials.Tetrahedrite, 3L), new MaterialStack(Materials.Zinc, 1L), new MaterialStack(Materials.Brass, 3L)}, {new MaterialStack(Materials.Copper, 3L), new MaterialStack(Materials.Tin, 1L), new MaterialStack(Materials.Bronze, 4L)}, {new MaterialStack(Materials.Copper, 3L), new MaterialStack(Materials.Zinc, 1L), new MaterialStack(Materials.Brass, 4L)}, {new MaterialStack(Materials.Copper, 1L), new MaterialStack(Materials.Nickel, 1L), new MaterialStack(Materials.Cupronickel, 2L)}, {new MaterialStack(Materials.Copper, 1L), new MaterialStack(Materials.Redstone, 4L), new MaterialStack(Materials.RedAlloy, 1L)}, {new MaterialStack(Materials.AnnealedCopper, 3L), new MaterialStack(Materials.Tin, 1L), new MaterialStack(Materials.Bronze, 4L)}, {new MaterialStack(Materials.AnnealedCopper, 3L), new MaterialStack(Materials.Zinc, 1L), new MaterialStack(Materials.Brass, 4L)}, {new MaterialStack(Materials.AnnealedCopper, 1L), new MaterialStack(Materials.Nickel, 1L), new MaterialStack(Materials.Cupronickel, 2L)}, {new MaterialStack(Materials.AnnealedCopper, 1L), new MaterialStack(Materials.Redstone, 4L), new MaterialStack(Materials.RedAlloy, 1L)}, {new MaterialStack(Materials.Iron, 1L), new MaterialStack(Materials.Tin, 1L), new MaterialStack(Materials.TinAlloy, 2L)}, {new MaterialStack(Materials.WroughtIron, 1L), new MaterialStack(Materials.Tin, 1L), new MaterialStack(Materials.TinAlloy, 2L)}, {new MaterialStack(Materials.Iron, 2L), new MaterialStack(Materials.Nickel, 1L), new MaterialStack(Materials.Invar, 3L)}, {new MaterialStack(Materials.WroughtIron, 2L), new MaterialStack(Materials.Nickel, 1L), new MaterialStack(Materials.Invar, 3L)}, {new MaterialStack(Materials.Tin, 9L), new MaterialStack(Materials.Antimony, 1L), new MaterialStack(Materials.SolderingAlloy, 10L)}, {new MaterialStack(Materials.Lead, 4L), new MaterialStack(Materials.Antimony, 1L), new MaterialStack(Materials.BatteryAlloy, 5L)}, {new MaterialStack(Materials.Gold, 1L), new MaterialStack(Materials.Silver, 1L), new MaterialStack(Materials.Electrum, 2L)}, {new MaterialStack(Materials.Magnesium, 1L), new MaterialStack(Materials.Aluminium, 2L), new MaterialStack(Materials.Magnalium, 3L)}, {new MaterialStack(Materials.Silver, 1L), new MaterialStack(Materials.Nikolite, 4L), new MaterialStack(Materials.BlueAlloy, 1L)}}; @@ -36,10 +37,11 @@ public class GT_MachineRecipeLoader GT_Utility.removeSimpleIC2MachineRecipe(ItemList.IC2_Energium_Dust.get(1L, new Object[0]), ic2.api.recipe.Recipes.compressor.getRecipes(), GT_Values.NI); GT_Utility.removeSimpleIC2MachineRecipe(new ItemStack(Items.gunpowder), ic2.api.recipe.Recipes.extractor.getRecipes(), GT_Values.NI); GT_Utility.removeSimpleIC2MachineRecipe(new ItemStack(Blocks.wool, 1, 32767), ic2.api.recipe.Recipes.extractor.getRecipes(), GT_Values.NI); - } catch (Throwable e) { - GT_Utility.removeIC2BottleRecipe(GT_ModHandler.getIC2Item("fuelRod", 1), GT_ModHandler.getIC2Item("UranFuel", 1), ic2.api.recipe.Recipes.cannerBottle.getRecipes(), GT_ModHandler.getIC2Item("reactorUraniumSimple", 1, 1)); - GT_Utility.removeIC2BottleRecipe(GT_ModHandler.getIC2Item("fuelRod", 1), GT_ModHandler.getIC2Item("MoxFuel", 1), ic2.api.recipe.Recipes.cannerBottle.getRecipes(), GT_ModHandler.getIC2Item("reactorMOXSimple", 1, 1)); + } catch (Throwable e) { } + GT_Utility.removeIC2BottleRecipe(GT_ModHandler.getIC2Item("fuelRod", 1), GT_ModHandler.getIC2Item("UranFuel", 1), ic2.api.recipe.Recipes.cannerBottle.getRecipes(), GT_ModHandler.getIC2Item("reactorUraniumSimple", 1, 1)); + GT_Utility.removeIC2BottleRecipe(GT_ModHandler.getIC2Item("fuelRod", 1), GT_ModHandler.getIC2Item("MOXFuel", 1), ic2.api.recipe.Recipes.cannerBottle.getRecipes(), GT_ModHandler.getIC2Item("reactorMOXSimple", 1, 1)); + GT_Values.RA.addFluidExtractionRecipe(new ItemStack(Items.wheat_seeds, 1, 32767), GT_Values.NI, Materials.SeedOil.getFluid(5L), 10000, 32, 2); GT_Values.RA.addFluidExtractionRecipe(new ItemStack(Items.melon_seeds, 1, 32767), GT_Values.NI, Materials.SeedOil.getFluid(3L), 10000, 32, 2); GT_Values.RA.addFluidExtractionRecipe(new ItemStack(Items.pumpkin_seeds, 1, 32767), GT_Values.NI, Materials.SeedOil.getFluid(6L), 10000, 32, 2); @@ -52,6 +54,14 @@ public class GT_MachineRecipeLoader GT_Log.out.println("GT_Mod: failed to iterate somehow, maybe it's your Forge Version causing it. But it's not that important\n"); e.printStackTrace(GT_Log.err); } + +// GT_Values.RA.addArcFurnaceRecipe(ItemList.Block_BronzePlate.get(1, new Object[]{}), new ItemStack[]{ GT_OreDictUnificator.get(OrePrefixes.ingot,Materials.Bronze,4), GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Stone,1)}, null, 160, 96); +// GT_Values.RA.addArcFurnaceRecipe(ItemList.Block_IridiumTungstensteel.get(1, new Object[]{}), new ItemStack[]{ GT_OreDictUnificator.get(OrePrefixes.ingot,Materials.Bronze,4), GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Stone,1)}, null, 160, 96); + GT_Values.RA.addArcFurnaceRecipe(ItemList.Block_TungstenSteelReinforced.get(1, new Object[]{}), new ItemStack[]{ GT_OreDictUnificator.get(OrePrefixes.ingot,Materials.TungstenSteel,2), GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Concrete,1)}, null, 160, 96); + + //Temporary until circuit overhaul + GT_Values.RA.addAlloySmelterRecipe(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Rubber, 2), GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Copper, 1), GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Copper, 1), 100, 16); + GT_Values.RA.addPrinterRecipe(GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Paper, 1L), FluidRegistry.getFluidStack("squidink", 36), GT_Values.NI, ItemList.Paper_Punch_Card_Empty.get(1L, new Object[0]), 100, 2); GT_Values.RA.addPrinterRecipe(ItemList.Paper_Punch_Card_Empty.get(1L, new Object[0]), FluidRegistry.getFluidStack("squidink", 36), ItemList.Tool_DataStick.getWithName(0L, "With Punch Card Data", new Object[0]), ItemList.Paper_Punch_Card_Encoded.get(1L, new Object[0]), 100, 2); GT_Values.RA.addPrinterRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Paper, 3L), FluidRegistry.getFluidStack("squidink", 144), ItemList.Tool_DataStick.getWithName(0L, "With Scanned Book Data", new Object[0]), ItemList.Paper_Printed_Pages.get(1L, new Object[0]), 400, 2); @@ -78,7 +88,6 @@ public class GT_MachineRecipeLoader GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(tPrefix, Materials.Brass, 7L), GT_OreDictUnificator.get(tPrefix, Materials.Aluminium, 1L), GT_OreDictUnificator.get(tPrefix, Materials.Cobalt, 1L), GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.getDust(Materials.CobaltBrass, 9L * tPrefix.mMaterialAmount), (int) (900L * tPrefix.mMaterialAmount / 3628800L), 8); GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(tPrefix, Materials.Saltpeter, 2L), GT_OreDictUnificator.get(tPrefix, Materials.Sulfur, 1L), GT_OreDictUnificator.get(tPrefix, Materials.Coal, 1L), GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.getDust(Materials.Gunpowder, 4L * tPrefix.mMaterialAmount), (int) (400L * tPrefix.mMaterialAmount / 3628800L), 8); GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(tPrefix, Materials.Saltpeter, 2L), GT_OreDictUnificator.get(tPrefix, Materials.Sulfur, 1L), GT_OreDictUnificator.get(tPrefix, Materials.Charcoal, 1L), GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.getDust(Materials.Gunpowder, 3L * tPrefix.mMaterialAmount), (int) (300L * tPrefix.mMaterialAmount / 3628800L), 8); - } GT_Values.RA.addMixerRecipe(new ItemStack(Items.rotten_flesh, 1, 0), new ItemStack(Items.fermented_spider_eye, 1, 0), ItemList.IC2_Scrap.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.MeatRaw, 1L), FluidRegistry.getFluidStack("potion.purpledrink", 750), FluidRegistry.getFluidStack("sludge", 1000), ItemList.Food_Chum.get(4L, new Object[0]), 128, 24); GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wheat, 1L), GT_Values.NI, GT_Values.NI, GT_Values.NI, Materials.Water.getFluid(1000L), GT_Values.NF, ItemList.Food_Dough.get(2L, new Object[0]), 32, 8); @@ -96,19 +105,32 @@ public class GT_MachineRecipeLoader GT_Values.RA.addMixerRecipe(ItemList.FR_Compost.get(1L, new Object[0]), new ItemStack(Blocks.dirt, 8, 32767), GT_Values.NI, GT_Values.NI, Materials.Water.getFluid(1000L), GT_Values.NF, GT_ModHandler.getModItem("Forestry", "soil", 8L, 0), 64, 16); GT_Values.RA.addMixerRecipe(ItemList.FR_Mulch.get(1L, new Object[0]), new ItemStack(Blocks.dirt, 8, 32767), GT_Values.NI, GT_Values.NI, Materials.Water.getFluid(1000L), GT_Values.NF, GT_ModHandler.getModItem("Forestry", "soil", 9L, 0), 64, 16); GT_Values.RA.addMixerRecipe(new ItemStack(Blocks.sand, 1, 32767), new ItemStack(Blocks.dirt, 1, 32767), GT_Values.NI, GT_Values.NI, Materials.Water.getFluid(250L), GT_Values.NF, GT_ModHandler.getModItem("Forestry", "soil", 2L, 1), 16, 16); + GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.LightFuel, 5L), GT_OreDictUnificator.get(OrePrefixes.cell, Materials.HeavyFuel, 1L), null, null, null, null, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Fuel, 6L), 16, 16); + GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Water, 5L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Stone, 1L), null, null, Materials.Lubricant.getFluid(20), new FluidStack(ItemList.sDrillingFluid, 5000), ItemList.Cell_Empty.get(5, new Object[0]), 64, 16); GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Lapis, 1L), null, null, null, Materials.Water.getFluid(125), FluidRegistry.getFluidStack("ic2coolant", 125), null, 256, 48); GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Lapis, 1L), null, null, null, GT_ModHandler.getDistilledWater(1000), FluidRegistry.getFluidStack("ic2coolant", 1000), null, 256, 48); - GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Silicon, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coal, 1L), null, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.RedstoneAlloy, 1L), 100, 8); - GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.RedstoneAlloy, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Iron, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Titanium, 1L), null, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.ConductiveIron, 1L), 100, 8); - GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.ConductiveIron, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Gold, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.TungstenSteel, 1L), null, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.EnergeticAlloy, 1L), 100, 8); - GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.EnergeticAlloy, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.EnderEye, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Chrome, 1L), null, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.VibrantAlloy, 1L), 100, 8); - GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Steel, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coal, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Silicon, 1L), null, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.ElectricalSteel, 1L), 100, 8); - GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Iron, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.EnderPearl, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.RedstoneAlloy, 1L), null, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.PulsatingIron, 1L), 100, 8); - GT_Values.RA.addMixerRecipe(new ItemStack(Blocks.soul_sand, 1, 32767), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Gold, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 1L), null, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Soularium, 1L), 100, 8); - GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.ElectricalSteel, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coal, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Obsidian, 1L), null, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkSteel, 1L), 100, 8); - GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Tin, 2L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Silver, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Platinum, 1L), null, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.EnderiumBase, 4L), 400, 8); - GT_Values.RA.addMixerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.EnderiumBase, 2L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Thaumium, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.EnderPearl, 1L), null, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Enderium, 2L), 200, 8); + ItemStack[] tItems = {ItemList.Crop_Drop_Bauxite.get(1, new Object[0]), + ItemList.Crop_Drop_Ilmenite.get(1, new Object[0]), + ItemList.Crop_Drop_Pitchblende.get(1, new Object[0]), + ItemList.Crop_Drop_Uraninite.get(1, new Object[0]), + ItemList.Crop_Drop_Thorium.get(1, new Object[0]), + ItemList.Crop_Drop_Nickel.get(1, new Object[0]), + ItemList.Crop_Drop_Zinc.get(1, new Object[0]), + ItemList.Crop_Drop_Manganese.get(1, new Object[0]), + ItemList.Crop_Drop_Scheelite.get(1, new Object[0]), + ItemList.Crop_Drop_Platinum.get(1, new Object[0]), + ItemList.Crop_Drop_Iridium.get(1, new Object[0]), + ItemList.Crop_Drop_Osmium.get(1, new Object[0]), + ItemList.Crop_Drop_Naquadah.get(1, new Object[0])}; + Materials[] tMaterials ={Materials.Bauxite,Materials.Ilmenite,Materials.Pitchblende,Materials.Uraninite,Materials.Thorium,Materials.Nickel,Materials.Zinc,Materials.Manganese,Materials.Scheelite,Materials.Platinum,Materials.Iridium,Materials.Osmium,Materials.Naquadah}; + for(int i = 0;i tLiqExchange = ic2.api.recipe.Recipes.liquidCooldownManager.getHeatExchangeProperties(); - Iterator> tIterator = tLiqExchange.entrySet().iterator(); - while (tIterator.hasNext()) { - Map.Entry tEntry = tIterator.next(); - if(tEntry.getKey().equals("ic2hotcoolant")){ - tIterator.remove(); - Recipes.liquidCooldownManager.addFluid("ic2hotcoolant", "ic2coolant", 80); + + + try { + Map tLiqExchange = ic2.api.recipe.Recipes.liquidCooldownManager.getHeatExchangeProperties(); + Iterator> tIterator = tLiqExchange.entrySet().iterator(); + while (tIterator.hasNext()) { + Map.Entry tEntry = tIterator.next(); + if(tEntry.getKey().equals("ic2hotcoolant")){ + tIterator.remove(); + Recipes.liquidCooldownManager.addFluid("ic2hotcoolant", "ic2coolant", 80); + } } - } - } catch (Throwable e) {/*Do nothing*/} - - try { - Map tLiqExchange = ic2.api.recipe.Recipes.liquidHeatupManager.getHeatExchangeProperties(); - Iterator> tIterator = tLiqExchange.entrySet().iterator(); - while (tIterator.hasNext()) { - Map.Entry tEntry = tIterator.next(); - if(tEntry.getKey().equals("ic2coolant")){ - tIterator.remove(); - Recipes.liquidHeatupManager.addFluid("ic2coolant", "ic2hotcoolant", 80); + } catch (Throwable e) {/*Do nothing*/} + + try { + Map tLiqExchange = ic2.api.recipe.Recipes.liquidHeatupManager.getHeatExchangeProperties(); + Iterator> tIterator = tLiqExchange.entrySet().iterator(); + while (tIterator.hasNext()) { + Map.Entry tEntry = tIterator.next(); + if(tEntry.getKey().equals("ic2coolant")){ + tIterator.remove(); + Recipes.liquidHeatupManager.addFluid("ic2coolant", "ic2hotcoolant", 80); + } } - } - } catch (Throwable e) {/*Do nothing*/} + } catch (Throwable e) {/*Do nothing*/} + + GT_Utility.removeSimpleIC2MachineRecipe(ItemList.Crop_Drop_BobsYerUncleRanks.get(1L, new Object[0]), GT_ModHandler.getExtractorRecipeList(), null); + GT_Utility.removeSimpleIC2MachineRecipe(ItemList.Crop_Drop_Ferru.get(1L, new Object[0]), GT_ModHandler.getExtractorRecipeList(), null); + GT_Utility.removeSimpleIC2MachineRecipe(ItemList.Crop_Drop_Aurelia.get(1L, new Object[0]), GT_ModHandler.getExtractorRecipeList(), null); + + ItemStack tCrop; + // Metals Line + tCrop = ItemList.Crop_Drop_Coppon.get(1, new Object[0]); + addProcess(tCrop, Materials.Copper, 100); + addProcess(tCrop, Materials.Tetrahedrite, 100); + addProcess(tCrop, Materials.Chalcopyrite, 100); + addProcess(tCrop, Materials.Malachite, 100); + addProcess(tCrop, Materials.Pyrite, 100); + addProcess(tCrop, Materials.Stibnite, 100); + tCrop = ItemList.Crop_Drop_Tine.get(1, new Object[0]); + addProcess(tCrop, Materials.Tin, 100); + addProcess(tCrop, Materials.Cassiterite, 100); + tCrop = ItemList.Crop_Drop_Plumbilia.get(1, new Object[0]); + addProcess(tCrop, Materials.Lead, 100); + addProcess(tCrop, Materials.Galena, 100); + tCrop = ItemList.Crop_Drop_Ferru.get(1, new Object[0]); + addProcess(tCrop, Materials.Iron, 100); + addProcess(tCrop, Materials.Magnetite, 100); + addProcess(tCrop, Materials.BrownLimonite, 100); + addProcess(tCrop, Materials.YellowLimonite, 100); + addProcess(tCrop, Materials.VanadiumMagnetite, 100); + addProcess(tCrop, Materials.BandedIron, 100); + addProcess(tCrop, Materials.Pyrite, 100); + addProcess(tCrop, Materials.MeteoricIron, 100); + tCrop = ItemList.Crop_Drop_Nickel.get(1, new Object[0]); + addProcess(tCrop, Materials.Nickel, 100); + addProcess(tCrop, Materials.Garnierite, 100); + addProcess(tCrop, Materials.Pentlandite, 100); + addProcess(tCrop, Materials.Cobaltite, 100); + addProcess(tCrop, Materials.Wulfenite, 100); + addProcess(tCrop, Materials.Powellite, 100); + tCrop = ItemList.Crop_Drop_Zinc.get(1, new Object[0]); + addProcess(tCrop, Materials.Zinc, 100); + addProcess(tCrop, Materials.Sphalerite, 100); + addProcess(tCrop, Materials.Sulfur, 100); + tCrop = ItemList.Crop_Drop_Argentia.get(1, new Object[0]); + addProcess(tCrop, Materials.Silver, 100); + addProcess(tCrop, Materials.Galena, 100); + tCrop = ItemList.Crop_Drop_Aurelia.get(1, new Object[0]); + addProcess(tCrop, Materials.Gold, 100); + addProcess(tCrop, Materials.Magnetite, 100); + + // Rare Metals Line + tCrop = ItemList.Crop_Drop_Bauxite.get(1, new Object[0]); + addProcess(tCrop,Materials.Aluminium,60); + addProcess(tCrop,Materials.Bauxite,100); + tCrop = ItemList.Crop_Drop_Manganese.get(1, new Object[0]); + addProcess(tCrop,Materials.Manganese,30); + addProcess(tCrop,Materials.Grossular,100); + addProcess(tCrop,Materials.Spessartine,100); + addProcess(tCrop,Materials.Pyrolusite,100); + addProcess(tCrop,Materials.Tantalite,100); + tCrop = ItemList.Crop_Drop_Ilmenite.get(1, new Object[0]); + addProcess(tCrop,Materials.Titanium,100); + addProcess(tCrop,Materials.Ilmenite,100); + addProcess(tCrop,Materials.Bauxite,100); + tCrop = ItemList.Crop_Drop_Scheelite.get(1, new Object[0]); + addProcess(tCrop,Materials.Scheelite,100); + addProcess(tCrop,Materials.Tungstate,100); + addProcess(tCrop,Materials.Lithium,100); + tCrop = ItemList.Crop_Drop_Platinum.get(1, new Object[0]); + addProcess(tCrop,Materials.Platinum,40); + addProcess(tCrop,Materials.Cooperite,40); + addProcess(tCrop,Materials.Palladium,40); + addProcess(tCrop, Materials.Neodymium, 100); + addProcess(tCrop, Materials.Bastnasite, 100); + tCrop = ItemList.Crop_Drop_Iridium.get(1, new Object[0]); + addProcess(tCrop,Materials.Iridium,20); + tCrop = ItemList.Crop_Drop_Osmium.get(1, new Object[0]); + addProcess(tCrop,Materials.Osmium,20); + + // Radioactive Line + tCrop = ItemList.Crop_Drop_Uraninite.get(1, new Object[0]); + addProcess(tCrop,Materials.Uraninite,50); + addProcess(tCrop,Materials.Uranium,50); + addProcess(tCrop,Materials.Pitchblende,50); + addProcess(tCrop,Materials.Uranium235,50); + tCrop = ItemList.Crop_Drop_Thorium.get(1, new Object[0]); + addProcess(tCrop,Materials.Thorium,50); + tCrop = ItemList.Crop_Drop_Naquadah.get(1, new Object[0]); + addProcess(tCrop,Materials.Naquadah,10); + addProcess(tCrop,Materials.NaquadahEnriched,10); + addProcess(tCrop,Materials.Naquadria,10); + + //Gem Line + tCrop = ItemList.Crop_Drop_BobsYerUncleRanks.get(1, new Object[0]); + addProcess(tCrop, Materials.Emerald, 100); + addProcess(tCrop, Materials.Beryllium, 100); + } + + public void addProcess(ItemStack tCrop, Materials aMaterial, int chance){ + if(GT_Mod.gregtechproxy.mNerfedCombs){ + GT_Values.RA.addChemicalRecipe(GT_Utility.copyAmount(9, tCrop), GT_OreDictUnificator.get(OrePrefixes.crushed, aMaterial, 1), Materials.Water.getFluid(1000), aMaterial.mOreByProducts.isEmpty() ? null : aMaterial.mOreByProducts.get(0).getMolten(144), GT_OreDictUnificator.get(OrePrefixes.crushedPurified, aMaterial, 4), 96, 24); + GT_Values.RA.addAutoclaveRecipe(GT_Utility.copyAmount(16, tCrop), Materials.UUMatter.getFluid(Math.max(1, ((aMaterial.getMass()+9)/10))), GT_OreDictUnificator.get(OrePrefixes.crushedPurified, aMaterial, 1), 10000, (int) (aMaterial.getMass() * 128), 384); + }else{ + GT_ModHandler.addExtractionRecipe(tCrop, GT_OreDictUnificator.get(OrePrefixes.dustTiny, aMaterial, 1)); +} + } } diff --git a/src/main/java/gregtech/loaders/postload/GT_Worldgenloader.java b/src/main/java/gregtech/loaders/postload/GT_Worldgenloader.java index 3c4a0ae5..137c7266 100644 --- a/src/main/java/gregtech/loaders/postload/GT_Worldgenloader.java +++ b/src/main/java/gregtech/loaders/postload/GT_Worldgenloader.java @@ -77,7 +77,7 @@ public class GT_Worldgenloader for (int j = GregTech_API.sWorldgenFile.get("worldgen", "AmountOfCustomSmallOreSlots", 16); i < j; i++) { new GT_Worldgen_GT_Ore_SmallPieces("ore.small.custom." + (i < 10 ? "0" : "") + i, false, 0, 0, 0, false, false, false, Materials._NULL); } - new GT_Worldgen_GT_Ore_Layer("ore.mix.naquadah", false, 10, 60, 10, 5, 32, false, false, true, Materials.Naquadah, Materials.Naquadah, Materials.Naquadah, Materials.NaquadahEnriched); + new GT_Worldgen_GT_Ore_Layer("ore.mix.naquadah", true, 10, 60, 10, 5, 32, false, false, true, Materials.Naquadah, Materials.Naquadah, Materials.Naquadah, Materials.NaquadahEnriched); new GT_Worldgen_GT_Ore_Layer("ore.mix.lignite", true, 50, 130, 160, 8, 32, !tPFAA, false, false, Materials.Lignite, Materials.Lignite, Materials.Lignite, Materials.Coal); new GT_Worldgen_GT_Ore_Layer("ore.mix.coal", true, 50, 80, 80, 6, 32, !tPFAA, false, false, Materials.Coal, Materials.Coal, Materials.Coal, Materials.Lignite); new GT_Worldgen_GT_Ore_Layer("ore.mix.magnetite", true, 50, 120, 160, 3, 32, !tPFAA, true, false, Materials.Magnetite, Materials.Magnetite, Materials.Iron, Materials.VanadiumMagnetite); @@ -94,8 +94,8 @@ public class GT_Worldgenloader new GT_Worldgen_GT_Ore_Layer("ore.mix.soapstone", true, 10, 40, 40, 3, 16, !tPFAA, false, false, Materials.Soapstone, Materials.Talc, Materials.Glauconite, Materials.Pentlandite); new GT_Worldgen_GT_Ore_Layer("ore.mix.nickel", true, 10, 40, 40, 3, 16, !tPFAA, true, true, Materials.Garnierite, Materials.Nickel, Materials.Cobaltite, Materials.Pentlandite); new GT_Worldgen_GT_Ore_Layer("ore.mix.platinum", true, 40, 50, 5, 3, 16, !tPFAA, false, true, Materials.Cooperite, Materials.Palladium, Materials.Platinum, Materials.Iridium); - new GT_Worldgen_GT_Ore_Layer("ore.mix.pitchblende", true, 10, 40, 40, 3, 16, !tPFAA, false, false, Materials.Pitchblende, Materials.Pitchblende, Materials.Uranium, Materials.Uraninite); - new GT_Worldgen_GT_Ore_Layer("ore.mix.plutonium", true, 20, 30, 10, 3, 16, !tPFAA, false, false, Materials.Uraninite, Materials.Uraninite, Materials.Plutonium, Materials.Uranium); + new GT_Worldgen_GT_Ore_Layer("ore.mix.pitchblende", true, 10, 40, 40, 3, 16, !tPFAA, false, false, Materials.Pitchblende, Materials.Pitchblende, Materials.Uraninite, Materials.Uraninite); + new GT_Worldgen_GT_Ore_Layer("ore.mix.uranium", true, 20, 30, 20, 3, 16, !tPFAA, false, false, Materials.Uraninite, Materials.Uraninite, Materials.Uranium, Materials.Uranium); new GT_Worldgen_GT_Ore_Layer("ore.mix.monazite", true, 20, 40, 30, 3, 16, !tPFAA, tPFAA, false, Materials.Bastnasite, Materials.Bastnasite, Materials.Monazite, Materials.Neodymium); new GT_Worldgen_GT_Ore_Layer("ore.mix.molybdenum", true, 20, 50, 5, 3, 16, !tPFAA, false, true, Materials.Wulfenite, Materials.Molybdenite, Materials.Molybdenum, Materials.Powellite); new GT_Worldgen_GT_Ore_Layer("ore.mix.tungstate", true, 20, 50, 10, 3, 16, !tPFAA, false, true, Materials.Scheelite, Materials.Scheelite, Materials.Tungstate, Materials.Lithium); @@ -108,10 +108,27 @@ public class GT_Worldgenloader new GT_Worldgen_GT_Ore_Layer("ore.mix.galena", true, 30, 60, 40, 5, 16, !tPFAA, false, false, Materials.Galena, Materials.Galena, Materials.Silver, Materials.Lead); new GT_Worldgen_GT_Ore_Layer("ore.mix.lapis", true, 20, 50, 40, 5, 16, !tPFAA, false, true, Materials.Lazurite, Materials.Sodalite, Materials.Lapis, Materials.Calcite); new GT_Worldgen_GT_Ore_Layer("ore.mix.beryllium", true, 5, 30, 30, 3, 16, !tPFAA, false, true, Materials.Beryllium, Materials.Beryllium, Materials.Emerald, Materials.Thorium); + new GT_Worldgen_GT_Ore_Layer("ore.mix.oilsand", true, 50, 80, 80, 6, 32, !tPFAA, false, false, Materials.Oilsands, Materials.Oilsands, Materials.Oilsands, Materials.Oilsands); i = 0; for (int j = GregTech_API.sWorldgenFile.get("worldgen", "AmountOfCustomLargeVeinSlots", 16); i < j; i++) { new GT_Worldgen_GT_Ore_Layer("ore.mix.custom." + (i < 10 ? "0" : "") + i, false, 0, 0, 0, 0, 0, false, false, false, Materials._NULL, Materials._NULL, Materials._NULL, Materials._NULL); } + new GT_Worldgen_GT_Ore_Layer("ore.mix.custom.00", false, 0, 0, 0, 0, 0, false, false, false, Materials._NULL, Materials._NULL, Materials._NULL, Materials._NULL); + new GT_Worldgen_GT_Ore_Layer("ore.mix.custom.01", false, 0, 0, 0, 0, 0, false, false, false, Materials._NULL, Materials._NULL, Materials._NULL, Materials._NULL); + new GT_Worldgen_GT_Ore_Layer("ore.mix.custom.02", false, 0, 0, 0, 0, 0, false, false, false, Materials._NULL, Materials._NULL, Materials._NULL, Materials._NULL); + new GT_Worldgen_GT_Ore_Layer("ore.mix.custom.03", false, 0, 0, 0, 0, 0, false, false, false, Materials._NULL, Materials._NULL, Materials._NULL, Materials._NULL); + new GT_Worldgen_GT_Ore_Layer("ore.mix.custom.04", false, 0, 0, 0, 0, 0, false, false, false, Materials._NULL, Materials._NULL, Materials._NULL, Materials._NULL); + new GT_Worldgen_GT_Ore_Layer("ore.mix.custom.05", false, 0, 0, 0, 0, 0, false, false, false, Materials._NULL, Materials._NULL, Materials._NULL, Materials._NULL); + new GT_Worldgen_GT_Ore_Layer("ore.mix.custom.06", false, 0, 0, 0, 0, 0, false, false, false, Materials._NULL, Materials._NULL, Materials._NULL, Materials._NULL); + new GT_Worldgen_GT_Ore_Layer("ore.mix.custom.07", false, 0, 0, 0, 0, 0, false, false, false, Materials._NULL, Materials._NULL, Materials._NULL, Materials._NULL); + new GT_Worldgen_GT_Ore_Layer("ore.mix.custom.08", false, 0, 0, 0, 0, 0, false, false, false, Materials._NULL, Materials._NULL, Materials._NULL, Materials._NULL); + new GT_Worldgen_GT_Ore_Layer("ore.mix.custom.09", false, 0, 0, 0, 0, 0, false, false, false, Materials._NULL, Materials._NULL, Materials._NULL, Materials._NULL); + new GT_Worldgen_GT_Ore_Layer("ore.mix.custom.10", false, 0, 0, 0, 0, 0, false, false, false, Materials._NULL, Materials._NULL, Materials._NULL, Materials._NULL); + new GT_Worldgen_GT_Ore_Layer("ore.mix.custom.11", false, 0, 0, 0, 0, 0, false, false, false, Materials._NULL, Materials._NULL, Materials._NULL, Materials._NULL); + new GT_Worldgen_GT_Ore_Layer("ore.mix.custom.12", false, 0, 0, 0, 0, 0, false, false, false, Materials._NULL, Materials._NULL, Materials._NULL, Materials._NULL); + new GT_Worldgen_GT_Ore_Layer("ore.mix.custom.13", false, 0, 0, 0, 0, 0, false, false, false, Materials._NULL, Materials._NULL, Materials._NULL, Materials._NULL); + new GT_Worldgen_GT_Ore_Layer("ore.mix.custom.14", false, 0, 0, 0, 0, 0, false, false, false, Materials._NULL, Materials._NULL, Materials._NULL, Materials._NULL); + new GT_Worldgen_GT_Ore_Layer("ore.mix.custom.15", false, 0, 0, 0, 0, 0, false, false, false, Materials._NULL, Materials._NULL, Materials._NULL, Materials._NULL); } } diff --git a/src/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java b/src/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java index d7fb9c7f..1ef3289e 100644 --- a/src/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java +++ b/src/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java @@ -16,6 +16,9 @@ import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import gregtech.common.blocks.*; import gregtech.common.items.*; +import gregtech.common.items.armor.ElectricModularArmor1; +import gregtech.common.items.armor.ModularArmor_Item; +import gregtech.common.items.armor.Values; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.Item; @@ -45,13 +48,10 @@ public class GT_Loader_Item_Block_And_Fluid GT_Utility.getWrittenBook("Manual_Punch_Cards", "Punch Card Manual V0.0", "Gregorius Techneticies", new String[]{ "This Manual will explain the Functionality of the Punch Cards, once they are fully implemented. And no, they won't be like the IRL Punch Cards. This is just a current Idea Collection.", - "(i1&&i2)?o1=15:o1=0;=10", - "ignore all Whitespace Characters, use Long for saving the Numbers", - "&& || ^^ & | ^ ! ++ -- + - % / // * ** << >> >>> < > <= >= == != ~ ( ) ?: , ; ;= ;=X; = i0 i1 i2 i3 i4 i5 o0 o1 o2 o3 o4 o5 v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 m0 m1 m2 m3 m4 m5 m6 m7 m8 m9 A B C D E F", + "(i1&&i2)?o1=15:o1=0;=10", "ignore all Whitespace Characters, use Long for saving the Numbers", "&& || ^^ & | ^ ! ++ -- + - % / // * ** << >> >>> < > <= >= == != ~ ( ) ?: , ; ;= ;=X; = i0 i1 i2 i3 i4 i5 o0 o1 o2 o3 o4 o5 v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 m0 m1 m2 m3 m4 m5 m6 m7 m8 m9 A B C D E F", "'0' = false, 'everything but 0' = true, '!' turns '0' into '1' and everything else into '0'", "',' is just a separator for multiple executed Codes in a row.", "';' means that the Program waits until the next tick before continuing. ';=10' and ';=10;' both mean that it will wait 10 Ticks instead of 1. And ';=0' or anything < 0 will default to 0.", - "If the '=' Operator is used within Brackets, it returns the value the variable has been set to.", - "The Program saves the Char Index of the current Task, the 10 Variables (which reset to 0 as soon as the Program Loop stops), the 10 Member Variables and the remaining waiting Time in its NBT.", + "If the '=' Operator is used within Brackets, it returns the value the variable has been set to.", "The Program saves the Char Index of the current Task, the 10 Variables (which reset to 0 as soon as the Program Loop stops), the 10 Member Variables and the remaining waiting Time in its NBT.", "A = 10, B = 11, C = 12, D = 13, E = 14, F = 15, just for Hexadecimal Space saving, since Redstone has only 4 Bits.", "For implementing Loops you just need 1 Punch Card per Loop, these Cards can restart once they are finished, depending on how many other Cards there are in the Program Loop you inserted your Card into, since it will process them procedurally.", "A Punch Card Processor can run up to four Loops, each with the length of seven Punch Cards, parallel.", @@ -62,8 +62,7 @@ public class GT_Loader_Item_Block_And_Fluid "You just got a Microwave Oven and asked yourself 'why do I even need it?'. It's simple, the Microwave can cook for just 128 EU and at an insane speed. Not even a normal E-furnace can do it that fast and cheap!", "This is the cheapest and fastest way to cook for you. That is why the Microwave Oven can be found in almost every Kitchen (see www.youwannabuyakitchen.ly).", "Long time exposure to Microwaves can cause Cancer, but we doubt Steve lives long enough to die because of that.", - "Do not insert any Metals. It might result in an Explosion.", - "Do not dry Animals with it. It will result in a Hot Dog, no matter which Animal you put into it.", + "Do not insert any Metals. It might result in an Explosion.", "Do not dry Animals with it. It will result in a Hot Dog, no matter which Animal you put into it.", "Do not insert inflammable Objects. The Oven will catch on Fire.", "Do not insert Explosives such as Eggs. Just don't."}); GT_Log.out.println("GT_Mod: Register Items."); @@ -73,7 +72,6 @@ public class GT_Loader_Item_Block_And_Fluid new GT_MetaGenerated_Item_02(); new GT_MetaGenerated_Item_03(); new GT_MetaGenerated_Tool_01(); - new GT_FluidDisplayItem(); ItemList.Rotor_LV.set(GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.Tin, 1L)); @@ -112,24 +110,23 @@ public class GT_Loader_Item_Block_And_Fluid ItemList.ThoriumCell_1.set(new GT_RadioactiveCellIC_Item("Thoriumcell", "Fuel Rod (Thorium)", 1, 50000, 0.4F, 0, 0.25F, ItemList.Depleted_Thorium_1.get(1, new Object[0]),false)); - ItemList.ThoriumCell_2.set(new GT_RadioactiveCellIC_Item("Double_Thoriumcell", "Double Fuel Rod (Thorium)", 2, 50000, 0.4F, 0, 0.25F, ItemList.Depleted_Thorium_2.get(1, new Object[0]), false)); + ItemList.ThoriumCell_2.set(new GT_RadioactiveCellIC_Item("Double_Thoriumcell", "Double Fuel Rod (Thorium)", 2, 50000, 0.4F, 0, 0.25F, ItemList.Depleted_Thorium_2.get(1, new Object[0]),false)); GT_ModHandler.addCraftingRecipe(ItemList.ThoriumCell_2.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"RPR", " ", " ", 'R', ItemList.ThoriumCell_1, 'P', OrePrefixes.plate.get(Materials.Iron)}); ItemList.ThoriumCell_4.set(new GT_RadioactiveCellIC_Item("Quad_Thoriumcell", "Quad Fuel Rod (Thorium)", 4, 50000, 0.4F, 0, 0.25F, ItemList.Depleted_Thorium_4.get(1, new Object[0]),false)); GT_ModHandler.addCraftingRecipe(ItemList.ThoriumCell_4.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"RPR", "CPC", "RPR", 'R', ItemList.ThoriumCell_1, 'P', OrePrefixes.plate.get(Materials.Iron), 'C', OrePrefixes.plate.get(Materials.Copper)}); - ItemList.Uraniumcell_1.set(new GT_RadioactiveCellIC_Item("reactorUraniumSimple", "Fuel Rod (Uranium)", 1, 20000, 2F, 1, 1F, GT_ModHandler.getIC2Item("reactorDepletedUraniumSimple", 1), false)); + ItemList.Uraniumcell_1.set(new GT_RadioactiveCellIC_Item("reactorUraniumSimple", "Fuel Rod (Uranium)" , 1, 20000, 2F, 1, 1F, GT_ModHandler.getIC2Item("reactorDepletedUraniumSimple", 1),false)); ItemList.Uraniumcell_2.set(new GT_RadioactiveCellIC_Item("reactorUraniumDual", "Dual Fuel Rod (Uranium)" , 2, 20000, 2F, 1, 1F, GT_ModHandler.getIC2Item("reactorDepletedUraniumDual", 1),false)); - ItemList.Uraniumcell_4.set(new GT_RadioactiveCellIC_Item("reactorUraniumQuad", "Quad Fuel Rod (Uranium)", 4, 20000, 2F, 1, 1F, GT_ModHandler.getIC2Item("reactorDepletedUraniumQuad", 1), false)); - ItemList.Moxcell_1.set(new GT_RadioactiveCellIC_Item("reactorMOXSimple", "Fuel Rod (Mox)", 1, 10000, 2F, 1, 1F, GT_ModHandler.getIC2Item("reactorDepletedMOXSimple", 1), true)); - ItemList.Moxcell_2.set(new GT_RadioactiveCellIC_Item("reactorMOXDual", "Dual Fuel Rod (Mox)", 2, 10000, 2F, 1, 1F, GT_ModHandler.getIC2Item("reactorDepletedMOXDual", 1), true)); + ItemList.Uraniumcell_4.set(new GT_RadioactiveCellIC_Item("reactorUraniumQuad" , "Quad Fuel Rod (Uranium)" , 4, 20000, 2F, 1, 1F, GT_ModHandler.getIC2Item("reactorDepletedUraniumQuad" , 1),false)); + ItemList.Moxcell_1.set(new GT_RadioactiveCellIC_Item("reactorMOXSimple", "Fuel Rod (Mox)", 1, 10000, 2F, 1, 1F, GT_ModHandler.getIC2Item("reactorDepletedMOXSimple", 1),true)); + ItemList.Moxcell_2.set(new GT_RadioactiveCellIC_Item("reactorMOXDual" , "Dual Fuel Rod (Mox)", 2, 10000, 2F, 1, 1F, GT_ModHandler.getIC2Item("reactorDepletedMOXDual", 1),true)); ItemList.Moxcell_4.set(new GT_RadioactiveCellIC_Item("reactorMOXQuad", "Quad Fuel Rod (Mox)" , 4, 10000, 2F, 1, 1F, GT_ModHandler.getIC2Item("reactorDepletedMOXQuad" , 1),true)); GT_ModHandler.addThermalCentrifugeRecipe(ItemList.Depleted_Thorium_1.get(1, new Object[0]), 5000, new Object[]{GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Lutetium, 2L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Thorium, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Iron, 1L)}); GT_ModHandler.addThermalCentrifugeRecipe(ItemList.Depleted_Thorium_2.get(1, new Object[0]), 5000, new Object[]{GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Lutetium, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Thorium, 2L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Iron, 3L)}); GT_ModHandler.addThermalCentrifugeRecipe(ItemList.Depleted_Thorium_4.get(1, new Object[0]), 5000, new Object[]{GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Lutetium, 2L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Thorium, 4L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Iron, 6L)}); - GT_Log.out.println("GT_Mod: Adding Blocks."); GregTech_API.sBlockMachines = new GT_Block_Machines(); GregTech_API.sBlockCasings1 = new GT_Block_Casings1(); @@ -139,6 +136,201 @@ public class GT_Loader_Item_Block_And_Fluid GregTech_API.sBlockGranites = new GT_Block_Granites(); GregTech_API.sBlockConcretes = new GT_Block_Concretes(); GregTech_API.sBlockOres1 = new GT_Block_Ores(); + GregTech_API.sBlockMetal1 = new GT_Block_Metal("gt.blockmetal1", new Materials[]{ + Materials.Adamantium, + Materials.Aluminium, + Materials.Americium, + Materials.AnnealedCopper, + Materials.Antimony, + Materials.Arsenic, + Materials.AstralSilver, + Materials.BatteryAlloy, + Materials.Beryllium, + Materials.Bismuth, + Materials.BismuthBronze, + Materials.BlackBronze, + Materials.BlackSteel, + Materials.BlueAlloy, + Materials.BlueSteel, + Materials.Brass}, OrePrefixes.block, gregtech.api.enums.Textures.BlockIcons.STORAGE_BLOCKS1); + + GregTech_API.sBlockMetal2 = new GT_Block_Metal("gt.blockmetal2", new Materials[]{ + Materials.Bronze, + Materials.Caesium, + Materials.Cerium, + Materials.Chrome, + Materials.ChromiumDioxide, + Materials.Cobalt, + Materials.CobaltBrass, + Materials.Copper, + Materials.Cupronickel, + Materials.DamascusSteel, + Materials.DarkIron, + Materials.DeepIron, + Materials.Desh, + Materials.Duranium, + Materials.Dysprosium, + Materials.Electrum + }, OrePrefixes.block, gregtech.api.enums.Textures.BlockIcons.STORAGE_BLOCKS2); + + GregTech_API.sBlockMetal3 = new GT_Block_Metal("gt.blockmetal3", new Materials[]{ + Materials.ElectrumFlux, + Materials.Enderium, + Materials.Erbium, + Materials.Europium, + Materials.FierySteel, + Materials.Gadolinium, + Materials.Gallium, + Materials.Holmium, + Materials.HSLA, + Materials.Indium, + Materials.InfusedGold, + Materials.Invar, + Materials.Iridium, + Materials.IronMagnetic, + Materials.IronWood, + Materials.Kanthal + }, OrePrefixes.block, gregtech.api.enums.Textures.BlockIcons.STORAGE_BLOCKS3); + + GregTech_API.sBlockMetal4 = new GT_Block_Metal("gt.blockmetal4", new Materials[]{ + Materials.Knightmetal, + Materials.Lanthanum, + Materials.Lead, + Materials.Lutetium, + Materials.Magnalium, + Materials.Magnesium, + Materials.Manganese, + Materials.MeteoricIron, + Materials.MeteoricSteel, + Materials.Midasium, + Materials.Mithril, + Materials.Molybdenum, + Materials.Naquadah, + Materials.NaquadahAlloy, + Materials.NaquadahEnriched, + Materials.Naquadria + }, OrePrefixes.block, gregtech.api.enums.Textures.BlockIcons.STORAGE_BLOCKS4); + + GregTech_API.sBlockMetal5 = new GT_Block_Metal("gt.blockmetal5", new Materials[]{ + Materials.Neodymium, + Materials.NeodymiumMagnetic, + Materials.Neutronium, + Materials.Nichrome, + Materials.Nickel, + Materials.Niobium, + Materials.NiobiumNitride, + Materials.NiobiumTitanium, + Materials.Osmiridium, + Materials.Osmium, + Materials.Palladium, + Materials.PigIron, + Materials.Platinum, + Materials.Plutonium, + Materials.Plutonium241, + Materials.Praseodymium + }, OrePrefixes.block, gregtech.api.enums.Textures.BlockIcons.STORAGE_BLOCKS5); + + GregTech_API.sBlockMetal6 = new GT_Block_Metal("gt.blockmetal6", new Materials[]{ + Materials.Promethium, + Materials.RedAlloy, + Materials.RedSteel, + Materials.RoseGold, + Materials.Rubidium, + Materials.Samarium, + Materials.Scandium, + Materials.ShadowIron, + Materials.ShadowSteel, + Materials.Silicon, + Materials.Silver, + Materials.SolderingAlloy, + Materials.StainlessSteel, + Materials.Steel, + Materials.SteelMagnetic, + Materials.SterlingSilver + }, OrePrefixes.block, gregtech.api.enums.Textures.BlockIcons.STORAGE_BLOCKS6); + + GregTech_API.sBlockMetal7 = new GT_Block_Metal("gt.blockmetal7", new Materials[]{ + Materials.Sunnarium, + Materials.Tantalum, + Materials.Tellurium, + Materials.Terbium, + Materials.Thaumium, + Materials.Thorium, + Materials.Thulium, + Materials.Tin, + Materials.TinAlloy, + Materials.Titanium, + Materials.Tritanium, + Materials.Tungsten, + Materials.TungstenSteel, + Materials.Ultimet, + Materials.Uranium, + Materials.Uranium235 + }, OrePrefixes.block, gregtech.api.enums.Textures.BlockIcons.STORAGE_BLOCKS7); + + GregTech_API.sBlockMetal8 = new GT_Block_Metal("gt.blockmetal8", new Materials[]{ + Materials.Vanadium, + Materials.VanadiumGallium, + Materials.WroughtIron, + Materials.Ytterbium, + Materials.Yttrium, + Materials.YttriumBariumCuprate, + Materials.Zinc, + Materials.TungstenCarbide, + Materials.VanadiumSteel, + Materials.HSSG, + Materials.HSSE, + Materials.HSSS + }, OrePrefixes.block, gregtech.api.enums.Textures.BlockIcons.STORAGE_BLOCKS8); + + GregTech_API.sBlockGem1 = new GT_Block_Metal("gt.blockgem1", new Materials[]{ + Materials.InfusedAir, + Materials.Amber, + Materials.Amethyst, + Materials.InfusedWater, + Materials.BlueTopaz, + Materials.CertusQuartz, + Materials.Dilithium, + Materials.EnderEye, + Materials.EnderPearl, + Materials.FoolsRuby, + Materials.Force, + Materials.Forcicium, + Materials.Forcillium, + Materials.GreenSapphire, + Materials.InfusedFire, + Materials.Jasper + }, OrePrefixes.block, gregtech.api.enums.Textures.BlockIcons.STORAGE_BLOCKS9); + + GregTech_API.sBlockGem2 = new GT_Block_Metal("gt.blockgem2", new Materials[]{ + Materials.Lazurite, + Materials.Lignite, + Materials.Monazite, + Materials.Niter, + Materials.Olivine, + Materials.Opal, + Materials.InfusedOrder, + Materials.InfusedEntropy, + Materials.Phosphorus, + Materials.Quartzite, + Materials.GarnetRed, + Materials.Ruby, + Materials.Sapphire, + Materials.Sodalite, + Materials.Tanzanite, + Materials.InfusedEarth + }, OrePrefixes.block, gregtech.api.enums.Textures.BlockIcons.STORAGE_BLOCKS10); + + GregTech_API.sBlockGem3 = new GT_Block_Metal("gt.blockgem3", new Materials[]{ + Materials.Topaz, + Materials.Vinteum, + Materials.GarnetYellow, + Materials.NetherStar, + Materials.Charcoal + }, OrePrefixes.block, gregtech.api.enums.Textures.BlockIcons.STORAGE_BLOCKS11); + + GregTech_API.sBlockReinforced = new GT_Block_Reinforced("gt.blockreinforced"); + GT_Log.out.println("GT_Mod: Register TileEntities."); @@ -166,9 +358,6 @@ public class GT_Loader_Item_Block_And_Fluid Materials.ConstructionFoam.mFluid = GT_Utility.getFluidForFilledItem(GT_ModHandler.getIC2Item("CFCell", 1L), true).getFluid(); Materials.UUMatter.mFluid = GT_Utility.getFluidForFilledItem(GT_ModHandler.getIC2Item("uuMatterCell", 1L), true).getFluid(); -// GT_Mod.gregtechproxy.addFluid("HeliumPlasma", "Helium Plasma", Materials.Helium, 3, 10000, GT_OreDictUnificator.get(OrePrefixes.cellPlasma, Materials.Helium, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); -// GT_Mod.gregtechproxy.addFluid("NitrogenPlasma", "Nitrogen Plasma", Materials.Nitrogen, 3, 10000, GT_OreDictUnificator.get(OrePrefixes.cellPlasma, Materials.Nitrogen, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); - GT_Mod.gregtechproxy.addFluid("Air", "Air", Materials.Air, 2, 295, ItemList.Cell_Air.get(1L, new Object[0]), ItemList.Cell_Empty.get(1L, new Object[0]), 2000); GT_Mod.gregtechproxy.addFluid("Oxygen", "Oxygen", Materials.Oxygen, 2, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Oxygen, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); @@ -177,7 +366,7 @@ public class GT_Loader_Item_Block_And_Fluid GT_Mod.gregtechproxy.addFluid("Tritium", "Tritium", Materials.Tritium, 2, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Tritium, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); GT_Mod.gregtechproxy.addFluid("Helium", "Helium", Materials.Helium, 2, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Helium, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); GT_Mod.gregtechproxy.addFluid("Fluorine", "Fluorine", Materials.Fluorine, 2, 53, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Fluorine, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); -// Materials.Lithium.mStandardMoltenFluid = new Fluid("lithium"); + GT_Mod.gregtechproxy.addFluid("Titaniumtetrachloride", "Titaniumtetrachloride", Materials.Titaniumtetrachloride, 1, 2200, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Titaniumtetrachloride, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); GT_Mod.gregtechproxy.addFluid("Helium-3", "Helium-3", Materials.Helium_3, 2, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Helium_3, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); GT_Mod.gregtechproxy.addFluid("Methane", "Methane", Materials.Methane, 2, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Methane, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); GT_Mod.gregtechproxy.addFluid("Nitrogen", "Nitrogen", Materials.Nitrogen, 2, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Nitrogen, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); @@ -186,12 +375,28 @@ public class GT_Loader_Item_Block_And_Fluid Materials.Ice.mGas = Materials.Water.mGas; Materials.Water.mGas.setTemperature(375).setGaseous(true); - ItemList.sOilExtraHeavy = GT_Mod.gregtechproxy.addFluid("liquid_extra_heavy_oil", "Very Heavy Oil", null, 1, 295); - ItemList.sOilHeavy = GT_Mod.gregtechproxy.addFluid("liquid_heavy_oil", "Heavy Oil", null, 1, 295); - ItemList.sOilMedium = GT_Mod.gregtechproxy.addFluid("liquid_medium_oil", "Raw Oil", null, 1, 295); - ItemList.sOilLight = GT_Mod.gregtechproxy.addFluid("liquid_light_oil", "Light Oil", null, 1, 295); - ItemList.sNaturalGas = GT_Mod.gregtechproxy.addFluid("gas_natural_gas", "Natural Gas", null, 2, 295); + ItemList.sEpichlorhydrin = GT_Mod.gregtechproxy.addFluid("liquid_epichlorhydrin", "Epichlorohydrin", null, 1, 295); + ItemList.sDrillingFluid = GT_Mod.gregtechproxy.addFluid("liquid_drillingfluid", "Drilling Fluid", null, 1, 295); + ItemList.sToluene = GT_Mod.gregtechproxy.addFluid("liquid_toluene", "Toluene", null, 1, 295); + ItemList.sNitrationMixture = GT_Mod.gregtechproxy.addFluid("liquid_nitrationmixture", "Nitration Mixture", null, 1, 295); + + GT_Mod.gregtechproxy.addFluid("liquid_heavy_oil", "Heavy Oil", Materials.OilHeavy, 1, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.OilHeavy, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); + GT_Mod.gregtechproxy.addFluid("liquid_medium_oil", "Raw Oil", Materials.OilMedium, 1, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.OilMedium, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); + GT_Mod.gregtechproxy.addFluid("liquid_light_oil", "Light Oil", Materials.OilLight, 1, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.OilLight, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); + GT_Mod.gregtechproxy.addFluid("gas_natural_gas", "Natural Gas", Materials.NatruralGas, 2, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.NatruralGas, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); + GT_Mod.gregtechproxy.addFluid("liquid_hydricsulfur", "Hydric Sulfide", Materials.HydricSulfide, 1, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.HydricSulfide, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); + GT_Mod.gregtechproxy.addFluid("gas_sulfuricgas", "Sulfuric Gas", Materials.SulfuricGas, 2, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.SulfuricGas, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); + GT_Mod.gregtechproxy.addFluid("gas_gas", "Refinery Gas", Materials.Gas, 2, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Gas, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); + GT_Mod.gregtechproxy.addFluid("liquid_sulfuricnaphtha", "Sulfuric Naphtha", Materials.SulfuricNaphtha, 1, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.SulfuricNaphtha, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); + GT_Mod.gregtechproxy.addFluid("liquid_sufluriclight_fuel", "Sulfuric Light Fuel", Materials.SulfuricLightFuel, 1, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.SulfuricLightFuel, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); + GT_Mod.gregtechproxy.addFluid("liquid_sulfuricheavy_fuel", "Sulfuric Heavy Fuel", Materials.SulfuricHeavyFuel, 1, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.SulfuricHeavyFuel, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); + GT_Mod.gregtechproxy.addFluid("liquid_naphtha", "Naphtha", Materials.Naphtha, 1, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Naphtha, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); + GT_Mod.gregtechproxy.addFluid("liquid_light_fuel", "Light Fuel", Materials.LightFuel, 1, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.LightFuel, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); + GT_Mod.gregtechproxy.addFluid("liquid_heavy_fuel", "Heavy Fuel", Materials.HeavyFuel, 1, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.HeavyFuel, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); + GT_Mod.gregtechproxy.addFluid("liquid_lpg", "LPG", Materials.LPG, 1, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.LPG, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); + GT_Mod.gregtechproxy.addFluid("liquid_cracked_light_fuel", "Cracked Light Fuel", Materials.CrackedLightFuel, 1, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.CrackedLightFuel, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); + GT_Mod.gregtechproxy.addFluid("liquid_cracked_heavy_fuel", "Cracked Heavy Fuel", Materials.CrackedHeavyFuel, 1, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.CrackedHeavyFuel, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); GT_Mod.gregtechproxy.addFluid("UUAmplifier", "UU Amplifier", Materials.UUAmplifier, 1, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.UUAmplifier, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); GT_Mod.gregtechproxy.addFluid("Chlorine", "Chlorine", Materials.Chlorine, 1, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Chlorine, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); @@ -240,10 +445,10 @@ public class GT_Loader_Item_Block_And_Fluid Materials.Water.mSolid = Materials.Ice.mSolid; - GT_Mod.gregtechproxy.addFluid("wet.concrete", "Wet Concrete", Materials.Concrete, 4, 300); GT_Mod.gregtechproxy.addFluid("molten.glass", "Molten Glass", Materials.Glass, 4, 1500); GT_Mod.gregtechproxy.addFluid("molten.redstone", "Molten Redstone", Materials.Redstone, 4, 500); GT_Mod.gregtechproxy.addFluid("molten.blaze", "Molten Blaze", Materials.Blaze, 4, 6400); + GT_Mod.gregtechproxy.addFluid("molten.concrete", "Wet Concrete", Materials.Concrete, 4, 300); for (Materials tMaterial : Materials.VALUES) { if ((tMaterial.mStandardMoltenFluid == null) && (tMaterial.contains(SubTag.SMELTING_TO_FLUID)) && (!tMaterial.contains(SubTag.NO_SMELTING))) { GT_Mod.gregtechproxy.addAutogeneratedMoltenFluid(tMaterial); @@ -426,6 +631,35 @@ public class GT_Loader_Item_Block_And_Fluid GT_OreDictUnificator.set(OrePrefixes.gem, Materials.Amber, GT_ModHandler.getModItem("Thaumcraft", "ItemResource", 1L, 6)); GT_OreDictUnificator.set(OrePrefixes.gem, Materials.Firestone, GT_ModHandler.getModItem("Railcraft", "firestone.raw", 1L)); + new Values(); + ItemList.ModularBasicHelmet.set(new ModularArmor_Item(0, 0, "modulararmor_helmet",0)); + ItemList.ModularBasicChestplate.set(new ModularArmor_Item(0, 1, "modulararmor_chestplate",0)); + ItemList.ModularBasicLeggings.set(new ModularArmor_Item(0, 2, "modulararmor_leggings",0)); + ItemList.ModularBasicBoots.set(new ModularArmor_Item(0, 3, "modulararmor_boots",0)); + ItemList.ModularElectric1Helmet.set(new ElectricModularArmor1(0, 0, "modularelectric1_helmet",1)); + ItemList.ModularElectric1Chestplate.set(new ElectricModularArmor1(0, 1, "modularelectric1_chestplate",1)); + ItemList.ModularElectric1Leggings.set(new ElectricModularArmor1(0, 2, "modularelectric1_leggings",1)); + ItemList.ModularElectric1Boots.set(new ElectricModularArmor1(0, 3, "modularelectric1_boots",1)); + ItemList.ModularElectric2Helmet.set(new ElectricModularArmor1(0, 0, "modularelectric2_helmet",2)); + ItemList.ModularElectric2Chestplate.set(new ElectricModularArmor1(0, 1, "modularelectric2_chestplate",2)); + ItemList.ModularElectric2Leggings.set(new ElectricModularArmor1(0, 2, "modularelectric2_leggings",2)); + ItemList.ModularElectric2Boots.set(new ElectricModularArmor1(0, 3, "modularelectric2_boots",2)); + +// long bits = GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE; +// GT_ModHandler.addCraftingRecipe(ItemList.ModularBasicHelmet. getWildcard(1, new Object[0]),bits, new Object[] { "AAA", "B B", 'A', new ItemStack(Items.leather, 1, 32767), 'B', OrePrefixes.ring.get(Materials.AnyIron)} ); +// GT_ModHandler.addCraftingRecipe(ItemList.ModularBasicChestplate. getWildcard(1, new Object[0]),bits, new Object[] { "A A", "BAB", "AAA", 'A', new ItemStack(Items.leather, 1, 32767), 'B', OrePrefixes.ring.get(Materials.AnyIron)} ); +// GT_ModHandler.addCraftingRecipe(ItemList.ModularBasicLeggings. getWildcard(1, new Object[0]),bits, new Object[] { "BAB", "A A", "A A", 'A', new ItemStack(Items.leather, 1, 32767), 'B', OrePrefixes.ring.get(Materials.AnyIron)} ); +// GT_ModHandler.addCraftingRecipe(ItemList.ModularBasicBoots. getWildcard(1, new Object[0]),bits, new Object[] { "A A", "B B", "A A", 'A', new ItemStack(Items.leather, 1, 32767), 'B', OrePrefixes.ring.get(Materials.AnyIron)} ); +// GT_ModHandler.addCraftingRecipe(ItemList.ModularElectric1Helmet. getWildcard(1, new Object[0]),bits, new Object[] { "ACA", "B B", 'A', OrePrefixes.stick.get(Materials.Aluminium), 'B', OrePrefixes.plate.get(Materials.Steel), 'C', OrePrefixes.battery.get(Materials.Advanced)}); +// GT_ModHandler.addCraftingRecipe(ItemList.ModularElectric1Chestplate.getWildcard(1, new Object[0]),bits, new Object[] { "A A", "BCB", "AAA", 'A', OrePrefixes.stick.get(Materials.Aluminium), 'B', OrePrefixes.plate.get(Materials.Steel), 'C', OrePrefixes.battery.get(Materials.Advanced)}); +// GT_ModHandler.addCraftingRecipe(ItemList.ModularElectric1Leggings. getWildcard(1, new Object[0]),bits, new Object[] { "BCB", "A A", "A A", 'A', OrePrefixes.stick.get(Materials.Aluminium), 'B', OrePrefixes.plate.get(Materials.Steel), 'C', OrePrefixes.battery.get(Materials.Advanced)}); +// GT_ModHandler.addCraftingRecipe(ItemList.ModularElectric1Boots. getWildcard(1, new Object[0]),bits, new Object[] { "A A", "BCB", "A A", 'A', OrePrefixes.stick.get(Materials.Aluminium), 'B', OrePrefixes.plate.get(Materials.Steel), 'C', OrePrefixes.battery.get(Materials.Advanced)}); +// GT_ModHandler.addCraftingRecipe(ItemList.ModularElectric2Helmet. getWildcard(1, new Object[0]),bits, new Object[] { "ACA", "B B", 'A', OrePrefixes.stick.get(Materials.TungstenSteel), 'B', OrePrefixes.plateAlloy.get(Materials.Carbon),'C',OrePrefixes.battery.get(Materials.Master)}); +// GT_ModHandler.addCraftingRecipe(ItemList.ModularElectric2Chestplate.getWildcard(1, new Object[0]),bits, new Object[] { "A A", "BCB", "AAA", 'A', OrePrefixes.stick.get(Materials.TungstenSteel), 'B', OrePrefixes.plateAlloy.get(Materials.Carbon),'C',OrePrefixes.battery.get(Materials.Master)}); +// GT_ModHandler.addCraftingRecipe(ItemList.ModularElectric2Leggings. getWildcard(1, new Object[0]),bits, new Object[] { "BCB", "A A", "A A", 'A', OrePrefixes.stick.get(Materials.TungstenSteel), 'B', OrePrefixes.plateAlloy.get(Materials.Carbon),'C',OrePrefixes.battery.get(Materials.Master)}); +// GT_ModHandler.addCraftingRecipe(ItemList.ModularElectric2Boots. getWildcard(1, new Object[0]),bits, new Object[] { "A A", "BCB", "A A", 'A', OrePrefixes.stick.get(Materials.TungstenSteel), 'B', OrePrefixes.plateAlloy.get(Materials.Carbon),'C',OrePrefixes.battery.get(Materials.Master)}); + + if (GregTech_API.sUnification.get(ConfigCategories.specialunificationtargets + "." + "railcraft", "plateIron", true)) { GT_OreDictUnificator.set(OrePrefixes.plate, Materials.Iron, GT_ModHandler.getModItem("Railcraft", "part.plate", 1L, 0)); } else { diff --git a/src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java b/src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java index ca86d92f..fffc8eed 100644 --- a/src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java +++ b/src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java @@ -26,13 +26,11 @@ import gregtech.common.tileentities.machines.steam.*; import gregtech.common.tileentities.storage.GT_MetaTileEntity_Locker; import gregtech.common.tileentities.storage.GT_MetaTileEntity_QuantumChest; import gregtech.common.tileentities.storage.GT_MetaTileEntity_QuantumTank; -import ic2.core.Ic2Items; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; - public class GT_Loader_MetaTileEntities implements Runnable { private static void run1() { @@ -54,6 +52,9 @@ public class GT_Loader_MetaTileEntities GT_ModHandler.addCraftingRecipe(ItemList.Casing_CleanStainlessSteel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PhP", "PFP", "PwP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.StainlessSteel), Character.valueOf('F'), OrePrefixes.frameGt.get(Materials.StainlessSteel)}); GT_ModHandler.addCraftingRecipe(ItemList.Casing_RobustTungstenSteel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PhP", "PFP", "PwP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.TungstenSteel), Character.valueOf('F'), OrePrefixes.frameGt.get(Materials.TungstenSteel)}); GT_ModHandler.addCraftingRecipe(ItemList.Casing_Turbine.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PhP", "PFP", "PwP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Magnalium), Character.valueOf('F'), OrePrefixes.frameGt.get(Materials.BlueSteel)}); + GT_ModHandler.addCraftingRecipe(ItemList.Casing_Turbine1.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PhP", "PFP", "PwP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.StainlessSteel), Character.valueOf('F'), ItemList.Casing_Turbine}); + GT_ModHandler.addCraftingRecipe(ItemList.Casing_Turbine2.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PhP", "PFP", "PwP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Titanium), Character.valueOf('F'), ItemList.Casing_Turbine}); + GT_ModHandler.addCraftingRecipe(ItemList.Casing_Turbine3.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PhP", "PFP", "PwP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.TungstenSteel), Character.valueOf('F'), ItemList.Casing_Turbine}); GT_ModHandler.addCraftingRecipe(ItemList.Casing_Pipe_Bronze.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PIP", "IFI", "PIP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('F'), OrePrefixes.frameGt.get(Materials.Bronze), Character.valueOf('I'), OrePrefixes.pipeMedium.get(Materials.Bronze)}); GT_ModHandler.addCraftingRecipe(ItemList.Casing_Pipe_Steel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PIP", "IFI", "PIP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('F'), OrePrefixes.frameGt.get(Materials.Steel), Character.valueOf('I'), OrePrefixes.pipeMedium.get(Materials.Steel)}); GT_ModHandler.addCraftingRecipe(ItemList.Casing_Pipe_Titanium.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PIP", "IFI", "PIP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Titanium), Character.valueOf('F'), OrePrefixes.frameGt.get(Materials.Titanium), Character.valueOf('I'), OrePrefixes.pipeMedium.get(Materials.Titanium)}); @@ -61,7 +62,9 @@ public class GT_Loader_MetaTileEntities GT_ModHandler.addCraftingRecipe(ItemList.Casing_Gearbox_Bronze.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PhP", "GFG", "PwP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('F'), OrePrefixes.frameGt.get(Materials.Bronze), Character.valueOf('G'), OrePrefixes.gearGt.get(Materials.Bronze)}); GT_ModHandler.addCraftingRecipe(ItemList.Casing_Gearbox_Steel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PhP", "GFG", "PwP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('F'), OrePrefixes.frameGt.get(Materials.Steel), Character.valueOf('G'), OrePrefixes.gearGt.get(Materials.Steel)}); GT_ModHandler.addCraftingRecipe(ItemList.Casing_Gearbox_Titanium.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PhP", "GFG", "PwP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('F'), OrePrefixes.frameGt.get(Materials.Titanium), Character.valueOf('G'), OrePrefixes.gearGt.get(Materials.Titanium)}); - GT_ModHandler.addCraftingRecipe(ItemList.Casing_Gearbox_TungstenSteel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PhP", "GFG", "PwP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('F'), OrePrefixes.frameGt.get(Materials.TungstenSteel), Character.valueOf('G'), OrePrefixes.gearGt.get(Materials.TungstenSteel)}); + GT_ModHandler.addCraftingRecipe(ItemList.Casing_Gearbox_TungstenSteel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PhP", "GFG", "PwP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('F'), OrePrefixes.frameGt.get(Materials.TungstenSteel), Character.valueOf('G'), ItemList.Robot_Arm_IV}); + GT_ModHandler.addCraftingRecipe(ItemList.Casing_Grate.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PVP", "PFP", "PMP", Character.valueOf('P'), new ItemStack(Blocks.iron_bars,1), Character.valueOf('F'), OrePrefixes.frameGt.get(Materials.Steel), Character.valueOf('M'), ItemList.Electric_Motor_MV, Character.valueOf('V'), OrePrefixes.rotor.get(Materials.Steel)}); + GT_ModHandler.addCraftingRecipe(ItemList.Casing_Assembler.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PVP", "PFP", "PMP", Character.valueOf('P'), OrePrefixes.circuit.get(Materials.Ultimate), Character.valueOf('F'), OrePrefixes.frameGt.get(Materials.TungstenSteel), Character.valueOf('M'), ItemList.Electric_Motor_IV, Character.valueOf('V'), OrePrefixes.circuit.get(Materials.Master)}); GT_ModHandler.addCraftingRecipe(ItemList.Casing_Firebox_Bronze.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PSP", "SFS", "PSP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('F'), OrePrefixes.frameGt.get(Materials.Bronze), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Bronze)}); GT_ModHandler.addCraftingRecipe(ItemList.Casing_Firebox_Steel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PSP", "SFS", "PSP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('F'), OrePrefixes.frameGt.get(Materials.Steel), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Steel)}); GT_ModHandler.addCraftingRecipe(ItemList.Casing_Firebox_Titanium.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PSP", "SFS", "PSP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Titanium), Character.valueOf('F'), OrePrefixes.frameGt.get(Materials.Titanium), Character.valueOf('S'), OrePrefixes.stick.get(Materials.Titanium)}); @@ -113,16 +116,38 @@ public class GT_Loader_MetaTileEntities ItemList.Hull_UV.set(new GT_MetaTileEntity_BasicHull(18, "hull.tier.08", "UV Machine Hull", 8, EnumChatFormatting.RESET + "You just need " + EnumChatFormatting.DARK_PURPLE + "I" + EnumChatFormatting.LIGHT_PURPLE + "m" + EnumChatFormatting.DARK_RED + "a" + EnumChatFormatting.RED + "g" + EnumChatFormatting.YELLOW + "i" + EnumChatFormatting.GREEN + "n" + EnumChatFormatting.AQUA + "a" + EnumChatFormatting.DARK_AQUA + "t" + EnumChatFormatting.BLUE + "i" + EnumChatFormatting.DARK_BLUE + "o" + EnumChatFormatting.DARK_PURPLE + "n" + EnumChatFormatting.RESET + " to use this.", new ITexture[0]).getStackForm(1L)); ItemList.Hull_MAX.set(new GT_MetaTileEntity_BasicHull(19, "hull.tier.09", "Max Machine Hull", 9, EnumChatFormatting.RESET + "You just need " + EnumChatFormatting.DARK_PURPLE + "I" + EnumChatFormatting.LIGHT_PURPLE + "m" + EnumChatFormatting.DARK_RED + "a" + EnumChatFormatting.RED + "g" + EnumChatFormatting.YELLOW + "i" + EnumChatFormatting.GREEN + "n" + EnumChatFormatting.AQUA + "a" + EnumChatFormatting.DARK_AQUA + "t" + EnumChatFormatting.BLUE + "i" + EnumChatFormatting.DARK_BLUE + "o" + EnumChatFormatting.DARK_PURPLE + "n" + EnumChatFormatting.RESET + " to use this.", new ITexture[0]).getStackForm(1L)); - GT_ModHandler.addCraftingRecipe(ItemList.Hull_ULV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CMC", Character.valueOf('M'), ItemList.Casing_ULV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Lead)}); - GT_ModHandler.addCraftingRecipe(ItemList.Hull_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CMC", Character.valueOf('M'), ItemList.Casing_LV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Tin)}); - GT_ModHandler.addCraftingRecipe(ItemList.Hull_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CMC", Character.valueOf('M'), ItemList.Casing_MV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.AnyCopper)}); - GT_ModHandler.addCraftingRecipe(ItemList.Hull_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CMC", Character.valueOf('M'), ItemList.Casing_HV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Gold)}); - GT_ModHandler.addCraftingRecipe(ItemList.Hull_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CMC", Character.valueOf('M'), ItemList.Casing_EV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Aluminium)}); - GT_ModHandler.addCraftingRecipe(ItemList.Hull_IV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CMC", Character.valueOf('M'), ItemList.Casing_IV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Tungsten)}); - GT_ModHandler.addCraftingRecipe(ItemList.Hull_LuV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CMC", Character.valueOf('M'), ItemList.Casing_LuV, Character.valueOf('C'), OrePrefixes.cableGt04.get(Materials.Tungsten)}); - GT_ModHandler.addCraftingRecipe(ItemList.Hull_ZPM.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CMC", Character.valueOf('M'), ItemList.Casing_ZPM, Character.valueOf('C'), OrePrefixes.cableGt04.get(Materials.Osmium)}); - GT_ModHandler.addCraftingRecipe(ItemList.Hull_UV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CMC", Character.valueOf('M'), ItemList.Casing_UV, Character.valueOf('C'), OrePrefixes.wireGt16.get(Materials.Osmium)}); - GT_ModHandler.addCraftingRecipe(ItemList.Hull_MAX.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CMC", Character.valueOf('M'), ItemList.Casing_MAX, Character.valueOf('C'), OrePrefixes.wireGt01.get(Materials.Superconductor)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hull_ULV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"CMC", Character.valueOf('M'), ItemList.Casing_ULV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Lead), 'H', OrePrefixes.plate.get(Materials.WroughtIron), 'P', OrePrefixes.plate.get(Materials.Wood)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hull_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"CMC", Character.valueOf('M'), ItemList.Casing_LV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Tin), 'H', OrePrefixes.plate.get(Materials.Steel), 'P', OrePrefixes.plate.get(Materials.WroughtIron)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hull_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"CMC", Character.valueOf('M'), ItemList.Casing_MV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.AnyCopper), 'H', OrePrefixes.plate.get(Materials.Aluminium), 'P', OrePrefixes.plate.get(Materials.WroughtIron)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hull_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"CMC", Character.valueOf('M'), ItemList.Casing_HV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Gold), 'H', OrePrefixes.plate.get(Materials.StainlessSteel), 'P', OrePrefixes.plate.get(Materials.Plastic)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hull_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"CMC", Character.valueOf('M'), ItemList.Casing_EV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Aluminium), 'H', OrePrefixes.plate.get(Materials.Titanium), 'P', OrePrefixes.plate.get(Materials.Plastic)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hull_IV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"CMC", Character.valueOf('M'), ItemList.Casing_IV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Tungsten), 'H', OrePrefixes.plate.get(Materials.TungstenSteel), 'P', OrePrefixes.plate.get(Materials.Plastic)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hull_LuV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"CMC", Character.valueOf('M'), ItemList.Casing_LuV, Character.valueOf('C'), OrePrefixes.cableGt04.get(Materials.Tungsten), 'H', OrePrefixes.plate.get(Materials.Chrome), 'P', OrePrefixes.plate.get(Materials.Plastic)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hull_ZPM.get(1L, new Object[0]), GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"CMC", Character.valueOf('M'), ItemList.Casing_ZPM, Character.valueOf('C'), OrePrefixes.cableGt04.get(Materials.Osmium), 'H', OrePrefixes.plate.get(Materials.Iridium), 'P', OrePrefixes.plate.get(Materials.Polytetrafluoroethylene)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hull_UV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"CMC", Character.valueOf('M'), ItemList.Casing_UV, Character.valueOf('C'), OrePrefixes.wireGt16.get(Materials.Osmium), 'H', OrePrefixes.plate.get(Materials.Osmium), 'P', OrePrefixes.plate.get(Materials.Polytetrafluoroethylene)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hull_MAX.get(1L, new Object[0]), GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"CMC", Character.valueOf('M'), ItemList.Casing_MAX, Character.valueOf('C'), OrePrefixes.wireGt01.get(Materials.Superconductor), 'H', OrePrefixes.plate.get(Materials.Neutronium), 'P', OrePrefixes.plate.get(Materials.Polytetrafluoroethylene)}); + + GT_ModHandler.removeRecipeByOutput(ItemList.Hull_ULV.get(1L, new Object[0])); + GT_ModHandler.removeRecipeByOutput(ItemList.Hull_LV.get(1L, new Object[0])); + GT_ModHandler.removeRecipeByOutput(ItemList.Hull_MV.get(1L, new Object[0])); + GT_ModHandler.removeRecipeByOutput(ItemList.Hull_HV.get(1L, new Object[0])); + GT_ModHandler.removeRecipeByOutput(ItemList.Hull_EV.get(1L, new Object[0])); + GT_ModHandler.removeRecipeByOutput(ItemList.Hull_IV.get(1L, new Object[0])); + GT_ModHandler.removeRecipeByOutput(ItemList.Hull_LuV.get(1L, new Object[0])); + GT_ModHandler.removeRecipeByOutput(ItemList.Hull_ZPM.get(1L, new Object[0])); + GT_ModHandler.removeRecipeByOutput(ItemList.Hull_UV.get(1L, new Object[0])); + GT_ModHandler.removeRecipeByOutput(ItemList.Hull_MAX.get(1L, new Object[0])); + + GT_ModHandler.addCraftingRecipe(ItemList.Hull_ULV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PHP", "CMC", Character.valueOf('M'), ItemList.Casing_ULV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Lead), 'H', OrePrefixes.plate.get(Materials.WroughtIron), 'P', OrePrefixes.plate.get(Materials.Wood)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hull_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PHP", "CMC", Character.valueOf('M'), ItemList.Casing_LV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Tin), 'H', OrePrefixes.plate.get(Materials.Steel), 'P', OrePrefixes.plate.get(Materials.WroughtIron)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hull_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PHP", "CMC", Character.valueOf('M'), ItemList.Casing_MV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.AnyCopper), 'H', OrePrefixes.plate.get(Materials.Aluminium), 'P', OrePrefixes.plate.get(Materials.WroughtIron)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hull_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PHP", "CMC", Character.valueOf('M'), ItemList.Casing_HV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Gold), 'H', OrePrefixes.plate.get(Materials.StainlessSteel), 'P', OrePrefixes.plate.get(Materials.Plastic)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hull_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PHP", "CMC", Character.valueOf('M'), ItemList.Casing_EV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Aluminium), 'H', OrePrefixes.plate.get(Materials.Titanium), 'P', OrePrefixes.plate.get(Materials.Plastic)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hull_IV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PHP", "CMC", Character.valueOf('M'), ItemList.Casing_IV, Character.valueOf('C'), OrePrefixes.cableGt01.get(Materials.Tungsten), 'H', OrePrefixes.plate.get(Materials.TungstenSteel), 'P', OrePrefixes.plate.get(Materials.Plastic)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hull_LuV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PHP", "CMC", Character.valueOf('M'), ItemList.Casing_LuV, Character.valueOf('C'), OrePrefixes.cableGt04.get(Materials.Tungsten), 'H', OrePrefixes.plate.get(Materials.Chrome), 'P', OrePrefixes.plate.get(Materials.Plastic)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hull_ZPM.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PHP", "CMC", Character.valueOf('M'), ItemList.Casing_ZPM, Character.valueOf('C'), OrePrefixes.cableGt04.get(Materials.Osmium), 'H', OrePrefixes.plate.get(Materials.Iridium), 'P', OrePrefixes.plate.get(Materials.Polytetrafluoroethylene)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hull_UV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PHP", "CMC", Character.valueOf('M'), ItemList.Casing_UV, Character.valueOf('C'), OrePrefixes.wireGt16.get(Materials.Osmium), 'H', OrePrefixes.plate.get(Materials.Osmium), 'P', OrePrefixes.plate.get(Materials.Polytetrafluoroethylene)}); + GT_ModHandler.addCraftingRecipe(ItemList.Hull_MAX.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PHP", "CMC", Character.valueOf('M'), ItemList.Casing_MAX, Character.valueOf('C'), OrePrefixes.wireGt01.get(Materials.Superconductor), 'H', OrePrefixes.plate.get(Materials.Neutronium), 'P', OrePrefixes.plate.get(Materials.Polytetrafluoroethylene)}); ItemList.Transformer_LV_ULV.set(new GT_MetaTileEntity_Transformer(20, "transformer.tier.00", "Ultra Low Voltage Transformer", 0, "LV -> ULV (Use Soft Hammer to invert)").getStackForm(1L)); ItemList.Transformer_MV_LV.set(new GT_MetaTileEntity_Transformer(21, "transformer.tier.01", "Low Voltage Transformer", 1, "MV -> LV (Use Soft Hammer to invert)").getStackForm(1L)); @@ -228,11 +253,11 @@ public class GT_Loader_MetaTileEntities ItemList.Quantum_Tank_EV.set(new GT_MetaTileEntity_QuantumTank(123, "quantum.tank.tier.04", "Quantum Tank IV", 4).getStackForm(1L)); ItemList.Quantum_Tank_IV.set(new GT_MetaTileEntity_QuantumTank(124, "quantum.tank.tier.05", "Quantum Tank V", 5).getStackForm(1L)); - GT_ModHandler.addCraftingRecipe(ItemList.Quantum_Tank_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"DGD", "PMP", "DPD", 'M', ItemList.Hull_LV, 'G', ItemList.Field_Generator_LV, 'D', ItemList.Circuit_Data, 'P', OrePrefixes.plate.get(Materials.StainlessSteel)}); - GT_ModHandler.addCraftingRecipe(ItemList.Quantum_Tank_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"DGD", "PMP", "DPD", 'M', ItemList.Hull_MV, 'G', ItemList.Field_Generator_MV, 'D', ItemList.Circuit_Elite, 'P', OrePrefixes.plate.get(Materials.Titanium)}); - GT_ModHandler.addCraftingRecipe(ItemList.Quantum_Tank_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"DGD", "PMP", "DPD", 'M', ItemList.Hull_HV, 'G', ItemList.Field_Generator_HV, 'D', ItemList.Circuit_Master, 'P', OrePrefixes.plate.get(Materials.TungstenSteel)}); - GT_ModHandler.addCraftingRecipe(ItemList.Quantum_Tank_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"DGD", "PMP", "DPD", 'M', ItemList.Hull_EV, 'G', ItemList.Field_Generator_EV, 'D', ItemList.Circuit_Ultimate, 'P', OrePrefixes.plate.get(Materials.Europium)}); - GT_ModHandler.addCraftingRecipe(ItemList.Quantum_Tank_IV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"DGD", "PMP", "DPD", 'M', ItemList.Hull_IV, 'G', ItemList.Field_Generator_IV, 'D', ItemList.Circuit_Ultimate, 'P', OrePrefixes.plate.get(Materials.Americium)}); + GT_ModHandler.addCraftingRecipe(ItemList.Quantum_Tank_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"DGD", "PMP", "DPD", 'M', ItemList.Hull_LV, 'G', ItemList.Field_Generator_LV, 'D', ItemList.Circuit_Parts_Crystal_Chip_Elite, 'P', OrePrefixes.plate.get(Materials.StainlessSteel)}); + GT_ModHandler.addCraftingRecipe(ItemList.Quantum_Tank_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"DGD", "PMP", "DPD", 'M', ItemList.Hull_MV, 'G', ItemList.Field_Generator_MV, 'D', ItemList.Circuit_Data, 'P', OrePrefixes.plate.get(Materials.Titanium)}); + GT_ModHandler.addCraftingRecipe(ItemList.Quantum_Tank_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"DGD", "PMP", "DPD", 'M', ItemList.Hull_HV, 'G', ItemList.Field_Generator_HV, 'D', ItemList.Circuit_Elite, 'P', OrePrefixes.plate.get(Materials.TungstenSteel)}); + GT_ModHandler.addCraftingRecipe(ItemList.Quantum_Tank_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"DGD", "PMP", "DPD", 'M', ItemList.Hull_EV, 'G', ItemList.Field_Generator_EV, 'D', ItemList.Circuit_Master, 'P', OrePrefixes.plate.get(Materials.Europium)}); + GT_ModHandler.addCraftingRecipe(ItemList.Quantum_Tank_IV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"DGD", "PMP", "DPD", 'M', ItemList.Hull_IV, 'G', ItemList.Field_Generator_IV, 'D', ItemList.Circuit_Master, 'P', OrePrefixes.plate.get(Materials.Americium)}); ItemList.Quantum_Chest_LV.set(new GT_MetaTileEntity_QuantumChest(125, "quantum.chest.tier.01", "Quantum Chest I", 1).getStackForm(1L)); ItemList.Quantum_Chest_MV.set(new GT_MetaTileEntity_QuantumChest(126, "quantum.chest.tier.02", "Quantum Chest II", 2).getStackForm(1L)); @@ -240,11 +265,11 @@ public class GT_Loader_MetaTileEntities ItemList.Quantum_Chest_EV.set(new GT_MetaTileEntity_QuantumChest(128, "quantum.chest.tier.04", "Quantum Chest IV", 4).getStackForm(1L)); ItemList.Quantum_Chest_IV.set(new GT_MetaTileEntity_QuantumChest(129, "quantum.chest.tier.05", "Quantum Chest V", 5).getStackForm(1L)); - GT_ModHandler.addCraftingRecipe(ItemList.Quantum_Chest_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"DPD", "PMP", "DGD", 'M', ItemList.Hull_LV, 'G', ItemList.Field_Generator_LV, 'D', ItemList.Circuit_Data, 'P', OrePrefixes.plate.get(Materials.StainlessSteel)}); - GT_ModHandler.addCraftingRecipe(ItemList.Quantum_Chest_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"DPD", "PMP", "DGD", 'M', ItemList.Hull_MV, 'G', ItemList.Field_Generator_MV, 'D', ItemList.Circuit_Elite, 'P', OrePrefixes.plate.get(Materials.Titanium)}); - GT_ModHandler.addCraftingRecipe(ItemList.Quantum_Chest_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"DPD", "PMP", "DGD", 'M', ItemList.Hull_HV, 'G', ItemList.Field_Generator_HV, 'D', ItemList.Circuit_Master, 'P', OrePrefixes.plate.get(Materials.TungstenSteel)}); - GT_ModHandler.addCraftingRecipe(ItemList.Quantum_Chest_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"DPD", "PMP", "DGD", 'M', ItemList.Hull_EV, 'G', ItemList.Field_Generator_EV, 'D', ItemList.Circuit_Ultimate, 'P', OrePrefixes.plate.get(Materials.Europium)}); - GT_ModHandler.addCraftingRecipe(ItemList.Quantum_Chest_IV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"DPD", "PMP", "DGD", 'M', ItemList.Hull_IV, 'G', ItemList.Field_Generator_IV, 'D', ItemList.Circuit_Ultimate, 'P', OrePrefixes.plate.get(Materials.Americium)}); + GT_ModHandler.addCraftingRecipe(ItemList.Quantum_Chest_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"DPD", "PMP", "DGD", 'M', ItemList.Hull_LV, 'G', ItemList.Field_Generator_LV, 'D', ItemList.Circuit_Parts_Crystal_Chip_Elite, 'P', OrePrefixes.plate.get(Materials.StainlessSteel)}); + GT_ModHandler.addCraftingRecipe(ItemList.Quantum_Chest_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"DPD", "PMP", "DGD", 'M', ItemList.Hull_MV, 'G', ItemList.Field_Generator_MV, 'D', ItemList.Circuit_Data, 'P', OrePrefixes.plate.get(Materials.Titanium)}); + GT_ModHandler.addCraftingRecipe(ItemList.Quantum_Chest_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"DPD", "PMP", "DGD", 'M', ItemList.Hull_HV, 'G', ItemList.Field_Generator_HV, 'D', ItemList.Circuit_Elite, 'P', OrePrefixes.plate.get(Materials.TungstenSteel)}); + GT_ModHandler.addCraftingRecipe(ItemList.Quantum_Chest_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"DPD", "PMP", "DGD", 'M', ItemList.Hull_EV, 'G', ItemList.Field_Generator_EV, 'D', ItemList.Circuit_Master, 'P', OrePrefixes.plate.get(Materials.Europium)}); + GT_ModHandler.addCraftingRecipe(ItemList.Quantum_Chest_IV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"DPD", "PMP", "DGD", 'M', ItemList.Hull_IV, 'G', ItemList.Field_Generator_IV, 'D', ItemList.Circuit_Master, 'P', OrePrefixes.plate.get(Materials.Americium)}); GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Output_ULV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"M", "G", Character.valueOf('M'), ItemList.Hull_ULV, Character.valueOf('G'), new ItemStack(Blocks.glass, 1)}); GT_ModHandler.addCraftingRecipe(ItemList.Hatch_Output_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"M", "G", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('G'), new ItemStack(Blocks.glass, 1)}); @@ -331,14 +356,14 @@ public class GT_Loader_MetaTileEntities ItemList.Machine_Steel_Boiler_Lava.set(new GT_MetaTileEntity_Boiler_Lava(102, "boiler.lava", "High Pressure Lava Boiler").getStackForm(1L)); ItemList.Machine_Bronze_Boiler_Solar.set(new GT_MetaTileEntity_Boiler_Solar(105, "boiler.solar", "Simple Solar Boiler").getStackForm(1L)); - GT_ModHandler.addCraftingRecipe(ItemList.Machine_Bronze_Boiler.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PPP", "PwP", "BFB", Character.valueOf('F'), OreDictNames.craftingFurnace, Character.valueOf('P'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('B'), new ItemStack(Blocks.brick_block, 1)}); - GT_ModHandler.addCraftingRecipe(ItemList.Machine_Steel_Boiler.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PPP", "PwP", "BFB", Character.valueOf('F'), OreDictNames.craftingIronFurnace, Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('B'), new ItemStack(Blocks.brick_block, 1)}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_Bronze_Boiler.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PPP", "P P", "BFB", Character.valueOf('F'), OreDictNames.craftingFurnace, Character.valueOf('P'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('B'), new ItemStack(Blocks.brick_block, 1)}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_Steel_Boiler.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PPP", "P P", "BFB", Character.valueOf('F'), OreDictNames.craftingFurnace, Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('B'), new ItemStack(Blocks.brick_block, 1)}); GT_ModHandler.addCraftingRecipe(ItemList.Machine_Steel_Boiler_Lava.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PPP", "GGG", "PMP", Character.valueOf('M'), ItemList.Hull_Steel_Bricks, Character.valueOf('P'), OrePrefixes.plate.get(Materials.Steel), Character.valueOf('G'), new ItemStack(Blocks.glass, 1)}); GT_ModHandler.addCraftingRecipe(ItemList.Machine_Bronze_Boiler_Solar.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"GGG", "SSS", "PMP", Character.valueOf('M'), ItemList.Hull_Bronze_Bricks, Character.valueOf('P'), OrePrefixes.pipeSmall.get(Materials.Bronze), Character.valueOf('S'), OrePrefixes.plate.get(Materials.Silver), Character.valueOf('G'), new ItemStack(Blocks.glass, 1)}); ItemList.Machine_Bronze_BlastFurnace.set(new GT_MetaTileEntity_BronzeBlastFurnace(108, "bronzemachine.blastfurnace", "Bronze Plated Blast Furnace").getStackForm(1L)); if (!Loader.isModLoaded("terrafirmacraft")) { - GT_ModHandler.addCraftingRecipe(ItemList.Machine_Bronze_BlastFurnace.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PFP", "FwF", "PFP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('F'), OreDictNames.craftingIronFurnace}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_Bronze_BlastFurnace.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PFP", "FwF", "PFP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('F'), OreDictNames.craftingFurnace}); } ItemList.Machine_Bronze_Furnace.set(new GT_MetaTileEntity_Furnace_Bronze(103, "bronzemachine.furnace", "Steam Furnace").getStackForm(1L)); ItemList.Machine_Steel_Furnace.set(new GT_MetaTileEntity_Furnace_Steel(104, "steelmachine.furnace", "High Pressure Furnace").getStackForm(1L)); @@ -364,7 +389,7 @@ public class GT_Loader_MetaTileEntities GT_ModHandler.addCraftingRecipe(ItemList.Machine_Bronze_Compressor.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"XXX", "PMP", "XXX", Character.valueOf('M'), ItemList.Hull_Bronze, Character.valueOf('X'), OrePrefixes.pipeSmall.get(Materials.Bronze), Character.valueOf('P'), OreDictNames.craftingPiston}); GT_ModHandler.addCraftingRecipe(ItemList.Machine_Steel_Compressor.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"XXX", "PMP", "XXX", Character.valueOf('M'), ItemList.Hull_Steel, Character.valueOf('X'), OrePrefixes.pipeSmall.get(Materials.Steel), Character.valueOf('P'), OreDictNames.craftingPiston}); GT_ModHandler.addCraftingRecipe(ItemList.Machine_Bronze_AlloySmelter.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"XXX", "FMF", "XXX", Character.valueOf('M'), ItemList.Hull_Bronze_Bricks, Character.valueOf('X'), OrePrefixes.pipeSmall.get(Materials.Bronze), Character.valueOf('F'), OreDictNames.craftingFurnace}); - GT_ModHandler.addCraftingRecipe(ItemList.Machine_Steel_AlloySmelter.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"XXX", "FMF", "XXX", Character.valueOf('M'), ItemList.Hull_Steel_Bricks, Character.valueOf('X'), OrePrefixes.pipeSmall.get(Materials.Steel), Character.valueOf('F'), OreDictNames.craftingIronFurnace}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_Steel_AlloySmelter.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"XXX", "FMF", "XXX", Character.valueOf('M'), ItemList.Hull_Steel_Bricks, Character.valueOf('X'), OrePrefixes.pipeSmall.get(Materials.Steel), Character.valueOf('F'), OreDictNames.craftingFurnace}); ItemList.Locker_ULV.set(new GT_MetaTileEntity_Locker(150, "locker.tier.00", "Ultra Low Voltage Locker", 0).getStackForm(1L)); @@ -466,6 +491,28 @@ public class GT_Loader_MetaTileEntities GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_4by4_UV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WTW", "WMW", Character.valueOf('M'), ItemList.Hull_UV, Character.valueOf('W'), OrePrefixes.wireGt16.get(Materials.Osmium), Character.valueOf('T'), OreDictNames.craftingChest}); GT_ModHandler.addCraftingRecipe(ItemList.Battery_Buffer_4by4_MAX.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WTW", "WMW", Character.valueOf('M'), ItemList.Hull_MAX, Character.valueOf('W'), OrePrefixes.wireGt16.get(Materials.Superconductor), Character.valueOf('T'), OreDictNames.craftingChest}); + ItemList.Battery_Charger_4by4_ULV.set(new GT_MetaTileEntity_Charger(690, "batterycharger.16.tier.00", "Ultra Low Voltage Battery Charger", 0, "", 4).getStackForm(1L)); + ItemList.Battery_Charger_4by4_LV.set(new GT_MetaTileEntity_Charger(691, "batterycharger.16.tier.01", "Low Voltage Battery Charger", 1, "", 4).getStackForm(1L)); + ItemList.Battery_Charger_4by4_MV.set(new GT_MetaTileEntity_Charger(692, "batterycharger.16.tier.02", "Medium Voltage Battery Charger", 2, "", 4).getStackForm(1L)); + ItemList.Battery_Charger_4by4_HV.set(new GT_MetaTileEntity_Charger(693, "batterycharger.16.tier.03", "High Voltage Battery Charger", 3, "", 4).getStackForm(1L)); + ItemList.Battery_Charger_4by4_EV.set(new GT_MetaTileEntity_Charger(694, "batterycharger.16.tier.04", "Extreme Voltage Battery Charger", 4, "", 4).getStackForm(1L)); + ItemList.Battery_Charger_4by4_IV.set(new GT_MetaTileEntity_Charger(695, "batterycharger.16.tier.05", "Insane Voltage Battery Charger", 5, "", 4).getStackForm(1L)); + ItemList.Battery_Charger_4by4_LuV.set(new GT_MetaTileEntity_Charger(696, "batterycharger.16.tier.06", "Ludicrous Voltage Battery Charger", 6, "", 4).getStackForm(1L)); + ItemList.Battery_Charger_4by4_ZPM.set(new GT_MetaTileEntity_Charger(697, "batterycharger.16.tier.07", "ZPM Voltage Battery Charger", 7, "", 4).getStackForm(1L)); + ItemList.Battery_Charger_4by4_UV.set(new GT_MetaTileEntity_Charger(698, "batterycharger.16.tier.08", "Ultimate Voltage Battery Charger", 8, "", 4).getStackForm(1L)); + ItemList.Battery_Charger_4by4_MAX.set(new GT_MetaTileEntity_Charger(699, "batterycharger.16.tier.09", "MAX Voltage Battery Charger", 9, "", 4).getStackForm(1L)); + + GT_ModHandler.addCraftingRecipe(ItemList.Battery_Charger_4by4_ULV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WTW", "WMW", "BCB", Character.valueOf('M'), ItemList.Hull_ULV, Character.valueOf('W'), OrePrefixes.wireGt16.get(Materials.Lead), Character.valueOf('T'), OreDictNames.craftingChest, 'B', ItemList.Battery_RE_ULV_Tantalum, 'C', OrePrefixes.circuit.get(Materials.Primitive)}); + GT_ModHandler.addCraftingRecipe(ItemList.Battery_Charger_4by4_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WTW", "WMW", "BCB", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('W'), OrePrefixes.wireGt16.get(Materials.Tin), Character.valueOf('T'), OreDictNames.craftingChest, 'B', ItemList.Battery_RE_LV_Lithium, 'C', OrePrefixes.circuit.get(Materials.Basic)}); + GT_ModHandler.addCraftingRecipe(ItemList.Battery_Charger_4by4_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WTW", "WMW", "BCB", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('W'), OrePrefixes.wireGt16.get(Materials.AnyCopper), Character.valueOf('T'), OreDictNames.craftingChest, 'B', ItemList.Battery_RE_MV_Lithium, 'C', OrePrefixes.circuit.get(Materials.Good)}); + GT_ModHandler.addCraftingRecipe(ItemList.Battery_Charger_4by4_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WTW", "WMW", "BCB", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('W'), OrePrefixes.wireGt16.get(Materials.Gold), Character.valueOf('T'), OreDictNames.craftingChest, 'B', ItemList.Battery_RE_HV_Lithium, 'C', OrePrefixes.circuit.get(Materials.Advanced)}); + GT_ModHandler.addCraftingRecipe(ItemList.Battery_Charger_4by4_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WTW", "WMW", "BCB", Character.valueOf('M'), ItemList.Hull_EV, Character.valueOf('W'), OrePrefixes.wireGt16.get(Materials.Aluminium), Character.valueOf('T'), OreDictNames.craftingChest, 'B', OrePrefixes.battery.get(Materials.Master), 'C', OrePrefixes.circuit.get(Materials.Data)}); + GT_ModHandler.addCraftingRecipe(ItemList.Battery_Charger_4by4_IV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WTW", "WMW", "BCB", Character.valueOf('M'), ItemList.Hull_IV, Character.valueOf('W'), OrePrefixes.wireGt16.get(Materials.Tungsten), Character.valueOf('T'), OreDictNames.craftingChest, 'B', ItemList.Energy_LapotronicOrb, 'C', OrePrefixes.circuit.get(Materials.Elite)}); + GT_ModHandler.addCraftingRecipe(ItemList.Battery_Charger_4by4_LuV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WTW", "WMW", "BCB", Character.valueOf('M'), ItemList.Hull_LuV, Character.valueOf('W'), OrePrefixes.wireGt16.get(Materials.Osmium), Character.valueOf('T'), OreDictNames.craftingChest, 'B', ItemList.Energy_LapotronicOrb2, 'C', OrePrefixes.circuit.get(Materials.Master)}); + GT_ModHandler.addCraftingRecipe(ItemList.Battery_Charger_4by4_ZPM.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WTW", "WMW", "BCB", Character.valueOf('M'), ItemList.Hull_ZPM, Character.valueOf('W'), OrePrefixes.wireGt16.get(Materials.Osmium), Character.valueOf('T'), OreDictNames.craftingChest, 'B', ItemList.Energy_LapotronicOrb2, 'C', OrePrefixes.circuit.get(Materials.Ultimate)}); + GT_ModHandler.addCraftingRecipe(ItemList.Battery_Charger_4by4_UV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WTW", "WMW", "BCB", Character.valueOf('M'), ItemList.Hull_UV, Character.valueOf('W'), OrePrefixes.wireGt16.get(Materials.Osmium), Character.valueOf('T'), OreDictNames.craftingChest, 'B', ItemList.ZPM2, 'C', OrePrefixes.circuit.get(Materials.Ultimate)}); + GT_ModHandler.addCraftingRecipe(ItemList.Battery_Charger_4by4_MAX.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WTW", "WMW", "BCB", Character.valueOf('M'), ItemList.Hull_MAX, Character.valueOf('W'), OrePrefixes.wireGt16.get(Materials.Superconductor), Character.valueOf('T'), OreDictNames.craftingChest, 'B', ItemList.ZPM2, 'C', OrePrefixes.circuit.get(Materials.Ultimate)}); + GT_ModHandler.addCraftingRecipe(ItemList.Locker_ULV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"T", "M", Character.valueOf('M'), ItemList.Battery_Buffer_2by2_ULV, Character.valueOf('T'), OreDictNames.craftingChest}); GT_ModHandler.addCraftingRecipe(ItemList.Locker_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"T", "M", Character.valueOf('M'), ItemList.Battery_Buffer_2by2_LV, Character.valueOf('T'), OreDictNames.craftingChest}); GT_ModHandler.addCraftingRecipe(ItemList.Locker_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"T", "M", Character.valueOf('M'), ItemList.Battery_Buffer_2by2_MV, Character.valueOf('T'), OreDictNames.craftingChest}); @@ -515,11 +562,11 @@ public class GT_Loader_MetaTileEntities ItemList.Machine_EV_Cutter.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(254, "basicmachine.cutter.tier.04", "Advanced Cutting Machine III", 4, "Slice'N Dice", GT_Recipe.GT_Recipe_Map.sCutterRecipes, 1, 2, 1000, 0, 1, "Cutter.png", "", false, false, 0, "CUTTER", new Object[]{"WCG", "VMB", "CWE", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS, Character.valueOf('B'), OreDictNames.craftingDiamondBlade}).getStackForm(1L)); ItemList.Machine_IV_Cutter.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(255, "basicmachine.cutter.tier.05", "Advanced Cutting Machine IV", 5, "Slice'N Dice", GT_Recipe.GT_Recipe_Map.sCutterRecipes, 1, 2, 1000, 0, 1, "Cutter.png", "", false, false, 0, "CUTTER", new Object[]{"WCG", "VMB", "CWE", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS, Character.valueOf('B'), OreDictNames.craftingDiamondBlade}).getStackForm(1L)); - ItemList.Machine_LV_E_Furnace.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(261, "basicmachine.e_furnace.tier.01", "Basic Electric Furnace", 1, "Not like using a Commodore 64", GT_Recipe.GT_Recipe_Map.sFurnaceRecipes, 1, 1, 0, 0, 1, "E_Furnace.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(207)), false, false, 0, "ELECTRIC_FURNACE", new Object[]{"WCW", "CMC", "ECE", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING}).getStackForm(1L)); - ItemList.Machine_MV_E_Furnace.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(262, "basicmachine.e_furnace.tier.02", "Advanced Electric Furnace", 2, "Not like using a Commodore 64", GT_Recipe.GT_Recipe_Map.sFurnaceRecipes, 1, 1, 0, 0, 1, "E_Furnace.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(207)), false, false, 0, "ELECTRIC_FURNACE", new Object[]{"WCW", "CMC", "ECE", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING}).getStackForm(1L)); - ItemList.Machine_HV_E_Furnace.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(263, "basicmachine.e_furnace.tier.03", "Advanced Electric Furnace II", 3, "Not like using a Commodore 64", GT_Recipe.GT_Recipe_Map.sFurnaceRecipes, 1, 1, 0, 0, 1, "E_Furnace.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(207)), false, false, 0, "ELECTRIC_FURNACE", new Object[]{"WCW", "CMC", "ECE", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING}).getStackForm(1L)); - ItemList.Machine_EV_E_Furnace.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(264, "basicmachine.e_furnace.tier.04", "Advanced Electric Furnace III", 4, "Not like using a Commodore 64", GT_Recipe.GT_Recipe_Map.sFurnaceRecipes, 1, 1, 0, 0, 1, "E_Furnace.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(207)), false, false, 0, "ELECTRIC_FURNACE", new Object[]{"WCW", "CMC", "ECE", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING}).getStackForm(1L)); - ItemList.Machine_IV_E_Furnace.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(265, "basicmachine.e_furnace.tier.05", "Electron Exitement Processor", 5, "Not like using a Commodore 64", GT_Recipe.GT_Recipe_Map.sFurnaceRecipes, 1, 1, 0, 0, 1, "E_Furnace.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(207)), false, false, 0, "ELECTRIC_FURNACE", new Object[]{"WCW", "CMC", "ECE", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING}).getStackForm(1L)); + ItemList.Machine_LV_E_Furnace.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(261, "basicmachine.e_furnace.tier.01", "Basic Electric Furnace", 1, "Not like using a Commodore 64", GT_Recipe.GT_Recipe_Map.sFurnaceRecipes, 1, 1, 0, 0, 1, "E_Furnace.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(207)), false, false, 0, "ELECTRIC_FURNACE", new Object[]{"ECE", "CMC", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING}).getStackForm(1L)); + ItemList.Machine_MV_E_Furnace.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(262, "basicmachine.e_furnace.tier.02", "Advanced Electric Furnace", 2, "Not like using a Commodore 64", GT_Recipe.GT_Recipe_Map.sFurnaceRecipes, 1, 1, 0, 0, 1, "E_Furnace.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(207)), false, false, 0, "ELECTRIC_FURNACE", new Object[]{"ECE", "CMC", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING}).getStackForm(1L)); + ItemList.Machine_HV_E_Furnace.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(263, "basicmachine.e_furnace.tier.03", "Advanced Electric Furnace II", 3, "Not like using a Commodore 64", GT_Recipe.GT_Recipe_Map.sFurnaceRecipes, 1, 1, 0, 0, 1, "E_Furnace.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(207)), false, false, 0, "ELECTRIC_FURNACE", new Object[]{"ECE", "CMC", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING}).getStackForm(1L)); + ItemList.Machine_EV_E_Furnace.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(264, "basicmachine.e_furnace.tier.04", "Advanced Electric Furnace III", 4, "Not like using a Commodore 64", GT_Recipe.GT_Recipe_Map.sFurnaceRecipes, 1, 1, 0, 0, 1, "E_Furnace.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(207)), false, false, 0, "ELECTRIC_FURNACE", new Object[]{"ECE", "CMC", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING}).getStackForm(1L)); + ItemList.Machine_IV_E_Furnace.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(265, "basicmachine.e_furnace.tier.05", "Electron Exitement Processor", 5, "Not like using a Commodore 64", GT_Recipe.GT_Recipe_Map.sFurnaceRecipes, 1, 1, 0, 0, 1, "E_Furnace.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(207)), false, false, 0, "ELECTRIC_FURNACE", new Object[]{"ECE", "CMC", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING}).getStackForm(1L)); ItemList.Machine_LV_Extractor.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(271, "basicmachine.extractor.tier.01", "Basic Extractor", 1, "Dejuicer-Device of Doom - D123", GT_Recipe.GT_Recipe_Map.sExtractorRecipes, 1, 1, 0, 0, 1, "Extractor.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "EXTRACTOR", new Object[]{"GCG", "EMP", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); ItemList.Machine_MV_Extractor.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(272, "basicmachine.extractor.tier.02", "Advanced Extractor", 2, "Dejuicer-Device of Doom - D123", GT_Recipe.GT_Recipe_Map.sExtractorRecipes, 1, 1, 0, 0, 1, "Extractor.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "EXTRACTOR", new Object[]{"GCG", "EMP", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); @@ -624,10 +671,10 @@ public class GT_Loader_MetaTileEntities ItemList.Machine_IV_Unboxinator.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(415, "basicmachine.unboxinator.tier.05", "Unboxinator", 5, "Grabs things out of Boxes", GT_Recipe.GT_Recipe_Map.sUnboxinatorRecipes, 1, 2, 0, 0, 1, "Unpackager.png", "", false, false, 0, "UNBOXINATOR", new Object[]{"BCB", "VMR", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('R'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROBOT_ARM, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('B'), OreDictNames.craftingChest}).getStackForm(1L)); ItemList.Machine_LV_ChemicalReactor.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(421, "basicmachine.chemicalreactor.tier.01", "Basic Chemical Reactor", 1, "Letting Chemicals react with each other", GT_Recipe.GT_Recipe_Map.sChemicalRecipes, 2, 1, 16000, 0, 1, "ChemicalReactor.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "CHEMICAL_REACTOR", new Object[]{"GRG", "WEW", "CMC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('R'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROTOR, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); - ItemList.Machine_MV_ChemicalReactor.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(422, "basicmachine.chemicalreactor.tier.02", "Advanced Chemical Reactor", 2, "Letting Chemicals react with each other", GT_Recipe.GT_Recipe_Map.sChemicalRecipes, 2, 1, 16000, 0, 1, "ChemicalReactor.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "CHEMICAL_REACTOR", new Object[]{"GRG", "WEW", "CMC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('R'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROTOR, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); - ItemList.Machine_HV_ChemicalReactor.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(423, "basicmachine.chemicalreactor.tier.03", "Advanced Chemical Reactor II", 3, "Letting Chemicals react with each other", GT_Recipe.GT_Recipe_Map.sChemicalRecipes, 2, 1, 16000, 0, 1, "ChemicalReactor.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "CHEMICAL_REACTOR", new Object[]{"GRG", "WEW", "CMC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('R'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROTOR, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); - ItemList.Machine_EV_ChemicalReactor.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(424, "basicmachine.chemicalreactor.tier.04", "Advanced Chemical Reactor III", 4, "Letting Chemicals react with each other", GT_Recipe.GT_Recipe_Map.sChemicalRecipes, 2, 1, 16000, 0, 1, "ChemicalReactor.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "CHEMICAL_REACTOR", new Object[]{"GRG", "WEW", "CMC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('R'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROTOR, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); - ItemList.Machine_IV_ChemicalReactor.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(425, "basicmachine.chemicalreactor.tier.05", "Advanced Chemical Reactor IV", 5, "Letting Chemicals react with each other", GT_Recipe.GT_Recipe_Map.sChemicalRecipes, 2, 1, 16000, 0, 1, "ChemicalReactor.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "CHEMICAL_REACTOR", new Object[]{"GRG", "WEW", "CMC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('R'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROTOR, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + ItemList.Machine_MV_ChemicalReactor.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(422, "basicmachine.chemicalreactor.tier.02", "Advanced Chemical Reactor", 2, "Letting Chemicals react with each other", GT_Recipe.GT_Recipe_Map.sChemicalRecipes, 2, 1, 16000, 0, 1, "ChemicalReactor.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "CHEMICAL_REACTOR", new Object[]{"GRG", "WEW", "CMC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('R'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROTOR, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), OrePrefixes.pipeMedium.get(Materials.Plastic)}).getStackForm(1L)); + ItemList.Machine_HV_ChemicalReactor.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(423, "basicmachine.chemicalreactor.tier.03", "Advanced Chemical Reactor II", 3, "Letting Chemicals react with each other", GT_Recipe.GT_Recipe_Map.sChemicalRecipes, 2, 1, 16000, 0, 1, "ChemicalReactor.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "CHEMICAL_REACTOR", new Object[]{"GRG", "WEW", "CMC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('R'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROTOR, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), OrePrefixes.pipeMedium.get(Materials.Plastic)}).getStackForm(1L)); + ItemList.Machine_EV_ChemicalReactor.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(424, "basicmachine.chemicalreactor.tier.04", "Advanced Chemical Reactor III", 4, "Letting Chemicals react with each other", GT_Recipe.GT_Recipe_Map.sChemicalRecipes, 2, 1, 16000, 0, 1, "ChemicalReactor.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "CHEMICAL_REACTOR", new Object[]{"GRG", "WEW", "CMC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('R'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROTOR, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), OrePrefixes.pipeLarge.get(Materials.Plastic)}).getStackForm(1L)); + ItemList.Machine_IV_ChemicalReactor.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(425, "basicmachine.chemicalreactor.tier.05", "Advanced Chemical Reactor IV", 5, "Letting Chemicals react with each other", GT_Recipe.GT_Recipe_Map.sChemicalRecipes, 2, 1, 16000, 0, 1, "ChemicalReactor.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "CHEMICAL_REACTOR", new Object[]{"GRG", "WEW", "CMC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('R'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROTOR, Character.valueOf('E'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), OrePrefixes.pipeHuge.get(Materials.Plastic)}).getStackForm(1L)); ItemList.Machine_LV_FluidCanner.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(431, "basicmachine.fluidcanner.tier.01", "Basic Fluid Canner", 1, "Puts Fluids into and out of Containers", GT_Recipe.GT_Recipe_Map.sFluidCannerRecipes, 1, 1, 16000, 0, 1, "FluidCanner.png", "", true, false, 0, "FLUID_CANNER", new Object[]{"GCG", "PMP", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); ItemList.Machine_MV_FluidCanner.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(432, "basicmachine.fluidcanner.tier.02", "Advanced Fluid Canner", 2, "Puts Fluids into and out of Containers", GT_Recipe.GT_Recipe_Map.sFluidCannerRecipes, 1, 1, 32000, 0, 1, "FluidCanner.png", "", true, false, 0, "FLUID_CANNER", new Object[]{"GCG", "PMP", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); @@ -695,11 +742,11 @@ public class GT_Loader_MetaTileEntities ItemList.Machine_EV_Brewery.set(new GT_MetaTileEntity_PotionBrewer(494, "basicmachine.brewery.tier.04", "Advanced Brewery III", 4).getStackForm(1L)); ItemList.Machine_IV_Brewery.set(new GT_MetaTileEntity_PotionBrewer(495, "basicmachine.brewery.tier.05", "Advanced Brewery IV", 5).getStackForm(1L)); - GT_ModHandler.addCraftingRecipe(ItemList.Machine_LV_Brewery.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"GPG", "WMW", "CBC", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('P'), ItemList.Electric_Pump_LV, Character.valueOf('B'), new ItemStack(Items.brewing_stand, 0), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Basic), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Tin), Character.valueOf('G'), new ItemStack(Blocks.glass, 1)}); - GT_ModHandler.addCraftingRecipe(ItemList.Machine_MV_Brewery.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"GPG", "WMW", "CBC", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('P'), ItemList.Electric_Pump_MV, Character.valueOf('B'), new ItemStack(Items.brewing_stand, 0), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Good), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.AnyCopper), Character.valueOf('G'), new ItemStack(Blocks.glass, 1)}); - GT_ModHandler.addCraftingRecipe(ItemList.Machine_HV_Brewery.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"GPG", "WMW", "CBC", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('P'), ItemList.Electric_Pump_HV, Character.valueOf('B'), new ItemStack(Items.brewing_stand, 0), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Gold), Character.valueOf('G'), new ItemStack(Blocks.glass, 1)}); - GT_ModHandler.addCraftingRecipe(ItemList.Machine_EV_Brewery.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"GPG", "WMW", "CBC", Character.valueOf('M'), ItemList.Hull_EV, Character.valueOf('P'), ItemList.Electric_Pump_EV, Character.valueOf('B'), new ItemStack(Items.brewing_stand, 0), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Elite), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Aluminium), Character.valueOf('G'), new ItemStack(Blocks.glass, 1)}); - GT_ModHandler.addCraftingRecipe(ItemList.Machine_IV_Brewery.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"GPG", "WMW", "CBC", Character.valueOf('M'), ItemList.Hull_IV, Character.valueOf('P'), ItemList.Electric_Pump_IV, Character.valueOf('B'), new ItemStack(Items.brewing_stand, 0), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Master), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Tungsten), Character.valueOf('G'), new ItemStack(Blocks.glass, 1)}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_LV_Brewery.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"GPG", "WMW", "CBC", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('P'), ItemList.Electric_Pump_LV, Character.valueOf('B'), OrePrefixes.stick.get(Materials.Blaze), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Basic), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Tin), Character.valueOf('G'), new ItemStack(Blocks.glass, 1)}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_MV_Brewery.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"GPG", "WMW", "CBC", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('P'), ItemList.Electric_Pump_MV, Character.valueOf('B'), OrePrefixes.stick.get(Materials.Blaze), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Good), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.AnyCopper), Character.valueOf('G'), new ItemStack(Blocks.glass, 1)}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_HV_Brewery.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"GPG", "WMW", "CBC", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('P'), ItemList.Electric_Pump_HV, Character.valueOf('B'), OrePrefixes.stick.get(Materials.Blaze), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Gold), Character.valueOf('G'), new ItemStack(Blocks.glass, 1)}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_EV_Brewery.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"GPG", "WMW", "CBC", Character.valueOf('M'), ItemList.Hull_EV, Character.valueOf('P'), ItemList.Electric_Pump_EV, Character.valueOf('B'), OrePrefixes.stick.get(Materials.Blaze), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Elite), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Aluminium), Character.valueOf('G'), new ItemStack(Blocks.glass, 1)}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_IV_Brewery.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"GPG", "WMW", "CBC", Character.valueOf('M'), ItemList.Hull_IV, Character.valueOf('P'), ItemList.Electric_Pump_IV, Character.valueOf('B'), OrePrefixes.stick.get(Materials.Blaze), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Master), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Tungsten), Character.valueOf('G'), new ItemStack(Blocks.glass, 1)}); ItemList.Machine_LV_Fermenter.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(501, "basicmachine.fermenter.tier.01", "Basic Fermenter", 1, "Fermenting Fluids", GT_Recipe.GT_Recipe_Map.sFermentingRecipes, 1, 1, 1000, 0, 1, "Fermenter.png", "", false, false, 0, "FERMENTER", new Object[]{"WPW", "GMG", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); ItemList.Machine_MV_Fermenter.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(502, "basicmachine.fermenter.tier.02", "Advanced Fermenter", 2, "Fermenting Fluids", GT_Recipe.GT_Recipe_Map.sFermentingRecipes, 1, 1, 1000, 0, 1, "Fermenter.png", "", false, false, 0, "FERMENTER", new Object[]{"WPW", "GMG", "WCW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); @@ -719,11 +766,11 @@ public class GT_Loader_MetaTileEntities ItemList.Machine_EV_FluidSolidifier.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(524, "basicmachine.fluidsolidifier.tier.04", "Advanced Fluid Solidifier III", 4, "Cools Fluids down to form Solids", GT_Recipe.GT_Recipe_Map.sFluidSolidficationRecipes, 1, 1, 16000, 0, 1, "FluidSolidifier.png", "", false, false, 0, "FLUID_SOLIDIFIER", new Object[]{"PGP", "WMW", "CBC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS, Character.valueOf('B'), OreDictNames.craftingChest}).getStackForm(1L)); ItemList.Machine_IV_FluidSolidifier.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(525, "basicmachine.fluidsolidifier.tier.05", "Advanced Fluid Solidifier IV", 5, "Cools Fluids down to form Solids", GT_Recipe.GT_Recipe_Map.sFluidSolidficationRecipes, 1, 1, 16000, 0, 1, "FluidSolidifier.png", "", false, false, 0, "FLUID_SOLIDIFIER", new Object[]{"PGP", "WMW", "CBC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS, Character.valueOf('B'), OreDictNames.craftingChest}).getStackForm(1L)); - ItemList.Machine_LV_Distillery.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(531, "basicmachine.distillery.tier.01", "Basic Distillery", 1, "Extracting the most relevant Parts of Fluids", GT_Recipe.GT_Recipe_Map.sDistilleryRecipes, 1, 0, 1000, 0, 1, "Distillery.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "DISTILLERY", new Object[]{"GBG", "CMC", "WPW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('B'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PIPE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); - ItemList.Machine_MV_Distillery.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(532, "basicmachine.distillery.tier.02", "Advanced Distillery", 2, "Extracting the most relevant Parts of Fluids", GT_Recipe.GT_Recipe_Map.sDistilleryRecipes, 1, 0, 1000, 0, 1, "Distillery.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "DISTILLERY", new Object[]{"GBG", "CMC", "WPW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('B'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PIPE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); - ItemList.Machine_HV_Distillery.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(533, "basicmachine.distillery.tier.03", "Advanced Distillery II", 3, "Extracting the most relevant Parts of Fluids", GT_Recipe.GT_Recipe_Map.sDistilleryRecipes, 1, 0, 1000, 0, 1, "Distillery.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "DISTILLERY", new Object[]{"GBG", "CMC", "WPW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('B'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PIPE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); - ItemList.Machine_EV_Distillery.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(534, "basicmachine.distillery.tier.04", "Advanced Distillery III", 4, "Extracting the most relevant Parts of Fluids", GT_Recipe.GT_Recipe_Map.sDistilleryRecipes, 1, 0, 1000, 0, 1, "Distillery.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "DISTILLERY", new Object[]{"GBG", "CMC", "WPW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('B'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PIPE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); - ItemList.Machine_IV_Distillery.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(535, "basicmachine.distillery.tier.05", "Advanced Distillery IV", 5, "Extracting the most relevant Parts of Fluids", GT_Recipe.GT_Recipe_Map.sDistilleryRecipes, 1, 0, 1000, 0, 1, "Distillery.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "DISTILLERY", new Object[]{"GBG", "CMC", "WPW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('B'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PIPE, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + ItemList.Machine_LV_Distillery.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(531, "basicmachine.distillery.tier.01", "Basic Distillery", 1, "Extracting the most relevant Parts of Fluids", GT_Recipe.GT_Recipe_Map.sDistilleryRecipes, 1, 0, 1000, 0, 1, "Distillery.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "DISTILLERY", new Object[]{"GBG", "CMC", "WPW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('B'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.STICK_DISTILLATION, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + ItemList.Machine_MV_Distillery.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(532, "basicmachine.distillery.tier.02", "Advanced Distillery", 2, "Extracting the most relevant Parts of Fluids", GT_Recipe.GT_Recipe_Map.sDistilleryRecipes, 1, 0, 1000, 0, 1, "Distillery.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "DISTILLERY", new Object[]{"GBG", "CMC", "WPW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('B'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.STICK_DISTILLATION, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + ItemList.Machine_HV_Distillery.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(533, "basicmachine.distillery.tier.03", "Advanced Distillery II", 3, "Extracting the most relevant Parts of Fluids", GT_Recipe.GT_Recipe_Map.sDistilleryRecipes, 1, 0, 1000, 0, 1, "Distillery.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "DISTILLERY", new Object[]{"GBG", "CMC", "WPW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('B'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.STICK_DISTILLATION, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + ItemList.Machine_EV_Distillery.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(534, "basicmachine.distillery.tier.04", "Advanced Distillery III", 4, "Extracting the most relevant Parts of Fluids", GT_Recipe.GT_Recipe_Map.sDistilleryRecipes, 1, 0, 1000, 0, 1, "Distillery.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "DISTILLERY", new Object[]{"GBG", "CMC", "WPW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('B'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.STICK_DISTILLATION, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); + ItemList.Machine_IV_Distillery.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(535, "basicmachine.distillery.tier.05", "Advanced Distillery IV", 5, "Extracting the most relevant Parts of Fluids", GT_Recipe.GT_Recipe_Map.sDistilleryRecipes, 1, 0, 1000, 0, 1, "Distillery.png", (String) GregTech_API.sSoundList.get(Integer.valueOf(200)), false, false, 0, "DISTILLERY", new Object[]{"GBG", "CMC", "WPW", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('B'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.STICK_DISTILLATION, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); ItemList.Machine_LV_ChemicalBath.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(541, "basicmachine.chemicalbath.tier.01", "Basic Chemical Bath", 1, "Bathing Ores in Chemicals to separate them", GT_Recipe.GT_Recipe_Map.sChemicalBathRecipes, 1, 3, 8000, 0, 1, "ChemicalBath.png", "", false, true, 0, "CHEMICAL_BATH", new Object[]{"VGW", "PGV", "CMC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); ItemList.Machine_MV_ChemicalBath.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(542, "basicmachine.chemicalbath.tier.02", "Advanced Chemical Bath", 2, "Bathing Ores in Chemicals to separate them", GT_Recipe.GT_Recipe_Map.sChemicalBathRecipes, 1, 3, 8000, 0, 1, "ChemicalBath.png", "", false, true, 0, "CHEMICAL_BATH", new Object[]{"VGW", "PGV", "CMC", Character.valueOf('M'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL, Character.valueOf('P'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP, Character.valueOf('V'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR, Character.valueOf('C'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT, Character.valueOf('W'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE, Character.valueOf('G'), GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS}).getStackForm(1L)); @@ -816,17 +863,17 @@ public class GT_Loader_MetaTileEntities ItemList.Machine_Multi_VacuumFreezer.set(new GT_MetaTileEntity_VacuumFreezer(1002, "multimachine.vacuumfreezer", "Vacuum Freezer").getStackForm(1L)); ItemList.Machine_Multi_Furnace.set(new GT_MetaTileEntity_MultiFurnace(1003, "multimachine.multifurnace", "Multi Smelter").getStackForm(1L)); - GT_ModHandler.addCraftingRecipe(ItemList.Machine_Multi_BlastFurnace.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"FFF", "CMC", "WCW", Character.valueOf('M'), ItemList.Casing_HeatProof, Character.valueOf('F'), OreDictNames.craftingIronFurnace, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Basic), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Tin)}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_Multi_BlastFurnace.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"FFF", "CMC", "WCW", Character.valueOf('M'), ItemList.Casing_HeatProof, Character.valueOf('F'), OreDictNames.craftingFurnace, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Basic), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Tin)}); GT_ModHandler.addCraftingRecipe(ItemList.Machine_Multi_VacuumFreezer.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PPP", "CMC", "WCW", Character.valueOf('M'), ItemList.Casing_FrostProof, Character.valueOf('P'), ItemList.Electric_Pump_HV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Elite), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Gold)}); - GT_ModHandler.addCraftingRecipe(ItemList.Machine_Multi_ImplosionCompressor.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"OOO", "CMC", "WCW", Character.valueOf('M'), ItemList.Casing_SolidSteel, Character.valueOf('O'), Ic2Items.reinforcedStone, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Aluminium)}); - GT_ModHandler.addCraftingRecipe(ItemList.Machine_Multi_Furnace.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"FFF", "CMC", "WCW", Character.valueOf('M'), ItemList.Casing_HeatProof, Character.valueOf('F'), OreDictNames.craftingIronFurnace, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.AnnealedCopper)}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_Multi_ImplosionCompressor.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"OOO", "CMC", "WCW", Character.valueOf('M'), ItemList.Casing_SolidSteel, Character.valueOf('O'), OrePrefixes.stone.get(Materials.Obsidian), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Aluminium)}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_Multi_Furnace.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"FFF", "CMC", "WCW", Character.valueOf('M'), ItemList.Casing_HeatProof, Character.valueOf('F'), OreDictNames.craftingFurnace, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.AnnealedCopper)}); ItemList.Machine_Multi_LargeBoiler_Bronze.set(new GT_MetaTileEntity_LargeBoiler_Bronze(1020, "multimachine.boiler.bronze", "Large Bronze Boiler").getStackForm(1L)); ItemList.Machine_Multi_LargeBoiler_Steel.set(new GT_MetaTileEntity_LargeBoiler_Steel(1021, "multimachine.boiler.steel", "Large Steel Boiler").getStackForm(1L)); ItemList.Machine_Multi_LargeBoiler_Titanium.set(new GT_MetaTileEntity_LargeBoiler_Titanium(1022, "multimachine.boiler.titanium", "Large Titanium Boiler").getStackForm(1L)); ItemList.Machine_Multi_LargeBoiler_TungstenSteel.set(new GT_MetaTileEntity_LargeBoiler_TungstenSteel(1023, "multimachine.boiler.tungstensteel", "Large Tungstensteel Boiler").getStackForm(1L)); - GT_ModHandler.addCraftingRecipe(ItemList.Machine_Multi_LargeBoiler_Bronze.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WCW", "CMC", "WCW", Character.valueOf('M'), ItemList.Casing_Firebox_Bronze, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Good), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Tin)}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_Multi_LargeBoiler_Bronze.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WCW", "CMC", "WCW", Character.valueOf('M'), ItemList.Casing_Firebox_Bronze, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Basic), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Tin)}); GT_ModHandler.addCraftingRecipe(ItemList.Machine_Multi_LargeBoiler_Steel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WCW", "CMC", "WCW", Character.valueOf('M'), ItemList.Casing_Firebox_Steel, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.AnyCopper)}); GT_ModHandler.addCraftingRecipe(ItemList.Machine_Multi_LargeBoiler_Titanium.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WCW", "CMC", "WCW", Character.valueOf('M'), ItemList.Casing_Firebox_Titanium, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Elite), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Gold)}); GT_ModHandler.addCraftingRecipe(ItemList.Machine_Multi_LargeBoiler_TungstenSteel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WCW", "CMC", "WCW", Character.valueOf('M'), ItemList.Casing_Firebox_TungstenSteel, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Master), Character.valueOf('W'), OrePrefixes.cableGt01.get(Materials.Aluminium)}); @@ -868,13 +915,11 @@ public class GT_Loader_MetaTileEntities ItemList.MagicEnergyConverter_MV.set(new GT_MetaTileEntity_MagicEnergyConverter(1124, "basicgenerator.magicenergyconverter.tier.02", "Adept Magic Energy Converter", 2).getStackForm(1L)); ItemList.MagicEnergyConverter_HV.set(new GT_MetaTileEntity_MagicEnergyConverter(1125, "basicgenerator.magicenergyconverter.tier.03", "Master Magic Energy Converter", 3).getStackForm(1L)); - ItemList.MagicEnergyAbsorber_LV.set(new GT_MetaTileEntity_MagicalEnergyAbsorber(1127, "basicgenerator.magicenergyabsorber.tier.01", "Novice Magic Energy Absorber", 1).getStackForm(1L)); ItemList.MagicEnergyAbsorber_MV.set(new GT_MetaTileEntity_MagicalEnergyAbsorber(1128, "basicgenerator.magicenergyabsorber.tier.02", "Adept Magic Energy Absorber", 2).getStackForm(1L)); ItemList.MagicEnergyAbsorber_HV.set(new GT_MetaTileEntity_MagicalEnergyAbsorber(1129, "basicgenerator.magicenergyabsorber.tier.03", "Master Magic Energy Absorber", 3).getStackForm(1L)); ItemList.MagicEnergyAbsorber_EV.set(new GT_MetaTileEntity_MagicalEnergyAbsorber(1130, "basicgenerator.magicenergyabsorber.tier.04", "Grandmaster Magic Energy Absorber", 4).getStackForm(1L)); if (!Loader.isModLoaded("Thaumcraft")) { - GT_ModHandler.addCraftingRecipe(ItemList.MagicEnergyConverter_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CTC", "FMF", "CBC", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('B'), new ItemStack(Blocks.beacon), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('T'), ItemList.Field_Generator_LV, Character.valueOf('F'), OrePrefixes.plate.get(Materials.Platinum)}); GT_ModHandler.addCraftingRecipe(ItemList.MagicEnergyConverter_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CTC", "FMF", "CBC", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('B'), new ItemStack(Blocks.beacon), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Data), Character.valueOf('T'), ItemList.Field_Generator_MV, Character.valueOf('F'), OrePrefixes.plate.get(Materials.Iridium)}); GT_ModHandler.addCraftingRecipe(ItemList.MagicEnergyConverter_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CTC", "FMF", "CBC", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('B'), new ItemStack(Blocks.beacon), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Elite), Character.valueOf('T'), ItemList.Field_Generator_HV, Character.valueOf('F'), OrePrefixes.plate.get(Materials.Neutronium)}); @@ -884,7 +929,6 @@ public class GT_Loader_MetaTileEntities GT_ModHandler.addCraftingRecipe(ItemList.MagicEnergyAbsorber_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CTC", "FMF", "CBC", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('B'), ItemList.MagicEnergyConverter_MV.get(1L, new Object[0]), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Elite), Character.valueOf('T'), ItemList.Field_Generator_HV, Character.valueOf('F'), OrePrefixes.plate.get(Materials.Europium)}); GT_ModHandler.addCraftingRecipe(ItemList.MagicEnergyAbsorber_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CTC", "FMF", "CBC", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('B'), ItemList.MagicEnergyConverter_HV.get(1L, new Object[0]), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Master), Character.valueOf('T'), ItemList.Field_Generator_EV, Character.valueOf('F'), OrePrefixes.plate.get(Materials.Neutronium)}); } - ItemList.FusionComputer_LuV.set(new GT_MetaTileEntity_FusionComputer1(1193, "fusioncomputer.tier.06", "Fusion Control Computer Mark I").getStackForm(1L)); ItemList.FusionComputer_ZPMV.set(new GT_MetaTileEntity_FusionComputer2(1194, "fusioncomputer.tier.07", "Fusion Control Computer Mark II").getStackForm(1L)); ItemList.FusionComputer_UV.set(new GT_MetaTileEntity_FusionComputer3(1195, "fusioncomputer.tier.08", "Fusion Control Computer Mark III").getStackForm(1L)); @@ -913,12 +957,12 @@ public class GT_Loader_MetaTileEntities ItemList.LargeSteamTurbine.set(new GT_MetaTileEntity_LargeTurbine_Steam(1131, "multimachine.largeturbine", "Large Steam Turbine").getStackForm(1L)); ItemList.LargeGasTurbine.set(new GT_MetaTileEntity_LargeTurbine_Gas(1151, "multimachine.largegasturbine", "Large Gas Turbine").getStackForm(1L)); - ItemList.LargeHPSteamTurbine.set(new GT_MetaTileEntity_LargeTurbine_HPSteam(1152, "multimachine.largehpturbine", "Large High Pressure Steam Turbine").getStackForm(1L)); + ItemList.LargeHPSteamTurbine.set(new GT_MetaTileEntity_LargeTurbine_HPSteam(1152, "multimachine.largehpturbine", "Large HP Steam Turbine").getStackForm(1L)); ItemList.LargePlasmaTurbine.set(new GT_MetaTileEntity_LargeTurbine_Plasma(1153, "multimachine.largeplasmaturbine", "Large Plasma Generator").getStackForm(1L)); GT_ModHandler.addCraftingRecipe(ItemList.LargeSteamTurbine.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CPC", "PMP", "BPB", 'M', ItemList.Hull_HV, 'B', OrePrefixes.pipeLarge.get(Materials.StainlessSteel), 'C', OrePrefixes.circuit.get(Materials.Advanced), 'P', OrePrefixes.gearGt.get(Materials.Steel)}); - GT_ModHandler.addCraftingRecipe(ItemList.LargeGasTurbine.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CPC", "PMP", "BPB", 'M', ItemList.Hull_EV, 'B', OrePrefixes.pipeLarge.get(Materials.Titanium), 'C', OrePrefixes.circuit.get(Materials.Elite), 'P', OrePrefixes.gearGt.get(Materials.Titanium)}); - GT_ModHandler.addCraftingRecipe(ItemList.LargeHPSteamTurbine.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CPC", "PMP", "BPB", 'M', ItemList.Hull_IV, 'B', OrePrefixes.pipeLarge.get(Materials.TungstenSteel), 'C', OrePrefixes.circuit.get(Materials.Master), 'P', OrePrefixes.gearGt.get(Materials.TungstenSteel)}); + GT_ModHandler.addCraftingRecipe(ItemList.LargeGasTurbine.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CPC", "PMP", "BPB", 'M', ItemList.Hull_EV, 'B', OrePrefixes.pipeLarge.get(Materials.Titanium), 'C', OrePrefixes.circuit.get(Materials.Elite), 'P', OrePrefixes.gearGt.get(Materials.StainlessSteel)}); + GT_ModHandler.addCraftingRecipe(ItemList.LargeHPSteamTurbine.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CPC", "PMP", "BPB", 'M', ItemList.Hull_EV, 'B', OrePrefixes.pipeLarge.get(Materials.Titanium), 'C', OrePrefixes.circuit.get(Materials.Elite), 'P', OrePrefixes.gearGt.get(Materials.StainlessSteel)}); GT_ModHandler.addCraftingRecipe(ItemList.LargePlasmaTurbine.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CPC", "PMP", "BPB", 'M', ItemList.Hull_UV, 'B', OrePrefixes.pipeHuge.get(Materials.TungstenSteel), 'C', OrePrefixes.circuit.get(Materials.Master), 'P', OrePrefixes.gearGt.get(Materials.TungstenSteel)}); @@ -931,8 +975,8 @@ public class GT_Loader_MetaTileEntities GT_ModHandler.addCraftingRecipe(ItemList.Pump_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CPC", "PMP", "BPB", 'M', ItemList.Hull_LV, 'B', OrePrefixes.pipeLarge.get(Materials.Bronze), 'C', OrePrefixes.circuit.get(Materials.Basic), 'P', ItemList.Electric_Pump_LV}); GT_ModHandler.addCraftingRecipe(ItemList.Pump_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CPC", "PMP", "BPB", 'M', ItemList.Hull_MV, 'B', OrePrefixes.pipeLarge.get(Materials.Steel), 'C', OrePrefixes.circuit.get(Materials.Good), 'P', ItemList.Electric_Pump_MV}); GT_ModHandler.addCraftingRecipe(ItemList.Pump_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CPC", "PMP", "BPB", 'M', ItemList.Hull_HV, 'B', OrePrefixes.pipeLarge.get(Materials.StainlessSteel), 'C', OrePrefixes.circuit.get(Materials.Advanced), 'P', ItemList.Electric_Pump_HV}); - GT_ModHandler.addCraftingRecipe(ItemList.Pump_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CPC", "PMP", "BPB", 'M', ItemList.Hull_EV, 'B', OrePrefixes.pipeLarge.get(Materials.Titanium), 'C', OrePrefixes.circuit.get(Materials.Elite), 'P', ItemList.Electric_Pump_EV}); - GT_ModHandler.addCraftingRecipe(ItemList.Pump_IV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CPC", "PMP", "BPB", 'M', ItemList.Hull_IV, 'B', OrePrefixes.pipeLarge.get(Materials.TungstenSteel), 'C', OrePrefixes.circuit.get(Materials.Ultimate), 'P', ItemList.Electric_Pump_IV}); + GT_ModHandler.addCraftingRecipe(ItemList.Pump_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CPC", "PMP", "BPB", 'M', ItemList.Hull_EV, 'B', OrePrefixes.pipeLarge.get(Materials.Titanium), 'C', OrePrefixes.circuit.get(Materials.Data), 'P', ItemList.Electric_Pump_EV}); + GT_ModHandler.addCraftingRecipe(ItemList.Pump_IV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CPC", "PMP", "BPB", 'M', ItemList.Hull_IV, 'B', OrePrefixes.pipeLarge.get(Materials.TungstenSteel), 'C', OrePrefixes.circuit.get(Materials.Elite), 'P', ItemList.Electric_Pump_IV}); ItemList.Teleporter.set(new GT_MetaTileEntity_Teleporter(1145, "basicmachine.teleporter", "Teleporter", 6).getStackForm(1L)); GT_ModHandler.addCraftingRecipe(ItemList.Teleporter.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CPC", "PMP", "BCB", 'M', ItemList.Hull_LuV, 'B', ItemList.Tool_DataOrb, 'C', OrePrefixes.circuit.get(Materials.Master), 'P', ItemList.Field_Generator_EV}); @@ -952,9 +996,45 @@ public class GT_Loader_MetaTileEntities ItemList.Machine_Multi_HeatExchanger.set(new GT_MetaTileEntity_HeatExchanger(1154, "multimachine.heatexchanger", "Large Heat Exchanger").getStackForm(1L)); GT_ModHandler.addCraftingRecipe(ItemList.Machine_Multi_HeatExchanger.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WCW", "CMC", "WCW", Character.valueOf('M'), ItemList.Casing_Pipe_Titanium, Character.valueOf('C'), OrePrefixes.pipeMedium.get(Materials.Titanium), Character.valueOf('W'), ItemList.Electric_Pump_EV}); + + ItemList.Charcoal_Pile.set(new GT_MetaTileEntity_Charcoal_Pit(1155, "multimachine.charcoalpile", "Charcoal Pile Igniter").getStackForm(1)); + GT_ModHandler.addCraftingRecipe(ItemList.Charcoal_Pile.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"EME", "CCC", 'M', ItemList.Hull_Bronze_Bricks, 'E', OrePrefixes.nugget.get(Materials.WroughtIron), 'C', new ItemStack(Items.flint, 1)}); + + ItemList.Seismic_Prospector.set(new GT_MetaTileEntity_SeismicProspector(1156, "basicmachine.seismicprospector", "Seismic Prospector", 1).getStackForm(1)); + GT_ModHandler.addCraftingRecipe(ItemList.Seismic_Prospector.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WWW", "EME", "CCC", 'M', ItemList.Hull_Steel, 'W', OrePrefixes.plateDouble.get(Materials.Steel), 'E', OrePrefixes.circuit.get(Materials.Basic), 'C', ItemList.Sensor_LV}); + + ItemList.OilDrill.set(new GT_MetaTileEntity_OilDrill(1157, "multimachine.oildrill", "Oil Drilling Rig").getStackForm(1)); + GT_ModHandler.addCraftingRecipe(ItemList.OilDrill.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WWW", "EME", "CCC", 'M', ItemList.Hull_MV, 'W', OrePrefixes.frameGt.get(Materials.Steel), 'E', OrePrefixes.circuit.get(Materials.Good), 'C', ItemList.Electric_Motor_MV}); + + ItemList.AdvancedMiner2.set(new GT_MetaTileEntity_AdvMiner2(1158, "multimachine.advminer2", "Advanced Miner II").getStackForm(1)); + GT_ModHandler.addCraftingRecipe(ItemList.AdvancedMiner2.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WWW", "EME", "CCC", 'M', ItemList.Hull_EV, 'W', OrePrefixes.frameGt.get(Materials.Titanium), 'E', OrePrefixes.circuit.get(Materials.Data), 'C', ItemList.Electric_Motor_EV}); + + ItemList.PyrolyseOven.set(new GT_MetaTileEntity_PyrolyseOven(1159, "multimachine.pyro", "Pyrolyse Oven").getStackForm(1)); + GT_ModHandler.addCraftingRecipe(ItemList.PyrolyseOven.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WEP", "EME", "WCP", 'M', ItemList.Hull_MV, 'W', ItemList.Electric_Piston_MV, 'P', OrePrefixes.wireGt04.get(Materials.Cupronickel), 'E', OrePrefixes.circuit.get(Materials.Good), 'C', ItemList.Electric_Pump_MV}); + + + ItemList.OilCracker.set(new GT_MetaTileEntity_OilCracker(1160, "multimachine.cracker", "Oil Cracking Unit").getStackForm(1)); + GT_ModHandler.addCraftingRecipe(ItemList.OilCracker.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WCW", "EME", "WCW", 'M', ItemList.Hull_HV, 'W', ItemList.Casing_Coil_Cupronickel, 'E', OrePrefixes.circuit.get(Materials.Advanced), 'C', ItemList.Electric_Pump_HV}); + + ItemList.MicroTransmitter_HV.set(new GT_MetaTileEntity_MicrowaveEnergyTransmitter(1161, "basicmachine.microtransmitter.03", "HV Microwave Energy Transmitter", 3).getStackForm(1L)); + ItemList.MicroTransmitter_EV.set(new GT_MetaTileEntity_MicrowaveEnergyTransmitter(1162, "basicmachine.microtransmitter.04", "EV Microwave Energy Transmitter", 4).getStackForm(1L)); + ItemList.MicroTransmitter_IV.set(new GT_MetaTileEntity_MicrowaveEnergyTransmitter(1163, "basicmachine.microtransmitter.05", "IV Microwave Energy Transmitter", 5).getStackForm(1L)); + ItemList.MicroTransmitter_LUV.set(new GT_MetaTileEntity_MicrowaveEnergyTransmitter(1164, "basicmachine.microtransmitter.06", "LuV Microwave Energy Transmitter", 6).getStackForm(1L)); + ItemList.MicroTransmitter_ZPM.set(new GT_MetaTileEntity_MicrowaveEnergyTransmitter(1165, "basicmachine.microtransmitter.07", "ZPM Microwave Energy Transmitter", 7).getStackForm(1L)); + GT_ModHandler.addCraftingRecipe(ItemList.MicroTransmitter_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CPC", "CMC", "GBG", 'M', ItemList.Hull_HV, 'B', ItemList.Battery_RE_HV_Lithium, 'C', ItemList.Emitter_HV, 'G', OrePrefixes.circuit.get(Materials.Advanced), 'P', ItemList.Field_Generator_HV}); + GT_ModHandler.addCraftingRecipe(ItemList.MicroTransmitter_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CPC", "CMC", "GBG", 'M', ItemList.Hull_EV, 'B', ItemList.IC2_LapotronCrystal, 'C', ItemList.Emitter_EV, 'G', OrePrefixes.circuit.get(Materials.Data), 'P', ItemList.Field_Generator_EV}); + GT_ModHandler.addCraftingRecipe(ItemList.MicroTransmitter_IV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CPC", "CMC", "GBG", 'M', ItemList.Hull_IV, 'B', ItemList.Energy_LapotronicOrb, 'C', ItemList.Emitter_EV, 'G', OrePrefixes.circuit.get(Materials.Elite), 'P', ItemList.Field_Generator_EV}); + GT_ModHandler.addCraftingRecipe(ItemList.MicroTransmitter_LUV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CPC", "CMC", "GBG", 'M', ItemList.Hull_LuV, 'B', ItemList.Energy_LapotronicOrb2, 'C', ItemList.Emitter_IV, 'G', OrePrefixes.circuit.get(Materials.Master), 'P', ItemList.Field_Generator_IV}); + GT_ModHandler.addCraftingRecipe(ItemList.MicroTransmitter_ZPM.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CPC", "CMC", "GBG", 'M', ItemList.Hull_ZPM, 'B', ItemList.ZPM2, 'C', ItemList.Emitter_IV, 'G', OrePrefixes.circuit.get(Materials.Ultimate), 'P', ItemList.Field_Generator_IV}); + + ItemList.CuringOven.set(new GT_MetaTileEntity_CuringOven(1166, "basicmachine.curingoven", "Curing Oven", 1).getStackForm(1)); + GT_ModHandler.addCraftingRecipe(ItemList.CuringOven.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CWC", "CMC", "EWE", 'M', ItemList.Hull_LV, 'E', OrePrefixes.circuit.get(Materials.Basic), 'W', GT_OreDictUnificator.get(OrePrefixes.cable, Materials.Tin, 1), 'C', GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Cupronickel, 1)}); + ItemList.Machine_Multi_Assemblyline.set(new GT_MetaTileEntity_AssemblyLine(1170, "multimachine.assemblyline", "Assemblyline").getStackForm(1L)); GT_ModHandler.addCraftingRecipe(ItemList.Machine_Multi_Assemblyline.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WCW", "EME", "WCW", 'M', ItemList.Hull_IV, 'W', ItemList.Casing_Assembler, 'E', OrePrefixes.circuit.get(Materials.Ultimate), 'C', ItemList.Robot_Arm_IV}); + ItemList.Machine_Multi_DieselEngine.set(new GT_MetaTileEntity_DieselEngine(1171, "multimachine.dieselengine", "Diesel Engine").getStackForm(1L)); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_Multi_DieselEngine.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WCW", "EME", "WCW", 'M', ItemList.Hull_IV, 'W', ItemList.Casing_Assembler, 'E', OrePrefixes.circuit.get(Materials.Ultimate), 'C', ItemList.Robot_Arm_IV}); } private static void run4() { @@ -1038,11 +1118,26 @@ public class GT_Loader_MetaTileEntities GT_OreDictUnificator.registerOre(OrePrefixes.pipeMedium.get(Materials.Titanium), new GT_MetaPipeEntity_Fluid(5152, "GT_Pipe_Titanium", "Titanium Fluid Pipe", 0.5F, Materials.Titanium, 480, 5000, true).getStackForm(1L)); GT_OreDictUnificator.registerOre(OrePrefixes.pipeLarge.get(Materials.Titanium), new GT_MetaPipeEntity_Fluid(5153, "GT_Pipe_Titanium_Large", "Large Titanium Fluid Pipe", 0.75F, Materials.Titanium, 960, 5000, true).getStackForm(1L)); GT_OreDictUnificator.registerOre(OrePrefixes.pipeHuge.get(Materials.Titanium), new GT_MetaPipeEntity_Fluid(5154, "GT_Pipe_Titanium_Huge", "Huge Titanium Fluid Pipe", 1.0F, Materials.Titanium, 1920, 5000, true).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.pipeTiny.get(Materials.TungstenSteel), new GT_MetaPipeEntity_Fluid(5160, "GT_Pipe_TungstenSteel_Tiny", "Tiny Tungstensteel Fluid Pipe", 0.25F, Materials.TungstenSteel, 100, 12500, true).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.pipeSmall.get(Materials.TungstenSteel), new GT_MetaPipeEntity_Fluid(5161, "GT_Pipe_TungstenSteel_Small", "Small Tungstensteel Fluid Pipe", 0.375F, Materials.TungstenSteel, 200, 12500, true).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.pipeMedium.get(Materials.TungstenSteel), new GT_MetaPipeEntity_Fluid(5162, "GT_Pipe_TungstenSteel", "Tungstensteel Fluid Pipe", 0.5F, Materials.TungstenSteel, 600, 12500, true).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.pipeLarge.get(Materials.TungstenSteel), new GT_MetaPipeEntity_Fluid(5163, "GT_Pipe_TungstenSteel_Large", "Large Tungstensteel Fluid Pipe", 0.75F, Materials.TungstenSteel, 1200, 12500, true).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.pipeHuge.get(Materials.TungstenSteel), new GT_MetaPipeEntity_Fluid(5164, "GT_Pipe_TungstenSteel_Huge", "Huge Tungstensteel Fluid Pipe", 1.0F, Materials.TungstenSteel, 2400, 12500, true).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeTiny.get(Materials.TungstenSteel), new GT_MetaPipeEntity_Fluid(5160, "GT_Pipe_TungstenSteel_Tiny", "Tiny Tungstensteel Fluid Pipe", 0.25F, Materials.TungstenSteel, 100, 7500, true).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeSmall.get(Materials.TungstenSteel), new GT_MetaPipeEntity_Fluid(5161, "GT_Pipe_TungstenSteel_Small", "Small Tungstensteel Fluid Pipe", 0.375F, Materials.TungstenSteel, 200, 7500, true).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeMedium.get(Materials.TungstenSteel), new GT_MetaPipeEntity_Fluid(5162, "GT_Pipe_TungstenSteel", "Tungstensteel Fluid Pipe", 0.5F, Materials.TungstenSteel, 600, 7500, true).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeLarge.get(Materials.TungstenSteel), new GT_MetaPipeEntity_Fluid(5163, "GT_Pipe_TungstenSteel_Large", "Large Tungstensteel Fluid Pipe", 0.75F, Materials.TungstenSteel, 1200, 7500, true).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeHuge.get(Materials.TungstenSteel), new GT_MetaPipeEntity_Fluid(5164, "GT_Pipe_TungstenSteel_Huge", "Huge Tungstensteel Fluid Pipe", 1.0F, Materials.TungstenSteel, 2400, 7500, true).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeSmall.get(Materials.Ultimate), new GT_MetaPipeEntity_Fluid(5165, "GT_Pipe_HighPressure_Small", "Small High Pressure Fluid Pipe", 0.375F, Materials.Redstone, 4800, 1500, true).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeMedium.get(Materials.Ultimate), new GT_MetaPipeEntity_Fluid(5166, "GT_Pipe_HighPressure", "High Pressure Fluid Pipe", 0.5F, Materials.Redstone, 7200, 1500, true).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeLarge.get(Materials.Ultimate), new GT_MetaPipeEntity_Fluid(5167, "GT_Pipe_HighPressure_Large", "Large High Pressure Fluid Pipe", 0.75F, Materials.Redstone, 9600, 1500, true).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeMedium.get(Materials.Superconductor), new GT_MetaPipeEntity_Fluid(5168, "GT_Pipe_PlasmaContain", "Plasma Containment Pipe", 0.5F, Materials.Glowstone, 240, 100000, true).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeTiny.get(Materials.Plastic), new GT_MetaPipeEntity_Fluid(5170, "GT_Pipe_Plastic_Tiny", "Tiny Plastic Fluid Pipe", 0.25F, Materials.Plastic, 60, 350, true).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeSmall.get(Materials.Plastic), new GT_MetaPipeEntity_Fluid(5171, "GT_Pipe_Plastic_Small", "Small Plastic Fluid Pipe", 0.375F, Materials.Plastic, 120, 350, true).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeMedium.get(Materials.Plastic), new GT_MetaPipeEntity_Fluid(5172, "GT_Pipe_Plastic", "Plastic Pipe", 0.5F, Materials.Plastic, 360, 350, true).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeLarge.get(Materials.Plastic), new GT_MetaPipeEntity_Fluid(5173, "GT_Pipe_Plastic_Large", "Large Plastic Fluid Pipe", 0.75F, Materials.Plastic, 720, 350, true).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeHuge.get(Materials.Plastic), new GT_MetaPipeEntity_Fluid(5174, "GT_Pipe_Plastic_Huge", "Huge Plastic Fluid Pipe", 1.0F, Materials.Plastic, 1440, 350, true).getStackForm(1L)); + + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.pipeSmall, Materials.TungstenSteel, 1L), ItemList.Electric_Pump_EV.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.pipeSmall, Materials.Ultimate, 1L), 300, 96); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.pipeMedium, Materials.TungstenSteel, 1L), ItemList.Electric_Pump_IV.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.pipeMedium, Materials.Ultimate, 1L), 400, 148); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.pipeLarge, Materials.TungstenSteel, 1L), ItemList.Electric_Pump_IV.get(2L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.pipeLarge, Materials.Ultimate, 1L), 600, 256); + + GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.pipeMedium, Materials.Superconductor, 1L), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"WSW", "CMC", "WSW", Character.valueOf('M'), OrePrefixes.pipeSmall.get(Materials.Titanium), Character.valueOf('C'), OrePrefixes.plate.get(Materials.NeodymiumMagnetic), Character.valueOf('W'), OrePrefixes.plate.get(Materials.Plastic), Character.valueOf('S'), OrePrefixes.wireGt02.get(Materials.Superconductor)}); GT_OreDictUnificator.registerOre(OrePrefixes.pipeMedium.get(Materials.Brass), new GT_MetaPipeEntity_Item(5602, "GT_Pipe_Brass", "Brass Item Pipe", 0.5F, Materials.Brass, 1, 32768, false).getStackForm(1L)); @@ -1205,4 +1300,4 @@ public class GT_Loader_MetaTileEntities run3(); run4(); } -} +} \ 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 fda908b8..6d330cf4 100644 --- a/src/main/resources/assets/gregtech/lang/en_US.lang +++ b/src/main/resources/assets/gregtech/lang/en_US.lang @@ -1,175 +1,188 @@ +item.gregtech:modulararmor_helmet.name=Basic Modular Armor Helmet +item.gregtech:modulararmor_chestplate.name=Basic Modular Armor Chestplate +item.gregtech:modulararmor_leggings.name=Basic Modular Armor Leggings +item.gregtech:modulararmor_boots.name=Basic Modular Armor Boots +item.gregtech:modularelectric1_helmet.name=Modular Exoskeleton Helmet +item.gregtech:modularelectric1_chestplate.name=Modular Exoskeleton Chestplate +item.gregtech:modularelectric1_leggings.name=Modular Exoskeleton Leggings +item.gregtech:modularelectric1_boots.name=Modular Exoskeleton Boots +item.gregtech:modularelectric2_helmet.name=Modular Nanosuit Helmet +item.gregtech:modularelectric2_chestplate.name=Modular Nanosuit Chestplate +item.gregtech:modularelectric2_leggings.name=Modular Nanosuit Leggings +item.gregtech:modularelectric2_boots.name=Modular Nanosuit Boots + achievement.Naquadah=Find Naquadah Ore -achievement.Naquadah.desc=Height: 10-90, Chance: 10, Asteroids/Venus/Titan/Oberon/Pluto// +achievement.Naquadah.desc=Height: 10-60, Chance: 10, End achievement.NaquadahEnriched=Find NaquadahEnriched Ore -achievement.NaquadahEnriched.desc=Height: 10-90, Chance: 10, Asteroids/Venus/Titan/Oberon/Pluto// +achievement.NaquadahEnriched.desc=Height: 10-60, Chance: 10, End achievement.Lignite=Find Lignite Ore -achievement.Lignite.desc=Height: 80-210, Chance: 160, Overworld// +achievement.Lignite.desc=Height: 50-130, Chance: 160, Overworld achievement.Coal=Find Coal Ore -achievement.Coal.desc=Height: 30-80, Chance: 160, Overworld/Twilight-Forrest// +achievement.Coal.desc=Height: 50-130, Chance: 160, Overworld achievement.Magnetite=Find Magnetite Ore -achievement.Magnetite.desc=Height: 60-180, Chance: 160, Overworld/Twilight-Forrest/End/End-Asteroids/Mars/Phobos/Deimos/Asteorids/IO/Callisto/Venus/Triton// +achievement.Magnetite.desc=Height: 50-120, Chance: 160, Overworld/Nether achievement.Iron=Find Iron Ore -achievement.Iron.desc=Height: 10-40, Chance: 120, Overworld/Nether/Twilight-Forrest/End/End-Asteroids/Moon/Mars/Ceres/IO/Ganymed/Callisto/Mecury/Enceladus/Oberon/Proteus/Pluto// +achievement.Iron.desc=Height: 50-120, Chance: 160, Overworld/Nether achievement.VanadiumMagnetite=Find VanadiumMagnetite Ore -achievement.VanadiumMagnetite.desc=Height: 60-180, Chance: 160, Overworld/Twilight-Forrest/End/End-Asteroids/Mars/Phobos/Asteorids/IO/Callisto/Venus/Triton// +achievement.VanadiumMagnetite.desc=Height: 50-120, Chance: 160, Overworld/Nether achievement.Gold=Find Gold Ore -achievement.Gold.desc=Height: 30-60, Chance: 160, Overworld/Twilight-Forrest/End/End/End-Asteroids/Mars/Phobos/Asteroids/Callisto/Venus/Triton// +achievement.Gold.desc=Height: 60-80, Chance: 160, Overworld achievement.BrownLimonite=Find BrownLimonite Ore -achievement.BrownLimonite.desc=Height: 10-40, Chance: 120, Overworld/Nether/Mars/Ganymed/Callisto/Mecury/Oberon/Pluto// +achievement.BrownLimonite.desc=Height: 10-40, Chance: 120, Overworld/Nether achievement.YellowLimonite=Find YellowLimonite Ore -achievement.YellowLimonite.desc=Height: 10-40, Chance: 120, Overworld/Nether/Mars/Ganymed/Callisto/Mecury/Oberon/Pluto// +achievement.YellowLimonite.desc=Height: 10-40, Chance: 120, Overworld/Nether achievement.BandedIron=Find BandedIron Ore -achievement.BandedIron.desc=Height: 10-40, Chance: 120, Overworld/Nether/Mars/Ganymed/Callisto/Mecury/Oberon/Pluto// +achievement.BandedIron.desc=Height: 10-40, Chance: 120, Overworld/Nether achievement.Malachite=Find Malachite Ore -achievement.Malachite.desc=Height: 10-40, Chance: 120, Overworld/Nether/Mars/Ganymed/Callisto/Mecury/Oberon/Pluto// +achievement.Malachite.desc=Height: 10-40, Chance: 120, Overworld/Nether achievement.Tin=Find Tin Ore -achievement.Tin.desc=Height: 60-220, Chance: 50, Overworld/Twilight-Forrest/End/End/End-Asteroids/Moon/IO/Venus// +achievement.Tin.desc=Height: 40-120, Chance: 50, Overworld/End achievement.Cassiterite=Find Cassiterite Ore -achievement.Cassiterite.desc=Height: 60-220, Chance: 50, Overworld/Twilight-Forrest/End/End/End-Asteroids/Moon/IO/Venus/Pluto// +achievement.Cassiterite.desc=Height: 40-120, Chance: 50, Overworld/End achievement.Tetrahedrite=Find Tetrahedrite Ore -achievement.Tetrahedrite.desc=Height: 80-120, Chance: 70, Nether/Mars/Deimos/Ganymed/Enceladus/Triton// +achievement.Tetrahedrite.desc=Height: 80-120, Chance: 70, Overworld/Nether achievement.Copper=Find Copper Ore -achievement.Copper.desc=Height: 5-60, Chance: 80, Overworld/Nether/End/End-Asteroids/Moon/Mars/Phobos/Deimos/Ceres/Ganymed/Callisto/Enceladus/Proteus// +achievement.Copper.desc=Height: 80-120, Chance: 70, Overworld/Nether achievement.Stibnite=Find Stibnite Ore -achievement.Stibnite.desc=Height: 80-120, Chance: 70, Nether/Mars/Deimos/Ganymed/Enceladus/Triton// +achievement.Stibnite.desc=Height: 80-120, Chance: 70, Overworld/Nether achievement.NetherQuartz=Find NetherQuartz Ore -achievement.NetherQuartz.desc=Height: 40-80, Chance: 80, /Nether// +achievement.NetherQuartz.desc=Height: 40-80, Chance: 80, Nether achievement.Sulfur=Find Sulfur Ore -achievement.Sulfur.desc=Height: 5-20, Chance: 100, /Nether/Mars/Phobos/Deimos/IO/Venus// +achievement.Sulfur.desc=Height: 5-20, Chance: 100, Nether achievement.Pyrite=Find Pyrite Ore -achievement.Pyrite.desc=Height: 5-60, Chance: 100, Overworld/Nether/End/End-Asteroids/Moon/Ceres/IO/Callisto/Venus/Enceladus/Proteus// +achievement.Pyrite.desc=Height: 5-20, Chance: 100, Nether achievement.Sphalerite=Find Sphalerite Ore -achievement.Sphalerite.desc=Height: 5-20, Chance: 100, /Nether/Mars/Phobos/Deimos/IO/Venus// +achievement.Sphalerite.desc=Height: 5-20, Chance: 100, Nether achievement.Chalcopyrite=Find Chalcopyrite Ore -achievement.Chalcopyrite.desc=Height: 5-60, Chance: 80, Overworld/Nether/End/End-Asteroids/Moon/Ceres/Callisto/Enceladus/Proteus// +achievement.Chalcopyrite.desc=Height: 10-30, Chance: 80, Overworld/Nether achievement.Bauxite=Find Bauxite Ore -achievement.Bauxite.desc=Height: 10-80, Chance: 80, Moon/Phobos/Asteroids/Ganymed/Mercury/Titan/Proteus/Pluto// +achievement.Bauxite.desc=Height: 50-90, Chance: 80, Overworld achievement.Aluminium=Find Aluminium Ore -achievement.Aluminium.desc=Height: 10-80, Chance: 80, Moon/Phobos/Asteroids/Ganymed/Mercury/Titan/Proteus/Pluto// +achievement.Aluminium.desc=Height: 50-90, Chance: 80, Overworld achievement.Ilmenite=Find Ilmenite Ore -achievement.Ilmenite.desc=Height: 10-80, Chance: 80, Moon/Phobos/Asteroids/Ganymed/Mercury/Titan/Proteus/Pluto// +achievement.Ilmenite.desc=Height: 50-90, Chance: 80, Overworld achievement.RockSalt=Find RockSalt Ore -achievement.RockSalt.desc=Height: 50-70, Chance: 50, Overworld/Twilight-Forrest/Mars// +achievement.RockSalt.desc=Height: 50-60, Chance: 50, Overworld achievement.Salt=Find Salt Ore -achievement.Salt.desc=Height: 50-70, Chance: 50, Overworld/Twilight-Forrest/Mars// +achievement.Salt.desc=Height: 50-60, Chance: 50, Overworld achievement.Lepidolite=Find Lepidolite Ore -achievement.Lepidolite.desc=Height: 50-70, Chance: 50, Overworld/Twilight-Forrest/Mars// +achievement.Lepidolite.desc=Height: 50-60, Chance: 50, Overworld achievement.Spodumene=Find Spodumene Ore -achievement.Spodumene.desc=Height: 50-70, Chance: 50, Overworld/Twilight-Forrest/Mars// +achievement.Spodumene.desc=Height: 50-60, Chance: 50, Overworld achievement.Redstone=Find Redstone Ore -achievement.Redstone.desc=Height: 5-40, Chance: 60, Overworld/Nether/Mars/Ganymed/Venus/Mercury// +achievement.Redstone.desc=Height: 10-40, Chance: 60, Overworld/Nether achievement.Ruby=Find Ruby Ore -achievement.Ruby.desc=Height: 5-40, Chance: 60, Overworld/Nether/Mars/Ganymed/Venus/Mercury// +achievement.Ruby.desc=Height: 10-40, Chance: 60, Overworld/Nether achievement.Cinnabar=Find Cinnabar Ore -achievement.Cinnabar.desc=Height: 5-40, Chance: 60, Overworld/Nether/Mars/Ganymed/Venus/Mercury// +achievement.Cinnabar.desc=Height: 10-40, Chance: 60, Overworld/Nether achievement.Soapstone=Find Soapstone Ore -achievement.Soapstone.desc=Height: 20-50, Chance: 40, Overworld/Twilight-Forrest// +achievement.Soapstone.desc=Height: 10-40, Chance: 40, Overworld achievement.Talc=Find Talc Ore -achievement.Talc.desc=Height: 20-50, Chance: 40, Overworld/Twilight-Forrest// +achievement.Talc.desc=Height: 10-40, Chance: 40, Overworld achievement.Glauconite=Find Glauconite Ore -achievement.Glauconite.desc=Height: 20-50, Chance: 40, Overworld/Twilight-Forrest// +achievement.Glauconite.desc=Height: 10-40, Chance: 40, Overworld achievement.Pentlandite=Find Pentlandite Ore -achievement.Pentlandite.desc=Height: 20-50, Chance: 40, Overworld/Twilight-Forrest// +achievement.Pentlandite.desc=Height: 10-40, Chance: 40, Overworld achievement.Garnierite=Find Garnierite Ore -achievement.Garnierite.desc=Height: 10-40, Chance: 40, Twilight-Forrest/End/End-Asteroids/Mars/Phobos/Deimos/Venus/Titan/Triton// +achievement.Garnierite.desc=Height: 10-40, Chance: 40, Overworld/Nether/End achievement.Nickel=Find Nickel Ore -achievement.Nickel.desc=Height: 10-40, Chance: 40, Twilight-Forrest/End/End-Asteroids/Mars/Phobos/Deimos/Venus/Mercury/Enceladus/Titan/Triton/Proteus/Pluto// +achievement.Nickel.desc=Height: 10-40, Chance: 40, Overworld/Nether/End achievement.Cobaltite=Find Cobaltite Ore -achievement.Cobaltite.desc=Height: 10-40, Chance: 40, Twilight-Forrest/End/End-Asteroids/Mars/Phobos/Deimos/Venus/Titan/Triton// +achievement.Cobaltite.desc=Height: 10-40, Chance: 40, Overworld/Nether/End achievement.Cooperite=Find Cooperite Ore -achievement.Cooperite.desc=Height: 40-50, Chance: 5, // +achievement.Cooperite.desc=Height: 40-50, Chance: 5, Overworld/End achievement.Palladium=Find Palladium Ore -achievement.Palladium.desc=Height: 5-30, Chance: 10, /Ceres/IO/Ganymed/Callisto/Venus/Mercury/Enceladus/Oberon/Pluto// +achievement.Palladium.desc=Height: 40-50, Chance: 5, Overworld/End achievement.Platinum=Find Platinum Ore -achievement.Platinum.desc=Height: 5-30, Chance: 10, /Ceres/IO/Ganymed/Callisto/Mercury/Oberon/Pluto// +achievement.Platinum.desc=Height: 40-50, Chance: 5, Overworld/End achievement.Iridium=Find Iridium Ore -achievement.Iridium.desc=Height: 5-30, Chance: 10, /Venus/Mercury/Enceladus/Titan/Proteus/Pluto// +achievement.Iridium.desc=Height: 40-50, Chance: 5, Overworld/End achievement.Pitchblende=Find Pitchblende Ore -achievement.Pitchblende.desc=Height: 30-60, Chance: 40, Moon/Phobos/IO/Venus/Oberon// -achievement.Uranium=Find Uranium Ore -achievement.Uranium.desc=Height: 30-60, Chance: 40, Mars/Phobos/Deimos/Ceres/IO/Gannymed/Venus/Enceladus/Oberon/Proteus// +achievement.Pitchblende.desc=Height: 10-40, Chance: 40, Overworld achievement.Uraninite=Find Uraninite Ore -achievement.Uraninite.desc=Height: 30-60, Chance: 40, Mars/Phobos/Deimos/Ceres/IO/Gannymed/Venus/Enceladus/Oberon/Proteus// -achievement.Plutonium=Find Plutonium Ore -achievement.Plutonium.desc=Height: 5-30, Chance: 10, Phobos/Deimos/Ceres/Gannymed/Enceladus/Proteus// +achievement.Uraninite.desc=Height: 10-40, Chance: 40, Overworld +achievement.Uranium=Find Uranium Ore +achievement.Uranium.desc=Height: 20-30, Chance: 20, Overworld achievement.Bastnasite=Find Bastnasite Ore -achievement.Bastnasite.desc=Height: 20-40, Chance: 30, Moon/Deimos/IO/Callisto/Venus/Enceladus/Titan/Triton// +achievement.Bastnasite.desc=Height: 20-40, Chance: 30, Overworld achievement.Monazite=Find Monazite Ore -achievement.Monazite.desc=Height: 20-40, Chance: 30, Moon/Deimos/IO/Callisto/Venus/Enceladus/Titan/Triton// +achievement.Monazite.desc=Height: 20-40, Chance: 30, Overworld achievement.Neodymium=Find Neodymium Ore -achievement.Neodymium.desc=Height: 20-40, Chance: 30, Moon/Deimos/IO/Callisto/Venus/Enceladus/Titan/Triton// +achievement.Neodymium.desc=Height: 20-40, Chance: 30, Overworld achievement.Wulfenite=Find Wulfenite Ore -achievement.Wulfenite.desc=Height: 20-50, Chance: 5, Nether/Twilight-Forrest/Moon/Phobos/Ceres/Mercury/Titan/Proteus/Pluto// +achievement.Wulfenite.desc=Height: 20-50, Chance: 5, Overworld/End achievement.Molybdenite=Find Molybdenite Ore -achievement.Molybdenite.desc=Height: 20-50, Chance: 5, Nether/Twilight-Forrest/Moon/Phobos/Ceres/Mercury/Titan/Proteus/Pluto// +achievement.Molybdenite.desc=Height: 20-50, Chance: 5, Overworld/End achievement.Molybdenum=Find Molybdenum Ore -achievement.Molybdenum.desc=Height: 20-50, Chance: 5, Nether/Twilight-Forrest/Moon/Phobos/Ceres/Mercury/Titan/Proteus/Pluto// +achievement.Molybdenum.desc=Height: 20-50, Chance: 5, Overworld/End achievement.Powellite=Find Powellite Ore -achievement.Powellite.desc=Height: 20-50, Chance: 5, Nether/Twilight-Forrest/Moon/Phobos/Ceres/Mercury/Titan/Proteus/Pluto// +achievement.Powellite.desc=Height: 20-50, Chance: 5, Overworld/End achievement.Scheelite=Find Scheelite Ore -achievement.Scheelite.desc=Height: 20-60, Chance: 10, Mars/Deimos/Asteroids/Ganymed/Callisto/Enceladus/Oberon/Pluto// +achievement.Scheelite.desc=Height: 20-50, Chance: 10, Overworld/End achievement.Tungstate=Find Tungstate Ore -achievement.Tungstate.desc=Height: 20-60, Chance: 10, Mars/Deimos/Asteroids/Ganymed/Callisto/Enceladus/Oberon/Pluto// +achievement.Tungstate.desc=Height: 20-50, Chance: 10, Overworld/End achievement.Lithium=Find Lithium Ore -achievement.Lithium.desc=Height: 20-60, Chance: 10, Mars/Deimos/Asteroids/Ganymed/Callisto/Enceladus/Oberon/Pluto// +achievement.Lithium.desc=Height: 20-50, Chance: 10, Overworld/End achievement.Almandine=Find Almandine Ore -achievement.Almandine.desc=Height: 10-40, Chance: 60, Twilight-Forrest// +achievement.Almandine.desc=Height: 10-40, Chance: 60, Overworld achievement.Pyrope=Find Pyrope Ore -achievement.Pyrope.desc=Height: 10-40, Chance: 60, Twilight-Forrest// +achievement.Pyrope.desc=Height: 10-40, Chance: 60, Overworld achievement.Sapphire=Find Sapphire Ore -achievement.Sapphire.desc=Height: 10-40, Chance: 60, Twilight-Forrest// +achievement.Sapphire.desc=Height: 10-40, Chance: 60, Overworld achievement.GreenSapphire=Find GreenSapphire Ore -achievement.GreenSapphire.desc=Height: 10-40, Chance: 60, Twilight-Forrest// +achievement.GreenSapphire.desc=Height: 10-40, Chance: 60, Overworld achievement.Grossular=Find Grossular Ore -achievement.Grossular.desc=Height: 20-30, Chance: 20, Overworld/Nether/Ceres/IO/Titan/Oberon/Triton// +achievement.Grossular.desc=Height: 20-30, Chance: 20, Overworld/End achievement.Spessartine=Find Spessartine Ore -achievement.Spessartine.desc=Height: 20-30, Chance: 20, Overworld/Nether/Ceres/IO/Titan/Oberon/Triton// +achievement.Spessartine.desc=Height: 20-30, Chance: 20, Overworld/End achievement.Pyrolusite=Find Pyrolusite Ore -achievement.Pyrolusite.desc=Height: 20-30, Chance: 20, Overworld/Nether/Ceres/IO/Titan/Oberon/Triton// +achievement.Pyrolusite.desc=Height: 20-30, Chance: 20, Overworld/End achievement.Tantalite=Find Tantalite Ore -achievement.Tantalite.desc=Height: 20-30, Chance: 20, Overworld/Nether/Ceres/IO/Titan/Oberon/Triton// +achievement.Tantalite.desc=Height: 20-30, Chance: 20, Overworld/End achievement.Quartzite=Find Quartzite Ore -achievement.Quartzite.desc=Height: 40-80, Chance: 60, Nether/Moon/Mars/Phobos/IO/Venus/Proteus// +achievement.Quartzite.desc=Height: 40-80, Chance: 60, Overworld achievement.Barite=Find Barite Ore -achievement.Barite.desc=Height: 40-80, Chance: 60, Nether/Moon/Mars/Phobos/IO/Venus/Proteus// +achievement.Barite.desc=Height: 40-80, Chance: 60, Overworld achievement.CertusQuartz=Find CertusQuartz Ore -achievement.CertusQuartz.desc=Height: 40-80, Chance: 60, Nether/Moon/Mars/Phobos/IO/Venus/Proteus// +achievement.CertusQuartz.desc=Height: 40-80, Chance: 60, Overworld achievement.Graphite=Find Graphite Ore -achievement.Graphite.desc=Height: 5-20, Chance: 40, Overworld/Twilight-Forrest/Phobos/Ganymed/Mercury/Titan/Proteus/Pluto// +achievement.Graphite.desc=Height: 5-20, Chance: 40, Overworld achievement.Diamond=Find Diamond Ore -achievement.Diamond.desc=Height: 5-20, Chance: 40, Overworld/Twilight-Forrest/Phobos/Ganymed/Mercury/Titan/Proteus/Pluto// +achievement.Diamond.desc=Height: 5-20, Chance: 40, Overworld achievement.Bentonite=Find Bentonite Ore -achievement.Bentonite.desc=Height: 10-40, Chance: 60, Twilight-Forrest// +achievement.Bentonite.desc=Height: 10-40, Chance: 60, Overworld/End achievement.Magnesite=Find Magnesite Ore -achievement.Magnesite.desc=Height: 10-40, Chance: 60, Twilight-Forrest// +achievement.Magnesite.desc=Height: 10-40, Chance: 60, Overworld/End achievement.Olivine=Find Olivine Ore -achievement.Olivine.desc=Height: 10-40, Chance: 60, Twilight-Forrest// +achievement.Olivine.desc=Height: 10-40, Chance: 60, Overworld/End achievement.Apatite=Find Apatite Ore -achievement.Apatite.desc=Height: 40-60, Chance: 60, Overworld/Twilight-Forrest// +achievement.Apatite.desc=Height: 40-60, Chance: 60, Overworld achievement.Phosphorus=Find Phosphorus Ore -achievement.Phosphorus.desc=Height: 40-60, Chance: 60, Overworld/Twilight-Forrest// +achievement.Phosphorus.desc=Height: 40-60, Chance: 60, Overworld achievement.Phosphate=Find Phosphate Ore -achievement.Phosphate.desc=Height: 40-60, Chance: 60, Overworld/Twilight-Forrest// +achievement.Phosphate.desc=Height: 40-60, Chance: 60, Overworld achievement.Galena=Find Galena Ore -achievement.Galena.desc=Height: 5-45, Chance: 40, Twilight-Forrest/Moon/Mars/Ganymed/Venus/Oberon/Triton// +achievement.Galena.desc=Height: 30-60, Chance: 40, Overworld achievement.Silver=Find Silver Ore -achievement.Silver.desc=Height: 5-45, Chance: 40, Twilight-Forrest/Moon/Mars/Ganymed/Venus/Oberon/Triton// +achievement.Silver.desc=Height: 30-60, Chance: 40, Overworld achievement.Lead=Find Lead Ore -achievement.Lead.desc=Height: 5-45, Chance: 40, Twilight-Forrest/Moon/Mars/Ganymed/Venus/Oberon/Triton// +achievement.Lead.desc=Height: 30-60, Chance: 40, Overworld achievement.Lazurite=Find Lazurite Ore -achievement.Lazurite.desc=Height: 20-50, Chance: 40, Overworld/Twilight-Forrest/Deimos/Ceres/Enceladus// +achievement.Lazurite.desc=Height: 20-50, Chance: 40, Overworld/End achievement.Sodalite=Find Sodalite Ore -achievement.Sodalite.desc=Height: 20-50, Chance: 40, Overworld/Twilight-Forrest/Deimos/Ceres/Enceladus// +achievement.Sodalite.desc=Height: 20-50, Chance: 40, Overworld/End achievement.Lapis=Find Lapis Ore -achievement.Lapis.desc=Height: 20-50, Chance: 40, Overworld/Twilight-Forrest/Deimos/Ceres/Enceladus// +achievement.Lapis.desc=Height: 20-50, Chance: 40, Overworld/End achievement.Calcite=Find Calcite Ore -achievement.Calcite.desc=Height: 20-50, Chance: 40, Overworld/Twilight-Forrest/Deimos/Ceres/Enceladus// +achievement.Calcite.desc=Height: 20-50, Chance: 40, Overworld/End achievement.Beryllium=Find Beryllium Ore -achievement.Beryllium.desc=Height: 5-30, Chance: 30, Nether/End-Asteroids/Mars/Ceres/Venus/Titan/Pluto// +achievement.Beryllium.desc=Height: 5-30, Chance: 30, Overworld/End achievement.Emerald=Find Emerald Ore -achievement.Emerald.desc=Height: 5-30, Chance: 30, Nether/End-Asteroids/Mars/Ceres/Venus/Titan/Pluto// +achievement.Emerald.desc=Height: 5-30, Chance: 30, Overworld/End achievement.Thorium=Find Thorium Ore -achievement.Thorium.desc=Height: 5-30, Chance: 30, Nether/End-Asteroids/Mars/Ceres/Venus/Titan/Pluto// +achievement.Thorium.desc=Height: 5-30, Chance: 30, Overworld/End +achievement.Oilsands=Find Oilsands Ore +achievement.Oilsands.desc=Height: 50-80, Chance: 80, Overworld achievement.flintpick=First Tools achievement.flintpick.desc=Craft a flint pick @@ -359,3 +372,37 @@ achievement.fullefficiency=Full Efficiency achievement.fullefficiency.desc=Craft a Plasma Generator III achievement.whatnow=What now? achievement.whatnow.desc=Craft a Ultimate Battery + +for.bees.species.clay=Clay +for.bees.species.slimeball=Slimeball +for.bees.species.peat=Peat +for.bees.species.stickyresin=Stickyresin +for.bees.species.coal=Coal +for.bees.species.oil=Oil +for.bees.species.redstone=Redstone +for.bees.species.lapis=Lapis +for.bees.species.certus=Certus +for.bees.species.ruby=Ruby +for.bees.species.sapphire=Sapphire +for.bees.species.diamond=Diamond +for.bees.species.olivine=Olivine +for.bees.species.emerald=Emerald +for.bees.species.copper=Copper +for.bees.species.tin=Tin +for.bees.species.lead=Lead +for.bees.species.iron=Iron +for.bees.species.steel=Steel +for.bees.species.nickel=Nickel +for.bees.species.zinc=Zinc +for.bees.species.silver=Silver +for.bees.species.gold=Gold +for.bees.species.aluminium=Aluminium +for.bees.species.titanium=Titanium +for.bees.species.chrome=Chrome +for.bees.species.manganese=Manganese +for.bees.species.tungsten=Tungsten +for.bees.species.platinum=Platinum +for.bees.species.iridium=Iridium +for.bees.species.uranium=Uranium +for.bees.species.plutonium=Plutonium +for.bees.species.naquadah=Naquadah diff --git a/src/main/resources/assets/gregtech/textures/DevCape.png b/src/main/resources/assets/gregtech/textures/DevCape.png deleted file mode 100644 index 6486b57e123d48bbdeac80477c38d4ba8e4364f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 525481 zcmeFa3AAp>Ro}PoH{JQobL+kC*Q00&Nwfr-5MmGlffj=d#KA*|o#hZuc-gU?*p8*x z#Evm0j+cpz493J+ULL?eAYg(pLV%F5B|xA?EveP5o?gFsyyG|J|NB?f`OdxlTI%=Q zvK3MF-Z@pZYwumV{@-1-tLoIL^S8d~8@^_B>BLe*tiJ7Q-|~)#j*@e+Fi`ZXfA>TG zt)j(0^R@rwpNm*N$Tb)5{=s7rcg5S@@)h6mKg`9xcU^wx+*Cn~&l~1?^HMq|y>p4D zljF(6w7FgW zn>HC|8L@S`x)Hd6E$YRJ?ayx=(4kcCw{l!4)DMpLzBC*c6;U$!Kmi(4K{La`M zj-n^K=5#GB?Tf|5eKDBd6P?~lEY2T@eFsm*Xw-{yXFnXzKKtQVU%wEW8`onz9mi-m zj3E`dzNzxtvAw+&!>#ogjkjVl9tnm~OmxkOpLhZuF^O((5WW6l^cPkfce?}GFsHh< zq+>nC(lwdROZ8lIrdxt;D!Z1W-(Qvf8?m){IfmjJ4L71Q*HOFGh7i7;o^;RaXV#yZ z^!2*)F~7JHgTZ|CRp*?4e>f+qx38bC8w-o8YWtx$cI*{#`S3;kaFs~`T$YD*0jfr>yypd#>MBhdRy3Onk|cZ?CT6HWty z?6^gn!$}qYr@UowmQ5N5B7z46xmI+EhN!)&<>7%2QO?`WKk-3vaG9mV0?%$I4@1_0 zE&_4UTLv-EOFia;SA=XQ#SU_Q4q0x>D92TlfrOPLo>Y+2Q#sgfEHCYejrGfRqQmV? znY%7qI?-F`#;|)mu3SAMr`eDGU?KMHJrVQs^D$Z3jPXd$ez>V?TVs~(*xcHTk=i;x z=*M(vA*OQvlgTi~<8qDF#If=tUkn8J9maCvQ#t*y1|Xe05b1aOLbofu3>q{5P#e45 zo(3vC4F+z=zBR+znO~H%?nxhQg{PbNf(`agG`L(|I-vYo#<4~ffr>yy zpd#>MBk&mq0Cw80wdLgO|JwOknw00uIQAJiIaTYynP#U<9%oyE9dF4fCSPbxTCyz> zd6$`hR|J%`GtaWK(p*=Tw+Y-(1}}`05K|yqY-wnPr^LCy4VNDMUs&8L2f3G*j0sez<)_sx`aTwY<0(D@!NjSSP;b#Di1EnNQ?285E2>Fxc`; zo*6&oQ?-3kE;-P|j|}N_O{J5uOh*G51_C_|CVE=Ip?o|}ytIH-0yniKn|LOw6JD+C zsBK*a6nQ{!VBdjQT{)luz#cpNZf`+)1{z>=CBuLaos-z!IPYtUZrRNW!`AiFrD=~=9aEl_6br4VrxWo5 zXJ9Zl$0etp<)AZz-hFv_rqPY_m+tKRdp&08X_co86ec{%(N*#z4GuRIv>KsU z7fzi(d$8Y@xo{@Byfeg3| zw5l=O=(~=3s|ZvCDgqUO7YTtc`#<0Qa75Y*&{Fvs2Lm`32RSV|@L5K5vbo$`rC4MJ z4$!n>oSx~+8D&i_wVb_R5h}5YQQSQ9pGnE<;C-YI$1XZ)KYK<*X;|Aae5Q%cz5>rT zMS!*=sElF)@{Uu~+}kp0OQXZ=6w**aX0#pCSXe%$s{1kDKNu@39X&7Cv+;R7PnUzo znNPKx&ys#}gnFhQLk$2XdKRvgg!ztkcgWH9HEWl1?e^rz^~}CwS!UPeDuaj=H-iCe z!B!6hfNJ+ZAgu<_gz<>g00t7YAz?ro8ngeA%7;TP1_PSOOSiPy29|y7=skd7Ad!9| zXq#K3Sl=AS_J~IhJr4?aj4)+z5Xwhiw7ypjhF)o4f5TXsH-(+{qSR0ks0dU9DgvJs z1U};cpwx;pVAg5pU?-uZV)gM3jUOaY%5z!cT;VLVl5oBuCI*~m`$8@mKq@(X=gGiJ ztk4VwFpRvZSr!^Z_!ZkhQ=Ze%U7lDdac~3SDFnq?&5VLh=!I{lt3Nm*I~L-={&_ia zX7zej&jvVc_}kK^yW#frh|yZ~yCap)#h%rrxbx2Av2S%*4qvMQ8ZfXt-_ZcTk7i^$ z4nC~_FaV$_B~SgcvnfB^&0%mx4q1T>(KUU+yEFdoyWG_$9S{Qde&sa_zUSzl!G;D5e>Dp9#H)C^q7+V@ZD3a4>Q{kd))}8}B z|L^Eg!g$nC*;JbYRmXT^260VQ1S$d*fr`M3iojctxdID8Sj`JYsPu zd`YNK74PO_7QYyG+_9qN@$FcRn{M{WY0Ax8Gf>Ds>}5uIraz}g3X6XH z0Djv@YF3}#8eoP#9&6vep4sEC8YkIuC zt~Uqd^!pkJENFAxz5~lz64!Hfyt@LkYn<#z8|V70EOfPO-bot+8MLKm{@77MU$rgC zr1hBVYPY{0Go*(!T5@M&VrT=O%0o-?3>361;Y*7Uf<=!lluP5Dp6p-Hpg?aW$m_F$ zQ1&(OxPZL_H?D5Qg|k;vN(56c-2r5s0dU9DgrMK0#E$hFTXnCIeP(6t|?#-m*r$L8^(({C?<&) z;J=rMb5RpzUVDlnM6qVmnEjmTrmP^=4knN*~#xw!{qqfkd>FZbi(h zT$c4ELhD}WCC)`;t+J^s7wpa#RlDRd_&GXmBCCZ5vr)uVejCeYoqFcKgYGI}&cbOa zr$FG+89&)n?{v(-rG|z2%6cRQ7cP@J{xGS|&&pPAY?*UU?_ zLskat$Y*t_;+?wv2nABBUMEZ5%9FmGlFk*b9r8O$GOmqmktlH~D10S`UeddHDJ!(X z)8=o}ptpj=nC+w5s|`g>VJW|bUM-x3B7iW|qTfnpY&%lB74ImlnTkL~pdwHa_zVbW zvA1-(H{+xuo|V&gr%i#7MK7Is5#8M<@5r|^rGqbmH;WTLoOvgJED_{Za z(y}@Z#O5&o$ow;>af77}|DHCv;bCjnA z{ue)F#?q<7wu2R3nBmHWIcnsJtO=Q|q+2m!Orpy*E0W`v4$56eN;G`9A@3oy!<i2;3Zjcl_mVdN$&wdjSw&ua^2)b+VGu&M_YC?QVuhrolcY;_qLu! zCW$31ceT&$puEkTHJX(9n@U79X*WITm}#MWmTSZd?WV;yYj&ZHe#4nRqASE z=5|V%20aYoZrX16{dY%Q?JH+X4WACX!c*glKt-S;P!agF2AQDy z?3t(O&>OFiWDC8pC50$WRfj`JEyZ%@7r{?yVd2+*yPN6vktk<25;%ui@N9NFFpRuL9|sk zovYJ4GAmS^{yXOVb}HIkRjKm%+XRQCET6ei<&bpF(wV%Y&266D<+FA*Epyv*ePtDf z-@uj^e(8jdEVpJa09g|$$i-=9-B3w92j8O0V#$;p0-0XgWgS^hNf#E!HzQ(mp_e$B z;@?Ka*giXL5=ApUt1a>cqhgN>#ar6d{;gbAZxw-xKt-S;@Inz_*OmUWVJnN!7ZXY+ zo7@Y88IKv-w<6r8k%rzXD>~`mTjatC(YweqVa8IH|J$6T6~yFH>n;*GE^SGiFYI1y zG&g#R&fVhALpQmUWdn*%$mOyFr<_Yfv*x_TeM^-(nfad2o?J&uD#`A?!(gV&`5b{Z zLFwXT(eE_nt&1dq@iyceB1vX@w|Hh%zNdXd*78#403OuSE4n&Z$@G+=O(?Vc2Wt)E=*4P%?kIB|RlAz9v{F zxuUnknO5pAeC=XnntW!+__=`TKbni_w6$e(YI~zVoVmP-TV-AB@7UU-s3axvMV>x!744+d=vC-$eV1CZF6_ z_Et%WxRM6$l&4%70w8aS9IpR~V4Y}BB1&*zzYgF}oX&^N+f5FKHYA-&bZ_!&s;3G}E%dSFqanX_EUD=|o#ub5zKt-S;@ZutnUki}Z(($6d zaR%zC?a+2tx`R0jw`nbY>1vmFOL&%`p0q`r>fs`v(mwY$JG3I7IM9s;5w9Z4IVPQp zh{;*NRHYUBH2soKEJ-NQU@5_N=tfOD15E9!l(vKmsqOgM$|;AP1qa&%p%scMVhku3 zLe@hJT?K6ebJlZi%H0UX4iE^9vXu2bmo+w8IMrbt$`^6?cc(LZQrOD0^kGvnwIy6k zX-GvjH>A|n=t(vB4(sy`R$FW}SrMoRR0JvlH%B0UG(eunvtgL%eAT?iBtf7$9j8w?y@up=E zAh|{;u|MYy3zE~a^i0ljxu8fCTFI9<*V`D9ZFI3esGJ4Or*y#^257Dq9<5X;^1?pZ z-Mn;_PSoEgyRV^qp#Fv}{@$06@+GI(0NB(PTQ2%czt@s@ye~ z`KfJ7Of9LDoDBq?Q?!$SyzOZcE>9S$!1_gM*Td5Y^283MK@fF;hd$@$w6JV^cWy(f zP&_4%m@%}n8Qob5bKrMrY%N3x=pvta+iA$fJkmQtmMi6!%ld3I1m$I0G1aVvzo}O& zS!{=TXV8&>GA_#UXH`Q*pdwHas0iE^0(`|zf!Sv6jdyjxX{N27wsh7dF4fVa`)bMO zGAN0f?$$+FF0ccZtW7YBW`j5hF=Xn@t~^sjyp-XbOZCNRId6H)5~uW{-xq1x>AI38 z?#a<6uExex;Cpi`a#m`qo1*8iQ#ZyC9Jlz5wJdtLc2UsOf#EqO|c1?0eZd~hK4cmwAqVV^D1MT3XxwBUCI}XWEB%PXsnjSTZ)BYSo5`zT2Bt zueG#Bv@URZiOkug}(q|1(IiwVXP3&!938F zZ!k;-=EGGxoBsI(Ez9ilnos1%3?Swf4H@|j@WP?Rt>IgJ2yD&|)x<}%px zuYx#}d*V{4WD~M%(P2K@;#L(YJo3L!13@u>Plb0w;V*dj`o}4h)}w_vmOU zKk1lDO@N3K_g!h0+LNw{+D0jZ4fODDxIHv2jRZ6ha07gExhqzRn8ydjZFC|k2q*a!SQ;FoP02}pkMo)th#pBUX#knlkof%EGtgE!JnwZ)My{MnzUnrKE z*=KUL+eIQYI$Mg0M)S9H710){U3-&GfM)Y0&;3@lPoc^Mc#A@ zCeiKp1-CG$p(0Qbs0dU9ZVLgtqC)O`b97Tp?J^vluGG&LS)6l9<9bUVm99c#mJTsF zW8P1k(?Ek20skvHvClbR!Yr^rDu{zq9-nB{BvEZvny%p zNGlIkqFd&LuaJs<#ibP{S)WoFk3`eGEx1EKWldfQVC3ctX=pI$%2A5Rv_i%RCSy(> zTTIWqEuNO7l5NFgkzb-ctXqnNa2tnS7=2oO<^6O!{u zq8=O+U2^m|UHdrXGren_DVxaL%WOaC!%-(W#iyoUONtKt-S;P!YIA1T+B1JuV$^ z?rR$zIHOjd+&BxC)#X@cv)AOXCw^x?_21~QI{Ir=li@}z8p8rYnk*yltO^nZ#+OE%Wke$0FxCa^A(62LbA}gKW{P zsN~UK(k@81LUP>7lqA)aU@S{Uaig!rTxbSd^c=UKK>5&Pq zO4d*js0dU9DgwI^`1pI{K*S5*3xIq+EQln%aMSxLN$1?kmvTtz;EQ9nq&j$lY7-z3N~w-%_1&_Sy%)(Z88X@ifM&ml-1U zc*bv=ti;aUjyXFTo+GQ+En-Ijk0X+Umqry(_f$?dj~nFXMG>7h7`Qles2!4Bwm6et z2$nMq$dAXPS#xGZ$w*XtcC6UHNvR7P8$(1|jLmNvIBu9J!n+Itp*$ zfu;HTP+{Rit{EgK4bTM2NtYOsuB3u8m=qwE3mWNG7*B+~=!LyiRFf5fia3~tB9@_up5Lvn|&fR@^?ww(W-s|;dvoz(A^MC7Bmo3LomghawR^44z z6-KE$#}Q&qQkxt(v-eI{JNgIR7!2lO(C@^&(hCbcoo9P=3@r4ibtC59Yb~5PbY6BkwfLyiWG#E;LE!oe2 zLdy)PMi>io)-}Ui1*W;>sqWOIU3c-Z3eY&*Qk?6sl3bDN(#^5>iv3NpRZxC=)D`lM zxRoi%(gw?5Q%gAWBut>I&_5{2oF;Z1S$d* zfzOOUS^+4Xv^#8duyn$9HcH5sb(n4Iq`Hy*Ie1V2PjcvpF_Yfh+?1%6@w;sDlXKFn zysTb(m0wQLj#a!&?w6JZar7_#Xe@o|-^3$7`2F$~?2eaSU6gmFV|lR`d-o0E(9uC0 zIXoZx_s&OOulHTp?#8D02@A6A&|n-x&7v<~-HLPPw&MKR?YMSzJJvSFS{;z7c|9NZ z!3w|w-|^qXjr+ePF8r-`#QKd*(PWeUamQA+7kG<-Z0X9O<99}*Q4I5Pz1sz^bYU_W za3ktsmj((GW~&5i2;2q&bFsL>G`SJwWjy-W^!l9=>V)ZXy=@eBhPeB25vm`>h|1zwqAgkL8s?oL`&7 zJM_%`T#B^&e?pb?(od3Re z#K!e)ud?I9dA5(;97JThH6Q>YPV1$VO=*;qF4#CnMq!RG6J~4>Osggqkc5<#P(VUC zBOV9%bd^vxIwr50sHNC^xl$}apJUj_D=NH@N+|k^PI$5?EJ+Q75^_50D(r4^(O=k0 zTttfj)Y)A81t?EN@MA}5evt!Um$eE?`{41)jsC7S)`~=pD*_dPiooxA1m^zT>3uXn5H&vFp@Th`XtcxNz?kSM z4-uMTMJ$oP2o;$$v~WV19LN%cOBPBoG=c?F^0{|}ks~NhMr0ECLMKkVKJb8SBbU=O zx7Y%y6?QBMP>1+jm4Dbk`&2b_O@~wOuYOu7@v{NI zGhX66^?mY#ABuaIzb!uT_5V^&8hVnN#FaTY{~V5vJ{52JxxWzKvhqwEy>l^cT-N&j zg>9|NkK@|;4f%qZ4WuUrLa5vZy( z(F7Y<3}qQW!45qocifYT8EL1YL@zeFO^|jA&BSY}B2W>i2vh_B)Xa&m^v1-i#|(d5GVzJ2BPKf74B_?HKBr!RXpB zj_+BBKfL!`{J#I|9dYQ=Z|x9Zp8CMAd}n<87k<&Ucw8d8un}9mY9YI9FKr?1J8^1n zLxbOCq9|dkMDf3DXp%-l4ikT$KLpN zVtzgkJhE-camiK>R>Y+Sxh+W8A?@^8Z47|J{;J?ouv4uKt_hfA2jyJmpJCY;c@q-o zIuPkf^^wM{CmK;Z&{mj}tx8iL{J!$

+D)6EFPDMOo6`f<4y5 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�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 DS%Rn7 diff --git a/src/main/resources/assets/gregtech/textures/TecCape.png b/src/main/resources/assets/gregtech/textures/TecCape.png deleted file mode 100644 index fff0cc22a7152c2b81be625cffa8ad727f4120bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1576004 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

};q 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 diff --git a/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.wet.autogenerated.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.wet.autogenerated.png deleted file mode 100644 index 8cb44c0505caec390010789532d0dff0611a114e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21917 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 diff --git a/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.wet.autogenerated.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.wet.autogenerated.png.mcmeta deleted file mode 100644 index 0df7234a..00000000 --- a/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.wet.autogenerated.png.mcmeta +++ /dev/null @@ -1,5 +0,0 @@ -{ - "animation":{ - "frametime":2 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.wet.concrete.png b/src/main/resources/assets/gregtech/textures/blocks/fluids/fluid.wet.concrete.png deleted file mode 100644 index 208a1792eabeaf9fe3bfbb54f1623db4878da694..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7457 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 literal 592 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstU$g(vPY0F z14ES>14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>-L#DchBCvck$8Vo_VW!=dbQx zxOU=_4HFix?_ad;(8bIDkNy1r=+FQAfBxV8{r|zA|95})Em-saICpUZ~j0=CE|#)Vys|G$PBSQdRs4T~f3c|B2-m@crKYSbo9BDK|g2>hy?qtgoDQ z_uUb>v--u_T;DzQ(UvB{QuOMT3czv5}RLAw+|<{ntZ4 O4Gf;HelF{r5}E**u@3A2 diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_11.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_11.png index 54a5c8fba04b9126176da959d23043e01b20f0a8..983fdda99760d978717bfda0a597543659ce2a70 100644 GIT binary patch literal 822 zcmaKqSxN&z5QZaOz(IY#5fygfgkybn+$+-!tfQ_j?_^NJo+2&504EYKf{vs%ktyEKH+HfhuV-5@b9uL!uHs)fEenq{X8G zOUZIRO7pJ1yU1BX9$65DN0v%Pl9px$qRRPyyj0}fZZA&6W0#BmpkQJl4PgwOn14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>;Ktb|Ih!r_~`Nfo4^0x{{8>{pZ|A%_b*&~=;G!7 zkN*6B@Mpr}_5F+19ldg`Z^4=)m#_Xm`LlcO%8HJu?K78_wNC1tzk1)9bN?^>YM!!S z_sP@$ul=r{FlX0^Q~$60{(s?DYJI@q`$3PByiKnkC`vXQRKHqRA#ZT zevcIqy(9Yd-}NGg303;?D@)25B9=xOpV^f-BkXXRZ^9YJc}g!5R`V`Xso>k>5JM^+<=e>9R7FB8|PgmFP zyJ8`nZ;^ek9_VV-64!{5l*E!$tK_0oAjM#0U}&amV5n9?q^8Y|6TE;?ScIdV!iVo(tmpAxG#}sH$HaZ7m914Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>;Ktb|Ih!r_~`MW3zz=i{Qdv-@BjDz{J;CVf8pAr zSFTN3y7B*`KgX_K|Nr36l;xYNyJt*Yv8ASG=Hz9Y{$Kia{MwBZ*KbZ=z3u_H4{Qv(y&uHa)pi>!>yxm<)R&IRx7sz2R@$_|Nf50fq$7&&!QN{=qTH)#9 z7$R}mw)du3lY)RldyIjXgX<~Q=rfnTJ^lZG?ZFe(eEh|UdJHMgemZ(IEA%|;(Mj-3 z($f**_vctLGsw%rV)=xAr_ALVOSJctFMeX<(#U_*r9)fqM|VJk__oxEW$jLpiIc1! zSur#_-Ch&+O`B_3fN)fS{H(L}K}zdpnse&pMT#uc*doz-=dGl3;;J>aDY@5Gj|bo6 zXE`_h_1k|LZT~WT{#DiQV?8Al$IZ;K2k2(i64!{5l*E!$tK_0oAjM#0U}&amV5nq-Ja6vvHTppQL5Pv8Uez1NANAR?kdOEIm4+N`iFyHJTxk%f8NEM4y{B8Gje z2hdeG{pZ5AiY;e{Gc&()=6}x2m83H)R7AF++|b(`E56EXgL>t~A7$Wlk; zmZAWwA}MYHGOlu*=y2(bsN;Jlc5ny#WQTJ%_d)>dMy(P`Ffw6Z&A;* zCb5t*56P2}C&ja1DLVmnA@I@^S2RDcnt6KQh+Od0a i-~t~GDd5`?YClrviM?C-p5bsGFUNRiPYBpotMCi@h^B4; literal 603 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstU$g(vPY0F z14ES>14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>;Ktb|Ih!r_~`MW3zz=i{Qdv-@BjDz{J;CVf8p9g z7cU>Za&6MmjsGA0Id=8>{|A32EM7ll`R4vb>-rX~Idb`Gb@z;^E4FmcU0KmFwWeq0 zp1!W^ z4;W?nSS_S7${2w{t2|vCLnJQS_H_z1DTpx0i@Hy9&`L@ziz-W>{`dd%uSO;532m%m z3?9pGFYXCG<#Jz{Swbj&mAq8D46A_KF^Q)WR2p`O9sB3oq<(D2`)N^rP9k2Xo^?41 zy6Z(4`zB6HT+Oz2o_@m4LrY42yyktP@kT$J*KX>P3F*s@u6oPYRlC{fl)a4q+5?Yn z3QyM-nHjqE!uCs_-|_dD?bl&_d|rG{=L)T37RNgSKmBA9Tp_$n)JsVV=xWsx*NBpo z#FA92S5RUi)9(@F#pby~P2NHb&u^{;GrQks=77uFiCQ6A>DQYY=HAsoXqdq{B z2F7n@)@`~343lAY_nU9Onc2mq+N>vE4SoUtocU+GdD-{Oxh~ZIe8;Dadfuh%Q7oVg z=8IuRm+&0|EPTFwkM1vyw~B-u8xLvxL3v0_B@DZ3%Sed_5AEho@hSL}3Tp{*N?%f5 zD2H`vbWOltwe}{k5*{~lN@T$Q;E{++;gJ; zEl2rrq|1bxc2HlP;8X5NwTUEjb$@+@^+-P}kVDgFE*yG%8oUMPN1L|!*tfA0C_d`n zU7l>?NXZ?Hv&7&GUhB1$PLEr~Fn{o;$F>p3QbSyRpZQsT89z;~DXJFr_QDQc5hjQo nhpk*YPR|ZEfNV7z@S`@*8skHU^)+%JF`iBS#E${6uk`g7&7-$z literal 535 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstU$g(vPY0F z14ES>14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>l{+gt*RIvASp8s{dPl z{NMZI|Nfu<5B>aq?C1X@KmVWp_5bXz|L1>QeDwIxg-ic${{Daa_y7BU{@?xGzi{o* zE7vA1-T42}pJP|A|9|jj%JR+C-7}`H*izFobMmrH|1bSIe(lDI>o=#b-uD06@BdeR z|G)67vUA$a*Khux{CVKqh5!Hm7jW8s2D*VU$=lsUU6+4_GLXYw;_2(k{(w=IkJUmd zql^(KG{@7$F+}3BZC|fglLC*M`zg06%{hT--;!_swof{Iq57Ofy7)IkhRrLpx>Iy_ ztu?p4F}uxKE$ib!hiZ|D0SRgrXPtrqS>8sz_m-X+*lNe4y+T>_gS=D0%c3x~XOd0X z>nFx!Omrg!AM)fevknI$^w$Cq;}Uj)r?t?9kDTH;sg>5Gbc zd24!RtGOuIUYPZs|H(%FPvP6I>jT}XTH+c}l9E`GYL#4+3Zxi}3=GY54GeXSEJF-U ztqe@9OwF_n46O_dlvmsnLD7(#pOTqYiK4;8%Gk)t$Pl8z+WzYypaup{S3j3^P6M`gNDg4yZe1J-^}jxOkv#OuK+)Ve?tFb)+Fy+`dk*`zdrr_(qdGn@RrS` z5azI9N0#t40?d27gg@R}P5LxqaX@j8B9Bxm&al2PCz+E0CGU(!V60Dy(q>A7B3PZi z&y|K0W55WwqM~#(_#ZqdD9Xgxr>Lb^f922CVzp=|ykI>jEdrzqEG3ZqQi$cLxk10| zGYd)bjU{2K8qf3`WRPhbdXV28nmh(FauH^!^b1~wz)H+%ZXnm4>NlOTJVQ~pz}YlD zJ38)K&u5qgdaB1zeqp4F&hMyK2eUVq4z`O&14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>b^FYnyJzp-yZGpF&%9N=^H=vT zTsv{eh6#(;_b*!a|Jcv}kN*6>|L6bh-~W&N{Quz3|GU5cpZxj%=I{TPe*Hi6^Z)*z z|Ih#WzxT)gYrp@W{`LRL@BbHmO>Eak7aoM%+rcjfC0LyjZ{O}G-&IE%+|NgUEEmZn) zIBaRT5$DCEol*JQj^@={%sV$-+wlIWRYFq*W_+LIskOlP*bSX2r@0O#&hOu9D8$L~ zmF38eSzbDo({~A#?wZV^<-07?`cu?WzvXki{1q3b%`xkbe2{gytxhPTrcI){i=%H* z9j~Ip2cRbuy`l|jEvodFZk5>d_&xu6De;fHonrfdj#MpijVMV;EJ?LWE=mPb3`Pcq zX1WH3x<-~EhNe~qrdFnA+6IPJ1_sJ2?unpi$jwj5OshoEU}9x#WMyOs(O_-=^$<`4 NgQu&X%Q~loCIH>e?&tsj diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_5.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_5.png index 76d6f6c11c6b9c0a9fbd3712cb0006cb63988fab..58b591f5a6f0214de20fde7527e93d15e42a4bf0 100644 GIT binary patch literal 822 zcmaKq=}N;u5XU3FfFFGXpP&!mcV9>JlZc3lM@v0G&{!2ktp|t*Djw8Ujny8u7J`&W z{iqMnCV}z4GjS8^5hlyb?r+ZB-o99;!Cwq(5B{#;?=ZS~-w4jdkoDu;-Z7`#Jhd#A z8)`waEZ7kfYleW83RhSUH)nl^+Qh4q_d;%oR49(HFfo|BK8EQx$bV%XiWY~IOO;)U z+~(<{@3 zhYQ6cwG<#-z!XK|OCpC3))UW_tm0*#y)cvC#iotLvE*ofz)N>O;drS~m&C6Yfyq=p(>1!aG7X|aFlrup+ z+U0v>?Si414Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>;Ktb|Ih!r_~`Nfo4^0x{{8>{pZ|A%_b*&~=;G!7 zkN*6B@Mpr}_5F+19ldg`Z^4=)m#_Xm`LlcO%8HJu?K78_wNC1tzk1)9bN?^>YM!!S z_sP@$ul=r{FlX0^Q~$60{(s?DVRy6*qunb(r;^PKr`;y**f-hU1g!@AB~c*G&VU1l05*01j1SfJYz+4949X@|!5 zw--N`s0sI3y2t1iB_6I}^gOoHaZUU>7Z26#BCmN>#9y6zku+hsS7%G#i*398Jht4B z@2gkrRnI;rZeVnSqkiq0y>}Vqe@>sO__yYuw6B*-)M+;^`}h@~1OzJ%CtU2OC7#SFv=^7a78d-)Inpzo{TA7+@8yH#{7$~o}CxW6OH$NpatrA6p ciIuUDm60JtgSGwFLqH7-p00i_>zopr0P1-6^Z)<= diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_6.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_6.png index f9fdf7531636bfca284dbbe491bc3bc3e5952805..ac2ac3818fc7e4b647f82cef5b851a7c9c488b8e 100644 GIT binary patch literal 822 zcmah{%Syvg5UuzFF8u_*pdaAg4^rF+Zj?f`Ld8wMsznr^xD`c1wNz`3eMK!PttdV| zph*McxidGnN{WWbFqxb=bMDNYoJx)+_({S~;2qQNNMfAx3H@I_#D9IdAMee#*V;?h zX?x|?^NriM&Mr)^F3vo<#b*5q)~FR~4|dhLtd!4ptkiLS`>UI(BlBHm`D8<^{W(AD7a%QQSX%eVgxYA2oDBTQrBQG z|Aj{tn!=;XrNB{D|KLqWR@;9f|BUsBa(Fp~34~u7A?cBCGd}8z?jRX%EXlu!@LWCw z+2Xm$!J!BI1)Wjz$gAv literal 562 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstU$g(vPY0F z14ES>14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>;Ktb|Ih!r_~`Nfo4^0x{{8>{pZ|A%_b*)g|IwfS z5B~f=`Sbs!U;nTD{(t57{|mn+FWWR}>Bb3**H2usp?}f3mT8L`C(WzrnOW5}y|Q!K z&DU>kynJ=_+4D<}pPak@;LM%7C$8T-dGprsYd4Nvy?*5K)x(#r95{F3|NsA;Q>HKh z-Nu;Y?e3zld__SJ$YC$>^mS!_z$nYdY9WXx`Dfm{!_?t9$!n_T$}d+sBsnH7PL<&mW16C#!(!NdsC|V8 zOI81B=a4B27RV}m)c-RzC4lW+lFa=L3%q)sOl`ST^^V7^;$N3gol1m{yW{f8)Jcv3 zkMCs6ZCLgoe8 zC$`114Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>aq?C1X@KmVWp_5bXz|L1>QeDwJL&ENlT|Nejf&;Pr>`xmbL|LD*E z2Y>#b{Q3XVum9J6|G)D4|Ak+Zmu;%-oObi|n*--A{Qv(yX}(bs&`sf14dasRtu?&GDe_KpQnpsh{R>rK5n5y3Op{tnv5G68?*l2`9CjDEB8Ln znGZK~1U?@1jcfWYw7xU{h)uQ`*R*>xmo(V~@H$^H6LC5G*Fr4Rk?CL!!$$Fc-b`Q9 zV%;`M3a_|wa8Jdnol)th*WL>DxH5TKsTHf+bJd;B3qDRvDiIO9<5Ia!)A2+0|EE%_ zduH0nREu*m&aU|Pk756OUaL#n1*?EAQ!R0gC`m~yNwrEYN(E93Mh1pvx(0^2MwTIl zrd9@~R;Fg!28LD!2Ffe$iJ)l6%}>cpt3=UYVr6V(Wn>7^U~T{P5Kseyr>mdKI;Vst E07PKO4*&oF diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_8.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONII_8.png index 1223f4c109a49932384460cb2e8afcac454535ac..10ea4d8cba0a811955975152fd3f5f0f8e5e6149 100644 GIT binary patch literal 822 zcmZ{iX->jW5XUiIz>glm6LdmV#IVvHIWTo3^@Dk5%Z-8C37F$ykhB9ygYEkUDk zIRTJ7|9w-NDxsOa%xix$Z|47|qqDu)#GiJoZFpO>x5?DXznirGw4wF;OZxoCzrST( zU&N9Um!D!%F612Ro*VBeNa1|;9+u18Wl}e3F_?&7VSBted$eIYShF6k&ych4nTGAH zPJ5g~F5AGuL?6PDRhVRe8`-HhaBt;>d zLb9BXvL$POB;;?%BMOINMU=!UB6HgZqu~qGuhwI%q~7P%3M-TG*d_H#d9*H23AID{ z=^%wc5U7OSp^wIwS+&@}B(||IVjJ$7xAdy@PCA>dUOpz{tBY=+-HI?h9`JnQ(XGLpVghDB4HN V$;WG)j)5r_BAD}M`QfFU`~k~Fh8h3> literal 646 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstU$g(vPY0F z14ES>14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>-L#DchBCvck$8Vo_VW!=dbQx zxOU=_4HFix?_ad;(8bG>mTvt2=+FQAfBxV8eeCM>{}295S-$!I-QRr+)>L=Tn7U$1 z_uQ2g9aC$1W=>wV>Hp2&?K78_wN5&I?Z&<{=ccdT_W#na<|zwypFI8l+VB78fBirG ztA4_qT_;Zczw-P4g<<`a`B*KaGRhc%LfbuE977~7 z+x9*eYck+*d(6bjektr$P@stW+#TO*{Xf9^JZ_!-V!cZq%USD~cKj0TlFps8JXc|6tAoePxg0F}zRRXANOmxH2^U)8 zxSsza!&IZQ1tx604z*jm9&2Yc@cp#+GEqqYao=NImzx_9G^V!S6+4n2<+RKzn?UK#7SP1ljYKdz^NlIc#s#S7P zDv)9@GB7mLH89jQvJ5dawK6cZGBwjSFtjo-P+oCQ1Vuw`eoAIqC5i?UD`O)oBSVM= UYx}QeW1;b>Rx%bSuXXf6)p>S_VePQ?k{C(cv6Y5v%A#Yz2@!wz7-FU>!l5?lb zAP1%^!-}Nv83N3Fx_l|$9Bt1v>lCntMU5J{CNY&_SeO_=Nwso&lALdTD7;Ng-|ECA zMOBg`7nY@;a{@lCEw*57c$~;3We@xh9)&m*9#vIx3tR<$=x04XZP!4lMLW&~ z5D30pyguHEVN1vZm_Uk)^YGHI-)ZM{ix}oN{`B}`1hQ=)L4KY2S${jelUzzfE&45( z8N4EGb!u-tdXSib?Qc$tmq6mwMic->CgaJ(N=jQhJJk$5jq=j7j;9zKAI|5la5^4X P?e*Szdw91VKkfW4>kp=G literal 582 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstU$g(vPY0F z14ES>14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>-L#DchBCvck$8Vo_VW!=dbQx zxOU=_4HFix?_acT($bCpAN~1%|Ih#1zyBZkdF<--{}295S-$!I-QWL@{jBbuF?Ge3 znx2`Hmu>og^Y{Ntzy2TkdHmXq|NDPVU%l=B`CtF{{`i0G_y5zs{$Kh1|H7}EuiyMX z`SZZJ3;+NBcUXPD0_aZ0ByV>YWAm#uaX=1xiKnkC`vXQ#Wz z=5xu!dvnh#%|wB@md_8ldbOP9*ipoxxa-oLtvjd8Vz3pln-%uvgttImYw67=W$X{* zCI#&ZDP`7WOx@abJD4N)VC|F%{2lXykGqDJ>+_%Z@vcWPK*O-<&*gI2#%*)zZc6tm zHtQQ7USO&udUwNp`L{iiY46#WJ_9;gwZt`|BqgyV)hf9t6-Y4{85o-B8W`#tS%w&z zS{ayHnVM-E7+M(^D6hCDf}$ZeKP5A*5=DcFm9dePks(Bbwf)yaKn)C@u6{1-oD!M< De}@N5 diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_1.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_1.png index da68d56cab625114b3d65cb225ef965300296483..5804a0aa2498c5ab547c772cd6610b89d40cd3e8 100644 GIT binary patch literal 822 zcmaKq+e$)F5QdFjpvxYiC-4Ef_o9n}h#-R^Bq~BeO~MXXnPu+E5J~eCmSl&Eg04E4 z9Vk=tTvlWh9Uh`Tf7xs_+{{|c%=+eEvlr8>kk`vfpB#G=RzrE!$r?*}S^1m+_n+_F z*Jt+QJ@r;hygWw>k2kr@rEONbYSQI%SK0IhER%|)?!(E%SuA?I%QU8Jlj%WzIb83g7Z$;NFXq8q?7swH% z!Zh3=GExUTOV%b--~rd>QHx8lqsnC*u#feks)oMwE_Uml8PfH%pdTnuhk1l_sLzX# zgiZFhfoGmo5c${Gl0nr7Ie*Hx-f4r4jy(o%y9hv$bd88bA*EHM~A^k h_#hEG#pq%bm!~!HyOVVC9OM0vzs8(D6>f{K@n1<=y9)pS literal 601 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstU$g(vPY0F z14ES>14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>-L#DchBCvck$8Vo_VW!=dbQx zxOU=_4HFix?_aboGQX{6(#ndyr3D=e!*ZIdC$1>zUL0N2mDe^ut!`#$RzqNFRbu5N z-^8-4rn#{tJsAzNld7gBR7{+_Y}2Hr8(XF=YMeB$re|hV*YumO-`sfl>gu!SmmWVk zcmKi3o41Z%yK(I5^~0C095{F3|NsAz*+P;)mop}LySrFkXPD{$%fXDT*Td0e+?v|xGT#uT%v|s(NpQ(Ad@$-e5^X}YX z;Ava@@rdH(n|ER>PKyTY`X>3fr?`fBzLSPPW}wz4r;ODB8FOyuuLtF){2nt&zLdEKwgBC%TH+c}l9E`GYL#4+ z3Zxi}3=GY54GeXSEJF-Utqe@9OwF_n46O_dlvmsnLD7(#pOTqYiK4;8%Gk)t$Pl8z T+WzYypaup{S3j3^P6F=+~ zZop>K^{-9$K}?gq5aW0cgt>?q#=3!(is#TrI~!5E&>&%}E@YYV%nqRxRoGnBXD$

IYrIKtNp1U7w&SV|atwA;oVP1&^{@&c%E-`4^8|G=)ZD z&@|y)7?#||o80L?JZneOD#7();S4-Y4oz`pP3s#=9uP^!PTj9NW`}v{%02fud6951J literal 595 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstU$g(vPY0F z14ES>14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>32~jbV)g7LD;BI? zw|e`oZAXqBx^U^p<*SvQ(<<7h96W#V=#^_HuHQU$>-L#DchBCvck$8Vo_VW!=dbQx zxOU=_4HFix?_ad;(8bG<`E50mR#x;aE$CQSJ#j@z_u{?#ezY z=L>%`=UYhmFFP_rzD1GW@_0{^Bq!&}s9B~Cv-BS_u>Jle`T9h&bLL%_5YAPh%+L5# zH@x;*@G*(A!7ElfcCBXMrZ*<1Jmx&=II+LylX-nZ#;&_>>lu36&&c_wB(8C&Ik)-r zSGPC!{upgvR3QH)#muusgNx^5(tG|7e2OC7#SFv z=^7a78d-)Inpzo{TA7+@8yH#{7$~o}CxW6OH$NpatrA6piIuUDm60JtgSGwFLqH7- Mp00i_>zopr0IK5soB#j- diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_11.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_11.png index 0234f682cb23c7a7e3ea6b14b4dfa69662b62953..2d8ecc34a306f8b8313233b6b637684b73324514 100644 GIT binary patch literal 822 zcmaKq*-AoT5XX&PpvxYiC-4Ef>B@^P3?zySiZH1N5i=>%GD~wgr6J{>q1k>BR1lF_ zSt7Y>6h%hS@(}%Tx&Va~_Qe7{-FoM{ya8wJ%zh_eN6Q|)aKG*|tC+C3R`etnid z-b-(<`Ik!O=`rj9pQKUm1c!L$AW(3kQ^G=pr6XLF-MY#_WS%qN>ZqkdQjk6|YA zW7ELngkW6ouv=2taA4vV>jyp>_JEg5+LTg}y02X~C`LuSyhAG!L!e`Gtjcce8?efA F`Ws0oychrg literal 626 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstU$g(vPY0F z14ES>14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>Si`iS+M)$ z>8z%?iItP;C(PM(;#5Y%?4+uxjg#i>JbrTWvQ3kgZk)JeL(8;9H9a${x~5llPTO|) z=*`z}ZoGVT_1W`FkDr{o|KQA>yC<&SJbClh@oP7ZUA=zz(v<_}F8u%h-)nx02hcl= zN#5=*4*zb(+yHXeOFVsD*&i^<^08V-Wt1@jh1PhwIEF}EcI~|>)}$cfs?WP@W&`6i zGk&v(uv;-<|Nn=_`WCN0$~?Q6k6}sB+N)dJ)@8e0R?$^BvPh@(@xn4`lg14)UR;V# z&TEJW-T$n;+>c$j=hC7>L4iDJC9xk2{ERPrij!ycyCjosz|!AY5^SXTLAzBnQ0Zny z4A+{d$uHmN7Zkpe?pBqMIKvXZw$}It!_BrVajoMUzaLcW>MyX0U$_0Ya^F19Peu3V z>qmVP*}Sjr{(7LhRZCnWN>UO_QmvAUQh^kMk%6I^u7RPhk!6UXsg;4Lm8q$=fuWUw sfsn(IP81Ef`6-!cl_(latc;DUj0_NP0x4Y^U zupRLbTVYScKM~SKgKh`oh-`-3s2#?Aaj!i#JG`MeRIrS?EKANFpRH4~c6f)|-Ims& zjwbj=iGZRh0AEIy$IS2{|IcTTKP5A@GT9#->1GOj{NqQ-Rs`ZUJT++RYL@+qj?@tp zAo{daeY~%Qy>mXoCnHiZ#FEo&Ty)v-BfI;{0t!I?{utO%;2fbesf^MmyT ziXyJM6~W|yN%-O)j@p`@FJ=&gFMi-lKm$~qqJ@9-@vrCWl@%7Z@YAUiUJ=JdMRf(} n_fD7R2Qv{5k^4-I+%?xX)@#HhIvh0t=Gl0L+IVl!im$i7i-^0u literal 594 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstU$g(vPY0F z14ES>14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>;9E zW+zomov?WQ#3dX07p-fVwy1H^ysED0m7UXWzJ7D#<*TdDo?m+W#IrJt#!^_9W zd&@V+#Q|!om;CH%I`_2W(V5n)&+}FKuWdEv(#dxx{l%g!q1-ZHbB z*R@W)U|&rBclWF1{%bd1|NWVD!fxSZ0ZQTBKv%1lxJHzuB$lLFB^RXvDF!10Lo;0i zLtP`w5JOWd15+zgGi?JyD+2@N7579?H00)|WTsW3XfUxdHnK7@glMp~|9S|hfx*+& K&t;ucLK6UQc=PoD diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_2.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_2.png index 09045448fba975304c1142bae7ba387b71b125d5..b13be5bf8df69bf31c1ca0d6bfc9cb2132db58d3 100644 GIT binary patch literal 822 zcmZ{i+e$)F5QdFjpvxYiC-4Ef>B@^P3?zySiZH1N5l@sUnWcHyX(i<;u{1l-0il8j z%hU?dOwHT6tcU2wkzu2@nZ1}b>zjYgEM`z9?Ugh?Db@k}eXYMo(%+0rTIaN(_4lW7 z9CA7}V;hU3Fx$KWW>t^Cc#DW-Rt~IGeE6*8E)TcjE?t|&9Ga+o!Ecy^6e(=4>$8vP zMm>L>@F%=R@JYeMhAmR|%ri(4^h&R8A|$L7ayQ`9sU61Hq3e(mw5Y)2mVM9iOaAsh z9*MXVD-y%DxxmtN#Akgi+@XHd!?Il+sx}qgEWX`SzobKP2$DnkIHK)&%u}sA1)L_l z5Aj&>CS46B#RF@?s&?05L_O49Cy9Q!@nq29x9jTF=Zm;NL97gLgq@R!3-#1KvR6kw z1WBAvJDsxwH(=taelXm!n8&41BcAF3PX-K5*DSnGrJR92>KF53W%i+uc?17m%D};M vA;PERh@)TF*$DSIOYx5_gDE3S%bR8 literal 611 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstU$g(vPY0F z14ES>14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>21s zKVX#QW3`aVC}RW)t?_hm43W5O+t(@7q#(i|KXpMQ)5?yiH#2XhrcVF+zx}IGNqRyX zs~CgF^4ps=Hs`+j5^L0;_;JS%#ljC0`5jkG5n}VJ>Bw66<^GY1q@Letnm<(>6fN@C zafk$FG?`vzNz>exb>Y-crfJ$fMa|pqIkY+b-xT#QxR5DwRn(Rn?-cHvYpd=#{P7Bx z&OGktMXfeh7m0le6MOf!@#3@TOPz0iX3c*TBD%Eap^NUPpG@;7iM;r%Ai5UlZq*Xk zh?11Vl2ohYqEsNoU}RuurfXoRYh)Q>Xli9(YGrDsZD43+V4%F>o(PJD-29Zxv`Q2W dCRWBqRz`*p4c7Kw4*@kWc)I$ztaD0e0szia|L_0+ diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_3.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_3.png index 2d535f107ffe7066d60d18f7bea1f19d6dd0cdd3..e500b1033a08a21bac56f2d1e939fce4b2a08075 100644 GIT binary patch literal 822 zcmaKq%SwV_5QdFzpkvcgh@q+cp}6=DkagflE{#-ENRh!))91A zg+*y@Ygrf3gRcxyKmE)<%s2DS`_0TZL+-&|SNj`85AgSO{vKC<+wbbcb&&r4YMquc znc(>P(ioCj@FFXLQN)gTl5-wl^{1Qn#>2(YW@RJ%OAgb)^6FwCIt7&&w$~!0w3?4s z)j~BF1Amf_n{Xs$FEL9>KH|%TCrJ$X+~BWkI|egD*O9WH^n(ZdKb}M`MU!}tnlCQT zkOe>WQ;*R)8mg9dqSGVlS3L4VC`0^&%+Jt@nK<(i9u0}3sHBA7vzv}lkGlJdq+e^C zDE!U0`}0a(PP75cV}|gJ*SpK(Eu12^sH4Hd39tIWSZm#QE)^Si)dOAv48t*t5cR`P z{oVL(X0yc){-u7)7BMb77M0Q6JJGXp7G$kjLI=FVyfx3q-f9~eHG<9BWJ43|8?euh F=O1(14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>H}m+l8z-*coW6QnV&$Z)rnwmn zvy-Z(R(4Li`T9+CQP+WU7ykeMzu{VWD$pg2N#5=*ny0q6ssK6cC7!;n><<`a`B*Ka zGRhc%LUTP`977~7+x9gIH7W44ZNK8XNhZZ*X5_Tg_y1dXo%io9+|K{anBh)JrDM#r zlx?E#68g8^=(s$I*{S%;z1uAuhcm_ORE}Pl^VM#vUrWdf=iN?LlbHT1@=P~NbB&pk zxT8!;v-4M&(|V;NHy%6==c#=i-ZWL_UH{V0+xGF^)H3;KDY1AFZ<*LTQ@*KP`=YnW z@P3qj*qk=2W5(A7O#AKg`~($tiW!Il9jaR58c~vxSdwa$T$Bo=7>o=I&2$Y6b&V`T z3{9;JOs!1Kv<(cc3=EW4+!I03kei>9nO2FS!Nkhg$jZnNqQTn!>mi^922WQ%mvv4F FO#qcg(ro|$ diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_4.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_4.png index b9890766268d769dda5f96c36d52dd39c34e3e4a..e887123149a24960f2d84d3d2e0450a9b0953f01 100644 GIT binary patch literal 822 zcmaKq+e$)F5Qca30$uh9J%JC$INg$2oAP^iT+lgLNb9q2ejPn3HD%XadX~Nfz+%!IW@HG>q1HtR;In8yd51g zBct$f6bLDa`FkmedYutZCxs(UJ53cwccdL9YXKL0$hG;@(iBT!A~>)*-a}OleZ7}V z%XNI+EzBd6VSkH`B314Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>b^FYnyJzp-yZGpF&%9N=^H=vT zTsv{eh6#(;_b*x(ncr43X=O#<(t?hKVL8p!6IYaUFODwi%4?gSRyQ*=t06G8DzS2s zZ(>8C_)^0vqw%uOFKRs#R6W2ho)XvJYGh0}+7H;))y0t_>=iAGOOx+0% z0lf}9t2Z8*uz90)&{6Ba1wrbsmZ>gJd9&rzsUIRjMTfL%XS1xk*8ASA@z`$ug^L>= zD6DdSKVRU_um79)52g6z^PS^Nvcgh@q+s70BQS(>*pkn)xonq8npP(ef` zWrZYG(6*NK5Pdju_%Z8e{$b9XZ!Tw;UW2|<*ZB149{#T8-=XVn_;t;DIf(xLdf!h4 zgSMfy*+IlNZ9=@(0Yn|~cqWZt&($mR$=*gj0 z5S@d^P{NUrZTAErF{e4|7)iyJDtBiTRgBh3?J&;R0yr6`)fv~Mc0 zFrL};K2|RN;Z-^5wv=A4K3&2~=Va`V literal 567 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstU$g(vPY0F z14ES>14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>Si`iS+M)$ z>8z%?iItP;C(PM(;#5Y%?4+uxjg#i>JbrTWvQ3qp)3zNxdh_+01LrRM|Nq}))#|B0 z7cwS!ySo_Pye(S<A3fyY&NYrq=c zfEC>Dysz%M|G#9})*I%`#x|eq84}jpdra{QPHmIyV=z=-w{cU34dYXmJjI?vKj&+@ zRP4;}pSH|+X2K$ghfzlkwf$sj>IrU+*d5b3!7JB@^P3?zySiZH1N5j6?3kTS{K$dJfTGpy+I34)>z z2r0|dD2j}tkB8`oBgO)rPdjTHZ%gfMGPPForrN#)vi|;* zzrRYKABFcy{`DpI{B&I|UdHA6=FmyD!hvk7fF9`;d=2yochyRG@M(aFrB8%H<7^n!EEKfK}{&^)%NyC2eJ zGlwR6bVhaHrDQ!|hX-!VQ_G>ORBZ%D<5NRaHPBbjl5Uf8|mjHB^0_m*z!W1?qjoF};5P`BDQZ z%^)beIyy*oAcjKe-@qFf38h5 Q!{^#WTz%X(u*%!*A7jX?{Qv*} literal 569 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstU$g(vPY0F z14ES>14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>(oHVbdXJ%E`^vcd@ zH($TG@$%KxXU{J^esb>qgEM#Tp16MV zbRlDsx4Vns&D*j?Kn{C}r>`sf14dasR`agw*%N?53p`yMLnJP{_TCh0GT>nqKIr6n z=@OHkg4T}i)Bo$|t_+(|{At3=v$_m^O$AzuEX0bYJ&+Ly4&poOEZJnx^GU!pPU5vF z_v!a_S6!NfWkQ&B{-T>D`&hHrK6akKZ86@e zJfK@uOI#yLQW8s2t&)pUffR$0fuWhMfuXLEWr(4vm4T_1sj0Ssp_PGwki(Hq6b-rg jDVb@NC>l(xjE$^}3?UkbP0l+XkKsvG43 diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_7.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_7.png index 8f307b521701f0ea3a1c2ab72219d2403bc43fa8..9193deca081b2e480d52f6d82e0bfeff94a5b16c 100644 GIT binary patch literal 822 zcmaKq&q_jJ5XEow0xf%lp1=oa)5=8)1BpU|LQE<`L@h!LB>#|T6hvf56l%2b33>v_ zrQ2NEL-fNV!=T~i++k+EGiT<`{Wim))nNLBup7K$rzu&#xX6Nu)O}B5(?(+voN#UWKlXACt*=bzB$1xC6 z@>EDr(#*vh*%*bHc$lWf@s8S2@?1>9hrFCmElsf$zLZWLua2l%qVIcYT0SR#xXnD8 z9IL!J(pMvrKufc}93k>AG*TfMLEmH-nS8I5wO;hutumJPq4!Y}UrUgY(|B_$qvx$4cf17HV4fTp_@^$k?eITMi+opY1x#k4_7lif-|*`F-45 VhD3)|1AMMcJ+se!gEsyd{sBy5n(6=m literal 495 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstU$g(vPY0F z14ES>14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>C6)-Mjj;c{;CV zH%iLQW>wl(@>d~G=4ib7KEcmx4t7LTrB7mUa=vOhu_#zT^7~tfP*zTs!;DAbe&`p5 zY$}z!nC7z}Ncyu;5a&s&;u9z5IVsJ3vf!_#ftCJNYZfW_tH1kfnr3&L-|8pu=T`mB zs>1wb{J(=-<{VaIuCKRM<+ICe`@A0LG}RK zXli9(YGrDsZD43+V4%F>o(PJD-29Zxv`Q2WCRWBqRz`*p4c7Kw4*@kWc)I$ztaD0e F0stISt^xo6 diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_8.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/FUSIONI_8.png index f47e861ce2b75733c8fc4c084c43799c8c73220f..d172b46f89f696084853a9fac8abd2f63a4cfc8b 100644 GIT binary patch literal 822 zcmZ`%*)Bs-6s`CHk3PW{^aH&61PLBQJcx%zZikp@X?3_-G}VDBmrISQs6^=8s?ySt zA}Yl25mvgJlP0a3eRtN`XYF{0z9=|^4VzbV`A@}2$cJ<^0i$SE WbLrbFoQ{EcEG01K&*huSTlx=HdfMgy literal 649 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstU$g(vPY0F z14ES>14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>-L#DchBCvck$8Vo_VW!=dbQx zxOU=_4HFix?_ad;(8bG>mTs(>w6daaX+g)rV^^8rP;)y-_4vS9bg(^*Y(6Dudhmh{w5 zn6vA|sf>o%NmWx5Dke5gnz!@#$(Cu0s=B6cJACx!>o+%EzPkGC`K8BC&fR}-^5(6> zm#!Q*cj5p4{~56djsd;KnB?v5;_`FLjDtW9dx@v7EBgaRSw2?tuIt$ofI{0nT^vIs zF5C7#7i%)$aeK@l;?gRX>Frv0eed^gfA61cc<^2M`4hFBj3=IQyZV}YrCwfj2cK-A+L>9dCWfZ4Ub*!sA6tnG5D!0Vm`~l|8_uy8k3$&*&#ueI-64t-tA>A>r^}r z`-xZ8hIE-UKjaW$lFU{;93H|hy0KoR{8)nTroN8{OU(W=o9Inj{grKv$0wGS+jooV zEf!r_eq{N)=kxgXZZ2$m{q|qQt!agInxZe>pBI;Nmpb2LaZeEF1=SMQh?11Vl2ohY zqEsNoU}RuurfXoRYh)Q>Xli9(YGrDwZD43+U?Ajhq!UF$ZhlH;S|y4G6DwmQDV6(QzJ|A|_*UqufAYHGzAVIle&pBY zJswNbSZ^aX)ZKs$cGhERNygP-1iQI9e9WG1FHbE^Sbtf}ZHbQb1nn(IiNf@#jgoxs zY&Q{1`1;{j{SIX;DG58D(K5H|DeI^6^o;IT}707Xv%(=|)!2k0Uawwj{$WT{k zpp7c@>7Ra-Y}r7%WgL5Joy;pbl1ESi(PvBL`Dh`JgYP3e9+9#pEji7`S$9AE$aH^6 z=2e5Ui+(PX-dgfY60ZQ2QGxK;hm)O^07(&7yJZ7@obb{=j2f+!=TK3Dmww>IzzE7# zu|@yr(|;*ns;pwshrhcy<`!v@@%5;8Gw#DSVw2(}kT|*M1^6Zt^NDyksVyArYw6S; f<(c~wS1~Yby}dr-bS~KQ(|O_L;14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>-L#DchBCvck$8Vo_VW!=dbQx zxOU=_4HFix?_acT($bAJlU7#rEiLF+7?#s~?CSOEi7Tco-(1qYI5NMjx_idd6wVDX(pQTHVahtcK&)ZUm-QO<%n&v2v1cVp&$x+}M(yjE31sRZ|lxCfAh_?vwH=O_6Llze5@8y8D)$>p%tDkjv*44 zZTqstn-qB3t{>HT>y*XVtrEOhXVaSh|8GmlJ^H($_*;)HbArh{pXNx5c$bewTkkm> z*ycGaEpuAnT~(e%w$EdBcyty>Fog3dy138UZ8kkfctQIi_sd3=bgeF z?;x+~tM)lKJ4CL1^i9MmxIkX@iRh!-`yVe_b$d5^O3jvI0vb~!9R9tzCEmE~&;L!v zQqFAoX}{vKU9^53-e>>ruw?y4>6&vuH>;MoMwFx^mZVxG7o`Fz1|tJQGhG8iT_ej7 zLsKgQQ!7(5Z39Cq0|Vt1_e4-MV zK~y+TeNszG#6T1*hsfwk5Mjt9Gj3hz$|H!U@BrdX#4~t~IftMwGU>Q*;eZQ4M1)t> z>Y_i%sMwoyr(b>gz1mnT7GIJ;5i~&}B!NcA6Qn>AWc;7@UJ!{w66X8!03cx$B!iKV zC1Qpz6QMyAoO2kFp`d9R7zxtQH0_!)MYL_3&(1j*4U{5*i1};|#e&(a4sK)_R8>{5 zPGVY3p|~%?dzCL0Et`VfL^^bn+?g01(6C%CVX+64AQMFU6WlqM1&hR1*A=MHpkeVZ z2PCFt861izlnYbS6wd0q-GhgX6=X!wUs``bgK4PVlZTuT_fH0F*FyqEHS2>U^}R~>Np-MDE)l<&EtCpzP-KxK$wDPsH-X_PBBpbgU25$oL`)wNbj_PYL4)L zUTdEnM6UKRiV002ovPDHLk FV1g2^*}DJ$ diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE2.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE2.png deleted file mode 100644 index c1439353f4f3dfe5e1d42271371ad883f3282855..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 586 zcmV-Q0=4~#P)O%BxRA{G=8lV-n|ssLZ!>4kobQ|8OsU`R2T7O=b3!sCVa|{@ z%!HX?HtuJ&7c!$FiQbW3YB0l@kQ~koxh&Yy)v`c`OvG_a*(@Cx3GkKl5mhR^Row=NJ;(&nIs+Lo00dPQYlc*8ntSbh50(`H*e$R zr-F+3#egIc<*j$`XAYHkj-Ea{^?{J%KfZGd?>$SaCvpPFDX!h!mu4^P)FiQy%A!7$2;i!R?X4Qa!Wy-RoBc*`(d`?J6!F;~F#Vm{Ea@p+5vLqD9&Hxs( z=?v$9>2yD-aWqMj$s|da7*EDHue<5JZZ4fAhm+hIbW=^OF08CT!D6u>vInwp7%Tpp zd{LGSVYf!x-=82SgEoV=6iAGVA}O@!x(TdJbK1LgyG`CS);L7>_`^AH&f(K1?S+Ey zCVLB>>O@#3WIE*UqA2seclSYj>H z*?shw;ofc<8z7&)UEX4^s*BVwAy%suaxSFd-Y$b)pFywBK~b=y%Le4^`>%#^RE!9j zuo&JSrlynV4to7Y_Sxxs4xc^e#nG$gY*kg*$uQ?Cl_U3p`3HTEfBK3BWGnyx002ov JPDHLkV1i1#UfCK(u z(3POsh#Or*%w#5@q7aOOAq2F}t&WSDX{VXoRaJ4%SLfba<(8M1_sk5LkT=YPnISJ8 zzy1io&h~)D?sv+v#6qA9f%eH$w3;&-TmAe0XP(5CVxLWTMCm zB#$KWJOfs%%>e*h7CcIO^E;KZ*AXs{)|J7 zsR)Q7RSg{3ACJwg!NggsIRn%H8oKbc#KGrJm>D4iLI}u2umESy0>p~iF!wzt8=Npuf;GE;e(gPrlGO?k3 zZ}A^U!u(_(oO4{ed#@5g9Az?^eZSu$ZKs$-e`5nUToYeeSgZ+0kyr?rJnb~ad&A5~ z)0C#fhp)R;8SUdu_KU>4Snu};3ix3;A;iX#w5r4(KeuX-(Zl)&Z>?CsCYaer92WPN*)3` zdmDKMFF@H@D3^_e1q*h{b10U&i^DhhZgZ!@!l{Yo&+nU=b8cZco&9*SHkHyNxl1P6v3V`fR=ggABG0fJRfEfMsb$SE!qejK8!zaf8UQnP! z2m#aiBE$^2wp08UwuT^#h0FaRSfk&MDsTV-^TpfCHNXgBocRz`fNh=0;d5dTc8k%Y z02JY{*h0_+7D>}z>% M07*qoM6N<$g6~9{Z~y=R diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE6.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE6.png deleted file mode 100644 index ea87e4f9193f5b5ab4d3eacaedbb69cc78380ae8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 652 zcmV;70(1R|P)Q$ZBQe|PSrX%cF*R@yYJ&<79%Mf3%1p(~%kg}QSiE{aeTHzK%HH|~4@ z7lLlBJBuKKE^=)mt<|*2rI&(j=A87pxPQp4;s=MB1M_`z&YW+&+pG6ufaRq{GHmbm zc>eSy6ZJ^|u3lU~L{L>kB-sxY6~T@YGt8cuD&%v`IYcETDxs z*;-!yM!QX8dIl$g$;@*c%S(%NH>2Fnl9ntgG-hT}Bc)>mIDN97lgp*jUxG>hE;UmU zLs9(B*DtHY&tr-OHMWhL(RLb{(nVSFFo7_7A% ml&5n6FKpq`e;}HQr1>9wY;yL+b~4-m0000ZR8bJde{QZ-SONjf-s~S6!AcMWt;8;9XDQg(hz}xy_yRUQgVjEOg}n&D zO?Eemgb)l1QH0HW-$jda?s1bG7*26!zCSZ_u8hayzqXNu!q~z#3gJe4__zze@6!b@ zUOwa9>sQ>{c|?0E+l+3EQh`Ls*g;4*4D6QV_ix{vD_-i1jwBRfGMNw(QZSk9BN<6N zfARo;?#3os@ALiWh^5Y0>Wt%)MFy}K4M$i)62svjsc|5Qr#p8G$nlR;j!zaTzI;v= z6p76ec2X1;k_%{i63Bw9e-2q&TgwU*?CtFlxd*aw7%M4|#N+!n&w*&YPtzSzwO$8< zKC)3;bU}e69^T$Y5}&^Qq`R>RK*uF9jZTp)Su0>A64{;6dQsD9A48D}EUY}nY;P4L z?TNT`twZ(e8`ZhT%vu)7F02W7rMVF_Hl36t_NPtnoEOVE8ktTz``L6_m}m3ZrQ-Q~miiLn;NSo` z^`mmrU diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE8.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE8.png deleted file mode 100644 index 76464e267bd2980f0db3f5b6f6f85f2f8fd31e30..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 594 zcmV-Y0kz3Tt~0pCeP zK~y+TeUUM16j2m~zj^NkF(NAl%+6*bVqqr;7J`kHD4N3BKcLuI2qtMn(WqF8m5|?H z5lreJ8WAh8$?lGz2#cE~>C8KKh{f!VyF2263y*uxIrq$+~*V}f%hk6;o}qLXE4x=xe`k}yS@b8{$0WJZ*@ zbhd${k+Pypr1d&6Mr0z`fDp|vE8Z3h;-rCDEarpCWw3r#Wtc>;D7M=za^+=$JhxJ45;nMt g$&eYcIQR_X4_={A)`53Z`Tzg`07*qoM6N<$g0toa<^TWy diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE9.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE9.png deleted file mode 100644 index 78d7753eee3ba5ddd23374430b95c2b6a0b381e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 564 zcmV-40?Yl0P)@VOMk2k;_@Fg>#e zPb=AlAcW+rYV^=QGubpW-Oy8CeP310osVaq{$24JtMd&uzkZ@93S2*^@aXX_0AT<1 zbC3i{NE+^55Q!21?%&(N^vN#p;wApN7UR`44QK?#2o^|#C^+X(U~66O>}B@j!$kmz zXxlckJLh0DP(tzj%Vz+<>U@LM?~4I^w1CMnsIKeKI*EBbhvL0>e{zZ+-@e`e0|*Qp zW==a46^w+5xclbx$u@>l{b z1xI;)Md3(6X7Cb%`$Haw)ZQ&SOrif}b%R-ll z(WJ~O(N<@h zMM1krGjSo(f{Q{awQ$aVZ(Q6vHK&-y@bD1gYoH`31XZpSkFqQzjPht{nn39aR9t+?fht;Y>>N@NF)U=E%JeOh z!gHM|EJ0C3lb14ip#ots`y{xV6UD)i0842xfck7Q86gyN>nv7T&#m zgKFOUQI>_wqi>@r@xif7iJOfT0Kmq>O;l+NsDf4;`-vptIKEO`yEw+|6;Tw!Q3j(X zI51|?Z!D!@v9Sg}zkUI3-$Apnf}1yLsFXY?dGK%WAe!cZ1Rn4&cwntvj0a9^VC{H* z9@Ksv!59N$EQ~Sp@u1nRw zx5q;HBM&Y-56(_c5S{;kp~b7+-4LYYLCJ&vod>;s7p=9%;^%|>t6cbe@OtODufd!= rFvh}I3u}%0oEPDNweD~+9*^-G8@D1-sGI|L00000NkvXXu0mjfr`1>+ diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE1.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE1.png.mcmeta deleted file mode 100644 index d746756c..00000000 --- a/src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE1.png.mcmeta +++ /dev/null @@ -1,3 +0,0 @@ -{ - "animation":{} -} \ No newline at end of file diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE2.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE2.png deleted file mode 100644 index 4f7704cee8a24647da57ab5d634a226aca8f71f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1131 zcmV-x1eE)UP) z-)Ei~&il-anVOpNs*0!}v7#!dDiRB71rbF=5UKWuwpCPwoT}2>*PA4W5R0N36N{j6 zAeQ7QfiOlzsZ=UNB1yo^%nY#zA~7>Fb9Ez&3UhOF>3gM8A(j|XtrDov+tZ6y1A2P8 z6EzyANu^RLkuE}4sSB;PbIE)){is#Ru_kf@X|0-|E>A zEgssvBTb&KR45jUiGsj(_Qwmr1=hnizgBAAwo=eUjTwGy+^-E@Ub?)t3xJ#Q?G1go z(5Ow?y1IzRlizViUGU=HSxg|yg~ZmC1@ImRsLw=o7TUR?r4@jup4bn-st8Bkd=~)o z>A6YYwXMKE|6b(u(YL^RJm9@&`@o$k!QMT?De0;Rm#!@F`P(Omy0#Sn=xEFH_BEVN@b{b17%SjP`K zd-7@fYGnp67-Lvo$`YIU!Ty8KrvcODa`OD+cL0nrwAuxX0TV?jS*~?u0p}dnLn!T4 z5eA2bm@b#G)}{miQ50dEXY{~GLSU`MJBM=(O97A)U<`)DXbv4a4kQERR2A<%-Zv)* zWo=Bd4r}8g=UnPSFO5G9WK}shG=!=q4rMLQIVMh?swc44;%#Ce&D`kzhaXJ|R3z;W z-jEB--h13SKB%e~V>o&GqlRyrez55Wu#O*$j*Zj>eRk@^_4z^D?fpP~Szo%cl>Uhu z`axU&&W61(AlZpCKWM+LpPPZ@`Ps}5HiES_^@GCBfpnn1AoGKb5T+1R1oRb)nICL~ zP|jU+B;o;f_Rt``K{ zy8FJm(Zi`_(+@WN0IqRgz#ATa_F&ro{(E1f?d!fT)Oy3{*a&CNpXciQZ0ZNm=-3FI zJ$bB6ipo_tQ&q)kQjCDh|MVj(_kWkeTarxm=xA xa-#8UNeI@e`2MRe*Yc)t*5REe+LD}?{s%c0GgTiyvmXEe002ovPDHLkV1lHI7q$QZ diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE2.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE2.png.mcmeta deleted file mode 100644 index d746756c..00000000 --- a/src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE2.png.mcmeta +++ /dev/null @@ -1,3 +0,0 @@ -{ - "animation":{} -} \ No newline at end of file diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE3.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE3.png deleted file mode 100644 index 8ddd66ee129700b7e037d1d793d1307bd112a370..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 798 zcmV+(1L6FMP)pXA|xOLH#?b)b{Y(ZAn1F}>{{HJ*)KnmV5NKEGGF(e_sl!*edc<#TCFV!6hRXt zLK0|%B7zi1f{gDc=aC>1SxKnQRNVv;MnN(d30WdccVr@H5QQKJkRjcGdc6)KK^p4y zMo(mlXfzt>br1wF8YsmABC3@t6c4CWrkxvEI;mVPJL@D$9DJiRM8QzVD-X@V=A8q@9@u-O*PbEMjD2 zq(^YbgCP%wJm^o}Z+OuEYX?rxgG?)OzxH$Q527ea_XquCIu#Gv?H2AXK1{8bE>5Al c{fP%Z08(NgvfpDDWB>pF07*qoM6N<$f*HJC4FCWD diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE3.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE3.png.mcmeta deleted file mode 100644 index d746756c..00000000 --- a/src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE3.png.mcmeta +++ /dev/null @@ -1,3 +0,0 @@ -{ - "animation":{} -} \ No newline at end of file diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE4.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE4.png deleted file mode 100644 index b438ec172d5dc5ee819e56dffa1783ef62ff2978..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1347 zcmV-J1-$x+P)*`wRcW*x`ww8P#f2eZ81lzYXIWTW!iPfQaDxRp4U!a!08IK-cA5kVwiYHEr=gg_Kg1)|~i_+`c?CR>Vilu8suqOVu0eTXU| z0iS+#dX+%xpAc+XmGc$+=s0hzKdUr;|U@)ff+Awwc zdjtJ_dgp4R%mo$bYzuSN2wGG#5_p0G~&UE zIp+vn$dSEoaA?o&%zs|OgJc0C9%RGWIR_zxp(6|(!@Gvq_v+3_pdAlxS)Ru^a5$WE zI2Yn@0PK0?<@P*qfOBDHG%ifUTzek42FFyuIX1uWB9MazUH9C_hDs&#EQx_8fz~`| z<2a{5bRAcpFH^I+j}gtNvdY_!}wXtd#7Ln-2N@!;d*qu98psQFvd~vqF5*t3c&y1fiZ@= z9(XW~iKIH^=0RsuK#fmKvTf^@IFMoM@Ijjxg;YWa|J{DJaFrB8fHt|54crbVNOjIAAc_0#&OER)84;o)?v?RH5@nEe?gq%ERW#bc*j89Cq=fQ^`d`^#FUWK)lIFNiiXl}HU zz9|Q7#RLdW^31Wz5Z<7s4=% zr;w8ei9>Q;u(3#P9@w~~C64I`8hNnRd7+s`-<|vt7rJN!d3Z25Fp#<5)ZfqfbLRls z^I+(;?JbijZL-?&09q$gn$GQbu$Hw*=hi&<w9+$=%h1p>+8o{r4_RV=V;!Ay}wpCTy?RIPPBJWT*&+~S!=-3^d z8CCqV*=+23z3wbrtyWRJ*zI-)HcCcHaiM*l&7-F`P4kZn5~xoP$Xs}h>sD1Ak_iij z^Z=XTCE`++r8V+?WAz~5!g9H^^ZDFPr?=hdWAvayCe6knJz%`>*S`WKZHyjBLiI{o zN)NIuYx8C00@(qOap)6O#-M1Q(yZFd10tU0va;?31?h{Ikd#do76y=Bn4&2B>5|6N z>9nH_^is;8K{jc@06KC*+d(u0P69bS&~rZ&g*c*)@miED4gT)Ui1i z#J>6;EA_EHBFKYOV9vc2F4-wP&{yuXI751%TOHrxz{Rn8z+xPTD%1GVdLX$i z%X_Ln2m~e8p$zp0fuQuYI4L~{1cjyTm>|01s%ziSGty&UTv_KOmHQG&u3?3CwNX!u z?GvIcPO8y}c^i-^)hqPPb?D5x2d&hU_F~djWt4Vzg{rQjr5i%40S=AEHtZ9Dsu#iw zXri{uq$8~jP<2-_Mh{49Ul)izlt{Xp@jX(kD)p5%c4+0cZ7^bVh9;zbFJuc8*R?I$ z&h4n*3;(SLofc;{o7u@^60|reJqQE^3B#a_71fTQ&=C9Orhl=~ec$HEQmu1ACzPZ; z+5!|=_l!D4wMHODu_|7-JPMu>C4ISAbjtc7TSNg|vyIcMva&_dw)z*mh&2|Vcg%~w Xuc)YsX_I|t00000NkvXXu0mjfg_O8p diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE5.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE5.png.mcmeta deleted file mode 100644 index d746756c..00000000 --- a/src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE5.png.mcmeta +++ /dev/null @@ -1,3 +0,0 @@ -{ - "animation":{} -} \ No newline at end of file diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE6.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE6.png deleted file mode 100644 index 199fe6264cabf8a65a31fb48167bad217d6736a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1481 zcmV;)1vdJLP)z{C;!J z%=dhL-=m)0^NJ6!WBWFuxO!unBOiRs;=ZK-Y~8pD5y3f!hy=fD4kv<5CPq=Xr$2SQ zVsHiGBusXQcsOwsi$!$u#yJt@M7VlmnjY^uH>)!M96dhF*w|S7^kT7yCm!M)HcAAj z%vOVh{cmEeP0eC(a4?v{f|8-ukL-}h4mqNfK-3EqY01Y4P{ za^QvCbl48G)hOS`4@a+D=Vlca_bp8&j~9#N^Ld;IM%~r7=k66NsZL!%D~;9~rBwJ= zBc_+GMcowtnqg&sFCs#3PY>dRN~MC$^#`Ad4V%b{TbHYeWw^vr9L^K$qK+;A;zEhI zHa(NN4zv&sad_g=I{5n3>BbtVaN^;G@45G%QIyx2<4A$?3VhTo09A@Ir3wzEE|G=8f zTey8^j@x(U=IR_tcZr_v9-Ii}i89?i-Be~~P>(W zqcO(t!Xn|d9X)dfYb{!9bgV#?TK}V4w>Ia2@B7qhH55=+3KfoIwB$jpR>Svw>b_6C zUXM3Y+dS~YM1^AS!MEe5Mp%oYDG&A?K0-Uuj0c%Wiuua0Ak!5V|H7Gn+8Sm<1yD3HN}Z$JA4 zYc0l@;I2>u%1>(nvUw1{M5PppFiC|Y5it)up;Rh`+gs2FKKy9DfC{oBCEn^>{+~S1 z0Q(Lf;k9?)1Fg|Im`S6YlROBd9Pl8egS`h1^3wjdLae6?luF}>Cpb?im&=F?g_MP~ zC!X8Mt|VSk`z>?KR9;c1m%&Ru-3N614;XX;4?n71%RpF&e4holH`FG`h!IsUGpMZ zw;q6*ix*n*An6Y@1R{zG<@%Sh^nnN4=Rr~jQ6Zph9;k1A9`Rw`R83Az@lWwm+x{Rf z0BO_R_IaT(5#ZQ~6C|S*4^nPD>Qb|pF4AL6Y_yLaA8z15kwT#m_=C!9HBKBkeF|$$ zV0Uy1*v)xxesq-Yzx)DgY=E_T;FH=tFX-<+{}jLOgAaA)&kFPBh1UK+M^EypL-^46 ze~C$)94R86Af87dpAU+;us7~Id<5TT!L%DAp1MRkG69q~4!yr1q0wk%@*vVcmced} zOdhn;+MopwA`J{}*svfeDd%Q9Q0vyN^>x?}AKvj;oIE)-l{#>&?$f~C?p`GEnV^Fl6{3mQx0&W$p0V^vBm;DPiG;CaCkQvSdg j6VE^;4xPzptM) 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 Y54ht&?d73HCjbBd07*qoM6N<$f`KirH2?qr diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE9.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE9.png.mcmeta deleted file mode 100644 index d746756c..00000000 --- a/src/main/resources/assets/gregtech/textures/blocks/iconsets/LARGETURBINE_ACTIVE9.png.mcmeta +++ /dev/null @@ -1,3 +0,0 @@ -{ - "animation":{} -} \ No newline at end of file diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_DRAGONEGG.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_DRAGONEGG.png index d70bfa5229b4007acf099134efddfb159b7da98d..2e87357a6759440508b64e96f3711ecda138d189 100644 GIT binary patch literal 822 zcmb7?OKJi^5Qba4fJ={%6L^5^z0<4$X5kIIfY*o!AtaFKsN>rRzTddlU%#P+5xm1w&9;LLS&jfE6Fk5W#{oc3DLn(lh zI|VL4;~_eqHQ{w$<3;*%$+|7wgU{2KvVMxS82|tJ^Thr~^(i%-gz&oaThDmxM17)* zc?*8O>*KK&c4Qkyfc~KII=ehX>24ZhHf14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>}68^!VYI zFQ;$cIeYis$(y&%-G6ZG>h&X+uO7a1<^TWxa!Th{0}W?P@^*KTDouZ41mv)nc>21s zKVX#QW3`aVC}RW)wRpNXhDcma?Y}9;tjOW)F4CH{ygT;)fA`r2x$$cJRXfxgPHzgH z6w@UZI>(gRL~vt36VrwQ{v{0Tj!&PZtQ7jNv)?X5DPu#QAEOLonAD2K8=Mb%e!ni* z&9Y(sVISoto~la;Oa-ZvXS_1Ym;Rw|_P)pA_AB9}%iE?c+xqNy&AxlT&(||}zhYOK z_^V0^=pNM)*NBpo#FA92{0z9=|^4VzbV`A@}2$cJ<^0i$SE WbLrbFoQ{EcEG01K&*huSTlx=HdfMgy literal 649 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstU$g(vPY0F z14ES>14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>-L#DchBCvck$8Vo_VW!=dbQx zxOU=_4HFix?_ad;(8bG>mTs(>w6daaX+g)rV^^8rP;)y-_4vS9bg(^*Y(6Dudhmh{w5 zn6vA|sf>o%NmWx5Dke5gnz!@#$(Cu0s=B6cJACx!>o+%EzPkGC`K8BC&fR}-^5(6> zm#!Q*cj5p4{~56djsd;KnB?v5;_`FLjDtW9dx@v7EBgaRSw2?tuIt$ofI{0nT^vIs zF5C7#7i%)$aeK@l;?gRX>Frv0eed^gfA61cc<^2M`4hFBj3=IQyZV}YrCwfj2cK-A+L>9dCWfZ4Ub*!sA6tnG5D!0Vm`~l|8_uy8k3$&*&#ueI-64t-tA>A>r^}r z`-xZ8hIE-UKjaW$lFU{;93H|hy0KoR{8)nTroN8{OU(W=o9Inj{grKv$0wGS+jooV zEf!r_eq{N)=kxgXZZ2$m{q|qQt!agInxZe>pBI;Nmpb2LaZeEF1=SMQh?11Vl2ohY zqEsNoU}RuurfXoRYh)Q>Xli9(YGrDwZD43+U?Ajhq!UF$ZhlH;S|y4G6DwmQDjW5XUiIz>glm6LdmV#IVvHIWTo3^@Dk5%Z-8C37F$ykhB9ygYEkUDk zIRTJ7|9w-NDxsOa%xix$Z|47|qqDu)#GiJoZFpO>x5?DXznirGw4wF;OZxoCzrST( zU&N9Um!D!%F612Ro*VBeNa1|;9+u18Wl}e3F_?&7VSBted$eIYShF6k&ych4nTGAH zPJ5g~F5AGuL?6PDRhVRe8`-HhaBt;>d zLb9BXvL$POB;;?%BMOINMU=!UB6HgZqu~qGuhwI%q~7P%3M-TG*d_H#d9*H23AID{ z=^%wc5U7OSp^wIwS+&@}B(||IVjJ$7xAdy@PCA>dUOpz{tBY=+-HI?h9`JnQ(XGLpVghDB4HN V$;WG)j)5r_BAD}M`QfFU`~k~Fh8h3> literal 646 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstU$g(vPY0F z14ES>14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>-L#DchBCvck$8Vo_VW!=dbQx zxOU=_4HFix?_ad;(8bG>mTvt2=+FQAfBxV8eeCM>{}295S-$!I-QRr+)>L=Tn7U$1 z_uQ2g9aC$1W=>wV>Hp2&?K78_wN5&I?Z&<{=ccdT_W#na<|zwypFI8l+VB78fBirG ztA4_qT_;Zczw-P4g<<`a`B*KaGRhc%LfbuE977~7 z+x9*eYck+*d(6bjektr$P@stW+#TO*{Xf9^JZ_!-V!cZq%USD~cKj0TlFps8JXc|6tAoePxg0F}zRRXANOmxH2^U)8 zxSsza!&IZQ1tx604z*jm9&2Yc@cp#+GEqqYao=NImzx_9G^V!S6+4n2<+RKzn?UK#7SP1ljYKdz^NlIc#s#S7P zDv)9@GB7mLH89jQvJ5dawK6cZGBwjSFtjo-P+oCQ1Vuw`eoAIqC5i?UD`O)oBSVM= UYx}Q2-$|BaC%d(;-T=O`U6o|x(HMpy#K3_$+B!Skt7qw?x_{B{e7rWh zfj{1nd)P83q#xfaDuQDt-5+_fv`Tt|KSYLjKIU$# z_x#W)JR(UA&BR+_z7EHNFlY_Z8~Zv1hdHJb z36aOqv>-%I8&07TTFJoE!!gk!@_PB086-R&C7S(PgFix%ySwvk82B iOWH#uJUxyEgFnRM1S23mQH^txga;tiHR$1Z8SpQ|S9Hk$ literal 549 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstU$g(vPY0F z14ES>14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>M zd35u^yO(cI?>c^V&&g9ek9~Uk@zeWHAK!d9xMt6rr>_pJ-}m{$=MS&nA6mQj@vVo? zA3Qs{>EM@-pAT=?e_-|QU5mFqyZdC%^6hso-F|xK@s5R??_9j~;QGD)|NqZho(6OW z17ni6yNf(4ufSd)hrPtp*OmPNqbwh*g;YivBT(p&r;B5V#AVe9w>KSC;BelUu{Gdg z+!UYz#^&jMa+4ENnHr>h_-ZARI|LP$nFt!5i{$$GMB&#Q?T?%Cs$X033aqFO-<2hN zdKqI<=0?w>%}aNBG52ihzEFABi_K8^$=Z!}`gZAW&+z@(^Q!Ri_r2n;nm9VTAAPNp zzt_HQGyCy7uYW%Ht+8E~U819F!oBOBNq;W(yqfi)F?7v-7l~zW7Mom+oAW+JUGw|4 z{MUyrXuohfWA>Jag8WRNi0dVN-jzT zQVd20hGx13hPp<_2Bub~X4(dZRt5&jEAEM)Xvob^$xN$6(O_a_Y-D9*2+?3| S|Md`11B0ilpUXO@geCx#-S86t diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FUSION_GLASS.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_FUSION_GLASS.png index dc543897cbe293e8380cb1ee447a520f3514d9bf..f9cf9f0f7e85d6878ddef9b530312e7ca4a8496c 100644 GIT binary patch literal 822 zcmZ{iSxy2$5Qf`$0UterC*T0Sdk^nmVlXi##3zj;Zh#=@u*(wJ6a*eg!PPxN%_C9?$wJrD@O;Ve5`O7Im{SG zg?OiZ+UquMTXlk~%W^8Q8;|&6VP9n5gYN}4644!}5Za&nckhFT!CMa}Zk**w(RlCX zD)?F@Q!S@Yj#J&vne(sN*!-TgAN&$LYcrLdP6mPD0k500Ud`g_3hai>c(n@3D&QGs z)VwqWuGx%Kol?w2L;iK}bPn7Oew3#2zEgxiB4$_o8n3`QMdJ}1J)?#fec(3?gR9|i z_#YnHaA;feYdmdea$?QTXQdzb5ns(~nx-m2mEX;S5CSkh>iEzWTfWC8vAE#ro0S#d(2!Zr#+H*Hu;;*^@CpTgn#Yvf)p!dd4UK literal 616 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstU$g(vPY0F z14ES>14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>3307!>8x&SYiR54 zoH%vTtawS+ z_iWg+|H$R5H(tKF{r26hH*c>#dk(Z}?($XhR;+GlXgGB7^7`HT*6i3lXX(m~dk?Hw zu_7ZQ_GiT0Rw`=dFeFy*l|9|Mvp+}D%ZQg%q=AvcuSFN3~aOr~8>$V&`Jayip zV^^21sKVX#Q zW3`aVC}RW)?ecVS43W5O+J955$$-aYaZsSZ6xWRbsVmX07*T_&|PQxu~0Sh@2*sM~b{x#lnkQV-7e^5?WPtmA7s{F;T zc_;Qv`^;Vv9H_Z+#?4ZWS2lI$uD%prfAS!EzD)b}gEjGt>VIBr`yCp4HbcsHn6T3xd&3Uyi7SGbn6Ye6il?}heVKFGaNyeMQNxpXL<3>0%p zw{z9+H6Pn`4tKZZc=S{Wxg$Y$=-dg;ya&14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>8x&SYiR54 zoH%vTtawS+ z_iWg+|H$R5H(tKF{r26hH*c>#dk(Z}?($XhR;+GlXgGB7^7`HT*6i3lXX(m~dk?H# z%W(TP!@6C2H|;z4|3Ab3|Nl4dKQwdEviYml&RDo~!RmEe4j!I5Z_%-<*Qd-~cc9#w2fd7j<3!70N&kdx@v7EBgaRSw2<^sf;p4pwL=R z7sn8Z%f9`u#hMfZTDDKp@#WphvvA6#JuOqi-v7_it+2AJxA<*%hL2(M&qGSy)mzK% z^gd_bu+*gI(Oo-FKAx#e*V_%O<{8am?pz}Bs7HutebL(kKbxF_L}V&fKG*gVKGtYp z96nW1vhA8whz74ga><{D+YZ{x{WrLuUbgTH+p5?9vL$yn8@V1&+84y}D#-5Gt6#$Y zj}vN*c>bPN&dhS0viGjRzZ)ALZ{?V!U!f&yl%y$k3g~dv64!{5l*E!$tK_0oAjM#0 zU}&amV5n%}}f z$9~r@yuFtTPGV(ziRU$aUYuf*chdI?&B9@~?h$H~C0T>_m$}Ea4 zt;%xo?_%CDJ^B29JX45Ao83Q!2`?A7K@VcM+wEp39@!`)WFlVW&mv^eO<&M>7?OBh zg-SFgdtiCfLkO={x+OA%`jg-Z?S9mm3?>2EtAqCV^{TJ_Y*4Pb@;%jD86*LSf66}q De_SI( literal 500 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstU$g(vPY0F z14ES>14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>lYU*|ilz{7e$ts;g)xpiI1pa1#S z`hEpydL)!=Fr4GpZg{q_qw{7MCmUA-N5JeEWdWBmG9nY2Ib64FaS`Znj!HYf%}SI# zRPD(eZl;q-0e?-VU$R-p_EP>F-&AF85hW>!C8<`)MX5lF z!N|bSOxM6r*T^!&(A3Jn)XLOM+rZGuz(9G$JrNWQx%nxXX_Y7%OstHJtc(mH8m#TV R9s+7$@O1TaS?83{1OOJx(NF*Y diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_MAGIC_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/MACHINE_CASING_MAGIC_ACTIVE.png index ae0df4605d5a4ee5b20455542bb98f521255dd16..333efe15ffa8d3b181115958adc4a23714079186 100644 GIT binary patch literal 822 zcmb7?OH#r>5QbxM0hjLFasm$E-aBRG!UdO-vdZ#NB@!_q0Tku^6!ycH{F$z7SkN_T zx;tO@{4?R^wowZTYvAiVm*sO2Tov`8e6K{ld4G5A+HSJVI$bT3^{S^}xrkYdc|07v zrM>5F^ca1#I_(Ed{@)EkZ~OhwQd)jTZT}{uQT*ZXO%V)OOAOnw#rUt2r7u*H_^HZ6 zQlwYy#7xj$lW|1a&t6RrFc{v%0ARaqpCX=f&8A)PoEMDqQqLjhuKglI5&+r&jL$J| z&N*7tQ90Pu=~+uDwqT))&#})>Eu)M2~f^G3$~dGv14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a><{?K|i0KR9;v`jN|54_~@6c?N4V&=$rdZ+91-#?67r zKn{C}r>`sf14dasRtu?&GDe`#bWaz@5Q)pF=dbe}R^Va1pjHvXq1?Kz7Ykj{0 zG(8eZHW<$FYd1XG*wJ}2jFXM4fg@n{jIw}B85xlY%^a>iAYm-~U@xDaOe6HF4w O@e5=Vg9w_5sQ>^E!Yac6 literal 330 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF?NMQuIvvOW%*bwq%z7FfkLL9E{-7_ z*OL<(7~LEV1QHTjJ~Z;EsVW3881}@*#2nxemN=|xGR1&-oy4&QNsjGIX_`C?3=5X? zvdu8fl?EE1TH+c}l9E`GYL#4+3Zxi}3=GY54GeXSEJF-Utqe@9OwF_n46O_dlvmsn nLD7(#pOTqYiK4;8%Gk)t$Pl8z+WzYypaup{S3j3^P67O5s_c!ge ztv)}=t%s6cFN9`?!gIq-U24?wu)3DhDw(R9F3VR)kGGbN;`G60;4rp`AR3zbYb-qx z@r|M!B-ykGwo^VhPEodoLMeX^yeNbL{xM33Cjr@74U82FNrJcK=a|VG=>qyqJr+Vs z3N~SVUM^jl_q8Pl01ZKxaCh_vsfEyz0uYaQ=;^^_?}$S^J8RzHj2mx(o;%UA$1Oll zt(raAW}N6rMEw90yzLPtp6Ib$(2{};{i!G^@H^DM%ld#<%P9nSi~S8h=IvhtGsFM@ pyuh=3Y$YLZ$ul9B5mAmNU=$gTTe-W&=@^*%W)XA#*t%`MD8IQFMLPfh literal 577 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstU$g(vPY0F z14ES>14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>-L#DchBCvck$8Vo_VW!=dbQx zxOU=_4HFix?_ad;(8bG>mTm;vbL{GM28RDrmT&G`u%^0u#?%#Cy63K}=$Km5GjsB? zP3<$6mbFege(lD-Gv}tS-qt*2!S0i%>nF_Fb>dXxq?NMQuIvvO zW%*dmyRK(X018d;ba4!kxE$JZQmDy5z~y%9f=&%@g$GPc$3&0D{{Mg4M~C0p|Ef&f z-n<2u-+q;S#@80pv*#mApM1+jdm}#Kf~k{!a2ieZd;2#|tJiR`+ZkPjHpa;8&%?Skl954O9jSfo32P0OmeI|?nFo?KbspB8e`V{Y!NO@;b9?!D_@u72m) z($Zu1=Ii%ZNZfcSZz2eEn`((`L`h0wNvc(HQ7VvPFfuSS(={;EHL?sbG_^7?wK6r; wHZZg@Fc5M$(utxWH$NpatrA6piIuUDm60JtgSGwFLqH7-p00i_>zopr0CrsaKL7v# diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TELEPORTER_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_TELEPORTER_ACTIVE.png index 9792d34e75b8b7f500f37e6e63e6c4ea21ea0017..b94b3aac3a587ab0d2511429769fdb0ad6cac3aa 100644 GIT binary patch literal 822 zcma)4+fKqj5MARB_~o=D$8`AMe$-SLLNC zKRt?#`+TjE_00_VXNT)Gp<2$sDoR=@CQEXnAYLLp+FU#gQ~Mj9gU|wkpl|Z8G1Pd# zHHvaHNhPA_cEWjEgqRu%h0Gc7QQrRpZmA`0-wuAaRydZ+Dp3utbI&n`O;KIKyC zc#F2eClYi6+`*gaso^_(3<4TbRiC01M}Ld_cNiD&av_cYZ?U)T#=QM&P#$Ce0G{U< mF0>rs+1M$cPDW7<5ip9h!!F%k;dBhlT|I|6e`wq^pQUe0O`fX& literal 577 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstU$g(vPY0F z14ES>14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>-L#DchBCvck$8Vo_VW!=dbQx zxOU=_4HFix?_ad;(8bG>mTqKV_-b%pFO|y_{q8Z4^G~^b@IVsd+AmDPlbwQ_wx55LaremTm@?W4o*?0;1z zZg1X#%WuERKI3bP>DlvmSx~65-+#Q7$PEW3^@J|al=`lC=)uuxI9rxb#FIT_w zY-#DSd-L^sEF^Bcls6Fsx=ppjHKHUXu_VKa*w7@Arcm|B^d xX&V??85k(9xF>?5AvZrIGp!OugNc=~k(H4lM1!^c*F!)J44$rjF6*2UngDh?`;Gtr diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/VENT_ADVANCED.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/VENT_ADVANCED.png index 01fa40f67818baaf4c3377a4eaa6f40b36651b89..c9663bf711e43770019438cbd4dd2c9ac2e53bd5 100644 GIT binary patch literal 3126 zcmeH}T~8B16o&EM3orc%`~t3x_x>FNYGREN6)`|9Ai-2X)P{{HU`oWqRKCkcrG)}T z0V75N_#f&MUvn~GO>Ya`Fwf8`j`^7n@Y$f#h23n; z5#U+t?YY@8@tTLs<#LHc!gaycYESC!eEuW(lh1MZ;Q8ai!Y6ox6*guI-V$f`c)V6u zrkEr#Yhsd(*PlMR8Ro0iDlTlKhL@Q32ldp#<6!`ln~h?~hd3jzQ|1x_5B9YHhk0Bq ztPDjHPd;eiIQ2p>%f)fxi+5cV&_M4b2FS)V~Xx?egdP z*W1u|>i56Z2!rCfVu;bdygWWe|L{bn$&pdVclEDm!nk$-3^v}?KfE>RKg@gjcL97O z^YQNUNEao4r2dtjC4YYZpTX}Rx4vepzG3}KoQ7d&MtoTR5`f7J!;^%oe+vsE{bSgq tws7@tOBg5BKanjf#Zi3k{5WBADXAD+f`ipnyS5!UcId*TBbTpMc228kpK|d0#iLiQow$DU)UDfR?%X|l_uj=vk9+2=>Ycy3 zf8pAROEyecyuN?Yx+*Ys_NkKTO!=Eloc zSD!t<^!UlS`wvduymk1}l>_H4SPQT&23o+F21sKVX#QW3`aV zC}RXlt9rUPhFF|FJNdTXVFRAFvk9h4a&kPkn;q<#SSVv~?!&))x2$yERd*FtKDes> z@A9AjkLeBXH~uzOIk}aeDopGeAEvD8Jt%N2#MqWSG`rVu%e*rSSKhv3l^(s6OW)5q zYwh9>j&oMVE_@i%vOuIj?T}Mv0iXBEfEN)v7|ts@F@9XY^oMKW4o1O8UxZF+XDaEg z%Wpc+UD);O8{etWeZPLm{c(<+xyx7n`e|OfgP%{ozWsZ}k+bdJeLwzWwSO*nTum-a zKvj-M;rT|@BQ`M|a{TTtTHi$FifVK+E0-*@>OFG>}g!tt?KDT-D?~Htr=evHtlmDhC2)+8qp|UO_QmvAUQh^kMk%6I^u7RPhk!6UXsg;4Lm8qGwfuWUw sf%1xbA}AVi^HVa@Dp53;SQ#5x85u$}SlfR+1k}Lb>FVdQ&MBb@0MEQXNB{r; diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/VENT_NORMAL.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/VENT_NORMAL.png index f5d3da89ead7fed4dec6f3a941930345939ac3f3..0b49d7534bbcb4ecae6f084c5ec5ae04e1e765a8 100644 GIT binary patch literal 3126 zcmeH}yG{a85Qee0u=Ejp0%~LL1KClTXkqE|ka$Uq(M07Uf`FRHT|wya3%~huvdgYg zs1%$WPG--3GiP?@-wivv+4an9WLdZPZSdRXx0cytWqjS&h1R3P{YB^S{qg;+Ht0XR z4XQHwy$Z9}tu!0gwd!TLcwW3aE!>_c^2ew#8rC7lxVxzGh0ub1Z=PH{eplfnaZ+GX)PFPDy)bOZ&N%i~xooDqSF1tXM1ME?#8BmHA|Qz^~;{=+P)e zUfz85`u5v*x8A(H`TEVBcke4Zr`>q@>hAjwK!pbm9Ju%4V?#s3{g0pi|NnpV%C)P{ zo?m?Q_~Dl?4?cfBd-vYSo43y0e{lNtonu$8AGv(>@TDvExpLouIvJC^-CYExZsOGe za@b2eeO=ifFv{|=T1aJ-F#@GoJY5_^EKZ-De6#P60go&9*`y9bUD;{pKK#GmIlXPi zqt^C`3jCSXDz{Hw%)P#M&Dm}Iifs~={TK0(B^X(K*aEmb*j#lPFR{5WM6=na=PuG+*3BrZ!@fIi z>5~cP%f8%BowqczPx1JaU$_7KE`NV7^8K$38_&51x}Iz2`d}yK{EWGBZH@a!JKf!i#XWl8qzfTbr1O}06iEBhjN@7W> zRdP`(kYX@0Ff`LOFw`}&3^6pdGBC9=HPbdQv@$SIUU5$ZMMG|WN@iLmiUt!aV%(98W=oX{an^LB{Ts5i;nf+ diff --git a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/407.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/407.png deleted file mode 100644 index 6d2a21cf93a774453752c20ab77968fa295574f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2975 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 VM;6sP^_~C#002ovPDHLkV1ij)fgu0@ diff --git a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/408.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/408.png deleted file mode 100644 index 86ae8dd7e2d058253445c6f9aeac9c2bca7e8872..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2959 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 Bcg+9* diff --git a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/412.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/412.png deleted file mode 100644 index 5cba9941042a0e455241a3187ca697650d3eea9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2966 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 M07*qoM6N<$f=OhCs{jB1 diff --git a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/413.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/413.png deleted file mode 100644 index 80cd9711cdc03229a19663b5a2b743017812e546..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2941 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 diff --git a/src/main/resources/assets/ic2/sounds.json b/src/main/resources/assets/ic2/sounds.json index 3c87f1c2..d525428f 100644 --- a/src/main/resources/assets/ic2/sounds.json +++ b/src/main/resources/assets/ic2/sounds.json @@ -1,389 +1,52 @@ { - "machines.ExtractorOp": { - "category": "master", - "sounds": [ - { - "name": "ExtractorOp", - "stream": false - } - ] - }, - "machines.CompressorOp": { - "category": "master", - "sounds": [ - { - "name": "CompressorOp", - "stream": false - } - ] - }, - "machines.ElectroFurnaceLoop": { - "category": "master", - "sounds": [ - { - "name": "ElectroFurnaceLoop", - "stream": false - } - ] - }, - "machines.InductionLoop": { - "category": "master", - "sounds": [ - { - "name": "InductionLoop", - "stream": false - } - ] - }, - "machines.InterruptOne": { - "category": "master", - "sounds": [ - { - "name": "InterruptOne", - "stream": false - } - ] - }, - "machines.IronFurnaceOp": { - "category": "master", - "sounds": [ - { - "name": "IronFurnaceOp", - "stream": false - } - ] - }, - "machines.KaChing": { - "category": "master", - "sounds": [ - { - "name": "KaChing", - "stream": false - } - ] - }, - "machines.MaceratorOp": { - "category": "master", - "sounds": [ - { - "name": "MaceratorOp", - "stream": false - } - ] - }, - "machines.MachineOverload": { - "category": "master", - "sounds": [ - { - "name": "MachineOverload", - "stream": false - } - ] - }, - "machines.MagnetizerLoop": { - "category": "master", - "sounds": [ - { - "name": "MagnetizerLoop", - "stream": false - } - ] - }, - "machines.MinerOp": { - "category": "master", - "sounds": [ - { - "name": "MinerOp", - "stream": false - } - ] - }, - "machines.PumpOp": { - "category": "master", - "sounds": [ - { - "name": "PumpOp", - "stream": false - } - ] - }, - "machines.RecyclerOp": { - "category": "master", - "sounds": [ - { - "name": "RecyclerOp", - "stream": false - } - ] - }, - "tools.BatteryUse": { - "category": "master", - "sounds": [ - { - "name": "BatteryUse", - "stream": false - } - ] - }, - "tools.Dynamiteomote": { - "category": "master", - "sounds": [ - { - "name": "Dynamiteomote", - "stream": false - } - ] - }, - "tools.InsulationCutters": { - "category": "master", - "sounds": [ - { - "name": "InsulationCutters", - "stream": false - } - ] - }, - "tools.NukeExplosion": { - "category": "master", - "sounds": [ - { - "name": "NukeExplosion", - "stream": false - } - ] - }, - "tools.ODScanner": { - "category": "master", - "sounds": [ - { - "name": "ODScanner", - "stream": false - } - ] - }, - "tools.Painter": { - "category": "master", - "sounds": [ - { - "name": "Painter", - "stream": false - } - ] - }, - "tools.RubberTrampoline": { - "category": "master", - "sounds": [ - { - "name": "RubberTrampoline", - "stream": false - } - ] - }, - "tools.Treetap": { - "category": "master", - "sounds": [ - { - "name": "Treetap", - "stream": false - } - ] - }, - "tools.Wrench": { - "category": "master", - "sounds": [ - { - "name": "Wrench", - "stream": false - } - ] - }, - "tools.chainsaw.ChainsawIdle": { - "category": "master", - "sounds": [ - { - "name": "ChainsawIdle", - "stream": false - } - ] - }, - "tools.chainsaw.ChainsawStop": { - "category": "master", - "sounds": [ - { - "name": "ChainsawStop", - "stream": false - } - ] - }, - "tools.chainsaw.ChainsawUseOne": { - "category": "master", - "sounds": [ - { - "name": "ChainsawUseOne", - "stream": false - } - ] - }, - "tools.chainsaw.ChainsawUseTwo": { - "category": "master", - "sounds": [ - { - "name": "ChainsawUseTwo", - "stream": false - } - ] - }, - "tools.drill.DrillHard": { - "category": "master", - "sounds": [ - { - "name": "DrillHard", - "stream": false - } - ] - }, - "tools.drill.DrillSoft": { - "category": "master", - "sounds": [ - { - "name": "DrillSoft", - "stream": false - } - ] - }, - "tools.drill.DrillUseLoop": { - "category": "master", - "sounds": [ - { - "name": "DrillUseLoop", - "stream": false - } - ] - }, - "tools.jetpack.JetpackFire": { - "category": "master", - "sounds": [ - { - "name": "JetpackFire", - "stream": false - } - ] - }, - "tools.jetpack.JetpackLoop": { - "category": "master", - "sounds": [ - { - "name": "JetpackLoop", - "stream": false - } - ] - }, - "tools.mininglaser.MiningLaser": { - "category": "master", - "sounds": [ - { - "name": "MiningLaser", - "stream": false - } - ] - }, - "tools.mininglaser.MiningLaserExplosive": { - "category": "master", - "sounds": [ - { - "name": "MiningLaserExplosive", - "stream": false - } - ] - }, - "tools.mininglaser.MiningLaserLongRange": { - "category": "master", - "sounds": [ - { - "name": "MiningLaserLongRange", - "stream": false - } - ] - }, - "tools.mininglaser.MiningLaserLowFocus": { - "category": "master", - "sounds": [ - { - "name": "MiningLaserLowFocus", - "stream": false - } - ] - }, - "tools.mininglaser.MiningLaserScatter": { - "category": "master", - "sounds": [ - { - "name": "MiningLaserScatter", - "stream": false - } - ] - }, - "tools.nanosabre.NanosabreIdle": { - "category": "master", - "sounds": [ - { - "name": "NanosabreIdle", - "stream": false - } - ] - }, - "tools.nanosabre.NanosabrePowerup": { - "category": "master", - "sounds": [ - { - "name": "NanosabrePowerup", - "stream": false - } - ] - }, - "tools.nanosabre.NanosabreSwing1": { - "category": "master", - "sounds": [ - { - "name": "NanosabreSwing1", - "stream": false - } - ] - }, - "tools.nanosabre.NanosabreSwing2": { - "category": "master", - "sounds": [ - { - "name": "NanosabreSwing2", - "stream": false - } - ] - }, - "tools.nanosabre.NanosabreSwing3": { - "category": "master", - "sounds": [ - { - "name": "NanosabreSwing3", - "stream": false - } - ] - }, - "tools.quantumsuit.HelmetLoop": { - "category": "master", - "sounds": [ - { - "name": "HelmetLoop", - "stream": false - } - ] - }, - "tools.quantumsuit.QuantumsuitBoots": { - "category": "master", - "sounds": [ - { - "name": "QuantumsuitBoots", - "stream": false - } - ] - } +"machines.ExtractorOp":{"category":"master", "sounds":[{"name":"ExtractorOp", "stream":false}]}, +"machines.CompressorOp":{"category":"master", "sounds":[{"name":"CompressorOp", "stream":false}]}, +"machines.ElectroFurnaceLoop":{"category":"master", "sounds":[{"name":"ElectroFurnaceLoop", "stream":false}]}, +"machines.InductionLoop":{"category":"master", "sounds":[{"name":"InductionLoop", "stream":false}]}, +"machines.InterruptOne":{"category":"master", "sounds":[{"name":"InterruptOne", "stream":false}]}, +"machines.IronFurnaceOp":{"category":"master", "sounds":[{"name":"IronFurnaceOp", "stream":false}]}, +"machines.KaChing":{"category":"master", "sounds":[{"name":"KaChing", "stream":false}]}, +"machines.MaceratorOp":{"category":"master", "sounds":[{"name":"MaceratorOp", "stream":false}]}, +"machines.MachineOverload":{"category":"master", "sounds":[{"name":"MachineOverload", "stream":false}]}, +"machines.MagnetizerLoop":{"category":"master", "sounds":[{"name":"MagnetizerLoop", "stream":false}]}, +"machines.MinerOp":{"category":"master", "sounds":[{"name":"MinerOp", "stream":false}]}, +"machines.PumpOp":{"category":"master", "sounds":[{"name":"PumpOp", "stream":false}]}, +"machines.RecyclerOp":{"category":"master", "sounds":[{"name":"RecyclerOp", "stream":false}]}, + +"tools.BatteryUse":{"category":"master", "sounds":[{"name":"BatteryUse", "stream":false}]}, +"tools.Dynamiteomote":{"category":"master", "sounds":[{"name":"Dynamiteomote", "stream":false}]}, +"tools.InsulationCutters":{"category":"master", "sounds":[{"name":"InsulationCutters", "stream":false}]}, +"tools.NukeExplosion":{"category":"master", "sounds":[{"name":"NukeExplosion", "stream":false}]}, +"tools.ODScanner":{"category":"master", "sounds":[{"name":"ODScanner", "stream":false}]}, +"tools.Painter":{"category":"master", "sounds":[{"name":"Painter", "stream":false}]}, +"tools.RubberTrampoline":{"category":"master", "sounds":[{"name":"RubberTrampoline", "stream":false}]}, +"tools.Treetap":{"category":"master", "sounds":[{"name":"Treetap", "stream":false}]}, +"tools.Wrench":{"category":"master", "sounds":[{"name":"Wrench", "stream":false}]}, + +"tools.chainsaw.ChainsawIdle":{"category":"master", "sounds":[{"name":"ChainsawIdle", "stream":false}]}, +"tools.chainsaw.ChainsawStop":{"category":"master", "sounds":[{"name":"ChainsawStop", "stream":false}]}, +"tools.chainsaw.ChainsawUseOne":{"category":"master", "sounds":[{"name":"ChainsawUseOne", "stream":false}]}, +"tools.chainsaw.ChainsawUseTwo":{"category":"master", "sounds":[{"name":"ChainsawUseTwo", "stream":false}]}, + +"tools.drill.DrillHard":{"category":"master", "sounds":[{"name":"DrillHard", "stream":false}]}, +"tools.drill.DrillSoft":{"category":"master", "sounds":[{"name":"DrillSoft", "stream":false}]}, +"tools.drill.DrillUseLoop":{"category":"master", "sounds":[{"name":"DrillUseLoop", "stream":false}]}, + +"tools.jetpack.JetpackFire":{"category":"master", "sounds":[{"name":"JetpackFire", "stream":false}]}, +"tools.jetpack.JetpackLoop":{"category":"master", "sounds":[{"name":"JetpackLoop", "stream":false}]}, + +"tools.mininglaser.MiningLaser":{"category":"master", "sounds":[{"name":"MiningLaser", "stream":false}]}, +"tools.mininglaser.MiningLaserExplosive":{"category":"master", "sounds":[{"name":"MiningLaserExplosive", "stream":false}]}, +"tools.mininglaser.MiningLaserLongRange":{"category":"master", "sounds":[{"name":"MiningLaserLongRange", "stream":false}]}, +"tools.mininglaser.MiningLaserLowFocus":{"category":"master", "sounds":[{"name":"MiningLaserLowFocus", "stream":false}]}, +"tools.mininglaser.MiningLaserScatter":{"category":"master", "sounds":[{"name":"MiningLaserScatter", "stream":false}]}, + +"tools.nanosabre.NanosabreIdle":{"category":"master", "sounds":[{"name":"NanosabreIdle", "stream":false}]}, +"tools.nanosabre.NanosabrePowerup":{"category":"master", "sounds":[{"name":"NanosabrePowerup", "stream":false}]}, +"tools.nanosabre.NanosabreSwing1":{"category":"master", "sounds":[{"name":"NanosabreSwing1", "stream":false}]}, +"tools.nanosabre.NanosabreSwing2":{"category":"master", "sounds":[{"name":"NanosabreSwing2", "stream":false}]}, +"tools.nanosabre.NanosabreSwing3":{"category":"master", "sounds":[{"name":"NanosabreSwing3", "stream":false}]}, + +"tools.quantumsuit.HelmetLoop":{"category":"master", "sounds":[{"name":"HelmetLoop", "stream":false}]}, +"tools.quantumsuit.QuantumsuitBoots":{"category":"master", "sounds":[{"name":"QuantumsuitBoots", "stream":false}]} } \ No newline at end of file diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info index 7d47238d..e27942bd 100644 --- a/src/main/resources/mcmod.info +++ b/src/main/resources/mcmod.info @@ -3,7 +3,7 @@ "name": "GregTech-Addon", "description": "This Mod adds the awesome Technology of GregTech-Intergalactical to your World!", "mcversion": "1.7.10", - "version": "5.08", + "version": "5.09", "logoFile": "/assets/gregtech_addon/textures/LogoGTI_Long.png", "url": "http://forum.industrial-craft.net/index.php?page=Thread&threadID=11488", "updateUrl": "",