From 92238a0f3b06a80683f50dfd2d6e9164d2d0f1ab Mon Sep 17 00:00:00 2001 From: GlodBlock <1356392126@qq.com> Date: Tue, 7 Dec 2021 23:02:17 +0800 Subject: rename package --- .../GoodGenerator/Blocks/MyFluids/BaseFluid.java | 54 - .../Blocks/MyFluids/FluidsBuilder.java | 177 -- .../GoodGenerator/Blocks/RegularBlock/Casing.java | 123 -- .../Blocks/RegularBlock/ComplexTextureCasing.java | 58 - .../GoodGenerator/Blocks/RegularBlock/Frame.java | 36 - .../GoodGenerator/Blocks/RegularBlock/TEBlock.java | 180 -- .../GoodGenerator/Blocks/TEs/EssentiaHatch.java | 226 --- .../Blocks/TEs/FuelRefineFactory.java | 369 ---- .../Blocks/TEs/LargeEssentiaGenerator.java | 543 ------ .../Blocks/TEs/MegaPlasmaTurbine.java | 50 - .../Blocks/TEs/MetaTE/NeutronAccelerator.java | 66 - .../Blocks/TEs/MetaTE/NeutronSensor.java | 168 -- .../Blocks/TEs/MetalVaporTurbine.java | 5 - .../GoodGenerator/Blocks/TEs/MultiNqGenerator.java | 427 ----- .../GoodGenerator/Blocks/TEs/NeutronActivator.java | 441 ----- .../Blocks/TEs/UniversalChemicalFuelEngine.java | 348 ---- .../GoodGenerator/Blocks/TEs/YottaFluidTank.java | 424 ----- .../java/GoodGenerator/Client/ClientProxy.java | 21 - .../Client/GUI/NeutronActivatorGUIClient.java | 43 - .../Client/GUI/NeutronSensorGUIClient.java | 110 -- .../GoodGenerator/Client/GUI/YOTTankGUIClient.java | 28 - .../java/GoodGenerator/Common/CommonProxy.java | 11 - .../Container/NeutronActivatorGUIContainer.java | 80 - .../Container/NeutronSensorGUIContainer.java | 12 - .../Common/Container/YOTTankGUIContainer.java | 133 -- .../java/GoodGenerator/CrossMod/NEI/IMCForNEI.java | 24 - .../GoodGenerator/CrossMod/NEI/NEI_Config.java | 38 - .../CrossMod/NEI/NeutronActivatorHandler.java | 43 - .../Thaumcraft/LargeEssentiaEnergyData.java | 124 -- .../CrossMod/Thaumcraft/Research.java | 621 ------- src/main/java/GoodGenerator/Items/FuelRod.java | 183 -- .../java/GoodGenerator/Items/MyItemBlocks.java | 90 - src/main/java/GoodGenerator/Items/MyItems.java | 112 -- src/main/java/GoodGenerator/Items/MyMaterial.java | 1015 ----------- .../java/GoodGenerator/Items/RadioactiveItem.java | 40 - .../GoodGenerator/Loader/AchievementLoader.java | 4 - .../GoodGenerator/Loader/FuelRecipeLoader.java | 79 - .../java/GoodGenerator/Loader/FuelRodLoader.java | 56 - src/main/java/GoodGenerator/Loader/Loaders.java | 212 --- .../Loader/NaquadahReworkRecipeLoader.java | 1125 ------------ .../Loader/NeutronActivatorLoader.java | 27 - .../java/GoodGenerator/Loader/RecipeLoader.java | 1904 -------------------- .../java/GoodGenerator/Loader/RecipeLoader_02.java | 670 ------- .../java/GoodGenerator/Main/GG_Config_Loader.java | 69 - .../java/GoodGenerator/Main/GoodGenerator.java | 74 - .../java/GoodGenerator/Network/MessageMTEBase.java | 98 - .../Network/MessageOpenNeutronSensorGUI.java | 50 - .../Network/MessageSetNeutronSensorData.java | 52 - src/main/java/GoodGenerator/Tabs/MyTabs.java | 16 - .../java/GoodGenerator/util/CharExchanger.java | 124 -- .../java/GoodGenerator/util/CrackRecipeAdder.java | 78 - .../GoodGenerator/util/DescTextLocalization.java | 17 - src/main/java/GoodGenerator/util/ItemRefer.java | 152 -- src/main/java/GoodGenerator/util/MaterialFix.java | 50 - .../java/GoodGenerator/util/MyRecipeAdder.java | 100 - .../java/GoodGenerator/util/StructureHelper.java | 112 -- .../goodgenerator/blocks/myFluids/BaseFluid.java | 54 + .../blocks/myFluids/FluidsBuilder.java | 176 ++ .../goodgenerator/blocks/regularBlock/Casing.java | 123 ++ .../blocks/regularBlock/ComplexTextureCasing.java | 58 + .../goodgenerator/blocks/regularBlock/Frame.java | 36 + .../goodgenerator/blocks/regularBlock/TEBlock.java | 180 ++ .../blocks/tileEntity/EssentiaHatch.java | 225 +++ .../blocks/tileEntity/FuelRefineFactory.java | 368 ++++ .../GTMetaTileEntity/NeutronAccelerator.java | 66 + .../tileEntity/GTMetaTileEntity/NeutronSensor.java | 168 ++ .../blocks/tileEntity/LargeEssentiaGenerator.java | 539 ++++++ .../blocks/tileEntity/MegaPlasmaTurbine.java | 50 + .../blocks/tileEntity/MetalVaporTurbine.java | 5 + .../blocks/tileEntity/MultiNqGenerator.java | 427 +++++ .../blocks/tileEntity/NeutronActivator.java | 441 +++++ .../tileEntity/UniversalChemicalFuelEngine.java | 348 ++++ .../blocks/tileEntity/YottaFluidTank.java | 424 +++++ .../java/goodgenerator/client/ClientProxy.java | 21 + .../client/GUI/NeutronActivatorGUIClient.java | 43 + .../client/GUI/NeutronSensorGUIClient.java | 110 ++ .../goodgenerator/client/GUI/YOTTankGUIClient.java | 28 + .../java/goodgenerator/common/CommonProxy.java | 11 + .../container/NeutronActivatorGUIContainer.java | 80 + .../container/NeutronSensorGUIContainer.java | 12 + .../common/container/YOTTankGUIContainer.java | 133 ++ .../java/goodgenerator/crossmod/nei/IMCForNEI.java | 24 + .../goodgenerator/crossmod/nei/NEI_Config.java | 38 + .../crossmod/nei/NeutronActivatorHandler.java | 43 + .../thaumcraft/LargeEssentiaEnergyData.java | 124 ++ .../crossmod/thaumcraft/Research.java | 620 +++++++ src/main/java/goodgenerator/items/FuelRod.java | 183 ++ .../java/goodgenerator/items/MyItemBlocks.java | 89 + src/main/java/goodgenerator/items/MyItems.java | 112 ++ src/main/java/goodgenerator/items/MyMaterial.java | 1015 +++++++++++ .../java/goodgenerator/items/RadioactiveItem.java | 40 + .../items/nuclear/IsotopeMaterial.java | 55 + .../items/nuclear/IsotopeMaterialLoader.java | 16 + .../items/nuclear/NuclearMetaItemGenerator.java | 103 ++ .../items/nuclear/NuclearTextures.java | 31 + .../goodgenerator/loader/AchievementLoader.java | 4 + .../goodgenerator/loader/FuelRecipeLoader.java | 79 + .../java/goodgenerator/loader/FuelRodLoader.java | 56 + src/main/java/goodgenerator/loader/Loaders.java | 215 +++ .../loader/NaquadahReworkRecipeLoader.java | 1125 ++++++++++++ .../loader/NeutronActivatorLoader.java | 24 + .../java/goodgenerator/loader/RecipeLoader.java | 1904 ++++++++++++++++++++ .../java/goodgenerator/loader/RecipeLoader_02.java | 670 +++++++ .../java/goodgenerator/main/GG_Config_Loader.java | 69 + .../java/goodgenerator/main/GoodGenerator.java | 76 + .../java/goodgenerator/network/MessageMTEBase.java | 98 + .../network/MessageOpenNeutronSensorGUI.java | 50 + .../network/MessageSetNeutronSensorData.java | 52 + src/main/java/goodgenerator/tabs/MyTabs.java | 16 + src/main/java/goodgenerator/tabs/NuclearTab.java | 16 + .../java/goodgenerator/util/CharExchanger.java | 124 ++ .../java/goodgenerator/util/CrackRecipeAdder.java | 78 + .../goodgenerator/util/DescTextLocalization.java | 17 + src/main/java/goodgenerator/util/ItemRefer.java | 152 ++ src/main/java/goodgenerator/util/MaterialFix.java | 50 + .../java/goodgenerator/util/MyRecipeAdder.java | 100 + .../java/goodgenerator/util/StructureHelper.java | 112 ++ .../resources/assets/goodgenerator/lang/en_US.lang | 1 + .../textures/items/icons/isotope/stable1.png | Bin 0 -> 456 bytes .../textures/items/icons/isotope/stable1tiny.png | Bin 0 -> 577 bytes .../textures/items/icons/isotope/stable2.png | Bin 0 -> 618 bytes .../textures/items/icons/isotope/stable2tiny.png | Bin 0 -> 748 bytes .../textures/items/icons/isotope/unstable1.png | Bin 0 -> 500 bytes .../textures/items/icons/isotope/unstable1tiny.png | Bin 0 -> 634 bytes .../textures/items/icons/isotope/unstable2.png | Bin 0 -> 469 bytes .../textures/items/icons/isotope/unstable2tiny.png | Bin 0 -> 590 bytes .../textures/items/icons/isotope/unstable3.png | Bin 0 -> 560 bytes .../textures/items/icons/isotope/unstable3tiny.png | Bin 0 -> 704 bytes .../textures/items/icons/isotope/unstable4.png | Bin 0 -> 479 bytes .../textures/items/icons/isotope/unstable4tiny.png | Bin 0 -> 588 bytes 130 files changed, 11707 insertions(+), 11492 deletions(-) delete mode 100644 src/main/java/GoodGenerator/Blocks/MyFluids/BaseFluid.java delete mode 100644 src/main/java/GoodGenerator/Blocks/MyFluids/FluidsBuilder.java delete mode 100644 src/main/java/GoodGenerator/Blocks/RegularBlock/Casing.java delete mode 100644 src/main/java/GoodGenerator/Blocks/RegularBlock/ComplexTextureCasing.java delete mode 100644 src/main/java/GoodGenerator/Blocks/RegularBlock/Frame.java delete mode 100644 src/main/java/GoodGenerator/Blocks/RegularBlock/TEBlock.java delete mode 100644 src/main/java/GoodGenerator/Blocks/TEs/EssentiaHatch.java delete mode 100644 src/main/java/GoodGenerator/Blocks/TEs/FuelRefineFactory.java delete mode 100644 src/main/java/GoodGenerator/Blocks/TEs/LargeEssentiaGenerator.java delete mode 100644 src/main/java/GoodGenerator/Blocks/TEs/MegaPlasmaTurbine.java delete mode 100644 src/main/java/GoodGenerator/Blocks/TEs/MetaTE/NeutronAccelerator.java delete mode 100644 src/main/java/GoodGenerator/Blocks/TEs/MetaTE/NeutronSensor.java delete mode 100644 src/main/java/GoodGenerator/Blocks/TEs/MetalVaporTurbine.java delete mode 100644 src/main/java/GoodGenerator/Blocks/TEs/MultiNqGenerator.java delete mode 100644 src/main/java/GoodGenerator/Blocks/TEs/NeutronActivator.java delete mode 100644 src/main/java/GoodGenerator/Blocks/TEs/UniversalChemicalFuelEngine.java delete mode 100644 src/main/java/GoodGenerator/Blocks/TEs/YottaFluidTank.java delete mode 100644 src/main/java/GoodGenerator/Client/ClientProxy.java delete mode 100644 src/main/java/GoodGenerator/Client/GUI/NeutronActivatorGUIClient.java delete mode 100644 src/main/java/GoodGenerator/Client/GUI/NeutronSensorGUIClient.java delete mode 100644 src/main/java/GoodGenerator/Client/GUI/YOTTankGUIClient.java delete mode 100644 src/main/java/GoodGenerator/Common/CommonProxy.java delete mode 100644 src/main/java/GoodGenerator/Common/Container/NeutronActivatorGUIContainer.java delete mode 100644 src/main/java/GoodGenerator/Common/Container/NeutronSensorGUIContainer.java delete mode 100644 src/main/java/GoodGenerator/Common/Container/YOTTankGUIContainer.java delete mode 100644 src/main/java/GoodGenerator/CrossMod/NEI/IMCForNEI.java delete mode 100644 src/main/java/GoodGenerator/CrossMod/NEI/NEI_Config.java delete mode 100644 src/main/java/GoodGenerator/CrossMod/NEI/NeutronActivatorHandler.java delete mode 100644 src/main/java/GoodGenerator/CrossMod/Thaumcraft/LargeEssentiaEnergyData.java delete mode 100644 src/main/java/GoodGenerator/CrossMod/Thaumcraft/Research.java delete mode 100644 src/main/java/GoodGenerator/Items/FuelRod.java delete mode 100644 src/main/java/GoodGenerator/Items/MyItemBlocks.java delete mode 100644 src/main/java/GoodGenerator/Items/MyItems.java delete mode 100644 src/main/java/GoodGenerator/Items/MyMaterial.java delete mode 100644 src/main/java/GoodGenerator/Items/RadioactiveItem.java delete mode 100644 src/main/java/GoodGenerator/Loader/AchievementLoader.java delete mode 100644 src/main/java/GoodGenerator/Loader/FuelRecipeLoader.java delete mode 100644 src/main/java/GoodGenerator/Loader/FuelRodLoader.java delete mode 100644 src/main/java/GoodGenerator/Loader/Loaders.java delete mode 100644 src/main/java/GoodGenerator/Loader/NaquadahReworkRecipeLoader.java delete mode 100644 src/main/java/GoodGenerator/Loader/NeutronActivatorLoader.java delete mode 100644 src/main/java/GoodGenerator/Loader/RecipeLoader.java delete mode 100644 src/main/java/GoodGenerator/Loader/RecipeLoader_02.java delete mode 100644 src/main/java/GoodGenerator/Main/GG_Config_Loader.java delete mode 100644 src/main/java/GoodGenerator/Main/GoodGenerator.java delete mode 100644 src/main/java/GoodGenerator/Network/MessageMTEBase.java delete mode 100644 src/main/java/GoodGenerator/Network/MessageOpenNeutronSensorGUI.java delete mode 100644 src/main/java/GoodGenerator/Network/MessageSetNeutronSensorData.java delete mode 100644 src/main/java/GoodGenerator/Tabs/MyTabs.java delete mode 100644 src/main/java/GoodGenerator/util/CharExchanger.java delete mode 100644 src/main/java/GoodGenerator/util/CrackRecipeAdder.java delete mode 100644 src/main/java/GoodGenerator/util/DescTextLocalization.java delete mode 100644 src/main/java/GoodGenerator/util/ItemRefer.java delete mode 100644 src/main/java/GoodGenerator/util/MaterialFix.java delete mode 100644 src/main/java/GoodGenerator/util/MyRecipeAdder.java delete mode 100644 src/main/java/GoodGenerator/util/StructureHelper.java create mode 100644 src/main/java/goodgenerator/blocks/myFluids/BaseFluid.java create mode 100644 src/main/java/goodgenerator/blocks/myFluids/FluidsBuilder.java create mode 100644 src/main/java/goodgenerator/blocks/regularBlock/Casing.java create mode 100644 src/main/java/goodgenerator/blocks/regularBlock/ComplexTextureCasing.java create mode 100644 src/main/java/goodgenerator/blocks/regularBlock/Frame.java create mode 100644 src/main/java/goodgenerator/blocks/regularBlock/TEBlock.java create mode 100644 src/main/java/goodgenerator/blocks/tileEntity/EssentiaHatch.java create mode 100644 src/main/java/goodgenerator/blocks/tileEntity/FuelRefineFactory.java create mode 100644 src/main/java/goodgenerator/blocks/tileEntity/GTMetaTileEntity/NeutronAccelerator.java create mode 100644 src/main/java/goodgenerator/blocks/tileEntity/GTMetaTileEntity/NeutronSensor.java create mode 100644 src/main/java/goodgenerator/blocks/tileEntity/LargeEssentiaGenerator.java create mode 100644 src/main/java/goodgenerator/blocks/tileEntity/MegaPlasmaTurbine.java create mode 100644 src/main/java/goodgenerator/blocks/tileEntity/MetalVaporTurbine.java create mode 100644 src/main/java/goodgenerator/blocks/tileEntity/MultiNqGenerator.java create mode 100644 src/main/java/goodgenerator/blocks/tileEntity/NeutronActivator.java create mode 100644 src/main/java/goodgenerator/blocks/tileEntity/UniversalChemicalFuelEngine.java create mode 100644 src/main/java/goodgenerator/blocks/tileEntity/YottaFluidTank.java create mode 100644 src/main/java/goodgenerator/client/ClientProxy.java create mode 100644 src/main/java/goodgenerator/client/GUI/NeutronActivatorGUIClient.java create mode 100644 src/main/java/goodgenerator/client/GUI/NeutronSensorGUIClient.java create mode 100644 src/main/java/goodgenerator/client/GUI/YOTTankGUIClient.java create mode 100644 src/main/java/goodgenerator/common/CommonProxy.java create mode 100644 src/main/java/goodgenerator/common/container/NeutronActivatorGUIContainer.java create mode 100644 src/main/java/goodgenerator/common/container/NeutronSensorGUIContainer.java create mode 100644 src/main/java/goodgenerator/common/container/YOTTankGUIContainer.java create mode 100644 src/main/java/goodgenerator/crossmod/nei/IMCForNEI.java create mode 100644 src/main/java/goodgenerator/crossmod/nei/NEI_Config.java create mode 100644 src/main/java/goodgenerator/crossmod/nei/NeutronActivatorHandler.java create mode 100644 src/main/java/goodgenerator/crossmod/thaumcraft/LargeEssentiaEnergyData.java create mode 100644 src/main/java/goodgenerator/crossmod/thaumcraft/Research.java create mode 100644 src/main/java/goodgenerator/items/FuelRod.java create mode 100644 src/main/java/goodgenerator/items/MyItemBlocks.java create mode 100644 src/main/java/goodgenerator/items/MyItems.java create mode 100644 src/main/java/goodgenerator/items/MyMaterial.java create mode 100644 src/main/java/goodgenerator/items/RadioactiveItem.java create mode 100644 src/main/java/goodgenerator/items/nuclear/IsotopeMaterial.java create mode 100644 src/main/java/goodgenerator/items/nuclear/IsotopeMaterialLoader.java create mode 100644 src/main/java/goodgenerator/items/nuclear/NuclearMetaItemGenerator.java create mode 100644 src/main/java/goodgenerator/items/nuclear/NuclearTextures.java create mode 100644 src/main/java/goodgenerator/loader/AchievementLoader.java create mode 100644 src/main/java/goodgenerator/loader/FuelRecipeLoader.java create mode 100644 src/main/java/goodgenerator/loader/FuelRodLoader.java create mode 100644 src/main/java/goodgenerator/loader/Loaders.java create mode 100644 src/main/java/goodgenerator/loader/NaquadahReworkRecipeLoader.java create mode 100644 src/main/java/goodgenerator/loader/NeutronActivatorLoader.java create mode 100644 src/main/java/goodgenerator/loader/RecipeLoader.java create mode 100644 src/main/java/goodgenerator/loader/RecipeLoader_02.java create mode 100644 src/main/java/goodgenerator/main/GG_Config_Loader.java create mode 100644 src/main/java/goodgenerator/main/GoodGenerator.java create mode 100644 src/main/java/goodgenerator/network/MessageMTEBase.java create mode 100644 src/main/java/goodgenerator/network/MessageOpenNeutronSensorGUI.java create mode 100644 src/main/java/goodgenerator/network/MessageSetNeutronSensorData.java create mode 100644 src/main/java/goodgenerator/tabs/MyTabs.java create mode 100644 src/main/java/goodgenerator/tabs/NuclearTab.java create mode 100644 src/main/java/goodgenerator/util/CharExchanger.java create mode 100644 src/main/java/goodgenerator/util/CrackRecipeAdder.java create mode 100644 src/main/java/goodgenerator/util/DescTextLocalization.java create mode 100644 src/main/java/goodgenerator/util/ItemRefer.java create mode 100644 src/main/java/goodgenerator/util/MaterialFix.java create mode 100644 src/main/java/goodgenerator/util/MyRecipeAdder.java create mode 100644 src/main/java/goodgenerator/util/StructureHelper.java create mode 100644 src/main/resources/assets/gregtech/textures/items/icons/isotope/stable1.png create mode 100644 src/main/resources/assets/gregtech/textures/items/icons/isotope/stable1tiny.png create mode 100644 src/main/resources/assets/gregtech/textures/items/icons/isotope/stable2.png create mode 100644 src/main/resources/assets/gregtech/textures/items/icons/isotope/stable2tiny.png create mode 100644 src/main/resources/assets/gregtech/textures/items/icons/isotope/unstable1.png create mode 100644 src/main/resources/assets/gregtech/textures/items/icons/isotope/unstable1tiny.png create mode 100644 src/main/resources/assets/gregtech/textures/items/icons/isotope/unstable2.png create mode 100644 src/main/resources/assets/gregtech/textures/items/icons/isotope/unstable2tiny.png create mode 100644 src/main/resources/assets/gregtech/textures/items/icons/isotope/unstable3.png create mode 100644 src/main/resources/assets/gregtech/textures/items/icons/isotope/unstable3tiny.png create mode 100644 src/main/resources/assets/gregtech/textures/items/icons/isotope/unstable4.png create mode 100644 src/main/resources/assets/gregtech/textures/items/icons/isotope/unstable4tiny.png (limited to 'src') diff --git a/src/main/java/GoodGenerator/Blocks/MyFluids/BaseFluid.java b/src/main/java/GoodGenerator/Blocks/MyFluids/BaseFluid.java deleted file mode 100644 index e12f54928c..0000000000 --- a/src/main/java/GoodGenerator/Blocks/MyFluids/BaseFluid.java +++ /dev/null @@ -1,54 +0,0 @@ -package GoodGenerator.Blocks.MyFluids; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.util.IIcon; -import net.minecraftforge.fluids.BlockFluidClassic; -import net.minecraftforge.fluids.Fluid; -import net.minecraftforge.fluids.FluidRegistry; - -import static GoodGenerator.Main.GoodGenerator.MOD_ID; - -public class BaseFluid extends BlockFluidClassic{ - @SideOnly( Side.CLIENT ) - protected IIcon stillIcon; - @SideOnly( Side.CLIENT ) - protected IIcon flowingIcon; - private String stillTexture; - private String flowingTexture; - - public BaseFluid(Fluid fluid, Material material) - { - super( fluid, material ); - } - - public void SetTexture(String fluidName) - { - stillTexture = MOD_ID + ":fluids/" + fluidName + ".still"; - flowingTexture = MOD_ID + ":fluids/" + fluidName + ".flowing"; - } - - public static Fluid BuildFluid(String fluidName){ - Fluid tFluid = new Fluid(fluidName); - FluidRegistry.registerFluid(tFluid); - return tFluid; - } - - @SideOnly( Side.CLIENT ) - @Override - public void registerBlockIcons( IIconRegister register ) - { - stillIcon = register.registerIcon(stillTexture); - flowingIcon = register.registerIcon(flowingTexture); - - super.getFluid().setIcons( stillIcon, flowingIcon ); - } - - @Override - public IIcon getIcon( int side, int meta ) - { - return ( side == 0 || side == 1 ) ? stillIcon : flowingIcon; - } -} diff --git a/src/main/java/GoodGenerator/Blocks/MyFluids/FluidsBuilder.java b/src/main/java/GoodGenerator/Blocks/MyFluids/FluidsBuilder.java deleted file mode 100644 index 72888310b4..0000000000 --- a/src/main/java/GoodGenerator/Blocks/MyFluids/FluidsBuilder.java +++ /dev/null @@ -1,177 +0,0 @@ -package GoodGenerator.Blocks.MyFluids; - -import GoodGenerator.CrossMod.NEI.NEI_Config; -import cpw.mods.fml.common.registry.GameRegistry; -import net.minecraft.block.material.Material; -import net.minecraft.item.ItemStack; -import net.minecraftforge.fluids.Fluid; - -public class FluidsBuilder { - public FluidsBuilder(){ - } - - public static void Register() { - crackedNaquadahGas_Lightly(); - crackedNaquadahGas_Moderately(); - crackedNaquadahGas_Heavily(); - crackedLightNaquadahFuel_Lightly(); - crackedLightNaquadahFuel_Moderately(); - crackedLightNaquadahFuel_Heavily(); - crackedHeavyNaquadahFuel_Lightly(); - crackedHeavyNaquadahFuel_Moderately(); - crackedHeavyNaquadahFuel_Heavily(); - crackedNaquadahAsphalt_Lightly(); - crackedNaquadahAsphalt_Moderately(); - crackedNaquadahAsphalt_Heavily(); - combustionPromotor(); - } - - public static void crackedNaquadahGas_Lightly(){ - Fluid tmp = BaseFluid.BuildFluid("lightlyCrackedNaquadahGas"); - tmp.setGaseous(true) - .setTemperature(800); - BaseFluid tmp2 = new BaseFluid(tmp, Material.water); - tmp2.SetTexture("lightlyCrackedNaquadahGas"); - tmp2.setBlockName("lightlyCrackedNaquadahGas"); - GameRegistry.registerBlock(tmp2,"lightlyCrackedNaquadahGas"); - NEI_Config.hide(tmp2); - } - - public static void crackedNaquadahGas_Moderately(){ - Fluid tmp = BaseFluid.BuildFluid("moderatelyCrackedNaquadahGas"); - tmp.setGaseous(true) - .setTemperature(800); - BaseFluid tmp2 = new BaseFluid(tmp, Material.water); - tmp2.SetTexture("moderatelyCrackedNaquadahGas"); - tmp2.setBlockName("moderatelyCrackedNaquadahGas"); - GameRegistry.registerBlock(tmp2,"moderatelyCrackedNaquadahGas"); - NEI_Config.hide(tmp2); - } - - public static void crackedNaquadahGas_Heavily(){ - Fluid tmp = BaseFluid.BuildFluid("heavilyCrackedNaquadahGas"); - tmp.setGaseous(true) - .setTemperature(800); - BaseFluid tmp2 = new BaseFluid(tmp, Material.water); - tmp2.SetTexture("heavilyCrackedNaquadahGas"); - tmp2.setBlockName("heavilyCrackedNaquadahGas"); - GameRegistry.registerBlock(tmp2,"heavilyCrackedNaquadahGas"); - NEI_Config.hide(tmp2); - } - - public static void crackedLightNaquadahFuel_Lightly(){ - Fluid tmp = BaseFluid.BuildFluid("lightlyCrackedLightNaquadahFuel"); - tmp.setGaseous(false) - .setTemperature(1200); - BaseFluid tmp2 = new BaseFluid(tmp, Material.water); - tmp2.SetTexture("lightlyCrackedLightNaquadahFuel"); - tmp2.setBlockName("lightlyCrackedLightNaquadahFuel"); - GameRegistry.registerBlock(tmp2,"lightlyCrackedLightNaquadahFuel"); - NEI_Config.hide(tmp2); - } - - public static void crackedLightNaquadahFuel_Moderately(){ - Fluid tmp = BaseFluid.BuildFluid("moderatelyCrackedLightNaquadahFuel"); - tmp.setGaseous(false) - .setTemperature(1200); - BaseFluid tmp2 = new BaseFluid(tmp, Material.water); - tmp2.SetTexture("moderatelyCrackedLightNaquadahFuel"); - tmp2.setBlockName("moderatelyCrackedLightNaquadahFuel"); - GameRegistry.registerBlock(tmp2,"moderatelyCrackedLightNaquadahFuel"); - NEI_Config.hide(tmp2); - } - - public static void crackedLightNaquadahFuel_Heavily(){ - Fluid tmp = BaseFluid.BuildFluid("heavilyCrackedLightNaquadahFuel"); - tmp.setGaseous(false) - .setTemperature(1200); - BaseFluid tmp2 = new BaseFluid(tmp, Material.water); - tmp2.SetTexture("heavilyCrackedLightNaquadahFuel"); - tmp2.setBlockName("heavilyCrackedLightNaquadahFuel"); - GameRegistry.registerBlock(tmp2,"heavilyCrackedLightNaquadahFuel"); - NEI_Config.hide(tmp2); - } - - public static void crackedHeavyNaquadahFuel_Lightly(){ - Fluid tmp = BaseFluid.BuildFluid("lightlyCrackedHeavyNaquadahFuel"); - tmp.setGaseous(false) - .setTemperature(1200); - BaseFluid tmp2 = new BaseFluid(tmp, Material.water); - tmp2.SetTexture("lightlyCrackedHeavyNaquadahFuel"); - tmp2.setBlockName("lightlyCrackedHeavyNaquadahFuel"); - GameRegistry.registerBlock(tmp2,"lightlyCrackedHeavyNaquadahFuel"); - NEI_Config.hide(tmp2); - } - - public static void crackedHeavyNaquadahFuel_Moderately(){ - Fluid tmp = BaseFluid.BuildFluid("moderatelyCrackedHeavyNaquadahFuel"); - tmp.setGaseous(false) - .setTemperature(1200); - BaseFluid tmp2 = new BaseFluid(tmp, Material.water); - tmp2.SetTexture("moderatelyCrackedHeavyNaquadahFuel"); - tmp2.setBlockName("moderatelyCrackedHeavyNaquadahFuel"); - GameRegistry.registerBlock(tmp2,"moderatelyCrackedHeavyNaquadahFuel"); - NEI_Config.hide(tmp2); - } - - public static void crackedHeavyNaquadahFuel_Heavily(){ - Fluid tmp = BaseFluid.BuildFluid("heavilyCrackedHeavyNaquadahFuel"); - tmp.setGaseous(false) - .setTemperature(1200); - BaseFluid tmp2 = new BaseFluid(tmp, Material.water); - tmp2.SetTexture("heavilyCrackedHeavyNaquadahFuel"); - tmp2.setBlockName("heavilyCrackedHeavyNaquadahFuel"); - GameRegistry.registerBlock(tmp2,"heavilyCrackedHeavyNaquadahFuel"); - NEI_Config.hide(tmp2); - } - - public static void crackedNaquadahAsphalt_Lightly(){ - Fluid tmp = BaseFluid.BuildFluid("lightlyCrackedNaquadahAsphalt"); - tmp.setGaseous(false) - .setTemperature(1800) - .setDensity(20000) - .setViscosity(20000); - BaseFluid tmp2 = new BaseFluid(tmp, Material.water); - tmp2.SetTexture("lightlyCrackedNaquadahAsphalt"); - tmp2.setBlockName("lightlyCrackedNaquadahAsphalt"); - GameRegistry.registerBlock(tmp2,"lightlyCrackedNaquadahAsphalt"); - NEI_Config.hide(tmp2); - } - - public static void crackedNaquadahAsphalt_Moderately(){ - Fluid tmp = BaseFluid.BuildFluid("moderatelyCrackedNaquadahAsphalt"); - tmp.setGaseous(false) - .setTemperature(1800) - .setDensity(20000) - .setViscosity(20000); - BaseFluid tmp2 = new BaseFluid(tmp, Material.water); - tmp2.SetTexture("moderatelyCrackedNaquadahAsphalt"); - tmp2.setBlockName("moderatelyCrackedNaquadahAsphalt"); - GameRegistry.registerBlock(tmp2,"moderatelyCrackedNaquadahAsphalt"); - NEI_Config.hide(tmp2); - } - - public static void crackedNaquadahAsphalt_Heavily(){ - Fluid tmp = BaseFluid.BuildFluid("heavilyCrackedNaquadahAsphalt"); - tmp.setGaseous(false) - .setTemperature(1800) - .setDensity(20000) - .setViscosity(20000); - BaseFluid tmp2 = new BaseFluid(tmp, Material.water); - tmp2.SetTexture("heavilyCrackedNaquadahAsphalt"); - tmp2.setBlockName("heavilyCrackedNaquadahAsphalt"); - GameRegistry.registerBlock(tmp2,"heavilyCrackedNaquadahAsphalt"); - NEI_Config.hide(tmp2); - } - - public static void combustionPromotor(){ - Fluid tmp = BaseFluid.BuildFluid("combustionPromotor"); - tmp.setGaseous(false) - .setTemperature(300); - BaseFluid tmp2 = new BaseFluid(tmp, Material.water); - tmp2.SetTexture("combustionPromotor"); - tmp2.setBlockName("combustionPromotor"); - GameRegistry.registerBlock(tmp2,"combustionPromotor"); - NEI_Config.hide(tmp2); - } -} diff --git a/src/main/java/GoodGenerator/Blocks/RegularBlock/Casing.java b/src/main/java/GoodGenerator/Blocks/RegularBlock/Casing.java deleted file mode 100644 index b450bc5cac..0000000000 --- a/src/main/java/GoodGenerator/Blocks/RegularBlock/Casing.java +++ /dev/null @@ -1,123 +0,0 @@ -package GoodGenerator.Blocks.RegularBlock; - -import GoodGenerator.Main.GoodGenerator; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import gregtech.api.GregTech_API; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EnumCreatureType; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.IIcon; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; - -import java.util.List; - -public class Casing extends Block { - - @SideOnly(Side.CLIENT) - protected IIcon[] texture; - String[] textureNames; - protected String name; - - public Casing(String name) { - super(Material.iron); - this.setHardness(9.0F); - this.setResistance(5.0F); - this.name = name; - this.setHarvestLevel("wrench",2); - this.setCreativeTab(GoodGenerator.GG); - GregTech_API.registerMachineBlock(this, -1); - } - - public Casing(String name, String[] texture){ - super(Material.iron); - this.setHardness(9.0F); - this.setResistance(5.0F); - this.name = name; - this.textureNames = texture; - this.setHarvestLevel("wrench",2); - this.setCreativeTab(GoodGenerator.GG); - GregTech_API.registerMachineBlock(this, -1); - } - - public Casing(String name, String[] texture, Material material){ - super(material); - this.setHardness(9.0F); - this.setResistance(5.0F); - this.name = name; - this.textureNames = texture; - this.setHarvestLevel("wrench",2); - this.setCreativeTab(GoodGenerator.GG); - GregTech_API.registerMachineBlock(this, -1); - } - - @Override - public int damageDropped(int meta) { - return meta; - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIcon(int side, int meta) { - return meta < this.texture.length ? this.texture[meta] : this.texture[0]; - } - - @Override - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister par1IconRegister) { - this.texture = new IIcon[this.textureNames.length]; - for (int i = 0; i < this.textureNames.length; i++) { - this.texture[i] = par1IconRegister.registerIcon(this.textureNames[i]); - } - } - - @Override - @SideOnly(Side.CLIENT) - @SuppressWarnings("unchecked") - public void getSubBlocks(Item item, CreativeTabs tab, List list) { - for (int i = 0; i < this.textureNames.length; i++) { - list.add(new ItemStack(item, 1, i)); - } - } - - @Override - public void onBlockAdded(World aWorld, int aX, int aY, int aZ) { - if (GregTech_API.isMachineBlock(this, aWorld.getBlockMetadata(aX, aY, aZ))) { - GregTech_API.causeMachineUpdate(aWorld, aX, aY, aZ); - } - } - - @Override - public void breakBlock(World aWorld, int aX, int aY, int aZ, Block aBlock, int aMetaData) { - if (GregTech_API.isMachineBlock(this, aWorld.getBlockMetadata(aX, aY, aZ))) { - GregTech_API.causeMachineUpdate(aWorld, aX, aY, aZ); - } - } - - @Override - public String getUnlocalizedName() { - return this.name; - } - - @Override - public boolean canBeReplacedByLeaves(IBlockAccess world, int x, int y, int z) { - return false; - } - - @Override - public boolean canEntityDestroy(IBlockAccess world, int x, int y, int z, Entity entity) { - return false; - } - - @Override - public boolean canCreatureSpawn(EnumCreatureType type, IBlockAccess world, int x, int y, int z) { - return false; - } - -} diff --git a/src/main/java/GoodGenerator/Blocks/RegularBlock/ComplexTextureCasing.java b/src/main/java/GoodGenerator/Blocks/RegularBlock/ComplexTextureCasing.java deleted file mode 100644 index b741233cab..0000000000 --- a/src/main/java/GoodGenerator/Blocks/RegularBlock/ComplexTextureCasing.java +++ /dev/null @@ -1,58 +0,0 @@ -package GoodGenerator.Blocks.RegularBlock; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.IIcon; - -import java.util.List; - -public class ComplexTextureCasing extends Casing{ - - @SideOnly(Side.CLIENT) - protected IIcon[] texture1, texture2; - String[] textureSide; - String[] textureTopAndDown; - - public ComplexTextureCasing(String name, String[] textureSide, String[] textureTopAndDown){ - super(name); - this.textureSide = textureSide; - this.textureTopAndDown = textureTopAndDown; - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIcon(int side, int meta) { - if (side < 2) { - return meta < this.texture2.length ? this.texture2[meta] : this.texture2[0]; - } - else { - return meta < this.texture1.length ? this.texture1[meta] : this.texture1[0]; - } - } - - @Override - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister par1IconRegister) { - this.texture1 = new IIcon[this.textureSide.length]; - for (int i = 0; i < this.textureSide.length; i++) { - this.texture1[i] = par1IconRegister.registerIcon(this.textureSide[i]); - } - this.texture2 = new IIcon[this.textureTopAndDown.length]; - for (int i = 0; i < this.textureTopAndDown.length; i++) { - this.texture2[i] = par1IconRegister.registerIcon(this.textureTopAndDown[i]); - } - } - - @Override - @SideOnly(Side.CLIENT) - @SuppressWarnings("unchecked") - public void getSubBlocks(Item item, CreativeTabs tab, List list) { - for (int i = 0; i < Math.max(this.textureSide.length, this.textureTopAndDown.length); i++) { - list.add(new ItemStack(item, 1, i)); - } - } -} diff --git a/src/main/java/GoodGenerator/Blocks/RegularBlock/Frame.java b/src/main/java/GoodGenerator/Blocks/RegularBlock/Frame.java deleted file mode 100644 index 771a0818bf..0000000000 --- a/src/main/java/GoodGenerator/Blocks/RegularBlock/Frame.java +++ /dev/null @@ -1,36 +0,0 @@ -package GoodGenerator.Blocks.RegularBlock; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.material.Material; -import net.minecraft.world.IBlockAccess; - -public class Frame extends Casing{ - public Frame(String name,String[] texture){ - super(name,texture, Material.iron); - } - - @Override - public boolean isOpaqueCube() { - return false; - } - - @Override - @SideOnly(Side.CLIENT) - public boolean shouldSideBeRendered(IBlockAccess worldClient, int xCoord, int yCoord, int zCoord, int aSide) { - if (worldClient.getBlock(xCoord, yCoord, zCoord) instanceof Frame) - return false; - return super.shouldSideBeRendered(worldClient, xCoord, yCoord, zCoord, aSide); - } - - @Override - @SideOnly(Side.CLIENT) - public int getRenderBlockPass() { - return 1; - } - - @Override - public boolean renderAsNormalBlock() { - return false; - } -} diff --git a/src/main/java/GoodGenerator/Blocks/RegularBlock/TEBlock.java b/src/main/java/GoodGenerator/Blocks/RegularBlock/TEBlock.java deleted file mode 100644 index d549a82a4c..0000000000 --- a/src/main/java/GoodGenerator/Blocks/RegularBlock/TEBlock.java +++ /dev/null @@ -1,180 +0,0 @@ -package GoodGenerator.Blocks.RegularBlock; - -import GoodGenerator.Blocks.TEs.EssentiaHatch; -import GoodGenerator.Main.GoodGenerator; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import gregtech.api.GregTech_API; -import gregtech.api.util.GT_Utility; -import net.minecraft.block.Block; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EnumCreatureType; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; -import net.minecraft.util.StatCollector; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import thaumcraft.api.aspects.Aspect; -import thaumcraft.api.aspects.IEssentiaContainerItem; - -import java.util.List; - -public class TEBlock extends BlockContainer { - - @SideOnly(Side.CLIENT) - protected IIcon[] texture; - String[] textureNames; - protected String name; - protected int index; - - public TEBlock(String name, String[] texture, CreativeTabs Tab){ - super(Material.iron); - this.setHardness(9.0F); - this.setResistance(5.0F); - this.name = name; - this.textureNames = texture; - this.setHarvestLevel("wrench",2); - this.setCreativeTab(GoodGenerator.GG); - GregTech_API.registerMachineBlock(this, -1); - } - - public TEBlock(String name, String[] texture, int index){ - super(Material.iron); - this.setHardness(9.0F); - this.setResistance(5.0F); - this.name = name; - this.textureNames = texture; - this.setHarvestLevel("wrench",2); - this.index = index; - this.setCreativeTab(GoodGenerator.GG); - GregTech_API.registerMachineBlock(this, -1); - } - - public TEBlock(String name, String[] texture, Material material){ - super(material); - this.setHardness(9.0F); - this.setResistance(5.0F); - this.name = name; - this.textureNames = texture; - this.setHarvestLevel("wrench",2); - this.setCreativeTab(GoodGenerator.GG); - GregTech_API.registerMachineBlock(this, -1); - } - - public int getIndex() { - return this.index; - } - - @Override - public int damageDropped(int meta) { - return meta; - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIcon(int side, int meta) { - return meta < this.texture.length ? this.texture[meta] : this.texture[0]; - } - - @Override - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister par1IconRegister) { - this.texture = new IIcon[this.textureNames.length]; - for (int i = 0; i < this.textureNames.length; i++) { - this.texture[i] = par1IconRegister.registerIcon(this.textureNames[i]); - } - } - - @Override - @SideOnly(Side.CLIENT) - @SuppressWarnings("unchecked") - public void getSubBlocks(Item item, CreativeTabs tab, List list) { - for (int i = 0; i < this.textureNames.length; i++) { - list.add(new ItemStack(item, 1, i)); - } - } - - @Override - public void onBlockAdded(World aWorld, int aX, int aY, int aZ) { - if (GregTech_API.isMachineBlock(this, aWorld.getBlockMetadata(aX, aY, aZ))) { - GregTech_API.causeMachineUpdate(aWorld, aX, aY, aZ); - } - } - - @Override - public void breakBlock(World aWorld, int aX, int aY, int aZ, Block aBlock, int aMetaData) { - if (GregTech_API.isMachineBlock(this, aWorld.getBlockMetadata(aX, aY, aZ))) { - GregTech_API.causeMachineUpdate(aWorld, aX, aY, aZ); - } - aWorld.removeTileEntity(aX, aY, aZ); - } - - @Override - public String getUnlocalizedName() { - return this.name; - } - - @Override - public boolean canBeReplacedByLeaves(IBlockAccess world, int x, int y, int z) { - return false; - } - - @Override - public boolean canEntityDestroy(IBlockAccess world, int x, int y, int z, Entity entity) { - return false; - } - - @Override - public boolean canCreatureSpawn(EnumCreatureType type, IBlockAccess world, int x, int y, int z) { - return false; - } - - @Override - public TileEntity createTileEntity(World world, int meta) { - if (index == 1) - return new EssentiaHatch(); - return null; - } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int par6, float par7, float par8, float par9) { - if (world.isRemote) { - return false; - } else { - TileEntity tile = world.getTileEntity(x, y, z); - if (index == 1) { - if (tile instanceof EssentiaHatch) { - ItemStack tItemStack = player.getHeldItem(); - if (tItemStack != null) { - Item tItem = tItemStack.getItem(); - if (tItem instanceof IEssentiaContainerItem && ((IEssentiaContainerItem) tItem).getAspects(player.getHeldItem()) != null && ((IEssentiaContainerItem) tItem).getAspects(player.getHeldItem()).size() > 0) { - Aspect tLocked = ((IEssentiaContainerItem) tItem).getAspects(player.getHeldItem()).getAspects()[0]; - ((EssentiaHatch) tile).setLockedAspect(tLocked); - GT_Utility.sendChatToPlayer(player, String.format(StatCollector.translateToLocal("essentiahatch.chat.0"), tLocked.getLocalizedDescription())); - } - } - else { - ((EssentiaHatch) tile).setLockedAspect(null); - GT_Utility.sendChatToPlayer(player, StatCollector.translateToLocal("essentiahatch.chat.1")); - } - world.markBlockForUpdate(x, y, z); - return true; - } - else return false; - } - else return false; - } - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return null; - } -} diff --git a/src/main/java/GoodGenerator/Blocks/TEs/EssentiaHatch.java b/src/main/java/GoodGenerator/Blocks/TEs/EssentiaHatch.java deleted file mode 100644 index c173cb7982..0000000000 --- a/src/main/java/GoodGenerator/Blocks/TEs/EssentiaHatch.java +++ /dev/null @@ -1,226 +0,0 @@ -package GoodGenerator.Blocks.TEs; - -import GoodGenerator.CrossMod.Thaumcraft.LargeEssentiaEnergyData; -import gregtech.api.util.GT_Log; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.network.NetworkManager; -import net.minecraft.network.Packet; -import net.minecraft.network.play.server.S35PacketUpdateTileEntity; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.ForgeDirection; -import thaumcraft.api.ThaumcraftApiHelper; -import thaumcraft.api.aspects.Aspect; -import thaumcraft.api.aspects.AspectList; -import thaumcraft.api.aspects.IAspectContainer; -import thaumcraft.api.aspects.IEssentiaTransport; - -import java.util.ArrayList; - -public class EssentiaHatch extends TileEntity implements IAspectContainer, IEssentiaTransport { - - private Aspect mLocked; - private AspectList current = new AspectList(); - public int mState = 0; - - public void setLockedAspect(Aspect aAspect) { - this.mLocked = aAspect; - } - - @Override - public void readFromNBT(NBTTagCompound tagCompound) { - super.readFromNBT(tagCompound); - - this.mLocked = Aspect.getAspect(tagCompound.getString("mLocked")); - this.mState = tagCompound.getInteger("mState"); - current = new AspectList(); - NBTTagList tlist = tagCompound.getTagList("Aspects", 10); - for (int j = 0; j < tlist.tagCount(); ++j) { - NBTTagCompound rs = tlist.getCompoundTagAt(j); - if (rs.hasKey("key")) { - current.add(Aspect.getAspect(rs.getString("key")), rs.getInteger("amount")); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound tagCompound) { - super.writeToNBT(tagCompound); - - tagCompound.setString("mLocked", this.mLocked == null ? "" : this.mLocked.getTag()); - tagCompound.setInteger("mState", mState); - NBTTagList tlist = new NBTTagList(); - Aspect[] aspectA = current.getAspects(); - for (Aspect aspect : aspectA) { - if (aspect != null) { - NBTTagCompound f = new NBTTagCompound(); - f.setString("key", aspect.getTag()); - f.setInteger("amount", current.getAmount(aspect)); - tlist.appendTag(f); - } - } - tagCompound.setTag("Aspects", tlist); - } - - public final Packet getDescriptionPacket() { - NBTTagCompound nbt = new NBTTagCompound(); - writeToNBT(nbt); - return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, 0, nbt); - } - - public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) { - NBTTagCompound nbt = pkt.func_148857_g(); - readFromNBT(nbt); - } - - public void markDirty() { - super.markDirty(); - if (this.worldObj.isRemote) { - return; - } - this.worldObj.markBlockForUpdate(this.xCoord, this.yCoord, this.zCoord); - } - - @Override - public void updateEntity() { - fillfrompipe(); - } - - public void fillfrompipe() { - if (getEssentiaAmount(null) > 1000) - return; - TileEntity[] te = new TileEntity[ForgeDirection.VALID_DIRECTIONS.length]; - for (int i = 0; i < ForgeDirection.VALID_DIRECTIONS.length; i++) { - te[i] = ThaumcraftApiHelper.getConnectableTile(this.worldObj, this.xCoord, this.yCoord, this.zCoord, ForgeDirection.VALID_DIRECTIONS[i]); - if (te[i] != null) { - IEssentiaTransport pipe = (IEssentiaTransport) te[i]; - if (!pipe.canOutputTo(ForgeDirection.VALID_DIRECTIONS[i])) { - return; - } - if ((pipe.getEssentiaType(ForgeDirection.VALID_DIRECTIONS[i].getOpposite()) != null) && (pipe.getSuctionAmount(ForgeDirection.VALID_DIRECTIONS[i]) < getSuctionAmount(ForgeDirection.VALID_DIRECTIONS[i]))) { - Aspect readyInput = pipe.getEssentiaType(ForgeDirection.VALID_DIRECTIONS[i].getOpposite()); - int type = LargeEssentiaEnergyData.getAspectTypeIndex(readyInput); - if (type != -1 && (mState & (1 << type)) == 0) continue; - if (readyInput.equals(mLocked)) { - addToContainer(mLocked, pipe.takeEssentia(mLocked, 1, ForgeDirection.VALID_DIRECTIONS[i])); - } - if (mLocked == null) - addToContainer(pipe.getEssentiaType(ForgeDirection.VALID_DIRECTIONS[i]), pipe.takeEssentia(pipe.getEssentiaType(ForgeDirection.VALID_DIRECTIONS[i]), 1, ForgeDirection.VALID_DIRECTIONS[i])); - } - } - } - } - - @Override - public AspectList getAspects() { - return current; - } - - @Override - public void setAspects(AspectList aspectList) { - this.current.add(aspectList); - } - - @Override - public boolean doesContainerAccept(Aspect aspect) { - return mLocked == null || mLocked.equals(aspect); - } - - @Override - public int addToContainer(Aspect aspect, int i) { - current.add(aspect, i); - this.markDirty(); - return 0; - } - - @Override - public boolean takeFromContainer(Aspect aspect, int i) { - return false; - } - - @Override - public boolean takeFromContainer(AspectList aspectList) { - return false; - } - - @Override - public boolean doesContainerContainAmount(Aspect aspect, int i) { - return current.aspects.containsKey(aspect) && i <= current.getAmount(aspect); - } - - @Override - public boolean doesContainerContain(AspectList aspectList) { - ArrayList ret = new ArrayList(); - for (Aspect a : aspectList.aspects.keySet()) - ret.add(current.aspects.containsKey(a)); - return !ret.contains(false); - } - - @Override - public int containerContains(Aspect aspect) { - return current.aspects.containsKey(aspect) ? current.getAmount(aspect) : 0; - } - - @Override - public boolean isConnectable(ForgeDirection forgeDirection) { - return true; - } - - @Override - public boolean canInputFrom(ForgeDirection forgeDirection) { - return true; - } - - @Override - public boolean canOutputTo(ForgeDirection forgeDirection) { - return false; - } - - @Override - public void setSuction(Aspect aspect, int i) { } - - @Override - public Aspect getSuctionType(ForgeDirection forgeDirection) { - return this.mLocked; - } - - @Override - public int getSuctionAmount(ForgeDirection forgeDirection) { - return 256; - } - - @Override - public int takeEssentia(Aspect aspect, int i, ForgeDirection forgeDirection) { - return 0; - } - - @Override - public int addEssentia(Aspect aspect, int i, ForgeDirection forgeDirection) { - current.add(aspect, i); - return 0; - } - - @Override - public Aspect getEssentiaType(ForgeDirection forgeDirection) { - return current.getAspects()[0]; - } - - @Override - public int getEssentiaAmount(ForgeDirection forgeDirection) { - int ret = 0; - for (final Aspect A : current.aspects.keySet()) { - ret += current.getAmount(A); - } - return ret; - } - - @Override - public int getMinimumSuction() { - return Integer.MAX_VALUE; - } - - @Override - public boolean renderExtendedTube() { - return true; - } -} diff --git a/src/main/java/GoodGenerator/Blocks/TEs/FuelRefineFactory.java b/src/main/java/GoodGenerator/Blocks/TEs/FuelRefineFactory.java deleted file mode 100644 index 69d6990153..0000000000 --- a/src/main/java/GoodGenerator/Blocks/TEs/FuelRefineFactory.java +++ /dev/null @@ -1,369 +0,0 @@ -package GoodGenerator.Blocks.TEs; - -import GoodGenerator.Loader.Loaders; -import GoodGenerator.util.DescTextLocalization; -import GoodGenerator.util.MyRecipeAdder; -import com.github.bartimaeusnek.crossmod.tectech.TecTechEnabledMulti; -import com.github.technus.tectech.TecTech; -import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_EnergyMulti; -import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_EnergyTunnel; -import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEntity_MultiblockBase_EM; -import com.gtnewhorizon.structurelib.StructureLibAPI; -import com.gtnewhorizon.structurelib.alignment.constructable.IConstructable; -import com.gtnewhorizon.structurelib.structure.IStructureDefinition; -import com.gtnewhorizon.structurelib.structure.IStructureElement; -import com.gtnewhorizon.structurelib.structure.StructureDefinition; -import gregtech.api.enums.Textures; -import gregtech.api.interfaces.ITexture; -import gregtech.api.interfaces.metatileentity.IMetaTileEntity; -import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import gregtech.api.metatileentity.implementations.*; -import gregtech.api.objects.GT_RenderedTexture; -import gregtech.api.render.TextureFactory; -import gregtech.api.util.GT_Multiblock_Tooltip_Builder; -import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Utility; -import net.minecraft.block.Block; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.StatCollector; -import net.minecraft.world.World; -import net.minecraftforge.fluids.FluidStack; -import org.lwjgl.input.Keyboard; - -import java.util.ArrayList; -import java.util.List; - -import static GoodGenerator.util.DescTextLocalization.BLUE_PRINT_INFO; -import static com.gtnewhorizon.structurelib.structure.StructureUtility.*; -import static gregtech.api.util.GT_StructureUtility.*; -import static gregtech.api.enums.GT_Values.V; - -public class FuelRefineFactory extends GT_MetaTileEntity_MultiblockBase_EM implements TecTechEnabledMulti, IConstructable { - - private IStructureDefinition multiDefinition = null; - private int Tier = -1; - private int[] cnt = new int[]{0,0,0}; - private static final Block[] coils = new Block[]{Loaders.FRF_Coil_1,Loaders.FRF_Coil_2,Loaders.FRF_Coil_3}; - - public FuelRefineFactory(String name){super(name);} - - public FuelRefineFactory(int id, String name, String nameRegional){ - super(id,name,nameRegional); - } - - @Override - public List getVanillaEnergyHatches() { - return this.mEnergyHatches; - } - - @Override - public List getTecTechEnergyTunnels() { - return new ArrayList<>(); - } - - @Override - public List getTecTechEnergyMultis() { - return new ArrayList<>(); - } - - @Override - public void construct(ItemStack itemStack, boolean hintsOnly) { - structureBuild_EM(mName, 7, 12, 1, hintsOnly, itemStack); - } - - @Override - public IStructureDefinition getStructure_EM() { - if(multiDefinition == null) { - multiDefinition = StructureDefinition - .builder() - .addShape(mName, - transpose(new String[][]{ - {" "," CCC "," "}, - {" XGX "," CCFFFCC "," XGX "}, - {" CC CC "," CFFCCCFFC "," CC CC "}, - {" C C "," CFCC CCFC "," C C "}, - {" C C "," CFC CFC "," C C "}, - {" C C "," CFC CFC "," C C "}, - {" X X ","CFC CFC"," X X "}, - {" G G ","CFC CFC"," G G "}, - {" X X ","CFC CFC"," X X "}, - {" C C "," CFC CFC "," C C "}, - {" C C "," CFC CFC "," C C "}, - {" C C "," CFCC CCFC "," C C "}, - {" CC CC "," CFFC~CFFC "," CC CC "}, - {" XGX "," CCFFFCC "," XGX "}, - {" "," CCC "," "} - }) - ).addElement( - 'X', - ofChain( - ofHatchAdder( - FuelRefineFactory::addToFRFList,179, - Loaders.FRF_Casings,0 - ), - ofBlock( - Loaders.FRF_Casings,0 - ) - ) - ).addElement( - 'C', - ofBlock( - Loaders.FRF_Casings,0 - ) - ).addElement( - 'G', - ofBlock( - Loaders.fieldRestrictingGlass,0 - ) - ).addElement( - 'F', - ofChain( - onElementPass( - x -> ++x.cnt[0], - ofFieldCoil(0) - ), - onElementPass( - x -> ++x.cnt[1], - ofFieldCoil(1) - ), - onElementPass( - x -> ++x.cnt[2], - ofFieldCoil(2) - ) - ) - ) - .build(); - } - return multiDefinition; - } - - public static IStructureElement ofFieldCoil(int aIndex) { - return new IStructureElement() { - @Override - public boolean check(T t, World world, int x, int y, int z) { - Block block = world.getBlock(x, y, z); - return block.equals(coils[aIndex]); - } - - @Override - public boolean spawnHint(T t, World world, int x, int y, int z, ItemStack trigger) { - StructureLibAPI.hintParticle(world, x, y, z, coils[getIndex(trigger)], 0); - return true; - } - - private int getIndex(ItemStack trigger) { - int s = trigger.stackSize; - if (s > 3 || s <= 0) s = 3; - return s - 1; - } - - @Override - public boolean placeBlock(T t, World world, int x, int y, int z, ItemStack trigger) { - return world.setBlock(x, y, z, coils[getIndex(trigger)], 0, 3); - } - }; - } - - @Override - public String[] getDescription(){ - final GT_Multiblock_Tooltip_Builder tt = new GT_Multiblock_Tooltip_Builder(); - tt.addMachineType("Naquadah Fuel Refinery") - .addInfo("Controller block for the Naquadah Fuel Refinery") - .addInfo("But at what cost?") - .addInfo("Produce the endgame naquadah fuel.") - .addInfo("Need field restriction coil to control the fatal radiation.") - .addInfo("Use higher tier coil to unlock more fuel and reduce the process time.") - .addInfo("The structure is too complex!") - .addInfo(BLUE_PRINT_INFO) - .addSeparator() - .beginStructureBlock(3, 15, 15, false) - .addInputHatch("The casings adjoin the field restriction glass.") - .addInputBus("The casings adjoin the field restriction glass.") - .addOutputHatch("The casings adjoin the field restriction glass.") - .addEnergyHatch("The casings adjoin the field restriction glass.") - .toolTipFinisher("Good Generator"); - if (!Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { - return tt.getInformation(); - } else { - return tt.getStructureInformation(); - } - } - - @Override - public void loadNBTData(NBTTagCompound aNBT){ - this.Tier = aNBT.getInteger("mTier"); - super.loadNBTData(aNBT); - } - - @Override - public void saveNBTData(NBTTagCompound aNBT){ - aNBT.setInteger("mTier", this.Tier); - super.saveNBTData(aNBT); - } - - @Override - public String[] getStructureDescription(ItemStack itemStack){ - return DescTextLocalization.addText("FuelRefineFactory.hint", 8); - } - - @Override - public boolean checkMachine_EM(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { - cnt[0] = 0;cnt[1] = 0;cnt[2] = 0; - mWrench = true; - mScrewdriver = true; - mSoftHammer = true; - mHardHammer = true; - mSolderingTool = true; - mCrowbar = true; - return structureCheck_EM(mName, 7,12,1) && getTier() != -1; - } - - public int getTier(){ - for (int i = 0; i < 3; i ++) { - if (cnt[i] == 32) { - Tier = i + 1; - return i; - } - } - Tier = -1; - return -1; - } - - @Override - public boolean checkRecipe_EM(ItemStack aStack){ - - mWrench = true; - mScrewdriver = true; - mSoftHammer = true; - mHardHammer = true; - mSolderingTool = true; - mCrowbar = true; - - ArrayList tFluids = getStoredFluids(); - ArrayList tItems = getStoredInputs(); - MyRecipeAdder.NaqFuelRefineMapper tRecipes = MyRecipeAdder.instance.FRF; - - for (int i = 0; i < tFluids.size() - 1; i++) { - for (int j = i + 1; j < tFluids.size(); j++) { - if (GT_Utility.areFluidsEqual(tFluids.get(i), tFluids.get(j))) { - if ((tFluids.get(i)).amount >= (tFluids.get(j)).amount) { - tFluids.remove(j--); - } else { - tFluids.remove(i--); - break; - } - } - } - } - - for (int i = 0; i < tItems.size() - 1; i++) { - for (int j = i + 1; j < tItems.size(); j++) { - if (GT_Utility.areStacksEqual(tItems.get(i), tItems.get(j))) { - if ((tItems.get(i)).stackSize >= (tItems.get(j)).stackSize) { - tItems.remove(j--); - } else { - tItems.remove(i--); - break; - } - } - } - } - - FluidStack[] inFluids = tFluids.toArray(new FluidStack[0]); - ItemStack[] inItems = tItems.toArray(new ItemStack[0]); - this.mEfficiency = 10000; - - long tPower = getMaxInputEnergy_EM(); - byte tTier = (byte) Math.max(1, GT_Utility.getTier(tPower)); - GT_Recipe recipe = tRecipes.findRecipe(this.getBaseMetaTileEntity(), false, V[tTier], inFluids, inItems); - if (recipe != null) { - if (recipe.mSpecialValue > Tier) return false; - if (recipe.isRecipeInputEqual(true, inFluids, inItems)){ - mEUt = recipe.mEUt * (1 << (Tier - recipe.mSpecialValue)); - mEUt = -Math.abs(mEUt); - mMaxProgresstime = recipe.mDuration / (1 << (Tier - recipe.mSpecialValue)); - this.mOutputFluids = recipe.mFluidOutputs; - this.updateSlots(); - return true; - } - } - return false; - } - - public final boolean addToFRFList(IGregTechTileEntity aTileEntity, int aBaseCasingIndex){ - if (aTileEntity == null) { - return false; - } else { - IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity(); - if (aMetaTileEntity == null) { - return false; - } else { - if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch) { - ((GT_MetaTileEntity_Hatch)aMetaTileEntity).updateTexture(aBaseCasingIndex); - } - if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Input) { - return this.mInputHatches.add((GT_MetaTileEntity_Hatch_Input)aMetaTileEntity); - } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Output) { - return this.mOutputHatches.add((GT_MetaTileEntity_Hatch_Output)aMetaTileEntity); - } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_InputBus) { - return this.mInputBusses.add((GT_MetaTileEntity_Hatch_InputBus)aMetaTileEntity); - } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Energy) { - return this.mEnergyHatches.add((GT_MetaTileEntity_Hatch_Energy)aMetaTileEntity); - } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_EnergyMulti) { - return this.eEnergyMulti.add((GT_MetaTileEntity_Hatch_EnergyMulti)aMetaTileEntity); - } else { - return false; - } - } - } - } - - @Override - public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { - return new FuelRefineFactory(this.mName); - } - - @Override - public int getMaxEfficiency(ItemStack aStack) { - return 10000; - } - - @Override - public int getPollutionPerTick(ItemStack aStack) { - return 0; - } - - @Override - public int getDamageToComponent(ItemStack aStack) { - return 0; - } - - @Override - public boolean explodesOnComponentBreak(ItemStack aStack) { - return true; - } - - @Override - public boolean isCorrectMachinePart(ItemStack aStack) { - return true; - } - - @Override - public String[] getInfoData() { - String[] infoData = new String[super.getInfoData().length + 1]; - System.arraycopy(super.getInfoData(),0,infoData,0, super.getInfoData().length); - infoData[super.getInfoData().length] = StatCollector.translateToLocal("scanner.info.FRF") + " " + this.Tier; - return infoData; - } - - @Override - @SuppressWarnings("ALL") - public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { - if(aSide == aFacing){ - if(aActive) return new ITexture[]{Textures.BlockIcons.getCasingTextureForId(179), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_ASSEMBLY_LINE_ACTIVE), TextureFactory.builder().addIcon(Textures.BlockIcons.OVERLAY_FRONT_ASSEMBLY_LINE_ACTIVE_GLOW).glow().build()}; - return new ITexture[]{Textures.BlockIcons.getCasingTextureForId(179), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_ASSEMBLY_LINE), TextureFactory.builder().addIcon(Textures.BlockIcons.OVERLAY_FRONT_ASSEMBLY_LINE_GLOW).glow().build()}; - } - return new ITexture[]{Textures.BlockIcons.getCasingTextureForId(179)}; - } -} diff --git a/src/main/java/GoodGenerator/Blocks/TEs/LargeEssentiaGenerator.java b/src/main/java/GoodGenerator/Blocks/TEs/LargeEssentiaGenerator.java deleted file mode 100644 index c887496e6b..0000000000 --- a/src/main/java/GoodGenerator/Blocks/TEs/LargeEssentiaGenerator.java +++ /dev/null @@ -1,543 +0,0 @@ -package GoodGenerator.Blocks.TEs; - -import GoodGenerator.CrossMod.Thaumcraft.LargeEssentiaEnergyData; -import GoodGenerator.Items.MyMaterial; -import GoodGenerator.Loader.Loaders; -import GoodGenerator.util.DescTextLocalization; -import GoodGenerator.util.ItemRefer; -import com.github.bartimaeusnek.bartworks.system.material.WerkstoffLoader; -import com.github.bartimaeusnek.crossmod.tectech.TecTechEnabledMulti; -import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_DynamoMulti; -import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_EnergyMulti; -import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_EnergyTunnel; -import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEntity_MultiblockBase_EM; -import com.gtnewhorizon.structurelib.alignment.constructable.IConstructable; -import com.gtnewhorizon.structurelib.structure.IStructureDefinition; -import com.gtnewhorizon.structurelib.structure.StructureDefinition; -import gregtech.api.enums.Materials; -import gregtech.api.enums.Textures; -import gregtech.api.interfaces.ITexture; -import gregtech.api.interfaces.metatileentity.IMetaTileEntity; -import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import gregtech.api.metatileentity.implementations.*; -import gregtech.api.objects.GT_RenderedTexture; -import gregtech.api.objects.XSTR; -import gregtech.api.render.TextureFactory; -import gregtech.api.util.GT_Multiblock_Tooltip_Builder; -import gregtech.api.util.GT_Utility; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.StatCollector; -import net.minecraft.world.World; -import net.minecraftforge.fluids.FluidRegistry; -import org.lwjgl.input.Keyboard; -import thaumcraft.api.aspects.Aspect; -import thaumcraft.api.aspects.AspectList; -import thaumcraft.common.config.ConfigBlocks; - -import java.util.ArrayList; -import java.util.List; - -import static GoodGenerator.util.DescTextLocalization.BLUE_PRINT_INFO; -import static com.gtnewhorizon.structurelib.structure.StructureUtility.*; -import static gregtech.api.util.GT_StructureUtility.ofHatchAdder; - -public class LargeEssentiaGenerator extends GT_MetaTileEntity_MultiblockBase_EM implements IConstructable { - - private IStructureDefinition multiDefinition = null; - protected int mStableValue = 0; - protected int mTierLimit = -1; - protected long mLeftEnergy; - private int mUpgrade = 1; - final XSTR R = new XSTR(); - protected ArrayList mEssentiaHatch = new ArrayList<>(); - - public LargeEssentiaGenerator(String name){ - super(name); - } - - public LargeEssentiaGenerator(int id, String name, String nameRegional){ - super(id,name,nameRegional); - } - - @Override - public void construct(ItemStack itemStack, boolean b) { - structureBuild_EM(mName, 4, 0, 4, b, itemStack); - } - - @Override - public boolean checkMachine_EM(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { - mStableValue = 0; - mEssentiaHatch.clear(); - return structureCheck_EM(mName, 4, 0, 4) && (mDynamoHatches.size() + eDynamoMulti.size()) == 1 - && checkHatchTier() && updateEssentiaHatchState(); - } - - public boolean checkHatchTier() { - for (GT_MetaTileEntity_Hatch_Input tHatch : mInputHatches) { - if (tHatch.mTier > mTierLimit) return false; - } - for (GT_MetaTileEntity_Hatch_Dynamo tHatch : mDynamoHatches) { - if (tHatch.mTier > mTierLimit) return false; - } - for (GT_MetaTileEntity_Hatch_DynamoMulti tHatch : eDynamoMulti) { - if (tHatch.mTier > mTierLimit) return false; - } - return true; - } - - @Override - public void loadNBTData(NBTTagCompound aNBT) { - super.loadNBTData(aNBT); - this.mStableValue = aNBT.getInteger("mStableValue"); - this.mLeftEnergy = aNBT.getLong("mLeftEnergy"); - this.mUpgrade = aNBT.getInteger("mUpgrade"); - } - - @Override - public void saveNBTData(NBTTagCompound aNBT) { - super.saveNBTData(aNBT); - aNBT.setInteger("mStableValue", this.mStableValue); - aNBT.setLong("mLeftEnergy", this.mLeftEnergy); - aNBT.setInteger("mUpgrade", this.mUpgrade); - } - - public boolean updateEssentiaHatchState() { - for (EssentiaHatch hatch : mEssentiaHatch) { - hatch.mState = mUpgrade; - } - return true; - } - - @Override - public boolean onWrenchRightClick(byte aSide, byte aWrenchingSide, EntityPlayer aPlayer, float aX, float aY, float aZ) { - if (aWrenchingSide == 0 || aWrenchingSide == 1) return false; - if (getBaseMetaTileEntity().isValidFacing(aWrenchingSide)) { - getBaseMetaTileEntity().setFrontFacing(aWrenchingSide); - return true; - } - return false; - } - - @Override - public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) { - if (this.getBaseMetaTileEntity().isServerSide()) { - ItemStack tCurrentItem = aPlayer.inventory.getCurrentItem(); - if (tCurrentItem != null && tCurrentItem.getItem().equals(ItemRefer.Essentia_Upgrade_Empty.get(1).getItem())) { - int tMeta = tCurrentItem.getItemDamage(); - if ((mUpgrade & (1 << tMeta)) == 0 && tMeta != 0) { - tCurrentItem.stackSize --; - mUpgrade = mUpgrade | (1 << tMeta); - GT_Utility.sendChatToPlayer(aPlayer, tCurrentItem.getDisplayName() + StatCollector.translateToLocal("largeessentiagenerator.chat")); - } - updateEssentiaHatchState(); - return true; - } - } - super.onRightclick(aBaseMetaTileEntity, aPlayer); - return true; - } - - @Override - public IStructureDefinition getStructure_EM() { - if(multiDefinition == null) { - multiDefinition = StructureDefinition - .builder() - .addShape(mName, - transpose(new String[][]{ - {"A A"," "," "," "," ~ "," "," "," ","A A"}, - {"T C T"," CEC "," CEEEC "," CEEEEEC ","CEEEEEEEC"," CEEEEEC "," CEEEC "," CEC ","T C T"}, - {"T TXT T"," TCCCT "," TCCCCCT ","TCCCCCCCT","XCCCCCCCX","TCCCCCCCT"," TCCCCCT "," TCCCT ","T TXT T"} - }) - ).addElement( - 'A', - ofBlock( - ConfigBlocks.blockCosmeticOpaque, 1 - ) - ).addElement( - 'T', - ofBlock( - ConfigBlocks.blockCosmeticSolid, 7 - ) - ).addElement( - 'C', - ofBlock( - Loaders.magicCasing, 0 - ) - ).addElement( - 'E', - ofChain( - onElementPass( - x -> {++x.mStableValue; x.mTierLimit = Math.max(x.mTierLimit, 3);}, - ofBlock( - Loaders.essentiaCell, 0 - ) - ), - onElementPass( - x -> {x.mStableValue += 2; x.mTierLimit = Math.max(x.mTierLimit, 4);}, - ofBlock( - Loaders.essentiaCell, 1 - ) - ), - onElementPass( - x -> {x.mStableValue += 5; x.mTierLimit = Math.max(x.mTierLimit, 5);}, - ofBlock( - Loaders.essentiaCell, 2 - ) - ), - onElementPass( - x -> {x.mStableValue += 10; x.mTierLimit = Math.max(x.mTierLimit, 6);}, - ofBlock( - Loaders.essentiaCell, 3 - ) - ) - ) - ).addElement( - 'X', - ofChain( - ofHatchAdder( - LargeEssentiaGenerator::addLargeEssentiaGeneratorList,1536, - 1 - ), - ofBlock( - Loaders.magicCasing, 0 - ), - ofTileAdder( - LargeEssentiaGenerator::addEssentiaHatch, Loaders.magicCasing, 0 - ) - ) - ) - .build(); - } - return multiDefinition; - } - - public final boolean addEssentiaHatch(TileEntity aTileEntity) { - if (aTileEntity instanceof EssentiaHatch) { - return this.mEssentiaHatch.add((EssentiaHatch) aTileEntity); - } - return false; - } - - public final boolean addLargeEssentiaGeneratorList(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) { - if (aTileEntity == null) { - return false; - } else { - IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity(); - if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Input){ - ((GT_MetaTileEntity_Hatch)aMetaTileEntity).updateTexture(aBaseCasingIndex); - return this.mInputHatches.add((GT_MetaTileEntity_Hatch_Input)aMetaTileEntity); - } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Maintenance){ - ((GT_MetaTileEntity_Hatch)aMetaTileEntity).updateTexture(aBaseCasingIndex); - return this.mMaintenanceHatches.add((GT_MetaTileEntity_Hatch_Maintenance)aMetaTileEntity); - } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Dynamo){ - ((GT_MetaTileEntity_Hatch)aMetaTileEntity).updateTexture(aBaseCasingIndex); - return this.mDynamoHatches.add((GT_MetaTileEntity_Hatch_Dynamo)aMetaTileEntity); - } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_DynamoMulti){ - ((GT_MetaTileEntity_Hatch)aMetaTileEntity).updateTexture(aBaseCasingIndex); - return this.eDynamoMulti.add((GT_MetaTileEntity_Hatch_DynamoMulti)aMetaTileEntity); - } - } - return false; - } - - @Override - public boolean checkRecipe_EM(ItemStack aStack) { - this.mEfficiency = 10000; - this.mMaxProgresstime = 1; - setEssentiaToEUVoltageAndAmp(getVoltageLimit(), getAmpLimit()); - return true; - } - - public int getVoltageLimit() { - long voltage = 0; - for (GT_MetaTileEntity_Hatch tHatch : this.eDynamoMulti) { - voltage += tHatch.maxEUOutput(); - } - for (GT_MetaTileEntity_Hatch tHatch : this.mDynamoHatches) { - voltage += tHatch.maxEUOutput(); - } - if (voltage > Integer.MAX_VALUE) voltage = Integer.MAX_VALUE; - return (int)voltage; - } - - public int getAmpLimit() { - long amp = 0; - for (GT_MetaTileEntity_Hatch tHatch : this.eDynamoMulti) { - amp += tHatch.maxAmperesOut(); - } - for (GT_MetaTileEntity_Hatch tHatch : this.mDynamoHatches) { - amp += tHatch.maxAmperesOut(); - } - if (amp > Integer.MAX_VALUE) amp = Integer.MAX_VALUE; - return (int)amp; - } - - public long getPerAspectEnergy(Aspect aspect) { - int type = LargeEssentiaEnergyData.getAspectTypeIndex(aspect); - if (!isValidEssentia(aspect)) return 0; - switch (type) { - case 0: return normalEssentia(aspect); - case 1: return airEssentia(aspect); - case 2: return thermalEssentia(aspect); - case 3: return unstableEssentia(aspect); - case 4: return victusEssentia(aspect); - case 5: return taintedEssentia(aspect); - case 6: return mechanicEssentia(aspect); - case 7: return spiritEssentia(aspect); - case 8: return radiationEssentia(aspect); - case 9: return electricEssentia(aspect); - default: return 0; - } - } - - public long normalEssentia(Aspect aspect) { - return LargeEssentiaEnergyData.getAspectFuelValue(aspect); - } - - public long airEssentia(Aspect aspect) { - long baseValue = LargeEssentiaEnergyData.getAspectFuelValue(aspect); - double ceoOutput = 0; - int ceoInput = (int) LargeEssentiaEnergyData.getAspectCeo(aspect) * 8; - if (depleteInput(Materials.LiquidAir.getFluid(ceoInput))) { - ceoOutput = 1.5D; - } - else if (depleteInput(Materials.Air.getGas(ceoInput))){ - ceoOutput = 1.0D; - } - return (long) (baseValue * ceoOutput); - } - - public long thermalEssentia(Aspect aspect) { - long baseValue = LargeEssentiaEnergyData.getAspectFuelValue(aspect); - double ceoOutput = 0; - int ceoInput = (int) LargeEssentiaEnergyData.getAspectCeo(aspect) * 2; - if (depleteInput(FluidRegistry.getFluidStack("cryotheum", ceoInput))) { - ceoOutput = 9.0D; - } - else if (depleteInput(Materials.SuperCoolant.getFluid(ceoInput))) { - ceoOutput = 5.0D; - } - else if (depleteInput(FluidRegistry.getFluidStack("ic2coolant", ceoInput))) { - ceoOutput = 1.5D; - } - else if (depleteInput(Materials.Ice.getSolid(ceoInput))) { - ceoOutput = 1.2D; - } - else if (depleteInput(FluidRegistry.getFluidStack("ic2distilledwater", ceoInput))){ - ceoOutput = 1.0D; - } - else if (depleteInput(Materials.Water.getFluid(ceoInput))) { - ceoOutput = 0.5D; - } - - return (long) (baseValue * ceoOutput); - } - - public long unstableEssentia(Aspect aspect) { - long baseValue = LargeEssentiaEnergyData.getAspectFuelValue(aspect); - double ceoOutput = 0; - int ceoInput = (int) LargeEssentiaEnergyData.getAspectCeo(aspect) * 4; - if (depleteInput(WerkstoffLoader.Xenon.getFluidOrGas(ceoInput))){ - ceoOutput = 4.0D; - } - else if (depleteInput(WerkstoffLoader.Krypton.getFluidOrGas(ceoInput))){ - ceoOutput = 3.0D; - } - else if (depleteInput(Materials.Argon.getFluid(ceoInput))){ - ceoOutput = 2.5D; - } - else if (depleteInput(WerkstoffLoader.Neon.getFluidOrGas(ceoInput))){ - ceoOutput = 2.2D; - } - else if (depleteInput(Materials.Helium.getFluid(ceoInput))){ - ceoOutput = 2.0D; - } - else if (depleteInput(Materials.Nitrogen.getFluid(ceoInput))){ - ceoOutput = 1.0D; - } - return (long) (baseValue * ceoOutput); - } - - public long victusEssentia(Aspect aspect) { - long baseValue = LargeEssentiaEnergyData.getAspectFuelValue(aspect); - double ceoOutput = 1.0D; - int ceoInput = (int) LargeEssentiaEnergyData.getAspectCeo(aspect) * 18; - if (depleteInput(FluidRegistry.getFluidStack("xpjuice", ceoInput))) { - ceoOutput = 2.0D; - } - else if (depleteInput(FluidRegistry.getFluidStack("lifeessence", ceoInput))){ - ceoOutput = 6.0D; - } - return (long) (baseValue * ceoOutput); - } - - public long taintedEssentia(Aspect aspect) { - long baseValue = LargeEssentiaEnergyData.getAspectFuelValue(aspect); - double ceoOutput = 1.0D; - int ceoInput = (int) LargeEssentiaEnergyData.getAspectCeo(aspect) * 3; - int chance = 2000; - if (depleteInput(FluidRegistry.getFluidStack("fluidpure", ceoInput))) { - ceoOutput = 60.0D; - chance = 0; - } - else if (depleteInput(FluidRegistry.getFluidStack("fluiddeath", ceoInput))){ - ceoOutput = Math.pow(25000D / baseValue, 4); - chance = 4000; - } - - if (R.nextInt(10000) < chance) { - World world = getBaseMetaTileEntity().getWorld(); - int tX = R.nextInt(4); - int tZ = R.nextInt(4); - if (world.isAirBlock(tX, 0, tZ)) - world.setBlock(tX, 0, tZ, ConfigBlocks.blockFluxGas, R.nextInt(8), 3); - } - - return (long) (baseValue * ceoOutput); - } - - public long mechanicEssentia(Aspect aspect) { - long baseValue = LargeEssentiaEnergyData.getAspectFuelValue(aspect); - double ceoOutput = 0; - int ceoInput = (int) LargeEssentiaEnergyData.getAspectCeo(aspect) * 20; - if (depleteInput(Materials.Lubricant.getFluid(ceoInput))) { - ceoOutput = 1.0D; - } - return (long) (baseValue * ceoOutput); - } - - public long spiritEssentia(Aspect aspect) { - long baseValue = LargeEssentiaEnergyData.getAspectFuelValue(aspect); - double ceoOutput = 1.0D; - int ceoInput = (int) LargeEssentiaEnergyData.getAspectCeo(aspect) * 2; - if (depleteInput(FluidRegistry.getFluidStack("witchery:fluidspirit", ceoInput))) { - ceoOutput = 10D * (1 + mStableValue / 100D); - } - else if (depleteInput(FluidRegistry.getFluidStack("witchery:hollowtears", ceoInput))) { - ceoOutput = 15D * (1 + 100D / mStableValue); - } - return (long) (baseValue * ceoOutput); - } - - public long radiationEssentia(Aspect aspect) { - long baseValue = LargeEssentiaEnergyData.getAspectFuelValue(aspect); - double ceoOutput = 1.0D; - int ceoInput = (int) LargeEssentiaEnergyData.getAspectCeo(aspect) * 6; - if (depleteInput(Materials.Caesium.getMolten(ceoInput))) { - ceoOutput = 2.0D; - } - else if (depleteInput(Materials.Uranium235.getMolten(ceoInput))) { - ceoOutput = 3.0D; - } - else if (depleteInput(Materials.Naquadah.getMolten(ceoInput))) { - ceoOutput = 4.0D; - } - else if (depleteInput(MyMaterial.atomicSeparationCatalyst.getMolten(ceoInput))) { - ceoOutput = 16.0D; - } - return (long) (baseValue * ceoOutput); - } - - public long electricEssentia(Aspect aspect) { - long baseValue = LargeEssentiaEnergyData.getAspectFuelValue(aspect); - double ceoOutput = Math.pow(3.0, GT_Utility.getTier(getVoltageLimit())); - return (long) (baseValue * ceoOutput); - } - - public void setEssentiaToEUVoltageAndAmp(long voltageLimit, long ampLimit) { - long EUt = mLeftEnergy; - long EUVoltage = voltageLimit, EUAmp = 1; - - for (EssentiaHatch hatch: this.mEssentiaHatch){ - AspectList aspects = hatch.getAspects(); - for (Aspect aspect: aspects.aspects.keySet()) { - if (!isValidEssentia(aspect) || getPerAspectEnergy(aspect) == 0) continue; - while (EUt <= (voltageLimit * ampLimit) && aspects.getAmount(aspect) > 0) { - EUt += getPerAspectEnergy(aspect); - aspects.reduce(aspect, 1); - if (aspects.getAmount(aspect) == 0) - aspects.remove(aspect); - } - } - if (EUt == 0 && aspects.size() != 0) { - if (!isValidEssentia(aspects.getAspects()[0]) || getPerAspectEnergy(aspects.getAspects()[0]) == 0) continue; - EUt += getPerAspectEnergy(aspects.getAspects()[0]); - aspects.reduce(aspects.getAspects()[0], 1); - if (aspects.getAmount(aspects.getAspects()[0]) == 0) - aspects.remove(aspects.getAspects()[0]); - } - } - - if (EUt <= voltageLimit) { - EUVoltage = EUt; - EUAmp = 1; - mLeftEnergy = 0; - } - else { - while (EUVoltage * (EUAmp + 1) <= EUt && EUAmp + 1 <= ampLimit) { - EUAmp ++; - } - mLeftEnergy = EUt - (EUVoltage * EUAmp); - } - - this.mEUt = (int)EUVoltage; - this.eAmpereFlow = (int)EUAmp; - } - - @Override - public int getMaxEfficiency(ItemStack aStack) { - return 10000; - } - - @Override - public String[] getStructureDescription(ItemStack itemStack) { - return DescTextLocalization.addText("LargeEssentiaGenerator.hint", 6); - } - - @Override - public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { - return new LargeEssentiaGenerator(this.mName); - } - - @Override - public String[] getDescription() { - final GT_Multiblock_Tooltip_Builder tt = new GT_Multiblock_Tooltip_Builder(); - tt.addMachineType("Essentia Generator") - .addInfo("Controller block for the Large Essentia Generator") - .addInfo("Maybe some thaumaturages are upset by it. . .") - .addInfo("Transform essentia into energy!") - .addInfo("The the Diffusion Cell determines the highest hatch tier that LEG can accept.") - .addInfo("You can find more information about this generator in Thaumonomicon.") - .addInfo("The structure is too complex!") - .addInfo(BLUE_PRINT_INFO) - .addSeparator() - .addMaintenanceHatch("Hint block with dot 1") - .addInputHatch("Hint block with dot 1") - .addDynamoHatch("Hint block with dot 1") - .addOtherStructurePart("Essentia Input Hatch","Hint block with dot 1") - .toolTipFinisher("Good Generator"); - if (!Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { - return tt.getInformation(); - } else { - return tt.getStructureInformation(); - } - } - - @Override - @SuppressWarnings("ALL") - public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { - if(aSide == aFacing) { - if(aActive) return new ITexture[]{Textures.BlockIcons.getCasingTextureForId(1536), new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_DRAGONEGG), TextureFactory.builder().addIcon(Textures.BlockIcons.MACHINE_CASING_DRAGONEGG_GLOW).glow().build()}; - return new ITexture[]{Textures.BlockIcons.getCasingTextureForId(1536), new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_DRAGONEGG)}; - } - return new ITexture[]{Textures.BlockIcons.getCasingTextureForId(1536)}; - } - - public boolean isValidEssentia(Aspect aspect) { - int type = LargeEssentiaEnergyData.getAspectTypeIndex(aspect); - return type != -1 && (mUpgrade & (1 << type)) != 0; - } -} diff --git a/src/main/java/GoodGenerator/Blocks/TEs/MegaPlasmaTurbine.java b/src/main/java/GoodGenerator/Blocks/TEs/MegaPlasmaTurbine.java deleted file mode 100644 index f811d9c5f1..0000000000 --- a/src/main/java/GoodGenerator/Blocks/TEs/MegaPlasmaTurbine.java +++ /dev/null @@ -1,50 +0,0 @@ -package GoodGenerator.Blocks.TEs; - - -import com.github.bartimaeusnek.crossmod.tectech.TecTechEnabledMulti; -import com.github.technus.tectech.mechanics.constructable.IConstructable; -import com.github.technus.tectech.mechanics.structure.IStructureDefinition; -import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_EnergyMulti; -import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_EnergyTunnel; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Energy; -import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_LargeTurbine_Plasma; -import net.minecraft.item.ItemStack; - -import java.util.ArrayList; -import java.util.List; - -public class MegaPlasmaTurbine extends GT_MetaTileEntity_LargeTurbine_Plasma implements TecTechEnabledMulti, IConstructable { - - private IStructureDefinition multiDefinition = null; - - public MegaPlasmaTurbine(String name){super(name);} - - public MegaPlasmaTurbine(int id, String name, String nameRegional){ - super(id,name,nameRegional); - } - - @Override - public void construct(ItemStack itemStack, boolean b) { - - } - - @Override - public String[] getStructureDescription(ItemStack itemStack) { - return new String[0]; - } - - @Override - public List getVanillaEnergyHatches() { - return this.mEnergyHatches; - } - - @Override - public List getTecTechEnergyTunnels() { - return new ArrayList<>(); - } - - @Override - public List getTecTechEnergyMultis() { - return new ArrayList<>(); - } -} diff --git a/src/main/java/GoodGenerator/Blocks/TEs/MetaTE/NeutronAccelerator.java b/src/main/java/GoodGenerator/Blocks/TEs/MetaTE/NeutronAccelerator.java deleted file mode 100644 index b4145ae297..0000000000 --- a/src/main/java/GoodGenerator/Blocks/TEs/MetaTE/NeutronAccelerator.java +++ /dev/null @@ -1,66 +0,0 @@ -package GoodGenerator.Blocks.TEs.MetaTE; - -import gregtech.api.interfaces.ITexture; -import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Energy; -import net.minecraft.nbt.NBTTagCompound; - -import static gregtech.api.enums.GT_Values.V; - -public class NeutronAccelerator extends GT_MetaTileEntity_Hatch_Energy { - - public boolean isRunning; - - public NeutronAccelerator(int aID, String aName, String aNameRegional, int aTier) { - super(aID, aName, aNameRegional, aTier); - } - - public NeutronAccelerator(String aName, int aTier, String[] aDescription, ITexture[][][] aTextures) { - super(aName, aTier, aDescription, aTextures); - } - - public int getMaxEUConsume() { - return (int)(V[mTier] * 8 / 10); - } - - @Override - public void loadNBTData(NBTTagCompound aNBT) { - super.loadNBTData(aNBT); - this.isRunning = aNBT.getBoolean("isRunning"); - } - - @Override - public void saveNBTData(NBTTagCompound aNBT) { - super.saveNBTData(aNBT); - aNBT.setBoolean("isRunning", this.isRunning); - } - - @Override - public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { - return new NeutronAccelerator(mName, mTier, this.getDescription(), mTextures); - } - - @Override - public String[] getDescription() { - return new String[]{ - "Input EU to Accelerate the Neutron!", - "Max EU input: " + this.maxEUInput(), - "Max EU consumption: " + this.getMaxEUConsume(), - "Every EU can be transformed into 10~20 eV Neutron Kinetic Energy." - }; - } - - @Override - public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { - if (this.getBaseMetaTileEntity().isServerSide()) { - if (aBaseMetaTileEntity.getStoredEU() >= getMaxEUConsume() && aBaseMetaTileEntity.isAllowedToWork()) { - setEUVar(aBaseMetaTileEntity.getStoredEU() - getMaxEUConsume()); - isRunning = true; - } else { - isRunning = false; - } - } - super.onPostTick(aBaseMetaTileEntity, aTick); - } -} diff --git a/src/main/java/GoodGenerator/Blocks/TEs/MetaTE/NeutronSensor.java b/src/main/java/GoodGenerator/Blocks/TEs/MetaTE/NeutronSensor.java deleted file mode 100644 index 593b3b738c..0000000000 --- a/src/main/java/GoodGenerator/Blocks/TEs/MetaTE/NeutronSensor.java +++ /dev/null @@ -1,168 +0,0 @@ -package GoodGenerator.Blocks.TEs.MetaTE; - -import GoodGenerator.Client.GUI.NeutronSensorGUIClient; -import GoodGenerator.Common.Container.NeutronSensorGUIContainer; -import GoodGenerator.Main.GoodGenerator; -import GoodGenerator.Network.MessageOpenNeutronSensorGUI; -import gregtech.api.enums.Textures; -import gregtech.api.interfaces.IIconContainer; -import gregtech.api.interfaces.ITexture; -import gregtech.api.interfaces.metatileentity.IMetaTileEntity; -import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch; -import gregtech.api.render.TextureFactory; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; - -public class NeutronSensor extends GT_MetaTileEntity_Hatch { - - private static final IIconContainer textureFont = new Textures.BlockIcons.CustomIcon("icons/NeutronSensorFont"); - private static final IIconContainer textureFont_Glow = new Textures.BlockIcons.CustomIcon("icons/NeutronSensorFont_GLOW"); - - protected String texts = ""; - boolean isOn = false; - - public NeutronSensor(int aID, String aName, String aNameRegional, int aTier) { - super(aID, aName, aNameRegional, aTier, 0, "Detect Neutron Kinetic Energy."); - } - - public NeutronSensor(String aName, int aTier, String[] aDescription, ITexture[][][] aTextures) { - super(aName, aTier, 0, aDescription, aTextures); - } - - @Override - public String[] getDescription() { - return new String[]{ - "Can be installed in Neutron Activator.", - "Output Redstone Signal according to the Neutron Kinetic Energy.", - "Right click to open the GUI and setting." - }; - } - - @Override - public void loadNBTData(NBTTagCompound aNBT) { - texts = aNBT.getString("mBoxContext"); - super.loadNBTData(aNBT); - } - - @Override - public void saveNBTData(NBTTagCompound aNBT) { - aNBT.setString("mBoxContext", texts); - super.saveNBTData(aNBT); - } - - @Override - public void initDefaultModes(NBTTagCompound aNBT) { - getBaseMetaTileEntity().setActive(true); - } - - @Override - public boolean isValidSlot(int aIndex) { - return false; - } - - @Override - public boolean isSimpleMachine() { - return true; - } - - @Override - public boolean isFacingValid(byte aFacing) { - return true; - } - - @Override - public boolean isAccessAllowed(EntityPlayer aPlayer) { - return true; - } - - @Override - public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return new NeutronSensorGUIClient(aPlayerInventory, aBaseMetaTileEntity, GoodGenerator.MOD_ID + ":textures/gui/NeutronSensorGUI.png", this.texts); - } - - @Override - public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return new NeutronSensorGUIContainer(aPlayerInventory, aBaseMetaTileEntity); - } - - @Override - public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer, byte aSide, float aX, float aY, float aZ) { - if (aBaseMetaTileEntity.isClientSide()) return true; - if (aSide == aBaseMetaTileEntity.getFrontFacing() && aPlayer instanceof EntityPlayerMP) { - GoodGenerator.CHANNEL.sendTo(new MessageOpenNeutronSensorGUI(aBaseMetaTileEntity, texts), (EntityPlayerMP) aPlayer); - return true; - } - return false; - } - - public void setText(String text) { - texts = text == null ? "" : text; - } - - public String getText() { - return texts == null ? "" : texts; - } - - public void outputRedstoneSignal(){ - isOn = true; - } - - public void stopOutputRedstoneSignal(){ - isOn = false; - } - - @Override - public ITexture[] getTexturesActive(ITexture aBaseTexture) { - return new ITexture[] { - aBaseTexture, - TextureFactory.of(textureFont), - TextureFactory.builder().addIcon(textureFont_Glow).glow().build() - }; - } - - @Override - public ITexture[] getTexturesInactive(ITexture aBaseTexture) { - return new ITexture[] { - aBaseTexture, - TextureFactory.of(textureFont) - }; - } - - @Override - public boolean allowGeneralRedstoneOutput(){ - return true; - } - - @Override - public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { - if (isOn) { - for (byte i = 0; i < 6; i ++) - aBaseMetaTileEntity.setInternalOutputRedstoneSignal(i, (byte) 15); - } - else { - for (byte i = 0; i < 6; i ++) - aBaseMetaTileEntity.setInternalOutputRedstoneSignal(i, (byte) 0); - } - super.onPostTick(aBaseMetaTileEntity, aTick); - } - - @Override - public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { - return new NeutronSensor(mName, mTier, mDescriptionArray, mTextures); - } - - @Override - public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - return false; - } - - @Override - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - return false; - } - -} diff --git a/src/main/java/GoodGenerator/Blocks/TEs/MetalVaporTurbine.java b/src/main/java/GoodGenerator/Blocks/TEs/MetalVaporTurbine.java deleted file mode 100644 index 0ae306fe8b..0000000000 --- a/src/main/java/GoodGenerator/Blocks/TEs/MetalVaporTurbine.java +++ /dev/null @@ -1,5 +0,0 @@ -package GoodGenerator.Blocks.TEs; - -public class MetalVaporTurbine{ - -} diff --git a/src/main/java/GoodGenerator/Blocks/TEs/MultiNqGenerator.java b/src/main/java/GoodGenerator/Blocks/TEs/MultiNqGenerator.java deleted file mode 100644 index 4168c4accb..0000000000 --- a/src/main/java/GoodGenerator/Blocks/TEs/MultiNqGenerator.java +++ /dev/null @@ -1,427 +0,0 @@ -package GoodGenerator.Blocks.TEs; - -import GoodGenerator.Items.MyMaterial; -import GoodGenerator.Loader.Loaders; -import GoodGenerator.util.CrackRecipeAdder; -import GoodGenerator.util.DescTextLocalization; -import GoodGenerator.util.MyRecipeAdder; -import com.github.bartimaeusnek.bartworks.util.Pair; -import com.github.bartimaeusnek.crossmod.tectech.TecTechEnabledMulti; -import com.github.technus.tectech.thing.metaTileEntity.hatch.*; -import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEntity_MultiblockBase_EM; -import com.gtnewhorizon.structurelib.alignment.constructable.IConstructable; -import com.gtnewhorizon.structurelib.structure.IStructureDefinition; -import com.gtnewhorizon.structurelib.structure.StructureDefinition; -import gregtech.api.GregTech_API; -import gregtech.api.enums.Materials; -import gregtech.api.enums.Textures; -import gregtech.api.interfaces.ITexture; -import gregtech.api.interfaces.metatileentity.IMetaTileEntity; -import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import gregtech.api.metatileentity.implementations.*; -import gregtech.api.objects.GT_RenderedTexture; -import gregtech.api.render.TextureFactory; -import gregtech.api.util.GT_Multiblock_Tooltip_Builder; -import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Utility; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.EnumChatFormatting; -import net.minecraftforge.fluids.FluidRegistry; -import net.minecraftforge.fluids.FluidStack; -import org.lwjgl.input.Keyboard; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -import static GoodGenerator.Main.GG_Config_Loader.LiquidAirConsumptionPerSecond; -import static GoodGenerator.Main.GG_Config_Loader.CoolantEfficiency; -import static GoodGenerator.Main.GG_Config_Loader.ExcitedLiquidCoe; -import static GoodGenerator.util.DescTextLocalization.BLUE_PRINT_INFO; -import static com.gtnewhorizon.structurelib.structure.StructureUtility.*; -import static gregtech.api.util.GT_StructureUtility.ofHatchAdder; - -public class MultiNqGenerator extends GT_MetaTileEntity_MultiblockBase_EM implements TecTechEnabledMulti, IConstructable { - - protected IStructureDefinition multiDefinition = null; - protected long leftEnergy = 0; - protected long trueOutput = 0; - protected int trueEff = 0; - protected FluidStack lockedFluid = null; - protected int times = 1; - protected int basicOutput; - - private static final List> excitedLiquid; - - private static final List> coolant; - - static { - excitedLiquid = Arrays.asList( - new Pair<>(MyMaterial.atomicSeparationCatalyst.getMolten(20), ExcitedLiquidCoe[0]), - new Pair<>(Materials.Naquadah.getMolten(20L), ExcitedLiquidCoe[1]), - new Pair<>(Materials.Uranium235.getMolten(180L), ExcitedLiquidCoe[2]), - new Pair<>(Materials.Caesium.getMolten(180L), ExcitedLiquidCoe[3]) - ); - coolant = Arrays.asList( - new Pair<>(FluidRegistry.getFluidStack("cryotheum", 1000), CoolantEfficiency[0]), - new Pair<>(Materials.SuperCoolant.getFluid(1000L), CoolantEfficiency[1]), - new Pair<>(FluidRegistry.getFluidStack("ic2coolant",1000), CoolantEfficiency[2]) - ); - } - - @Override - public void construct(ItemStack itemStack, boolean hintsOnly) { - structureBuild_EM(mName, 3,7,0, hintsOnly, itemStack); - } - - @Override - public String[] getStructureDescription(ItemStack itemStack) { - return DescTextLocalization.addText("MultiNqGenerator.hint", 8); - } - - public final boolean addToGeneratorList(IGregTechTileEntity aTileEntity, int aBaseCasingIndex){ - if (aTileEntity == null) { - return false; - } else { - IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity(); - if (aMetaTileEntity == null) { - return false; - } else { - if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch) { - ((GT_MetaTileEntity_Hatch)aMetaTileEntity).updateTexture(aBaseCasingIndex); - } - if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Input) { - return this.mInputHatches.add((GT_MetaTileEntity_Hatch_Input)aMetaTileEntity); - } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Output) { - return this.mOutputHatches.add((GT_MetaTileEntity_Hatch_Output)aMetaTileEntity); - } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Dynamo) { - return this.mDynamoHatches.add((GT_MetaTileEntity_Hatch_Dynamo)aMetaTileEntity); - } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Maintenance) { - return this.mMaintenanceHatches.add((GT_MetaTileEntity_Hatch_Maintenance)aMetaTileEntity); - } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_DynamoMulti) { - return this.eDynamoMulti.add((GT_MetaTileEntity_Hatch_DynamoMulti)aMetaTileEntity); - } else { - return false; - } - } - } - } - - @Override - public IStructureDefinition getStructure_EM() { - if(multiDefinition == null) { - multiDefinition = StructureDefinition - .builder() - .addShape(mName, - transpose(new String[][]{ - {"AAAAAAA","AAAAAAA","AAAAAAA","AAAAAAA","AAAAAAA","AAAAAAA","AAAAAAA"}, - {"N N"," "," CCC "," CPC "," CCC "," ","N N"}, - {"N N"," "," CCC "," CPC "," CCC "," ","N N"}, - {"N N"," "," CCC "," CPC "," CCC "," ","N N"}, - {"N N"," "," CCC "," CPC "," CCC "," ","N N"}, - {"AAAAAAA","A A","A CCC A","A CPC A","A CCC A","A A","AAAAAAA"}, - {"ANNNNNA","N N","N CCC N","N CPC N","N CCC N","N N","ANNNNNA"}, - {"XXX~XXX","XXXXXXX","XXXXXXX","XXXXXXX","XXXXXXX","XXXXXXX","XXXXXXX"}, - }) - ).addElement( - 'X', - ofChain( - ofHatchAdder( - MultiNqGenerator::addToGeneratorList, 44, - GregTech_API.sBlockCasings3, 12 - ), - ofBlock( - GregTech_API.sBlockCasings3, 12 - ) - ) - ).addElement( - 'A', - ofBlock( - GregTech_API.sBlockCasings3, 12 - ) - ).addElement( - 'N', - ofBlock( - Loaders.radiationProtectionSteelFrame, 0 - ) - ).addElement( - 'C', - ofBlock( - Loaders.MAR_Casing, 0 - ) - ).addElement( - 'P', - ofBlock( - GregTech_API.sBlockCasings2,15 - ) - ) - .build(); - } - return multiDefinition; - } - - public MultiNqGenerator(String name) { - super(name); - } - - public MultiNqGenerator(int id, String name, String nameRegional) { - super(id,name,nameRegional); - } - - @Override - public boolean isCorrectMachinePart(ItemStack aStack) { - return true; - } - - @Override - public void loadNBTData(NBTTagCompound aNBT){ - this.times = aNBT.getInteger("mTimes"); - this.leftEnergy = aNBT.getLong("mLeftEnergy"); - this.basicOutput = aNBT.getInteger("mbasicOutput"); - if (FluidRegistry.getFluid(aNBT.getString("mLockedFluidName")) != null) - this.lockedFluid = new FluidStack(FluidRegistry.getFluid(aNBT.getString("mLockedFluidName")), aNBT.getInteger("mLockedFluidAmount")); - else this.lockedFluid = null; - super.loadNBTData(aNBT); - } - - @Override - public void saveNBTData(NBTTagCompound aNBT){ - aNBT.setInteger("mTimes", this.times); - aNBT.setLong("mLeftEnergy", this.leftEnergy); - aNBT.setInteger("mbasicOutput", this.basicOutput); - if (lockedFluid != null){ - aNBT.setString("mLockedFluidName", this.lockedFluid.getFluid().getName()); - aNBT.setInteger("mLockedFluidAmount", this.lockedFluid.amount); - } - super.saveNBTData(aNBT); - } - - @Override - public boolean checkRecipe_EM(ItemStack aStack) { - - ArrayList tFluids = getStoredFluids(); - - for (int i = 0; i < tFluids.size() - 1; i++) { - for (int j = i + 1; j < tFluids.size(); j++) { - if (GT_Utility.areFluidsEqual(tFluids.get(i), tFluids.get(j))) { - if ((tFluids.get(i)).amount >= (tFluids.get(j)).amount) { - tFluids.remove(j--); - } else { - tFluids.remove(i--); - break; - } - } - } - } - - GT_Recipe tRecipe = MyRecipeAdder.instance.NqGFuels.findRecipe(this.getBaseMetaTileEntity(), true, 1 << 30, tFluids.toArray(new FluidStack[0])); - if (tRecipe != null) { - Pair excitedInfo = getExcited(tFluids.toArray(new FluidStack[0]), false); - int pall = excitedInfo == null ? 1 : excitedInfo.getValue(); - if (consumeFuel(CrackRecipeAdder.copyFluidWithAmount(tRecipe.mFluidInputs[0], pall), tFluids.toArray(new FluidStack[0]))) { - mOutputFluids = new FluidStack[]{CrackRecipeAdder.copyFluidWithAmount(tRecipe.mFluidOutputs[0], pall)}; - basicOutput = tRecipe.mSpecialValue; - times = pall; - lockedFluid = excitedInfo == null ? null : excitedInfo.getKey(); - mMaxProgresstime = tRecipe.mDuration; - return true; - } - } - - return false; - } - - @Override - public boolean onRunningTick(ItemStack stack) { - if (this.getBaseMetaTileEntity().isServerSide()) { - if (mMaxProgresstime != 0 && mProgresstime % 20 == 0) { - FluidStack[] input = getStoredFluids().toArray(new FluidStack[0]); - int eff = 100, time = 1; - if (LiquidAirConsumptionPerSecond != 0 && !consumeFuel(Materials.LiquidAir.getFluid(LiquidAirConsumptionPerSecond), input)) { - this.mEUt = 0; - this.trueEff = 0; - this.trueOutput = 0; - return true; - } - if (getCoolant(input, true) != null) eff = getCoolant(input, false).getValue(); - if (consumeFuel(lockedFluid, input)) time = times; - this.mEUt = basicOutput * eff * time / 100; - this.trueEff = eff; - this.trueOutput = (long) basicOutput * (long) eff * (long) time / 100; - } - addAutoEnergy(trueOutput); - } - return true; - } - - @Override - public String[] getInfoData() { - String[] info = super.getInfoData(); - info[4] = "Probably makes: " + EnumChatFormatting.RED + Math.abs(this.trueOutput) + EnumChatFormatting.RESET + " EU/t"; - info[6] = "Problems: " + EnumChatFormatting.RED + (this.getIdealStatus() - this.getRepairStatus()) + EnumChatFormatting.RESET + " Efficiency: " + EnumChatFormatting.YELLOW + trueEff + EnumChatFormatting.RESET + " %"; - return info; - } - - public boolean consumeFuel(FluidStack target, FluidStack[] input) { - if (target == null) return false; - for (FluidStack inFluid : input) { - if (inFluid != null && inFluid.isFluidEqual(target) && inFluid.amount >= target.amount){ - inFluid.amount -= target.amount; - return true; - } - } - return false; - } - - public Pair getExcited(FluidStack[] input, boolean isConsume) { - for (Pair fluidPair : excitedLiquid) { - FluidStack tFluid = fluidPair.getKey(); - for (FluidStack inFluid : input) { - if (inFluid != null && inFluid.isFluidEqual(tFluid) && inFluid.amount >= tFluid.amount) { - if (isConsume) inFluid.amount -= tFluid.amount; - return fluidPair; - } - } - } - return null; - } - - public Pair getCoolant(FluidStack[] input, boolean isConsume) { - for (Pair fluidPair : coolant) { - FluidStack tFluid = fluidPair.getKey(); - for (FluidStack inFluid : input) { - if (inFluid != null && inFluid.isFluidEqual(tFluid) && inFluid.amount >= tFluid.amount) { - if (isConsume) inFluid.amount -= tFluid.amount; - return fluidPair; - } - } - } - return null; - } - - public void addAutoEnergy(long outputPower){ - if (this.eDynamoMulti.size() > 0) - for (GT_MetaTileEntity_Hatch tHatch : this.eDynamoMulti){ - long voltage = tHatch.maxEUOutput(); - long power = voltage * tHatch.maxAmperesOut(); - long outputAmperes; - if (outputPower > power) doExplosion(8 * GT_Utility.getTier(power)); - if (outputPower >= voltage){ - leftEnergy += outputPower; - outputAmperes = leftEnergy / voltage; - leftEnergy -= outputAmperes * voltage; - addEnergyOutput_EM(voltage, outputAmperes); - } - else{ - addEnergyOutput_EM(outputPower, 1); - } - } - if (this.mDynamoHatches.size() > 0) - for (GT_MetaTileEntity_Hatch tHatch : this.mDynamoHatches){ - long voltage = tHatch.maxEUOutput(); - long power = voltage * tHatch.maxAmperesOut(); - long outputAmperes; - if (outputPower > power) doExplosion(8 * GT_Utility.getTier(power)); - if (outputPower >= voltage){ - leftEnergy += outputPower; - outputAmperes = leftEnergy / voltage; - leftEnergy -= outputAmperes * voltage; - addEnergyOutput_EM(voltage, outputAmperes); - } - else{ - addEnergyOutput_EM(outputPower, 1); - } - } - } - - @Override - public boolean checkMachine_EM(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { - return structureCheck_EM(mName, 3, 7, 0) && mMaintenanceHatches.size() == 1 && mDynamoHatches.size() + eDynamoMulti.size() == 1; - } - - @Override - public int getMaxEfficiency(ItemStack aStack) { - return 0; - } - - @Override - public int getPollutionPerTick(ItemStack aStack) { - return 0; - } - - @Override - public int getDamageToComponent(ItemStack aStack) { - return 0; - } - - @Override - public boolean explodesOnComponentBreak(ItemStack aStack) { - return false; - } - - @Override - public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { - return new MultiNqGenerator(this.mName); - } - - @Override - public String[] getDescription() { - final GT_Multiblock_Tooltip_Builder tt = new GT_Multiblock_Tooltip_Builder(); - tt.addMachineType("Naquadah Reactor") - .addInfo("Controller block for the Naquadah Reactor") - .addInfo("Environmental Friendly!") - .addInfo("Generate power with the High-energy liquid.") - .addInfo(String.format("Consume liquid air %d L/s to keep running, otherwise" + EnumChatFormatting.YELLOW + " it will void your fuel" + EnumChatFormatting.GRAY + ".", LiquidAirConsumptionPerSecond)) - .addInfo("Input liquid nuclear fuel or liquid naquadah fuel.") - .addInfo("The reactor will explode when there are more than" + EnumChatFormatting.RED + " ONE" + EnumChatFormatting.GRAY + " types of fuel in the hatch!") - .addInfo("Consume coolant 1000 L/s to increase the efficiency:") - .addInfo(String.format("IC2 Coolant %d%%, Super Coolant %d%%, Cryotheum %d%%", CoolantEfficiency[2], CoolantEfficiency[1], CoolantEfficiency[0])) - .addInfo("Consume excited liquid to increase the output power:") - .addInfo(String.format("molten caesium | %dx power | 180 L/s ", ExcitedLiquidCoe[3])) - .addInfo(String.format("molten uranium-235 | %dx power | 180 L/s", ExcitedLiquidCoe[2])) - .addInfo(String.format("molten naquadah | %dx power | 20 L/s", ExcitedLiquidCoe[1])) - .addInfo(String.format("molten Atomic Separation Catalyst | %dx power | 20 L/s", ExcitedLiquidCoe[0])) - .addInfo("The structure is too complex!") - .addInfo(BLUE_PRINT_INFO) - .addSeparator() - .beginStructureBlock(7, 8, 7, true) - .addController("Front bottom") - .addDynamoHatch("Any bottom layer casing, only accept ONE!") - .addInputHatch("Any bottom layer casing") - .addOutputHatch("Any bottom layer casing") - .addMaintenanceHatch("Any bottom layer casing") - .toolTipFinisher("Good Generator"); - if (!Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { - return tt.getInformation(); - } else { - return tt.getStructureInformation(); - } - } - - @Override - @SuppressWarnings("ALL") - public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { - if(aSide == aFacing){ - if(aActive) return new ITexture[]{Textures.BlockIcons.getCasingTextureForId(44), new GT_RenderedTexture(Textures.BlockIcons.NAQUADAH_REACTOR_SOLID_FRONT_ACTIVE), TextureFactory.builder().addIcon(Textures.BlockIcons.NAQUADAH_REACTOR_SOLID_FRONT_ACTIVE_GLOW).glow().build()}; - return new ITexture[]{Textures.BlockIcons.getCasingTextureForId(44), new GT_RenderedTexture(Textures.BlockIcons.NAQUADAH_REACTOR_SOLID_FRONT)}; - } - return new ITexture[]{Textures.BlockIcons.getCasingTextureForId(44)}; - } - - @Override - public List getVanillaEnergyHatches() { - return this.mEnergyHatches; - } - - @Override - public List getTecTechEnergyTunnels() { - return new ArrayList<>(); - } - - @Override - public List getTecTechEnergyMultis() { - return new ArrayList<>(); - } - -} diff --git a/src/main/java/GoodGenerator/Blocks/TEs/NeutronActivator.java b/src/main/java/GoodGenerator/Blocks/TEs/NeutronActivator.java deleted file mode 100644 index 7ad537a5da..0000000000 --- a/src/main/java/GoodGenerator/Blocks/TEs/NeutronActivator.java +++ /dev/null @@ -1,441 +0,0 @@ -package GoodGenerator.Blocks.TEs; - -import GoodGenerator.Blocks.TEs.MetaTE.NeutronAccelerator; -import GoodGenerator.Blocks.TEs.MetaTE.NeutronSensor; -import GoodGenerator.Client.GUI.NeutronActivatorGUIClient; -import GoodGenerator.Common.Container.NeutronActivatorGUIContainer; -import GoodGenerator.Loader.Loaders; -import GoodGenerator.util.CharExchanger; -import GoodGenerator.util.DescTextLocalization; -import GoodGenerator.util.ItemRefer; -import GoodGenerator.util.MyRecipeAdder; -import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEntity_MultiblockBase_EM; -import com.gtnewhorizon.structurelib.alignment.constructable.IConstructable; -import com.gtnewhorizon.structurelib.structure.IStructureDefinition; -import com.gtnewhorizon.structurelib.structure.StructureDefinition; -import gregtech.api.GregTech_API; -import gregtech.api.enums.Materials; -import gregtech.api.enums.Textures; -import gregtech.api.interfaces.IIconContainer; -import gregtech.api.interfaces.ITexture; -import gregtech.api.interfaces.metatileentity.IMetaTileEntity; -import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch; -import gregtech.api.render.TextureFactory; -import gregtech.api.util.GT_Multiblock_Tooltip_Builder; -import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Utility; -import ic2.core.Ic2Items; -import net.minecraft.block.Block; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.StatCollector; -import net.minecraftforge.fluids.FluidStack; -import org.lwjgl.input.Keyboard; - -import java.util.ArrayList; -import java.util.Collection; - -import static GoodGenerator.util.DescTextLocalization.BLUE_PRINT_INFO; -import static GoodGenerator.util.StructureHelper.addFrame; -import static com.gtnewhorizon.structurelib.structure.StructureUtility.*; -import static gregtech.api.util.GT_StructureUtility.ofHatchAdder; -import static org.apache.commons.lang3.RandomUtils.nextInt; - -public class NeutronActivator extends GT_MetaTileEntity_MultiblockBase_EM implements IConstructable { - - protected IStructureDefinition multiDefinition = null; - protected final ArrayList mNeutronAccelerator = new ArrayList<>(); - protected final ArrayList mNeutronSensor = new ArrayList<>(); - protected int casingAmount = 0; - protected int height = 0; - protected int eV = 0, mCeil = 0, mFloor = 0; - - private static final IIconContainer textureFontOn = new Textures.BlockIcons.CustomIcon("icons/NeutronActivator_On"); - private static final IIconContainer textureFontOn_Glow = new Textures.BlockIcons.CustomIcon("icons/NeutronActivator_On_GLOW"); - private static final IIconContainer textureFontOff = new Textures.BlockIcons.CustomIcon("icons/NeutronActivator_Off"); - private static final IIconContainer textureFontOff_Glow = new Textures.BlockIcons.CustomIcon("icons/NeutronActivator_Off_GLOW"); - - protected final String NA_BOTTOM = mName + "buttom"; - protected final String NA_MID = mName + "mid"; - protected final String NA_TOP = mName + "top"; - - public NeutronActivator(String name) { - super(name); - } - - public NeutronActivator(int id, String name, String nameRegional) { - super(id, name, nameRegional); - } - - @Override - public boolean checkRecipe_EM(ItemStack aStack) { - this.mEfficiency = 10000; - - ArrayList tFluids = getStoredFluids(); - ArrayList tItems = getStoredInputs(); - Collection tRecipes = MyRecipeAdder.instance.NA.mRecipeList; - - for (int i = 0; i < tFluids.size() - 1; i++) { - for (int j = i + 1; j < tFluids.size(); j++) { - if (GT_Utility.areFluidsEqual(tFluids.get(i), tFluids.get(j))) { - if ((tFluids.get(i)).amount >= (tFluids.get(j)).amount) { - tFluids.remove(j--); - } else { - tFluids.remove(i--); - break; - } - } - } - } - - for (int i = 0; i < tItems.size() - 1; i++) { - for (int j = i + 1; j < tItems.size(); j++) { - if (GT_Utility.areStacksEqual(tItems.get(i), tItems.get(j))) { - if ((tItems.get(i)).stackSize >= (tItems.get(j)).stackSize) { - tItems.remove(j--); - } else { - tItems.remove(i--); - break; - } - } - } - } - - FluidStack[] inFluids = tFluids.toArray(new FluidStack[0]); - ItemStack[] inItems = tItems.toArray(new ItemStack[0]); - int minNKE, maxNKE; - - for (GT_Recipe recipe : tRecipes) { - minNKE = (recipe.mSpecialValue % 10000) * 1000000; - maxNKE = (recipe.mSpecialValue / 10000) * 1000000; - if (recipe.isRecipeInputEqual(true, inFluids, inItems)) { - mFloor = minNKE; - mCeil = maxNKE; - mMaxProgresstime = Math.max((int)(recipe.mDuration * Math.pow(0.9, height - 4)), 1); - if (eV <= maxNKE && eV >= minNKE) { - this.mOutputFluids = recipe.mFluidOutputs; - this.mOutputItems = recipe.mOutputs; - } else { - this.mOutputFluids = null; - this.mOutputItems = new ItemStack[]{ItemRefer.Radioactive_Waste.get(4)}; - } - return true; - } - } - return false; - } - - @Override - public int getMaxEfficiency(ItemStack aStack) { - return 10000; - } - - @Override - public int getPollutionPerTick(ItemStack aStack) { - return 0; - } - - @Override - public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return new NeutronActivatorGUIClient(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "EMDisplay.png"); - } - - @Override - public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return new NeutronActivatorGUIContainer(aPlayerInventory, aBaseMetaTileEntity); - } - - @Override - public void loadNBTData(NBTTagCompound aNBT) { - eV = aNBT.getInteger("mKeV"); - mCeil = aNBT.getInteger("mCeil"); - mFloor = aNBT.getInteger("mFloor"); - height = aNBT.getInteger("height"); - super.loadNBTData(aNBT); - } - - @Override - public void saveNBTData(NBTTagCompound aNBT) { - aNBT.setInteger("mKeV", eV); - aNBT.setInteger("mCeil", mCeil); - aNBT.setInteger("mFloor", mFloor); - aNBT.setInteger("height", height); - super.saveNBTData(aNBT); - } - - @Override - public String[] getDescription() { - final GT_Multiblock_Tooltip_Builder tt = new GT_Multiblock_Tooltip_Builder(); - tt.addMachineType("Neutron Activator") - .addInfo("Controller block for the Neutron Activator") - .addInfo("Superluminal-velocity Motion.") - .addInfo("The minimum height of the Speeding Pipe Casing is 4.") - .addInfo("Per extra Speeding Pipe Casing will give time discount.") - .addInfo("But it will reduce the Neutron Accelerator efficiency.") - .addInfo("You need to input energy to the Neutron Accelerator to get it running.") - .addInfo("It will output correct products with Specific Neutron Kinetic Energy.") - .addInfo("Otherwise it will output trash.") - .addInfo("The Neutron Kinetic Energy will decrease 72KeV/s when no Neutron Accelerator is running.") - .addInfo("It will explode when the Neutron Kinetic Energy is over" + EnumChatFormatting.RED + " 1200MeV" + EnumChatFormatting.GRAY + ".") - .addInfo("The structure is too complex!") - .addInfo(BLUE_PRINT_INFO) - .addSeparator() - .addController("Front bottom") - .addInputHatch("Hint block with dot 1") - .addInputBus("Hint block with dot 1") - .addOutputHatch("Hint block with dot 2") - .addOutputBus("Hint block with dot 2") - .addMaintenanceHatch("Hint block with dot 2") - .addOtherStructurePart("Neutron Accelerator", "Hint block with dot 2") - .addOtherStructurePart("Neutron Sensor", "Hint block with dot 2") - .addCasingInfo("Clean Stainless Steel Machine Casing", 7) - .toolTipFinisher("Good Generator"); - if (!Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { - return tt.getInformation(); - } else { - return tt.getStructureInformation(); - } - } - - @Override - public IStructureDefinition getStructure_EM() { - if (multiDefinition == null) { - multiDefinition = StructureDefinition - .builder() - .addShape(NA_TOP, - transpose(new String[][]{ - {"CCCCC", "CDDDC", "CDDDC", "CDDDC", "CCCCC"} - }) - ) - .addShape(NA_MID, - transpose(new String[][]{ - {"F F", " GGG ", " GPG ", " GGG ", "F F"} - }) - ) - .addShape(NA_BOTTOM, - transpose(new String[][]{ - {"XX~XX", "XDDDX", "XDDDX", "XDDDX", "XXXXX"} - }) - ) - .addElement( - 'C', - ofChain( - ofHatchAdder( - NeutronActivator::addClassicInputToMachineList, 49, - 1 - ), - onElementPass( - x -> x.casingAmount++, - ofBlock( - GregTech_API.sBlockCasings4, 1 - ) - ) - ) - ) - .addElement( - 'D', - ofBlock( - GregTech_API.sBlockCasings2, 6 - ) - ) - .addElement( - 'F', - addFrame( - Materials.Steel - ) - ) - .addElement( - 'G', - ofBlock( - Block.getBlockFromItem(Ic2Items.reinforcedGlass.getItem()), 0 - ) - ) - .addElement( - 'P', - ofBlock( - Loaders.speedingPipe, 0 - ) - ) - .addElement( - 'X', - ofChain( - ofHatchAdder( - NeutronActivator::addClassicOutputToMachineList, 49, - 2 - ), - ofHatchAdder( - NeutronActivator::addMaintenanceToMachineList, 49, - 2 - ), - ofHatchAdder( - NeutronActivator::addAcceleratorAndSensor, 49, - 2 - ), - onElementPass( - x -> x.casingAmount++, - ofBlock( - GregTech_API.sBlockCasings4, 1 - ) - ) - ) - ) - .build(); - } - return multiDefinition; - } - - @Override - public boolean checkMachine_EM(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { - this.casingAmount = 0; - this.mNeutronAccelerator.clear(); - this.mNeutronSensor.clear(); - if (!structureCheck_EM(NA_BOTTOM, 2, 0, 0)) return false; - height = 0; - while (structureCheck_EM(NA_MID, 2, height +1, 0)) { - height ++; - } - if (height < 4) return false; - return structureCheck_EM(NA_TOP, 2, height + 1, 0) && casingAmount >= 7; - } - - public final boolean addAcceleratorAndSensor(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) { - if (aTileEntity == null) { - return false; - } else { - IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity(); - if (aMetaTileEntity instanceof NeutronAccelerator) { - ((GT_MetaTileEntity_Hatch) aMetaTileEntity).updateTexture(aBaseCasingIndex); - return this.mNeutronAccelerator.add((NeutronAccelerator) aMetaTileEntity); - } else if (aMetaTileEntity instanceof NeutronSensor) { - ((GT_MetaTileEntity_Hatch) aMetaTileEntity).updateTexture(aBaseCasingIndex); - return this.mNeutronSensor.add((NeutronSensor) aMetaTileEntity); - } - } - return false; - } - - public int maxNeutronKineticEnergy() { - return 1200000000; - } - - public int getCurrentNeutronKineticEnergy() { - return eV; - } - - @Override - public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { - return new NeutronActivator(this.mName); - } - - @Override - public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { - super.onPostTick(aBaseMetaTileEntity, aTick); - boolean anyWorking = false; - if (this.getBaseMetaTileEntity().isServerSide()) { - for (NeutronAccelerator tHatch : mNeutronAccelerator) { - if (tHatch.isRunning && this.getRepairStatus() == this.getIdealStatus()) { - anyWorking = true; - this.eV += Math.max(nextInt(tHatch.getMaxEUConsume(), tHatch.getMaxEUConsume() * 2 + 1) * 10 * Math.pow(0.95, height - 4), 10); - } - } - if (!anyWorking) { - if (this.eV >= 72000 && aTick % 20 == 0) { - this.eV -= 72000; - } else if (this.eV > 0 && aTick % 20 == 0) { - this.eV = 0; - } - } - if (this.eV < 0) this.eV = 0; - if (this.eV > maxNeutronKineticEnergy()) doExplosion(4 * 32); - - for (NeutronSensor tHatch : mNeutronSensor) { - String tText = tHatch.getText(); - if (CharExchanger.isValidCompareExpress(rawProcessExp(tText))) { - if (CharExchanger.compareExpression(rawProcessExp(tText), eV)) { - tHatch.outputRedstoneSignal(); - } else tHatch.stopOutputRedstoneSignal(); - } - } - - if (mProgresstime < mMaxProgresstime && (eV > mCeil || eV < mFloor)) { - this.mOutputFluids = null; - this.mOutputItems = new ItemStack[]{ItemRefer.Radioactive_Waste.get(4)}; - } - } - } - - protected String rawProcessExp(String exp) { - StringBuilder ret = new StringBuilder(); - for (char c : exp.toCharArray()) { - if (exp.length() - ret.length() == 3) { - if (Character.isDigit(c)) ret.append(c); - else { - if (c == 'K' || c == 'k') { - ret.append("000"); - } - if (c == 'M' || c == 'm') { - ret.append("000000"); - } - } - break; - } - ret.append(c); - } - return ret.toString(); - } - - @Override - public void construct(ItemStack stackSize, boolean hintsOnly) { - structureBuild_EM(NA_BOTTOM, 2, 0, 0, hintsOnly, stackSize); - int heights = stackSize.stackSize + 3; - structureBuild_EM(NA_TOP, 2, heights + 1, 0, hintsOnly, stackSize); - while (heights > 0) { - structureBuild_EM(NA_MID, 2, heights, 0, hintsOnly, stackSize); - heights --; - } - } - - @Override - public String[] getStructureDescription(ItemStack itemStack) { - return DescTextLocalization.addText("NeutronActivator.hint", 7); - } - - @Override - public String[] getInfoData() { - int currentNKEInput = 0; - boolean anyWorking = false; - for (NeutronAccelerator tHatch : mNeutronAccelerator) { - if (tHatch.isRunning) { - currentNKEInput += nextInt(tHatch.getMaxEUConsume(), tHatch.getMaxEUConsume() * 2 + 1) * 10 * Math.pow(0.95, height - 4); - anyWorking = true; - } - } - if (!anyWorking) currentNKEInput = -72000; - return new String[] { - "Progress:", - EnumChatFormatting.GREEN + Integer.toString(this.mProgresstime / 20) + EnumChatFormatting.RESET + " s / " + EnumChatFormatting.YELLOW + this.mMaxProgresstime / 20 + EnumChatFormatting.RESET + " s", - "Current Neutron Kinetic Energy Input: " + EnumChatFormatting.GREEN + GT_Utility.formatNumbers(currentNKEInput) + EnumChatFormatting.RESET + "eV", - StatCollector.translateToLocal("scanner.info.NA") + " " + EnumChatFormatting.LIGHT_PURPLE + GT_Utility.formatNumbers(getCurrentNeutronKineticEnergy()) + EnumChatFormatting.RESET + "eV" - }; - } - - @Override - public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { - if(aSide == aFacing) { - if(aActive) return new ITexture[]{ - Textures.BlockIcons.getCasingTextureForId(49), - TextureFactory.of(textureFontOn), - TextureFactory.builder().addIcon(textureFontOn_Glow).glow().build() - }; - else return new ITexture[]{ - Textures.BlockIcons.getCasingTextureForId(49), - TextureFactory.of(textureFontOff), - TextureFactory.builder().addIcon(textureFontOff_Glow).glow().build() - }; - } - return new ITexture[]{Textures.BlockIcons.getCasingTextureForId(49)}; - } -} diff --git a/src/main/java/GoodGenerator/Blocks/TEs/UniversalChemicalFuelEngine.java b/src/main/java/GoodGenerator/Blocks/TEs/UniversalChemicalFuelEngine.java deleted file mode 100644 index 1afc131c5f..0000000000 --- a/src/main/java/GoodGenerator/Blocks/TEs/UniversalChemicalFuelEngine.java +++ /dev/null @@ -1,348 +0,0 @@ -package GoodGenerator.Blocks.TEs; - -import GoodGenerator.Loader.Loaders; -import GoodGenerator.util.DescTextLocalization; -import com.github.bartimaeusnek.crossmod.tectech.TecTechEnabledMulti; -import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_EnergyMulti; -import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_EnergyTunnel; -import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEntity_MultiblockBase_EM; -import com.gtnewhorizon.structurelib.alignment.constructable.IConstructable; -import com.gtnewhorizon.structurelib.structure.IStructureDefinition; -import com.gtnewhorizon.structurelib.structure.StructureDefinition; -import gregtech.api.GregTech_API; -import gregtech.api.interfaces.ITexture; -import gregtech.api.interfaces.metatileentity.IMetaTileEntity; -import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import gregtech.api.metatileentity.implementations.*; -import gregtech.api.render.TextureFactory; -import gregtech.api.util.GT_Multiblock_Tooltip_Builder; -import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Utility; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraftforge.fluids.FluidRegistry; -import net.minecraftforge.fluids.FluidStack; -import org.lwjgl.input.Keyboard; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - -import static GoodGenerator.util.DescTextLocalization.BLUE_PRINT_INFO; -import static com.gtnewhorizon.structurelib.structure.StructureUtility.*; -import static gregtech.api.enums.Textures.BlockIcons.*; -import static gregtech.api.util.GT_StructureUtility.ofHatchAdder; - -public class UniversalChemicalFuelEngine extends GT_MetaTileEntity_MultiblockBase_EM implements TecTechEnabledMulti, IConstructable { - - protected final double DIESEL_EFFICIENCY_COEFFICIENT = 0.02D; - protected final double GAS_EFFICIENCY_COEFFICIENT = 0.01D; - protected final double EFFICIENCY_CEILING = 1.5D; - - private IStructureDefinition multiDefinition = null; - - public UniversalChemicalFuelEngine(String name){super(name);} - - public UniversalChemicalFuelEngine(int id, String name, String nameRegional){ - super(id,name,nameRegional); - } - - public final boolean addMaintenance(IGregTechTileEntity aTileEntity, int aBaseCasingIndex){ - if (aTileEntity == null) { - return false; - } else { - IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity(); - if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Maintenance){ - ((GT_MetaTileEntity_Hatch)aMetaTileEntity).updateTexture(aBaseCasingIndex); - return this.mMaintenanceHatches.add((GT_MetaTileEntity_Hatch_Maintenance)aMetaTileEntity); - } - } - return false; - } - - public final boolean addMuffler(IGregTechTileEntity aTileEntity, int aBaseCasingIndex){ - if (aTileEntity == null) { - return false; - } else { - IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity(); - if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Muffler){ - ((GT_MetaTileEntity_Hatch)aMetaTileEntity).updateTexture(aBaseCasingIndex); - return this.mMufflerHatches.add((GT_MetaTileEntity_Hatch_Muffler)aMetaTileEntity); - } - } - return false; - } - - public final boolean addInputHatch(IGregTechTileEntity aTileEntity, int aBaseCasingIndex){ - if (aTileEntity == null) { - return false; - } else { - IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity(); - if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Input){ - ((GT_MetaTileEntity_Hatch)aMetaTileEntity).updateTexture(aBaseCasingIndex); - return this.mInputHatches.add((GT_MetaTileEntity_Hatch_Input)aMetaTileEntity); - } - } - return false; - } - - public final boolean addDynamoHatch(IGregTechTileEntity aTileEntity, int aBaseCasingIndex){ - if (aTileEntity == null) { - return false; - } else { - IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity(); - if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Dynamo){ - ((GT_MetaTileEntity_Hatch)aMetaTileEntity).updateTexture(aBaseCasingIndex); - return this.mDynamoHatches.add((GT_MetaTileEntity_Hatch_Dynamo)aMetaTileEntity); - } - } - return false; - } - - @Override - public IStructureDefinition getStructure_EM(){ - if (multiDefinition == null){ - multiDefinition = StructureDefinition - .builder() - .addShape(mName, - transpose(new String[][]{ - {"TTTTT","TTMMT","TTMMT","TTMMT","TTMMT","TTMMT","TTMMT","TTMMT","TTTTT"}, - {"TTTTT","SPCCI-","SPCCI-","SPCCI-","SPCCI-","SPCCI-","SPCCI-","SPCCI-","TTTTT"}, - {"TT~TT","SPGGI-","SPGGI-","SPGGI-","SPGGI-","SPGGI-","SPGGI-","SPGGI-","TTETT"}, - {"TTWTT","TTTTT","TTTTT","TTTTT","TTTTT","TTTTT","TTTTT","TTTTT","TTTTT"} - }) - ).addElement( - 'T', - ofBlock( - GregTech_API.sBlockCasings4, 2 - ) - ).addElement( - 'W', - ofHatchAdder( - UniversalChemicalFuelEngine::addMaintenance, 50, - 1 - ) - ).addElement( - 'M', - ofHatchAdder( - UniversalChemicalFuelEngine::addMuffler, 50, - 2 - ) - ).addElement( - 'S', - ofHatchAdder( - UniversalChemicalFuelEngine::addInputHatch, 50, - 3 - ) - ).addElement( - 'E', - ofHatchAdder( - UniversalChemicalFuelEngine::addDynamoHatch, 50, - 4 - ) - ).addElement( - 'P', - ofBlock( - GregTech_API.sBlockCasings2, 14 - ) - ).addElement( - 'C', - ofBlock( - Loaders.titaniumPlatedCylinder, 0 - ) - ).addElement( - 'G', - ofBlock( - GregTech_API.sBlockCasings2, 4 - ) - ).addElement( - 'I', - ofBlock( - GregTech_API.sBlockCasings4, 13 - ) - ) - .build(); - } - return multiDefinition; - } - - @Override - public boolean checkMachine_EM(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { - return structureCheck_EM(mName, 2, 2, 0); - } - - @Override - public void construct(ItemStack itemStack, boolean b) { - structureBuild_EM(mName, 2, 2, 0, b, itemStack); - } - - @Override - public String[] getStructureDescription(ItemStack itemStack) { - return DescTextLocalization.addText("UniversalChemicalFuelEngine.hint", 11); - } - - @Override - public boolean isCorrectMachinePart(ItemStack aStack) { - return true; - } - - @Override - public int getPollutionPerTick(ItemStack aStack) { - return (int)Math.sqrt(this.mEUt) / 20; - } - - @Override - public String[] getDescription(){ - final GT_Multiblock_Tooltip_Builder tt = new GT_Multiblock_Tooltip_Builder(); - tt.addMachineType("Chemical Engine") - .addInfo("Controller block for the Chemical Engine") - .addInfo("BURNING BURNING BURNING") - .addInfo("Use combustible liquid to generate power.") - .addInfo("You need to supply Combustion Promoter to keep it running.") - .addInfo("This engine will consume all the fuel and combustion promoter in the hatch every second.") - .addInfo("The efficiency is determined by the proportion of Combustion Promoter to fuel.") - .addInfo("The proportion is bigger, and the efficiency will be higher.") - .addInfo("It creates sqrt(Current Output Power) pollution every second") - .addInfo("If you forget to supply Combustion Promoter, this engine will swallow all the fuel " + EnumChatFormatting.YELLOW + "without outputting energy" + EnumChatFormatting.GRAY + ".") - .addInfo("The efficiency is up to 150%.") - .addInfo("The structure is too complex!") - .addInfo(BLUE_PRINT_INFO) - .addSeparator() - .beginStructureBlock(5, 4, 9, false) - .addMaintenanceHatch("Hint block with dot 1") - .addMufflerHatch("Hint block with dot 2") - .addInputHatch("Hint block with dot 3") - .addDynamoHatch("Hint block with dot 4") - .toolTipFinisher("Good Generator"); - if (!Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { - return tt.getInformation(); - } else { - return tt.getStructureInformation(); - } - } - - @Override - public boolean checkRecipe_EM(ItemStack aStack) { - - ArrayList tFluids = getStoredFluids(); - - Collection tDieselFuels = GT_Recipe.GT_Recipe_Map.sDieselFuels.mRecipeList; - Collection tGasFuels = GT_Recipe.GT_Recipe_Map.sTurbineFuels.mRecipeList; - - int PromoterAmount = findLiquidAmount(getPromoter(), tFluids); - - for (GT_Recipe recipe : tDieselFuels) { - FluidStack tFuel = findFuel(recipe); - if (tFuel == null) continue; - int FuelAmount = findLiquidAmount(tFuel, tFluids); - if (FuelAmount == 0) continue; - calculateEfficiency(FuelAmount, PromoterAmount, DIESEL_EFFICIENCY_COEFFICIENT); - - consumeAllLiquid(tFuel); - consumeAllLiquid(getPromoter()); - - this.mEUt = (int)(FuelAmount * recipe.mSpecialValue / 20.0D); - this.mMaxProgresstime = 20; - this.updateSlots(); - return true; - } - - for (GT_Recipe recipe : tGasFuels) { - FluidStack tFuel = findFuel(recipe); - if (tFuel == null) continue; - int FuelAmount = findLiquidAmount(tFuel, tFluids); - if (FuelAmount == 0) continue; - calculateEfficiency(FuelAmount, PromoterAmount, GAS_EFFICIENCY_COEFFICIENT); - - consumeAllLiquid(tFuel); - consumeAllLiquid(getPromoter()); - - this.mEUt = (int)(FuelAmount * recipe.mSpecialValue / 20.0D); - this.mMaxProgresstime = 20; - this.updateSlots(); - return true; - } - - return false; - } - - public FluidStack getPromoter() { - return FluidRegistry.getFluidStack("combustionpromotor", 1); - } - - public FluidStack findFuel(GT_Recipe aFuel) { - return GT_Utility.getFluidForFilledItem(aFuel.mInputs[0], true); - } - - public void calculateEfficiency(int aFuel, int aPromoter, double coefficient){ - if (aPromoter == 0){ - this.mEfficiency = 0; - return; - } - this.mEfficiency = (int)(Math.exp(-coefficient * (double)aFuel / (double)aPromoter) * EFFICIENCY_CEILING * 10000); - } - - public int findLiquidAmount(FluidStack liquid, List input) { - int cnt = 0; - for (FluidStack fluid : input){ - if (fluid.isFluidEqual(liquid)) { - cnt += fluid.amount; - } - } - if (cnt < 0) cnt = 0; - return cnt; - } - - public void consumeAllLiquid(FluidStack liquid) { - for (GT_MetaTileEntity_Hatch_Input tHatch : mInputHatches) { - if (isValidMetaTileEntity(tHatch)) { - FluidStack tLiquid = tHatch.getFluid(); - if (tLiquid != null && tLiquid.isFluidEqual(liquid)) { - tHatch.drain(tLiquid.amount, true); - } - } - } - } - - @Override - public int getMaxEfficiency(ItemStack aStack) { - return (int)(10000 * EFFICIENCY_CEILING); - } - - @Override - public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone){ - if(aSide == aFacing){ - if(aActive) return new ITexture[]{ - casingTexturePages[0][50], - TextureFactory.of(OVERLAY_FRONT_DIESEL_ENGINE_ACTIVE), - TextureFactory.builder().addIcon(OVERLAY_FRONT_DIESEL_ENGINE_ACTIVE_GLOW).glow().build() - }; - return new ITexture[]{ - casingTexturePages[0][50], - TextureFactory.of(OVERLAY_FRONT_DIESEL_ENGINE), - TextureFactory.builder().addIcon(OVERLAY_FRONT_DIESEL_ENGINE_GLOW).glow().build() - }; - } - return new ITexture[]{casingTexturePages[0][50]}; - } - - @Override - public List getVanillaEnergyHatches() { - return this.mEnergyHatches; - } - - @Override - public List getTecTechEnergyTunnels() { - return new ArrayList<>(); - } - - @Override - public List getTecTechEnergyMultis() { - return new ArrayList<>(); - } - - @Override - public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { - return new UniversalChemicalFuelEngine(this.mName); - } -} diff --git a/src/main/java/GoodGenerator/Blocks/TEs/YottaFluidTank.java b/src/main/java/GoodGenerator/Blocks/TEs/YottaFluidTank.java deleted file mode 100644 index 51082b13d2..0000000000 --- a/src/main/java/GoodGenerator/Blocks/TEs/YottaFluidTank.java +++ /dev/null @@ -1,424 +0,0 @@ -package GoodGenerator.Blocks.TEs; - -import GoodGenerator.Client.GUI.YOTTankGUIClient; -import GoodGenerator.Common.Container.YOTTankGUIContainer; -import GoodGenerator.Loader.Loaders; -import GoodGenerator.util.CharExchanger; -import GoodGenerator.util.DescTextLocalization; -import com.github.bartimaeusnek.bartworks.common.loaders.ItemRegistry; -import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEntity_MultiblockBase_EM; -import com.gtnewhorizon.structurelib.alignment.constructable.IConstructable; -import com.gtnewhorizon.structurelib.structure.IStructureDefinition; -import com.gtnewhorizon.structurelib.structure.IStructureElement; -import com.gtnewhorizon.structurelib.structure.StructureDefinition; -import gregtech.api.enums.Materials; -import gregtech.api.enums.Textures; -import gregtech.api.interfaces.IIconContainer; -import gregtech.api.interfaces.ITexture; -import gregtech.api.interfaces.metatileentity.IMetaTileEntity; -import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Input; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Output; -import gregtech.api.render.TextureFactory; -import gregtech.api.util.GT_Multiblock_Tooltip_Builder; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.StatCollector; -import net.minecraftforge.fluids.FluidRegistry; -import net.minecraftforge.fluids.FluidStack; -import org.lwjgl.input.Keyboard; - -import java.math.BigInteger; -import java.util.ArrayList; -import java.util.List; - -import static GoodGenerator.util.DescTextLocalization.BLUE_PRINT_INFO; -import static GoodGenerator.util.StructureHelper.addFrame; -import static GoodGenerator.util.StructureHelper.addTieredBlock; -import static com.gtnewhorizon.structurelib.structure.StructureUtility.*; -import static gregtech.api.util.GT_StructureUtility.*; - -public class YottaFluidTank extends GT_MetaTileEntity_MultiblockBase_EM implements IConstructable { - - private static final IIconContainer textureFontOn = new Textures.BlockIcons.CustomIcon("iconsets/OVERLAY_QTANK"); - private static final IIconContainer textureFontOn_Glow = new Textures.BlockIcons.CustomIcon("iconsets/OVERLAY_QTANK_GLOW"); - private static final IIconContainer textureFontOff = new Textures.BlockIcons.CustomIcon("iconsets/OVERLAY_QCHEST"); - private static final IIconContainer textureFontOff_Glow = new Textures.BlockIcons.CustomIcon("iconsets/OVERLAY_QCHEST_GLOW"); - - protected IStructureDefinition multiDefinition = null; - - protected BigInteger mStorage = new BigInteger("0", 10); - protected BigInteger mStorageCurrent = new BigInteger("0", 10); - protected String mFluidName = ""; - protected int glassMeta; - protected int maxCell; - protected final String YOTTANK_BOTTOM = mName + "buttom"; - protected final String YOTTANK_MID = mName + "mid"; - protected final String YOTTANK_TOP = mName + "top"; - - public YottaFluidTank(int id, String name, String nameRegional) { - super(id, name, nameRegional); - } - - public YottaFluidTank(String name) { - super(name); - } - - public int getMeta() { - return glassMeta; - } - - public void setMeta(int meta) { - glassMeta = meta; - } - - public String getCap() { - return mStorage.toString(10); - } - - public String getStored() { - return mStorageCurrent.toString(10); - } - - public String getFluidName() { - if (mFluidName == null || mFluidName.equals("") || FluidRegistry.getFluidStack(mFluidName, 1) == null) return "Empty"; - return FluidRegistry.getFluidStack(mFluidName, 1).getLocalizedName(); - } - - @Override - public void loadNBTData(NBTTagCompound aNBT) { - String tAmount = aNBT.getString("mStorage"); - String tAmountCurrent = aNBT.getString("mStorageCurrent"); - if (tAmount == null || tAmount.equals("")) tAmount = "0"; - if (tAmountCurrent == null || tAmountCurrent.equals("")) tAmountCurrent = "0"; - mStorage = new BigInteger(tAmount, 10); - mStorageCurrent = new BigInteger(tAmountCurrent, 10); - mFluidName = aNBT.getString("mFluidName"); - super.loadNBTData(aNBT); - } - - @Override - public void saveNBTData(NBTTagCompound aNBT) { - aNBT.setString("mStorage", mStorage.toString(10)); - aNBT.setString("mStorageCurrent", mStorageCurrent.toString(10)); - aNBT.setString("mFluidName", mFluidName); - super.saveNBTData(aNBT); - } - - @Override - public boolean checkRecipe_EM(ItemStack aStack) { - this.mEUt = 0; - this.mMaxProgresstime = 20; - return true; - } - - public boolean reduceFluid(int amount) { - BigInteger tmp = new BigInteger(amount + ""); - if (mStorageCurrent.compareTo(tmp) < 0) { - return false; - } - else { - mStorageCurrent = mStorageCurrent.subtract(tmp); - return true; - } - } - - private int calGlassTier(int meta) { - if (meta >= 1 && meta <= 6) return meta; - if (meta >= 7 && meta <= 12) return 1; - return 3; - } - - @Override - public boolean checkMachine_EM(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { - mStorage = BigInteger.ZERO; - glassMeta = 0; - if (!structureCheck_EM(YOTTANK_BOTTOM, 2, 0, 0)) return false; - int cnt = 0; - while (structureCheck_EM(YOTTANK_MID, 2, cnt + 1, 0)) { - cnt ++; - } - if (cnt > 15 || cnt < 1) return false; - if (!structureCheck_EM(YOTTANK_TOP, 2, cnt + 2, 0)) return false; - if (mMaintenanceHatches.size() == 1 && maxCell + 1 <= calGlassTier(glassMeta)) { - if (mStorage.compareTo(mStorageCurrent) < 0) mStorageCurrent = mStorage; - if (FluidRegistry.getFluidStack(mFluidName, 1) == null) { - mStorageCurrent = BigInteger.ZERO; - mFluidName = ""; - } - return true; - } - return false; - } - - @Override - public IStructureDefinition getStructure_EM() { - if(multiDefinition == null) { - multiDefinition = StructureDefinition - .builder() - .addShape(YOTTANK_BOTTOM, transpose(new String[][]{ - {"MM~MM","MCCCM","MCCCM","MCCCM","MMMMM"}, - {" "," CCC "," COC "," CCC "," "} - })) - .addShape(YOTTANK_MID, transpose(new String[][]{ - {"GGGGG","GRRRG","GRRRG","GRRRG","GGGGG"} - })) - .addShape(YOTTANK_TOP, transpose(new String[][]{ - {"FFFFF","F F","F F","F F","FFFFF"}, - {"CCCCC","CIIIC","CIIIC","CIIIC","CCCCC"} - })) - .addElement( - 'C', - ofBlock( - Loaders.yottaFluidTankCasing, 0 - ) - ) - .addElement( - 'G', - addTieredBlock( - ItemRegistry.bw_realglas, YottaFluidTank::setMeta, YottaFluidTank::getMeta, 12 - ) - ) - .addElement( - 'R', - ofChain( - cells(10) - ) - ) - .addElement( - 'F', - addFrame(Materials.Steel) - ) - .addElement( - 'I', - ofHatchAdderOptional( - YottaFluidTank::addInput, - 1537, - 1, - Loaders.yottaFluidTankCasing, - 0 - ) - ) - .addElement( - 'M', - ofHatchAdderOptional( - YottaFluidTank::addClassicMaintenanceToMachineList, - 1537, - 2, - Loaders.yottaFluidTankCasing, - 0 - ) - ) - .addElement( - 'O', - ofHatchAdder( - YottaFluidTank::addOutput, - 1537, - 3 - ) - ) - .build(); - } - return multiDefinition; - } - - public List> cells(int num) { - List> out = new ArrayList<>(); - for (int i = 0; i < num; ++i) { - int finalI = i; - out.add( - onElementPass( - x -> { - x.mStorage = x.mStorage.add(calStorage(finalI)); - x.maxCell = Math.max(x.maxCell, finalI); - }, - ofBlock(Loaders.yottaFluidTankCell, i) - ) - ); - } - return out; - } - - public final boolean addInput(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) { - if (aTileEntity == null) { - return false; - } else { - IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity(); - if (aMetaTileEntity == null) { - return false; - } else { - if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Input) { - ((GT_MetaTileEntity_Hatch)aMetaTileEntity).updateTexture(aBaseCasingIndex); - return this.mInputHatches.add((GT_MetaTileEntity_Hatch_Input)aMetaTileEntity); - } - } - } - return false; - } - - public final boolean addOutput(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) { - if (aTileEntity == null) { - return false; - } else { - IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity(); - if (aMetaTileEntity == null) { - return false; - } else { - if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Output) { - ((GT_MetaTileEntity_Hatch)aMetaTileEntity).updateTexture(aBaseCasingIndex); - return this.mOutputHatches.add((GT_MetaTileEntity_Hatch_Output)aMetaTileEntity); - } - } - } - return false; - } - - @Override - public String[] getInfoData() { - return new String[] { - StatCollector.translateToLocal("scanner.info.YOTTank.0") + " " + EnumChatFormatting.GREEN + CharExchanger.formatNumber(getCap()) + EnumChatFormatting.RESET + " L", - StatCollector.translateToLocal("scanner.info.YOTTank.1") + " " + EnumChatFormatting.YELLOW + CharExchanger.formatNumber(getFluidName()) + EnumChatFormatting.RESET, - StatCollector.translateToLocal("scanner.info.YOTTank.2") + " " + EnumChatFormatting.BLUE + CharExchanger.formatNumber(getStored()) + EnumChatFormatting.RESET + " L", - }; - } - - @Override - public String[] getDescription() { - final GT_Multiblock_Tooltip_Builder tt = new GT_Multiblock_Tooltip_Builder(); - tt.addMachineType("Fluid Tank") - .addInfo("Controller block for the YOTTank.") - .addInfo("The max output speed is decided by the amount of stored liquid and the output hatch's capacity.") - .addInfo("The max fluid cell tier is limited by the glass tier.") - .addInfo("HV glass for T1, EV glass for T2, IV glass for T3. . .") - .addInfo("The max height of the cell blocks is 15.") - .addInfo("The structure is too complex!") - .addInfo(BLUE_PRINT_INFO) - .addSeparator() - .beginVariableStructureBlock(5, 5, 1, 15, 5 ,5, false) - .addController("Front of the second layer") - .addInputHatch("Hint block with dot 1") - .addMaintenanceHatch("Hint block with dot 2") - .addOutputHatch("Hint block with dot 3") - .toolTipFinisher("Good Generator"); - if (!Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { - return tt.getInformation(); - } else { - return tt.getStructureInformation(); - } - } - - public BigInteger calStorage(int meta) { - StringBuilder cap = new StringBuilder(); - cap.append("1000000"); - for (int i = 0; i < meta; ++i) - cap.append("00"); - return new BigInteger(cap.toString()); - } - - @Override - public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return new YOTTankGUIClient(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "EMDisplay.png"); - } - - @Override - public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return new YOTTankGUIContainer(aPlayerInventory, aBaseMetaTileEntity); - } - - @Override - public boolean onRunningTick(ItemStack aStack) { - super.onRunningTick(aStack); - if (this.getBaseMetaTileEntity().isServerSide()) { - List tStore = getStoredFluids(); - for (FluidStack tFluid : tStore) { - if (tFluid == null) continue; - if (mFluidName == null || mFluidName.equals("") || tFluid.getFluid().getName().equals(mFluidName)) { - if (mFluidName == null || mFluidName.equals("")) { - mFluidName = tFluid.getFluid().getName(); - } - if (mStorageCurrent.add(new BigInteger(tFluid.amount + "")).compareTo(mStorage) < 0) { - mStorageCurrent = mStorageCurrent.add(new BigInteger(tFluid.amount + "")); - tFluid.amount = 0; - } else { - BigInteger delta = mStorage.subtract(mStorageCurrent); - mStorageCurrent = mStorageCurrent.add(delta); - tFluid.amount -= delta.intValue(); - } - } - } - BigInteger outputAmount = mStorageCurrent.divide(new BigInteger("100", 10)); - if (outputAmount.compareTo(new BigInteger(Integer.MAX_VALUE + "", 10)) > 0) outputAmount = new BigInteger(Integer.MAX_VALUE + ""); - if (outputAmount.compareTo(BigInteger.ONE) <= 0) outputAmount = new BigInteger("1", 10); - - if (mStorageCurrent.compareTo(BigInteger.ZERO) <= 0) mFluidName = ""; - - if (mFluidName != null && !mFluidName.equals("")) { - if (mOutputHatches.size() > 0) { - FluidStack tHatchFluid = mOutputHatches.get(0).mFluid; - FluidStack tOutput = FluidRegistry.getFluidStack(mFluidName, outputAmount.intValue()); - if (tHatchFluid != null && tHatchFluid.isFluidEqual(tOutput)) { - int leftSpace = mOutputHatches.get(0).getCapacity() - tHatchFluid.amount; - if (leftSpace < tOutput.amount) { - if (reduceFluid(leftSpace)) tHatchFluid.amount += leftSpace; - } - else { - if (reduceFluid(tOutput.amount)) tHatchFluid.amount += tOutput.amount; - } - } - else if (tHatchFluid == null) { - int leftSpace = mOutputHatches.get(0).getCapacity(); - if (leftSpace < tOutput.amount) { - if (reduceFluid(leftSpace)) mOutputHatches.get(0).fill(FluidRegistry.getFluidStack(mFluidName, leftSpace), true); - } - else { - if (reduceFluid(tOutput.amount)) mOutputHatches.get(0).fill(tOutput, true); - } - } - } - } - } - return true; - } - - @Override - public void construct(ItemStack stackSize, boolean hintsOnly) { - structureBuild_EM(YOTTANK_BOTTOM, 2, 0, 0, hintsOnly, stackSize); - int height = stackSize.stackSize; - if (height > 15) height = 15; - structureBuild_EM(YOTTANK_TOP, 2, height + 2, 0, hintsOnly, stackSize); - while (height > 0) { - structureBuild_EM(YOTTANK_MID, 2, height, 0, hintsOnly, stackSize); - height --; - } - } - - @Override - public String[] getStructureDescription(ItemStack stackSize) { - return DescTextLocalization.addText("YOTTank.hint", 7); - } - - @Override - public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { - return new YottaFluidTank(this.mName); - } - - @Override - public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone){ - if (aSide == aFacing) { - if (aActive) return new ITexture[] { - Textures.BlockIcons.getCasingTextureForId(1537), - TextureFactory.of(textureFontOn), - TextureFactory.builder().addIcon(textureFontOn_Glow).glow().build() - }; - else return new ITexture[] { - Textures.BlockIcons.getCasingTextureForId(1537), - TextureFactory.of(textureFontOff), - TextureFactory.builder().addIcon(textureFontOff_Glow).glow().build() - }; - } - else return new ITexture[] {Textures.BlockIcons.getCasingTextureForId(1537)}; - } -} diff --git a/src/main/java/GoodGenerator/Client/ClientProxy.java b/src/main/java/GoodGenerator/Client/ClientProxy.java deleted file mode 100644 index 837f7fdcc6..0000000000 --- a/src/main/java/GoodGenerator/Client/ClientProxy.java +++ /dev/null @@ -1,21 +0,0 @@ -package GoodGenerator.Client; - -import GoodGenerator.Common.CommonProxy; -import cpw.mods.fml.common.event.FMLInitializationEvent; -import cpw.mods.fml.common.event.FMLPostInitializationEvent; -import cpw.mods.fml.common.event.FMLPreInitializationEvent; - -public class ClientProxy extends CommonProxy { - @Override - public void preInit(FMLPreInitializationEvent event){ - super.preInit(event); - } - @Override - public void init(FMLInitializationEvent event){ - super.init(event); - } - @Override - public void postInit(FMLPostInitializationEvent event){ - super.postInit(event); - } -} diff --git a/src/main/java/GoodGenerator/Client/GUI/NeutronActivatorGUIClient.java b/src/main/java/GoodGenerator/Client/GUI/NeutronActivatorGUIClient.java deleted file mode 100644 index 35ec8d88b5..0000000000 --- a/src/main/java/GoodGenerator/Client/GUI/NeutronActivatorGUIClient.java +++ /dev/null @@ -1,43 +0,0 @@ -package GoodGenerator.Client.GUI; - -import GoodGenerator.Common.Container.NeutronActivatorGUIContainer; -import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_GUIContainer_MultiMachineEM; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.StatCollector; - -@SideOnly(Side.CLIENT) -public class NeutronActivatorGUIClient extends GT_GUIContainer_MultiMachineEM { - - private final NeutronActivatorGUIContainer containerNeutronActivator; - - public NeutronActivatorGUIClient(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity, String aName, String aTextureFile) { - super(new NeutronActivatorGUIContainer(aInventoryPlayer, aTileEntity), aName, aTextureFile, true, true, true); - containerNeutronActivator = (NeutronActivatorGUIContainer) this.mContainer; - } - - @Override - protected void drawGuiContainerForegroundLayer(int par1, int par2) { - super.drawGuiContainerForegroundLayer(par1, par2); - if (this.mContainer.mDisplayErrorCode == 0) { - fontRendererObj.drawString(StatCollector.translateToLocal("gui.NeutronActivator.0"), 7, 40, 16448255); - fontRendererObj.drawString(processNumber(containerNeutronActivator.getKineticE()) + "eV", 7, 48, 16448255); - } - } - - protected String processNumber(int num) { - float num2; - num2 = ((float) num) / 1000F; - if (num2 <= 0) { - return String.format("%d", num); - } - if (num2 < 1000.0) { - return String.format("%.1fK", num2); - } - num2 /= 1000F; - return String.format("%.1fM", num2); - } - -} diff --git a/src/main/java/GoodGenerator/Client/GUI/NeutronSensorGUIClient.java b/src/main/java/GoodGenerator/Client/GUI/NeutronSensorGUIClient.java deleted file mode 100644 index 174a0b2a37..0000000000 --- a/src/main/java/GoodGenerator/Client/GUI/NeutronSensorGUIClient.java +++ /dev/null @@ -1,110 +0,0 @@ -package GoodGenerator.Client.GUI; - -import GoodGenerator.Main.GoodGenerator; -import GoodGenerator.Network.MessageSetNeutronSensorData; -import GoodGenerator.util.CharExchanger; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import gregtech.api.gui.GT_GUIContainerMetaTile_Machine; -import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import net.minecraft.client.gui.GuiTextField; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.StatCollector; - -@SideOnly(Side.CLIENT) -public class NeutronSensorGUIClient extends GT_GUIContainerMetaTile_Machine { - - protected final String mName; - - private GuiTextField TextBox; - private String context; - - public NeutronSensorGUIClient(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity, String aTexture, String text) { - super(aInventoryPlayer, aTileEntity, aTexture); - this.mName = "Neutron Sensor"; - this.mContainer.detectAndSendChanges(); - if (text == null) this.context = ""; - else this.context = text; - } - - public void initGui(){ - super.initGui(); - this.TextBox = new GuiTextField(this.fontRendererObj, 8, 48, 100, 18); - TextBox.setMaxStringLength(20); - TextBox.setText(context); - this.TextBox.setFocused(true); - } - - protected void drawGuiContainerForegroundLayer(int par1, int par2) { - this.fontRendererObj.drawString(this.mName, 8, 4, 4210752); - this.fontRendererObj.drawString(StatCollector.translateToLocal("gui.NeutronSensor.0"), 8, 16, 0x000000); - this.fontRendererObj.drawString(StatCollector.translateToLocal("gui.NeutronSensor.1"), 8, 28, 0x000000); - this.TextBox.drawTextBox(); - if (TextBox.getText() != null) { - if (isValidSuffix(TextBox.getText())) { - if (CharExchanger.isValidCompareExpress(rawProcessExp(TextBox.getText()))) - this.fontRendererObj.drawString(StatCollector.translateToLocal("gui.NeutronSensor.2"), 120, 53, 0x077d02); - else this.fontRendererObj.drawString(StatCollector.translateToLocal("gui.NeutronSensor.3"), 120, 53, 0xff0000); - } - else this.fontRendererObj.drawString(StatCollector.translateToLocal("gui.NeutronSensor.3"), 120, 53, 0xff0000); - } - this.mc.getTextureManager().bindTexture(new ResourceLocation(GoodGenerator.MOD_ID + ":textures/gui/NeutronSensorGUI.png")); - } - - protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3) { - super.drawGuiContainerBackgroundLayer(par1, par2, par3); - int x = (this.width - this.xSize) / 2; - int y = (this.height - this.ySize) / 2; - this.drawTexturedModalRect(x, y, 0, 0, this.xSize, this.ySize); - } - - protected void keyTyped(char par1, int par2) { - if (!this.TextBox.isFocused()) - super.keyTyped(par1, par2); - if (par2 == 1) this.mc.thePlayer.closeScreen(); - this.TextBox.textboxKeyTyped(par1, par2); - } - - public void updateScreen() { - super.updateScreen(); - this.TextBox.updateCursorCounter(); - } - - protected void mouseClicked(int x, int y, int btn) { - super.mouseClicked(x, y, btn); - this.TextBox.mouseClicked(x - this.getLeft(), y - this.getTop(), btn); - } - - @Override - public void onGuiClosed() { - if (CharExchanger.isValidCompareExpress(rawProcessExp(TextBox.getText()))) - GoodGenerator.CHANNEL.sendToServer(new MessageSetNeutronSensorData(mContainer.mTileEntity, TextBox.getText())); - super.onGuiClosed(); - } - - protected String rawProcessExp(String exp) { - StringBuilder ret = new StringBuilder(); - for (char c: exp.toCharArray()) { - if (exp.length() - ret.length() == 3) { - if (Character.isDigit(c)) ret.append(c); - break; - } - ret.append(c); - } - return ret.toString(); - } - - protected boolean isValidSuffix(String exp) { - int index; - index = exp.length() - 1; - if (index < 0) return false; - if (exp.charAt(index) != 'V' && exp.charAt(index) != 'v') return false; - index = exp.length() - 2; - if (index < 0) return false; - if (exp.charAt(index) != 'E' && exp.charAt(index) != 'e') return false; - index = exp.length() - 3; - if (index < 0) return false; - return exp.charAt(index) == 'M' || exp.charAt(index) == 'm' || exp.charAt(index) == 'K' || exp.charAt(index) == 'k' || Character.isDigit(exp.charAt(index)); - } -} diff --git a/src/main/java/GoodGenerator/Client/GUI/YOTTankGUIClient.java b/src/main/java/GoodGenerator/Client/GUI/YOTTankGUIClient.java deleted file mode 100644 index a185b1a801..0000000000 --- a/src/main/java/GoodGenerator/Client/GUI/YOTTankGUIClient.java +++ /dev/null @@ -1,28 +0,0 @@ -package GoodGenerator.Client.GUI; - -import GoodGenerator.Common.Container.YOTTankGUIContainer; -import GoodGenerator.util.CharExchanger; -import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_GUIContainer_MultiMachineEM; -import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.StatCollector; - -public class YOTTankGUIClient extends GT_GUIContainer_MultiMachineEM { - - private final YOTTankGUIContainer containerYOTTank; - - public YOTTankGUIClient(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity, String aName, String aTextureFile) { - super(new YOTTankGUIContainer(aInventoryPlayer, aTileEntity), aName, aTextureFile, true, true, true); - containerYOTTank = (YOTTankGUIContainer) this.mContainer; - } - - @Override - protected void drawGuiContainerForegroundLayer(int par1, int par2) { - super.drawGuiContainerForegroundLayer(par1, par2); - if (this.mContainer.mDisplayErrorCode == 0) { - fontRendererObj.drawString(StatCollector.translateToLocal("gui.YOTTank.0") + " " + CharExchanger.formatNumber(containerYOTTank.getCap()) + " L", 7, 40, 16448255); - fontRendererObj.drawString(StatCollector.translateToLocal("gui.YOTTank.1") + " " + CharExchanger.formatNumber(containerYOTTank.getFluidName()), 7, 48, 16448255); - fontRendererObj.drawString(StatCollector.translateToLocal("gui.YOTTank.2") + " " + CharExchanger.formatNumber(containerYOTTank.getStorage()) + " L", 7, 56, 16448255); - } - } -} diff --git a/src/main/java/GoodGenerator/Common/CommonProxy.java b/src/main/java/GoodGenerator/Common/CommonProxy.java deleted file mode 100644 index 28e9063294..0000000000 --- a/src/main/java/GoodGenerator/Common/CommonProxy.java +++ /dev/null @@ -1,11 +0,0 @@ -package GoodGenerator.Common; - -import cpw.mods.fml.common.event.FMLInitializationEvent; -import cpw.mods.fml.common.event.FMLPostInitializationEvent; -import cpw.mods.fml.common.event.FMLPreInitializationEvent; - -public class CommonProxy { - public void preInit(FMLPreInitializationEvent event){} - public void init(FMLInitializationEvent event){} - public void postInit(FMLPostInitializationEvent event){} -} diff --git a/src/main/java/GoodGenerator/Common/Container/NeutronActivatorGUIContainer.java b/src/main/java/GoodGenerator/Common/Container/NeutronActivatorGUIContainer.java deleted file mode 100644 index 27e82fb48d..0000000000 --- a/src/main/java/GoodGenerator/Common/Container/NeutronActivatorGUIContainer.java +++ /dev/null @@ -1,80 +0,0 @@ -package GoodGenerator.Common.Container; - -import GoodGenerator.Blocks.TEs.NeutronActivator; -import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_Container_MultiMachineEM; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.ICrafting; - -import java.nio.ByteBuffer; - -public class NeutronActivatorGUIContainer extends GT_Container_MultiMachineEM { - - private int KineticE; - - private ByteBuffer buffer; - - public NeutronActivatorGUIContainer(InventoryPlayer inventoryPlayer, IGregTechTileEntity aTileEntity) { - super(inventoryPlayer, aTileEntity, true, true, true); - } - - @Override - public void addCraftingToCrafters(ICrafting clientHandle) { - buffer.putInt(0, KineticE); - sendStateUpdate(clientHandle); - super.addCraftingToCrafters(clientHandle); - } - - @Override - public void detectAndSendChanges() { - super.detectAndSendChanges(); - if (buffer == null) { - buffer = ByteBuffer.allocate(Integer.BYTES); - } - if(mTileEntity.isServerSide()) { - NeutronActivator tile = (NeutronActivator) mTileEntity.getMetaTileEntity(); - if (tile == null) return; - int currentKineticE = tile.getCurrentNeutronKineticEnergy(); - boolean isUpdated = false; - if (currentKineticE != KineticE) { - KineticE = currentKineticE; - buffer.putInt(0, KineticE); - isUpdated = true; - } - for (Object clientHandle : this.crafters) { - if (isUpdated) { - sendStateUpdate((ICrafting) clientHandle); - } - } - } - } - - @Override - public boolean canInteractWith(EntityPlayer player) { - return true; - } - - private void sendStateUpdate(ICrafting clientHandle) { - final int bytes = Integer.BYTES; - for (int i = 0; i < bytes; i++) { - clientHandle.sendProgressBarUpdate(this, i + 21, buffer.get(i)); - } - } - - @SideOnly(Side.CLIENT) - public void updateProgressBar(int index, int value) { - super.updateProgressBar(index, value); - index = index - 21; - if(index >= 0 && index < buffer.capacity()) { - buffer.put(index, (byte) value); - } - } - - @SideOnly(Side.CLIENT) - public int getKineticE() { - return buffer.getInt(0); - } -} diff --git a/src/main/java/GoodGenerator/Common/Container/NeutronSensorGUIContainer.java b/src/main/java/GoodGenerator/Common/Container/NeutronSensorGUIContainer.java deleted file mode 100644 index 0c243b0a69..0000000000 --- a/src/main/java/GoodGenerator/Common/Container/NeutronSensorGUIContainer.java +++ /dev/null @@ -1,12 +0,0 @@ -package GoodGenerator.Common.Container; - -import gregtech.api.gui.GT_ContainerMetaTile_Machine; -import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import net.minecraft.entity.player.InventoryPlayer; - -public class NeutronSensorGUIContainer extends GT_ContainerMetaTile_Machine { - - public NeutronSensorGUIContainer(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) { - super(aInventoryPlayer, aTileEntity); - } -} diff --git a/src/main/java/GoodGenerator/Common/Container/YOTTankGUIContainer.java b/src/main/java/GoodGenerator/Common/Container/YOTTankGUIContainer.java deleted file mode 100644 index 9d0a980d83..0000000000 --- a/src/main/java/GoodGenerator/Common/Container/YOTTankGUIContainer.java +++ /dev/null @@ -1,133 +0,0 @@ -package GoodGenerator.Common.Container; - -import GoodGenerator.Blocks.TEs.YottaFluidTank; -import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_Container_MultiMachineEM; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.ICrafting; - -import java.nio.ByteBuffer; - -public class YOTTankGUIContainer extends GT_Container_MultiMachineEM { - - private String currentStore = ""; - private String store = ""; - private String fluidName = ""; - - private ByteBuffer buffer; - - public YOTTankGUIContainer(InventoryPlayer inventoryPlayer, IGregTechTileEntity aTileEntity) { - super(inventoryPlayer, aTileEntity, true, true, true); - } - - @Override - public void addCraftingToCrafters(ICrafting clientHandle) { - buffer.putInt(0, currentStore.length()); - buffer.putInt(Integer.BYTES, store.length()); - buffer.putInt(Integer.BYTES * 2, fluidName.length()); - for (int i = 0; i < currentStore.length(); ++i) { - buffer.putChar(Integer.BYTES * 3 + Character.BYTES * i, currentStore.charAt(i)); - } - for (int i = 0; i < store.length(); ++i) { - buffer.putChar(Integer.BYTES * 3 + Character.BYTES * (i + currentStore.length()), store.charAt(i)); - } - for (int i = 0; i < fluidName.length(); ++i) { - buffer.putChar(Integer.BYTES * 3 + Character.BYTES * (i + currentStore.length() + store.length()), fluidName.charAt(i)); - } - sendStateUpdate(clientHandle); - super.addCraftingToCrafters(clientHandle); - } - - @Override - public void detectAndSendChanges() { - super.detectAndSendChanges(); - if (buffer == null) { - buffer = ByteBuffer.allocate(8192); - } - if(mTileEntity.isServerSide()) { - YottaFluidTank tile = (YottaFluidTank) mTileEntity.getMetaTileEntity(); - if (tile == null) return; - String newStored = tile.getStored(); - String newCap = tile.getCap(); - String newFluid = tile.getFluidName(); - boolean isUpdated = false; - if (!newStored.equals(currentStore) || !newCap.equals(store) || !newFluid.equals(fluidName)) { - currentStore = newStored; - store = newCap; - fluidName = newFluid; - buffer.putInt(0, currentStore.length()); - buffer.putInt(Integer.BYTES, store.length()); - buffer.putInt(Integer.BYTES * 2, fluidName.length()); - for (int i = 0; i < currentStore.length(); ++i) { - buffer.putChar(Integer.BYTES * 3 + Character.BYTES * i, currentStore.charAt(i)); - } - for (int i = 0; i < store.length(); ++i) { - buffer.putChar(Integer.BYTES * 3 + Character.BYTES * (i + currentStore.length()), store.charAt(i)); - } - for (int i = 0; i < fluidName.length(); ++i) { - buffer.putChar(Integer.BYTES * 3 + Character.BYTES * (i + currentStore.length() + store.length()), fluidName.charAt(i)); - } - isUpdated = true; - } - for (Object clientHandle : this.crafters) { - if (isUpdated) { - sendStateUpdate((ICrafting) clientHandle); - } - } - } - } - - @Override - public boolean canInteractWith(EntityPlayer player) { - return true; - } - - private void sendStateUpdate(ICrafting clientHandle) { - final int bytes = Integer.BYTES * 3 + Character.BYTES * (currentStore.length() + store.length() + fluidName.length()); - for (int i = 0; i < bytes; i++) { - clientHandle.sendProgressBarUpdate(this, i + 21, buffer.get(i)); - } - } - - @SideOnly(Side.CLIENT) - public void updateProgressBar(int index, int value) { - super.updateProgressBar(index, value); - index = index - 21; - if(index >= 0 && index < buffer.capacity()) { - buffer.put(index, (byte) value); - } - } - - @SideOnly(Side.CLIENT) - public String getStorage() { - StringBuilder sb = new StringBuilder(); - int startP = Integer.BYTES * 3; - for (int i = 0; i < buffer.getInt(0); ++i) { - sb.append(buffer.getChar(startP + Character.BYTES * i)); - } - return sb.toString(); - } - - @SideOnly(Side.CLIENT) - public String getCap() { - StringBuilder sb = new StringBuilder(); - int startP = Integer.BYTES * 3 + Character.BYTES * buffer.getInt(0); - for (int i = 0; i < buffer.getInt(Integer.BYTES); ++i) { - sb.append(buffer.getChar(startP + Character.BYTES * i)); - } - return sb.toString(); - } - - @SideOnly(Side.CLIENT) - public String getFluidName() { - StringBuilder sb = new StringBuilder(); - int startP = Integer.BYTES * 3 + Character.BYTES * (buffer.getInt(0) + buffer.getInt(Integer.BYTES)); - for (int i = 0; i < buffer.getInt(Integer.BYTES * 2); ++i) { - sb.append(buffer.getChar(startP + Character.BYTES * i)); - } - return sb.toString(); - } -} diff --git a/src/main/java/GoodGenerator/CrossMod/NEI/IMCForNEI.java b/src/main/java/GoodGenerator/CrossMod/NEI/IMCForNEI.java deleted file mode 100644 index e4514df282..0000000000 --- a/src/main/java/GoodGenerator/CrossMod/NEI/IMCForNEI.java +++ /dev/null @@ -1,24 +0,0 @@ -package GoodGenerator.CrossMod.NEI; - -import cpw.mods.fml.common.event.FMLInterModComms; -import net.minecraft.nbt.NBTTagCompound; - -public class IMCForNEI { - public static void IMCSender() { - NBTTagCompound info = new NBTTagCompound(); - setNBTInfo(info, "GoodGenerator.CrossMod.NEI.NeutronActivatorHandler", "gregtech:gt.blockmachines:32013"); - FMLInterModComms.sendMessage("NotEnoughItems", "registerHandlerInfo", info); - } - - private static void setNBTInfo(NBTTagCompound aNBT, String aName, String aBlock) { - aNBT.setString("handler", aName); - aNBT.setString("modName", "Good Generator"); - aNBT.setString("modId", "GoodGenerator"); - aNBT.setBoolean("modRequired", true); - aNBT.setString("itemName", aBlock); - aNBT.setInteger("handlerHeight", 135); - aNBT.setInteger("handlerWidth", 166); - aNBT.setInteger("maxRecipesPerPage", 1); - aNBT.setInteger("yShift", 6); - } -} diff --git a/src/main/java/GoodGenerator/CrossMod/NEI/NEI_Config.java b/src/main/java/GoodGenerator/CrossMod/NEI/NEI_Config.java deleted file mode 100644 index aebfe6102c..0000000000 --- a/src/main/java/GoodGenerator/CrossMod/NEI/NEI_Config.java +++ /dev/null @@ -1,38 +0,0 @@ -package GoodGenerator.CrossMod.NEI; - -import GoodGenerator.Main.GoodGenerator; -import GoodGenerator.util.MyRecipeAdder; -import codechicken.nei.api.API; -import codechicken.nei.api.IConfigureNEI; -import net.minecraft.block.Block; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; - -public class NEI_Config implements IConfigureNEI { - public static boolean isAdded = true; - - @Override - public void loadConfig() { - NEI_Config.isAdded = false; - new NeutronActivatorHandler(MyRecipeAdder.instance.NA); - NEI_Config.isAdded = true; - } - - public static void hide(Block aBlock) { - API.hideItem(new ItemStack(aBlock, 1)); - } - - public static void hide(Item aItem) { - API.hideItem(new ItemStack(aItem, 1)); - } - - @Override - public String getName() { - return "Good Generator NEI Plugin"; - } - - @Override - public String getVersion() { - return GoodGenerator.VERSION; - } -} diff --git a/src/main/java/GoodGenerator/CrossMod/NEI/NeutronActivatorHandler.java b/src/main/java/GoodGenerator/CrossMod/NEI/NeutronActivatorHandler.java deleted file mode 100644 index 1a8f9db723..0000000000 --- a/src/main/java/GoodGenerator/CrossMod/NEI/NeutronActivatorHandler.java +++ /dev/null @@ -1,43 +0,0 @@ -package GoodGenerator.CrossMod.NEI; - -import codechicken.nei.recipe.GuiCraftingRecipe; -import codechicken.nei.recipe.GuiUsageRecipe; -import codechicken.nei.recipe.TemplateRecipeHandler; -import cpw.mods.fml.common.event.FMLInterModComms; -import gregtech.api.enums.GT_Values; -import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Utility; -import gregtech.nei.GT_NEI_DefaultHandler; -import net.minecraft.util.StatCollector; - -import java.awt.*; - -public class NeutronActivatorHandler extends GT_NEI_DefaultHandler { - - public NeutronActivatorHandler(GT_Recipe.GT_Recipe_Map aRecipeMap) { - super(aRecipeMap); - this.transferRects.add(new TemplateRecipeHandler.RecipeTransferRect(new Rectangle(65, 13, 36, 18), this.getOverlayIdentifier())); - if (!NEI_Config.isAdded) { - FMLInterModComms.sendRuntimeMessage(GT_Values.GT, "NEIPlugins", "register-crafting-handler", "gregtech@" + this.getRecipeName() + "@" + this.getOverlayIdentifier()); - GuiCraftingRecipe.craftinghandlers.add(this); - GuiUsageRecipe.usagehandlers.add(this); - } - } - - @Override - public TemplateRecipeHandler newInstance() { - return new NeutronActivatorHandler(this.mRecipeMap); - } - - @Override - public void drawExtras(int aRecipeIndex) { - int tDuration = ((CachedDefaultRecipe) this.arecipes.get(aRecipeIndex)).mRecipe.mDuration; - int minNKE = ((CachedDefaultRecipe) this.arecipes.get(aRecipeIndex)).mRecipe.mSpecialValue % 10000; - int maxNKE = ((CachedDefaultRecipe) this.arecipes.get(aRecipeIndex)).mRecipe.mSpecialValue / 10000; - drawText(10, 73, this.trans("158", "Time: ") + GT_Utility.formatNumbers((float)tDuration / 20.0) + this.trans("161", " secs"), -16777216); - drawText(10, 83, StatCollector.translateToLocal("value.neutron_activator.0"), -16777216); - drawText(10, 93, GT_Utility.formatNumbers(minNKE) + StatCollector.translateToLocal("value.neutron_activator.2"), -16777216); - drawText(10, 103, StatCollector.translateToLocal("value.neutron_activator.1"), -16777216); - drawText(10, 113, GT_Utility.formatNumbers(maxNKE) + StatCollector.translateToLocal("value.neutron_activator.2"), -16777216); - } -} diff --git a/src/main/java/GoodGenerator/CrossMod/Thaumcraft/LargeEssentiaEnergyData.java b/src/main/java/GoodGenerator/CrossMod/Thaumcraft/LargeEssentiaEnergyData.java deleted file mode 100644 index 60ef46e8ba..0000000000 --- a/src/main/java/GoodGenerator/CrossMod/Thaumcraft/LargeEssentiaEnergyData.java +++ /dev/null @@ -1,124 +0,0 @@ -package GoodGenerator.CrossMod.Thaumcraft; - -import com.google.gson.JsonArray; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.JsonParser; -import thaumcraft.api.aspects.Aspect; - -import java.io.*; -import java.net.URL; -import java.nio.charset.StandardCharsets; -import java.util.HashMap; - -public class LargeEssentiaEnergyData { - - public static final HashMap ASPECT_FUEL_DATA = new HashMap<>(); - - public static String readJsonFile() { - try { - URL url = Thread.currentThread().getContextClassLoader().getResource("assets/goodgenerator/data/essentia.json"); - assert url != null; - BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream(), StandardCharsets.UTF_8)); - String s; - StringBuilder sb = new StringBuilder(); - while ((s = in.readLine()) != null) { - sb.append(s); - } - in.close(); - return sb.toString(); - } catch (IOException e) { - e.printStackTrace(); - return null; - } - } - - public static void processEssentiaData() { - String data = readJsonFile(); - if (data == null) { - return; - } - JsonParser jsonParser = new JsonParser(); - JsonObject jsonObject = (JsonObject)jsonParser.parse(data); - JsonArray jsonArray = jsonObject.get("Essentia").getAsJsonArray(); - for (JsonElement elm : jsonArray) { - JsonObject essData = elm.getAsJsonObject(); - String aspectName = essData.get("name").getAsString(); - Aspect aspect = Aspect.getAspect(aspectName.toLowerCase()); - if (aspect != null) { - int fuel = essData.get("fuelValue").getAsInt(); - String cate = essData.get("category").getAsString(); - float ceo = essData.get("consumeCeo").getAsFloat(); - ASPECT_FUEL_DATA.put(aspect, new FuelData(fuel, cate, ceo)); - } - } - } - - public static int getAspectTypeIndex(Aspect aspect) { - if (ASPECT_FUEL_DATA.containsKey(aspect)) { - return ASPECT_FUEL_DATA.get(aspect).getCategoryIndex(); - } - else return -1; - } - - public static String getAspectType(Aspect aspect) { - if (ASPECT_FUEL_DATA.containsKey(aspect)) { - return ASPECT_FUEL_DATA.get(aspect).getCategory(); - } - else return null; - } - - public static int getAspectFuelValue(Aspect aspect) { - if (ASPECT_FUEL_DATA.containsKey(aspect)) { - return ASPECT_FUEL_DATA.get(aspect).getFuelValue(); - } - else return 0; - } - - public static float getAspectCeo(Aspect aspect) { - if (ASPECT_FUEL_DATA.containsKey(aspect)) { - return ASPECT_FUEL_DATA.get(aspect).getConsumeSpeed(); - } - else return 0; - } -} - -class FuelData { - private final int fuelValue; - private final String category; - private final float consumeSpeed; - - FuelData(int basicValue, String cate, float ceo) { - fuelValue = basicValue; - category = cate; - consumeSpeed = ceo; - } - - public int getFuelValue() { - return fuelValue; - } - - public float getConsumeSpeed() { - return consumeSpeed; - } - - public String getCategory() { - return category; - } - - public int getCategoryIndex() { - switch (category) { - case "NORMAL": return 0; - case "AIR": return 1; - case "THERMAL": return 2; - case "UNSTABLE": return 3; - case "VICTUS": return 4; - case "TAINTED": return 5; - case "MECHANICS": return 6; - case "SPRITE": return 7; - case "RADIATION": return 8; - case "ELECTRIC": return 9; - default: return -1; - } - } -} \ No newline at end of file diff --git a/src/main/java/GoodGenerator/CrossMod/Thaumcraft/Research.java b/src/main/java/GoodGenerator/CrossMod/Thaumcraft/Research.java deleted file mode 100644 index 08aa1e4409..0000000000 --- a/src/main/java/GoodGenerator/CrossMod/Thaumcraft/Research.java +++ /dev/null @@ -1,621 +0,0 @@ -package GoodGenerator.CrossMod.Thaumcraft; - -import GoodGenerator.Items.MyMaterial; -import GoodGenerator.util.DescTextLocalization; -import GoodGenerator.util.ItemRefer; -import com.github.bartimaeusnek.bartworks.common.loaders.ItemRegistry; -import com.github.bartimaeusnek.bartworks.system.material.WerkstoffLoader; -import cpw.mods.fml.common.Loader; -import gregtech.api.GregTech_API; -import gregtech.api.enums.ItemList; -import gregtech.api.enums.Materials; -import gregtech.api.enums.OrePrefixes; -import gregtech.api.enums.TC_Aspects; -import gregtech.api.util.GT_ModHandler; -import gregtech.api.util.GT_OreDictUnificator; -import ic2.core.Ic2Items; -import net.minecraft.block.Block; -import net.minecraft.item.Item; -import net.minecraft.item.ItemCoal; -import net.minecraft.item.ItemStack; -import thaumcraft.api.aspects.Aspect; -import thaumcraft.api.aspects.AspectList; -import thaumcraft.common.config.ConfigBlocks; -import thaumcraft.common.config.ConfigItems; - -import java.util.Arrays; -import java.util.Collections; - -import static thaumcraft.api.ThaumcraftApi.addArcaneCraftingRecipe; - -public class Research{ - - public static void addResearch() { - DescTextLocalization.addText("research.ESSENTIA_GENERATOR.page",4); - DescTextLocalization.addText("research.ESSENTIA_CELL.page",1); - DescTextLocalization.addText("research.ESSENTIA_UPGRADE_BLANK.page",1); - DescTextLocalization.addText("research.ESSENTIA_UPGRADE_AIR.page",2); - DescTextLocalization.addText("research.ESSENTIA_UPGRADE_THERMAL.page",3); - DescTextLocalization.addText("research.ESSENTIA_UPGRADE_UNSTABLE.page",3); - DescTextLocalization.addText("research.ESSENTIA_UPGRADE_VICTUS.page",3); - DescTextLocalization.addText("research.ESSENTIA_UPGRADE_TAINTED.page",4); - DescTextLocalization.addText("research.ESSENTIA_UPGRADE_MECHANICS.page",3); - DescTextLocalization.addText("research.ESSENTIA_UPGRADE_SPRITE.page",3); - DescTextLocalization.addText("research.ESSENTIA_UPGRADE_RADIATION.page",3); - DescTextLocalization.addText("research.ESSENTIA_UPGRADE_ELECTRIC.page",2); - GregTech_API.sThaumcraftCompat.addResearch( - "ESSENTIA_GENERATOR", - "Combustion Engine in Magic World", - "Will it cause Flux pollution?", - new String[]{"INFUSION"}, - "ARTIFICE", - ItemRefer.Large_Essentia_Generator.get(1), - 3, 0, -9, 3, - Arrays.asList( - new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 10L), - new TC_Aspects.TC_AspectStack(TC_Aspects.PRAECANTATIO, 10L), - new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 10L), - new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 10L), - new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 10L) - ), - null, - new Object[]{ - "research.ESSENTIA_GENERATOR.page.0", - GregTech_API.sThaumcraftCompat.addInfusionRecipe( - "ESSENTIA_GENERATOR", - ItemList.Hull_HV.get(1), - new ItemStack[]{ - GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Advanced, 1L), - new ItemStack(ConfigBlocks.blockJar, 1), - GT_OreDictUnificator.get(OrePrefixes.gearGt, Materials.Thaumium, 1L), - GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Emerald, 1L), - new ItemStack(ConfigBlocks.blockWoodenDevice, 1), - GT_OreDictUnificator.get(OrePrefixes.spring, Materials.Manyullyn, 1L), - Ic2Items.teslaCoil, - ItemList.Sensor_MV.get(1) - }, - ItemRefer.Large_Essentia_Generator.get(1), - 6, - Arrays.asList( - new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 64L), - new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 64L), - new TC_Aspects.TC_AspectStack(TC_Aspects.PRAECANTATIO, 32), - new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 32) - ) - ), - GregTech_API.sThaumcraftCompat.addInfusionRecipe( - "ESSENTIA_GENERATOR", - ItemList.Hatch_Input_HV.get(1), - new ItemStack[]{ - new ItemStack(ConfigBlocks.blockJar, 1), - ItemRefer.Magic_Casing.get(1), - new ItemStack(ConfigBlocks.blockTube, 1), - ItemList.Electric_Pump_MV.get(1L) - }, - ItemRefer.Essentia_Hatch.get(1), - 6, - Arrays.asList( - new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 128), - new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 64), - new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 32), - new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITIO, 32) - ) - ), - GregTech_API.sThaumcraftCompat.addInfusionRecipe( - "ESSENTIA_GENERATOR", - GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Thaumium, 1), - new ItemStack[]{ - GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.StainlessSteel, 1), - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.ElectricalSteel, 1), - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.ElectricalSteel, 1), - ItemList.Electric_Pump_HV.get(1L), - new ItemStack(ConfigBlocks.blockTube, 1, 4), - new ItemStack(ConfigBlocks.blockCosmeticOpaque, 1, 2), - }, - ItemRefer.Essentia_Cell_T1.get(1), - 4, - Arrays.asList( - new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 32), - new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 32), - new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 16) - ) - ), - addArcaneCraftingRecipe( - "ESSENTIA_GENERATOR", - ItemRefer.Magic_Casing.get(1), - new AspectList().add(Aspect.AIR, 50).add(Aspect.FIRE, 50).add(Aspect.ORDER, 50), - "SCS","GAG","SCS", - 'S', new ItemStack(ConfigItems.itemResource,1,14), - 'C', GT_OreDictUnificator.get(OrePrefixes.itemCasing, Materials.Thaumium, 1), - 'G', Ic2Items.reinforcedGlass, - 'A', Ic2Items.advancedMachine - ), - "research.ESSENTIA_GENERATOR.page.1", - "research.ESSENTIA_GENERATOR.page.2", - "research.ESSENTIA_GENERATOR.page.3" - } - ); - GregTech_API.sThaumcraftCompat.addResearch( - "ESSENTIA_CELL", - "Better Cells", - "And higher efficiency.", - new String[]{"ESSENTIA_GENERATOR"}, - "ARTIFICE", - ItemRefer.Essentia_Cell_T3.get(1), - 2, 0, -10, 3, - Arrays.asList( - new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 10L), - new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 10L), - new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 10L), - new TC_Aspects.TC_AspectStack(TC_Aspects.PRAECANTATIO, 10L), - new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 10L) - ), - null, - new Object[]{ - "research.ESSENTIA_CELL.page.0", - GregTech_API.sThaumcraftCompat.addInfusionRecipe( - "ESSENTIA_CELL", - ItemRefer.Essentia_Cell_T1.get(1), - new ItemStack[]{ - GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.TungstenSteel, 1), - ItemList.FluidRegulator_EV.get(1L), - ItemList.QuantumStar.get(1L), - new ItemStack(ConfigBlocks.blockJar, 1, 0), - GT_OreDictUnificator.get(OrePrefixes.spring, Materials.Platinum, 1), - GT_OreDictUnificator.get(OrePrefixes.gearGt, Materials.Desh, 1) - }, - ItemRefer.Essentia_Cell_T2.get(1), - 6, - Arrays.asList( - new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 64), - new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 64), - new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 32) - ) - ), - GregTech_API.sThaumcraftCompat.addInfusionRecipe( - "ESSENTIA_CELL", - ItemRefer.Essentia_Cell_T2.get(1), - new ItemStack[]{ - GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.NiobiumTitanium, 1), - ItemList.Field_Generator_IV.get(1L), - ItemList.Reactor_Coolant_Sp_3.get(1L), - new ItemStack(ConfigItems.itemResource,1,14), - Ic2Items.fluidregulator, - new ItemStack(ConfigBlocks.blockCrystal, 1, 6), - GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Plutonium241, 1), - GT_OreDictUnificator.get(OrePrefixes.gearGt, Materials.Void, 1), - GT_OreDictUnificator.get(OrePrefixes.lens, Materials.EnderEye, 1), - new ItemStack(ConfigBlocks.blockMetalDevice, 1, 3) - }, - ItemRefer.Essentia_Cell_T3.get(1), - 8, - Arrays.asList( - new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 128), - new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 128), - new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 64) - ) - ), - GregTech_API.sThaumcraftCompat.addInfusionRecipe( - "ESSENTIA_CELL", - ItemRefer.Essentia_Cell_T3.get(1), - new ItemStack[]{ - GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.Europium, 1), - ItemList.Emitter_LuV.get(1L), - ItemList.FluidRegulator_LuV.get(1L), - new ItemStack(ConfigItems.itemEldritchObject,1,3), - new ItemStack(ItemRegistry.bw_realglas, 1, 3), - GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Indium, 1), - GT_OreDictUnificator.get(OrePrefixes.gearGt, Materials.Ichorium, 1), - GT_OreDictUnificator.get(OrePrefixes.spring, Materials.Quantium, 1), - GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Sunnarium, 1), - MyMaterial.orundum.get(OrePrefixes.gemExquisite, 1) - }, - ItemRefer.Essentia_Cell_T4.get(1), - 10, - Arrays.asList( - new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 256), - new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 256), - new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 128) - ) - ) - } - ); - ItemStack broad = new ItemStack(ConfigBlocks.blockCosmeticSolid, 1, 6); - if (Loader.isModLoaded("dreamcraft")) broad = GT_ModHandler.getModItem("dreamcraft", "item.ArcaneSlate", 1); - GregTech_API.sThaumcraftCompat.addResearch( - "ESSENTIA_UPGRADE_BLANK", - "Upgrade your generator", - "Let's try some more dangerous essentia.", - new String[]{"ESSENTIA_GENERATOR"}, - "ARTIFICE", - ItemRefer.Essentia_Upgrade_Empty.get(1), - 2, 0, -9, 4, - Arrays.asList( - new TC_Aspects.TC_AspectStack(TC_Aspects.AURAM, 10L), - new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 10L), - new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 10L), - new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 10L) - ), - null, - new Object[] { - "research.ESSENTIA_UPGRADE_BLANK.page.0", - addArcaneCraftingRecipe( - "ESSENTIA_UPGRADE_BLANK", - ItemRefer.Essentia_Upgrade_Empty.get(1), - new AspectList().add(Aspect.AIR, 80).add(Aspect.ENTROPY, 50).add(Aspect.ORDER, 50).add(Aspect.WATER, 80), - "AMB","CZD","EIF", - 'A', GT_OreDictUnificator.get(OrePrefixes.screw, Materials.InfusedAir, 1), - 'B', GT_OreDictUnificator.get(OrePrefixes.screw, Materials.InfusedEarth, 1), - 'C', GT_OreDictUnificator.get(OrePrefixes.screw, Materials.InfusedFire, 1), - 'D', GT_OreDictUnificator.get(OrePrefixes.screw, Materials.InfusedWater, 1), - 'E', GT_OreDictUnificator.get(OrePrefixes.screw, Materials.InfusedOrder, 1), - 'F', GT_OreDictUnificator.get(OrePrefixes.screw, Materials.InfusedEntropy, 1), - 'M', new ItemStack(ConfigItems.itemResource, 1, 10), - 'Z', broad, - 'I', GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.PulsatingIron, 1) - ), - } - ); - GregTech_API.sThaumcraftCompat.addResearch( - "ESSENTIA_UPGRADE_AIR", - "Essentia: AIR", - "I can feel it on the wind.", - new String[]{"ESSENTIA_UPGRADE_BLANK"}, - "ARTIFICE", - ItemRefer.Essentia_Upgrade_Air.get(1), - 1, 0, -9, 5, - Arrays.asList( - new TC_Aspects.TC_AspectStack(TC_Aspects.AER, 10L), - new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 10L), - new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 10L), - new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 10L) - ), - null, - new Object[] { - "research.ESSENTIA_UPGRADE_AIR.page.0", - GregTech_API.sThaumcraftCompat.addInfusionRecipe( - "ESSENTIA_UPGRADE_AIR", - ItemRefer.Essentia_Upgrade_Empty.get(1), - new ItemStack[] { - GT_OreDictUnificator.get(OrePrefixes.cell, Materials.LiquidAir, 1), - GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Hydrogen, 1), - GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Helium, 1), - GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Argon, 1), - WerkstoffLoader.Neon.get(OrePrefixes.cell, 1), - WerkstoffLoader.Krypton.get(OrePrefixes.cell, 1), - }, - ItemRefer.Essentia_Upgrade_Air.get(1), - 5, - Arrays.asList( - new TC_Aspects.TC_AspectStack(TC_Aspects.AER, 128), - new TC_Aspects.TC_AspectStack(TC_Aspects.VOLATUS, 128), - new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 128), - new TC_Aspects.TC_AspectStack(TC_Aspects.AURAM, 128) - ) - ), - "research.ESSENTIA_UPGRADE_AIR.page.1" - } - ); - GregTech_API.sThaumcraftCompat.addResearch( - "ESSENTIA_UPGRADE_THERMAL", - "Essentia: THERMAL", - "Melting down.", - new String[]{"ESSENTIA_UPGRADE_BLANK"}, - "ARTIFICE", - ItemRefer.Essentia_Upgrade_Thermal.get(1), - 1, 0, -10, 5, - Arrays.asList( - new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 10L), - new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 10L), - new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 10L), - new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 10L) - ), - null, - new Object[] { - "research.ESSENTIA_UPGRADE_THERMAL.page.0", - GregTech_API.sThaumcraftCompat.addInfusionRecipe( - "ESSENTIA_UPGRADE_THERMAL", - ItemRefer.Essentia_Upgrade_Empty.get(1), - new ItemStack[] { - GT_OreDictUnificator.get(OrePrefixes.lens, Materials.Firestone, 1), - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Netherrack, 1), - Ic2Items.reactorPlatingHeat, - ItemList.Casing_Coil_Nichrome.get(1), - new ItemStack(ConfigItems.itemResource, 1, 1), - new ItemStack(ConfigItems.itemResource, 1, 0), - }, - ItemRefer.Essentia_Upgrade_Thermal.get(1), - 5, - Collections.singletonList( - new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1024) - ) - ), - "research.ESSENTIA_UPGRADE_THERMAL.page.1", - "research.ESSENTIA_UPGRADE_THERMAL.page.2" - } - ); - GregTech_API.sThaumcraftCompat.addResearch( - "ESSENTIA_UPGRADE_UNSTABLE", - "Essentia: UNSTABLE", - "Heart of chaos.", - new String[]{"ESSENTIA_UPGRADE_BLANK"}, - "ARTIFICE", - ItemRefer.Essentia_Upgrade_Unstable.get(1), - 1, 0, -11, 5, - Arrays.asList( - new TC_Aspects.TC_AspectStack(TC_Aspects.PERDITIO, 10L), - new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 10L), - new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 10L), - new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 10L) - ), - null, - new Object[] { - "research.ESSENTIA_UPGRADE_UNSTABLE.page.0", - GregTech_API.sThaumcraftCompat.addInfusionRecipe( - "ESSENTIA_UPGRADE_UNSTABLE", - ItemRefer.Essentia_Upgrade_Empty.get(1), - new ItemStack[] { - GT_OreDictUnificator.get(OrePrefixes.cell, Materials.GasolinePremium, 1), - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Unstable, 1), - GT_OreDictUnificator.get(OrePrefixes.gearGt, Materials.Void, 1), - GT_OreDictUnificator.get(OrePrefixes.gem, Materials.InfusedEntropy, 1), - Ic2Items.industrialTnt, - new ItemStack(ItemRegistry.DESTRUCTOPACK) - }, - ItemRefer.Essentia_Upgrade_Unstable.get(1), - 6, - Arrays.asList( - new TC_Aspects.TC_AspectStack(TC_Aspects.PERDITIO, 128), - new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 128), - new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 128), - new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 128) - ) - ), - "research.ESSENTIA_UPGRADE_UNSTABLE.page.1", - "research.ESSENTIA_UPGRADE_UNSTABLE.page.2" - } - ); - ItemStack meatDust = GT_OreDictUnificator.get(OrePrefixes.dust, Materials.MeatRaw, 1); - if (Loader.isModLoaded("dreamcraft")) meatDust = GT_ModHandler.getModItem("dreamcraft", "GTNHBioItems", 1, 2); - GregTech_API.sThaumcraftCompat.addResearch( - "ESSENTIA_UPGRADE_VICTUS", - "Essentia: VICTUS", - "Will it bleed?", - new String[]{"ESSENTIA_UPGRADE_BLANK"}, - "ARTIFICE", - ItemRefer.Essentia_Upgrade_Victus.get(1), - 1, 0, -12, 5, - Arrays.asList( - new TC_Aspects.TC_AspectStack(TC_Aspects.VICTUS, 10L), - new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 10L), - new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 10L), - new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 10L) - ), - null, - new Object[] { - "research.ESSENTIA_UPGRADE_VICTUS.page.0", - GregTech_API.sThaumcraftCompat.addInfusionRecipe( - "ESSENTIA_UPGRADE_VICTUS", - ItemRefer.Essentia_Upgrade_Empty.get(1), - new ItemStack[] { - meatDust, - ItemList.Food_Dough_Sugar.get(1), - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Calcium, 1), - new ItemStack(Item.getItemById(367), 1), - new ItemStack(ConfigItems.itemResource, 1, 4), - new ItemStack(ConfigBlocks.blockMetalDevice, 1, 8), - }, - ItemRefer.Essentia_Upgrade_Victus.get(1), - 5, - Arrays.asList( - new TC_Aspects.TC_AspectStack(TC_Aspects.VICTUS, 128), - new TC_Aspects.TC_AspectStack(TC_Aspects.SPIRITUS, 128), - new TC_Aspects.TC_AspectStack(TC_Aspects.SANO, 128), - new TC_Aspects.TC_AspectStack(TC_Aspects.CORPUS, 128), - new TC_Aspects.TC_AspectStack(TC_Aspects.HUMANUS, 128) - ) - ), - "research.ESSENTIA_UPGRADE_VICTUS.page.1", - "research.ESSENTIA_UPGRADE_VICTUS.page.2" - } - ); - GregTech_API.sThaumcraftCompat.addResearch( - "ESSENTIA_UPGRADE_TAINTED", - "Essentia: TAINTED", - "Dirty Deeds Done Dirt Cheap", - new String[]{"ESSENTIA_UPGRADE_BLANK"}, - "ARTIFICE", - ItemRefer.Essentia_Upgrade_Tainted.get(1), - 1, 0, -13, 5, - Arrays.asList( - new TC_Aspects.TC_AspectStack(TC_Aspects.MORTUUS, 10L), - new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 10L), - new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 10L), - new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 10L) - ), - null, - new Object[] { - "research.ESSENTIA_UPGRADE_TAINTED.page.0", - "research.ESSENTIA_UPGRADE_TAINTED.page.1", - GregTech_API.sThaumcraftCompat.addInfusionRecipe( - "ESSENTIA_UPGRADE_TAINTED", - ItemRefer.Essentia_Upgrade_Empty.get(1), - new ItemStack[] { - new ItemStack(ConfigBlocks.blockTaintFibres, 1, 0), - new ItemStack(ConfigBlocks.blockTaintFibres, 1, 2), - new ItemStack(ConfigItems.itemResource, 1, 11), - GT_OreDictUnificator.get(OrePrefixes.spring, Materials.NaquadahEnriched, 1), - GT_OreDictUnificator.get(OrePrefixes.gearGt, Materials.EndSteel, 1), - new ItemStack(Block.getBlockById(138), 1), - }, - ItemRefer.Essentia_Upgrade_Tainted.get(1), - 7, - Arrays.asList( - new TC_Aspects.TC_AspectStack(TC_Aspects.MORTUUS, 128), - new TC_Aspects.TC_AspectStack(TC_Aspects.ALIENIS, 128), - new TC_Aspects.TC_AspectStack(TC_Aspects.EXANIMIS, 128), - new TC_Aspects.TC_AspectStack(TC_Aspects.VITIUM, 128) - ) - ), - "research.ESSENTIA_UPGRADE_TAINTED.page.2", - "research.ESSENTIA_UPGRADE_TAINTED.page.3" - } - ); - GregTech_API.sThaumcraftCompat.addResearch( - "ESSENTIA_UPGRADE_MECHANICS", - "Essentia: MECHANICS", - "Driven by Ether.", - new String[]{"ESSENTIA_UPGRADE_BLANK"}, - "ARTIFICE", - ItemRefer.Essentia_Upgrade_Mechanics.get(1), - 1, 0, -14, 5, - Arrays.asList( - new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 10L), - new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 10L), - new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 10L), - new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 10L) - ), - null, - new Object[] { - "research.ESSENTIA_UPGRADE_MECHANICS.page.0", - GregTech_API.sThaumcraftCompat.addInfusionRecipe( - "ESSENTIA_UPGRADE_MECHANICS", - ItemRefer.Essentia_Upgrade_Empty.get(1), - new ItemStack[] { - new ItemStack(ConfigBlocks.blockTube, 1, 4), - new ItemStack(ConfigBlocks.blockTube, 1, 2), - GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.VividAlloy, 1), - GT_OreDictUnificator.get(OrePrefixes.pipeMedium, Materials.Polybenzimidazole, 1), - ItemList.Electric_Motor_IV.get(1), - ItemList.Electric_Pump_IV.get(1), - }, - ItemRefer.Essentia_Upgrade_Mechanics.get(1), - 5, - Arrays.asList( - new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 128), - new TC_Aspects.TC_AspectStack(TC_Aspects.LIMUS, 128), - new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 128) - ) - ), - "research.ESSENTIA_UPGRADE_MECHANICS.page.1", - "research.ESSENTIA_UPGRADE_MECHANICS.page.2" - } - ); - GregTech_API.sThaumcraftCompat.addResearch( - "ESSENTIA_UPGRADE_SPRITE", - "Essentia: SPRITE", - "Brain in a Machine.", - new String[]{"ESSENTIA_UPGRADE_BLANK"}, - "ARTIFICE", - ItemRefer.Essentia_Upgrade_Spirit.get(1), - 1, 0, -15, 5, - Arrays.asList( - new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITIO, 10L), - new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 10L), - new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 10L), - new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 10L) - ), - null, - new Object[] { - "research.ESSENTIA_UPGRADE_SPRITE.page.0", - GregTech_API.sThaumcraftCompat.addInfusionRecipe( - "ESSENTIA_UPGRADE_SPRITE", - ItemRefer.Essentia_Upgrade_Empty.get(1), - new ItemStack[] { - new ItemStack(ConfigBlocks.blockJar, 1, 1), - GT_OreDictUnificator.get(OrePrefixes.food, Materials.Cheese, 1), - GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.Shadow, 1), - GT_OreDictUnificator.get(OrePrefixes.spring, Materials.FierySteel, 1), - GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Milk, 1), - ItemList.Machine_EV_Scanner.get(1) - }, - ItemRefer.Essentia_Upgrade_Spirit.get(1), - 5, - Arrays.asList( - new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITIO, 128), - new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 128), - new TC_Aspects.TC_AspectStack(TC_Aspects.LUCRUM, 128), - new TC_Aspects.TC_AspectStack(TC_Aspects.STRONTIO, 128), - new TC_Aspects.TC_AspectStack(TC_Aspects.NEBRISUM, 128) - ) - ), - "research.ESSENTIA_UPGRADE_SPRITE.page.1", - "research.ESSENTIA_UPGRADE_SPRITE.page.2" - } - ); - GregTech_API.sThaumcraftCompat.addResearch( - "ESSENTIA_UPGRADE_RADIATION", - "Essentia: RADIATION", - "Atomic Heart", - new String[]{"ESSENTIA_UPGRADE_BLANK"}, - "ARTIFICE", - ItemRefer.Essentia_Upgrade_Radiation.get(1), - 1, 0, -16, 5, - Arrays.asList( - new TC_Aspects.TC_AspectStack(TC_Aspects.RADIO, 10L), - new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 10L), - new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 10L), - new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 10L) - ), - null, - new Object[] { - "research.ESSENTIA_UPGRADE_RADIATION.page.0", - GregTech_API.sThaumcraftCompat.addInfusionRecipe( - "ESSENTIA_UPGRADE_RADIATION", - ItemRefer.Essentia_Upgrade_Empty.get(1), - new ItemStack[] { - ItemRefer.High_Density_Plutonium.get(1), - ItemRefer.High_Density_Uranium.get(1), - ItemRefer.High_Density_Thorium.get(1), - Ic2Items.UranFuel, - Ic2Items.MOXFuel, - WerkstoffLoader.Tiberium.get(OrePrefixes.gem, 1) - }, - ItemRefer.Essentia_Upgrade_Radiation.get(1), - 8, - Collections.singletonList( - new TC_Aspects.TC_AspectStack(TC_Aspects.RADIO, 1024) - ) - ), - "research.ESSENTIA_UPGRADE_RADIATION.page.1", - "research.ESSENTIA_UPGRADE_RADIATION.page.2" - } - ); - GregTech_API.sThaumcraftCompat.addResearch( - "ESSENTIA_UPGRADE_ELECTRIC", - "Essentia: ELECTRIC", - "Get electricity from... electricity?", - new String[]{"ESSENTIA_UPGRADE_AIR", "ESSENTIA_UPGRADE_THERMAL", "ESSENTIA_UPGRADE_UNSTABLE", "ESSENTIA_UPGRADE_VICTUS", "ESSENTIA_UPGRADE_TAINTED", "ESSENTIA_UPGRADE_MECHANICS", "ESSENTIA_UPGRADE_SPRITE", "ESSENTIA_UPGRADE_RADIATION"}, - "ARTIFICE", - ItemRefer.Essentia_Upgrade_Electric.get(1), - 1, 0, -12, 7, - Arrays.asList( - new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 10L), - new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 10L), - new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 10L) - ), - null, - new Object[] { - "research.ESSENTIA_UPGRADE_ELECTRIC.page.0", - GregTech_API.sThaumcraftCompat.addInfusionRecipe( - "ESSENTIA_UPGRADE_RADIATION", - ItemRefer.Essentia_Upgrade_Empty.get(1), - new ItemStack[] { - GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorMV, 1), - GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorHV, 1), - GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorEV, 1), - GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorIV, 1), - GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorLuV, 1), - GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorZPM, 1) - }, - ItemRefer.Essentia_Upgrade_Electric.get(1), - 10, - Collections.singletonList( - new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 32768) - ) - ), - "research.ESSENTIA_UPGRADE_ELECTRIC.page.1" - } - ); - } -} diff --git a/src/main/java/GoodGenerator/Items/FuelRod.java b/src/main/java/GoodGenerator/Items/FuelRod.java deleted file mode 100644 index 9bcaae5cc0..0000000000 --- a/src/main/java/GoodGenerator/Items/FuelRod.java +++ /dev/null @@ -1,183 +0,0 @@ -package GoodGenerator.Items; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import ic2.api.item.IBoxable; -import ic2.api.reactor.IReactor; -import ic2.api.reactor.IReactorComponent; -import ic2.core.util.StackUtil; -import ic2.core.util.Util; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; - -import java.util.ArrayList; -import java.util.List; - -import static GoodGenerator.util.DescTextLocalization.addText; - -public class FuelRod extends RadioactiveItem implements IReactorComponent, IBoxable { - private final int numberOfCells; - private final int maxDmg; - private final float Power; - private final int Heat; - private float HeatBonus = 0; - private final ItemStack result; - - public FuelRod(String aName, int aCells, int aEUt, int aHeat, int aRads, int aDuration, ItemStack aResult, CreativeTabs Tab) { - super(aName, Tab, aRads); - this.setMaxStackSize(64); - this.numberOfCells = aCells; - this.maxDmg = aDuration; - this.Power = (float)aEUt / 25.0F; - this.result = aResult; - this.Heat = aHeat; - } - - public FuelRod(String aName, int aCells, int aEUt, int aHeat, int aRads, int aDuration, float aHeatBonus, ItemStack aResult, CreativeTabs Tab) { - super(aName, Tab, aRads); - this.setMaxStackSize(64); - this.numberOfCells = aCells; - this.maxDmg = aDuration; - this.Power = (float)aEUt / 25.0F; - this.result = aResult; - this.Heat = aHeat; - this.HeatBonus = aHeatBonus; - } - - public void processChamber(IReactor reactor, ItemStack stack, int x, int y, boolean heatRun) { - if (reactor.produceEnergy()) { - for(int iteration = 0; iteration < this.numberOfCells; ++iteration) { - int pulses = 1 + this.numberOfCells / 2; - int heat; - if (!heatRun) { - for(heat = 0; heat < pulses; ++heat) { - this.acceptUraniumPulse(reactor, stack, stack, x, y, x, y, heatRun); - } - checkPulseable(reactor, x - 1, y, stack, x, y, heatRun); - checkPulseable(reactor, x + 1, y, stack, x, y, heatRun); - checkPulseable(reactor, x, y - 1, stack, x, y, heatRun); - checkPulseable(reactor, x, y + 1, stack, x, y, heatRun); - } else { - pulses += checkPulseable(reactor, x - 1, y, stack, x, y, heatRun) + checkPulseable(reactor, x + 1, y, stack, x, y, heatRun) + checkPulseable(reactor, x, y - 1, stack, x, y, heatRun) + checkPulseable(reactor, x, y + 1, stack, x, y, heatRun); - heat = sumUp(pulses) * this.Heat; - ArrayList heatAcceptors = new ArrayList<>(); - this.checkHeatAcceptor(reactor, x - 1, y, heatAcceptors); - this.checkHeatAcceptor(reactor, x + 1, y, heatAcceptors); - this.checkHeatAcceptor(reactor, x, y - 1, heatAcceptors); - this.checkHeatAcceptor(reactor, x, y + 1, heatAcceptors); - - while(heatAcceptors.size() > 0 && heat > 0) { - int dheat = heat / heatAcceptors.size(); - heat -= dheat; - dheat = ((IReactorComponent) heatAcceptors.get(0).stack.getItem()).alterHeat(reactor, heatAcceptors.get(0).stack, heatAcceptors.get(0).x, heatAcceptors.get(0).y, dheat); - heat += dheat; - heatAcceptors.remove(0); - } - - if (heat > 0) { - reactor.addHeat(heat); - } - } - } - if (this.getCustomDamage(stack) >= this.getMaxCustomDamage(stack) - 1) { - reactor.setItemAt(x, y, result); - } else if (heatRun) { - this.applyCustomDamage(stack, 1, null); - } - } - } - - private static int checkPulseable(IReactor reactor, int x, int y, ItemStack me, int mex, int mey, boolean heatrun) { - ItemStack other = reactor.getItemAt(x, y); - return other != null && other.getItem() instanceof IReactorComponent && ((IReactorComponent)other.getItem()).acceptUraniumPulse(reactor, other, me, x, y, mex, mey, heatrun) ? 1 : 0; - } - - private static int sumUp(int x) { - return (x * x + x) / 2; - } - - private void checkHeatAcceptor(IReactor reactor, int x, int y, ArrayList heatAcceptors) { - ItemStack thing = reactor.getItemAt(x, y); - if (thing != null && thing.getItem() instanceof IReactorComponent && ((IReactorComponent)thing.getItem()).canStoreHeat(reactor, thing, x, y)) { - heatAcceptors.add(new ItemStackCoord(thing, x, y)); - } - - } - - public boolean acceptUraniumPulse(IReactor reactor, ItemStack yourStack, ItemStack pulsingStack, int youX, int youY, int pulseX, int pulseY, boolean heatrun) { - if (!heatrun) { - reactor.addOutput(Power * (1 + HeatBonus * ((float) reactor.getHeat() /(float) reactor.getMaxHeat()))); - } - return true; - } - - public boolean canStoreHeat(IReactor reactor, ItemStack yourStack, int x, int y) { - return false; - } - - public int getMaxHeat(IReactor reactor, ItemStack yourStack, int x, int y) { - return 0; - } - - public int getCurrentHeat(IReactor reactor, ItemStack yourStack, int x, int y) { - return 0; - } - - public int alterHeat(IReactor reactor, ItemStack yourStack, int x, int y, int heat) { - return heat; - } - - public float influenceExplosion(IReactor reactor, ItemStack yourStack) { - return (float)(2 * this.numberOfCells); - } - - @Override - public boolean canBeStoredInToolbox(ItemStack itemStack) { - return true; - } - - private static class ItemStackCoord { - public ItemStack stack; - public int x; - public int y; - - public ItemStackCoord(ItemStack stack1, int x1, int y1) { - this.stack = stack1; - this.x = x1; - this.y = y1; - } - } - - public int getCustomDamage(ItemStack stack) { - NBTTagCompound nbt = StackUtil.getOrCreateNbtData(stack); - return nbt.getInteger("advDmg"); - } - - public int getMaxCustomDamage(ItemStack stack) { - return this.maxDmg; - } - - public void setCustomDamage(ItemStack stack, int damage) { - NBTTagCompound nbt = StackUtil.getOrCreateNbtData(stack); - nbt.setInteger("advDmg", damage); - int maxStackDamage = stack.getMaxDamage(); - if (maxStackDamage > 2) { - stack.setItemDamage(1 + (int) Util.map(damage, this.maxDmg, maxStackDamage - 2)); - } - } - - public boolean applyCustomDamage(ItemStack stack, int damage, EntityLivingBase src) { - this.setCustomDamage(stack, this.getCustomDamage(stack) + damage); - return true; - } - - @SideOnly(Side.CLIENT) - @Override - public void addInformation(ItemStack item, EntityPlayer player, List tooltip, boolean p_77624_4_) { - super.addInformation(item, player, tooltip, p_77624_4_); - tooltip.add(String.format(addText("fuelrod.tooltip", 1)[0], getMaxCustomDamage(item) - getCustomDamage(item), getMaxCustomDamage(item))); - } -} diff --git a/src/main/java/GoodGenerator/Items/MyItemBlocks.java b/src/main/java/GoodGenerator/Items/MyItemBlocks.java deleted file mode 100644 index 151401708a..0000000000 --- a/src/main/java/GoodGenerator/Items/MyItemBlocks.java +++ /dev/null @@ -1,90 +0,0 @@ -package GoodGenerator.Items; - -import GoodGenerator.Blocks.RegularBlock.TEBlock; -import GoodGenerator.util.CharExchanger; -import GoodGenerator.util.DescTextLocalization; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import gregtech.api.util.GT_LanguageManager; -import net.minecraft.block.Block; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemBlock; -import GoodGenerator.Main.GoodGenerator; -import net.minecraft.item.ItemStack; -import net.minecraft.util.IIcon; -import net.minecraft.util.StatCollector; - -import java.util.Arrays; -import java.util.Collections; -import java.util.List; - -import static GoodGenerator.Loader.Loaders.essentiaCell; -import static GoodGenerator.Loader.Loaders.yottaFluidTankCell; -import static GoodGenerator.util.CharExchanger.tierName; - -public class MyItemBlocks extends ItemBlock { - private final String mNoMobsToolTip = GT_LanguageManager.addStringLocalization("gt.nomobspawnsonthisblock", "Mobs cannot Spawn on this Block"); - private final String mNoTileEntityToolTip = GT_LanguageManager.addStringLocalization("gt.notileentityinthisblock", "This is NOT a TileEntity!"); - - - public MyItemBlocks(Block block){ - super(block); - this.setMaxDamage(0); - this.setHasSubtypes(true); - this.setCreativeTab(GoodGenerator.GG); - } - - @Override - public int getMetadata(int aMeta) { - return aMeta; - } - - @Override - public String getUnlocalizedName(ItemStack aStack) { - return this.field_150939_a.getUnlocalizedName() + "." + this.getDamage(aStack); - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIcon(ItemStack stack, int pass) { - return this.field_150939_a.getIcon(0, stack.getItemDamage()); - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIcon(ItemStack stack, int renderPass, EntityPlayer player, ItemStack usingItem, int useRemaining) { - return this.getIcon(stack, renderPass); - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIconFromDamageForRenderPass(int p_77618_1_, int p_77618_2_) { - return this.field_150939_a.getIcon(0, p_77618_2_); - } - - @Override - @SuppressWarnings({"unchecked"}) - @SideOnly(Side.CLIENT) - public void addInformation(ItemStack p_77624_1_, EntityPlayer p_77624_2_, List p_77624_3_, boolean p_77624_4_) { - if (p_77624_1_ == null) return; - p_77624_3_.add(mNoMobsToolTip); - if (Block.getBlockFromItem(p_77624_1_.getItem()) instanceof TEBlock) { - TEBlock tile = (TEBlock) Block.getBlockFromItem(p_77624_1_.getItem()); - if (tile.getIndex() == 1) - p_77624_3_.addAll(Arrays.asList(DescTextLocalization.addText("EssentiaHatch.tooltip", 2))); - } - else p_77624_3_.add(mNoTileEntityToolTip); - - if (Block.getBlockFromItem(p_77624_1_.getItem()).equals(yottaFluidTankCell)) { - StringBuilder cap = new StringBuilder(); - cap.append(" 1000000"); - for (int i = 0; i < p_77624_1_.getItemDamage(); i++) cap.append("00"); - cap.append(" L"); - p_77624_3_.add(StatCollector.translateToLocal("YOTTankCell.tooltip.0") + CharExchanger.formatNumber(cap.toString())); - } - - if (Block.getBlockFromItem(p_77624_1_.getItem()).equals(essentiaCell)) { - p_77624_3_.add(StatCollector.translateToLocal("hatchTier.tooltip.0") + " " + tierName[p_77624_1_.getItemDamage() + 3]); - } - } -} diff --git a/src/main/java/GoodGenerator/Items/MyItems.java b/src/main/java/GoodGenerator/Items/MyItems.java deleted file mode 100644 index 4f13ee14e1..0000000000 --- a/src/main/java/GoodGenerator/Items/MyItems.java +++ /dev/null @@ -1,112 +0,0 @@ -package GoodGenerator.Items; - -import GoodGenerator.Main.GoodGenerator; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.IIcon; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -public class MyItems extends Item { - - @SideOnly(Side.CLIENT) - protected IIcon[] texture; - private String tex; - private String[] textureNames; - private String Name; - private List tooltips = new ArrayList<>(); - - public MyItems(String name, CreativeTabs Tab){ - this.setUnlocalizedName(name); - this.setCreativeTab(Tab); - this.tex = name; - this.Name = name; - } - - public MyItems(String name, CreativeTabs Tab, String[] textures){ - this.setUnlocalizedName(name); - this.setCreativeTab(Tab); - this.setHasSubtypes(true); - this.textureNames = textures; - this.Name = name; - } - - public MyItems(String name, String tooltip, CreativeTabs Tab) { - this.setUnlocalizedName(name); - this.setCreativeTab(Tab); - this.tex = name; - this.tooltips.add(tooltip); - this.Name = name; - } - - public MyItems(String name, String[] tooltip, CreativeTabs Tab) { - this.setUnlocalizedName(name); - this.setCreativeTab(Tab); - this.tex = name; - this.tooltips = Arrays.asList(tooltip); - this.Name = name; - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIconFromDamage(int meta) { - if (this.texture == null || this.texture.length < 1) return this.itemIcon; - else return meta < this.texture.length ? this.texture[meta] : this.texture[0]; - } - - @Override - public int getMetadata(int aMeta) { - return aMeta; - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) { - if (this.textureNames == null || this.textureNames.length < 1) { - this.itemIcon = iconRegister.registerIcon(GoodGenerator.MOD_ID + ":" + this.tex); - } - else { - this.texture = new IIcon[this.textureNames.length]; - for (int i = 0; i < this.textureNames.length; ++i) { - this.texture[i] = iconRegister.registerIcon(this.textureNames[i]); - } - } - } - - @Override - public String getUnlocalizedName(ItemStack p_77667_1_) { - if (this.textureNames == null || this.textureNames.length < 1){ - return "item." + this.Name; - } - else { - return "item." + this.Name + "." + p_77667_1_.getItemDamage(); - } - } - - @Override - @SideOnly(Side.CLIENT) - @SuppressWarnings("unchecked") - public void getSubItems(Item item, CreativeTabs tab, List list) { - if (this.texture == null || this.texture.length < 1) list.add(new ItemStack(item, 1, 0)); - else { - for (int i = 0; i < this.texture.length; ++i) { - list.add(new ItemStack(item, 1, i)); - } - } - } - - @SideOnly(Side.CLIENT) - @SuppressWarnings({"unchecked"}) - public void addInformation(ItemStack p_77624_1_, EntityPlayer p_77624_2_, List p_77624_3_, boolean p_77624_4_) { - if (tooltips.size() > 0) { - p_77624_3_.addAll(tooltips); - } - } -} diff --git a/src/main/java/GoodGenerator/Items/MyMaterial.java b/src/main/java/GoodGenerator/Items/MyMaterial.java deleted file mode 100644 index 281a961533..0000000000 --- a/src/main/java/GoodGenerator/Items/MyMaterial.java +++ /dev/null @@ -1,1015 +0,0 @@ -package GoodGenerator.Items; - -import GoodGenerator.util.CharExchanger; -import com.github.bartimaeusnek.bartworks.system.material.Werkstoff; -import com.github.bartimaeusnek.bartworks.system.material.WerkstoffLoader; -import gregtech.api.enums.TextureSet; -import com.github.bartimaeusnek.bartworks.util.Pair; - -import static com.github.bartimaeusnek.bartworks.util.BW_Util.subscriptNumbers; -import static gregtech.api.enums.Materials.*; - -@SuppressWarnings({"unchecked"}) -public class MyMaterial implements Runnable { - - protected static final int OffsetID = 10001; - - //Uranium Based Fuel Line - public static final Werkstoff graphiteUraniumMixture = new Werkstoff( - new short[]{0x3a,0x77,0x3d}, - "Graphite-Uranium Mixture", - subscriptNumbers("C3U"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable().addMixerRecipes().onlyDust(), - OffsetID, - TextureSet.SET_DULL, - new Pair<> (Graphite,3), - new Pair<> (Uranium,1) - ); - - public static final Werkstoff uraniumBasedLiquidFuel = new Werkstoff( - new short[]{0x00,0xff,0x00}, - "Uranium Based Liquid Fuel", - subscriptNumbers("U36Rb8Qt4Rn"), - new Werkstoff.Stats().setRadioactive(true), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable().addCells(), - OffsetID + 1, - TextureSet.SET_FLUID - ); - - public static final Werkstoff uraniumBasedLiquidFuelExcited = new Werkstoff( - new short[]{0x00,0xff,0x00}, - "Uranium Based Liquid Fuel (Excited State)", - subscriptNumbers("*(U36Rb8Qt4Rn)*"), - new Werkstoff.Stats().setRadioactive(true), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable().addCells(), - OffsetID + 2, - TextureSet.SET_FLUID - ); - - public static final Werkstoff uraniumBasedLiquidFuelDepleted = new Werkstoff( - new short[]{0x6e,0x8b,0x3d}, - "Uranium Based Liquid Fuel (Depleted)", - subscriptNumbers("Pb?Bi?Ba?Xe?"), - new Werkstoff.Stats().setToxic(true), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable().addCells(), - OffsetID + 3, - TextureSet.SET_FLUID - ); - - //Thorium Based Fuel - public static final Werkstoff uraniumCarbideThoriumMixture = new Werkstoff( - new short[]{0x16,0x32,0x07}, - "Uranium Carbide-Thorium Mixture", - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable().addMixerRecipes().onlyDust(), - OffsetID + 4, - TextureSet.SET_DULL, - new Pair<> (Thorium,8), - new Pair<> (WerkstoffLoader.Thorium232,4), - new Pair<> (Uranium235,1), - new Pair<> (Carbon,3) - ); - - public static final Werkstoff thoriumBasedLiquidFuel = new Werkstoff( - new short[]{0x50,0x32,0x66}, - "Thorium Based Liquid Fuel", - subscriptNumbers("Th432Li4D2Hg"), - new Werkstoff.Stats().setRadioactive(true), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable().addCells(), - OffsetID + 5, - TextureSet.SET_FLUID - ); - - public static final Werkstoff thoriumBasedLiquidFuelExcited = new Werkstoff( - new short[]{0x50,0x32,0x66}, - "Thorium Based Liquid Fuel (Excited State)", - subscriptNumbers("*(Th432Li4D2Hg)*"), - new Werkstoff.Stats().setRadioactive(true), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable().addCells(), - OffsetID + 6, - TextureSet.SET_FLUID - ); - - public static final Werkstoff thoriumBasedLiquidFuelDepleted = new Werkstoff( - new short[]{0x7d,0x6c,0x8a}, - "Thorium Based Liquid Fuel (Depleted)", - subscriptNumbers("Lu?Pr?B?In?"), - new Werkstoff.Stats().setToxic(true), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable().addCells(), - OffsetID + 7, - TextureSet.SET_FLUID - ); - - //Plutonium Based Fuel - public static final Werkstoff plutoniumOxideUraniumMixture = new Werkstoff( - new short[]{0xd1,0x1f,0x4a}, - "Plutonium Oxide-Uranium Mixture", - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable().addMixerRecipes().onlyDust(), - OffsetID + 8, - TextureSet.SET_SHINY, - new Pair<> (Plutonium,10), - new Pair<> (Oxygen,12), - new Pair<> (Uranium,2), - new Pair<> (Carbon,8) - ); - - public static final Werkstoff plutoniumBasedLiquidFuel = new Werkstoff( - new short[]{0xef,0x15,0x15}, - "Plutonium Based Liquid Fuel", - subscriptNumbers("Pu45Nt8Cs16Am2"), - new Werkstoff.Stats().setRadioactive(true), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable().addCells(), - OffsetID + 9, - TextureSet.SET_FLUID - ); - - public static final Werkstoff plutoniumBasedLiquidFuelExcited = new Werkstoff( - new short[]{0xef,0x15,0x15}, - "Plutonium Based Liquid Fuel (Excited State)", - subscriptNumbers("*(Pu45Nt8Cs16Am2)*"), - new Werkstoff.Stats().setRadioactive(true), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable().addCells(), - OffsetID + 10, - TextureSet.SET_FLUID - ); - - public static final Werkstoff plutoniumBasedLiquidFuelDepleted = new Werkstoff( - new short[]{0x67,0x19,0x19}, - "Plutonium Based Liquid Fuel (Depleted)", - subscriptNumbers("Tn?Ce?Au?Kr?"), - new Werkstoff.Stats().setToxic(true), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable().addCells(), - OffsetID + 11, - TextureSet.SET_FLUID - ); - - //Thorium-233 - public static final Werkstoff oxalate = new Werkstoff( - new short[]{0x79,0xd8,0x55}, - "Oxalate", - Werkstoff.Types.BIOLOGICAL, - new Werkstoff.GenerationFeatures().disable().addCells(), - OffsetID + 12, - TextureSet.SET_FLUID, - new Pair<> (Hydrogen,2), - new Pair<> (Carbon,2), - new Pair<> (Oxygen,4) - ); - - public static final Werkstoff vanadiumPentoxide = new Werkstoff( - new short[]{0xde,0x8d,0x12}, - "Vanadium Pentoxide", - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable().onlyDust(), - OffsetID + 13, - TextureSet.SET_SHINY, - new Pair<> (Vanadium,2), - new Pair<> (Oxygen,5) - ); - - public static final Werkstoff thoriumNitrate = new Werkstoff( - new short[]{0xba,0xe8,0x26}, - "Thorium Nitrate", - subscriptNumbers("Th(NO3)4"), - new Werkstoff.Stats(), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable().addCells(), - OffsetID + 14, - TextureSet.SET_DULL - ); - - public static final Werkstoff thoriumOxalate = new Werkstoff( - new short[]{0x50,0x63,0x13}, - "Thorium Oxalate", - subscriptNumbers("Th(C2O4)2"), - new Werkstoff.Stats(), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable().onlyDust(), - OffsetID + 15, - TextureSet.SET_DULL - ); - - public static final Werkstoff thoriumHydroxide = new Werkstoff( - new short[]{0x92,0xae,0x89}, - "Thorium Hydroxide", - subscriptNumbers("Th(OH)4"), - new Werkstoff.Stats(), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable().onlyDust(), - OffsetID + 16, - TextureSet.SET_SHINY - ); - - public static final Werkstoff sodiumOxalate = new Werkstoff( - new short[]{0xe4,0xf8,0x9b}, - "Sodium Oxalate", - subscriptNumbers("Na2C2O4"), - new Werkstoff.Stats(), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable().onlyDust(), - OffsetID + 17, - TextureSet.SET_DULL - ); - - public static final Werkstoff thoriumTetrachloride = new Werkstoff( - new short[]{0x13,0x7c,0x16}, - "Thorium Tetrachloride", - subscriptNumbers("ThCl4"), - new Werkstoff.Stats(), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable().addCells(), - OffsetID + 18, - TextureSet.SET_FLUID - ); - - public static final Werkstoff thoriumTetrafluoride = new Werkstoff( - new short[]{0x15,0x6a,0x6a}, - "Thorium Tetrafluoride", - subscriptNumbers("ThF4"), - new Werkstoff.Stats(), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable().addCells(), - OffsetID + 19, - TextureSet.SET_FLUID - ); - - public static final Werkstoff thorium232Tetrafluoride = new Werkstoff( - new short[]{0x15,0x6a,0x6a}, - "Thorium-232 Tetrafluoride", - new Werkstoff.Stats(), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable().addCells(), - OffsetID + 20, - TextureSet.SET_FLUID, - new Pair<> (WerkstoffLoader.Thorium232,1), - new Pair<> (Fluorine,4) - ); - - //Atomic Separation Catalyst - public static final Werkstoff orundum = new Werkstoff( - new short[]{0xcd,0x26,0x26}, - "Orundum", - "Or", - new Werkstoff.Stats().setProtons(120).setMass(300), - Werkstoff.Types.ELEMENT, - new Werkstoff.GenerationFeatures().addGems(), - OffsetID + 22, - TextureSet.SET_DIAMOND - ); - - public static final Werkstoff atomicSeparationCatalyst = new Werkstoff( - new short[]{0xe8,0x5e,0x0c}, - "Atomic Separation Catalyst", - "the melting core...", - new Werkstoff.Stats().setMeltingPoint(5000).setBlastFurnace(true), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable().onlyDust().addMolten().addMetalItems().addSimpleMetalWorkingItems().addCraftingMetalWorkingItems().addMultipleIngotMetalWorkingItems(), - OffsetID + 21, - TextureSet.SET_SHINY, - new Pair<>(MyMaterial.orundum, 2), - new Pair<>(Plutonium, 1), - new Pair<>(Naquadah, 2) - ); - - //Naquadah Fuel Rework - public static final Werkstoff extremelyUnstableNaquadah = new Werkstoff( - new short[]{0x06,0x26,0x05}, - "Extremely Unstable Naquadah", - "Nq"+ CharExchanger.shifter(9734), - new Werkstoff.Stats().setMeltingPoint(7000).setBlastFurnace(true).setProtons(200).setMass(450).setRadioactive(true), - Werkstoff.Types.ELEMENT, - new Werkstoff.GenerationFeatures().disable().onlyDust().addMolten().addMetalItems().addSimpleMetalWorkingItems().addCraftingMetalWorkingItems().addMultipleIngotMetalWorkingItems(), - OffsetID + 23, - TextureSet.SET_SHINY - ); - - public static final Werkstoff lightNaquadahFuel = new Werkstoff( - new short[]{92,203,92}, - "Light Naquadah Fuel", - "far from enough", - new Werkstoff.Stats().setToxic(true).setRadioactive(true), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable().addCells(), - OffsetID + 24, - TextureSet.SET_FLUID - ); - - public static final Werkstoff heavyNaquadahFuel = new Werkstoff( - new short[]{54,255,54}, - "Heavy Naquadah Fuel", - "still need processing", - new Werkstoff.Stats().setToxic(true).setRadioactive(true), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable().addCells(), - OffsetID + 25, - TextureSet.SET_FLUID - ); - - public static final Werkstoff naquadahGas = new Werkstoff( - new short[]{93,219,0}, - "Naquadah Gas", - "Who need it?", - new Werkstoff.Stats().setToxic(true).setRadioactive(true).setGas(true), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable().addCells(), - OffsetID + 26, - TextureSet.SET_FLUID - ); - - public static final Werkstoff naquadahAsphalt = new Werkstoff( - new short[]{5,37,5}, - "Naquadah Asphalt", - "It will damage the reactor.", - new Werkstoff.Stats().setToxic(true).setRadioactive(true), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable().addCells(), - OffsetID + 27, - TextureSet.SET_FLUID - ); - - public static final Werkstoff ether = new Werkstoff( - new short[]{0xeb,0xbc,0x2f}, - "Ether", - subscriptNumbers("CH3CH2OCH2CH3"), - new Werkstoff.Stats(), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable().addCells(), - OffsetID + 28, - TextureSet.SET_FLUID, - new Pair<> (Carbon,4), - new Pair<> (Hydrogen, 10), - new Pair<> (Oxygen, 1) - ); - - public static final Werkstoff antimonyTrichloride = new Werkstoff( - new short[]{0x0f,0xdc,0x34}, - "Antimony Trichloride Solution", - subscriptNumbers("SbCl3"), - new Werkstoff.Stats(), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable().addCells(), - OffsetID + 29, - TextureSet.SET_FLUID - ); - - public static final Werkstoff antimonyPentachlorideSolution = new Werkstoff( - new short[]{0x15,0x93,0x2c}, - "Antimony Pentachloride Solution", - subscriptNumbers("SbCl5"), - new Werkstoff.Stats(), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable().addCells(), - OffsetID + 30, - TextureSet.SET_FLUID - ); - - public static final Werkstoff antimonyPentachloride = new Werkstoff( - new short[]{0x15,0x93,0x2c}, - "Antimony Pentachloride", - subscriptNumbers("SbCl5"), - new Werkstoff.Stats(), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable().addCells(), - OffsetID + 31, - TextureSet.SET_FLUID - ); - - public static final Werkstoff antimonyPentafluoride = new Werkstoff( - new short[]{0x16,0xd5,0xe2}, - "Antimony Pentafluoride", - subscriptNumbers("SbF5"), - new Werkstoff.Stats(), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable().addCells(), - OffsetID + 32, - TextureSet.SET_FLUID - ); - - public static final Werkstoff fluoroantimonicAcid = new Werkstoff( - new short[]{0x16,0xd5,0xe2}, - "Fluoroantimonic Acid", - subscriptNumbers("HSbF6"), - new Werkstoff.Stats(), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable().addCells(), - OffsetID + 33, - TextureSet.SET_FLUID - ); - - public static final Werkstoff radioactiveSludge = new Werkstoff( - new short[]{0xb3,0x49,0x1e}, - "Radioactive Sludge", - ">>> DANGER <<<", - new Werkstoff.Stats().setRadioactive(true), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable().onlyDust(), - OffsetID + 34, - TextureSet.SET_DULL - ); - - public static final Werkstoff acidNaquadahEmulsion = new Werkstoff( - new short[]{0x25,0x22,0x22}, - "Acid Naquadah Emulsion", - "??Nq??H"+CharExchanger.shifter(8314), - new Werkstoff.Stats().setRadioactive(true), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable().addCells(), - OffsetID + 35, - TextureSet.SET_FLUID - ); - - public static final Werkstoff naquadahEmulsion = new Werkstoff( - new short[]{0x4a,0x46,0x45}, - "Naquadah Emulsion", - "??Nq??", - new Werkstoff.Stats().setRadioactive(true), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable().addCells(), - OffsetID + 36, - TextureSet.SET_FLUID - ); - - public static final Werkstoff naquadahSolution = new Werkstoff( - new short[]{0x84,0x81,0x80}, - "Naquadah Solution", - "~Nq~", - new Werkstoff.Stats().setRadioactive(true), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable().addCells(), - OffsetID + 37, - TextureSet.SET_FLUID - ); - - public static final Werkstoff naquadahBasedFuelMkI = new Werkstoff( - new short[]{0x62,0x5c,0x5b}, - "Naquadah Based Liquid Fuel MkI", - new Werkstoff.Stats().setRadioactive(true), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable().addCells(), - OffsetID + 38, - TextureSet.SET_FLUID - ); - - public static final Werkstoff naquadahBasedFuelMkIDepleted = new Werkstoff( - new short[]{0xcb,0xc3,0xc1}, - "Naquadah Based Liquid Fuel MkI (Depleted)", - new Werkstoff.Stats().setToxic(true), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable().addCells(), - OffsetID + 39, - TextureSet.SET_FLUID - ); - - public static final Werkstoff naquadahBasedFuelMkII = new Werkstoff( - new short[]{0x52,0x4e,0x4d}, - "Naquadah Based Liquid Fuel MkII", - new Werkstoff.Stats().setRadioactive(true), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable().addCells(), - OffsetID + 40, - TextureSet.SET_FLUID - ); - - public static final Werkstoff naquadahBasedFuelMkIIDepleted = new Werkstoff( - new short[]{0xb5,0xb0,0xae}, - "Naquadah Based Liquid Fuel MkII (Depleted)", - new Werkstoff.Stats().setToxic(true), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable().addCells(), - OffsetID + 41, - TextureSet.SET_FLUID - ); - /*These materials will be enable when they are removed in GregTech*/ - /* - public static final Werkstoff praseodymium = new Werkstoff( - new short[]{0xff,0xff,0xff}, - "praseodymium", - "Pr", - new Werkstoff.Stats(), - Werkstoff.Types.ELEMENT, - new Werkstoff.GenerationFeatures().disable().onlyDust().addMolten().addMetalItems(), - OffsetID + 42, - TextureSet.SET_METALLIC - ); - - public static final Werkstoff rubidium = new Werkstoff( - new short[]{0xff,0x2a,0x00}, - "rubidium", - "Rb", - new Werkstoff.Stats(), - Werkstoff.Types.ELEMENT, - new Werkstoff.GenerationFeatures().disable().onlyDust().addMolten().addMetalItems(), - OffsetID + 43, - TextureSet.SET_SHINY - ); - - public static final Werkstoff thulium = new Werkstoff( - new short[]{0xff,0xff,0xff}, - "Thulium", - "Tm", - new Werkstoff.Stats(), - Werkstoff.Types.ELEMENT, - new Werkstoff.GenerationFeatures().disable().onlyDust().addMolten().addMetalItems(), - OffsetID + 44, - TextureSet.SET_METALLIC - ); - */ - public static final Werkstoff naquadahBasedFuelMkIII = new Werkstoff( - new short[]{0x29,0x22,0x21}, - "Naquadah Based Liquid Fuel MkIII", - new Werkstoff.Stats().setRadioactive(true), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable().addCells(), - OffsetID + 45, - TextureSet.SET_FLUID - ); - - public static final Werkstoff naquadahBasedFuelMkIIIDepleted = new Werkstoff( - new short[]{0x66,0x40,0x38}, - "Naquadah Based Liquid Fuel MkIII (Depleted)", - new Werkstoff.Stats().setToxic(true), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable().addCells(), - OffsetID + 46, - TextureSet.SET_FLUID - ); - - public static final Werkstoff naquadahBasedFuelMkIV = new Werkstoff( - new short[]{0x0e,0x0c,0x0c}, - "Naquadah Based Liquid Fuel MkIV", - new Werkstoff.Stats().setRadioactive(true), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable().addCells(), - OffsetID + 47, - TextureSet.SET_FLUID - ); - - public static final Werkstoff naquadahBasedFuelMkIVDepleted = new Werkstoff( - new short[]{0x8e,0x34,0x22}, - "Naquadah Based Liquid Fuel MkIV (Depleted)", - new Werkstoff.Stats().setToxic(true), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable().addCells(), - OffsetID + 48, - TextureSet.SET_FLUID - ); - - public static final Werkstoff naquadahBasedFuelMkV = new Werkstoff( - new short[]{0x00,0x00,0x00}, - "Naquadah Based Liquid Fuel MkV", - "THE END", - new Werkstoff.Stats().setRadioactive(true), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable().addCells(), - OffsetID + 49, - TextureSet.SET_FLUID - ); - - public static final Werkstoff naquadahBasedFuelMkVDepleted = new Werkstoff( - new short[]{0xff,0xff,0xff}, - "Naquadah Based Liquid Fuel MkV (Depleted)", - "THE END (literally)", - new Werkstoff.Stats().setToxic(true), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable().addCells(), - OffsetID + 50, - TextureSet.SET_FLUID - ); - - public static final Werkstoff zincChloride = new Werkstoff( - new short[]{0x73,0xa5,0xfc}, - "Zinc Chloride", - subscriptNumbers("ZnCl2"), - new Werkstoff.Stats(), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable().onlyDust(), - OffsetID + 51, - TextureSet.SET_SHINY - ); - - public static final Werkstoff zincThoriumAlloy = new Werkstoff( - new short[]{0x12,0x34,0x56}, - "Zn-Th Alloy", - subscriptNumbers("ZnTh"), - new Werkstoff.Stats(), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable().onlyDust().addMolten().addMetalItems(), - OffsetID + 52, - TextureSet.SET_SHINY, - new Pair<>(Zinc, 1), - new Pair<>(Thorium, 1) - ); - - //Naquadah Rework Materials - public static final Werkstoff naquadahEarth = new Werkstoff( - new short[]{0x4c,0x4c,0x4c}, - "Naquadah Oxide Mixture", - subscriptNumbers("??NqTiGaAd??"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures(), - OffsetID + 53, - TextureSet.SET_METALLIC - ); - - public static final Werkstoff titaniumTrifluoride = new Werkstoff( - new short[]{0xc0,0x92,0xa8}, - "Titanium Trifluoride", - subscriptNumbers("TiF3"), - new Werkstoff.Stats().setElektrolysis(true), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable().onlyDust(), - OffsetID + 54, - TextureSet.SET_METALLIC, - new Pair<> (Titanium, 1), - new Pair<> (Fluorine, 3) - ); - - public static final Werkstoff lowQualityNaquadahEmulsion = new Werkstoff( - new short[]{0x4c,0x4c,0x4c}, - "Low Quality Naquadah Emulsion", - subscriptNumbers("??NqGaAd??"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable().addCells(), - OffsetID + 55, - TextureSet.SET_FLUID - ); - - public static final Werkstoff galliumHydroxide = new Werkstoff( - new short[]{0xa6,0xa6,0xa6}, - "Gallium Hydroxide", - subscriptNumbers("Ga(OH)3"), - new Werkstoff.Stats().setElektrolysis(true), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable().onlyDust(), - OffsetID + 56, - TextureSet.SET_DULL, - new Pair<> (Gallium, 1), - new Pair<> (Oxygen, 3), - new Pair<> (Hydrogen, 3) - ); - - public static final Werkstoff lowQualityNaquadahSolution = new Werkstoff( - new short[]{0x71,0x62,0x62}, - "Low Quality Naquadah Solution", - subscriptNumbers("~??NqAd??~"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable().addCells(), - OffsetID + 57, - TextureSet.SET_FLUID - ); - - public static final Werkstoff towEthyl1Hexanol = new Werkstoff( - new short[]{0x80,0xb5,0x57}, - "2-Ethyl-1-Hexanol", - subscriptNumbers("C8H18O"), - new Werkstoff.Stats().setElektrolysis(true), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable().addCells(), - OffsetID + 58, - TextureSet.SET_FLUID, - new Pair<> (Carbon, 8), - new Pair<> (Oxygen, 1), - new Pair<> (Hydrogen, 18) - ); - - public static final Werkstoff P507 = new Werkstoff( - new short[]{0x29,0xc2,0x2a}, - "P-507", - subscriptNumbers("(C8H17)2PO3H"), - new Werkstoff.Stats().setElektrolysis(true), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable().addCells(), - OffsetID + 59, - TextureSet.SET_FLUID, - new Pair<> (Carbon, 16), - new Pair<> (Phosphorus, 1), - new Pair<> (Oxygen, 3), - new Pair<> (Hydrogen, 35) - ); - - public static final Werkstoff naquadahAdamantiumSolution = new Werkstoff( - new short[]{0x3d,0x38,0x38}, - "Naquadah-Adamantium Solution", - subscriptNumbers("~NqAd~"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable().addCells(), - OffsetID + 60, - TextureSet.SET_FLUID - ); - - public static final Werkstoff naquadahRichSolution = new Werkstoff( - new short[]{0x33,0x33,0x33}, - "Naquadah-Rich Solution", - subscriptNumbers("~?Nq?~"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable().addCells(), - OffsetID + 61, - TextureSet.SET_FLUID - ); - - public static final Werkstoff naquadahine = new Werkstoff( - new short[]{0x33,0x33,0x33}, - "Naquadahine", - subscriptNumbers("NqO2"), - new Werkstoff.Stats().setElektrolysis(true), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable().onlyDust(), - OffsetID + 62, - TextureSet.SET_METALLIC, - new Pair<> (Naquadah, 1), - new Pair<> (Oxygen, 2) - ); - - public static final Werkstoff fluorineRichWasteLiquid = new Werkstoff( - new short[]{0x13,0x68,0x62}, - "Fluorine-Rich Waste Liquid", - new Werkstoff.Stats().setToxic(true), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable().addCells(), - OffsetID + 63, - TextureSet.SET_FLUID - ); - - public static final Werkstoff wasteLiquid = new Werkstoff( - new short[]{0x14,0x1c,0x68}, - "Waste Liquid", - new Werkstoff.Stats().setToxic(true), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable().addCells(), - OffsetID + 64, - TextureSet.SET_FLUID - ); - - public static final Werkstoff adamantine = new Werkstoff( - new short[]{0xb7,0xb7,0xb7}, - "Adamantine", - subscriptNumbers("Ad2O3"), - new Werkstoff.Stats().setElektrolysis(true), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable().onlyDust(), - OffsetID + 65, - TextureSet.SET_DULL, - new Pair<> (Adamantium, 2), - new Pair<> (Oxygen, 3) - ); - - public static final Werkstoff enrichedNaquadahEarth = new Werkstoff( - new short[]{0x82,0x68,0x68}, - "Enriched-Naquadah Oxide Mixture", - subscriptNumbers("??KeNq") + CharExchanger.shifter(8314) + "??", - new Werkstoff.Stats().setRadioactive(true), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures(), - OffsetID + 66, - TextureSet.SET_METALLIC - ); - - public static final Werkstoff triniumSulphate = new Werkstoff( - new short[]{0xda,0xda,0xda}, - "Trinium Sulphate", - subscriptNumbers("KeSO4"), - new Werkstoff.Stats().setElektrolysis(true), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable().onlyDust(), - OffsetID + 67, - TextureSet.SET_METALLIC, - new Pair<> (Trinium, 1), - new Pair<> (Sulfur, 1), - new Pair<> (Oxygen, 4) - ); - - public static final Werkstoff enrichedNaquadahRichSolution = new Werkstoff( - new short[]{0x52,0x39,0x39}, - "Enriched-Naquadah-Rich Solution", - subscriptNumbers("~?Nq") + CharExchanger.shifter(8314) + "?~", - new Werkstoff.Stats().setRadioactive(true), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable().addCells(), - OffsetID + 68, - TextureSet.SET_FLUID - ); - - public static final Werkstoff concentratedEnrichedNaquadahSludge = new Werkstoff( - new short[]{0x52,0x39,0x39}, - "Concentrated Enriched-Naquadah Sludge", - subscriptNumbers("?Nq") + CharExchanger.shifter(8314) + "?", - new Werkstoff.Stats().setRadioactive(true), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable().onlyDust(), - OffsetID + 69, - TextureSet.SET_METALLIC - ); - - public static final Werkstoff enrichedNaquadahSulphate = new Werkstoff( - new short[]{0x52,0x39,0x39}, - "Enriched-Naquadah Sulphate", - "Nq" + CharExchanger.shifter(8314) + subscriptNumbers("(SO4)2"), - new Werkstoff.Stats().setRadioactive(true).setElektrolysis(true), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable().onlyDust(), - OffsetID + 70, - TextureSet.SET_DULL, - new Pair<>(NaquadahEnriched, 1), - new Pair<>(Sulfur, 2), - new Pair<>(Oxygen, 8) - ); - - public static final Werkstoff naquadriaEarth = new Werkstoff( - new short[]{0x4d,0x4d,0x55}, - "Naquadria Oxide Mixture", - subscriptNumbers("??Nq*BaIn??"), - new Werkstoff.Stats().setRadioactive(true).setToxic(true), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures(), - OffsetID + 71, - TextureSet.SET_METALLIC - ); - - public static final Werkstoff indiumPhosphate = new Werkstoff( - new short[]{0x2b,0x2e,0x70}, - "Indium Phosphate", - subscriptNumbers("InPO4"), - new Werkstoff.Stats().setToxic(true).setElektrolysis(true), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable().onlyDust(), - OffsetID + 72, - TextureSet.SET_DULL, - new Pair<>(Indium, 1), - new Pair<>(Phosphorus, 1), - new Pair<>(Oxygen, 4) - ); - - public static final Werkstoff lowQualityNaquadriaPhosphate = new Werkstoff( - new short[]{0x4d,0x4d,0x55}, - "Low Quality Naquadria Phosphate", - subscriptNumbers("??Nq*3(PO4)4??"), - new Werkstoff.Stats().setRadioactive(true).setToxic(true), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable().onlyDust(), - OffsetID + 73, - TextureSet.SET_DULL - ); - - public static final Werkstoff naquadriaRichSolution = new Werkstoff( - new short[]{0x1f,0x1e,0x33}, - "Naquadria-Rich Solution", - subscriptNumbers("~?Nq*?~"), - new Werkstoff.Stats().setRadioactive(true).setToxic(true), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable().addCells(), - OffsetID + 74, - TextureSet.SET_FLUID - ); - - public static final Werkstoff lowQualityNaquadriaSulphate = new Werkstoff( - new short[]{0x73,0x72,0x84}, - "Low Quality Naquadria Sulphate", - subscriptNumbers("??Nq*(SO4)2??"), - new Werkstoff.Stats().setRadioactive(true).setToxic(true), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable().onlyDust(), - OffsetID + 75, - TextureSet.SET_METALLIC - ); - - public static final Werkstoff lowQualityNaquadriaSolution = new Werkstoff( - new short[]{0x73,0x72,0x84}, - "Low Quality Naquadria Sulphate", - subscriptNumbers("~??Nq*??~"), - new Werkstoff.Stats().setRadioactive(true).setToxic(true), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable().addCells(), - OffsetID + 76, - TextureSet.SET_FLUID - ); - - public static final Werkstoff naquadriaSulphate = new Werkstoff( - new short[]{0x1f,0x1e,0x33}, - "Naquadria Sulphate", - subscriptNumbers("Nq*(SO4)2"), - new Werkstoff.Stats().setRadioactive(true).setToxic(true).setElektrolysis(true), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable().onlyDust(), - OffsetID + 77, - TextureSet.SET_METALLIC, - new Pair<>(Naquadria, 1), - new Pair<>(Sulfur, 2), - new Pair<>(Oxygen, 8) - ); - - public static final Werkstoff naquadahGoo = new Werkstoff( - new short[]{0x4c,0x4c,0x4c}, - "Naquadah Goo", - subscriptNumbers("??NqTiGaAd??"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable().addCells(), - OffsetID + 78, - TextureSet.SET_FLUID - ); - - public static final Werkstoff enrichedNaquadahGoo = new Werkstoff( - new short[]{0x82,0x68,0x68}, - "Enriched Naquadah Goo", - subscriptNumbers("??KeNq") + CharExchanger.shifter(8314) + "??", - new Werkstoff.Stats().setRadioactive(true), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable().addCells(), - OffsetID + 79, - TextureSet.SET_FLUID - ); - - public static final Werkstoff naquadriaGoo = new Werkstoff( - new short[]{0x4d,0x4d,0x55}, - "Naquadria Goo", - subscriptNumbers("??Nq*BaIn??"), - new Werkstoff.Stats().setRadioactive(true).setToxic(true), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable().addCells(), - OffsetID + 80, - TextureSet.SET_FLUID - ); - - //material for reactor stuff - public static final Werkstoff zircaloy4 = new Werkstoff( - new short[]{0x8a,0x6e,0x68}, - "Zircaloy-4", - subscriptNumbers("Zr34Sn5Fe2Cr"), - new Werkstoff.Stats().setCentrifuge(true).setBlastFurnace(true).setMeltingPoint(2800), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().onlyDust().addMolten().addMetalItems().addCraftingMetalWorkingItems().addSimpleMetalWorkingItems().addMixerRecipes((short) 4), - OffsetID + 81, - TextureSet.SET_METALLIC, - new Pair<>(WerkstoffLoader.Zirconium, 34), - new Pair<>(Tin, 5), - new Pair<>(Iron, 2), - new Pair<>(Chrome, 1) - ); - - public static final Werkstoff zircaloy2 = new Werkstoff( - new short[]{0xa4,0x8f,0x8b}, - "Zircaloy-2", - subscriptNumbers("Zr34Sn4FeCrNi"), - new Werkstoff.Stats().setCentrifuge(true).setBlastFurnace(true).setMeltingPoint(2800), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().onlyDust().addMolten().addMetalItems().addCraftingMetalWorkingItems().addSimpleMetalWorkingItems().addMixerRecipes((short) 2), - OffsetID + 82, - TextureSet.SET_METALLIC, - new Pair<>(WerkstoffLoader.Zirconium, 34), - new Pair<>(Tin, 4), - new Pair<>(Iron, 1), - new Pair<>(Chrome, 1), - new Pair<>(Nickel, 1) - ); - - public static final Werkstoff incoloy903 = new Werkstoff( - new short[]{0xa4,0x8f,0x8b}, - "Incoloy-903", - subscriptNumbers("Fe12Ni10Co8Ti4Mo2Al"), - new Werkstoff.Stats().setCentrifuge(true).setBlastFurnace(true).setMeltingPoint(3700).setGas(true), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().onlyDust().addMolten().addMetalItems().addCraftingMetalWorkingItems().addSimpleMetalWorkingItems().addMixerRecipes((short) 6), - OffsetID + 83, - TextureSet.SET_METALLIC, - new Pair<>(Iron, 12), - new Pair<>(Nickel, 10), - new Pair<>(Cobalt, 8), - new Pair<>(Titanium, 4), - new Pair<>(Molybdenum, 2), - new Pair<>(Aluminium, 1) - ); - - public static final Werkstoff adamantiumAlloy = new Werkstoff( - new short[]{0xa0,0xa0,0xa0}, - "Adamantium Alloy", - subscriptNumbers("Ad5Nq2La3"), - new Werkstoff.Stats().setCentrifuge(true).setBlastFurnace(true).setMeltingPoint(5000).setGas(true), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().onlyDust().addMolten().addMetalItems().addCraftingMetalWorkingItems().addSimpleMetalWorkingItems().addMixerRecipes((short) 3), - OffsetID + 84, - TextureSet.SET_SHINY, - new Pair<>(Adamantium, 5), - new Pair<>(Naquadah, 2), - new Pair<>(Lanthanum, 3) - ); - - @Override - public void run() { } -} diff --git a/src/main/java/GoodGenerator/Items/RadioactiveItem.java b/src/main/java/GoodGenerator/Items/RadioactiveItem.java deleted file mode 100644 index 8be42f94e8..0000000000 --- a/src/main/java/GoodGenerator/Items/RadioactiveItem.java +++ /dev/null @@ -1,40 +0,0 @@ -package GoodGenerator.Items; - -import gregtech.api.util.GT_Utility; -import ic2.core.IC2Potion; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.PotionEffect; -import net.minecraft.world.World; - -public class RadioactiveItem extends MyItems{ - - protected final int mRadio; - - public RadioactiveItem(String name, CreativeTabs Tab, int Rad) { - super(name, Tab); - this.mRadio = Rad; - } - - public RadioactiveItem(String name, String[] tooltip, CreativeTabs Tab, int Rad) { - super(name, tooltip, Tab); - this.mRadio = Rad; - } - - public RadioactiveItem(String name, String tooltip, CreativeTabs Tab, int Rad) { - super(name, tooltip, Tab); - this.mRadio = Rad; - } - - @Override - public void onUpdate(ItemStack aStack, World aWorld, Entity aPlayer, int aTimer, boolean aIsInHand) { - super.onUpdate(aStack, aWorld, aPlayer, aTimer, aIsInHand); - EntityLivingBase tPlayer = (EntityPlayer) aPlayer; - if (!GT_Utility.isWearingFullRadioHazmat(tPlayer)) - tPlayer.addPotionEffect(new PotionEffect(IC2Potion.radiation.id, mRadio, 4)); - } - -} diff --git a/src/main/java/GoodGenerator/Loader/AchievementLoader.java b/src/main/java/GoodGenerator/Loader/AchievementLoader.java deleted file mode 100644 index f4174597b0..0000000000 --- a/src/main/java/GoodGenerator/Loader/AchievementLoader.java +++ /dev/null @@ -1,4 +0,0 @@ -package GoodGenerator.Loader; - -public class AchievementLoader { -} diff --git a/src/main/java/GoodGenerator/Loader/FuelRecipeLoader.java b/src/main/java/GoodGenerator/Loader/FuelRecipeLoader.java deleted file mode 100644 index ac2123d930..0000000000 --- a/src/main/java/GoodGenerator/Loader/FuelRecipeLoader.java +++ /dev/null @@ -1,79 +0,0 @@ -package GoodGenerator.Loader; - -import GoodGenerator.Items.MyMaterial; -import GoodGenerator.util.ItemRefer; -import GoodGenerator.util.MyRecipeAdder; -import com.github.bartimaeusnek.bartworks.system.material.WerkstoffLoader; -import gregtech.api.enums.Materials; -import gregtech.api.enums.OrePrefixes; -import gregtech.api.util.GT_OreDictUnificator; -import net.minecraft.item.ItemStack; -import net.minecraftforge.fluids.FluidRegistry; -import net.minecraftforge.fluids.FluidStack; - -import static GoodGenerator.Main.GG_Config_Loader.NaquadahFuelTime; -import static GoodGenerator.Main.GG_Config_Loader.NaquadahFuelVoltage; - -public class FuelRecipeLoader { - public static void RegisterFuel(){ - //MyRecipeAdder.instance.addLiquidMentalFuel(Materials.NaquadahEnriched.getMolten(1L),Materials.Naquadah.getMolten(1L),32768,100); - //MyRecipeAdder.instance.addLiquidMentalFuel(Materials.Naquadria.getMolten(1L),Materials.Naquadah.getMolten(1L),262144,120); - MyRecipeAdder.instance.addLiquidMentalFuel(MyMaterial.uraniumBasedLiquidFuelExcited.getFluidOrGas(1),MyMaterial.uraniumBasedLiquidFuelDepleted.getFluidOrGas(1),NaquadahFuelVoltage[0],NaquadahFuelTime[0]); - MyRecipeAdder.instance.addLiquidMentalFuel(MyMaterial.thoriumBasedLiquidFuelExcited.getFluidOrGas(1),MyMaterial.thoriumBasedLiquidFuelDepleted.getFluidOrGas(1),NaquadahFuelVoltage[1],NaquadahFuelTime[1]); - MyRecipeAdder.instance.addLiquidMentalFuel(MyMaterial.plutoniumBasedLiquidFuelExcited.getFluidOrGas(1),MyMaterial.plutoniumBasedLiquidFuelDepleted.getFluidOrGas(1),NaquadahFuelVoltage[2],NaquadahFuelTime[2]); - MyRecipeAdder.instance.addLiquidMentalFuel(MyMaterial.naquadahBasedFuelMkI.getFluidOrGas(1),MyMaterial.naquadahBasedFuelMkIDepleted.getFluidOrGas(1),NaquadahFuelVoltage[3],NaquadahFuelTime[3]); - MyRecipeAdder.instance.addLiquidMentalFuel(MyMaterial.naquadahBasedFuelMkII.getFluidOrGas(1),MyMaterial.naquadahBasedFuelMkIIDepleted.getFluidOrGas(1),NaquadahFuelVoltage[4],NaquadahFuelTime[4]); - MyRecipeAdder.instance.addLiquidMentalFuel(MyMaterial.naquadahBasedFuelMkIII.getFluidOrGas(1),MyMaterial.naquadahBasedFuelMkIIIDepleted.getFluidOrGas(1),NaquadahFuelVoltage[5],NaquadahFuelTime[5]); - MyRecipeAdder.instance.addLiquidMentalFuel(MyMaterial.naquadahBasedFuelMkIV.getFluidOrGas(1),MyMaterial.naquadahBasedFuelMkIVDepleted.getFluidOrGas(1),NaquadahFuelVoltage[6],NaquadahFuelTime[6]); - MyRecipeAdder.instance.addLiquidMentalFuel(MyMaterial.naquadahBasedFuelMkV.getFluidOrGas(1),MyMaterial.naquadahBasedFuelMkVDepleted.getFluidOrGas(1),NaquadahFuelVoltage[7],NaquadahFuelTime[7]); - - MyRecipeAdder.instance.addNaquadahFuelRefineRecipe( - new FluidStack[]{ - MyMaterial.heavyNaquadahFuel.getFluidOrGas(800), - MyMaterial.lightNaquadahFuel.getFluidOrGas(1000), - }, - new ItemStack[]{ - MyMaterial.extremelyUnstableNaquadah.get(OrePrefixes.dust,4), - WerkstoffLoader.Tiberium.get(OrePrefixes.dust,27), - ItemRefer.High_Density_Uranium.get(2), - ItemRefer.High_Density_Plutonium.get(1), - }, - MyMaterial.naquadahBasedFuelMkIII.getFluidOrGas(100), - 1100000, - 100, - 1 - ); - - MyRecipeAdder.instance.addNaquadahFuelRefineRecipe( - new FluidStack[]{ - MyMaterial.naquadahBasedFuelMkIII.getFluidOrGas(2000), - Materials.Praseodymium.getMolten(9216L) - }, - new ItemStack[]{ - MyMaterial.extremelyUnstableNaquadah.get(OrePrefixes.dust,27), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.NetherStar,64), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.DraconiumAwakened,64), - MyMaterial.orundum.get(OrePrefixes.dust,32), - }, - MyMaterial.naquadahBasedFuelMkIV.getFluidOrGas(250), - 46000000, - 160, - 2 - ); - - MyRecipeAdder.instance.addNaquadahFuelRefineRecipe( - new FluidStack[]{ - MyMaterial.naquadahBasedFuelMkIV.getFluidOrGas(2000), - FluidRegistry.getFluidStack("heavyradox",1000), - }, - new ItemStack[]{ - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Infinity,16), - MyMaterial.atomicSeparationCatalyst.get(OrePrefixes.dust, 32), - }, - MyMaterial.naquadahBasedFuelMkV.getFluidOrGas(500), - 100000000, - 200, - 2 - ); - } -} diff --git a/src/main/java/GoodGenerator/Loader/FuelRodLoader.java b/src/main/java/GoodGenerator/Loader/FuelRodLoader.java deleted file mode 100644 index 7badc5e8fa..0000000000 --- a/src/main/java/GoodGenerator/Loader/FuelRodLoader.java +++ /dev/null @@ -1,56 +0,0 @@ -package GoodGenerator.Loader; - -import GoodGenerator.Items.FuelRod; -import GoodGenerator.Items.RadioactiveItem; -import GoodGenerator.Main.GoodGenerator; -import cpw.mods.fml.common.registry.GameRegistry; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; - -import static GoodGenerator.util.DescTextLocalization.addText; - -public class FuelRodLoader { - - public static Item rodCompressedUraniumDepleted; - public static Item rodCompressedUraniumDepleted_2; - public static Item rodCompressedUraniumDepleted_4; - public static Item rodCompressedPlutoniumDepleted; - public static Item rodCompressedPlutoniumDepleted_2; - public static Item rodCompressedPlutoniumDepleted_4; - public static Item rodCompressedUranium; - public static Item rodCompressedUranium_2; - public static Item rodCompressedUranium_4; - public static Item rodCompressedPlutonium; - public static Item rodCompressedPlutonium_2; - public static Item rodCompressedPlutonium_4; - - public static void RegisterRod() { - rodCompressedUraniumDepleted = new RadioactiveItem("rodCompressedUraniumDepleted", addText("depletedfuelrod.tooltip", 1), GoodGenerator.GG, 100); - rodCompressedUraniumDepleted_2 = new RadioactiveItem("rodCompressedUraniumDepleted2", addText("depletedfuelrod.tooltip", 1), GoodGenerator.GG, 200); - rodCompressedUraniumDepleted_4 = new RadioactiveItem("rodCompressedUraniumDepleted4", addText("depletedfuelrod.tooltip", 1), GoodGenerator.GG, 400); - rodCompressedPlutoniumDepleted = new RadioactiveItem("rodCompressedPlutoniumDepleted", addText("depletedfuelrod.tooltip", 1), GoodGenerator.GG, 120); - rodCompressedPlutoniumDepleted_2 = new RadioactiveItem("rodCompressedPlutoniumDepleted2", addText("depletedfuelrod.tooltip", 1), GoodGenerator.GG, 240); - rodCompressedPlutoniumDepleted_4 = new RadioactiveItem("rodCompressedPlutoniumDepleted4", addText("depletedfuelrod.tooltip", 1), GoodGenerator.GG, 480); - - GameRegistry.registerItem(rodCompressedUraniumDepleted, "rodCompressedUraniumDepleted", GoodGenerator.MOD_ID); - GameRegistry.registerItem(rodCompressedUraniumDepleted_2, "rodCompressedUraniumDepleted2", GoodGenerator.MOD_ID); - GameRegistry.registerItem(rodCompressedUraniumDepleted_4, "rodCompressedUraniumDepleted4", GoodGenerator.MOD_ID); - GameRegistry.registerItem(rodCompressedPlutoniumDepleted, "rodCompressedPlutoniumDepleted", GoodGenerator.MOD_ID); - GameRegistry.registerItem(rodCompressedPlutoniumDepleted_2, "rodCompressedPlutoniumDepleted2", GoodGenerator.MOD_ID); - GameRegistry.registerItem(rodCompressedPlutoniumDepleted_4, "rodCompressedPlutoniumDepleted4", GoodGenerator.MOD_ID); - - rodCompressedUranium = new FuelRod("rodCompressedUranium", 1, 100, 4, 800, 70000, new ItemStack(rodCompressedUraniumDepleted, 1), GoodGenerator.GG); - rodCompressedUranium_2 = new FuelRod("rodCompressedUranium2", 2, 100, 4, 1600, 70000, new ItemStack(rodCompressedUraniumDepleted_2, 1), GoodGenerator.GG); - rodCompressedUranium_4 = new FuelRod("rodCompressedUranium4", 4, 100, 4, 3200, 70000, new ItemStack(rodCompressedUraniumDepleted_4, 1), GoodGenerator.GG); - rodCompressedPlutonium = new FuelRod("rodCompressedPlutonium", 1, 50, 4, 1000, 30000, 6, new ItemStack(rodCompressedPlutoniumDepleted, 1), GoodGenerator.GG); - rodCompressedPlutonium_2 = new FuelRod("rodCompressedPlutonium2", 2, 50, 4, 2000, 30000, 6, new ItemStack(rodCompressedPlutoniumDepleted_2, 1), GoodGenerator.GG); - rodCompressedPlutonium_4 = new FuelRod("rodCompressedPlutonium4", 4, 50, 4, 4000, 30000, 6, new ItemStack(rodCompressedPlutoniumDepleted_4, 1), GoodGenerator.GG); - - GameRegistry.registerItem(rodCompressedUranium, "rodCompressedUranium", GoodGenerator.MOD_ID); - GameRegistry.registerItem(rodCompressedUranium_2, "rodCompressedUranium2", GoodGenerator.MOD_ID); - GameRegistry.registerItem(rodCompressedUranium_4, "rodCompressedUranium4", GoodGenerator.MOD_ID); - GameRegistry.registerItem(rodCompressedPlutonium, "rodCompressedPlutonium", GoodGenerator.MOD_ID); - GameRegistry.registerItem(rodCompressedPlutonium_2, "rodCompressedPlutonium2", GoodGenerator.MOD_ID); - GameRegistry.registerItem(rodCompressedPlutonium_4, "rodCompressedPlutonium4", GoodGenerator.MOD_ID); - } -} diff --git a/src/main/java/GoodGenerator/Loader/Loaders.java b/src/main/java/GoodGenerator/Loader/Loaders.java deleted file mode 100644 index b25846117b..0000000000 --- a/src/main/java/GoodGenerator/Loader/Loaders.java +++ /dev/null @@ -1,212 +0,0 @@ -package GoodGenerator.Loader; - -import GoodGenerator.Blocks.MyFluids.FluidsBuilder; -import GoodGenerator.Blocks.RegularBlock.Casing; -import GoodGenerator.Blocks.RegularBlock.ComplexTextureCasing; -import GoodGenerator.Blocks.RegularBlock.Frame; -import GoodGenerator.Blocks.RegularBlock.TEBlock; -import GoodGenerator.Blocks.TEs.*; -import GoodGenerator.Blocks.TEs.MetaTE.NeutronAccelerator; -import GoodGenerator.Blocks.TEs.MetaTE.NeutronSensor; -import GoodGenerator.CrossMod.NEI.IMCForNEI; -import GoodGenerator.CrossMod.NEI.NEI_Config; -import GoodGenerator.CrossMod.Thaumcraft.LargeEssentiaEnergyData; -import GoodGenerator.Items.MyItemBlocks; -import GoodGenerator.Items.MyItems; -import GoodGenerator.Items.RadioactiveItem; -import GoodGenerator.Main.GoodGenerator; -import cpw.mods.fml.common.Loader; -import cpw.mods.fml.common.registry.GameRegistry; -import gregtech.api.enums.GT_Values; -import gregtech.api.enums.Textures; -import gregtech.api.interfaces.ITexture; -import gregtech.api.render.TextureFactory; -import net.minecraft.block.Block; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraftforge.oredict.OreDictionary; - -import static GoodGenerator.util.DescTextLocalization.addText; - -public class Loaders { - - public static final int IDOffset = 32001; - public static final byte GoodGeneratorTexturePage = 12; - - public static final Item _null_ = new MyItems("_null_", null); - - public static final Item radiationProtectionPlate = new MyItems("radiationProtectionPlate", GoodGenerator.GG); - public static final Item wrappedUraniumIngot = new MyItems("wrappedUraniumIngot", GoodGenerator.GG); - public static final Item highDensityUraniumNugget = new RadioactiveItem("highDensityUraniumNugget", GoodGenerator.GG, 200); - public static final Item highDensityUranium = new RadioactiveItem("highDensityUranium", GoodGenerator.GG, 1800); - public static final Item wrappedThoriumIngot = new MyItems("wrappedThoriumIngot", GoodGenerator.GG); - public static final Item highDensityThoriumNugget = new RadioactiveItem("highDensityThoriumNugget", GoodGenerator.GG, 50); - public static final Item highDensityThorium = new RadioactiveItem("highDensityThorium", GoodGenerator.GG, 450); - public static final Item wrappedPlutoniumIngot = new MyItems("wrappedPlutoniumIngot", GoodGenerator.GG); - public static final Item highDensityPlutoniumNugget = new RadioactiveItem("highDensityPlutoniumNugget", GoodGenerator.GG, 450); - public static final Item highDensityPlutonium = new RadioactiveItem("highDensityPlutonium", GoodGenerator.GG, 4050); - public static final Item rawAtomicSeparationCatalyst = new MyItems("rawAtomicSeparationCatalyst", GoodGenerator.GG); - public static final Item advancedRadiationProtectionPlate = new MyItems("advancedRadiationProtectionPlate", GoodGenerator.GG); - public static final Item aluminumNitride = new MyItems("aluminumNitride", "AlN", GoodGenerator.GG); - public static final Item specialCeramics = new MyItems("specialCeramics", GoodGenerator.GG); - public static final Item specialCeramicsPlate = new MyItems("specialCeramicsPlate", GoodGenerator.GG); - public static final Item radioactiveWaste = new RadioactiveItem("radioactiveWaste", GoodGenerator.GG, 400); - public static final Item plasticCase = new MyItems("plasticCase", GoodGenerator.GG); - public static final Item quartzWafer = new MyItems("quartzWafer", GoodGenerator.GG); - public static final Item microHeater = new MyItems("microHeater", GoodGenerator.GG); - public static final Item quartzCrystalResonator = new MyItems("quartzCrystalResonator", GoodGenerator.GG); - public static final Item inverter = new MyItems("inverter", addText("inverter.tooltip", 1), GoodGenerator.GG); - public static final Item neutronSource = new MyItems("neutronSource", GoodGenerator.GG); - public static final Item naquadahMass = new MyItems("naquadahMass", addText("naquadahMass.tooltip", 1), GoodGenerator.GG); - public static final Item enrichedNaquadahMass = new MyItems("enrichedNaquadahMass", addText("enrichedNaquadahMass.tooltip", 1), GoodGenerator.GG); - public static final Item naquadriaMass = new MyItems("naquadriaMass", addText("naquadriaMass.tooltip", 1), GoodGenerator.GG); - public static final Item advancedFuelRod = new MyItems("advancedFuelRod", GoodGenerator.GG); - public static final Item fluidCore = new MyItems("fluidCore", GoodGenerator.GG, new String[]{GoodGenerator.MOD_ID+":fluidCore/1", GoodGenerator.MOD_ID+":fluidCore/2", GoodGenerator.MOD_ID+":fluidCore/3", GoodGenerator.MOD_ID+":fluidCore/4", GoodGenerator.MOD_ID+":fluidCore/5", GoodGenerator.MOD_ID+":fluidCore/6"}); - public static final Item upgradeEssentia = new MyItems("upgradeEssentia", GoodGenerator.GG, new String[]{GoodGenerator.MOD_ID+":upgradeEssentia/null", GoodGenerator.MOD_ID+":upgradeEssentia/air", GoodGenerator.MOD_ID+":upgradeEssentia/thermal", GoodGenerator.MOD_ID+":upgradeEssentia/unstable", GoodGenerator.MOD_ID+":upgradeEssentia/victus", GoodGenerator.MOD_ID+":upgradeEssentia/tainted", GoodGenerator.MOD_ID+":upgradeEssentia/mechanics", GoodGenerator.MOD_ID+":upgradeEssentia/spirit", GoodGenerator.MOD_ID+":upgradeEssentia/radiation", GoodGenerator.MOD_ID+":upgradeEssentia/electric"}); - - public static final Block MAR_Casing = new Casing("MAR_Casing", new String[]{GoodGenerator.MOD_ID+":MAR_Casing"}); - public static final Block FRF_Casings = new Casing("FRF_Casing", new String[]{"gregtech:iconsets/MACHINE_CASING_MINING_BLACKPLUTONIUM"}); - public static final Block FRF_Coil_1 = new Casing("FRF_Coil_1", new String[]{GoodGenerator.MOD_ID+":FRF_Coils/1"}); - public static final Block FRF_Coil_2 = new Casing("FRF_Coil_2", new String[]{GoodGenerator.MOD_ID+":FRF_Coils/2"}); - public static final Block FRF_Coil_3 = new Casing("FRF_Coil_3", new String[]{GoodGenerator.MOD_ID+":FRF_Coils/3"}); - public static final Block radiationProtectionSteelFrame = new Frame("radiationProtectionSteelFrame", new String[]{GoodGenerator.MOD_ID+":radiationProtectionSteelFrame"}); - public static final Block fieldRestrictingGlass = new Frame("fieldRestrictingGlass", new String[]{GoodGenerator.MOD_ID+":fieldRestrictingGlass"}); - public static final Block rawCylinder = new Casing("rawCylinder", new String[]{GoodGenerator.MOD_ID+":rawCylinder"}); - public static final Block titaniumPlatedCylinder = new Casing("titaniumPlatedCylinder", new String[]{GoodGenerator.MOD_ID+":titaniumPlatedCylinder"}); - public static final Block magicCasing = new Casing("magicCasing", new String[]{GoodGenerator.MOD_ID+":MagicCasing"}); - public static final Block essentiaCell = new Casing("essentiaCell", new String[]{GoodGenerator.MOD_ID+":essentiaCell/1",GoodGenerator.MOD_ID+":essentiaCell/2",GoodGenerator.MOD_ID+":essentiaCell/3",GoodGenerator.MOD_ID+":essentiaCell/4"}); - public static final Block speedingPipe = new ComplexTextureCasing("speedingPipe", new String[]{GoodGenerator.MOD_ID+":speedingPipe_SIDE"}, new String[]{GoodGenerator.MOD_ID+":speedingPipe_TOP"}); - public static final Block yottaFluidTankCell = new Casing("yottaFluidTankCell", new String[]{GoodGenerator.MOD_ID+":yottaFluidTankCell/1", GoodGenerator.MOD_ID+":yottaFluidTankCell/2", GoodGenerator.MOD_ID+":yottaFluidTankCell/3", GoodGenerator.MOD_ID+":yottaFluidTankCell/4", GoodGenerator.MOD_ID+":yottaFluidTankCell/5", - GoodGenerator.MOD_ID+":yottaFluidTankCell/6", GoodGenerator.MOD_ID+":yottaFluidTankCell/7", GoodGenerator.MOD_ID+":yottaFluidTankCell/8", GoodGenerator.MOD_ID+":yottaFluidTankCell/9", GoodGenerator.MOD_ID+":yottaFluidTankCell/10",}); - public static final Block yottaFluidTankCasing = new ComplexTextureCasing("yottaFluidTankCasing", new String[]{GoodGenerator.MOD_ID+":yottaFluidTankCasing_SIDE"}, new String[]{GoodGenerator.MOD_ID+":yottaFluidTankCasing_TOP"}); - - public static Block essentiaHatch; - - public static ItemStack MAR; - public static ItemStack FRF; - public static ItemStack UCFE; - public static ItemStack LEG; - public static ItemStack NS; - public static ItemStack NA; - public static ItemStack YFT; - - public static ItemStack[] NeutronAccelerators = new ItemStack[9]; - - public static void GTMetaTileRegister(){ - Loaders.MAR = new MultiNqGenerator(12732, "NaG", "Large Naquadah Reactor").getStackForm(1L); - Loaders.FRF = new FuelRefineFactory(16999, "FRF", "Naquadah Fuel Refinery").getStackForm(1L); - Loaders.UCFE = new UniversalChemicalFuelEngine(IDOffset, "UniversalChemicalFuelEngine", "Universal Chemical Fuel Engine").getStackForm(1L); - for (int i = 0; i < 9; i ++) { - Loaders.NeutronAccelerators[i] = new NeutronAccelerator(IDOffset + 2 + i, "Neutron Accelerator " + GT_Values.VN[i], "Neutron Accelerator " + GT_Values.VN[i], i).getStackForm(1L); - } - Loaders.NS = new NeutronSensor(IDOffset + 11, "Neutron Sensor", "Neutron Sensor", 5).getStackForm(1L); - Loaders.NA = new NeutronActivator(IDOffset + 12, "NeutronActivator", "Neutron Activator").getStackForm(1L); - Loaders.YFT = new YottaFluidTank(IDOffset + 13, "YottaFluidTank", "YOTTank").getStackForm(1L); - } - - public static void Register() { - - GameRegistry.registerItem(_null_, "_null_", GoodGenerator.MOD_ID); - NEI_Config.hide(_null_); - - GameRegistry.registerBlock(MAR_Casing, MyItemBlocks.class, "MAR_Casing"); - GameRegistry.registerBlock(radiationProtectionSteelFrame, MyItemBlocks.class, "radiationProtectionSteelFrame"); - GameRegistry.registerBlock(fieldRestrictingGlass, MyItemBlocks.class, "fieldRestrictingGlass"); - GameRegistry.registerBlock(FRF_Casings, MyItemBlocks.class, "FRF_Casings"); - GameRegistry.registerBlock(FRF_Coil_1, MyItemBlocks.class, "FRF_Coil_1"); - GameRegistry.registerBlock(FRF_Coil_2, MyItemBlocks.class, "FRF_Coil_2"); - GameRegistry.registerBlock(FRF_Coil_3, MyItemBlocks.class, "FRF_Coil_3"); - GameRegistry.registerBlock(rawCylinder, MyItemBlocks.class, "rawCylinder"); - GameRegistry.registerBlock(titaniumPlatedCylinder, MyItemBlocks.class, "titaniumPlatedCylinder"); - GameRegistry.registerBlock(speedingPipe, MyItemBlocks.class, "speedingPipe"); - GameRegistry.registerBlock(yottaFluidTankCell, MyItemBlocks.class, "yottaFluidTankCells"); - GameRegistry.registerBlock(yottaFluidTankCasing, MyItemBlocks.class, "yottaFluidTankCasing"); - GameRegistry.registerItem(radiationProtectionPlate, "radiationProtectionPlate", GoodGenerator.MOD_ID); - GameRegistry.registerItem(wrappedUraniumIngot, "wrappedUraniumIngot", GoodGenerator.MOD_ID); - GameRegistry.registerItem(highDensityUraniumNugget, "highDensityUraniumNugget", GoodGenerator.MOD_ID); - GameRegistry.registerItem(highDensityUranium, "highDensityUranium", GoodGenerator.MOD_ID); - GameRegistry.registerItem(wrappedThoriumIngot, "wrappedThoriumIngot", GoodGenerator.MOD_ID); - GameRegistry.registerItem(highDensityThoriumNugget, "highDensityThoriumNugget", GoodGenerator.MOD_ID); - GameRegistry.registerItem(highDensityThorium, "highDensityThorium", GoodGenerator.MOD_ID); - GameRegistry.registerItem(wrappedPlutoniumIngot, "wrappedPlutoniumIngot", GoodGenerator.MOD_ID); - GameRegistry.registerItem(highDensityPlutoniumNugget, "highDensityPlutoniumNugget", GoodGenerator.MOD_ID); - GameRegistry.registerItem(highDensityPlutonium, "highDensityPlutonium", GoodGenerator.MOD_ID); - GameRegistry.registerItem(rawAtomicSeparationCatalyst, "rawAtomicSeparationCatalyst", GoodGenerator.MOD_ID); - GameRegistry.registerItem(advancedRadiationProtectionPlate, "advancedRadiationProtectionPlate", GoodGenerator.MOD_ID); - GameRegistry.registerItem(aluminumNitride, "aluminumNitride", GoodGenerator.MOD_ID); - GameRegistry.registerItem(specialCeramics, "specialCeramics", GoodGenerator.MOD_ID); - GameRegistry.registerItem(specialCeramicsPlate, "specialCeramicsPlate", GoodGenerator.MOD_ID); - GameRegistry.registerItem(radioactiveWaste, "radioactiveWaste", GoodGenerator.MOD_ID); - GameRegistry.registerItem(plasticCase, "plasticCase", GoodGenerator.MOD_ID); - GameRegistry.registerItem(quartzWafer, "quartzWafer", GoodGenerator.MOD_ID); - GameRegistry.registerItem(microHeater, "microHeater", GoodGenerator.MOD_ID); - GameRegistry.registerItem(quartzCrystalResonator, "quartzCrystalResonator", GoodGenerator.MOD_ID); - GameRegistry.registerItem(inverter, "inverter", GoodGenerator.MOD_ID); - GameRegistry.registerItem(neutronSource, "neutronSource", GoodGenerator.MOD_ID); - GameRegistry.registerItem(naquadahMass, "naquadahMass", GoodGenerator.MOD_ID); - GameRegistry.registerItem(enrichedNaquadahMass, "enrichedNaquadahMass", GoodGenerator.MOD_ID); - GameRegistry.registerItem(naquadriaMass, "naquadriaMass", GoodGenerator.MOD_ID); - GameRegistry.registerItem(advancedFuelRod, "advancedFuelRod", GoodGenerator.MOD_ID); - GameRegistry.registerItem(fluidCore, "fluidCore", GoodGenerator.MOD_ID); - } - - public static void compactMod() { - if (Loader.isModLoaded("Thaumcraft")) { - LargeEssentiaEnergyData.processEssentiaData(); - GameRegistry.registerItem(upgradeEssentia, "upgradeEssentia", GoodGenerator.MOD_ID); - GameRegistry.registerTileEntity(EssentiaHatch.class, "EssentiaHatch"); - Loaders.LEG = new LargeEssentiaGenerator(IDOffset + 1, "LargeEssentiaGenerator", "Large Essentia Generator").getStackForm(1L); - essentiaHatch = new TEBlock("essentiaHatch", new String[]{GoodGenerator.MOD_ID + ":essentiaHatch"}, 1); - GameRegistry.registerBlock(magicCasing, MyItemBlocks.class, "magicCasing"); - GameRegistry.registerBlock(essentiaCell, MyItemBlocks.class, "essentiaCell"); - GameRegistry.registerBlock(essentiaHatch, MyItemBlocks.class, "essentiaHatch"); - } - } - - public static void addOreDic(){ - OreDictionary.registerOre("blockGlass", fieldRestrictingGlass); - OreDictionary.registerOre("blockGlassZPM", fieldRestrictingGlass); - OreDictionary.registerOre("dustAluminumNitride", aluminumNitride); - } - - public static void addTexturePage(){ - if (Textures.BlockIcons.casingTexturePages[GoodGeneratorTexturePage] == null){ - Textures.BlockIcons.casingTexturePages[GoodGeneratorTexturePage] = new ITexture[128]; - Textures.BlockIcons.casingTexturePages[GoodGeneratorTexturePage][0] = TextureFactory.of(magicCasing); - Textures.BlockIcons.casingTexturePages[GoodGeneratorTexturePage][1] = TextureFactory.of(yottaFluidTankCasing); - } - } - - public static void preInitLoad(){ - Register(); - addOreDic(); - addTexturePage(); - compactMod(); - FluidsBuilder.Register(); - FuelRodLoader.RegisterRod(); - } - - public static void initLoad(){ - GTMetaTileRegister(); - initLoadRecipes(); - IMCForNEI.IMCSender(); - } - - public static void postInitLoad(){ - postInitLoadRecipes(); - } - - public static void initLoadRecipes(){ - RecipeLoader.InitLoadRecipe(); - RecipeLoader_02.InitLoadRecipe(); - FuelRecipeLoader.RegisterFuel(); - NaquadahReworkRecipeLoader.RecipeLoad(); - } - - public static void postInitLoadRecipes(){ - RecipeLoader.RecipeLoad(); - RecipeLoader.Fixer(); - RecipeLoader_02.RecipeLoad(); - NeutronActivatorLoader.NARecipeLoad(); - } -} diff --git a/src/main/java/GoodGenerator/Loader/NaquadahReworkRecipeLoader.java b/src/main/java/GoodGenerator/Loader/NaquadahReworkRecipeLoader.java deleted file mode 100644 index 4d37156adf..0000000000 --- a/src/main/java/GoodGenerator/Loader/NaquadahReworkRecipeLoader.java +++ /dev/null @@ -1,1125 +0,0 @@ -package GoodGenerator.Loader; - -import GoodGenerator.Main.GoodGenerator; -import GoodGenerator.util.ItemRefer; -import GoodGenerator.util.MyRecipeAdder; -import com.github.bartimaeusnek.bartworks.system.material.GT_Enhancement.PlatinumSludgeOverHaul; -import com.github.bartimaeusnek.bartworks.system.material.WerkstoffLoader; -import cpw.mods.fml.common.Loader; -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.*; -import gregtech.common.items.CombType; -import gregtech.loaders.misc.GT_Bees; -import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_MultisUsingFluidInsteadOfCells; -import net.minecraft.item.ItemStack; -import net.minecraft.item.crafting.CraftingManager; -import net.minecraft.item.crafting.IRecipe; -import net.minecraft.item.crafting.ShapedRecipes; -import net.minecraft.item.crafting.ShapelessRecipes; -import net.minecraftforge.fluids.FluidRegistry; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.oredict.OreDictionary; -import net.minecraftforge.oredict.ShapedOreRecipe; -import net.minecraftforge.oredict.ShapelessOreRecipe; -import org.apache.commons.lang3.reflect.FieldUtils; - -import java.lang.reflect.*; -import java.util.HashSet; - -import static GoodGenerator.Items.MyMaterial.*; -import static GoodGenerator.Main.GG_Config_Loader.EnableNaquadahRework; -import static gregtech.common.items.GT_MetaGenerated_Item_01.registerCauldronCleaningFor; - -public class NaquadahReworkRecipeLoader { - - public static void RecipeLoad(){ - - if (!EnableNaquadahRework) return; - - //Naquadah Rework Line - GT_Values.RA.addBlastRecipe( - naquadahEarth.get(OrePrefixes.dust, 2), - GT_Utility.getIntegratedCircuit(1), - fluoroantimonicAcid.getFluidOrGas(3000), - lowQualityNaquadahEmulsion.getFluidOrGas(2000), - titaniumTrifluoride.get(OrePrefixes.dust, 1), - null, - 100, - 480, - 3000 - ); - - GT_Values.RA.addBlastRecipe( - titaniumTrifluoride.get(OrePrefixes.dust, 1), - GT_Utility.getIntegratedCircuit(1), - Materials.Hydrogen.getGas(3000), - Materials.HydrofluoricAcid.getFluid(3000), - GT_OreDictUnificator.get(OrePrefixes.ingotHot, Materials.Titanium, 1), - null, - 120, - 1920, - 2000 - ); - - GT_Values.RA.addMultiblockChemicalRecipe( - new ItemStack[]{ - GT_Utility.copyAmount(0, GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Copper, 1)) - }, - new FluidStack[]{ - Materials.Hydrogen.getGas(8000), - FluidRegistry.getFluidStack("seedoil", 3000) - }, - new FluidStack[]{ - towEthyl1Hexanol.getFluidOrGas(1000) - }, - null, - 400, - 480 - ); - - GT_Values.RA.addMultiblockChemicalRecipe( - new ItemStack[]{ - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sodium, 16) - }, - new FluidStack[]{ - towEthyl1Hexanol.getFluidOrGas(2000), - Materials.PhosphoricAcid.getFluid(1000), - Materials.Ethanol.getFluid(4000) - }, - new FluidStack[]{ - P507.getFluidOrGas(1000) - }, - null, - 1200, - 1920 - ); - - GT_Values.RA.addMultiblockChemicalRecipe( - null, - new FluidStack[]{ - P507.getFluidOrGas(4000), - lowQualityNaquadahSolution.getFluidOrGas(36000), - }, - new FluidStack[]{ - fluorineRichWasteLiquid.getFluidOrGas(6000), - naquadahAdamantiumSolution.getFluidOrGas(30000) - }, - null, - 4000, - 1920 - ); - - GT_Values.RA.addMultiblockChemicalRecipe( - new ItemStack[]{ - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Quicklime, 60), - }, - new FluidStack[]{ - fluorineRichWasteLiquid.getFluidOrGas(1500) - }, - new FluidStack[]{ - wasteLiquid.getFluidOrGas(1000) - }, - new ItemStack[]{ - WerkstoffLoader.Fluorspar.get(OrePrefixes.dust, 60) - }, - 1000, - 120 - ); - - GT_Values.RA.addUniversalDistillationRecipe( - wasteLiquid.getFluidOrGas(10000), - new FluidStack[]{ - Materials.SaltWater.getFluid(3000), - FluidRegistry.getFluidStack("phenol", 2000), - Materials.HydrochloricAcid.getFluid(5000) - }, - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Chrome, 3), - 300, - 480 - ); - - MyRecipeAdder.instance.addNeutronActivatorRecipe( - new FluidStack[]{ - naquadahAdamantiumSolution.getFluidOrGas(3000) - }, - null, - new FluidStack[]{ - naquadahRichSolution.getFluidOrGas(2000) - }, - new ItemStack[]{ - adamantine.get(OrePrefixes.dust, 4), - naquadahEarth.get(OrePrefixes.dust, 2), - concentratedEnrichedNaquadahSludge.get(OrePrefixes.dust, 1) - }, - 100, - 230, - 200 - ); - - GT_Values.RA.addAutoclaveRecipe( - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SodiumHydroxide, 27), - null, - naquadahRichSolution.getFluidOrGas(5000), - P507.getFluidOrGas(1000), - naquadahine.get(OrePrefixes.dust, 10), - 10000, - 1000, - 120, - false - ); - - GT_Values.RA.addBlastRecipe( - naquadahine.get(OrePrefixes.dust, 1), - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Carbon, 1), - null, - Materials.CarbonDioxide.getGas(1000), - GT_OreDictUnificator.get(OrePrefixes.ingotHot, Materials.Naquadah, 1), - null, - 20, - 7680, - 5000 - ); - - GT_Values.RA.addCentrifugeRecipe( - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SodiumHydroxide, 27), - GT_Utility.getIntegratedCircuit(1), - lowQualityNaquadahEmulsion.getFluidOrGas(10000), - lowQualityNaquadahSolution.getFluidOrGas(9000), - galliumHydroxide.get(OrePrefixes.dust, 16), - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.AntimonyTrioxide, 10), - null,null,null, null, - new int[]{6250, 10000}, - 1000, - 1920 - ); - - GT_Values.RA.addMultiblockChemicalRecipe( - new ItemStack[]{ - enrichedNaquadahEarth.get(OrePrefixes.dust, 4), - }, - new FluidStack[]{ - P507.getFluidOrGas(1000), - Materials.SulfuricAcid.getFluid(32000) - }, - new FluidStack[]{ - enrichedNaquadahRichSolution.getFluidOrGas(4000), - wasteLiquid.getFluidOrGas(1000) - }, - new ItemStack[]{ - naquadahEarth.get(OrePrefixes.dust, 1), - triniumSulphate.get(OrePrefixes.dust, 1) - }, - 400, - 1920 - ); - - GT_Values.RA.addAutoclaveRecipe( - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SodiumHydroxide, 27), - null, - enrichedNaquadahRichSolution.getFluidOrGas(10000), - P507.getFluidOrGas(2500), - concentratedEnrichedNaquadahSludge.get(OrePrefixes.dust, 8), - 10000, - 1000, - 480, - false - ); - - MyRecipeAdder.instance.addNeutronActivatorRecipe( - null, - new ItemStack[]{ - concentratedEnrichedNaquadahSludge.get(OrePrefixes.dust, 16), - }, - null, - new ItemStack[]{ - enrichedNaquadahSulphate.get(OrePrefixes.dust, 15), - WerkstoffLoader.Sodiumsulfate.get(OrePrefixes.dust, 20), - lowQualityNaquadriaSulphate.get(OrePrefixes.dust, 2) - }, - 120, - 480, - 460 - ); - - GT_Values.RA.addBlastRecipe( - enrichedNaquadahSulphate.get(OrePrefixes.dust, 1), - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Zinc, 2), - null, - null, - GT_OreDictUnificator.get(OrePrefixes.ingotHot, Materials.NaquadahEnriched, 1), - WerkstoffLoader.ZincSulfate.get(OrePrefixes.dust, 2), - 100, - 7680, - 7500 - ); - - GT_Values.RA.addMultiblockChemicalRecipe( - new ItemStack[]{ - triniumSulphate.get(OrePrefixes.dust, 1), - }, - new FluidStack[]{ - Materials.Hydrogen.getGas(1000) - }, - new FluidStack[]{ - Materials.SulfuricAcid.getFluid(1000) - }, - new ItemStack[]{ - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Trinium, 1), - }, - 120, - 480 - ); - - GT_Values.RA.addCentrifugeRecipe( - naquadriaEarth.get(OrePrefixes.dust, 4), - null, - Materials.PhosphoricAcid.getFluid(4000), - null, - indiumPhosphate.get(OrePrefixes.dust, 1), - lowQualityNaquadriaPhosphate.get(OrePrefixes.dust, 4), - null, null, null, null, - new int[]{2000, 10000}, - 400, - 7680 - ); - - GT_Values.RA.addChemicalRecipe( - galliumHydroxide.get(OrePrefixes.dust, 1), - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sodium, 1), - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Gallium, 1), - 40, - 30 - ); - - GT_Values.RA.addChemicalRecipe( - indiumPhosphate.get(OrePrefixes.dust, 1), - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcium, 1), - null, null, - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Indium, 1), - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.TricalciumPhosphate, 1), - 20, - 30 - ); - - GT_Values.RA.addMultiblockChemicalRecipe( - new ItemStack[]{ - lowQualityNaquadriaPhosphate.get(OrePrefixes.dust, 10), - }, - new FluidStack[]{ - Materials.SulfuricAcid.getFluid(30000) - }, - new FluidStack[]{ - naquadriaRichSolution.getFluidOrGas(9000) - }, - new ItemStack[]{ - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Barite, 1), - }, - 1000, - 7680 - ); - - MyRecipeAdder.instance.addNeutronActivatorRecipe( - new FluidStack[]{ - naquadriaRichSolution.getFluidOrGas(9000) - }, - null, - null, - new ItemStack[]{ - naquadriaSulphate.get(OrePrefixes.dust, 4), - lowQualityNaquadriaSulphate.get(OrePrefixes.dust, 6) - }, - 100, - 1100, - 1050 - ); - - GT_Values.RA.addMultiblockChemicalRecipe( - new ItemStack[]{ - lowQualityNaquadriaSulphate.get(OrePrefixes.dust, 3), - }, - new FluidStack[]{ - Materials.Water.getFluid(3000), - P507.getFluidOrGas(500) - }, - new FluidStack[]{ - lowQualityNaquadriaSolution.getFluidOrGas(3500) - }, - null, - 500, - 1920 - ); - - GT_Values.RA.addUniversalDistillationRecipe( - lowQualityNaquadriaSolution.getFluidOrGas(7000), - new FluidStack[]{ - P507.getFluidOrGas(1000), - naquadriaRichSolution.getFluidOrGas(5400), - Materials.DilutedSulfuricAcid.getFluid(12000) - }, - enrichedNaquadahEarth.get(OrePrefixes.dust, 2), - 500, - 7680 - ); - - GT_Values.RA.addBlastRecipe( - naquadriaSulphate.get(OrePrefixes.dust, 1), - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Magnesium, 1), - null, - Materials.HydricSulfide.getGas(1000), - GT_OreDictUnificator.get(OrePrefixes.ingotHot, Materials.Naquadria, 1), - null, - 100, - 122880, - 9100 - ); - - GT_Values.RA.addMixerRecipe( - indiumPhosphate.get(OrePrefixes.dust, 1), - galliumHydroxide.get(OrePrefixes.dust, 1), - GT_Utility.getIntegratedCircuit(2), - null, - null, - null, - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.IndiumGalliumPhosphide, 2), - 15, - 7 - ); - - GT_Values.RA.addFluidSolidifierRecipe( - ItemList.Shape_Mold_Ball.get(0), - naquadahGoo.getFluidOrGas(72), - ItemRefer.Naquadah_Mass.get(1), - 100, - 30 - ); - - GT_Values.RA.addFluidSolidifierRecipe( - ItemList.Shape_Mold_Ball.get(0), - enrichedNaquadahGoo.getFluidOrGas(72), - ItemRefer.Enriched_Naquadah_Mass.get(1), - 100, - 30 - ); - - GT_Values.RA.addFluidSolidifierRecipe( - ItemList.Shape_Mold_Ball.get(0), - naquadriaGoo.getFluidOrGas(72), - ItemRefer.Naquadria_Mass.get(1), - 100, - 30 - ); - - GT_Values.RA.addPulveriserRecipe( - ItemRefer.Naquadah_Mass.get(1), - new ItemStack[]{ - naquadahEarth.get(OrePrefixes.dust, 1), - enrichedNaquadahEarth.get(OrePrefixes.dust, 1) - }, - new int[]{10000, 100}, - 100, - 2 - ); - - GT_Values.RA.addPulveriserRecipe( - ItemRefer.Enriched_Naquadah_Mass.get(1), - new ItemStack[]{ - enrichedNaquadahEarth.get(OrePrefixes.dust, 1), - naquadriaEarth.get(OrePrefixes.dust, 1) - }, - new int[]{10000, 100}, - 100, - 2 - ); - - GT_Values.RA.addPulveriserRecipe( - ItemRefer.Naquadria_Mass.get(1), - new ItemStack[]{ - naquadriaEarth.get(OrePrefixes.dust, 1), - naquadriaEarth.get(OrePrefixes.dust, 1) - }, - new int[]{10000, 100}, - 100, - 2 - ); - - GT_Values.RA.addBlastRecipe( - GT_OreDictUnificator.get(OrePrefixes.block, Materials.Silicon, 16), - naquadahine.get(OrePrefixes.dust, 1), - Materials.Argon.getGas(8000), - null, - ItemList.Circuit_Silicon_Ingot3.get(1), - null, - 1000, - 7680, - 4484 - ); - - GT_Values.RA.addChemicalRecipe( - naquadahine.get(OrePrefixes.dust, 1), - Materials.Sodium.getDust(1), - Materials.Naquadah.getDust(1), - 10, - 1920 - ); - - GT_Values.RA.addBlastRecipe( - naquadahEarth.get(OrePrefixes.dust, 2), - GT_Utility.getIntegratedCircuit(2), - Materials.Nitrogen.getGas(1000), - null, - Materials.Naquadah.getNuggets(3), - null, - 2400, - 7680, - 5000 - ); - - GT_Values.RA.addMultiblockChemicalRecipe( - new ItemStack[]{ - GT_Utility.getIntegratedCircuit(24) - }, - new FluidStack[]{ - Materials.Ethylene.getGas(1000), - FluidRegistry.getFluidStack("steam", 2000) - }, - new FluidStack[]{ - Materials.Ethanol.getFluid(1000) - }, - null, - 400, - 480 - ); - - GT_Values.RA.addChemicalRecipeForBasicMachineOnly( - Materials.Ethylene.getCells(1), - GT_Utility.getIntegratedCircuit(24), - FluidRegistry.getFluidStack("steam", 2000), - null, - Materials.Ethanol.getCells(1), - null, - 400, - 480 - ); - - GT_Values.RA.addVacuumFreezerRecipe( - GT_OreDictUnificator.get(OrePrefixes.ingotHot, Materials.Naquadah, 1), - GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Naquadah, 1), - 330, - 7680 - ); - } - - public static void SmallRecipeChange() { - - GT_Recipe tRecipe; - - tRecipe = GT_Recipe.GT_Recipe_Map.sChemicalRecipes.findRecipe( - null, false, 1 << 30, - new FluidStack[]{Materials.SulfuricAcid.getFluid(500)}, - GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Platinum, 16), - ItemList.Empty_Board_Elite.get(2) - ); - if (tRecipe != null) { - GT_Recipe.GT_Recipe_Map.sChemicalRecipes.mRecipeList.remove(tRecipe); - GT_Recipe tRecipe2 = tRecipe.copy(); - tRecipe2.mInputs = new ItemStack[]{GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Naquadah, 8), ItemList.Empty_Board_Elite.get(2)}; - GT_Recipe.GT_Recipe_Map.sChemicalRecipes.mRecipeList.add(tRecipe2); - GT_Recipe.GT_Recipe_Map.sChemicalRecipes.reInit(); - } - - tRecipe = GT_Recipe.GT_Recipe_Map.sMultiblockChemicalRecipes.findRecipe( - null, false, 1 << 30, - new FluidStack[]{Materials.SulfuricAcid.getFluid(500)}, - GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Platinum, 16), - ItemList.Empty_Board_Elite.get(2) - ); - if (tRecipe != null) { - GT_Recipe.GT_Recipe_Map.sMultiblockChemicalRecipes.mRecipeList.remove(tRecipe); - GT_Recipe tRecipe2 = tRecipe.copy(); - tRecipe2.mInputs = new ItemStack[]{GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Naquadah, 8), ItemList.Empty_Board_Elite.get(2)}; - GT_Recipe.GT_Recipe_Map.sMultiblockChemicalRecipes.mRecipeList.add(tRecipe2); - GT_Recipe.GT_Recipe_Map.sMultiblockChemicalRecipes.reInit(); - } - - tRecipe = GT_Recipe.GT_Recipe_Map.sAssemblerRecipes.findRecipe( - null, false, 1 << 30, - new FluidStack[]{Materials.Polybenzimidazole.getMolten(36)}, - GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Polybenzimidazole, 2), - GT_OreDictUnificator.get(OrePrefixes.foil, Materials.HSSS, 1), - GT_Utility.getIntegratedCircuit(1) - ); - if (tRecipe != null) { - GT_Recipe.GT_Recipe_Map.sAssemblerRecipes.mRecipeList.remove(tRecipe); - GT_Recipe tRecipe2 = tRecipe.copy(); - tRecipe2.mInputs = new ItemStack[]{GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Polybenzimidazole, 2), GT_OreDictUnificator.get(OrePrefixes.foil, Materials.NaquadahEnriched, 1)}; - GT_Recipe.GT_Recipe_Map.sAssemblerRecipes.mRecipeList.add(tRecipe2); - GT_Recipe.GT_Recipe_Map.sAssemblerRecipes.reInit(); - } - } - - public static void Remover() { - - if (!EnableNaquadahRework) return; - - GT_Log.out.print(GoodGenerator.MOD_ID + ": Begin to remove pure Naquadah, Enriched Naquadah and Naquadria.\n"); - - HashSet remove = new HashSet<>(5000); - HashSet reAdd = new HashSet<>(5000); - - //For Crusher - for (GT_Recipe recipe : GT_Recipe.GT_Recipe_Map.sMaceratorRecipes.mRecipeList) { - ItemStack input = recipe.mInputs[0]; - if (GT_Utility.isStackValid(input)) { - int[] oreDict = OreDictionary.getOreIDs(input); - for (int oreDictID : oreDict) { - if ((OreDictionary.getOreName(oreDictID).startsWith("ore") || OreDictionary.getOreName(oreDictID).startsWith("crushed")) && OreDictionary.getOreName(oreDictID).contains("Naq")) { - GT_Recipe tRecipe = recipe.copy(); - for (int i = 0; i < tRecipe.mOutputs.length; i ++) { - if (!GT_Utility.isStackValid(tRecipe.mOutputs[i])) continue; - if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadah.getDust(1))) { - tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, naquadahEarth.get(OrePrefixes.dust, 1)); - } else if (tRecipe.mOutputs[i].isItemEqual(Materials.NaquadahEnriched.getDust(1))) { - tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, enrichedNaquadahEarth.get(OrePrefixes.dust, 1)); - } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadria.getDust(1))) { - tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, naquadriaEarth.get(OrePrefixes.dust, 1)); - } - } - if (!tRecipe.equals(recipe)){ - reAdd.add(tRecipe); - remove.add(recipe); - } - break; - } - } - } - } - GT_Recipe.GT_Recipe_Map.sMaceratorRecipes.mRecipeList.removeAll(remove); - GT_Recipe.GT_Recipe_Map.sMaceratorRecipes.mRecipeList.addAll(reAdd); - GT_Recipe.GT_Recipe_Map.sMaceratorRecipes.reInit(); - - GT_Log.out.print(GoodGenerator.MOD_ID + ": Replace " + remove.size() + "! "); - - remove.clear(); - reAdd.clear(); - - GT_Log.out.print("Crusher done!\n"); - - //For Washer - for (GT_Recipe recipe : GT_Recipe.GT_Recipe_Map.sOreWasherRecipes.mRecipeList) { - ItemStack input = recipe.mInputs[0]; - if (GT_Utility.isStackValid(input)) { - int[] oreDict = OreDictionary.getOreIDs(input); - for (int oreDictID : oreDict) { - if (OreDictionary.getOreName(oreDictID).startsWith("crushed") && OreDictionary.getOreName(oreDictID).contains("Naq")) { - GT_Recipe tRecipe = recipe.copy(); - for (int i = 0; i < tRecipe.mOutputs.length; i ++) { - if (!GT_Utility.isStackValid(tRecipe.mOutputs[i])) continue; - if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadah.getDustTiny(1))) { - tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, naquadahEarth.get(OrePrefixes.dustTiny, 1)); - } else if (tRecipe.mOutputs[i].isItemEqual(Materials.NaquadahEnriched.getDustTiny(1))) { - tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, enrichedNaquadahEarth.get(OrePrefixes.dustTiny, 1)); - } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadria.getDustTiny(1))) { - tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, naquadriaEarth.get(OrePrefixes.dustTiny, 1)); - } - } - if (!tRecipe.equals(recipe)){ - reAdd.add(tRecipe); - remove.add(recipe); - } - break; - } - } - } - } - GT_Recipe.GT_Recipe_Map.sOreWasherRecipes.mRecipeList.removeAll(remove); - GT_Recipe.GT_Recipe_Map.sOreWasherRecipes.mRecipeList.addAll(reAdd); - GT_Recipe.GT_Recipe_Map.sOreWasherRecipes.reInit(); - - GT_Log.out.print(GoodGenerator.MOD_ID + ": Replace " + remove.size() + "! "); - - remove.clear(); - reAdd.clear(); - - GT_Log.out.print("Washer done!\n"); - - //For Thermal Centrifuge - for (GT_Recipe recipe : GT_Recipe.GT_Recipe_Map.sThermalCentrifugeRecipes.mRecipeList) { - ItemStack input = recipe.mInputs[0]; - if (GT_Utility.isStackValid(input)) { - int[] oreDict = OreDictionary.getOreIDs(input); - for (int oreDictID : oreDict) { - if (OreDictionary.getOreName(oreDictID).startsWith("crushed") && OreDictionary.getOreName(oreDictID).contains("Naq")) { - GT_Recipe tRecipe = recipe.copy(); - for (int i = 0; i < tRecipe.mOutputs.length; i ++) { - if (!GT_Utility.isStackValid(tRecipe.mOutputs[i])) continue; - if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadah.getDustTiny(1))) { - tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, naquadahEarth.get(OrePrefixes.dustTiny, 1)); - } else if (tRecipe.mOutputs[i].isItemEqual(Materials.NaquadahEnriched.getDustTiny(1))) { - tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, enrichedNaquadahEarth.get(OrePrefixes.dustTiny, 1)); - } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadria.getDustTiny(1))) { - tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, naquadriaEarth.get(OrePrefixes.dustTiny, 1)); - } - } - if (!tRecipe.equals(recipe)){ - reAdd.add(tRecipe); - remove.add(recipe); - } - break; - } - } - } - } - GT_Recipe.GT_Recipe_Map.sThermalCentrifugeRecipes.mRecipeList.removeAll(remove); - GT_Recipe.GT_Recipe_Map.sThermalCentrifugeRecipes.mRecipeList.addAll(reAdd); - GT_Recipe.GT_Recipe_Map.sThermalCentrifugeRecipes.reInit(); - - GT_Log.out.print(GoodGenerator.MOD_ID + ": Replace " + remove.size() + "! "); - - remove.clear(); - reAdd.clear(); - - GT_Log.out.print("Thermal Centrifuge done!\n"); - - //For Centrifuge - for (GT_Recipe recipe : GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes.mRecipeList) { - ItemStack input = null; - if (recipe.mInputs.length > 0) input = recipe.mInputs[0]; - if (GT_Utility.isStackValid(input)) { - int[] oreDict = OreDictionary.getOreIDs(input); - if (input.isItemEqual(GT_Bees.combs.getStackForType(CombType.DOB))){ - GT_Recipe tRecipe = recipe.copy(); - for (int i = 0; i < tRecipe.mOutputs.length; i ++) { - if (!GT_Utility.isStackValid(tRecipe.mOutputs[i])) continue; - if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadah.getDustTiny(1))) { - tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, naquadahEarth.get(OrePrefixes.dustTiny, 1)); - } - } - if (!tRecipe.equals(recipe)){ - reAdd.add(tRecipe); - remove.add(recipe); - } - } - else for (int oreDictID : oreDict) { - if (OreDictionary.getOreName(oreDictID).startsWith("dustPureNaq") || OreDictionary.getOreName(oreDictID).startsWith("dustImpureNaq") || OreDictionary.getOreName(oreDictID).startsWith("dustSpace") || OreDictionary.getOreName(oreDictID).startsWith("dustNaq")) { - GT_Recipe tRecipe = recipe.copy(); - for (int i = 0; i < tRecipe.mOutputs.length; i ++) { - if (!GT_Utility.isStackValid(tRecipe.mOutputs[i])) continue; - if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadah.getDustTiny(1))) { - tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, naquadahEarth.get(OrePrefixes.dustTiny, 1)); - } else if (tRecipe.mOutputs[i].isItemEqual(Materials.NaquadahEnriched.getDustTiny(1))) { - tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, enrichedNaquadahEarth.get(OrePrefixes.dustTiny, 1)); - } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadria.getDustTiny(1))) { - tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, naquadriaEarth.get(OrePrefixes.dustTiny, 1)); - } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadah.getDust(1))) { - tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, naquadahEarth.get(OrePrefixes.dust, 1)); - } else if (tRecipe.mOutputs[i].isItemEqual(Materials.NaquadahEnriched.getDust(1))) { - tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, enrichedNaquadahEarth.get(OrePrefixes.dust, 1)); - } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadria.getDust(1))) { - tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, naquadriaEarth.get(OrePrefixes.dust, 1)); - } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadah.getDustSmall(1))) { - tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, naquadahEarth.get(OrePrefixes.dustSmall, 1)); - } else if (tRecipe.mOutputs[i].isItemEqual(Materials.NaquadahEnriched.getDustSmall(1))) { - tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, enrichedNaquadahEarth.get(OrePrefixes.dustSmall, 1)); - } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadria.getDustSmall(1))) { - tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, naquadriaEarth.get(OrePrefixes.dustSmall, 1)); - } - } - if (!tRecipe.equals(recipe)){ - reAdd.add(tRecipe); - remove.add(recipe); - } - break; - } - } - } - } - GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes.mRecipeList.removeAll(remove); - GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes.mRecipeList.addAll(reAdd); - GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes.reInit(); - - GT_Log.out.print(GoodGenerator.MOD_ID + ": Replace " + remove.size() + "! "); - - remove.clear(); - reAdd.clear(); - - GT_Log.out.print("Centrifuge done!\n"); - - //For Hammer - for (GT_Recipe recipe : GT_Recipe.GT_Recipe_Map.sHammerRecipes.mRecipeList) { - ItemStack input = recipe.mInputs[0]; - if (GT_Utility.isStackValid(input)) { - int[] oreDict = OreDictionary.getOreIDs(input); - for (int oreDictID : oreDict) { - if (OreDictionary.getOreName(oreDictID).startsWith("crushed") && OreDictionary.getOreName(oreDictID).contains("Naq")) { - GT_Recipe tRecipe = recipe.copy(); - for (int i = 0; i < tRecipe.mOutputs.length; i ++) { - if (!GT_Utility.isStackValid(tRecipe.mOutputs[i])) continue; - if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadah.getDust(1))) { - tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, naquadahEarth.get(OrePrefixes.dust, 1)); - } else if (tRecipe.mOutputs[i].isItemEqual(Materials.NaquadahEnriched.getDust(1))) { - tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, enrichedNaquadahEarth.get(OrePrefixes.dust, 1)); - } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadria.getDust(1))) { - tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, naquadriaEarth.get(OrePrefixes.dust, 1)); - } - } - if (!tRecipe.equals(recipe)){ - reAdd.add(tRecipe); - remove.add(recipe); - } - break; - } - } - } - } - GT_Recipe.GT_Recipe_Map.sHammerRecipes.mRecipeList.removeAll(remove); - GT_Recipe.GT_Recipe_Map.sHammerRecipes.mRecipeList.addAll(reAdd); - GT_Recipe.GT_Recipe_Map.sHammerRecipes.reInit(); - - GT_Log.out.print(GoodGenerator.MOD_ID + ": Replace " + remove.size() + "! "); - - remove.clear(); - reAdd.clear(); - - GT_Log.out.print("Hammer done!\n"); - - //For Chemical Reactor - for (GT_Recipe recipe : GT_Recipe.GT_Recipe_Map.sChemicalRecipes.mRecipeList) { - if (recipe.mFluidOutputs == null) continue; - boolean isAny = false; - for (int i = 0; i < recipe.mFluidOutputs.length; i ++) { - if (recipe.mFluidOutputs[i] == null) continue; - if (recipe.mFluidOutputs[i].isFluidEqual(Materials.Naquadah.getMolten(1)) || - recipe.mFluidOutputs[i].isFluidEqual(Materials.NaquadahEnriched.getMolten(1)) || - recipe.mFluidOutputs[i].isFluidEqual(Materials.Naquadria.getMolten(1))) { - isAny = true; - break; - } - } - if (!isAny) continue; - GT_Recipe tRecipe = recipe.copy(); - for (int i = 0; i < recipe.mFluidOutputs.length; i ++) { - if (recipe.mFluidOutputs[i] == null) continue; - if (recipe.mFluidOutputs[i].isFluidEqual(Materials.Naquadah.getMolten(1))) { - tRecipe.mFluidOutputs[i] = naquadahGoo.getFluidOrGas(recipe.mFluidOutputs[i].amount * 2); - } else if (recipe.mFluidOutputs[i].isFluidEqual(Materials.NaquadahEnriched.getMolten(1))) { - tRecipe.mFluidOutputs[i] = enrichedNaquadahGoo.getFluidOrGas(recipe.mFluidOutputs[i].amount * 2); - } else if (recipe.mFluidOutputs[i].isFluidEqual(Materials.Naquadria.getMolten(1))) { - tRecipe.mFluidOutputs[i] = naquadriaGoo.getFluidOrGas(recipe.mFluidOutputs[i].amount * 2); - } - } - if (!tRecipe.equals(recipe)) { - reAdd.add(tRecipe); - remove.add(recipe); - } - } - GT_Recipe.GT_Recipe_Map.sChemicalRecipes.mRecipeList.removeAll(remove); - GT_Recipe.GT_Recipe_Map.sChemicalRecipes.mRecipeList.addAll(reAdd); - GT_Recipe.GT_Recipe_Map.sChemicalRecipes.reInit(); - - GT_Log.out.print(GoodGenerator.MOD_ID + ": Replace " + remove.size() + "! "); - - remove.clear(); - reAdd.clear(); - - GT_Log.out.print("Chemical Reactor done!\n"); - - //For Multi Chemical Reactor - for (GT_Recipe recipe : GT_Recipe.GT_Recipe_Map.sMultiblockChemicalRecipes.mRecipeList) { - if (recipe.mFluidOutputs == null) continue; - boolean isAny = false; - for (int i = 0; i < recipe.mFluidOutputs.length; i ++) { - if (recipe.mFluidOutputs[i] == null) continue; - if (recipe.mFluidOutputs[i].isFluidEqual(Materials.Naquadah.getMolten(1)) || - recipe.mFluidOutputs[i].isFluidEqual(Materials.NaquadahEnriched.getMolten(1)) || - recipe.mFluidOutputs[i].isFluidEqual(Materials.Naquadria.getMolten(1))) { - isAny = true; - break; - } - } - if (!isAny) continue; - GT_Recipe tRecipe = recipe.copy(); - for (int i = 0; i < recipe.mFluidOutputs.length; i ++) { - if (recipe.mFluidOutputs[i] == null) continue; - if (recipe.mFluidOutputs[i].isFluidEqual(Materials.Naquadah.getMolten(1))) { - tRecipe.mFluidOutputs[i] = naquadahGoo.getFluidOrGas(recipe.mFluidOutputs[i].amount * 2); - } else if (recipe.mFluidOutputs[i].isFluidEqual(Materials.NaquadahEnriched.getMolten(1))) { - tRecipe.mFluidOutputs[i] = enrichedNaquadahGoo.getFluidOrGas(recipe.mFluidOutputs[i].amount * 2); - } else if (recipe.mFluidOutputs[i].isFluidEqual(Materials.Naquadria.getMolten(1))) { - tRecipe.mFluidOutputs[i] = naquadriaGoo.getFluidOrGas(recipe.mFluidOutputs[i].amount * 2); - } - } - if (!tRecipe.equals(recipe)) { - reAdd.add(tRecipe); - remove.add(recipe); - } - } - GT_Recipe.GT_Recipe_Map.sMultiblockChemicalRecipes.mRecipeList.removeAll(remove); - GT_Recipe.GT_Recipe_Map.sMultiblockChemicalRecipes.mRecipeList.addAll(reAdd); - GT_Recipe.GT_Recipe_Map.sMultiblockChemicalRecipes.reInit(); - - GT_Log.out.print(GoodGenerator.MOD_ID + ": Replace " + remove.size() + "! "); - - remove.clear(); - reAdd.clear(); - - GT_Log.out.print("Multi Chemical Reactor done!\n"); - - if (Loader.isModLoaded("miscutils")) { - //For Multi Centrifuge - //Blame alk. She made some shit in it, NEI will break down if anyone modify the hash list directly. - GTPP_Recipe.GTPP_Recipe_Map.sMultiblockCentrifugeRecipes_GT.mRecipeList.clear(); - RecipeGen_MultisUsingFluidInsteadOfCells.generateRecipesNotUsingCells(GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes, GTPP_Recipe.GTPP_Recipe_Map.sMultiblockCentrifugeRecipes_GT); - GTPP_Recipe.GTPP_Recipe_Map.sMultiblockCentrifugeRecipes_GT.reInit(); - - //For Simple Washer - for (GT_Recipe recipe : GTPP_Recipe.GTPP_Recipe_Map.sSimpleWasherRecipes.mRecipeList) { - ItemStack input = recipe.mInputs[0]; - if (GT_Utility.isStackValid(input)) { - int[] oreDict = OreDictionary.getOreIDs(input); - for (int oreDictID : oreDict) { - if (OreDictionary.getOreName(oreDictID).startsWith("dustImpureNaq")) { - GT_Recipe tRecipe = recipe.copy(); - for (int i = 0; i < tRecipe.mOutputs.length; i ++) { - if (!GT_Utility.isStackValid(tRecipe.mOutputs[i])) continue; - if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadah.getDust(1))) { - tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize, naquadahEarth.get(OrePrefixes.dust, 1)); - } else if (tRecipe.mOutputs[i].isItemEqual(Materials.NaquadahEnriched.getDust(1))) { - tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize, enrichedNaquadahEarth.get(OrePrefixes.dust, 1)); - } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadria.getDust(1))) { - tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize, naquadriaEarth.get(OrePrefixes.dust, 1)); - } - } - if (!tRecipe.equals(recipe)){ - reAdd.add(tRecipe); - remove.add(recipe); - } - break; - } - } - } - } - GTPP_Recipe.GTPP_Recipe_Map.sSimpleWasherRecipes.mRecipeList.removeAll(remove); - GTPP_Recipe.GTPP_Recipe_Map.sSimpleWasherRecipes.mRecipeList.addAll(reAdd); - GTPP_Recipe.GTPP_Recipe_Map.sSimpleWasherRecipes.reInit(); - - GT_Log.out.print(GoodGenerator.MOD_ID + ": Replace " + remove.size() + "! "); - - remove.clear(); - reAdd.clear(); - - GT_Log.out.print("Simple Washer done!\n"); - } - - //For ByProduct List - for (GT_Recipe recipe : GT_Recipe.GT_Recipe_Map.sByProductList.mRecipeList) { - ItemStack input = recipe.mInputs[0]; - if (GT_Utility.isStackValid(input)) { - int[] oreDict = OreDictionary.getOreIDs(input); - for (int oreDictID : oreDict) { - if (OreDictionary.getOreName(oreDictID).startsWith("ore") && OreDictionary.getOreName(oreDictID).contains("Naq")) { - GT_Recipe tRecipe = recipe.copy(); - for (int i = 0; i < tRecipe.mOutputs.length; i ++) { - if (!GT_Utility.isStackValid(tRecipe.mOutputs[i])) continue; - if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadah.getDust(1))) { - tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize, naquadahEarth.get(OrePrefixes.dust, 1)); - } else if (tRecipe.mOutputs[i].isItemEqual(Materials.NaquadahEnriched.getDust(1))) { - tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize, enrichedNaquadahEarth.get(OrePrefixes.dust, 1)); - } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadria.getDust(1))) { - tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize, naquadriaEarth.get(OrePrefixes.dust, 1)); - } - } - if (!tRecipe.equals(recipe)){ - reAdd.add(tRecipe); - remove.add(recipe); - } - break; - } - } - } - } - GT_Recipe.GT_Recipe_Map.sByProductList.mRecipeList.removeAll(remove); - GT_Recipe.GT_Recipe_Map.sByProductList.mRecipeList.addAll(reAdd); - GT_Recipe.GT_Recipe_Map.sByProductList.reInit(); - - GT_Log.out.print(GoodGenerator.MOD_ID + ": Replace " + remove.size() + "! "); - - remove.clear(); - reAdd.clear(); - - GT_Log.out.print("ByProduct List done!\n"); - - //For Cauldron Wash - registerCauldronCleaningFor(Materials.Naquadah, naquadahEarth.getBridgeMaterial()); - registerCauldronCleaningFor(Materials.NaquadahEnriched, enrichedNaquadahEarth.getBridgeMaterial()); - registerCauldronCleaningFor(Materials.Naquadria, naquadriaEarth.getBridgeMaterial()); - GT_Log.out.print(GoodGenerator.MOD_ID + ": Replace 3! "); - GT_Log.out.print("Cauldron Wash done!\n"); - - //For Crafting Table - CraftingManager.getInstance().getRecipeList().forEach(NaquadahReworkRecipeLoader::replaceInCraftTable); - - GT_Log.out.print(GoodGenerator.MOD_ID + ": Replace Unknown! "); - GT_Log.out.print("Crafting Table done!\n"); - } - - //I don't understand. . . - //I use and copy some private methods in Bartworks because his system runs well. - //Bartworks is under MIT License - /* - * Copyright (c) 2018-2020 bartimaeusnek - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - public static void replaceInCraftTable(Object obj) { - - Constructor cs = null; - PlatinumSludgeOverHaul BartObj = null; - try { - cs = PlatinumSludgeOverHaul.class.getDeclaredConstructor(); - cs.setAccessible(true); - } catch (NoSuchMethodException e) { - e.printStackTrace(); - } - - if (cs == null) return; - - try { - BartObj = (PlatinumSludgeOverHaul)cs.newInstance(); - } catch (IllegalAccessException | InstantiationException | InvocationTargetException e) { - e.printStackTrace(); - } - - Method recipeCheck = null; - - try { - recipeCheck = PlatinumSludgeOverHaul.class.getDeclaredMethod("checkRecipe", Object.class, Materials.class); - recipeCheck.setAccessible(true); - } catch (Exception e) { - e.printStackTrace(); - } - - String inputName = "output"; - String inputItemName = "input"; - if (!(obj instanceof ShapedOreRecipe || obj instanceof ShapelessOreRecipe)){ - if (obj instanceof ShapedRecipes || (obj instanceof ShapelessRecipes)) { - inputName = "recipeOutput"; - inputItemName = "recipeItems"; - } - } - IRecipe recipe = (IRecipe) obj; - ItemStack result = recipe.getRecipeOutput(); - - Field out = FieldUtils.getDeclaredField(recipe.getClass(), inputName, true); - if (out == null) - out = FieldUtils.getField(recipe.getClass(), inputName, true); - - Field in = FieldUtils.getDeclaredField(recipe.getClass(), inputItemName, true); - if (in == null) - in = FieldUtils.getField(recipe.getClass(), inputItemName, true); - if (in == null) - return; - - //this part here is NOT MIT LICENSED BUT LICSENSED UNDER THE Apache License, Version 2.0! - try { - if (Modifier.isFinal(in.getModifiers())) { - // Do all JREs implement Field with a private ivar called "modifiers"? - Field modifiersField = Field.class.getDeclaredField("modifiers"); - boolean doForceAccess = !modifiersField.isAccessible(); - if (doForceAccess) { - modifiersField.setAccessible(true); - } - try { - modifiersField.setInt(in, in.getModifiers() & ~Modifier.FINAL); - } finally { - if (doForceAccess) { - modifiersField.setAccessible(false); - } - } - } - } catch (NoSuchFieldException ignored) { - // The field class contains always a modifiers field - } catch (IllegalAccessException ignored) { - // The modifiers field is made accessible - } - // END OF APACHE COMMONS COLLECTION COPY - - Object input; - try { - input = in.get(obj); - } catch (IllegalAccessException e) { - e.printStackTrace(); - return; - } - - if (out == null || recipeCheck == null) return; - - if (GT_Utility.areStacksEqual(result, Materials.Naquadah.getDust(1), true)) { - - recipeCheck.setAccessible(true); - boolean isOk = true; - - try { - isOk = (boolean)recipeCheck.invoke(BartObj, input, Materials.Naquadah); - } catch (InvocationTargetException | IllegalAccessException ignored) { - } - - if (isOk) return; - try { - out.set(recipe, naquadahEarth.get(OrePrefixes.dust, 2)); - } catch (IllegalAccessException e) { - e.printStackTrace(); - } - } else if (GT_Utility.areStacksEqual(result, Materials.NaquadahEnriched.getDust(1), true)) { - - recipeCheck.setAccessible(true); - boolean isOk = true; - - try { - isOk = (boolean)recipeCheck.invoke(BartObj, input, Materials.NaquadahEnriched); - } catch (InvocationTargetException | IllegalAccessException ignored) { - } - - if (isOk) return; - try { - out.set(recipe, enrichedNaquadahEarth.get(OrePrefixes.dust, 2)); - } catch (IllegalAccessException e) { - e.printStackTrace(); - } - } else if (GT_Utility.areStacksEqual(result, Materials.Naquadria.getDust(1), true)) { - - recipeCheck.setAccessible(true); - boolean isOk = true; - - try { - isOk = (boolean)recipeCheck.invoke(BartObj, input, Materials.Naquadria); - } catch (InvocationTargetException | IllegalAccessException ignored) { - } - - if (isOk) return; - try { - out.set(recipe, naquadriaEarth.get(OrePrefixes.dust, 2)); - } catch (IllegalAccessException e) { - e.printStackTrace(); - } - } - } -} diff --git a/src/main/java/GoodGenerator/Loader/NeutronActivatorLoader.java b/src/main/java/GoodGenerator/Loader/NeutronActivatorLoader.java deleted file mode 100644 index 97477963c7..0000000000 --- a/src/main/java/GoodGenerator/Loader/NeutronActivatorLoader.java +++ /dev/null @@ -1,27 +0,0 @@ -package GoodGenerator.Loader; - -import GoodGenerator.util.MyRecipeAdder; -import com.github.bartimaeusnek.bartworks.system.material.WerkstoffLoader; -import gregtech.api.enums.OrePrefixes; -import net.minecraft.item.ItemStack; -import net.minecraftforge.fluids.FluidStack; - -import static GoodGenerator.Items.MyMaterial.*; - -public class NeutronActivatorLoader { - public static void NARecipeLoad() { - MyRecipeAdder.instance.addNeutronActivatorRecipe( - new FluidStack[]{ - thoriumBasedLiquidFuelExcited.getFluidOrGas(200) - }, - null, - new FluidStack[]{ - thoriumBasedLiquidFuelDepleted.getFluidOrGas(200) - }, - null, - 20000, - 700, - 500 - ); - } -} diff --git a/src/main/java/GoodGenerator/Loader/RecipeLoader.java b/src/main/java/GoodGenerator/Loader/RecipeLoader.java deleted file mode 100644 index 6c9e709955..0000000000 --- a/src/main/java/GoodGenerator/Loader/RecipeLoader.java +++ /dev/null @@ -1,1904 +0,0 @@ -package GoodGenerator.Loader; - -import GoodGenerator.Items.MyMaterial; -import GoodGenerator.util.CrackRecipeAdder; -import GoodGenerator.util.ItemRefer; -import GoodGenerator.util.MaterialFix; -import com.github.bartimaeusnek.bartworks.system.material.WerkstoffLoader; -import cpw.mods.fml.common.Loader; -import gregtech.api.enums.*; -import gregtech.api.util.GT_ModHandler; -import gregtech.api.util.GT_OreDictUnificator; -import ic2.core.Ic2Items; -import net.minecraft.item.ItemStack; -import net.minecraftforge.fluids.FluidRegistry; -import net.minecraftforge.fluids.FluidStack; -import gregtech.api.util.GT_Utility; - -public class RecipeLoader { - public static void RecipeLoad(){ - - //Radiation Protection Plate - GT_Values.RA.addAssemblerRecipe( - new ItemStack[]{GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.Lanthanum, 8L), - GT_OreDictUnificator.get(OrePrefixes.plate,Materials.NaquadahAlloy,8L), - GT_OreDictUnificator.get(OrePrefixes.foil,Materials.Neutronium,1L), - GT_Utility.getIntegratedCircuit(1)}, - Materials.Lead.getMolten(1152), - ItemRefer.Radiation_Protection_Plate.get(1), - 400, - 1920 - ); - - //LNR Controller - GT_Values.RA.addAssemblylineRecipe( - ItemList.Generator_Naquadah_Mark_III.get(1).copy(), - 100000, - new Object[]{ - GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Adamantium,8), - ItemRefer.Radiation_Protection_Plate.get(16), - ItemList.Field_Generator_ZPM.get(2), - ItemList.Electric_Pump_ZPM.get(8), - new Object[]{OrePrefixes.circuit.get(Materials.Superconductor),4}, - GT_OreDictUnificator.get(OrePrefixes.wireGt08,Materials.SuperconductorLuV,8), - GT_OreDictUnificator.get(OrePrefixes.pipeHuge,Materials.Naquadah,4), - GT_OreDictUnificator.get(OrePrefixes.plate,Materials.NaquadahAlloy,8), - GT_OreDictUnificator.get(OrePrefixes.screw,Materials.Osmium,16) - }, - new FluidStack[]{ - Materials.Trinium.getMolten(576), - Materials.SolderingAlloy.getMolten(4608), - Materials.Lubricant.getFluid(8000) - }, - ItemRefer.Large_Naquadah_Reactor.get(1), - 16200, - 122880 - ); - - //LNR Casing - GT_Values.RA.addAssemblerRecipe( - new ItemStack[]{ - ItemRefer.Radiation_Protection_Plate.get(6), - GT_OreDictUnificator.get(OrePrefixes.frameGt,Materials.Europium,1), - ItemList.Field_Generator_MV.get(1), - GT_Utility.getIntegratedCircuit(1) - }, - null, - ItemRefer.Field_Restriction_Casing.get(1), - 400, - 1920 - ); - - //LNR Frame - GT_Values.RA.addAssemblerRecipe( - new ItemStack[]{ - GT_OreDictUnificator.get(OrePrefixes.stickLong,Materials.NaquadahAlloy,8), - GT_OreDictUnificator.get(OrePrefixes.frameGt,Materials.HSSE,4), - GT_Utility.getIntegratedCircuit(24) - }, - null, - ItemRefer.Radiation_Proof_Steel_Frame_Box.get(1), - 320, - 1920 - ); - - //Uranium Liquid Fuel Process Line - GT_Values.RA.addAssemblerRecipe( - new ItemStack[]{ - MyMaterial.graphiteUraniumMixture.get(OrePrefixes.dust,4), - GT_OreDictUnificator.get(OrePrefixes.foil,Materials.TungstenCarbide,2), - GT_Utility.getIntegratedCircuit(1) - }, - null, - ItemRefer.Wrapped_Uranium_Ingot.get(1), - 1400, - 480 - ); - - GT_Values.RA.addImplosionRecipe( - ItemRefer.Wrapped_Uranium_Ingot.get(4), - 8, - ItemRefer.High_Density_Uranium_Nugget.get(1), - GT_OreDictUnificator.get(OrePrefixes.dustTiny,Materials.TungstenCarbide,8) - ); - - GT_Values.RA.addCompressorRecipe( - ItemRefer.High_Density_Uranium_Nugget.get(9), - ItemRefer.High_Density_Uranium.get(1), - 600, - 480 - ); - - GT_Values.RA.addMixerRecipe( - ItemRefer.High_Density_Uranium.get(1), - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Rubidium,8), - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Quantium,4), - GT_Utility.getIntegratedCircuit(1), - Materials.Radon.getGas(1000L), - MyMaterial.uraniumBasedLiquidFuel.getFluidOrGas(1000), - null, - 200, - 15360 - ); - - GT_Values.RA.addFusionReactorRecipe( - MyMaterial.uraniumBasedLiquidFuel.getFluidOrGas(10), - Materials.Hydrogen.getGas(100L), - MyMaterial.uraniumBasedLiquidFuelExcited.getFluidOrGas(10), - 40, - 7680, - 200000000 - ); - - //Thorium Liquid Process Line - GT_Values.RA.addAssemblerRecipe( - new ItemStack[]{ - MyMaterial.uraniumCarbideThoriumMixture.get(OrePrefixes.dust,64), - GT_OreDictUnificator.get(OrePrefixes.foil,Materials.TungstenSteel,4), - GT_Utility.getIntegratedCircuit(1) - }, - null, - ItemRefer.Wrapped_Thorium_Ingot.get(1), - 1000, - 480 - ); - - GT_Values.RA.addImplosionRecipe( - ItemRefer.Wrapped_Thorium_Ingot.get(1), - 4, - ItemRefer.High_Density_Thorium_Nugget.get(1), - GT_OreDictUnificator.get(OrePrefixes.dustTiny,Materials.TungstenSteel,3) - ); - - GT_Values.RA.addCompressorRecipe( - ItemRefer.High_Density_Thorium_Nugget.get(9), - ItemRefer.High_Density_Thorium.get(1), - 400, - 120 - ); - - GT_Values.RA.addMixerRecipe( - ItemRefer.High_Density_Thorium.get(1), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Lithium,4), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Draconium,2), - GT_Utility.getIntegratedCircuit(2), - Materials.Mercury.getFluid(1000L), - MyMaterial.thoriumBasedLiquidFuel.getFluidOrGas(4000), - null, - 3000, - 240 - ); - - GT_Values.RA.addMixerRecipe( - MyMaterial.thoriumBasedLiquidFuel.get(OrePrefixes.cell,1), - GT_Utility.getIntegratedCircuit(1), - null,null, - Materials.Helium.getPlasma(750L), - null, - MyMaterial.thoriumBasedLiquidFuelExcited.get(OrePrefixes.cell,1), - 120, - 3840 - ); - - //Liquid Plutonium Process Line - GT_Values.RA.addAssemblerRecipe( - new ItemStack[]{ - MyMaterial.plutoniumOxideUraniumMixture.get(OrePrefixes.dust,8), - GT_OreDictUnificator.get(OrePrefixes.foil,Materials.HSSS,4), - GT_Utility.getIntegratedCircuit(1) - }, - null, - ItemRefer.Wrapped_Plutonium_Ingot.get(1), - 1800, - 2040 - ); - - GT_Values.RA.addImplosionRecipe( - ItemRefer.Wrapped_Plutonium_Ingot.get(2), - 16, - ItemRefer.High_Density_Plutonium_Nugget.get(1), - GT_OreDictUnificator.get(OrePrefixes.dustTiny,Materials.HSSS,8) - ); - - GT_Values.RA.addCompressorRecipe( - ItemRefer.High_Density_Plutonium_Nugget.get(9), - ItemRefer.High_Density_Plutonium.get(1), - 1200, - 120 - ); - - GT_Values.RA.addMixerRecipe( - ItemRefer.High_Density_Plutonium.get(1), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Neutronium,8), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Caesium,16), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Americium,2), - GT_Utility.getIntegratedCircuit(1), - null,null, - MyMaterial.plutoniumBasedLiquidFuel.getFluidOrGas(1000), - null, - 360, - 30720 - ); - - GT_Values.RA.addFusionReactorRecipe( - Materials.Lutetium.getMolten(16), - MyMaterial.plutoniumBasedLiquidFuel.getFluidOrGas(20), - MyMaterial.plutoniumBasedLiquidFuelExcited.getFluidOrGas(20), - 20, - 15360, - 220000000 - ); - - //Th-232 - GT_Values.RA.addMultiblockChemicalRecipe( - new ItemStack[]{ - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Sugar,16), - MyMaterial.vanadiumPentoxide.get(OrePrefixes.dust,0), - GT_Utility.getIntegratedCircuit(1) - }, - new FluidStack[]{ - FluidRegistry.getFluidStack("nitricacid", 6000) - }, - new FluidStack[]{ - MyMaterial.oxalate.getFluidOrGas(3000), - Materials.NitricOxide.getGas(6000) - }, - null, - 600, - 120 - ); - - GT_Values.RA.addBlastRecipe( - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Thorium,1), - null, - Materials.Oxygen.getGas(2000), - null, - WerkstoffLoader.Thorianit.get(OrePrefixes.dust,1), - null, - 100, - 480, - 1200 - ); - - GT_Values.RA.addMultiblockChemicalRecipe( - new ItemStack[]{ - Materials.Thorium.getDust(1), - }, - new FluidStack[]{ - Materials.HydrofluoricAcid.getFluid(100), - FluidRegistry.getFluidStack("nitricacid", 8000) - }, - new FluidStack[]{ - MyMaterial.thoriumNitrate.getFluidOrGas(1000), - Materials.NitrogenDioxide.getGas(4000) - }, - null, - 40, - 120 - ); - - GT_Values.RA.addChemicalRecipe( - GT_Utility.getIntegratedCircuit(1), - Materials.SodiumHydroxide.getDust(4), - MyMaterial.thoriumNitrate.getFluidOrGas(1000), - null, - MyMaterial.thoriumHydroxide.get(OrePrefixes.dust, 1), - WerkstoffLoader.SodiumNitrate.get(OrePrefixes.dust, 4), - 200, - 120 - ); - - GT_Values.RA.addChemicalRecipe( - MyMaterial.thoriumHydroxide.get(OrePrefixes.dust,1), - GT_Utility.getIntegratedCircuit(1), - Materials.HydrofluoricAcid.getFluid(4000), - MyMaterial.thoriumTetrafluoride.getFluidOrGas(1000), - null, - null, - 400, - 30 - ); - - GT_Values.RA.addChemicalRecipe( - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Zinc, 1), - GT_Utility.getIntegratedCircuit(1), - Materials.Chlorine.getGas(2000), - null, - MyMaterial.zincChloride.get(OrePrefixes.dust, 3), - null, - 100, - 30 - ); - - GT_Values.RA.addElectrolyzerRecipe( - MyMaterial.zincChloride.get(OrePrefixes.dust, 3), - null, - null, - Materials.Chlorine.getGas(2000), - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Zinc, 1), - null, null, null, null, null, - new int[]{10000}, - 150, - 120 - ); - - GT_Values.RA.addBlastRecipe( - MyMaterial.zincChloride.get(OrePrefixes.dust, 1), - Materials.Calcium.getDust(3), - MyMaterial.thorium232Tetrafluoride.getFluidOrGas(1000), - WerkstoffLoader.CalciumChloride.getFluidOrGas(1000), - MyMaterial.zincThoriumAlloy.get(OrePrefixes.ingot, 1), - WerkstoffLoader.Fluorspar.get(OrePrefixes.dust, 8), - 300, - 120, - 3000 - ); - - GT_Values.RA.addBlastRecipe( - MyMaterial.zincThoriumAlloy.get(OrePrefixes.ingot, 1), - GT_Utility.getIntegratedCircuit(11), - Materials.Argon.getGas(250), - Materials.Zinc.getMolten(36), - WerkstoffLoader.Thorium232.get(OrePrefixes.dust, 1), - null, - 150, - 480, - 1900 - ); - - GT_Values.RA.addBlastRecipe( - GT_Utility.getIntegratedCircuit(24), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Vanadium,2), - Materials.Oxygen.getGas(5000), - null, - MyMaterial.vanadiumPentoxide.get(OrePrefixes.dust,1), - null, - 200, - 120, - 2500 - ); - - //Atomic Separation Catalyst - GT_Values.RA.addMixerRecipe( - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Blaze,32), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Shadow,4), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Sunnarium,4), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Ardite,4), - GT_Utility.getIntegratedCircuit(4),null, - Materials.Naquadah.getMolten(288), - null, - ItemRefer.Raw_Atomic_Separation_Catalyst.get(9), - 300, - 480 - ); - - GT_Values.RA.addMixerRecipe( - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Blaze,32), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Shadow,4), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Sunnarium,4), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Manyullyn,4), - GT_Utility.getIntegratedCircuit(4),null, - Materials.Naquadah.getMolten(288), - null, - ItemRefer.Raw_Atomic_Separation_Catalyst.get(9), - 300, - 480 - ); - - GT_Values.RA.addMixerRecipe( - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Blaze,32), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Shadow,4), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Ichorium,4), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Ardite,4), - GT_Utility.getIntegratedCircuit(4),null, - Materials.Naquadah.getMolten(288), - null, - ItemRefer.Raw_Atomic_Separation_Catalyst.get(27), - 300, - 480 - ); - - GT_Values.RA.addMixerRecipe( - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Blaze,32), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Shadow,4), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Ichorium,4), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Manyullyn,4), - GT_Utility.getIntegratedCircuit(4),null, - Materials.Naquadah.getMolten(288), - null, - ItemRefer.Raw_Atomic_Separation_Catalyst.get(27), - 300, - 480 - ); - - GT_Values.RA.addMixerRecipe( - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Blaze,32), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Bedrockium,4), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Sunnarium,4), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Ardite,4), - GT_Utility.getIntegratedCircuit(4),null, - Materials.Naquadah.getMolten(288), - null, - ItemRefer.Raw_Atomic_Separation_Catalyst.get(9), - 300, - 480 - ); - - GT_Values.RA.addMixerRecipe( - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Blaze,32), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Bedrockium,4), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Sunnarium,4), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Manyullyn,4), - GT_Utility.getIntegratedCircuit(4),null, - Materials.Naquadah.getMolten(288), - null, - ItemRefer.Raw_Atomic_Separation_Catalyst.get(9), - 300, - 480 - ); - - GT_Values.RA.addMixerRecipe( - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Blaze,32), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Bedrockium,4), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Ichorium,4), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Ardite,4), - GT_Utility.getIntegratedCircuit(4),null, - Materials.Naquadah.getMolten(288), - null, - ItemRefer.Raw_Atomic_Separation_Catalyst.get(27), - 300, - 480 - ); - - GT_Values.RA.addMixerRecipe( - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Blaze,32), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Bedrockium,4), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Ichorium,4), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Manyullyn,4), - GT_Utility.getIntegratedCircuit(4),null, - Materials.Naquadah.getMolten(288), - null, - ItemRefer.Raw_Atomic_Separation_Catalyst.get(27), - 300, - 480 - ); - - GT_Values.RA.addMixerRecipe( - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Firestone,9), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Shadow,4), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Sunnarium,4), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Ardite,4), - GT_Utility.getIntegratedCircuit(4),null, - Materials.Naquadah.getMolten(288), - null, - ItemRefer.Raw_Atomic_Separation_Catalyst.get(18), - 300, - 480 - ); - - GT_Values.RA.addMixerRecipe( - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Firestone,9), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Shadow,4), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Sunnarium,4), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Manyullyn,4), - GT_Utility.getIntegratedCircuit(4),null, - Materials.Naquadah.getMolten(288), - null, - ItemRefer.Raw_Atomic_Separation_Catalyst.get(18), - 300, - 480 - ); - - GT_Values.RA.addMixerRecipe( - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Firestone,9), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Shadow,4), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Ichorium,4), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Ardite,4), - GT_Utility.getIntegratedCircuit(4),null, - Materials.Naquadah.getMolten(288), - null, - ItemRefer.Raw_Atomic_Separation_Catalyst.get(54), - 300, - 480 - ); - - GT_Values.RA.addMixerRecipe( - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Firestone,9), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Shadow,4), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Ichorium,4), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Manyullyn,4), - GT_Utility.getIntegratedCircuit(4),null, - Materials.Naquadah.getMolten(288), - null, - ItemRefer.Raw_Atomic_Separation_Catalyst.get(54), - 300, - 480 - ); - - GT_Values.RA.addMixerRecipe( - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Firestone,9), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Bedrockium,4), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Sunnarium,4), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Ardite,4), - GT_Utility.getIntegratedCircuit(4),null, - Materials.Naquadah.getMolten(288), - null, - ItemRefer.Raw_Atomic_Separation_Catalyst.get(18), - 300, - 480 - ); - - GT_Values.RA.addMixerRecipe( - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Firestone,9), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Bedrockium,4), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Sunnarium,4), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Manyullyn,4), - GT_Utility.getIntegratedCircuit(4),null, - Materials.Naquadah.getMolten(288), - null, - ItemRefer.Raw_Atomic_Separation_Catalyst.get(18), - 300, - 480 - ); - - GT_Values.RA.addMixerRecipe( - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Firestone,9), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Bedrockium,4), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Ichorium,4), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Ardite,4), - GT_Utility.getIntegratedCircuit(4),null, - Materials.Naquadah.getMolten(288), - null, - ItemRefer.Raw_Atomic_Separation_Catalyst.get(54), - 300, - 480 - ); - - GT_Values.RA.addMixerRecipe( - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Firestone,9), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Bedrockium,4), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Ichorium,4), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Manyullyn,4), - GT_Utility.getIntegratedCircuit(4),null, - Materials.Naquadah.getMolten(288), - null, - ItemRefer.Raw_Atomic_Separation_Catalyst.get(54), - 300, - 480 - ); - - GT_Values.RA.addFormingPressRecipe( - WerkstoffLoader.Tiberium.get(OrePrefixes.plate,4), - GT_OreDictUnificator.get(OrePrefixes.plate,Materials.Silicon,8), - MyMaterial.orundum.get(OrePrefixes.plate,1), - 400, - 3000 - ); - - GT_Values.RA.addBlastRecipe( - MyMaterial.orundum.get(OrePrefixes.plate,2), - ItemRefer.Raw_Atomic_Separation_Catalyst.get(4), - Materials.Plutonium.getMolten(144), - null, - MyMaterial.atomicSeparationCatalyst.get(OrePrefixes.ingotHot,1), - null, - 3600, - 480, - 5000 - ); - - GT_Values.RA.addVacuumFreezerRecipe( - MyMaterial.atomicSeparationCatalyst.get(OrePrefixes.ingotHot,1), - MyMaterial.atomicSeparationCatalyst.get(OrePrefixes.ingot,1), - 450, - 960 - ); - - CrackRecipeAdder.crackerAdder( - MyMaterial.naquadahGas.getFluidOrGas(1000), - MyMaterial.atomicSeparationCatalyst.getMolten(4), - new FluidStack[]{ - Materials.Helium.getGas(300), - WerkstoffLoader.Neon.getFluidOrGas(50), - Materials.Argon.getGas(80), - WerkstoffLoader.Krypton.getFluidOrGas(20), - WerkstoffLoader.Xenon.getFluidOrGas(40), - Materials.Radon.getGas(14000) - }, - GT_OreDictUnificator.get(OrePrefixes.dustTiny,Materials.Naquadah,1), - 6, - 4020, - 300 - ); - - CrackRecipeAdder.crackerAdder( - MyMaterial.lightNaquadahFuel.getFluidOrGas(1000), - MyMaterial.atomicSeparationCatalyst.getMolten(4), - new FluidStack[]{ - Materials.Radon.getGas(1400), - MyMaterial.naquadahGas.getFluidOrGas(400), - Materials.Uranium.getMolten(648), - MyMaterial.heavyNaquadahFuel.getFluidOrGas(280), - Materials.Plutonium.getMolten(576), - MyMaterial.naquadahAsphalt.getFluidOrGas(140) - }, - GT_OreDictUnificator.get(OrePrefixes.dustTiny,Materials.Uranium235,1), - 6, - 4020, - 450 - ); - - CrackRecipeAdder.crackerAdder( - MyMaterial.heavyNaquadahFuel.getFluidOrGas(1000), - MyMaterial.atomicSeparationCatalyst.getMolten(6), - new FluidStack[]{ - Materials.Radon.getGas(1000), - MyMaterial.naquadahGas.getFluidOrGas(450), - MyMaterial.lightNaquadahFuel.getFluidOrGas(560), - Materials.Uranium.getMolten(720), - Materials.Lutetium.getMolten(648), - MyMaterial.naquadahAsphalt.getFluidOrGas(240) - }, - GT_OreDictUnificator.get(OrePrefixes.dustTiny,Materials.Plutonium,1), - 6, - 4020, - 500 - ); - - CrackRecipeAdder.crackerAdder( - MyMaterial.naquadahAsphalt.getFluidOrGas(1000), - MyMaterial.atomicSeparationCatalyst.getMolten(12), - new FluidStack[]{ - MyMaterial.lightNaquadahFuel.getFluidOrGas(600), - Materials.Uranium.getMolten(1152), - Materials.Thorium.getMolten(864), - Materials.Plutonium.getMolten(792), - Materials.Thulium.getMolten(216), - MyMaterial.heavyNaquadahFuel.getFluidOrGas(350) - }, - GT_OreDictUnificator.get(OrePrefixes.dustTiny,Materials.Naquadria,1), - 6, - 4020, - 800 - ); - - GT_Values.RA.addMultiblockChemicalRecipe( - new ItemStack[]{ - GT_Utility.getIntegratedCircuit(2) - }, - new FluidStack[]{ - Materials.Ethanol.getFluid(1000), - Materials.SulfuricAcid.getFluid(1000) - }, - new FluidStack[]{ - MyMaterial.ether.getFluidOrGas(500), - Materials.DilutedSulfuricAcid.getFluid(1500) - }, - null, - 510, - 120 - ); - - GT_Values.RA.addFuel(MyMaterial.ether.get(OrePrefixes.cell),GT_OreDictUnificator.get(OrePrefixes.cell,Materials.Empty,1),537,0); - GT_Values.RA.addFuel(MyMaterial.ether.get(OrePrefixes.cell),null,537,1); - - GT_Values.RA.addMultiblockChemicalRecipe( - new ItemStack[]{ - GT_Utility.getIntegratedCircuit(1), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Antimony,1), - }, - new FluidStack[]{ - MyMaterial.ether.getFluidOrGas(1000), - Materials.Chlorine.getGas(3000) - }, - new FluidStack[]{ - MyMaterial.antimonyTrichloride.getFluidOrGas(1000) - }, - null, - 60, - 30 - ); - - GT_Values.RA.addMultiblockChemicalRecipe( - new ItemStack[]{ - GT_Utility.getIntegratedCircuit(1), - }, - new FluidStack[]{ - MyMaterial.antimonyTrichloride.getFluidOrGas(1000), - Materials.Chlorine.getGas(2000) - }, - new FluidStack[]{ - MyMaterial.antimonyPentachlorideSolution.getFluidOrGas(1000) - }, - null, - 180, - 480 - ); - - GT_Values.RA.addUniversalDistillationRecipe( - MyMaterial.antimonyPentachlorideSolution.getFluidOrGas(1000), - new FluidStack[]{ - MyMaterial.ether.getFluidOrGas(1000), - MyMaterial.antimonyPentachloride.getFluidOrGas(1000) - }, - null, - 600, - 120 - ); - - GT_Values.RA.addMultiblockChemicalRecipe( - new ItemStack[]{ - GT_Utility.getIntegratedCircuit(1), - }, - new FluidStack[]{ - MyMaterial.antimonyPentachloride.getFluidOrGas(1000), - Materials.HydrofluoricAcid.getFluid(5000) - }, - new FluidStack[]{ - MyMaterial.antimonyPentafluoride.getFluidOrGas(1000), - Materials.HydrochloricAcid.getFluid(5000) - }, - null, - 420, - 30 - ); - - GT_Values.RA.addMultiblockChemicalRecipe( - new ItemStack[]{ - GT_Utility.getIntegratedCircuit(1), - }, - new FluidStack[]{ - MyMaterial.antimonyPentafluoride.getFluidOrGas(1000), - Materials.HydrofluoricAcid.getFluid(1000) - }, - new FluidStack[]{ - MyMaterial.fluoroantimonicAcid.getFluidOrGas(1000), - }, - null, - 840, - 2040 - ); - - GT_Values.RA.addBlastRecipe( - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.NaquadahEnriched,32), - GT_Utility.getIntegratedCircuit(16), - MyMaterial.fluoroantimonicAcid.getFluidOrGas(1000), - MyMaterial.acidNaquadahEmulsion.getFluidOrGas(2000), - MyMaterial.radioactiveSludge.get(OrePrefixes.dust,3), - null, - 3600, - 2040, - 3400 - ); - - GT_Values.RA.addMultiblockChemicalRecipe( - new ItemStack[]{ - GT_Utility.getIntegratedCircuit(3), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Quicklime,32) - }, - new FluidStack[]{ - MyMaterial.acidNaquadahEmulsion.getFluidOrGas(1000), - }, - new FluidStack[]{ - MyMaterial.naquadahEmulsion.getFluidOrGas(1000), - }, - new ItemStack[]{ - GT_OreDictUnificator.get(OrePrefixes.dustSmall,Materials.AntimonyTrioxide,1), - WerkstoffLoader.Fluorspar.get(OrePrefixes.dust,4) - }, - 240, - 30 - ); - - - - GT_Values.RA.addUniversalDistillationRecipe( - MyMaterial.naquadahSolution.getFluidOrGas(20), - new FluidStack[]{ - MyMaterial.naquadahAsphalt.getFluidOrGas(2), - MyMaterial.heavyNaquadahFuel.getFluidOrGas(5), - MyMaterial.lightNaquadahFuel.getFluidOrGas(10), - FluidRegistry.getFluidStack("water",10), - MyMaterial.naquadahGas.getFluidOrGas(60) - }, - null, - 20, - 2040 - ); - - GT_Values.RA.addFuel(MyMaterial.naquadahGas.get(OrePrefixes.cell),null,1024,1); - - GT_Values.RA.addFusionReactorRecipe( - MyMaterial.lightNaquadahFuel.getFluidOrGas(65), - MyMaterial.heavyNaquadahFuel.getFluidOrGas(30), - MyMaterial.naquadahBasedFuelMkI.getFluidOrGas(100), - 5, - 26000, - 330000000 - ); - - GT_Values.RA.addMultiblockChemicalRecipe( - new ItemStack[]{ - GT_Utility.getIntegratedCircuit(1), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Praseodymium,16), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Samarium,24), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.ElectrumFlux,32), - }, - new FluidStack[]{ - MyMaterial.naquadahBasedFuelMkI.getFluidOrGas(1000), - MyMaterial.naquadahGas.getFluidOrGas(2500) - }, - new FluidStack[]{ - MyMaterial.naquadahBasedFuelMkII.getFluidOrGas(1000) - }, - null, - 200, - 480000 - ); - - GT_Values.RA.addBlastRecipe( - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Naquadria,32), - GT_Utility.getIntegratedCircuit(16), - MyMaterial.fluoroantimonicAcid.getFluidOrGas(4000), - MyMaterial.acidNaquadahEmulsion.getFluidOrGas(8000), - MyMaterial.extremelyUnstableNaquadah.get(OrePrefixes.dust,17), - null, - 3600, - 4080, - 3400 - ); - - GT_Values.RA.addAssemblylineRecipe( - ItemList.Generator_Naquadah_Mark_V.get(1).copy(), - 500000, - new Object[]{ - GT_OreDictUnificator.get(OrePrefixes.frameGt,Materials.Osmiridium,8), - ItemRefer.Advanced_Radiation_Protection_Plate.get(64), - ItemList.Field_Generator_UV.get(8), - ItemList.Electric_Pump_UHV.get(2), - new Object[]{OrePrefixes.circuit.get(Materials.Bio), 4}, - GT_OreDictUnificator.get(OrePrefixes.pipeHuge,Materials.MysteriousCrystal,8), - ItemList.Circuit_Wafer_NPIC.get(16), - ItemList.UHV_Coil.get(64), - new Object[]{"craftingLensYellow", 16}, - GT_OreDictUnificator.get(OrePrefixes.screw,Materials.Thulium,64) - }, - new FluidStack[]{ - Materials.Quantium.getMolten(9216L), - Materials.DraconiumAwakened.getMolten(4608L), - MyMaterial.extremelyUnstableNaquadah.getMolten(1440), - Materials.SolderingAlloy.getMolten(14400L) - }, - ItemRefer.Naquadah_Fuel_Refinery.get(1), - 36000, - 1919810 - ); - - GT_Values.RA.addAssemblylineRecipe( - ItemRefer.Radiation_Protection_Plate.get(1), - 80000, - new Object[]{ - ItemRefer.Radiation_Protection_Plate.get(1), - GT_OreDictUnificator.get(OrePrefixes.plate,Materials.ElectrumFlux,4), - GT_OreDictUnificator.get(OrePrefixes.plate,Materials.Trinium,4), - GT_OreDictUnificator.get(OrePrefixes.plate,Materials.NaquadahAlloy,4), - GT_OreDictUnificator.get(OrePrefixes.plate,Materials.Osmiridium,4), - GT_OreDictUnificator.get(OrePrefixes.plate,Materials.VibrantAlloy,4), - ItemRefer.Radiation_Protection_Plate.get(1), - }, - new FluidStack[]{ - Materials.SolderingAlloy.getMolten(1152) - }, - ItemRefer.Advanced_Radiation_Protection_Plate.get(1), - 1000, - 65536 - ); - - GT_Values.RA.addAssemblylineRecipe( - ItemRefer.Field_Restriction_Casing.get(1), - 250000, - new Object[]{ - GT_OreDictUnificator.get(OrePrefixes.frameGt,Materials.Thulium,1), - ItemRefer.Advanced_Radiation_Protection_Plate.get(6), - ItemList.Field_Generator_IV.get(2), - GT_OreDictUnificator.get(OrePrefixes.pipeTiny,Materials.Naquadah,16), - GT_OreDictUnificator.get(OrePrefixes.wireFine,Materials.NaquadahAlloy,32), - GT_OreDictUnificator.get(OrePrefixes.wireFine,Materials.NaquadahAlloy,32), - GT_OreDictUnificator.get(OrePrefixes.wireFine,Materials.Manyullyn,32), - GT_OreDictUnificator.get(OrePrefixes.wireFine,Materials.Manyullyn,32), - MyMaterial.orundum.get(OrePrefixes.plate,4) - }, - new FluidStack[]{ - Materials.TungstenSteel.getMolten(1152), - Materials.SolderingAlloy.getMolten(2304) - }, - ItemRefer.Naquadah_Fuel_Refinery_Casing.get(1), - 500, - 65536 - ); - - if (Loader.isModLoaded("dreamcraft")) { - GT_Values.RA.addAssemblylineRecipe( - MyMaterial.extremelyUnstableNaquadah.get(OrePrefixes.ingot), - 300000, - new Object[]{ - GT_OreDictUnificator.get(OrePrefixes.frameGt,Materials.Osmium,1), - ItemList.Field_Generator_UV.get(2), - ItemList.Electric_Pump_UV.get(8), - GT_OreDictUnificator.get(OrePrefixes.wireGt01,Materials.SuperconductorZPM,64), - GT_OreDictUnificator.get(OrePrefixes.wireGt01,Materials.SuperconductorZPM,64), - GT_OreDictUnificator.get(OrePrefixes.plateDense,Materials.Americium,8), - GT_OreDictUnificator.get(OrePrefixes.pipeMedium,Materials.BlackPlutonium,16), - ItemList.Circuit_Wafer_PPIC.get(32), - new Object[]{"circuitNano", 1}, - }, - new FluidStack[]{ - WerkstoffLoader.Krypton.getFluidOrGas(32000), - Materials.ElectrumFlux.getMolten(9216), - Materials.Lubricant.getFluid(128000) - }, - ItemRefer.Field_Restriction_Coil_T1.get(1), - 18000, - 114514 - ); - - GT_Values.RA.addAssemblylineRecipe( - ItemRefer.Field_Restriction_Coil_T1.get(1), - 350000, - new Object[]{ - GT_OreDictUnificator.get(OrePrefixes.frameGt,Materials.CosmicNeutronium,1), - ItemList.Field_Generator_UHV.get(2), - ItemList.Electric_Pump_UHV.get(8), - GT_OreDictUnificator.get(OrePrefixes.wireGt02,Materials.SuperconductorUV,64), - GT_OreDictUnificator.get(OrePrefixes.wireGt02,Materials.SuperconductorUV,64), - GT_OreDictUnificator.get(OrePrefixes.plateDense,Materials.Infinity,8), - GT_OreDictUnificator.get(OrePrefixes.pipeMedium,Materials.Neutronium,16), - ItemList.Circuit_Wafer_PPIC.get(48), - new Object[]{"circuitPiko", 1}, - }, - new FluidStack[]{ - Materials.Radon.getPlasma(32000), - Materials.DraconiumAwakened.getMolten(9216), - Materials.Lubricant.getFluid(128000), - }, - ItemRefer.Field_Restriction_Coil_T2.get(1), - 36000, - 114514 - ); - - GT_Values.RA.addAssemblylineRecipe( - ItemRefer.Field_Restriction_Coil_T2.get(1), - 400000, - new Object[]{ - GT_OreDictUnificator.get(OrePrefixes.frameGt,Materials.Infinity,1), - ItemList.Field_Generator_UEV.get(2), - ItemList.Electric_Pump_UEV.get(8), - GT_OreDictUnificator.get(OrePrefixes.wireGt04,Materials.SuperconductorUHV,64), - GT_OreDictUnificator.get(OrePrefixes.wireGt04,Materials.SuperconductorUHV,64), - new Object[]{"plateDenseRadoxPoly", 8}, - GT_OreDictUnificator.get(OrePrefixes.pipeMedium,Materials.Infinity,16), - ItemList.Circuit_Wafer_PPIC.get(64), - new Object[]{"circuitQuantum", 1}, - }, - new FluidStack[]{ - WerkstoffLoader.Oganesson.getFluidOrGas(32000), - Materials.Neutronium.getMolten(9216), - Materials.Lubricant.getFluid(128000), - }, - ItemRefer.Field_Restriction_Coil_T3.get(1), - 72000, - 114514 - ); - } - else { - GT_Values.RA.addAssemblylineRecipe( - MyMaterial.extremelyUnstableNaquadah.get(OrePrefixes.ingot), - 300000, - new Object[]{ - GT_OreDictUnificator.get(OrePrefixes.frameGt,Materials.VanadiumGallium,1), - GT_OreDictUnificator.get(OrePrefixes.wireGt02,Materials.SuperconductorIV,64), - GT_OreDictUnificator.get(OrePrefixes.wireGt02,Materials.SuperconductorLuV,32), - GT_OreDictUnificator.get(OrePrefixes.wireGt02,Materials.SuperconductorZPM,16), - ItemList.Neutron_Reflector.get(4), - GT_OreDictUnificator.get(OrePrefixes.wireFine,Materials.Gallium,32), - GT_OreDictUnificator.get(OrePrefixes.spring,Materials.Indium,16), - GT_OreDictUnificator.get(OrePrefixes.gearGt,Materials.Osmiridium,16), - new ItemStack(Ic2Items.iridiumPlate.getItem(),32), - GT_OreDictUnificator.get(OrePrefixes.foil,Materials.CrystallineAlloy,64), - GT_OreDictUnificator.get(OrePrefixes.foil,Materials.CrystallineAlloy,64), - GT_OreDictUnificator.get(OrePrefixes.foil,Materials.CrystallineAlloy,64), - GT_OreDictUnificator.get(OrePrefixes.foil,Materials.CrystallineAlloy,64), - ItemList.Tool_DataStick.get(16), - GT_OreDictUnificator.get(OrePrefixes.screw,Materials.Cobalt,32) - }, - new FluidStack[]{ - Materials.Trinium.getMolten(2304), - Materials.Platinum.getMolten(4608), - Materials.SolderingAlloy.getMolten(9216), - FluidRegistry.getFluidStack("ic2coolant",8000) - }, - ItemRefer.Field_Restriction_Coil_T1.get(1), - 900, - 114514 - ); - - GT_Values.RA.addAssemblylineRecipe( - ItemRefer.Field_Restriction_Coil_T1.get(1), - 350000, - new Object[]{ - GT_OreDictUnificator.get(OrePrefixes.frameGt,Materials.Molybdenum,1), - GT_OreDictUnificator.get(OrePrefixes.wireGt02,Materials.SuperconductorLuV,64), - GT_OreDictUnificator.get(OrePrefixes.wireGt02,Materials.SuperconductorZPM,32), - GT_OreDictUnificator.get(OrePrefixes.wireGt02,Materials.SuperconductorUV,16), - ItemList.Field_Generator_LuV.get(4), - GT_OreDictUnificator.get(OrePrefixes.cableGt04,Materials.NiobiumTitanium,16), - GT_OreDictUnificator.get(OrePrefixes.pipeTiny,Materials.Enderium,16), - WerkstoffLoader.LuVTierMaterial.get(OrePrefixes.gearGt,8), - ItemList.Circuit_Wafer_QPIC.get(16), - GT_OreDictUnificator.get(OrePrefixes.plate,Materials.CrystallineAlloy,64), - GT_OreDictUnificator.get(OrePrefixes.foil,Materials.Indium,64), - GT_OreDictUnificator.get(OrePrefixes.foil,Materials.Indium,64), - GT_OreDictUnificator.get(OrePrefixes.foil,Materials.Indium,64), - ItemList.Energy_LapotronicOrb.get(4), - GT_OreDictUnificator.get(OrePrefixes.screw,Materials.BlackPlutonium,32) - }, - new FluidStack[]{ - Materials.Tritanium.getMolten(2304), - Materials.Palladium.getMolten(4608), - Materials.SolderingAlloy.getMolten(9216), - FluidRegistry.getFluidStack("ic2coolant",8000) - }, - ItemRefer.Field_Restriction_Coil_T2.get(1), - 2700, - 114514 - ); - - GT_Values.RA.addAssemblylineRecipe( - ItemRefer.Field_Restriction_Coil_T2.get(1), - 400000, - new Object[]{ - GT_OreDictUnificator.get(OrePrefixes.frameGt,Materials.CosmicNeutronium,1), - GT_OreDictUnificator.get(OrePrefixes.wireGt02,Materials.SuperconductorZPM,64), - GT_OreDictUnificator.get(OrePrefixes.wireGt02,Materials.SuperconductorUV,32), - GT_OreDictUnificator.get(OrePrefixes.wireGt02,Materials.SuperconductorUHV,16), - ItemList.Sensor_UV.get(4), - GT_OreDictUnificator.get(OrePrefixes.cableGt04,Materials.NetherStar,16), - GT_OreDictUnificator.get(OrePrefixes.plateDense,Materials.SamariumMagnetic,4), - GT_OreDictUnificator.get(OrePrefixes.gearGt,Materials.BlackPlutonium,16), - ItemList.Circuit_Chip_CrystalSoC2.get(32), - GT_OreDictUnificator.get(OrePrefixes.plate,Materials.CrystallineAlloy,64), - GT_OreDictUnificator.get(OrePrefixes.plate,Materials.Indium,32), - GT_OreDictUnificator.get(OrePrefixes.foil,Materials.VibrantAlloy,64), - GT_OreDictUnificator.get(OrePrefixes.foil,Materials.VibrantAlloy,64), - ItemList.Energy_LapotronicOrb2.get(4), - GT_OreDictUnificator.get(OrePrefixes.screw,Materials.Infinity,16) - }, - new FluidStack[]{ - Materials.Americium.getMolten(2304), - Materials.Osmium.getMolten(4608), - Materials.SolderingAlloy.getMolten(9216), - FluidRegistry.getFluidStack("ic2coolant",8000) - }, - ItemRefer.Field_Restriction_Coil_T3.get(1), - 8100, - 114514 - ); - } - - GT_Values.RA.addAssemblerRecipe( - new ItemStack[]{ - GT_OreDictUnificator.get(OrePrefixes.frameGt,Materials.BorosilicateGlass,1), - GT_OreDictUnificator.get(OrePrefixes.plate,Materials.ReinforceGlass,6), - GT_OreDictUnificator.get(OrePrefixes.ring,Materials.NaquadahAlloy,32), - ItemList.Field_Generator_HV.get(4), - GT_Utility.getIntegratedCircuit(6) - }, - MyMaterial.naquadahAsphalt.getFluidOrGas(500), - ItemRefer.Field_Restriction_Glass.get(1), - 300, - 120000 - ); - - GT_Values.RA.addChemicalRecipe( - GT_Utility.getIntegratedCircuit(1), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Calcium,1), - Materials.Oxygen.getGas(1000), - null, - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Quicklime,2), - 10, - 30 - ); - - GT_Values.RA.addElectrolyzerRecipe( - ItemRefer.Aluminum_Nitride_Dust.get(2), - null, - null, - Materials.Nitrogen.getGas(1000L), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Aluminium,1), - null,null,null,null,null, - new int[]{10000}, - 100, - 120 - ); - - GT_Values.RA.addMixerRecipe( - ItemRefer.Aluminum_Nitride_Dust.get(4), - WerkstoffLoader.YttriumOxide.get(OrePrefixes.dust,5), - GT_Utility.getIntegratedCircuit(9), - null, - FluidRegistry.getFluidStack("refinedglue",1000), - null, - ItemRefer.Special_Ceramics_Dust.get(9), - 100, - 1980 - ); - - GT_Values.RA.addMixerRecipe( - ItemRefer.Aluminum_Nitride_Dust.get(4), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Uraninite,5), - GT_Utility.getIntegratedCircuit(9), - null, - FluidRegistry.getFluidStack("refinedglue",1000), - null, - ItemRefer.Special_Ceramics_Dust.get(9), - 100, - 1980 - ); - - GT_Values.RA.addExtruderRecipe( - ItemRefer.Special_Ceramics_Dust.get(2), - ItemList.Shape_Extruder_Plate.get(0L), - ItemRefer.Special_Ceramics_Plate.get(1), - 400, - 480 - ); - - GT_ModHandler.addCraftingRecipe( - ItemRefer.Raw_Cylinder.get(1), - GT_ModHandler.RecipeBits.DISMANTLEABLE, - new Object[]{ - "PPP","PFP","PPP", - 'P', ItemRefer.Special_Ceramics_Plate.get(1), - 'F', GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.StainlessSteel,1) - } - ); - - GT_Values.RA.addAssemblerRecipe( - new ItemStack[]{ - ItemRefer.Raw_Cylinder.get(1), - GT_OreDictUnificator.get(OrePrefixes.gearGt,Materials.Titanium,1), - GT_OreDictUnificator.get(OrePrefixes.stickLong,Materials.Titanium,4), - GT_OreDictUnificator.get(OrePrefixes.plate,Materials.Titanium,6), - GT_Utility.getIntegratedCircuit(4) - }, - null, - ItemRefer.Titanium_Plated_Cylinder.get(1), - 300, - 1920 - ); - - GT_Values.RA.addMultiblockChemicalRecipe( - new ItemStack[]{ - GT_Utility.getIntegratedCircuit(16), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Saltpeter,2) - }, - new FluidStack[]{ - FluidRegistry.getFluidStack("liquidoxygen",1000), - Materials.NitrogenDioxide.getGas(1000) - }, - new FluidStack[]{ - FluidRegistry.getFluidStack("combustionpromotor",500) - }, - null, - 200, - 120 - ); - - GT_Values.RA.addMultiblockChemicalRecipe( - new ItemStack[]{ - GT_Utility.getIntegratedCircuit(16), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.PotassiumNitrade,2) - }, - new FluidStack[]{ - FluidRegistry.getFluidStack("liquidoxygen",1000), - Materials.NitrogenDioxide.getGas(1000) - }, - new FluidStack[]{ - FluidRegistry.getFluidStack("combustionpromotor",500) - }, - null, - 200, - 120 - ); - - GT_Values.RA.addMultiblockChemicalRecipe( - new ItemStack[]{ - GT_Utility.getIntegratedCircuit(16), - WerkstoffLoader.SodiumNitrate.get(OrePrefixes.dust,2) - }, - new FluidStack[]{ - FluidRegistry.getFluidStack("liquidoxygen",1000), - Materials.NitrogenDioxide.getGas(1000) - }, - new FluidStack[]{ - FluidRegistry.getFluidStack("combustionpromotor",500) - }, - null, - 200, - 120 - ); - - if (Loader.isModLoaded("miscutils")) { - GT_Values.RA.addMultiblockChemicalRecipe( - new ItemStack[]{ - GT_Utility.getIntegratedCircuit(16), - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Saltpeter, 2) - }, - new FluidStack[]{ - FluidRegistry.getFluidStack("fluid.hydrogenperoxide", 1000), - Materials.NitrogenDioxide.getGas(1000) - }, - new FluidStack[]{ - FluidRegistry.getFluidStack("combustionpromotor", 2000) - }, - null, - 200, - 120 - ); - - GT_Values.RA.addMultiblockChemicalRecipe( - new ItemStack[]{ - GT_Utility.getIntegratedCircuit(16), - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.PotassiumNitrade, 2) - }, - new FluidStack[]{ - FluidRegistry.getFluidStack("fluid.hydrogenperoxide", 1000), - Materials.NitrogenDioxide.getGas(1000) - }, - new FluidStack[]{ - FluidRegistry.getFluidStack("combustionpromotor", 2000) - }, - null, - 200, - 120 - ); - - GT_Values.RA.addMultiblockChemicalRecipe( - new ItemStack[]{ - GT_Utility.getIntegratedCircuit(16), - WerkstoffLoader.SodiumNitrate.get(OrePrefixes.dust, 2) - }, - new FluidStack[]{ - FluidRegistry.getFluidStack("fluid.hydrogenperoxide", 1000), - Materials.NitrogenDioxide.getGas(1000) - }, - new FluidStack[]{ - FluidRegistry.getFluidStack("combustionpromotor", 2000) - }, - null, - 200, - 120 - ); - } - - if (Loader.isModLoaded("botdustries")) { - GT_Values.RA.addMultiblockChemicalRecipe( - new ItemStack[]{ - GT_Utility.getIntegratedCircuit(16), - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Saltpeter, 2) - }, - new FluidStack[]{ - FluidRegistry.getFluidStack("hydrogen peroxide", 1000), - Materials.NitrogenDioxide.getGas(1000) - }, - new FluidStack[]{ - FluidRegistry.getFluidStack("combustionpromotor", 2000) - }, - null, - 200, - 120 - ); - - GT_Values.RA.addMultiblockChemicalRecipe( - new ItemStack[]{ - GT_Utility.getIntegratedCircuit(16), - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.PotassiumNitrade, 2) - }, - new FluidStack[]{ - FluidRegistry.getFluidStack("hydrogen peroxide", 1000), - Materials.NitrogenDioxide.getGas(1000) - }, - new FluidStack[]{ - FluidRegistry.getFluidStack("combustionpromotor", 2000) - }, - null, - 200, - 120 - ); - - GT_Values.RA.addMultiblockChemicalRecipe( - new ItemStack[]{ - GT_Utility.getIntegratedCircuit(16), - WerkstoffLoader.SodiumNitrate.get(OrePrefixes.dust, 2) - }, - new FluidStack[]{ - FluidRegistry.getFluidStack("hydrogen peroxide", 1000), - Materials.NitrogenDioxide.getGas(1000) - }, - new FluidStack[]{ - FluidRegistry.getFluidStack("combustionpromotor", 2000) - }, - null, - 200, - 120 - ); - } - - GT_ModHandler.addCraftingRecipe( - ItemRefer.Universal_Chemical_Fuel_Engine.get(1), - GT_ModHandler.RecipeBits.DISMANTLEABLE, - new Object[]{ - "TZT","ALB","WGW", - 'T', GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.Titanium,1), - 'Z', "circuitUltimate", - 'A', ItemList.Machine_Multi_DieselEngine.get(1), - 'B', ItemList.Machine_Multi_ExtremeDieselEngine.get(1), - 'L', ItemList.Hull_LuV, - 'W', GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Naquadah,1), - 'G', GT_OreDictUnificator.get(OrePrefixes.gearGt, Materials.Osmium,1), - } - ); - - //neutron activator - GT_Values.RA.addAssemblerRecipe( - new ItemStack[]{ - GT_OreDictUnificator.get(OrePrefixes.stick, Materials.PolyvinylChloride, 4), - GT_OreDictUnificator.get(OrePrefixes.itemCasing, Materials.Plastic, 4), - GT_Utility.getIntegratedCircuit(8) - }, - FluidRegistry.getFluidStack("dye.chemical.dyecyan", 144), - ItemRefer.Plastic_Case.get(1), - 100, - 28 - ); - - GT_Values.RA.addAssemblerRecipe( - new ItemStack[]{ - GT_OreDictUnificator.get(OrePrefixes.stick, Materials.PolyvinylChloride, 4), - GT_OreDictUnificator.get(OrePrefixes.itemCasing, Materials.Plastic, 4), - GT_Utility.getIntegratedCircuit(8) - }, - FluidRegistry.getFluidStack("dye.watermixed.dyecyan", 144), - ItemRefer.Plastic_Case.get(1), - 100, - 28 - ); - - GT_ModHandler.addCraftingRecipe( - ItemRefer.Plastic_Case.get(1), - new Object[]{ - "PCP","CDC","PCP", - 'P', GT_OreDictUnificator.get(OrePrefixes.stick, Materials.PolyvinylChloride,1), - 'C', GT_OreDictUnificator.get(OrePrefixes.itemCasing, Materials.Plastic,1), - 'D', "dyeCyan" - } - ); - - GT_ModHandler.addCraftingRecipe( - ItemRefer.Micro_Heater.get(1), - GT_ModHandler.RecipeBits.DISMANTLEABLE, - new Object[]{ - "PIP","UBU","CTC", - 'P', "plateQuintuplePaper", - 'I', ItemList.Circuit_Chip_ULPIC, - 'U', "circuitPrimitive", - 'B', ItemList.Circuit_Board_Coated_Basic, - 'C', ItemList.ULV_Coil, - 'T', ItemList.Battery_RE_ULV_Tantalum - } - ); - - GT_Values.RA.addAutoclaveRecipe( - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Quartzite,1), - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sodium,4), - Materials.Water.getFluid(1000), - ItemRefer.Quartz_Wafer.get(1), - 3333, - 6000, - 30, - true - ); - - GT_Values.RA.addAutoclaveRecipe( - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Quartzite,1), - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sodium,4), - FluidRegistry.getFluidStack("ic2distilledwater", 1000), - ItemRefer.Quartz_Wafer.get(1), - 3333, - 1500, - 30, - true - ); - - CrackRecipeAdder.addUniversalCircuitAssemblerRecipe( - new ItemStack[]{ - ItemRefer.Quartz_Wafer.get(1), - ItemRefer.Special_Ceramics_Plate.get(2), - ItemRefer.Micro_Heater.get(1), - GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.EnergeticAlloy,4), - ItemList.Circuit_Chip_ILC.get(4), - GT_OreDictUnificator.get(OrePrefixes.bolt, Materials.Silver,2), - }, - ItemRefer.Quartz_Crystal_Resonator.get(1), - 36, - 100, - 120, - true - ); - - CrackRecipeAdder.addUniversalAssemblerRecipe( - new ItemStack[]{ - ItemRefer.Quartz_Crystal_Resonator.get(2), - ItemRefer.Plastic_Case.get(1), - GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Good,1), - ItemList.Cover_Screen.get(1), - ItemList.Circuit_Parts_Diode.get(16), - GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Aluminium,8), - }, - ItemRefer.Inverter.get(1), - 144, - 240, - 120, - false - ); - - CrackRecipeAdder.addUniversalAssemblerRecipe( - new ItemStack[]{ - ItemRefer.Quartz_Crystal_Resonator.get(2), - ItemRefer.Plastic_Case.get(1), - GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Good,1), - ItemList.Cover_Screen.get(1), - ItemList.Circuit_Parts_DiodeSMD.get(16), - GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Aluminium,8), - }, - ItemRefer.Inverter.get(1), - 144, - 240, - 120, - false - ); - - CrackRecipeAdder.addUniversalAssemblerRecipe( - new ItemStack[]{ - ItemRefer.Quartz_Crystal_Resonator.get(2), - ItemRefer.Plastic_Case.get(1), - GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Good,1), - ItemList.Cover_Screen.get(1), - ItemList.Circuit_Parts_DiodeASMD.get(4), - GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Aluminium,8), - }, - ItemRefer.Inverter.get(1), - 144, - 240, - 120, - false - ); - - GT_ModHandler.addCraftingRecipe( - Loaders.NeutronAccelerators[0].copy(), - GT_ModHandler.RecipeBits.DISMANTLEABLE, - new Object[]{ - "WPM","CHI","WPM", - 'W', GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Lead,1), - 'P', GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Lead,1), - 'M', GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.Lead,1), - 'C', GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Wood,1), - 'H', ItemList.Hull_ULV, - 'I', ItemRefer.Inverter.get(1), - } - ); - - GT_ModHandler.addCraftingRecipe( - Loaders.NeutronAccelerators[1].copy(), - GT_ModHandler.RecipeBits.DISMANTLEABLE, - new Object[]{ - "WPM","CHI","WPM", - 'W', GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Tin,1), - 'P', GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Lead,1), - 'M', ItemList.Electric_Motor_LV, - 'C', "plateAnyRubber", - 'H', ItemList.Hull_LV, - 'I', ItemRefer.Inverter.get(1), - } - ); - - GT_Values.RA.addAssemblerRecipe( - new ItemStack[]{ - ItemRefer.Inverter.get(1), - ItemList.Hull_MV.get(1L), - GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.AnyCopper,2), - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Plastic,1), - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Beryllium,2), - ItemList.Electric_Motor_MV.get(2), - }, - null, - Loaders.NeutronAccelerators[2].copy(), - 300, - 120 - ); - - GT_Values.RA.addAssemblerRecipe( - new ItemStack[]{ - ItemRefer.Inverter.get(1), - ItemList.Hull_HV.get(1L), - GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Gold,2), - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.PolyvinylChloride,1), - GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Beryllium,2), - ItemList.Electric_Motor_HV.get(2), - }, - null, - Loaders.NeutronAccelerators[3].copy(), - 300, - 480 - ); - - GT_Values.RA.addAssemblylineRecipe( - Loaders.NeutronAccelerators[5].copy(), - 20000, - new Object[] { - ItemRefer.Inverter.get(2), - ItemList.Hull_LuV.get(1L), - GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.YttriumBariumCuprate,2), - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.NetherStar,1), - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Polybenzimidazole,4), - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.NeodymiumMagnetic,4), - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.NeodymiumMagnetic,4), - ItemList.Electric_Motor_LuV.get(2), - GT_OreDictUnificator.get(OrePrefixes.wireGt04, Materials.SuperconductorMV,4), - }, - new FluidStack[]{ - Materials.Argon.getGas(3000) - }, - Loaders.NeutronAccelerators[6].copy(), - 300, - 30720 - ); - - GT_Values.RA.addAssemblylineRecipe( - Loaders.NeutronAccelerators[6].copy(), - 20000, - new Object[] { - ItemRefer.Inverter.get(2), - ItemList.Hull_ZPM.get(1L), - GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.VanadiumGallium,2), - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.NetherStar,1), - GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Polybenzimidazole,4), - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.SamariumMagnetic,4), - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.SamariumMagnetic,4), - ItemList.Electric_Motor_ZPM.get(2), - GT_OreDictUnificator.get(OrePrefixes.wireGt04, Materials.SuperconductorEV,4), - }, - new FluidStack[]{ - WerkstoffLoader.Xenon.getFluidOrGas(3000) - }, - Loaders.NeutronAccelerators[7].copy(), - 300, - 122880 - ); - - GT_Values.RA.addAssemblylineRecipe( - Loaders.NeutronAccelerators[7].copy(), - 20000, - new Object[] { - ItemRefer.Inverter.get(4), - ItemList.Hull_UV.get(1L), - GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.NaquadahAlloy,4), - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.NetherStar,2), - GT_OreDictUnificator.get(OrePrefixes.plateTriple, Materials.Polybenzimidazole,4), - ItemList.ZPM_Coil.get(4), - GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.NickelZincFerrite,16), - ItemList.ZPM_Coil.get(4), - ItemList.Electric_Motor_UV.get(2), - GT_OreDictUnificator.get(OrePrefixes.wireGt04, Materials.SuperconductorLuV,4), - }, - new FluidStack[]{ - WerkstoffLoader.Oganesson.getFluidOrGas(3000) - }, - Loaders.NeutronAccelerators[8].copy(), - 300, - 491520 - ); - - GT_Values.RA.addAssemblerRecipe( - new ItemStack[]{ - ItemList.Casing_IV.get(1L), - ItemList.Cover_ActivityDetector.get(1L), - ItemList.Cover_Screen.get(1L), - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.VibrantAlloy,4), - GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Data,1), - ItemList.Sensor_HV.get(2), - GT_Utility.getIntegratedCircuit(1) - }, - Materials.Helium.getGas(1000), - Loaders.NS.copy(), - 200, - 1920 - ); - - GT_ModHandler.addCraftingRecipe( - ItemRefer.Neutron_Source.get(1), - GT_ModHandler.RecipeBits.DISMANTLEABLE, - new Object[]{ - " P ","PUP"," P ", - 'P', GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.Steel,1), - 'U', ItemRefer.High_Density_Uranium.get(1) - } - ); - - GT_ModHandler.addCraftingRecipe( - Loaders.NA.copy(), - GT_ModHandler.RecipeBits.DISMANTLEABLE, - new Object[]{ - "PCP","ESE","PCP", - 'C', "circuitMaster", - 'P', GT_OreDictUnificator.get(OrePrefixes.plate, Materials.StainlessSteel,1), - 'E', ItemList.Emitter_EV.get(1), - 'S', ItemRefer.Neutron_Source.get(1), - } - ); - } - - public static void InitLoadRecipe(){ - - GT_Values.RA.addAssemblerRecipe( - new ItemStack[]{ - ItemRefer.Inverter.get(1), - ItemList.Hull_EV.get(1L), - GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Aluminium,2), - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.StyreneButadieneRubber,1), - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.IronMagnetic,4), - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.TungstenCarbide,2), - ItemList.Electric_Motor_EV.get(2), - }, - null, - Loaders.NeutronAccelerators[4].copy(), - 300, - 1920 - ); - - GT_Values.RA.addAssemblerRecipe( - new ItemStack[]{ - ItemRefer.Inverter.get(1), - ItemList.Hull_IV.get(1L), - GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Tungsten,2), - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Silicone,1), - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.SteelMagnetic,4), - GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.TungstenCarbide,2), - ItemList.Electric_Motor_IV.get(2), - }, - null, - Loaders.NeutronAccelerators[5].copy(), - 300, - 7680 - ); - - GT_Values.RA.addBlastRecipe( - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Sapphire,1), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Coal,3), - FluidRegistry.getFluidStack("liquidnitrogen",1000), - null, - ItemRefer.Aluminum_Nitride_Dust.get(2), - null, - 200, - 1920, - 4600 - ); - - GT_Values.RA.addBlastRecipe( - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.GreenSapphire,1), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Coal,3), - FluidRegistry.getFluidStack("liquidnitrogen",1000), - null, - ItemRefer.Aluminum_Nitride_Dust.get(2), - null, - 200, - 1920, - 4600 - ); - - GT_Values.RA.addBlastRecipe( - MyMaterial.extremelyUnstableNaquadah.get(OrePrefixes.dust,1), - GT_Utility.getIntegratedCircuit(1), - null,null, - MyMaterial.extremelyUnstableNaquadah.get(OrePrefixes.ingotHot), - null, - 8000, - 114514, - 7000 - ); - - GT_Values.RA.addVacuumFreezerRecipe( - MyMaterial.atomicSeparationCatalyst.get(OrePrefixes.ingotHot,1), - MyMaterial.atomicSeparationCatalyst.get(OrePrefixes.ingot,1), - 200, - 30720 - ); - - GT_Values.RA.addVacuumFreezerRecipe( - MyMaterial.extremelyUnstableNaquadah.get(OrePrefixes.ingotHot,1), - MyMaterial.extremelyUnstableNaquadah.get(OrePrefixes.ingot,1), - 400, - 30720 - ); - - GT_Values.RA.addCentrifugeRecipe( - GT_Utility.getIntegratedCircuit(1),null, - MyMaterial.naquadahBasedFuelMkVDepleted.getFluidOrGas(1000), - WerkstoffLoader.Oganesson.getFluidOrGas(1), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Naquadah,1), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Naquadah,1), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Naquadah,1), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Naquadah,1), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Naquadah,1), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Naquadah,1), - new int[]{ - 1000,500,400,50,20,5 - }, - 100, - 30 - ); - - GT_Values.RA.addCentrifugeRecipe( - GT_Utility.getIntegratedCircuit(1),null, - MyMaterial.naquadahBasedFuelMkIVDepleted.getFluidOrGas(1000), - WerkstoffLoader.Oganesson.getFluidOrGas(864), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Naquadah,64), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Naquadah,64), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Naquadah,64), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Naquadah,64), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Sunnarium,32), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Sunnarium,32), - new int[]{ - 9900,9500,9000,8000,5000,3000 - }, - 2500, - 30000 - ); - - GT_Values.RA.addCentrifugeRecipe( - GT_Utility.getIntegratedCircuit(1),null, - MyMaterial.naquadahBasedFuelMkIIIDepleted.getFluidOrGas(1000), - WerkstoffLoader.Oganesson.getFluidOrGas(720), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Naquadah,64), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Naquadah,64), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Naquadah,64), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Bedrockium,32), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Bedrockium,32), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Bedrockium,32), - new int[]{ - 9500,9000,8000,7000,5000,4000 - }, - 2000, - 30000 - ); - - GT_Values.RA.addCentrifugeRecipe( - GT_Utility.getIntegratedCircuit(1), - null, - MyMaterial.naquadahBasedFuelMkIIDepleted.getFluidOrGas(1000), - WerkstoffLoader.Oganesson.getFluidOrGas(144), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Naquadah,64), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Naquadah,64), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Naquadah,32), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Americium,32), - WerkstoffLoader.Californium.get(OrePrefixes.dust,32), - null, - new int[]{9000,8500,5000,4000,2000}, - 8000, - 2040 - ); - - GT_Values.RA.addCentrifugeRecipe( - GT_Utility.getIntegratedCircuit(1),null, - MyMaterial.uraniumBasedLiquidFuelDepleted.getFluidOrGas(1000), - WerkstoffLoader.Xenon.getFluidOrGas(10), - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Lead,16L), - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Bismuth,1L), - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Barium,6L), - null,null,null, - new int[]{6000,1000,5000}, - 1000,1040 - ); - - GT_Values.RA.addCentrifugeRecipe( - GT_Utility.getIntegratedCircuit(1),null, - MyMaterial.thoriumBasedLiquidFuelDepleted.getFluidOrGas(1000), - null, - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Lutetium,64), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Lutetium,48), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Lutetium,32), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Praseodymium,64), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Boron,2), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Indium,4), - new int[]{9000,7000,1500,10000,3000,5000}, - 1500, - 1040 - ); - - GT_Values.RA.addCentrifugeRecipe( - GT_Utility.getIntegratedCircuit(1),null, - MyMaterial.plutoniumBasedLiquidFuelDepleted.getFluidOrGas(1000), - WerkstoffLoader.Krypton.getFluidOrGas(144), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Tritanium,9), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Cerium,4), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Gold,2), - null,null,null, - new int[]{5000,8000,7500}, - 2500, - 7680 - ); - - GT_Values.RA.addCentrifugeRecipe( - GT_Utility.getIntegratedCircuit(1), - null, - MyMaterial.thoriumTetrafluoride.getFluidOrGas(1000), - MyMaterial.thorium232Tetrafluoride.getFluidOrGas(750), - GT_OreDictUnificator.get(OrePrefixes.dustSmall,Materials.Thorium,1), - null,null,null,null,null,null, - 100, - 480 - ); - - GT_Values.RA.addCentrifugeRecipe( - GT_Utility.getIntegratedCircuit(1), - null, - MyMaterial.naquadahEmulsion.getFluidOrGas(1000), - MyMaterial.naquadahSolution.getFluidOrGas(500), - MyMaterial.radioactiveSludge.get(OrePrefixes.dust,4), - MyMaterial.radioactiveSludge.get(OrePrefixes.dust,2), - MyMaterial.radioactiveSludge.get(OrePrefixes.dust,1), - MyMaterial.radioactiveSludge.get(OrePrefixes.dust,1), - MyMaterial.radioactiveSludge.get(OrePrefixes.dust,1), - MyMaterial.radioactiveSludge.get(OrePrefixes.dust,1), - new int[]{8000,7500,5000,2000,500,100}, - 800, - 120 - ); - - GT_Values.RA.addCentrifugeRecipe( - GT_Utility.getIntegratedCircuit(1), - null, - MyMaterial.naquadahBasedFuelMkIDepleted.getFluidOrGas(1000), - WerkstoffLoader.Xenon.getFluidOrGas(144), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Naquadah,64), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Naquadah,48), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Naquadah,32), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Neodymium,32), - GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Europium,32), - null, - new int[]{9000,8500,5000,4000,2000}, - 6000, - 2040 - ); - - GT_Values.RA.addCentrifugeRecipe( - MyMaterial.radioactiveSludge.get(OrePrefixes.dust,1), - null,null, - Materials.Radon.getGas(5), - GT_OreDictUnificator.get(OrePrefixes.dustSmall,Materials.Calcium,2), - GT_OreDictUnificator.get(OrePrefixes.dustSmall,Materials.Calcium,1), - GT_OreDictUnificator.get(OrePrefixes.dustSmall,Materials.Naquadah,1), - GT_OreDictUnificator.get(OrePrefixes.dustSmall,Materials.Uranium,1), - GT_OreDictUnificator.get(OrePrefixes.dustSmall,Materials.Plutonium,1), - WerkstoffLoader.Tiberium.get(OrePrefixes.dustSmall,1), - new int[]{10000,9500,8000,2500,2000,2000}, - 100, - 120 - ); - } - - public static void Fixer(){ - MaterialFix.MaterialFluidExtractionFix(MyMaterial.atomicSeparationCatalyst); - MaterialFix.MaterialFluidExtractionFix(MyMaterial.extremelyUnstableNaquadah); - } -} diff --git a/src/main/java/GoodGenerator/Loader/RecipeLoader_02.java b/src/main/java/GoodGenerator/Loader/RecipeLoader_02.java deleted file mode 100644 index 96f31f98da..0000000000 --- a/src/main/java/GoodGenerator/Loader/RecipeLoader_02.java +++ /dev/null @@ -1,670 +0,0 @@ -package GoodGenerator.Loader; - -import GoodGenerator.Items.MyMaterial; -import GoodGenerator.util.CrackRecipeAdder; -import GoodGenerator.util.ItemRefer; -import com.github.bartimaeusnek.bartworks.system.material.WerkstoffLoader; -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.item.ItemStack; -import net.minecraftforge.fluids.FluidRegistry; -import net.minecraftforge.fluids.FluidStack; - -public class RecipeLoader_02 { - - public static void RecipeLoad(){ - - GT_Values.RA.addAssemblerRecipe( - new ItemStack[]{ - GT_OreDictUnificator.get(OrePrefixes.pipeLarge, Materials.StainlessSteel,1), - GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.BlueAlloy,1), - GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorHV,32), - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Beryllium,32), - GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Elite,1) - }, - null, - ItemRefer.Speeding_Pipe.get(1), - 300, - 1920 - ); - - CrackRecipeAdder.reAddBlastRecipe(MyMaterial.zircaloy2, 500, 480, 2800, true); - CrackRecipeAdder.reAddBlastRecipe(MyMaterial.zircaloy2, 513, 480, 2800, false); - CrackRecipeAdder.reAddBlastRecipe(MyMaterial.zircaloy4, 500, 480, 2800, true); - CrackRecipeAdder.reAddBlastRecipe(MyMaterial.zircaloy4, 513, 480, 2800, false); - CrackRecipeAdder.reAddBlastRecipe(MyMaterial.incoloy903, 2400, 1920, 3700, true); - CrackRecipeAdder.reAddBlastRecipe(MyMaterial.adamantiumAlloy, 2500, 1920, 5000, true); - - GT_Values.RA.addAssemblerRecipe( - new ItemStack[] { - MyMaterial.zircaloy4.get(OrePrefixes.plate, 4), - MyMaterial.zircaloy2.get(OrePrefixes.ring, 2), - GT_Utility.getIntegratedCircuit(2) - }, - null, - ItemRefer.Advanced_Fuel_Rod.get(1), - 200, - 120 - ); - - GT_Values.RA.addCannerRecipe( - ItemRefer.Advanced_Fuel_Rod.get(1), - ItemRefer.High_Density_Uranium.get(1), - ItemRefer.Fuel_Rod_U_1.get(1), - null, - 400, - 120 - ); - - GT_Values.RA.addAssemblerRecipe( - new ItemStack[] { - ItemRefer.Fuel_Rod_U_1.get(2), - MyMaterial.zircaloy2.get(OrePrefixes.stick, 4), - GT_Utility.getIntegratedCircuit(2) - }, - null, - ItemRefer.Fuel_Rod_U_2.get(1), - 200, - 1920 - ); - - GT_Values.RA.addAssemblerRecipe( - new ItemStack[] { - ItemRefer.Fuel_Rod_U_2.get(2), - MyMaterial.zircaloy2.get(OrePrefixes.stick, 4), - GT_Utility.getIntegratedCircuit(5) - }, - null, - ItemRefer.Fuel_Rod_U_4.get(1), - 200, - 1920 - ); - - GT_Values.RA.addAssemblerRecipe( - new ItemStack[] { - ItemRefer.Fuel_Rod_U_1.get(4), - MyMaterial.zircaloy2.get(OrePrefixes.stickLong, 6), - GT_Utility.getIntegratedCircuit(4) - }, - null, - ItemRefer.Fuel_Rod_U_4.get(1), - 220, - 1920 - ); - - GT_Values.RA.addCannerRecipe( - ItemRefer.Advanced_Fuel_Rod.get(1), - ItemRefer.High_Density_Plutonium.get(1), - ItemRefer.Fuel_Rod_Pu_1.get(1), - null, - 400, - 120 - ); - - GT_Values.RA.addAssemblerRecipe( - new ItemStack[] { - ItemRefer.Fuel_Rod_Pu_1.get(2), - MyMaterial.zircaloy2.get(OrePrefixes.stick, 4), - GT_Utility.getIntegratedCircuit(2) - }, - null, - ItemRefer.Fuel_Rod_Pu_2.get(1), - 200, - 1920 - ); - - GT_Values.RA.addAssemblerRecipe( - new ItemStack[] { - ItemRefer.Fuel_Rod_Pu_2.get(2), - MyMaterial.zircaloy2.get(OrePrefixes.stick, 4), - GT_Utility.getIntegratedCircuit(5) - }, - null, - ItemRefer.Fuel_Rod_Pu_4.get(1), - 200, - 1920 - ); - - GT_Values.RA.addAssemblerRecipe( - new ItemStack[] { - ItemRefer.Fuel_Rod_Pu_1.get(4), - MyMaterial.zircaloy2.get(OrePrefixes.stickLong, 6), - GT_Utility.getIntegratedCircuit(4) - }, - null, - ItemRefer.Fuel_Rod_Pu_4.get(1), - 220, - 1920 - ); - - GT_ModHandler.addCraftingRecipe( - ItemRefer.YOTTank_Casing.get(1), - GT_ModHandler.RecipeBits.DISMANTLEABLE, - new Object[]{ - "BPB","FOF","BPB", - 'B', GT_OreDictUnificator.get(OrePrefixes.plate, Materials.BlackSteel,1), - 'P', GT_OreDictUnificator.get(OrePrefixes.pipeMedium, Materials.StainlessSteel,1), - 'F', GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Polytetrafluoroethylene,1), - 'O', GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.BlackSteel,1), - } - ); - - GT_ModHandler.addCraftingRecipe( - ItemRefer.YOTTank.get(1), - GT_ModHandler.RecipeBits.DISMANTLEABLE, - new Object[]{ - "SPS","ECE","SLS", - 'S', GT_OreDictUnificator.get(OrePrefixes.screw, Materials.BlueSteel,1), - 'P', ItemList.Cover_Screen.get(1), - 'E', "circuitData", - 'L', GT_OreDictUnificator.get(OrePrefixes.pipeMedium, Materials.Enderium,1), - 'C', ItemRefer.YOTTank_Casing.get(1) - } - ); - - GT_Values.RA.addAssemblerRecipe( - new ItemStack[]{ - ItemList.Large_Fluid_Cell_Steel.get(12L), - GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, Materials.Tin,4), - GT_Utility.getIntegratedCircuit(1) - }, - Materials.Plastic.getMolten(144), - ItemRefer.Fluid_Storage_Core_T1.get(1), - 200, - 480 - ); - - GT_Values.RA.addAssemblerRecipe( - new ItemStack[]{ - ItemList.Large_Fluid_Cell_Aluminium.get(3L), - GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, Materials.Tin,4), - GT_Utility.getIntegratedCircuit(1) - }, - Materials.Plastic.getMolten(144), - ItemRefer.Fluid_Storage_Core_T1.get(1), - 200, - 480 - ); - - GT_Values.RA.addAssemblerRecipe( - new ItemStack[]{ - ItemList.Large_Fluid_Cell_StainlessSteel.get(2L), - GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, Materials.Tin,4), - GT_Utility.getIntegratedCircuit(1) - }, - Materials.Plastic.getMolten(144), - ItemRefer.Fluid_Storage_Core_T1.get(1), - 200, - 480 - ); - - GT_Values.RA.addAssemblerRecipe( - new ItemStack[]{ - ItemList.Large_Fluid_Cell_Titanium.get(64L), - GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.Titanium,8), - GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, Materials.BlackSteel,4), - GT_Utility.getIntegratedCircuit(2) - }, - Materials.Polytetrafluoroethylene.getMolten(2304), - ItemRefer.Fluid_Storage_Core_T2.get(1), - 200, - 7680 - ); - - GT_Values.RA.addAssemblerRecipe( - new ItemStack[]{ - ItemList.Large_Fluid_Cell_TungstenSteel.get(18L), - GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, Materials.BlackSteel,4), - GT_Utility.getIntegratedCircuit(2) - }, - Materials.Polytetrafluoroethylene.getMolten(2304), - ItemRefer.Fluid_Storage_Core_T2.get(1), - 200, - 7680 - ); - - GT_Values.RA.addAssemblerRecipe( - new ItemStack[]{ - ItemList.Large_Fluid_Cell_Chrome.get(4L), - GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, Materials.BlackSteel,4), - GT_Utility.getIntegratedCircuit(2) - }, - Materials.Polytetrafluoroethylene.getMolten(2304), - ItemRefer.Fluid_Storage_Core_T2.get(1), - 200, - 7680 - ); - - GT_Values.RA.addAssemblylineRecipe( - ItemRefer.Fluid_Storage_Core_T1.get(1), - 10000, - new Object[]{ - ItemRefer.Fluid_Storage_Core_T1.get(32), - ItemRefer.Fluid_Storage_Core_T1.get(32), - GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Polytetrafluoroethylene,16), - GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Polytetrafluoroethylene,16), - GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.BlackSteel,4), - GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.BlackSteel,4), - GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.BlackSteel,4) - }, - new FluidStack[]{ - Materials.SolderingAlloy.getMolten(288), - Materials.Lubricant.getFluid(1000) - }, - ItemRefer.Fluid_Storage_Core_T2.get(1), - 200, - 7680 - ); - - GT_Values.RA.addAssemblylineRecipe( - ItemRefer.Fluid_Storage_Core_T2.get(1), - 20000, - new Object[]{ - ItemRefer.Fluid_Storage_Core_T2.get(48), - ItemRefer.Fluid_Storage_Core_T2.get(48), - GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Polytetrafluoroethylene,16), - GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Polytetrafluoroethylene,16), - GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Polytetrafluoroethylene,16), - GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Polytetrafluoroethylene,16), - GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Iridium,4), - GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Iridium,4), - GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Iridium,4) - }, - new FluidStack[]{ - Materials.SolderingAlloy.getMolten(2304), - Materials.Lubricant.getFluid(4000) - }, - ItemRefer.Fluid_Storage_Core_T3.get(1), - 800, - 122880 - ); - - GT_Values.RA.addAssemblylineRecipe( - ItemRefer.Fluid_Storage_Core_T3.get(1), - 40000, - new Object[]{ - ItemRefer.Fluid_Storage_Core_T3.get(48), - ItemRefer.Fluid_Storage_Core_T3.get(48), - GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Polybenzimidazole,16), - GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Polybenzimidazole,16), - GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Polybenzimidazole,16), - GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Polybenzimidazole,16), - GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Osmium,4), - GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Osmium,4), - GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Osmium,4), - GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Osmium,4) - }, - new FluidStack[]{ - Materials.SolderingAlloy.getMolten(18432), - Materials.Lubricant.getFluid(16000) - }, - ItemRefer.Fluid_Storage_Core_T4.get(1), - 3200, - 1966080 - ); - - GT_Values.RA.addAssemblylineRecipe( - ItemRefer.Fluid_Storage_Core_T4.get(1), - 80000, - new Object[]{ - ItemRefer.Fluid_Storage_Core_T4.get(48), - ItemRefer.Fluid_Storage_Core_T4.get(48), - GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Polybenzimidazole,32), - GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Polybenzimidazole,32), - GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Polybenzimidazole,32), - GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Polybenzimidazole,32), - GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Neutronium,4), - GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Neutronium,4), - GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Neutronium,4), - GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Neutronium,4) - }, - new FluidStack[]{ - Materials.Draconium.getMolten(2304), - Materials.Titanium.getMolten(288), - Materials.Lubricant.getFluid(64000) - }, - ItemRefer.Fluid_Storage_Core_T5.get(1), - 6400, - 3921160 - ); - - GT_Values.RA.addAssemblylineRecipe( - ItemRefer.Fluid_Storage_Core_T5.get(1), - 160000, - new Object[]{ - ItemRefer.Fluid_Storage_Core_T5.get(48), - ItemRefer.Fluid_Storage_Core_T5.get(48), - GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Polybenzimidazole,32), - GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Polybenzimidazole,32), - GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Polybenzimidazole,32), - GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Polybenzimidazole,32), - GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.DraconiumAwakened,4), - GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.DraconiumAwakened,4), - GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.DraconiumAwakened,4), - GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.DraconiumAwakened,4) - }, - new FluidStack[]{ - Materials.Draconium.getMolten(9216), - Materials.TungstenSteel.getMolten(4608), - Materials.Lubricant.getFluid(128000) - }, - ItemRefer.Fluid_Storage_Core_T6.get(1), - 12800, - 7842320 - ); - - GT_Values.RA.addAssemblerRecipe( - new ItemStack[]{ - GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.BlackSteel,1), - ItemRefer.Fluid_Storage_Core_T1.get(10), - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Steel,4), - ItemList.Electric_Pump_HV.get(2), - GT_OreDictUnificator.get(OrePrefixes.pipeMedium, Materials.StainlessSteel,4), - GT_Utility.getIntegratedCircuit(5) - }, - Materials.Plastic.getMolten(144), - ItemRefer.YOTTank_Cell_T1.get(1), - 400, - 480 - ); - - GT_Values.RA.addAssemblerRecipe( - new ItemStack[]{ - GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.TungstenSteel,1), - ItemRefer.Fluid_Storage_Core_T2.get(10), - WerkstoffLoader.LuVTierMaterial.get(OrePrefixes.plate, 4), - ItemList.Electric_Pump_IV.get(2), - GT_OreDictUnificator.get(OrePrefixes.pipeMedium, Materials.Enderium,4), - GT_Utility.getIntegratedCircuit(5) - }, - Materials.Polytetrafluoroethylene.getMolten(144), - ItemRefer.YOTTank_Cell_T2.get(1), - 1600, - 7680 - ); - - GT_Values.RA.addAssemblylineRecipe( - ItemRefer.YOTTank_Cell_T2.get(1), - 20000, - new Object[]{ - GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Naquadah,1), - ItemRefer.Fluid_Storage_Core_T3.get(5), - ItemRefer.Fluid_Storage_Core_T3.get(5), - new Object[]{"circuitUltimate", 4}, - new Object[]{"circuitUltimate", 4}, - ItemList.Electric_Pump_ZPM.get(2), - GT_OreDictUnificator.get(OrePrefixes.pipeMedium, Materials.NiobiumTitanium,4), - GT_OreDictUnificator.get(OrePrefixes.pipeMedium, Materials.NiobiumTitanium,4), - MyMaterial.adamantiumAlloy.get(OrePrefixes.plate, 16), - MyMaterial.adamantiumAlloy.get(OrePrefixes.plate, 16) - }, - new FluidStack[]{ - Materials.Quantium.getMolten(1440), - FluidRegistry.getFluidStack("ic2coolant",8000), - Materials.Lubricant.getFluid(8000) - }, - ItemRefer.YOTTank_Cell_T3.get(1), - 1600, - 122880 - ); - - GT_Values.RA.addAssemblylineRecipe( - ItemRefer.YOTTank_Cell_T3.get(1), - 40000, - new Object[]{ - GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Neutronium,1), - ItemRefer.Fluid_Storage_Core_T4.get(5), - ItemRefer.Fluid_Storage_Core_T4.get(5), - new Object[]{"circuitInfinite", 4}, - new Object[]{"circuitInfinite", 4}, - ItemList.Electric_Pump_UHV.get(2), - GT_OreDictUnificator.get(OrePrefixes.pipeMedium, Materials.MysteriousCrystal,4), - GT_OreDictUnificator.get(OrePrefixes.pipeMedium, Materials.MysteriousCrystal,4), - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.ElectrumFlux,16), - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.ElectrumFlux,16) - }, - new FluidStack[]{ - Materials.Draconium.getMolten(1440), - FluidRegistry.getFluidStack("ic2coolant",16000), - Materials.Lubricant.getFluid(16000) - }, - ItemRefer.YOTTank_Cell_T4.get(1), - 3200, - 1966080 - ); - - GT_Values.RA.addAssemblylineRecipe( - ItemRefer.YOTTank_Cell_T4.get(1), - 80000, - new Object[]{ - GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.CosmicNeutronium,1), - ItemRefer.Fluid_Storage_Core_T5.get(5), - ItemRefer.Fluid_Storage_Core_T5.get(5), - new Object[]{"circuitBio", 4}, - new Object[]{"circuitBio", 4}, - ItemList.Electric_Pump_UEV.get(2), - GT_OreDictUnificator.get(OrePrefixes.pipeMedium, Materials.DraconiumAwakened,4), - GT_OreDictUnificator.get(OrePrefixes.pipeMedium, Materials.DraconiumAwakened,4), - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Neutronium,16), - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Neutronium,16), - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Neutronium,16), - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Neutronium,16) - }, - new FluidStack[]{ - Materials.Draconium.getMolten(1440), - FluidRegistry.getFluidStack("ic2coolant",16000), - Materials.Lubricant.getFluid(16000) - }, - ItemRefer.YOTTank_Cell_T5.get(1), - 6400, - 3921160 - ); - - GT_Values.RA.addAssemblylineRecipe( - ItemRefer.YOTTank_Cell_T5.get(1), - 160000, - new Object[]{ - GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Infinity,1), - ItemRefer.Fluid_Storage_Core_T6.get(5), - ItemRefer.Fluid_Storage_Core_T6.get(5), - ItemList.Field_Generator_UEV.get(4), - ItemList.Field_Generator_UEV.get(4), - ItemList.Electric_Pump_UEV.get(16), - GT_OreDictUnificator.get(OrePrefixes.pipeMedium, Materials.NetherStar,4), - GT_OreDictUnificator.get(OrePrefixes.pipeMedium, Materials.NetherStar,4), - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Infinity,16), - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Infinity,16), - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Infinity,16), - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Infinity,16) - }, - new FluidStack[]{ - Materials.DraconiumAwakened.getMolten(1440), - FluidRegistry.getFluidStack("ic2coolant",32000), - Materials.Lubricant.getFluid(32000) - }, - ItemRefer.YOTTank_Cell_T6.get(1), - 12800, - 7842320 - ); - - GT_Values.RA.addUnboxingRecipe( - ItemRefer.YOTTank_Cell_T1.get(1), - ItemRefer.Fluid_Storage_Core_T1.get(10), - GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.BlackSteel,1), - 100, - 480 - ); - - GT_Values.RA.addUnboxingRecipe( - ItemRefer.YOTTank_Cell_T2.get(1), - ItemRefer.Fluid_Storage_Core_T2.get(10), - GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.TungstenSteel,1), - 100, - 480 - ); - - GT_Values.RA.addUnboxingRecipe( - ItemRefer.YOTTank_Cell_T3.get(1), - ItemRefer.Fluid_Storage_Core_T3.get(10), - GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Naquadah,1), - 100, - 480 - ); - - GT_Values.RA.addUnboxingRecipe( - ItemRefer.YOTTank_Cell_T4.get(1), - ItemRefer.Fluid_Storage_Core_T4.get(10), - GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Neutronium,1), - 100, - 480 - ); - - GT_Values.RA.addUnboxingRecipe( - ItemRefer.YOTTank_Cell_T5.get(1), - ItemRefer.Fluid_Storage_Core_T5.get(10), - GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.CosmicNeutronium,1), - 100, - 480 - ); - - GT_Values.RA.addUnboxingRecipe( - ItemRefer.YOTTank_Cell_T6.get(1), - ItemRefer.Fluid_Storage_Core_T6.get(10), - GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Infinity,1), - 100, - 480 - ); - - GT_Values.RA.addAutoclaveRecipe( - WerkstoffLoader.Tiberium.get(OrePrefixes.dust, 1), - MyMaterial.naquadahGas.getFluidOrGas(250), - WerkstoffLoader.Tiberium.get(OrePrefixes.gem, 1), - 10000, - 400, - 480 - ); - - GT_Values.RA.addChemicalBathRecipe( - Materials.Firestone.getGems(1), - MyMaterial.lightNaquadahFuel.getFluidOrGas(144), - WerkstoffLoader.Tiberium.get(OrePrefixes.gem, 1), - null, null, - new int[]{10000}, - 400, - 1980 - ); - - GT_Values.RA.addChemicalBathRecipe( - Materials.Diamond.getGems(1), - MyMaterial.heavyNaquadahFuel.getFluidOrGas(144), - WerkstoffLoader.Tiberium.get(OrePrefixes.gem, 1), - null, null, - new int[]{10000}, - 400, - 1980 - ); - } - - public static void InitLoadRecipe() { - GT_Values.RA.addCentrifugeRecipe( - ItemRefer.Fuel_Rod_U_Depleted_1.get(1), - null, - null, - WerkstoffLoader.Neon.getFluidOrGas(32), - ItemRefer.Advanced_Fuel_Rod.get(1), - Materials.Uranium.getDust(8), - Materials.Plutonium.getDust(2), - Materials.Graphite.getDust(8), - Materials.Uranium235.getDust(1), - Materials.Plutonium241.getDust(1), - new int[]{10000, 10000, 10000, 9000, 5000, 3000}, - 200, - 1920 - ); - - GT_Values.RA.addCentrifugeRecipe( - ItemRefer.Fuel_Rod_U_Depleted_2.get(1), - null, - null, - WerkstoffLoader.Neon.getFluidOrGas(64), - ItemRefer.Advanced_Fuel_Rod.get(2), - Materials.Uranium.getDust(16), - Materials.Plutonium.getDust(4), - Materials.Graphite.getDust(16), - Materials.Uranium235.getDust(2), - Materials.Plutonium241.getDust(2), - new int[]{10000, 10000, 10000, 9000, 5000, 3000}, - 200, - 1920 - ); - - GT_Values.RA.addCentrifugeRecipe( - ItemRefer.Fuel_Rod_U_Depleted_4.get(1), - null, - null, - WerkstoffLoader.Neon.getFluidOrGas(128), - ItemRefer.Advanced_Fuel_Rod.get(4), - Materials.Uranium.getDust(32), - Materials.Plutonium.getDust(8), - Materials.Graphite.getDust(32), - Materials.Uranium235.getDust(4), - Materials.Plutonium241.getDust(4), - new int[]{10000, 10000, 10000, 9000, 5000, 3000}, - 200, - 1920 - ); - - GT_Values.RA.addCentrifugeRecipe( - ItemRefer.Fuel_Rod_Pu_Depleted_1.get(1), - null, - null, - WerkstoffLoader.Krypton.getFluidOrGas(32), - ItemRefer.Advanced_Fuel_Rod.get(1), - Materials.Plutonium.getDust(5), - Materials.Plutonium241.getDust(2), - Materials.Carbon.getDust(2), - Materials.Uranium.getDust(1), - Materials.Uranium235.getDust(1), - new int[]{10000, 10000, 10000, 9000, 5000, 3000}, - 200, - 1920 - ); - - GT_Values.RA.addCentrifugeRecipe( - ItemRefer.Fuel_Rod_Pu_Depleted_2.get(1), - null, - null, - WerkstoffLoader.Krypton.getFluidOrGas(64), - ItemRefer.Advanced_Fuel_Rod.get(2), - Materials.Plutonium.getDust(10), - Materials.Plutonium241.getDust(4), - Materials.Carbon.getDust(4), - Materials.Uranium.getDust(2), - Materials.Uranium235.getDust(2), - new int[]{10000, 10000, 10000, 9000, 5000, 3000}, - 200, - 1920 - ); - - GT_Values.RA.addCentrifugeRecipe( - ItemRefer.Fuel_Rod_Pu_Depleted_4.get(1), - null, - null, - WerkstoffLoader.Krypton.getFluidOrGas(128), - ItemRefer.Advanced_Fuel_Rod.get(4), - Materials.Plutonium.getDust(20), - Materials.Plutonium241.getDust(8), - Materials.Carbon.getDust(8), - Materials.Uranium.getDust(4), - Materials.Uranium235.getDust(4), - new int[]{10000, 10000, 10000, 9000, 5000, 3000}, - 200, - 1920 - ); - } -} diff --git a/src/main/java/GoodGenerator/Main/GG_Config_Loader.java b/src/main/java/GoodGenerator/Main/GG_Config_Loader.java deleted file mode 100644 index 1fbab02516..0000000000 --- a/src/main/java/GoodGenerator/Main/GG_Config_Loader.java +++ /dev/null @@ -1,69 +0,0 @@ -package GoodGenerator.Main; - -import cpw.mods.fml.relauncher.FMLInjectionData; -import net.minecraftforge.common.config.Configuration; - -import java.io.File; - -public class GG_Config_Loader { - - public static final Configuration GG_Config = new Configuration(new File(new File((File) FMLInjectionData.data()[6], "config"), "GoodGenerator.cfg")); - - public static int LiquidAirConsumptionPerSecond = 2400; - public static int[] NaquadahFuelVoltage = new int[]{ - 12960, 2200, 32400, 220000, - 380000, 9511000, 88540000, 399576000 - }; - public static int[] NaquadahFuelTime = new int[]{ - 100, 500, 150, 20, 20, 80, 100, 160 - }; - public static int[] CoolantEfficiency = new int[]{ - 275, 150, 105 - }; - public static int[] ExcitedLiquidCoe = new int[]{ - 16, 4, 3, 2 - }; - public static boolean EnableNaquadahRework = true; - - public static void run() { - loadCategory(); - loadProperty(); - } - - private static void loadProperty() { - NaquadahFuelVoltage[0] = GG_Config.get("LargeNaquadahReactor", "Uranium Based Liquid Fuel Basic Output Voltage", NaquadahFuelVoltage[0]).getInt(); - NaquadahFuelTime[0] = GG_Config.get("LargeNaquadahReactor", "Uranium Based Liquid Fuel Burning Time", NaquadahFuelTime[0]).getInt(); - NaquadahFuelVoltage[1] = GG_Config.get("LargeNaquadahReactor", "Thorium Based Liquid Fuel Basic Output Voltage", NaquadahFuelVoltage[1]).getInt(); - NaquadahFuelTime[1] = GG_Config.get("LargeNaquadahReactor", "Thorium Based Liquid Fuel Burning Time", NaquadahFuelTime[1]).getInt(); - NaquadahFuelVoltage[2] = GG_Config.get("LargeNaquadahReactor", "Plutonium Based Liquid Fuel Basic Output Voltage", NaquadahFuelVoltage[2]).getInt(); - NaquadahFuelTime[2] = GG_Config.get("LargeNaquadahReactor", "Plutonium Based Liquid Fuel Burning Time", NaquadahFuelTime[2]).getInt(); - NaquadahFuelVoltage[3] = GG_Config.get("LargeNaquadahReactor", "Naquadah Fuel MkI Basic Output Voltage", NaquadahFuelVoltage[3]).getInt(); - NaquadahFuelTime[3] = GG_Config.get("LargeNaquadahReactor", "Naquadah Fuel MkI Burning Time", NaquadahFuelTime[3]).getInt(); - NaquadahFuelVoltage[4] = GG_Config.get("LargeNaquadahReactor", "Naquadah Fuel MkII Basic Output Voltage", NaquadahFuelVoltage[4]).getInt(); - NaquadahFuelTime[4] = GG_Config.get("LargeNaquadahReactor", "Naquadah Fuel MkII Burning Time", NaquadahFuelTime[4]).getInt(); - NaquadahFuelVoltage[5] = GG_Config.get("LargeNaquadahReactor", "Naquadah Fuel MkIII Basic Output Voltage", NaquadahFuelVoltage[5]).getInt(); - NaquadahFuelTime[5] = GG_Config.get("LargeNaquadahReactor", "Naquadah Fuel MkIII Burning Time", NaquadahFuelTime[5]).getInt(); - NaquadahFuelVoltage[6] = GG_Config.get("LargeNaquadahReactor", "Naquadah Fuel MkIV Basic Output Voltage", NaquadahFuelVoltage[6]).getInt(); - NaquadahFuelTime[6] = GG_Config.get("LargeNaquadahReactor", "Naquadah Fuel MkIV Burning Time", NaquadahFuelTime[6]).getInt(); - NaquadahFuelVoltage[7] = GG_Config.get("LargeNaquadahReactor", "Naquadah Fuel MkV Basic Output Voltage", NaquadahFuelVoltage[7]).getInt(); - NaquadahFuelTime[7] = GG_Config.get("LargeNaquadahReactor", "Naquadah Fuel MkV Burning Time", NaquadahFuelTime[7]).getInt(); - CoolantEfficiency[0] = GG_Config.get("LargeNaquadahReactor", "Cryotheum Efficiency", CoolantEfficiency[0]).getInt(); - CoolantEfficiency[1] = GG_Config.get("LargeNaquadahReactor", "Super Coolant Efficiency", CoolantEfficiency[1]).getInt(); - CoolantEfficiency[2] = GG_Config.get("LargeNaquadahReactor", "IC2 Coolant Efficiency", CoolantEfficiency[2]).getInt(); - ExcitedLiquidCoe[0] = GG_Config.get("LargeNaquadahReactor", "Atomic Separation Catalyst Magnification", ExcitedLiquidCoe[0]).getInt(); - ExcitedLiquidCoe[1] = GG_Config.get("LargeNaquadahReactor", "Naquadah Magnification", ExcitedLiquidCoe[1]).getInt(); - ExcitedLiquidCoe[2] = GG_Config.get("LargeNaquadahReactor", "Uranium-235 Magnification", ExcitedLiquidCoe[2]).getInt(); - ExcitedLiquidCoe[3] = GG_Config.get("LargeNaquadahReactor", "Caesium Magnification", ExcitedLiquidCoe[3]).getInt(); - LiquidAirConsumptionPerSecond = Math.max(GG_Config.get("LargeNaquadahReactor", "Liquid Air Consumption Per Second", LiquidAirConsumptionPerSecond).getInt(), 0); - - EnableNaquadahRework = GG_Config.get("NaquadahRework", "Enable Naquadah Rework", EnableNaquadahRework).getBoolean(); - - if (GG_Config.hasChanged()) - GG_Config.save(); - } - - private static void loadCategory() { - GG_Config.addCustomCategoryComment("LargeNaquadahReactor", "Set fuel value, coolant or excited liquid property."); - GG_Config.addCustomCategoryComment("NaquadahRework", "About the naquadah line"); - } -} diff --git a/src/main/java/GoodGenerator/Main/GoodGenerator.java b/src/main/java/GoodGenerator/Main/GoodGenerator.java deleted file mode 100644 index 7e28234127..0000000000 --- a/src/main/java/GoodGenerator/Main/GoodGenerator.java +++ /dev/null @@ -1,74 +0,0 @@ -package GoodGenerator.Main; - -import GoodGenerator.Common.CommonProxy; -import GoodGenerator.CrossMod.Thaumcraft.Research; -import GoodGenerator.Items.MyMaterial; -import GoodGenerator.Loader.*; -import GoodGenerator.Network.MessageOpenNeutronSensorGUI; -import GoodGenerator.Network.MessageSetNeutronSensorData; -import GoodGenerator.Tabs.MyTabs; -import com.github.bartimaeusnek.bartworks.API.WerkstoffAdderRegistry; -import cpw.mods.fml.common.Loader; -import cpw.mods.fml.common.SidedProxy; -import cpw.mods.fml.common.event.*; -import cpw.mods.fml.common.network.NetworkRegistry; -import cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper; -import cpw.mods.fml.relauncher.Side; -import net.minecraft.creativetab.CreativeTabs; -import cpw.mods.fml.common.Mod; - -@SuppressWarnings("ALL") -@Mod(modid = GoodGenerator.MOD_ID, version = GoodGenerator.VERSION, - dependencies = "required-after:IC2; " - + "required-after:gregtech; " - + "required-after:bartworks; " - + "required-after:tectech; ") -public final class GoodGenerator { - public static final String MOD_ID = "GoodGenerator"; - public static final String MOD_NAME = "Good Generator"; - public static final String VERSION = "GRADLETOKEN_VERSION"; - - public static final CreativeTabs GG = new MyTabs("Good Generator"); - - @SidedProxy(clientSide = "GoodGenerator.Client.ClientProxy",serverSide = "GoodGenerator.Common.CommonProxy") - public static CommonProxy proxy; - public static SimpleNetworkWrapper CHANNEL = NetworkRegistry.INSTANCE.newSimpleChannel(MOD_ID); - - static { - CHANNEL.registerMessage(MessageSetNeutronSensorData.ServerHandler.class, MessageSetNeutronSensorData.class, 0, Side.SERVER); - CHANNEL.registerMessage(MessageOpenNeutronSensorGUI.ClientHandler.class, MessageOpenNeutronSensorGUI.class, 1, Side.CLIENT); - } - - @Mod.Instance(GoodGenerator.MOD_ID) - public static GoodGenerator instance; - - @Mod.EventHandler - public static void preInit(FMLPreInitializationEvent event) { - GG_Config_Loader.run(); - WerkstoffAdderRegistry.addWerkstoffAdder(new MyMaterial()); - Loaders.preInitLoad(); - proxy.preInit(event); - } - @Mod.EventHandler - public static void init(FMLInitializationEvent event) { - Loaders.initLoad(); - proxy.init(event); - } - @Mod.EventHandler - public static void postInit(FMLPostInitializationEvent event) { - Loaders.postInitLoad(); - crossMod(); - proxy.postInit(event); - } - @Mod.EventHandler - public void onLoadComplete(FMLLoadCompleteEvent event) { - //NaquadahReworkRecipeLoader.SmallRecipeChange(); - NaquadahReworkRecipeLoader.Remover(); - } - - public static void crossMod() { - if (Loader.isModLoaded("Thaumcraft")) { - Research.addResearch(); - } - } -} \ No newline at end of file diff --git a/src/main/java/GoodGenerator/Network/MessageMTEBase.java b/src/main/java/GoodGenerator/Network/MessageMTEBase.java deleted file mode 100644 index e54249e545..0000000000 --- a/src/main/java/GoodGenerator/Network/MessageMTEBase.java +++ /dev/null @@ -1,98 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2021 Glease - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ -package GoodGenerator.Network; - -import com.github.technus.tectech.TecTech; -import cpw.mods.fml.common.network.simpleimpl.IMessage; -import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; -import cpw.mods.fml.common.network.simpleimpl.MessageContext; -import cpw.mods.fml.relauncher.Side; -import gregtech.api.interfaces.metatileentity.IMetaTileEntity; -import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import io.netty.buffer.ByteBuf; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; -import net.minecraftforge.common.DimensionManager; - -public abstract class MessageMTEBase implements IMessage { - protected int w; - protected int x; - protected short y; - protected int z; - - public MessageMTEBase() { - } - - public MessageMTEBase(IGregTechTileEntity tile) { - this.w = tile.getWorld().provider.dimensionId; - this.x = tile.getXCoord(); - this.y = tile.getYCoord(); - this.z = tile.getZCoord(); - } - - @Override - public void fromBytes(ByteBuf buf) { - x = buf.readInt(); - y = buf.readShort(); - z = buf.readInt(); - w = buf.readInt(); - } - - @Override - public void toBytes(ByteBuf buf) { - buf.writeInt(x); - buf.writeShort(y); - buf.writeInt(z); - buf.writeInt(w); - } - - public static abstract class Handler implements IMessageHandler { - protected abstract REPLY onError(REQ message, MessageContext ctx); - - protected abstract REPLY onSuccess(REQ message, MessageContext ctx, IMetaTileEntity mte); - - @Override - public REPLY onMessage(REQ message, MessageContext ctx) { - World world; - if (ctx.side == Side.SERVER) { - world = DimensionManager.getWorld(message.w); - } else { - world = TecTech.proxy.getClientWorld(); - if (world.provider.dimensionId != message.w) - return onError(message, ctx); - } - if (world == null) - return onError(message, ctx); - if (world.blockExists(message.x, message.y, message.z)) { - TileEntity te = world.getTileEntity(message.x, message.y, message.z); - if (te instanceof IGregTechTileEntity && !((IGregTechTileEntity) te).isInvalidTileEntity()) { - IMetaTileEntity mte = ((IGregTechTileEntity) te).getMetaTileEntity(); - if (mte != null) - return onSuccess(message, ctx, mte); - } - } - return onError(message, ctx); - } - } -} diff --git a/src/main/java/GoodGenerator/Network/MessageOpenNeutronSensorGUI.java b/src/main/java/GoodGenerator/Network/MessageOpenNeutronSensorGUI.java deleted file mode 100644 index 0b3c045ece..0000000000 --- a/src/main/java/GoodGenerator/Network/MessageOpenNeutronSensorGUI.java +++ /dev/null @@ -1,50 +0,0 @@ -package GoodGenerator.Network; - -import GoodGenerator.Blocks.TEs.MetaTE.NeutronSensor; -import com.github.technus.tectech.TecTech; -import cpw.mods.fml.common.network.ByteBufUtils; -import cpw.mods.fml.common.network.simpleimpl.IMessage; -import cpw.mods.fml.common.network.simpleimpl.MessageContext; -import gregtech.api.interfaces.metatileentity.IMetaTileEntity; -import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import io.netty.buffer.ByteBuf; - -public class MessageOpenNeutronSensorGUI extends MessageMTEBase { - protected String data; - - public MessageOpenNeutronSensorGUI() { - } - - public MessageOpenNeutronSensorGUI(IGregTechTileEntity tile, String data) { - super(tile); - this.data = data; - } - - @Override - public void fromBytes(ByteBuf buf) { - super.fromBytes(buf); - data = ByteBufUtils.readUTF8String(buf); - } - - @Override - public void toBytes(ByteBuf buf) { - super.toBytes(buf); - ByteBufUtils.writeUTF8String(buf, data); - } - - public static class ClientHandler extends MessageMTEBase.Handler { - @Override - protected IMessage onError(MessageOpenNeutronSensorGUI message, MessageContext ctx) { - return null; - } - - @Override - protected IMessage onSuccess(MessageOpenNeutronSensorGUI message, MessageContext ctx, IMetaTileEntity mte) { - if (mte instanceof NeutronSensor) { - ((NeutronSensor) mte).setText(message.data); - mte.getBaseMetaTileEntity().openGUI(TecTech.proxy.getPlayer()); - } - return null; - } - } -} diff --git a/src/main/java/GoodGenerator/Network/MessageSetNeutronSensorData.java b/src/main/java/GoodGenerator/Network/MessageSetNeutronSensorData.java deleted file mode 100644 index 39d08d92c3..0000000000 --- a/src/main/java/GoodGenerator/Network/MessageSetNeutronSensorData.java +++ /dev/null @@ -1,52 +0,0 @@ -package GoodGenerator.Network; - -import GoodGenerator.Blocks.TEs.MetaTE.NeutronSensor; -import com.github.technus.tectech.TecTech; -import cpw.mods.fml.common.network.ByteBufUtils; -import cpw.mods.fml.common.network.simpleimpl.IMessage; -import cpw.mods.fml.common.network.simpleimpl.MessageContext; -import cpw.mods.fml.relauncher.Side; -import gregtech.api.interfaces.metatileentity.IMetaTileEntity; -import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import io.netty.buffer.ByteBuf; - -public class MessageSetNeutronSensorData extends MessageMTEBase { - protected String data; - - public MessageSetNeutronSensorData() { - } - - public MessageSetNeutronSensorData(IGregTechTileEntity tile, String data) { - super(tile); - this.data = data; - } - - @Override - public void fromBytes(ByteBuf buf) { - super.fromBytes(buf); - data = ByteBufUtils.readUTF8String(buf); - } - - @Override - public void toBytes(ByteBuf buf) { - super.toBytes(buf); - ByteBufUtils.writeUTF8String(buf, data); - } - - public static class ServerHandler extends MessageMTEBase.Handler { - @Override - protected IMessage onError(MessageSetNeutronSensorData message, MessageContext ctx) { - return null; - } - - @Override - protected IMessage onSuccess(MessageSetNeutronSensorData message, MessageContext ctx, IMetaTileEntity mte) { - if (mte instanceof NeutronSensor) { - ((NeutronSensor) mte).setText(message.data); - if (ctx.side == Side.CLIENT) - mte.getBaseMetaTileEntity().openGUI(TecTech.proxy.getPlayer()); - } - return null; - } - } -} diff --git a/src/main/java/GoodGenerator/Tabs/MyTabs.java b/src/main/java/GoodGenerator/Tabs/MyTabs.java deleted file mode 100644 index 75bc1fcc66..0000000000 --- a/src/main/java/GoodGenerator/Tabs/MyTabs.java +++ /dev/null @@ -1,16 +0,0 @@ -package GoodGenerator.Tabs; - -import GoodGenerator.Loader.Loaders; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.item.Item; - -public class MyTabs extends CreativeTabs { - public MyTabs(String name){ - super(name); - } - - @Override - public Item getTabIconItem() { - return Loaders.radiationProtectionPlate; - } -} diff --git a/src/main/java/GoodGenerator/util/CharExchanger.java b/src/main/java/GoodGenerator/util/CharExchanger.java deleted file mode 100644 index 7c77dcae6c..0000000000 --- a/src/main/java/GoodGenerator/util/CharExchanger.java +++ /dev/null @@ -1,124 +0,0 @@ -package GoodGenerator.util; - -import net.minecraft.util.EnumChatFormatting; - -public class CharExchanger { - - public static final String[] tierName = new String[] { - EnumChatFormatting.RED + "ULV" + EnumChatFormatting.RESET, - EnumChatFormatting.GRAY + "LV" + EnumChatFormatting.RESET, - EnumChatFormatting.AQUA + "MV" + EnumChatFormatting.RESET, - EnumChatFormatting.GOLD + "HV" + EnumChatFormatting.RESET, - EnumChatFormatting.DARK_PURPLE + "EV" + EnumChatFormatting.RESET, - EnumChatFormatting.DARK_BLUE + "IV" + EnumChatFormatting.RESET, - EnumChatFormatting.LIGHT_PURPLE + "LuV" + EnumChatFormatting.RESET, - EnumChatFormatting.WHITE + "ZPM" + EnumChatFormatting.RESET, - EnumChatFormatting.DARK_AQUA + "UV" + EnumChatFormatting.RESET, - EnumChatFormatting.DARK_RED + "UHV" + EnumChatFormatting.RESET, - EnumChatFormatting.GREEN + "UEV" + EnumChatFormatting.RESET, - }; - - public static char shifter(int unicode){ - return (char)unicode; - } - - public static boolean isValidCompareExpressChar(char c) { - return Character.isDigit(c) || c == '<' || c == '>' || c == '=' || c == '!'; - } - - public static boolean isValidCompareExpress(String exp) { - if (exp.length() < 2) return false; - for (char c: exp.toCharArray()) - if (!isValidCompareExpressChar(c)) return false; - char c1 = exp.charAt(0), c2 = exp.charAt(1); - String subExp = "" + c1; - if (!Character.isDigit(c2)) subExp = subExp + c2; - switch (subExp) { - case ">": - case "<": - case ">=": - case "<=": - case "==": - case "!=": - break; - default: return false; - } - if (exp.length() == subExp.length()) return false; - for (int i = subExp.length(); i < exp.length(); i ++) { - if (!Character.isDigit(exp.charAt(i))) return false; - } - return true; - } - - /** - * ">" : 1
- * "<" : 2
- * "==" : 13
- * "!=" : 14
- * ">=" : 11
- * "<=" : 12
- * INVALID : -1 - */ - public static int getOperator(String exp){ - char c1, c2; - int ret; - if (exp.length() < 1) return -1; - c1 = exp.charAt(0); - switch (c1) { - case '>': ret = 1;break; - case '<': ret = 2;break; - case '=': ret = 3;break; - case '!': ret = 4;break; - default: return -1; - } - if (exp.length() > 1) c2 = exp.charAt(1); - else return ret; - if (c2 == '=') { - ret += 10; - } - return ret; - } - - public static boolean compareExpression(String exp, int num) { - int op = getOperator(exp); - String NumExp = exp; - String[] opChar = new String[]{">", "<", "=", "!"}; - if (op == -1) throw new IllegalArgumentException(); - for (String re: opChar) NumExp = NumExp.replace(re, ""); - long num2 = 0; - for (char c: NumExp.toCharArray()) { - num2 *=10; - num2 += c - '0'; - } - switch (op) { - case 1: return num > num2; - case 2: return num < num2; - case 13: return num == num2; - case 14: return num != num2; - case 11: return num >= num2; - case 12: return num <= num2; - default: return false; - } - } - - public static String formatNumber(String exp) { - StringBuilder sb = new StringBuilder(); - for (int i = 0; i < exp.length(); ++i) { - if (Character.isDigit(exp.charAt(i))) { - int cnt = 0, prt = i; - while (i < exp.length() && Character.isDigit(exp.charAt(i))) { - i ++; - cnt ++; - } - while (prt < exp.length() && Character.isDigit(exp.charAt(prt))) { - sb.append(exp.charAt(prt)); - prt ++; - cnt --; - if (cnt % 3 == 0 && cnt != 0) sb.append(" "); - } - } - if (i < exp.length()) sb.append(exp.charAt(i)); - } - return sb.toString(); - } -} diff --git a/src/main/java/GoodGenerator/util/CrackRecipeAdder.java b/src/main/java/GoodGenerator/util/CrackRecipeAdder.java deleted file mode 100644 index 8717579d53..0000000000 --- a/src/main/java/GoodGenerator/util/CrackRecipeAdder.java +++ /dev/null @@ -1,78 +0,0 @@ -package GoodGenerator.util; - -import com.github.bartimaeusnek.bartworks.system.material.Werkstoff; -import gregtech.api.enums.GT_Values; -import gregtech.api.enums.Materials; -import gregtech.api.enums.OrePrefixes; -import gregtech.api.util.GT_Utility; -import net.minecraft.item.ItemStack; -import net.minecraftforge.fluids.Fluid; -import net.minecraftforge.fluids.FluidRegistry; -import net.minecraftforge.fluids.FluidStack; - -public class CrackRecipeAdder { - static float[] coe1 = {1.25f,1.2f,1.1f,0.9f,0.85f,0.8f,0.75f}; - static float[] coe2 = {1.4f,1.25f,1.2f,0.8f,0.75f,0.7f,0.65f}; - static float[] coe3 = {1.6f,1.5f,1.45f,0.7f,0.6f,0.55f,0.45f}; - public static void crackerAdder(FluidStack inputFluid, FluidStack cracker, FluidStack[] outputFluids, ItemStack outputItem, int num, int EUt, int Duration){ - - String name; - FluidStack[] actOutput = new FluidStack[num]; - name = inputFluid.getFluid().getName().replaceAll(" ",""); - - GT_Values.RA.addCrackingRecipe(1,inputFluid,cracker, FluidRegistry.getFluidStack("lightlycracked"+name,1000),(int)(Duration * 0.8),EUt); - GT_Values.RA.addCrackingRecipe(2,inputFluid,cracker, FluidRegistry.getFluidStack("moderatelycracked"+name,1000),Duration,EUt); - GT_Values.RA.addCrackingRecipe(3,inputFluid,cracker, FluidRegistry.getFluidStack("heavilycracked"+name,1000),(int)(Duration * 1.2),EUt); - - for ( int i = num - 1, j = 0; i >= 0; i --, j ++ ){ - Fluid tmp1 = outputFluids[i].getFluid(); - int tmp2 = (int)(outputFluids[i].amount * coe1[i]); - actOutput[j] = new FluidStack(tmp1, tmp2); - } - - GT_Values.RA.addUniversalDistillationRecipe(FluidRegistry.getFluidStack("lightlycracked"+name,1000),actOutput,outputItem,Duration / 2,EUt / 3); - - for ( int i = num - 1, j = 0; i >= 0; i --, j ++ ){ - Fluid tmp1 = outputFluids[i].getFluid(); - int tmp2 = (int)(outputFluids[i].amount * coe2[i]); - actOutput[j] = new FluidStack(tmp1, tmp2); - } - - GT_Values.RA.addUniversalDistillationRecipe(FluidRegistry.getFluidStack("moderatelycracked"+name,1000),actOutput,outputItem,Duration / 2,EUt / 3); - - for ( int i = num - 1, j = 0; i >= 0; i --, j ++ ){ - Fluid tmp1 = outputFluids[i].getFluid(); - int tmp2 = (int)(outputFluids[i].amount * coe3[i]); - actOutput[j] = new FluidStack(tmp1, tmp2); - } - - GT_Values.RA.addUniversalDistillationRecipe(FluidRegistry.getFluidStack("heavilycracked"+name,1000),actOutput,outputItem,Duration / 2,EUt / 3); - } - - public static void addUniversalCircuitAssemblerRecipe(ItemStack[] inputs, ItemStack output, int solders, int duration, int EUt, boolean isClean) { - GT_Values.RA.addCircuitAssemblerRecipe(inputs, Materials.SolderingAlloy.getMolten(solders), output, duration, EUt, isClean); - GT_Values.RA.addCircuitAssemblerRecipe(inputs, Materials.Tin.getMolten(solders * 2), output, duration, EUt, isClean); - GT_Values.RA.addCircuitAssemblerRecipe(inputs, Materials.Lead.getMolten(solders * 4), output, duration, EUt, isClean); - } - - public static void addUniversalAssemblerRecipe(ItemStack[] inputs, ItemStack output, int solders, int duration, int EUt, boolean isClean) { - GT_Values.RA.addAssemblerRecipe(inputs, Materials.SolderingAlloy.getMolten(solders), output, duration, EUt, isClean); - GT_Values.RA.addAssemblerRecipe(inputs, Materials.Tin.getMolten(solders * 2), output, duration, EUt, isClean); - GT_Values.RA.addAssemblerRecipe(inputs, Materials.Lead.getMolten(solders * 4), output, duration, EUt, isClean); - } - - public static void reAddBlastRecipe(Werkstoff material, int duration, int EUt, int level, boolean gas) { - ItemStack input = material.get(OrePrefixes.dust, 1); - ItemStack output = level > 1750 ? material.get(OrePrefixes.ingotHot, 1) : material.get(OrePrefixes.ingot, 1); - if (gas) { - GT_Values.RA.addBlastRecipe(input, GT_Utility.getIntegratedCircuit(11), Materials.Helium.getGas(1000), null, output, null, duration, EUt, level); - } else { - GT_Values.RA.addBlastRecipe(input, GT_Utility.getIntegratedCircuit(1), null, null, output, null, duration, EUt, level); - } - } - - public static FluidStack copyFluidWithAmount(FluidStack fluid, int amount) { - if (fluid == null || amount <= 0) return null; - return new FluidStack(fluid.getFluid(), amount); - } -} diff --git a/src/main/java/GoodGenerator/util/DescTextLocalization.java b/src/main/java/GoodGenerator/util/DescTextLocalization.java deleted file mode 100644 index b3bdb8cbd2..0000000000 --- a/src/main/java/GoodGenerator/util/DescTextLocalization.java +++ /dev/null @@ -1,17 +0,0 @@ -package GoodGenerator.util; - -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.StatCollector; - -public class DescTextLocalization { - - public static final String BLUE_PRINT_INFO = "Follow the" + EnumChatFormatting.BLUE + " Structure" + EnumChatFormatting.DARK_BLUE + "Lib" + EnumChatFormatting.GRAY + " hologram projector to build the main structure."; - - public static String[] addText(String preFix, int length){ - String[] text = new String[length]; - for (int i = 0; i < length; i ++) { - text[i] = StatCollector.translateToLocal(preFix + "." + i); - } - return text; - } -} diff --git a/src/main/java/GoodGenerator/util/ItemRefer.java b/src/main/java/GoodGenerator/util/ItemRefer.java deleted file mode 100644 index 500cd128f2..0000000000 --- a/src/main/java/GoodGenerator/util/ItemRefer.java +++ /dev/null @@ -1,152 +0,0 @@ -package GoodGenerator.util; - -import gregtech.api.util.GT_Utility; -import net.minecraft.block.Block; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; - -import static GoodGenerator.Loader.FuelRodLoader.*; -import static GoodGenerator.Loader.Loaders.*; - -public final class ItemRefer { - - public static ItemRefer NULL = getItemStack(_null_); - - public static ItemRefer Radiation_Protection_Plate = getItemStack(radiationProtectionPlate); - public static ItemRefer Wrapped_Uranium_Ingot = getItemStack(wrappedUraniumIngot); - public static ItemRefer High_Density_Uranium_Nugget = getItemStack(highDensityUraniumNugget); - public static ItemRefer High_Density_Uranium = getItemStack(highDensityUranium); - public static ItemRefer Wrapped_Thorium_Ingot = getItemStack(wrappedThoriumIngot); - public static ItemRefer High_Density_Thorium_Nugget = getItemStack(highDensityThoriumNugget); - public static ItemRefer High_Density_Thorium = getItemStack(highDensityThorium); - public static ItemRefer Wrapped_Plutonium_Ingot = getItemStack(wrappedPlutoniumIngot); - public static ItemRefer High_Density_Plutonium_Nugget = getItemStack(highDensityPlutoniumNugget); - public static ItemRefer High_Density_Plutonium = getItemStack(highDensityPlutonium); - public static ItemRefer Raw_Atomic_Separation_Catalyst = getItemStack(rawAtomicSeparationCatalyst); - public static ItemRefer Advanced_Radiation_Protection_Plate = getItemStack(advancedRadiationProtectionPlate); - public static ItemRefer Aluminum_Nitride_Dust = getItemStack(aluminumNitride); - public static ItemRefer Special_Ceramics_Dust = getItemStack(specialCeramics); - public static ItemRefer Special_Ceramics_Plate = getItemStack(specialCeramicsPlate); - public static ItemRefer Radioactive_Waste = getItemStack(radioactiveWaste); - public static ItemRefer Plastic_Case = getItemStack(plasticCase); - public static ItemRefer Quartz_Wafer = getItemStack(quartzWafer); - public static ItemRefer Micro_Heater = getItemStack(microHeater); - public static ItemRefer Quartz_Crystal_Resonator = getItemStack(quartzCrystalResonator); - public static ItemRefer Inverter = getItemStack(inverter); - public static ItemRefer Neutron_Source = getItemStack(neutronSource); - public static ItemRefer Naquadah_Mass = getItemStack(naquadahMass); - public static ItemRefer Enriched_Naquadah_Mass = getItemStack(enrichedNaquadahMass); - public static ItemRefer Naquadria_Mass = getItemStack(naquadriaMass); - public static ItemRefer Advanced_Fuel_Rod = getItemStack(advancedFuelRod); - public static ItemRefer Fuel_Rod_U_Depleted_1 = getItemStack(rodCompressedUraniumDepleted); - public static ItemRefer Fuel_Rod_U_Depleted_2 = getItemStack(rodCompressedUraniumDepleted_2); - public static ItemRefer Fuel_Rod_U_Depleted_4 = getItemStack(rodCompressedUraniumDepleted_4); - public static ItemRefer Fuel_Rod_U_1 = getItemStack(rodCompressedUranium); - public static ItemRefer Fuel_Rod_U_2 = getItemStack(rodCompressedUranium_2); - public static ItemRefer Fuel_Rod_U_4 = getItemStack(rodCompressedUranium_4); - public static ItemRefer Fuel_Rod_Pu_Depleted_1 = getItemStack(rodCompressedPlutoniumDepleted); - public static ItemRefer Fuel_Rod_Pu_Depleted_2 = getItemStack(rodCompressedPlutoniumDepleted_2); - public static ItemRefer Fuel_Rod_Pu_Depleted_4 = getItemStack(rodCompressedPlutoniumDepleted_4); - public static ItemRefer Fuel_Rod_Pu_1 = getItemStack(rodCompressedPlutonium); - public static ItemRefer Fuel_Rod_Pu_2 = getItemStack(rodCompressedPlutonium_2); - public static ItemRefer Fuel_Rod_Pu_4 = getItemStack(rodCompressedPlutonium_4); - public static ItemRefer Fluid_Storage_Core_T1 = getItemStack(fluidCore, 0); - public static ItemRefer Fluid_Storage_Core_T2 = getItemStack(fluidCore, 1); - public static ItemRefer Fluid_Storage_Core_T3 = getItemStack(fluidCore, 2); - public static ItemRefer Fluid_Storage_Core_T4 = getItemStack(fluidCore, 3); - public static ItemRefer Fluid_Storage_Core_T5 = getItemStack(fluidCore, 4); - public static ItemRefer Fluid_Storage_Core_T6 = getItemStack(fluidCore, 5); - public static ItemRefer Essentia_Upgrade_Empty = getItemStack(upgradeEssentia, 0); - public static ItemRefer Essentia_Upgrade_Air = getItemStack(upgradeEssentia, 1); - public static ItemRefer Essentia_Upgrade_Thermal = getItemStack(upgradeEssentia, 2); - public static ItemRefer Essentia_Upgrade_Unstable = getItemStack(upgradeEssentia, 3); - public static ItemRefer Essentia_Upgrade_Victus = getItemStack(upgradeEssentia, 4); - public static ItemRefer Essentia_Upgrade_Tainted = getItemStack(upgradeEssentia, 5); - public static ItemRefer Essentia_Upgrade_Mechanics = getItemStack(upgradeEssentia, 6); - public static ItemRefer Essentia_Upgrade_Spirit = getItemStack(upgradeEssentia, 7); - public static ItemRefer Essentia_Upgrade_Radiation = getItemStack(upgradeEssentia, 8); - public static ItemRefer Essentia_Upgrade_Electric = getItemStack(upgradeEssentia, 9); - - public static ItemRefer Field_Restriction_Casing = getItemStack(MAR_Casing); - public static ItemRefer Naquadah_Fuel_Refinery_Casing = getItemStack(FRF_Casings); - public static ItemRefer Field_Restriction_Coil_T1 = getItemStack(FRF_Coil_1); - public static ItemRefer Field_Restriction_Coil_T2 = getItemStack(FRF_Coil_2); - public static ItemRefer Field_Restriction_Coil_T3 = getItemStack(FRF_Coil_3); - public static ItemRefer Radiation_Proof_Steel_Frame_Box = getItemStack(radiationProtectionSteelFrame); - public static ItemRefer Field_Restriction_Glass = getItemStack(fieldRestrictingGlass); - public static ItemRefer Raw_Cylinder = getItemStack(rawCylinder); - public static ItemRefer Titanium_Plated_Cylinder = getItemStack(titaniumPlatedCylinder); - public static ItemRefer Magic_Casing = getItemStack(magicCasing); - public static ItemRefer Speeding_Pipe = getItemStack(speedingPipe); - public static ItemRefer Essentia_Cell_T1 = getItemStack(essentiaCell, 0); - public static ItemRefer Essentia_Cell_T2 = getItemStack(essentiaCell, 1); - public static ItemRefer Essentia_Cell_T3 = getItemStack(essentiaCell, 2); - public static ItemRefer Essentia_Cell_T4 = getItemStack(essentiaCell, 3); - public static ItemRefer Essentia_Hatch = getItemStack(essentiaHatch); - public static ItemRefer YOTTank_Casing = getItemStack(yottaFluidTankCasing); - public static ItemRefer YOTTank_Cell_T1 = getItemStack(yottaFluidTankCell, 0); - public static ItemRefer YOTTank_Cell_T2 = getItemStack(yottaFluidTankCell, 1); - public static ItemRefer YOTTank_Cell_T3 = getItemStack(yottaFluidTankCell, 2); - public static ItemRefer YOTTank_Cell_T4 = getItemStack(yottaFluidTankCell, 3); - public static ItemRefer YOTTank_Cell_T5 = getItemStack(yottaFluidTankCell, 4); - public static ItemRefer YOTTank_Cell_T6 = getItemStack(yottaFluidTankCell, 5); - public static ItemRefer YOTTank_Cell_T7 = getItemStack(yottaFluidTankCell, 6); - public static ItemRefer YOTTank_Cell_T8 = getItemStack(yottaFluidTankCell, 7); - public static ItemRefer YOTTank_Cell_T9 = getItemStack(yottaFluidTankCell, 8); - public static ItemRefer YOTTank_Cell_T10 = getItemStack(yottaFluidTankCell, 9); - - public static ItemRefer Large_Naquadah_Reactor = getItemStack(MAR); - public static ItemRefer Naquadah_Fuel_Refinery = getItemStack(FRF); - public static ItemRefer Universal_Chemical_Fuel_Engine = getItemStack(UCFE); - public static ItemRefer Large_Essentia_Generator = getItemStack(LEG); - public static ItemRefer YOTTank = getItemStack(YFT); - - private Item mItem = null; - private Block mBlock = null; - private ItemStack mItemStack = null; - private int mMeta = 0; - - private static ItemRefer getItemStack(ItemStack itemStack) { - if (itemStack == null) return NULL; - return new ItemRefer(itemStack); - } - - private static ItemRefer getItemStack(Item item) { - return getItemStack(item, 0); - } - - private static ItemRefer getItemStack(Item item, int meta) { - if (item == null) return NULL; - return new ItemRefer(item, meta); - } - - private static ItemRefer getItemStack(Block block) { - return getItemStack(block, 0); - } - - private static ItemRefer getItemStack(Block block, int meta) { - if (block == null) return NULL; - return new ItemRefer(block, meta); - } - - private ItemRefer(Item item, int meta) { - mItem = item; - mMeta = meta; - } - - private ItemRefer(Block block, int meta) { - mBlock = block; - mMeta = meta; - } - - private ItemRefer(ItemStack itemStack) { - mItemStack = itemStack; - } - - public ItemStack get(int amount){ - if (mItem != null ) return new ItemStack(mItem, amount, mMeta); - if (mBlock != null) return new ItemStack(mBlock, amount, mMeta); - if (mItemStack != null) return GT_Utility.copyAmount(amount, mItemStack); - return new ItemStack(_null_, amount, 0); - } -} diff --git a/src/main/java/GoodGenerator/util/MaterialFix.java b/src/main/java/GoodGenerator/util/MaterialFix.java deleted file mode 100644 index 8247d49c12..0000000000 --- a/src/main/java/GoodGenerator/util/MaterialFix.java +++ /dev/null @@ -1,50 +0,0 @@ -package GoodGenerator.util; - -import com.github.bartimaeusnek.bartworks.system.material.Werkstoff; -import gregtech.api.enums.GT_Values; -import gregtech.api.enums.Materials; -import gregtech.api.enums.OrePrefixes; -import gregtech.api.util.GT_OreDictUnificator; - -public class MaterialFix { - public static void MaterialFluidExtractionFix(Werkstoff material){ - if (material.hasItemType(OrePrefixes.ingot)) - GT_Values.RA.addFluidExtractionRecipe(material.get(OrePrefixes.ingot),null,material.getMolten(144),0,32,8); - if (material.hasItemType(OrePrefixes.plate)) - GT_Values.RA.addFluidExtractionRecipe(material.get(OrePrefixes.plate),null,material.getMolten(144),0,32,8); - if (material.hasItemType(OrePrefixes.gearGtSmall)) - GT_Values.RA.addFluidExtractionRecipe(material.get(OrePrefixes.gearGtSmall),null,material.getMolten(144),0,32,8); - if (material.hasItemType(OrePrefixes.stickLong)) - GT_Values.RA.addFluidExtractionRecipe(material.get(OrePrefixes.stickLong),null,material.getMolten(144),0,32,8); - if (material.hasItemType(OrePrefixes.spring)) - GT_Values.RA.addFluidExtractionRecipe(material.get(OrePrefixes.spring),null,material.getMolten(144),0,32,8); - if (material.hasItemType(OrePrefixes.stick)) - GT_Values.RA.addFluidExtractionRecipe(material.get(OrePrefixes.stick),null,material.getMolten(72),0,16,8); - if (material.hasItemType(OrePrefixes.itemCasing)) - GT_Values.RA.addFluidExtractionRecipe(material.get(OrePrefixes.itemCasing),null,material.getMolten(72),0,16,8); - if (material.hasItemType(OrePrefixes.wireGt01)) - GT_Values.RA.addFluidExtractionRecipe(material.get(OrePrefixes.wireGt01),null,material.getMolten(72),0,16,8); - if (material.hasItemType(OrePrefixes.cableGt01)) - GT_Values.RA.addFluidExtractionRecipe(material.get(OrePrefixes.cableGt01), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Ash,2),material.getMolten(72),10000,16,8); - if (material.hasItemType(OrePrefixes.foil)) - GT_Values.RA.addFluidExtractionRecipe(material.get(OrePrefixes.foil),null,material.getMolten(36),0,8,8); - if (material.hasItemType(OrePrefixes.springSmall)) - GT_Values.RA.addFluidExtractionRecipe(material.get(OrePrefixes.springSmall),null,material.getMolten(36),0,8,8); - if (material.hasItemType(OrePrefixes.ring)) - GT_Values.RA.addFluidExtractionRecipe(material.get(OrePrefixes.ring),null,material.getMolten(36),0,8,8); - if (material.hasItemType(OrePrefixes.bolt)) - GT_Values.RA.addFluidExtractionRecipe(material.get(OrePrefixes.bolt),null,material.getMolten(18),0,4,8); - if (material.hasItemType(OrePrefixes.wireFine)) - GT_Values.RA.addFluidExtractionRecipe(material.get(OrePrefixes.wireFine),null,material.getMolten(18),0,4,8); - if (material.hasItemType(OrePrefixes.round)) - GT_Values.RA.addFluidExtractionRecipe(material.get(OrePrefixes.round),null,material.getMolten(16),0,4,8); - if (material.hasItemType(OrePrefixes.screw)) - GT_Values.RA.addFluidExtractionRecipe(material.get(OrePrefixes.screw),null,material.getMolten(16),0,4,8); - if (material.hasItemType(OrePrefixes.nugget)) - GT_Values.RA.addFluidExtractionRecipe(material.get(OrePrefixes.nugget),null,material.getMolten(16),0,4,8); - if (material.hasItemType(OrePrefixes.rotor)) - GT_Values.RA.addFluidExtractionRecipe(material.get(OrePrefixes.rotor),null,material.getMolten(612),0,136,8); - if (material.hasItemType(OrePrefixes.gearGt)) - GT_Values.RA.addFluidExtractionRecipe(material.get(OrePrefixes.gearGt),null,material.getMolten(576),0,128,8); - } -} diff --git a/src/main/java/GoodGenerator/util/MyRecipeAdder.java b/src/main/java/GoodGenerator/util/MyRecipeAdder.java deleted file mode 100644 index 8f80256b49..0000000000 --- a/src/main/java/GoodGenerator/util/MyRecipeAdder.java +++ /dev/null @@ -1,100 +0,0 @@ -package GoodGenerator.util; - -import gregtech.api.util.GT_Recipe; -import net.minecraft.item.ItemStack; -import net.minecraft.util.StatCollector; -import net.minecraftforge.fluids.FluidStack; - -import java.util.Collection; -import java.util.HashSet; - -public class MyRecipeAdder { - - public static final MyRecipeAdder instance = new MyRecipeAdder(); - - public final liquidMentalFuelMapper NqGFuels = new liquidMentalFuelMapper( - new HashSet<>(50), - "gg.recipe.naquadah_reactor", - StatCollector.translateToLocal("tile.recipe.naquadah_reactor"), - null, - "goodgenerator:textures/gui/naquadah_reactor", - 0,0,0,1,1, - StatCollector.translateToLocal("value.naquadah_reactor") + " ", - 1, - " EU/t", - false, - true - ); - - public final NaqFuelRefineMapper FRF = new NaqFuelRefineMapper( - new HashSet<>(50), - "gg.recipe.naquadah_fuel_refine_factory", - StatCollector.translateToLocal("tile.naquadah_fuel_refine_factory"), - null, - "gregtech:textures/gui/basicmachines/FusionReactor", - 6,0, 0, 1, 1, - StatCollector.translateToLocal("value.naquadah_fuel_refine_factory.0") + " ", - 1, - StatCollector.translateToLocal("value.naquadah_fuel_refine_factory.1"), - true, - true - ); - - public final NeutronActivatorMapper NA = new NeutronActivatorMapper( - new HashSet<>(150), - "gg.recipe.neutron_activator", - StatCollector.translateToLocal("tile.neutron_activator"), - null, - "goodgenerator:textures/gui/neutron_activator", - 6, 6, 0, 0, 0, - null, 0, null, - false, - false - ); - - public static class liquidMentalFuelMapper extends GT_Recipe.GT_Recipe_Map_Fuel{ - public liquidMentalFuelMapper(Collection aRecipeList, String aUnlocalizedName, String aLocalName, String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, int aMinimalInputItems, int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, int aNEISpecialValueMultiplier, String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, boolean aNEIAllowed){ - super(aRecipeList, aUnlocalizedName, aLocalName, aNEIName, aNEIGUIPath, aUsualInputCount, aUsualOutputCount, aMinimalInputItems, aMinimalInputFluids, aAmperage, aNEISpecialValuePre, aNEISpecialValueMultiplier, aNEISpecialValuePost, aShowVoltageAmperageInNEI, aNEIAllowed); - } - - public void addFuel(FluidStack input, FluidStack output, int EUt, int ticks){ - super.addRecipe(true, null, null, null, new FluidStack[]{input}, new FluidStack[]{output}, ticks, 0, EUt); - } - } - - public void addLiquidMentalFuel(FluidStack input, FluidStack output, int EUt, int ticks){ - NqGFuels.addFuel(input, output, EUt, ticks); - } - - public static class NaqFuelRefineMapper extends GT_Recipe.GT_Recipe_Map{ - public NaqFuelRefineMapper(Collection aRecipeList, String aUnlocalizedName, String aLocalName, String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, int aMinimalInputItems, int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, int aNEISpecialValueMultiplier, String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, boolean aNEIAllowed){ - super(aRecipeList, aUnlocalizedName, aLocalName, aNEIName, aNEIGUIPath, aUsualInputCount, aUsualOutputCount, aMinimalInputItems, aMinimalInputFluids, aAmperage, aNEISpecialValuePre, aNEISpecialValueMultiplier, aNEISpecialValuePost, aShowVoltageAmperageInNEI, aNEIAllowed); - } - - public void addNaqFuelRefineRecipe(FluidStack[] input1, ItemStack[] input2, FluidStack output, int EUt, int ticks, int tier){ - super.addRecipe(false, input2, null, null, input1, new FluidStack[]{output}, ticks, EUt, tier); - } - } - - public void addNaquadahFuelRefineRecipe(FluidStack[] input1, ItemStack[] input2, FluidStack output, int EUt, int ticks, int tier){ - FRF.addNaqFuelRefineRecipe(input1, input2, output, EUt, ticks, tier); - } - - public static class NeutronActivatorMapper extends GT_Recipe.GT_Recipe_Map{ - public NeutronActivatorMapper(Collection aRecipeList, String aUnlocalizedName, String aLocalName, String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, int aMinimalInputItems, int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, int aNEISpecialValueMultiplier, String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, boolean aNEIAllowed){ - super(aRecipeList, aUnlocalizedName, aLocalName, aNEIName, aNEIGUIPath, aUsualInputCount, aUsualOutputCount, aMinimalInputItems, aMinimalInputFluids, aAmperage, aNEISpecialValuePre, aNEISpecialValueMultiplier, aNEISpecialValuePost, aShowVoltageAmperageInNEI, aNEIAllowed); - } - - public void addNARecipe(FluidStack[] input1, ItemStack[] input2, FluidStack[] output1, ItemStack[] output2, int ticks, int special) { - super.addRecipe(false, input2, output2, null, input1, output1, ticks, 0, special); - } - } - - public void addNeutronActivatorRecipe(FluidStack[] input1, ItemStack[] input2, FluidStack[] output1, ItemStack[] output2, int ticks, int maxNKE, int minNKE) { - if (maxNKE <= 0) maxNKE = 1; - if (maxNKE >= 1100) maxNKE = 1100; - if (minNKE < 0) minNKE = 0; - if (minNKE >= maxNKE) minNKE = maxNKE - 1; - NA.addNARecipe(input1, input2, output1, output2, ticks, maxNKE * 10000 + minNKE); - } -} diff --git a/src/main/java/GoodGenerator/util/StructureHelper.java b/src/main/java/GoodGenerator/util/StructureHelper.java deleted file mode 100644 index bce7402035..0000000000 --- a/src/main/java/GoodGenerator/util/StructureHelper.java +++ /dev/null @@ -1,112 +0,0 @@ -package GoodGenerator.util; - -import com.gtnewhorizon.structurelib.StructureLibAPI; -import com.gtnewhorizon.structurelib.structure.IStructureElement; -import gregtech.api.enums.Materials; -import gregtech.api.enums.OrePrefixes; -import gregtech.api.metatileentity.BaseMetaPipeEntity; -import gregtech.api.metatileentity.implementations.GT_MetaPipeEntity_Frame; -import gregtech.api.util.GT_OreDictUnificator; -import net.minecraft.block.Block; -import net.minecraft.init.Items; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; -import net.minecraft.world.World; - -import java.util.Arrays; -import java.util.function.BiConsumer; -import java.util.function.BiPredicate; -import java.util.function.Function; - -public class StructureHelper { - - public static IStructureElement addFrame(Materials aMaterials) { - return new IStructureElement() { - - private IIcon[] mIcons; - - @Override - public boolean check(T t, World world, int x, int y, int z) { - TileEntity tBlock = world.getTileEntity(x, y, z); - if (tBlock instanceof BaseMetaPipeEntity) { - BaseMetaPipeEntity tFrame = (BaseMetaPipeEntity) tBlock; - if (tFrame.isInvalidTileEntity()) return false; - if (tFrame.getMetaTileEntity() instanceof GT_MetaPipeEntity_Frame) { - return ((GT_MetaPipeEntity_Frame) tFrame.getMetaTileEntity()).mMaterial == aMaterials; - } - } - return false; - } - - @Override - public boolean spawnHint(T t, World world, int x, int y, int z, ItemStack trigger) { - if (mIcons == null) { - mIcons = new IIcon[6]; - Arrays.fill(mIcons, aMaterials.mIconSet.mTextures[OrePrefixes.frameGt.mTextureIndex].getIcon()); - } - StructureLibAPI.hintParticleTinted(world, x, y, z, mIcons, aMaterials.mRGBa); - return true; - } - - @Override - public boolean placeBlock(T t, World world, int x, int y, int z, ItemStack trigger) { - ItemStack tFrame = GT_OreDictUnificator.get(OrePrefixes.frameGt, aMaterials, 1); - if (tFrame.getItem() instanceof ItemBlock) { - ItemBlock tFrameStackItem = (ItemBlock) tFrame.getItem(); - return tFrameStackItem.placeBlockAt(tFrame, null, world, x, y, z, 6, 0, 0, 0, Items.feather.getDamage(tFrame)); - } - return false; - } - }; - } - - //Only support to use meta to tier - public static IStructureElement addTieredBlock(Block aBlock, BiConsumer aSetTheFuckingMeta, Function aGetTheFuckingMeta, int maxMeta) { - return addTieredBlock(aBlock, (t, i) -> { - aSetTheFuckingMeta.accept(t, i); - return true; - }, aGetTheFuckingMeta, maxMeta - ); - } - - public static IStructureElement addTieredBlock(Block aBlock, BiPredicate aSetTheFuckingMeta, Function aGetTheFuckingMeta, int maxMeta) { - - return new IStructureElement() { - @Override - public boolean check(T t, World world, int x, int y, int z) { - Block tBlock = world.getBlock(x, y, z); - if (aBlock == tBlock) { - Integer currentMeta = aGetTheFuckingMeta.apply(t); - int newMeta = tBlock.getDamageValue(world, x, y, z) + 1; - if (newMeta > maxMeta) return false; - if (currentMeta == 0) { - return aSetTheFuckingMeta.test(t, newMeta); - } else { - return currentMeta == newMeta; - } - } - return false; - } - - @Override - public boolean spawnHint(T t, World world, int x, int y, int z, ItemStack trigger) { - StructureLibAPI.hintParticle(world, x, y, z, aBlock, getMeta(trigger)); - return true; - } - - @Override - public boolean placeBlock(T t, World world, int x, int y, int z, ItemStack trigger) { - return world.setBlock(x, y, z, aBlock, getMeta(trigger), 3); - } - - private int getMeta(ItemStack trigger) { - int meta = trigger.stackSize; - if (meta <= 0) meta = 0; - if (meta >= maxMeta) meta = maxMeta - 1; - return meta; - } - }; - } -} diff --git a/src/main/java/goodgenerator/blocks/myFluids/BaseFluid.java b/src/main/java/goodgenerator/blocks/myFluids/BaseFluid.java new file mode 100644 index 0000000000..9ccbd27e70 --- /dev/null +++ b/src/main/java/goodgenerator/blocks/myFluids/BaseFluid.java @@ -0,0 +1,54 @@ +package goodgenerator.blocks.myFluids; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.util.IIcon; +import net.minecraftforge.fluids.BlockFluidClassic; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidRegistry; + +import static goodgenerator.main.GoodGenerator.MOD_ID; + +public class BaseFluid extends BlockFluidClassic{ + @SideOnly( Side.CLIENT ) + protected IIcon stillIcon; + @SideOnly( Side.CLIENT ) + protected IIcon flowingIcon; + private String stillTexture; + private String flowingTexture; + + public BaseFluid(Fluid fluid, Material material) + { + super( fluid, material ); + } + + public void SetTexture(String fluidName) + { + stillTexture = MOD_ID + ":fluids/" + fluidName + ".still"; + flowingTexture = MOD_ID + ":fluids/" + fluidName + ".flowing"; + } + + public static Fluid BuildFluid(String fluidName){ + Fluid tFluid = new Fluid(fluidName); + FluidRegistry.registerFluid(tFluid); + return tFluid; + } + + @SideOnly( Side.CLIENT ) + @Override + public void registerBlockIcons( IIconRegister register ) + { + stillIcon = register.registerIcon(stillTexture); + flowingIcon = register.registerIcon(flowingTexture); + + super.getFluid().setIcons( stillIcon, flowingIcon ); + } + + @Override + public IIcon getIcon( int side, int meta ) + { + return ( side == 0 || side == 1 ) ? stillIcon : flowingIcon; + } +} diff --git a/src/main/java/goodgenerator/blocks/myFluids/FluidsBuilder.java b/src/main/java/goodgenerator/blocks/myFluids/FluidsBuilder.java new file mode 100644 index 0000000000..94857b73f6 --- /dev/null +++ b/src/main/java/goodgenerator/blocks/myFluids/FluidsBuilder.java @@ -0,0 +1,176 @@ +package goodgenerator.blocks.myFluids; + +import goodgenerator.crossmod.nei.NEI_Config; +import cpw.mods.fml.common.registry.GameRegistry; +import net.minecraft.block.material.Material; +import net.minecraftforge.fluids.Fluid; + +public class FluidsBuilder { + public FluidsBuilder(){ + } + + public static void Register() { + crackedNaquadahGas_Lightly(); + crackedNaquadahGas_Moderately(); + crackedNaquadahGas_Heavily(); + crackedLightNaquadahFuel_Lightly(); + crackedLightNaquadahFuel_Moderately(); + crackedLightNaquadahFuel_Heavily(); + crackedHeavyNaquadahFuel_Lightly(); + crackedHeavyNaquadahFuel_Moderately(); + crackedHeavyNaquadahFuel_Heavily(); + crackedNaquadahAsphalt_Lightly(); + crackedNaquadahAsphalt_Moderately(); + crackedNaquadahAsphalt_Heavily(); + combustionPromotor(); + } + + public static void crackedNaquadahGas_Lightly(){ + Fluid tmp = BaseFluid.BuildFluid("lightlyCrackedNaquadahGas"); + tmp.setGaseous(true) + .setTemperature(800); + BaseFluid tmp2 = new BaseFluid(tmp, Material.water); + tmp2.SetTexture("lightlyCrackedNaquadahGas"); + tmp2.setBlockName("lightlyCrackedNaquadahGas"); + GameRegistry.registerBlock(tmp2,"lightlyCrackedNaquadahGas"); + NEI_Config.hide(tmp2); + } + + public static void crackedNaquadahGas_Moderately(){ + Fluid tmp = BaseFluid.BuildFluid("moderatelyCrackedNaquadahGas"); + tmp.setGaseous(true) + .setTemperature(800); + BaseFluid tmp2 = new BaseFluid(tmp, Material.water); + tmp2.SetTexture("moderatelyCrackedNaquadahGas"); + tmp2.setBlockName("moderatelyCrackedNaquadahGas"); + GameRegistry.registerBlock(tmp2,"moderatelyCrackedNaquadahGas"); + NEI_Config.hide(tmp2); + } + + public static void crackedNaquadahGas_Heavily(){ + Fluid tmp = BaseFluid.BuildFluid("heavilyCrackedNaquadahGas"); + tmp.setGaseous(true) + .setTemperature(800); + BaseFluid tmp2 = new BaseFluid(tmp, Material.water); + tmp2.SetTexture("heavilyCrackedNaquadahGas"); + tmp2.setBlockName("heavilyCrackedNaquadahGas"); + GameRegistry.registerBlock(tmp2,"heavilyCrackedNaquadahGas"); + NEI_Config.hide(tmp2); + } + + public static void crackedLightNaquadahFuel_Lightly(){ + Fluid tmp = BaseFluid.BuildFluid("lightlyCrackedLightNaquadahFuel"); + tmp.setGaseous(false) + .setTemperature(1200); + BaseFluid tmp2 = new BaseFluid(tmp, Material.water); + tmp2.SetTexture("lightlyCrackedLightNaquadahFuel"); + tmp2.setBlockName("lightlyCrackedLightNaquadahFuel"); + GameRegistry.registerBlock(tmp2,"lightlyCrackedLightNaquadahFuel"); + NEI_Config.hide(tmp2); + } + + public static void crackedLightNaquadahFuel_Moderately(){ + Fluid tmp = BaseFluid.BuildFluid("moderatelyCrackedLightNaquadahFuel"); + tmp.setGaseous(false) + .setTemperature(1200); + BaseFluid tmp2 = new BaseFluid(tmp, Material.water); + tmp2.SetTexture("moderatelyCrackedLightNaquadahFuel"); + tmp2.setBlockName("moderatelyCrackedLightNaquadahFuel"); + GameRegistry.registerBlock(tmp2,"moderatelyCrackedLightNaquadahFuel"); + NEI_Config.hide(tmp2); + } + + public static void crackedLightNaquadahFuel_Heavily(){ + Fluid tmp = BaseFluid.BuildFluid("heavilyCrackedLightNaquadahFuel"); + tmp.setGaseous(false) + .setTemperature(1200); + BaseFluid tmp2 = new BaseFluid(tmp, Material.water); + tmp2.SetTexture("heavilyCrackedLightNaquadahFuel"); + tmp2.setBlockName("heavilyCrackedLightNaquadahFuel"); + GameRegistry.registerBlock(tmp2,"heavilyCrackedLightNaquadahFuel"); + NEI_Config.hide(tmp2); + } + + public static void crackedHeavyNaquadahFuel_Lightly(){ + Fluid tmp = BaseFluid.BuildFluid("lightlyCrackedHeavyNaquadahFuel"); + tmp.setGaseous(false) + .setTemperature(1200); + BaseFluid tmp2 = new BaseFluid(tmp, Material.water); + tmp2.SetTexture("lightlyCrackedHeavyNaquadahFuel"); + tmp2.setBlockName("lightlyCrackedHeavyNaquadahFuel"); + GameRegistry.registerBlock(tmp2,"lightlyCrackedHeavyNaquadahFuel"); + NEI_Config.hide(tmp2); + } + + public static void crackedHeavyNaquadahFuel_Moderately(){ + Fluid tmp = BaseFluid.BuildFluid("moderatelyCrackedHeavyNaquadahFuel"); + tmp.setGaseous(false) + .setTemperature(1200); + BaseFluid tmp2 = new BaseFluid(tmp, Material.water); + tmp2.SetTexture("moderatelyCrackedHeavyNaquadahFuel"); + tmp2.setBlockName("moderatelyCrackedHeavyNaquadahFuel"); + GameRegistry.registerBlock(tmp2,"moderatelyCrackedHeavyNaquadahFuel"); + NEI_Config.hide(tmp2); + } + + public static void crackedHeavyNaquadahFuel_Heavily(){ + Fluid tmp = BaseFluid.BuildFluid("heavilyCrackedHeavyNaquadahFuel"); + tmp.setGaseous(false) + .setTemperature(1200); + BaseFluid tmp2 = new BaseFluid(tmp, Material.water); + tmp2.SetTexture("heavilyCrackedHeavyNaquadahFuel"); + tmp2.setBlockName("heavilyCrackedHeavyNaquadahFuel"); + GameRegistry.registerBlock(tmp2,"heavilyCrackedHeavyNaquadahFuel"); + NEI_Config.hide(tmp2); + } + + public static void crackedNaquadahAsphalt_Lightly(){ + Fluid tmp = BaseFluid.BuildFluid("lightlyCrackedNaquadahAsphalt"); + tmp.setGaseous(false) + .setTemperature(1800) + .setDensity(20000) + .setViscosity(20000); + BaseFluid tmp2 = new BaseFluid(tmp, Material.water); + tmp2.SetTexture("lightlyCrackedNaquadahAsphalt"); + tmp2.setBlockName("lightlyCrackedNaquadahAsphalt"); + GameRegistry.registerBlock(tmp2,"lightlyCrackedNaquadahAsphalt"); + NEI_Config.hide(tmp2); + } + + public static void crackedNaquadahAsphalt_Moderately(){ + Fluid tmp = BaseFluid.BuildFluid("moderatelyCrackedNaquadahAsphalt"); + tmp.setGaseous(false) + .setTemperature(1800) + .setDensity(20000) + .setViscosity(20000); + BaseFluid tmp2 = new BaseFluid(tmp, Material.water); + tmp2.SetTexture("moderatelyCrackedNaquadahAsphalt"); + tmp2.setBlockName("moderatelyCrackedNaquadahAsphalt"); + GameRegistry.registerBlock(tmp2,"moderatelyCrackedNaquadahAsphalt"); + NEI_Config.hide(tmp2); + } + + public static void crackedNaquadahAsphalt_Heavily(){ + Fluid tmp = BaseFluid.BuildFluid("heavilyCrackedNaquadahAsphalt"); + tmp.setGaseous(false) + .setTemperature(1800) + .setDensity(20000) + .setViscosity(20000); + BaseFluid tmp2 = new BaseFluid(tmp, Material.water); + tmp2.SetTexture("heavilyCrackedNaquadahAsphalt"); + tmp2.setBlockName("heavilyCrackedNaquadahAsphalt"); + GameRegistry.registerBlock(tmp2,"heavilyCrackedNaquadahAsphalt"); + NEI_Config.hide(tmp2); + } + + public static void combustionPromotor(){ + Fluid tmp = BaseFluid.BuildFluid("combustionPromotor"); + tmp.setGaseous(false) + .setTemperature(300); + BaseFluid tmp2 = new BaseFluid(tmp, Material.water); + tmp2.SetTexture("combustionPromotor"); + tmp2.setBlockName("combustionPromotor"); + GameRegistry.registerBlock(tmp2,"combustionPromotor"); + NEI_Config.hide(tmp2); + } +} diff --git a/src/main/java/goodgenerator/blocks/regularBlock/Casing.java b/src/main/java/goodgenerator/blocks/regularBlock/Casing.java new file mode 100644 index 0000000000..7a1db3278d --- /dev/null +++ b/src/main/java/goodgenerator/blocks/regularBlock/Casing.java @@ -0,0 +1,123 @@ +package goodgenerator.blocks.regularBlock; + +import goodgenerator.main.GoodGenerator; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import gregtech.api.GregTech_API; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EnumCreatureType; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +import java.util.List; + +public class Casing extends Block { + + @SideOnly(Side.CLIENT) + protected IIcon[] texture; + String[] textureNames; + protected String name; + + public Casing(String name) { + super(Material.iron); + this.setHardness(9.0F); + this.setResistance(5.0F); + this.name = name; + this.setHarvestLevel("wrench",2); + this.setCreativeTab(GoodGenerator.GG); + GregTech_API.registerMachineBlock(this, -1); + } + + public Casing(String name, String[] texture){ + super(Material.iron); + this.setHardness(9.0F); + this.setResistance(5.0F); + this.name = name; + this.textureNames = texture; + this.setHarvestLevel("wrench",2); + this.setCreativeTab(GoodGenerator.GG); + GregTech_API.registerMachineBlock(this, -1); + } + + public Casing(String name, String[] texture, Material material){ + super(material); + this.setHardness(9.0F); + this.setResistance(5.0F); + this.name = name; + this.textureNames = texture; + this.setHarvestLevel("wrench",2); + this.setCreativeTab(GoodGenerator.GG); + GregTech_API.registerMachineBlock(this, -1); + } + + @Override + public int damageDropped(int meta) { + return meta; + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int meta) { + return meta < this.texture.length ? this.texture[meta] : this.texture[0]; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister par1IconRegister) { + this.texture = new IIcon[this.textureNames.length]; + for (int i = 0; i < this.textureNames.length; i++) { + this.texture[i] = par1IconRegister.registerIcon(this.textureNames[i]); + } + } + + @Override + @SideOnly(Side.CLIENT) + @SuppressWarnings("unchecked") + public void getSubBlocks(Item item, CreativeTabs tab, List list) { + for (int i = 0; i < this.textureNames.length; i++) { + list.add(new ItemStack(item, 1, i)); + } + } + + @Override + public void onBlockAdded(World aWorld, int aX, int aY, int aZ) { + if (GregTech_API.isMachineBlock(this, aWorld.getBlockMetadata(aX, aY, aZ))) { + GregTech_API.causeMachineUpdate(aWorld, aX, aY, aZ); + } + } + + @Override + public void breakBlock(World aWorld, int aX, int aY, int aZ, Block aBlock, int aMetaData) { + if (GregTech_API.isMachineBlock(this, aWorld.getBlockMetadata(aX, aY, aZ))) { + GregTech_API.causeMachineUpdate(aWorld, aX, aY, aZ); + } + } + + @Override + public String getUnlocalizedName() { + return this.name; + } + + @Override + public boolean canBeReplacedByLeaves(IBlockAccess world, int x, int y, int z) { + return false; + } + + @Override + public boolean canEntityDestroy(IBlockAccess world, int x, int y, int z, Entity entity) { + return false; + } + + @Override + public boolean canCreatureSpawn(EnumCreatureType type, IBlockAccess world, int x, int y, int z) { + return false; + } + +} diff --git a/src/main/java/goodgenerator/blocks/regularBlock/ComplexTextureCasing.java b/src/main/java/goodgenerator/blocks/regularBlock/ComplexTextureCasing.java new file mode 100644 index 0000000000..18a1629cbf --- /dev/null +++ b/src/main/java/goodgenerator/blocks/regularBlock/ComplexTextureCasing.java @@ -0,0 +1,58 @@ +package goodgenerator.blocks.regularBlock; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; + +import java.util.List; + +public class ComplexTextureCasing extends Casing{ + + @SideOnly(Side.CLIENT) + protected IIcon[] texture1, texture2; + String[] textureSide; + String[] textureTopAndDown; + + public ComplexTextureCasing(String name, String[] textureSide, String[] textureTopAndDown){ + super(name); + this.textureSide = textureSide; + this.textureTopAndDown = textureTopAndDown; + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int meta) { + if (side < 2) { + return meta < this.texture2.length ? this.texture2[meta] : this.texture2[0]; + } + else { + return meta < this.texture1.length ? this.texture1[meta] : this.texture1[0]; + } + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister par1IconRegister) { + this.texture1 = new IIcon[this.textureSide.length]; + for (int i = 0; i < this.textureSide.length; i++) { + this.texture1[i] = par1IconRegister.registerIcon(this.textureSide[i]); + } + this.texture2 = new IIcon[this.textureTopAndDown.length]; + for (int i = 0; i < this.textureTopAndDown.length; i++) { + this.texture2[i] = par1IconRegister.registerIcon(this.textureTopAndDown[i]); + } + } + + @Override + @SideOnly(Side.CLIENT) + @SuppressWarnings("unchecked") + public void getSubBlocks(Item item, CreativeTabs tab, List list) { + for (int i = 0; i < Math.max(this.textureSide.length, this.textureTopAndDown.length); i++) { + list.add(new ItemStack(item, 1, i)); + } + } +} diff --git a/src/main/java/goodgenerator/blocks/regularBlock/Frame.java b/src/main/java/goodgenerator/blocks/regularBlock/Frame.java new file mode 100644 index 0000000000..90c38c4cce --- /dev/null +++ b/src/main/java/goodgenerator/blocks/regularBlock/Frame.java @@ -0,0 +1,36 @@ +package goodgenerator.blocks.regularBlock; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.material.Material; +import net.minecraft.world.IBlockAccess; + +public class Frame extends Casing{ + public Frame(String name,String[] texture){ + super(name,texture, Material.iron); + } + + @Override + public boolean isOpaqueCube() { + return false; + } + + @Override + @SideOnly(Side.CLIENT) + public boolean shouldSideBeRendered(IBlockAccess worldClient, int xCoord, int yCoord, int zCoord, int aSide) { + if (worldClient.getBlock(xCoord, yCoord, zCoord) instanceof Frame) + return false; + return super.shouldSideBeRendered(worldClient, xCoord, yCoord, zCoord, aSide); + } + + @Override + @SideOnly(Side.CLIENT) + public int getRenderBlockPass() { + return 1; + } + + @Override + public boolean renderAsNormalBlock() { + return false; + } +} diff --git a/src/main/java/goodgenerator/blocks/regularBlock/TEBlock.java b/src/main/java/goodgenerator/blocks/regularBlock/TEBlock.java new file mode 100644 index 0000000000..b33dbffdec --- /dev/null +++ b/src/main/java/goodgenerator/blocks/regularBlock/TEBlock.java @@ -0,0 +1,180 @@ +package goodgenerator.blocks.regularBlock; + +import goodgenerator.blocks.tileEntity.EssentiaHatch; +import goodgenerator.main.GoodGenerator; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import gregtech.api.GregTech_API; +import gregtech.api.util.GT_Utility; +import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EnumCreatureType; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.util.StatCollector; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import thaumcraft.api.aspects.Aspect; +import thaumcraft.api.aspects.IEssentiaContainerItem; + +import java.util.List; + +public class TEBlock extends BlockContainer { + + @SideOnly(Side.CLIENT) + protected IIcon[] texture; + String[] textureNames; + protected String name; + protected int index; + + public TEBlock(String name, String[] texture, CreativeTabs Tab){ + super(Material.iron); + this.setHardness(9.0F); + this.setResistance(5.0F); + this.name = name; + this.textureNames = texture; + this.setHarvestLevel("wrench",2); + this.setCreativeTab(GoodGenerator.GG); + GregTech_API.registerMachineBlock(this, -1); + } + + public TEBlock(String name, String[] texture, int index){ + super(Material.iron); + this.setHardness(9.0F); + this.setResistance(5.0F); + this.name = name; + this.textureNames = texture; + this.setHarvestLevel("wrench",2); + this.index = index; + this.setCreativeTab(GoodGenerator.GG); + GregTech_API.registerMachineBlock(this, -1); + } + + public TEBlock(String name, String[] texture, Material material){ + super(material); + this.setHardness(9.0F); + this.setResistance(5.0F); + this.name = name; + this.textureNames = texture; + this.setHarvestLevel("wrench",2); + this.setCreativeTab(GoodGenerator.GG); + GregTech_API.registerMachineBlock(this, -1); + } + + public int getIndex() { + return this.index; + } + + @Override + public int damageDropped(int meta) { + return meta; + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int meta) { + return meta < this.texture.length ? this.texture[meta] : this.texture[0]; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister par1IconRegister) { + this.texture = new IIcon[this.textureNames.length]; + for (int i = 0; i < this.textureNames.length; i++) { + this.texture[i] = par1IconRegister.registerIcon(this.textureNames[i]); + } + } + + @Override + @SideOnly(Side.CLIENT) + @SuppressWarnings("unchecked") + public void getSubBlocks(Item item, CreativeTabs tab, List list) { + for (int i = 0; i < this.textureNames.length; i++) { + list.add(new ItemStack(item, 1, i)); + } + } + + @Override + public void onBlockAdded(World aWorld, int aX, int aY, int aZ) { + if (GregTech_API.isMachineBlock(this, aWorld.getBlockMetadata(aX, aY, aZ))) { + GregTech_API.causeMachineUpdate(aWorld, aX, aY, aZ); + } + } + + @Override + public void breakBlock(World aWorld, int aX, int aY, int aZ, Block aBlock, int aMetaData) { + if (GregTech_API.isMachineBlock(this, aWorld.getBlockMetadata(aX, aY, aZ))) { + GregTech_API.causeMachineUpdate(aWorld, aX, aY, aZ); + } + aWorld.removeTileEntity(aX, aY, aZ); + } + + @Override + public String getUnlocalizedName() { + return this.name; + } + + @Override + public boolean canBeReplacedByLeaves(IBlockAccess world, int x, int y, int z) { + return false; + } + + @Override + public boolean canEntityDestroy(IBlockAccess world, int x, int y, int z, Entity entity) { + return false; + } + + @Override + public boolean canCreatureSpawn(EnumCreatureType type, IBlockAccess world, int x, int y, int z) { + return false; + } + + @Override + public TileEntity createTileEntity(World world, int meta) { + if (index == 1) + return new EssentiaHatch(); + return null; + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int par6, float par7, float par8, float par9) { + if (world.isRemote) { + return false; + } else { + TileEntity tile = world.getTileEntity(x, y, z); + if (index == 1) { + if (tile instanceof EssentiaHatch) { + ItemStack tItemStack = player.getHeldItem(); + if (tItemStack != null) { + Item tItem = tItemStack.getItem(); + if (tItem instanceof IEssentiaContainerItem && ((IEssentiaContainerItem) tItem).getAspects(player.getHeldItem()) != null && ((IEssentiaContainerItem) tItem).getAspects(player.getHeldItem()).size() > 0) { + Aspect tLocked = ((IEssentiaContainerItem) tItem).getAspects(player.getHeldItem()).getAspects()[0]; + ((EssentiaHatch) tile).setLockedAspect(tLocked); + GT_Utility.sendChatToPlayer(player, String.format(StatCollector.translateToLocal("essentiahatch.chat.0"), tLocked.getLocalizedDescription())); + } + } + else { + ((EssentiaHatch) tile).setLockedAspect(null); + GT_Utility.sendChatToPlayer(player, StatCollector.translateToLocal("essentiahatch.chat.1")); + } + world.markBlockForUpdate(x, y, z); + return true; + } + else return false; + } + else return false; + } + } + + @Override + public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { + return null; + } +} diff --git a/src/main/java/goodgenerator/blocks/tileEntity/EssentiaHatch.java b/src/main/java/goodgenerator/blocks/tileEntity/EssentiaHatch.java new file mode 100644 index 0000000000..c8a4b1c713 --- /dev/null +++ b/src/main/java/goodgenerator/blocks/tileEntity/EssentiaHatch.java @@ -0,0 +1,225 @@ +package goodgenerator.blocks.tileEntity; + +import goodgenerator.crossmod.thaumcraft.LargeEssentiaEnergyData; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.network.NetworkManager; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.S35PacketUpdateTileEntity; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.util.ForgeDirection; +import thaumcraft.api.ThaumcraftApiHelper; +import thaumcraft.api.aspects.Aspect; +import thaumcraft.api.aspects.AspectList; +import thaumcraft.api.aspects.IAspectContainer; +import thaumcraft.api.aspects.IEssentiaTransport; + +import java.util.ArrayList; + +public class EssentiaHatch extends TileEntity implements IAspectContainer, IEssentiaTransport { + + private Aspect mLocked; + private AspectList current = new AspectList(); + public int mState = 0; + + public void setLockedAspect(Aspect aAspect) { + this.mLocked = aAspect; + } + + @Override + public void readFromNBT(NBTTagCompound tagCompound) { + super.readFromNBT(tagCompound); + + this.mLocked = Aspect.getAspect(tagCompound.getString("mLocked")); + this.mState = tagCompound.getInteger("mState"); + current = new AspectList(); + NBTTagList tlist = tagCompound.getTagList("Aspects", 10); + for (int j = 0; j < tlist.tagCount(); ++j) { + NBTTagCompound rs = tlist.getCompoundTagAt(j); + if (rs.hasKey("key")) { + current.add(Aspect.getAspect(rs.getString("key")), rs.getInteger("amount")); + } + } + } + + @Override + public void writeToNBT(NBTTagCompound tagCompound) { + super.writeToNBT(tagCompound); + + tagCompound.setString("mLocked", this.mLocked == null ? "" : this.mLocked.getTag()); + tagCompound.setInteger("mState", mState); + NBTTagList tlist = new NBTTagList(); + Aspect[] aspectA = current.getAspects(); + for (Aspect aspect : aspectA) { + if (aspect != null) { + NBTTagCompound f = new NBTTagCompound(); + f.setString("key", aspect.getTag()); + f.setInteger("amount", current.getAmount(aspect)); + tlist.appendTag(f); + } + } + tagCompound.setTag("Aspects", tlist); + } + + public final Packet getDescriptionPacket() { + NBTTagCompound nbt = new NBTTagCompound(); + writeToNBT(nbt); + return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, 0, nbt); + } + + public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) { + NBTTagCompound nbt = pkt.func_148857_g(); + readFromNBT(nbt); + } + + public void markDirty() { + super.markDirty(); + if (this.worldObj.isRemote) { + return; + } + this.worldObj.markBlockForUpdate(this.xCoord, this.yCoord, this.zCoord); + } + + @Override + public void updateEntity() { + fillfrompipe(); + } + + public void fillfrompipe() { + if (getEssentiaAmount(null) > 1000) + return; + TileEntity[] te = new TileEntity[ForgeDirection.VALID_DIRECTIONS.length]; + for (int i = 0; i < ForgeDirection.VALID_DIRECTIONS.length; i++) { + te[i] = ThaumcraftApiHelper.getConnectableTile(this.worldObj, this.xCoord, this.yCoord, this.zCoord, ForgeDirection.VALID_DIRECTIONS[i]); + if (te[i] != null) { + IEssentiaTransport pipe = (IEssentiaTransport) te[i]; + if (!pipe.canOutputTo(ForgeDirection.VALID_DIRECTIONS[i])) { + return; + } + if ((pipe.getEssentiaType(ForgeDirection.VALID_DIRECTIONS[i].getOpposite()) != null) && (pipe.getSuctionAmount(ForgeDirection.VALID_DIRECTIONS[i]) < getSuctionAmount(ForgeDirection.VALID_DIRECTIONS[i]))) { + Aspect readyInput = pipe.getEssentiaType(ForgeDirection.VALID_DIRECTIONS[i].getOpposite()); + int type = LargeEssentiaEnergyData.getAspectTypeIndex(readyInput); + if (type != -1 && (mState & (1 << type)) == 0) continue; + if (readyInput.equals(mLocked)) { + addToContainer(mLocked, pipe.takeEssentia(mLocked, 1, ForgeDirection.VALID_DIRECTIONS[i])); + } + if (mLocked == null) + addToContainer(pipe.getEssentiaType(ForgeDirection.VALID_DIRECTIONS[i]), pipe.takeEssentia(pipe.getEssentiaType(ForgeDirection.VALID_DIRECTIONS[i]), 1, ForgeDirection.VALID_DIRECTIONS[i])); + } + } + } + } + + @Override + public AspectList getAspects() { + return current; + } + + @Override + public void setAspects(AspectList aspectList) { + this.current.add(aspectList); + } + + @Override + public boolean doesContainerAccept(Aspect aspect) { + return mLocked == null || mLocked.equals(aspect); + } + + @Override + public int addToContainer(Aspect aspect, int i) { + current.add(aspect, i); + this.markDirty(); + return 0; + } + + @Override + public boolean takeFromContainer(Aspect aspect, int i) { + return false; + } + + @Override + public boolean takeFromContainer(AspectList aspectList) { + return false; + } + + @Override + public boolean doesContainerContainAmount(Aspect aspect, int i) { + return current.aspects.containsKey(aspect) && i <= current.getAmount(aspect); + } + + @Override + public boolean doesContainerContain(AspectList aspectList) { + ArrayList ret = new ArrayList(); + for (Aspect a : aspectList.aspects.keySet()) + ret.add(current.aspects.containsKey(a)); + return !ret.contains(false); + } + + @Override + public int containerContains(Aspect aspect) { + return current.aspects.containsKey(aspect) ? current.getAmount(aspect) : 0; + } + + @Override + public boolean isConnectable(ForgeDirection forgeDirection) { + return true; + } + + @Override + public boolean canInputFrom(ForgeDirection forgeDirection) { + return true; + } + + @Override + public boolean canOutputTo(ForgeDirection forgeDirection) { + return false; + } + + @Override + public void setSuction(Aspect aspect, int i) { } + + @Override + public Aspect getSuctionType(ForgeDirection forgeDirection) { + return this.mLocked; + } + + @Override + public int getSuctionAmount(ForgeDirection forgeDirection) { + return 256; + } + + @Override + public int takeEssentia(Aspect aspect, int i, ForgeDirection forgeDirection) { + return 0; + } + + @Override + public int addEssentia(Aspect aspect, int i, ForgeDirection forgeDirection) { + current.add(aspect, i); + return 0; + } + + @Override + public Aspect getEssentiaType(ForgeDirection forgeDirection) { + return current.getAspects()[0]; + } + + @Override + public int getEssentiaAmount(ForgeDirection forgeDirection) { + int ret = 0; + for (final Aspect A : current.aspects.keySet()) { + ret += current.getAmount(A); + } + return ret; + } + + @Override + public int getMinimumSuction() { + return Integer.MAX_VALUE; + } + + @Override + public boolean renderExtendedTube() { + return true; + } +} diff --git a/src/main/java/goodgenerator/blocks/tileEntity/FuelRefineFactory.java b/src/main/java/goodgenerator/blocks/tileEntity/FuelRefineFactory.java new file mode 100644 index 0000000000..e68c92f8e8 --- /dev/null +++ b/src/main/java/goodgenerator/blocks/tileEntity/FuelRefineFactory.java @@ -0,0 +1,368 @@ +package goodgenerator.blocks.tileEntity; + +import goodgenerator.loader.Loaders; +import goodgenerator.util.DescTextLocalization; +import goodgenerator.util.MyRecipeAdder; +import com.github.bartimaeusnek.crossmod.tectech.TecTechEnabledMulti; +import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_EnergyMulti; +import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_EnergyTunnel; +import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEntity_MultiblockBase_EM; +import com.gtnewhorizon.structurelib.StructureLibAPI; +import com.gtnewhorizon.structurelib.alignment.constructable.IConstructable; +import com.gtnewhorizon.structurelib.structure.IStructureDefinition; +import com.gtnewhorizon.structurelib.structure.IStructureElement; +import com.gtnewhorizon.structurelib.structure.StructureDefinition; +import gregtech.api.enums.Textures; +import gregtech.api.interfaces.ITexture; +import gregtech.api.interfaces.metatileentity.IMetaTileEntity; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.metatileentity.implementations.*; +import gregtech.api.objects.GT_RenderedTexture; +import gregtech.api.render.TextureFactory; +import gregtech.api.util.GT_Multiblock_Tooltip_Builder; +import gregtech.api.util.GT_Recipe; +import gregtech.api.util.GT_Utility; +import net.minecraft.block.Block; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.StatCollector; +import net.minecraft.world.World; +import net.minecraftforge.fluids.FluidStack; +import org.lwjgl.input.Keyboard; + +import java.util.ArrayList; +import java.util.List; + +import static goodgenerator.util.DescTextLocalization.BLUE_PRINT_INFO; +import static com.gtnewhorizon.structurelib.structure.StructureUtility.*; +import static gregtech.api.util.GT_StructureUtility.*; +import static gregtech.api.enums.GT_Values.V; + +public class FuelRefineFactory extends GT_MetaTileEntity_MultiblockBase_EM implements TecTechEnabledMulti, IConstructable { + + private IStructureDefinition multiDefinition = null; + private int Tier = -1; + private int[] cnt = new int[]{0,0,0}; + private static final Block[] coils = new Block[]{Loaders.FRF_Coil_1,Loaders.FRF_Coil_2,Loaders.FRF_Coil_3}; + + public FuelRefineFactory(String name){super(name);} + + public FuelRefineFactory(int id, String name, String nameRegional){ + super(id,name,nameRegional); + } + + @Override + public List getVanillaEnergyHatches() { + return this.mEnergyHatches; + } + + @Override + public List getTecTechEnergyTunnels() { + return new ArrayList<>(); + } + + @Override + public List getTecTechEnergyMultis() { + return new ArrayList<>(); + } + + @Override + public void construct(ItemStack itemStack, boolean hintsOnly) { + structureBuild_EM(mName, 7, 12, 1, hintsOnly, itemStack); + } + + @Override + public IStructureDefinition getStructure_EM() { + if(multiDefinition == null) { + multiDefinition = StructureDefinition + .builder() + .addShape(mName, + transpose(new String[][]{ + {" "," CCC "," "}, + {" XGX "," CCFFFCC "," XGX "}, + {" CC CC "," CFFCCCFFC "," CC CC "}, + {" C C "," CFCC CCFC "," C C "}, + {" C C "," CFC CFC "," C C "}, + {" C C "," CFC CFC "," C C "}, + {" X X ","CFC CFC"," X X "}, + {" G G ","CFC CFC"," G G "}, + {" X X ","CFC CFC"," X X "}, + {" C C "," CFC CFC "," C C "}, + {" C C "," CFC CFC "," C C "}, + {" C C "," CFCC CCFC "," C C "}, + {" CC CC "," CFFC~CFFC "," CC CC "}, + {" XGX "," CCFFFCC "," XGX "}, + {" "," CCC "," "} + }) + ).addElement( + 'X', + ofChain( + ofHatchAdder( + FuelRefineFactory::addToFRFList,179, + Loaders.FRF_Casings,0 + ), + ofBlock( + Loaders.FRF_Casings,0 + ) + ) + ).addElement( + 'C', + ofBlock( + Loaders.FRF_Casings,0 + ) + ).addElement( + 'G', + ofBlock( + Loaders.fieldRestrictingGlass,0 + ) + ).addElement( + 'F', + ofChain( + onElementPass( + x -> ++x.cnt[0], + ofFieldCoil(0) + ), + onElementPass( + x -> ++x.cnt[1], + ofFieldCoil(1) + ), + onElementPass( + x -> ++x.cnt[2], + ofFieldCoil(2) + ) + ) + ) + .build(); + } + return multiDefinition; + } + + public static IStructureElement ofFieldCoil(int aIndex) { + return new IStructureElement() { + @Override + public boolean check(T t, World world, int x, int y, int z) { + Block block = world.getBlock(x, y, z); + return block.equals(coils[aIndex]); + } + + @Override + public boolean spawnHint(T t, World world, int x, int y, int z, ItemStack trigger) { + StructureLibAPI.hintParticle(world, x, y, z, coils[getIndex(trigger)], 0); + return true; + } + + private int getIndex(ItemStack trigger) { + int s = trigger.stackSize; + if (s > 3 || s <= 0) s = 3; + return s - 1; + } + + @Override + public boolean placeBlock(T t, World world, int x, int y, int z, ItemStack trigger) { + return world.setBlock(x, y, z, coils[getIndex(trigger)], 0, 3); + } + }; + } + + @Override + public String[] getDescription(){ + final GT_Multiblock_Tooltip_Builder tt = new GT_Multiblock_Tooltip_Builder(); + tt.addMachineType("Naquadah Fuel Refinery") + .addInfo("Controller block for the Naquadah Fuel Refinery") + .addInfo("But at what cost?") + .addInfo("Produce the endgame naquadah fuel.") + .addInfo("Need field restriction coil to control the fatal radiation.") + .addInfo("Use higher tier coil to unlock more fuel and reduce the process time.") + .addInfo("The structure is too complex!") + .addInfo(BLUE_PRINT_INFO) + .addSeparator() + .beginStructureBlock(3, 15, 15, false) + .addInputHatch("The casings adjoin the field restriction glass.") + .addInputBus("The casings adjoin the field restriction glass.") + .addOutputHatch("The casings adjoin the field restriction glass.") + .addEnergyHatch("The casings adjoin the field restriction glass.") + .toolTipFinisher("Good Generator"); + if (!Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { + return tt.getInformation(); + } else { + return tt.getStructureInformation(); + } + } + + @Override + public void loadNBTData(NBTTagCompound aNBT){ + this.Tier = aNBT.getInteger("mTier"); + super.loadNBTData(aNBT); + } + + @Override + public void saveNBTData(NBTTagCompound aNBT){ + aNBT.setInteger("mTier", this.Tier); + super.saveNBTData(aNBT); + } + + @Override + public String[] getStructureDescription(ItemStack itemStack){ + return DescTextLocalization.addText("FuelRefineFactory.hint", 8); + } + + @Override + public boolean checkMachine_EM(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { + cnt[0] = 0;cnt[1] = 0;cnt[2] = 0; + mWrench = true; + mScrewdriver = true; + mSoftHammer = true; + mHardHammer = true; + mSolderingTool = true; + mCrowbar = true; + return structureCheck_EM(mName, 7,12,1) && getTier() != -1; + } + + public int getTier(){ + for (int i = 0; i < 3; i ++) { + if (cnt[i] == 32) { + Tier = i + 1; + return i; + } + } + Tier = -1; + return -1; + } + + @Override + public boolean checkRecipe_EM(ItemStack aStack){ + + mWrench = true; + mScrewdriver = true; + mSoftHammer = true; + mHardHammer = true; + mSolderingTool = true; + mCrowbar = true; + + ArrayList tFluids = getStoredFluids(); + ArrayList tItems = getStoredInputs(); + MyRecipeAdder.NaqFuelRefineMapper tRecipes = MyRecipeAdder.instance.FRF; + + for (int i = 0; i < tFluids.size() - 1; i++) { + for (int j = i + 1; j < tFluids.size(); j++) { + if (GT_Utility.areFluidsEqual(tFluids.get(i), tFluids.get(j))) { + if ((tFluids.get(i)).amount >= (tFluids.get(j)).amount) { + tFluids.remove(j--); + } else { + tFluids.remove(i--); + break; + } + } + } + } + + for (int i = 0; i < tItems.size() - 1; i++) { + for (int j = i + 1; j < tItems.size(); j++) { + if (GT_Utility.areStacksEqual(tItems.get(i), tItems.get(j))) { + if ((tItems.get(i)).stackSize >= (tItems.get(j)).stackSize) { + tItems.remove(j--); + } else { + tItems.remove(i--); + break; + } + } + } + } + + FluidStack[] inFluids = tFluids.toArray(new FluidStack[0]); + ItemStack[] inItems = tItems.toArray(new ItemStack[0]); + this.mEfficiency = 10000; + + long tPower = getMaxInputEnergy_EM(); + byte tTier = (byte) Math.max(1, GT_Utility.getTier(tPower)); + GT_Recipe recipe = tRecipes.findRecipe(this.getBaseMetaTileEntity(), false, V[tTier], inFluids, inItems); + if (recipe != null) { + if (recipe.mSpecialValue > Tier) return false; + if (recipe.isRecipeInputEqual(true, inFluids, inItems)){ + mEUt = recipe.mEUt * (1 << (Tier - recipe.mSpecialValue)); + mEUt = -Math.abs(mEUt); + mMaxProgresstime = recipe.mDuration / (1 << (Tier - recipe.mSpecialValue)); + this.mOutputFluids = recipe.mFluidOutputs; + this.updateSlots(); + return true; + } + } + return false; + } + + public final boolean addToFRFList(IGregTechTileEntity aTileEntity, int aBaseCasingIndex){ + if (aTileEntity == null) { + return false; + } else { + IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity(); + if (aMetaTileEntity == null) { + return false; + } else { + if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch) { + ((GT_MetaTileEntity_Hatch)aMetaTileEntity).updateTexture(aBaseCasingIndex); + } + if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Input) { + return this.mInputHatches.add((GT_MetaTileEntity_Hatch_Input)aMetaTileEntity); + } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Output) { + return this.mOutputHatches.add((GT_MetaTileEntity_Hatch_Output)aMetaTileEntity); + } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_InputBus) { + return this.mInputBusses.add((GT_MetaTileEntity_Hatch_InputBus)aMetaTileEntity); + } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Energy) { + return this.mEnergyHatches.add((GT_MetaTileEntity_Hatch_Energy)aMetaTileEntity); + } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_EnergyMulti) { + return this.eEnergyMulti.add((GT_MetaTileEntity_Hatch_EnergyMulti)aMetaTileEntity); + } else { + return false; + } + } + } + } + + @Override + public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new FuelRefineFactory(this.mName); + } + + @Override + public int getMaxEfficiency(ItemStack aStack) { + return 10000; + } + + @Override + public int getPollutionPerTick(ItemStack aStack) { + return 0; + } + + @Override + public int getDamageToComponent(ItemStack aStack) { + return 0; + } + + @Override + public boolean explodesOnComponentBreak(ItemStack aStack) { + return true; + } + + @Override + public boolean isCorrectMachinePart(ItemStack aStack) { + return true; + } + + @Override + public String[] getInfoData() { + String[] infoData = new String[super.getInfoData().length + 1]; + System.arraycopy(super.getInfoData(),0,infoData,0, super.getInfoData().length); + infoData[super.getInfoData().length] = StatCollector.translateToLocal("scanner.info.FRF") + " " + this.Tier; + return infoData; + } + + @Override + @SuppressWarnings("ALL") + public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { + if(aSide == aFacing){ + if(aActive) return new ITexture[]{Textures.BlockIcons.getCasingTextureForId(179), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_ASSEMBLY_LINE_ACTIVE), TextureFactory.builder().addIcon(Textures.BlockIcons.OVERLAY_FRONT_ASSEMBLY_LINE_ACTIVE_GLOW).glow().build()}; + return new ITexture[]{Textures.BlockIcons.getCasingTextureForId(179), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FRONT_ASSEMBLY_LINE), TextureFactory.builder().addIcon(Textures.BlockIcons.OVERLAY_FRONT_ASSEMBLY_LINE_GLOW).glow().build()}; + } + return new ITexture[]{Textures.BlockIcons.getCasingTextureForId(179)}; + } +} diff --git a/src/main/java/goodgenerator/blocks/tileEntity/GTMetaTileEntity/NeutronAccelerator.java b/src/main/java/goodgenerator/blocks/tileEntity/GTMetaTileEntity/NeutronAccelerator.java new file mode 100644 index 0000000000..1ee64e26c4 --- /dev/null +++ b/src/main/java/goodgenerator/blocks/tileEntity/GTMetaTileEntity/NeutronAccelerator.java @@ -0,0 +1,66 @@ +package goodgenerator.blocks.tileEntity.GTMetaTileEntity; + +import gregtech.api.interfaces.ITexture; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.metatileentity.MetaTileEntity; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Energy; +import net.minecraft.nbt.NBTTagCompound; + +import static gregtech.api.enums.GT_Values.V; + +public class NeutronAccelerator extends GT_MetaTileEntity_Hatch_Energy { + + public boolean isRunning; + + public NeutronAccelerator(int aID, String aName, String aNameRegional, int aTier) { + super(aID, aName, aNameRegional, aTier); + } + + public NeutronAccelerator(String aName, int aTier, String[] aDescription, ITexture[][][] aTextures) { + super(aName, aTier, aDescription, aTextures); + } + + public int getMaxEUConsume() { + return (int)(V[mTier] * 8 / 10); + } + + @Override + public void loadNBTData(NBTTagCompound aNBT) { + super.loadNBTData(aNBT); + this.isRunning = aNBT.getBoolean("isRunning"); + } + + @Override + public void saveNBTData(NBTTagCompound aNBT) { + super.saveNBTData(aNBT); + aNBT.setBoolean("isRunning", this.isRunning); + } + + @Override + public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new NeutronAccelerator(mName, mTier, this.getDescription(), mTextures); + } + + @Override + public String[] getDescription() { + return new String[]{ + "Input EU to Accelerate the Neutron!", + "Max EU input: " + this.maxEUInput(), + "Max EU consumption: " + this.getMaxEUConsume(), + "Every EU can be transformed into 10~20 eV Neutron Kinetic Energy." + }; + } + + @Override + public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { + if (this.getBaseMetaTileEntity().isServerSide()) { + if (aBaseMetaTileEntity.getStoredEU() >= getMaxEUConsume() && aBaseMetaTileEntity.isAllowedToWork()) { + setEUVar(aBaseMetaTileEntity.getStoredEU() - getMaxEUConsume()); + isRunning = true; + } else { + isRunning = false; + } + } + super.onPostTick(aBaseMetaTileEntity, aTick); + } +} diff --git a/src/main/java/goodgenerator/blocks/tileEntity/GTMetaTileEntity/NeutronSensor.java b/src/main/java/goodgenerator/blocks/tileEntity/GTMetaTileEntity/NeutronSensor.java new file mode 100644 index 0000000000..d69f0b75f8 --- /dev/null +++ b/src/main/java/goodgenerator/blocks/tileEntity/GTMetaTileEntity/NeutronSensor.java @@ -0,0 +1,168 @@ +package goodgenerator.blocks.tileEntity.GTMetaTileEntity; + +import goodgenerator.client.GUI.NeutronSensorGUIClient; +import goodgenerator.common.container.NeutronSensorGUIContainer; +import goodgenerator.main.GoodGenerator; +import goodgenerator.network.MessageOpenNeutronSensorGUI; +import gregtech.api.enums.Textures; +import gregtech.api.interfaces.IIconContainer; +import gregtech.api.interfaces.ITexture; +import gregtech.api.interfaces.metatileentity.IMetaTileEntity; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch; +import gregtech.api.render.TextureFactory; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; + +public class NeutronSensor extends GT_MetaTileEntity_Hatch { + + private static final IIconContainer textureFont = new Textures.BlockIcons.CustomIcon("icons/NeutronSensorFont"); + private static final IIconContainer textureFont_Glow = new Textures.BlockIcons.CustomIcon("icons/NeutronSensorFont_GLOW"); + + protected String texts = ""; + boolean isOn = false; + + public NeutronSensor(int aID, String aName, String aNameRegional, int aTier) { + super(aID, aName, aNameRegional, aTier, 0, "Detect Neutron Kinetic Energy."); + } + + public NeutronSensor(String aName, int aTier, String[] aDescription, ITexture[][][] aTextures) { + super(aName, aTier, 0, aDescription, aTextures); + } + + @Override + public String[] getDescription() { + return new String[]{ + "Can be installed in Neutron Activator.", + "Output Redstone Signal according to the Neutron Kinetic Energy.", + "Right click to open the GUI and setting." + }; + } + + @Override + public void loadNBTData(NBTTagCompound aNBT) { + texts = aNBT.getString("mBoxContext"); + super.loadNBTData(aNBT); + } + + @Override + public void saveNBTData(NBTTagCompound aNBT) { + aNBT.setString("mBoxContext", texts); + super.saveNBTData(aNBT); + } + + @Override + public void initDefaultModes(NBTTagCompound aNBT) { + getBaseMetaTileEntity().setActive(true); + } + + @Override + public boolean isValidSlot(int aIndex) { + return false; + } + + @Override + public boolean isSimpleMachine() { + return true; + } + + @Override + public boolean isFacingValid(byte aFacing) { + return true; + } + + @Override + public boolean isAccessAllowed(EntityPlayer aPlayer) { + return true; + } + + @Override + public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new NeutronSensorGUIClient(aPlayerInventory, aBaseMetaTileEntity, GoodGenerator.MOD_ID + ":textures/gui/NeutronSensorGUI.png", this.texts); + } + + @Override + public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new NeutronSensorGUIContainer(aPlayerInventory, aBaseMetaTileEntity); + } + + @Override + public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer, byte aSide, float aX, float aY, float aZ) { + if (aBaseMetaTileEntity.isClientSide()) return true; + if (aSide == aBaseMetaTileEntity.getFrontFacing() && aPlayer instanceof EntityPlayerMP) { + GoodGenerator.CHANNEL.sendTo(new MessageOpenNeutronSensorGUI(aBaseMetaTileEntity, texts), (EntityPlayerMP) aPlayer); + return true; + } + return false; + } + + public void setText(String text) { + texts = text == null ? "" : text; + } + + public String getText() { + return texts == null ? "" : texts; + } + + public void outputRedstoneSignal(){ + isOn = true; + } + + public void stopOutputRedstoneSignal(){ + isOn = false; + } + + @Override + public ITexture[] getTexturesActive(ITexture aBaseTexture) { + return new ITexture[] { + aBaseTexture, + TextureFactory.of(textureFont), + TextureFactory.builder().addIcon(textureFont_Glow).glow().build() + }; + } + + @Override + public ITexture[] getTexturesInactive(ITexture aBaseTexture) { + return new ITexture[] { + aBaseTexture, + TextureFactory.of(textureFont) + }; + } + + @Override + public boolean allowGeneralRedstoneOutput(){ + return true; + } + + @Override + public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { + if (isOn) { + for (byte i = 0; i < 6; i ++) + aBaseMetaTileEntity.setInternalOutputRedstoneSignal(i, (byte) 15); + } + else { + for (byte i = 0; i < 6; i ++) + aBaseMetaTileEntity.setInternalOutputRedstoneSignal(i, (byte) 0); + } + super.onPostTick(aBaseMetaTileEntity, aTick); + } + + @Override + public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new NeutronSensor(mName, mTier, mDescriptionArray, mTextures); + } + + @Override + public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + return false; + } + + @Override + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + return false; + } + +} diff --git a/src/main/java/goodgenerator/blocks/tileEntity/LargeEssentiaGenerator.java b/src/main/java/goodgenerator/blocks/tileEntity/LargeEssentiaGenerator.java new file mode 100644 index 0000000000..6acbb86ed1 --- /dev/null +++ b/src/main/java/goodgenerator/blocks/tileEntity/LargeEssentiaGenerator.java @@ -0,0 +1,539 @@ +package goodgenerator.blocks.tileEntity; + +import goodgenerator.crossmod.thaumcraft.LargeEssentiaEnergyData; +import goodgenerator.items.MyMaterial; +import goodgenerator.loader.Loaders; +import goodgenerator.util.DescTextLocalization; +import goodgenerator.util.ItemRefer; +import com.github.bartimaeusnek.bartworks.system.material.WerkstoffLoader; +import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_DynamoMulti; +import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEntity_MultiblockBase_EM; +import com.gtnewhorizon.structurelib.alignment.constructable.IConstructable; +import com.gtnewhorizon.structurelib.structure.IStructureDefinition; +import com.gtnewhorizon.structurelib.structure.StructureDefinition; +import gregtech.api.enums.Materials; +import gregtech.api.enums.Textures; +import gregtech.api.interfaces.ITexture; +import gregtech.api.interfaces.metatileentity.IMetaTileEntity; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.metatileentity.implementations.*; +import gregtech.api.objects.GT_RenderedTexture; +import gregtech.api.objects.XSTR; +import gregtech.api.render.TextureFactory; +import gregtech.api.util.GT_Multiblock_Tooltip_Builder; +import gregtech.api.util.GT_Utility; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.StatCollector; +import net.minecraft.world.World; +import net.minecraftforge.fluids.FluidRegistry; +import org.lwjgl.input.Keyboard; +import thaumcraft.api.aspects.Aspect; +import thaumcraft.api.aspects.AspectList; +import thaumcraft.common.config.ConfigBlocks; + +import java.util.ArrayList; + +import static goodgenerator.util.DescTextLocalization.BLUE_PRINT_INFO; +import static com.gtnewhorizon.structurelib.structure.StructureUtility.*; +import static gregtech.api.util.GT_StructureUtility.ofHatchAdder; + +public class LargeEssentiaGenerator extends GT_MetaTileEntity_MultiblockBase_EM implements IConstructable { + + private IStructureDefinition multiDefinition = null; + protected int mStableValue = 0; + protected int mTierLimit = -1; + protected long mLeftEnergy; + private int mUpgrade = 1; + final XSTR R = new XSTR(); + protected ArrayList mEssentiaHatch = new ArrayList<>(); + + public LargeEssentiaGenerator(String name){ + super(name); + } + + public LargeEssentiaGenerator(int id, String name, String nameRegional){ + super(id,name,nameRegional); + } + + @Override + public void construct(ItemStack itemStack, boolean b) { + structureBuild_EM(mName, 4, 0, 4, b, itemStack); + } + + @Override + public boolean checkMachine_EM(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { + mStableValue = 0; + mEssentiaHatch.clear(); + return structureCheck_EM(mName, 4, 0, 4) && (mDynamoHatches.size() + eDynamoMulti.size()) == 1 + && checkHatchTier() && updateEssentiaHatchState(); + } + + public boolean checkHatchTier() { + for (GT_MetaTileEntity_Hatch_Input tHatch : mInputHatches) { + if (tHatch.mTier > mTierLimit) return false; + } + for (GT_MetaTileEntity_Hatch_Dynamo tHatch : mDynamoHatches) { + if (tHatch.mTier > mTierLimit) return false; + } + for (GT_MetaTileEntity_Hatch_DynamoMulti tHatch : eDynamoMulti) { + if (tHatch.mTier > mTierLimit) return false; + } + return true; + } + + @Override + public void loadNBTData(NBTTagCompound aNBT) { + super.loadNBTData(aNBT); + this.mStableValue = aNBT.getInteger("mStableValue"); + this.mLeftEnergy = aNBT.getLong("mLeftEnergy"); + this.mUpgrade = aNBT.getInteger("mUpgrade"); + } + + @Override + public void saveNBTData(NBTTagCompound aNBT) { + super.saveNBTData(aNBT); + aNBT.setInteger("mStableValue", this.mStableValue); + aNBT.setLong("mLeftEnergy", this.mLeftEnergy); + aNBT.setInteger("mUpgrade", this.mUpgrade); + } + + public boolean updateEssentiaHatchState() { + for (EssentiaHatch hatch : mEssentiaHatch) { + hatch.mState = mUpgrade; + } + return true; + } + + @Override + public boolean onWrenchRightClick(byte aSide, byte aWrenchingSide, EntityPlayer aPlayer, float aX, float aY, float aZ) { + if (aWrenchingSide == 0 || aWrenchingSide == 1) return false; + if (getBaseMetaTileEntity().isValidFacing(aWrenchingSide)) { + getBaseMetaTileEntity().setFrontFacing(aWrenchingSide); + return true; + } + return false; + } + + @Override + public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) { + if (this.getBaseMetaTileEntity().isServerSide()) { + ItemStack tCurrentItem = aPlayer.inventory.getCurrentItem(); + if (tCurrentItem != null && tCurrentItem.getItem().equals(ItemRefer.Essentia_Upgrade_Empty.get(1).getItem())) { + int tMeta = tCurrentItem.getItemDamage(); + if ((mUpgrade & (1 << tMeta)) == 0 && tMeta != 0) { + tCurrentItem.stackSize --; + mUpgrade = mUpgrade | (1 << tMeta); + GT_Utility.sendChatToPlayer(aPlayer, tCurrentItem.getDisplayName() + StatCollector.translateToLocal("largeessentiagenerator.chat")); + } + updateEssentiaHatchState(); + return true; + } + } + super.onRightclick(aBaseMetaTileEntity, aPlayer); + return true; + } + + @Override + public IStructureDefinition getStructure_EM() { + if(multiDefinition == null) { + multiDefinition = StructureDefinition + .builder() + .addShape(mName, + transpose(new String[][]{ + {"A A"," "," "," "," ~ "," "," "," ","A A"}, + {"T C T"," CEC "," CEEEC "," CEEEEEC ","CEEEEEEEC"," CEEEEEC "," CEEEC "," CEC ","T C T"}, + {"T TXT T"," TCCCT "," TCCCCCT ","TCCCCCCCT","XCCCCCCCX","TCCCCCCCT"," TCCCCCT "," TCCCT ","T TXT T"} + }) + ).addElement( + 'A', + ofBlock( + ConfigBlocks.blockCosmeticOpaque, 1 + ) + ).addElement( + 'T', + ofBlock( + ConfigBlocks.blockCosmeticSolid, 7 + ) + ).addElement( + 'C', + ofBlock( + Loaders.magicCasing, 0 + ) + ).addElement( + 'E', + ofChain( + onElementPass( + x -> {++x.mStableValue; x.mTierLimit = Math.max(x.mTierLimit, 3);}, + ofBlock( + Loaders.essentiaCell, 0 + ) + ), + onElementPass( + x -> {x.mStableValue += 2; x.mTierLimit = Math.max(x.mTierLimit, 4);}, + ofBlock( + Loaders.essentiaCell, 1 + ) + ), + onElementPass( + x -> {x.mStableValue += 5; x.mTierLimit = Math.max(x.mTierLimit, 5);}, + ofBlock( + Loaders.essentiaCell, 2 + ) + ), + onElementPass( + x -> {x.mStableValue += 10; x.mTierLimit = Math.max(x.mTierLimit, 6);}, + ofBlock( + Loaders.essentiaCell, 3 + ) + ) + ) + ).addElement( + 'X', + ofChain( + ofHatchAdder( + LargeEssentiaGenerator::addLargeEssentiaGeneratorList,1536, + 1 + ), + ofBlock( + Loaders.magicCasing, 0 + ), + ofTileAdder( + LargeEssentiaGenerator::addEssentiaHatch, Loaders.magicCasing, 0 + ) + ) + ) + .build(); + } + return multiDefinition; + } + + public final boolean addEssentiaHatch(TileEntity aTileEntity) { + if (aTileEntity instanceof EssentiaHatch) { + return this.mEssentiaHatch.add((EssentiaHatch) aTileEntity); + } + return false; + } + + public final boolean addLargeEssentiaGeneratorList(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) { + if (aTileEntity == null) { + return false; + } else { + IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity(); + if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Input){ + ((GT_MetaTileEntity_Hatch)aMetaTileEntity).updateTexture(aBaseCasingIndex); + return this.mInputHatches.add((GT_MetaTileEntity_Hatch_Input)aMetaTileEntity); + } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Maintenance){ + ((GT_MetaTileEntity_Hatch)aMetaTileEntity).updateTexture(aBaseCasingIndex); + return this.mMaintenanceHatches.add((GT_MetaTileEntity_Hatch_Maintenance)aMetaTileEntity); + } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Dynamo){ + ((GT_MetaTileEntity_Hatch)aMetaTileEntity).updateTexture(aBaseCasingIndex); + return this.mDynamoHatches.add((GT_MetaTileEntity_Hatch_Dynamo)aMetaTileEntity); + } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_DynamoMulti){ + ((GT_MetaTileEntity_Hatch)aMetaTileEntity).updateTexture(aBaseCasingIndex); + return this.eDynamoMulti.add((GT_MetaTileEntity_Hatch_DynamoMulti)aMetaTileEntity); + } + } + return false; + } + + @Override + public boolean checkRecipe_EM(ItemStack aStack) { + this.mEfficiency = 10000; + this.mMaxProgresstime = 1; + setEssentiaToEUVoltageAndAmp(getVoltageLimit(), getAmpLimit()); + return true; + } + + public int getVoltageLimit() { + long voltage = 0; + for (GT_MetaTileEntity_Hatch tHatch : this.eDynamoMulti) { + voltage += tHatch.maxEUOutput(); + } + for (GT_MetaTileEntity_Hatch tHatch : this.mDynamoHatches) { + voltage += tHatch.maxEUOutput(); + } + if (voltage > Integer.MAX_VALUE) voltage = Integer.MAX_VALUE; + return (int)voltage; + } + + public int getAmpLimit() { + long amp = 0; + for (GT_MetaTileEntity_Hatch tHatch : this.eDynamoMulti) { + amp += tHatch.maxAmperesOut(); + } + for (GT_MetaTileEntity_Hatch tHatch : this.mDynamoHatches) { + amp += tHatch.maxAmperesOut(); + } + if (amp > Integer.MAX_VALUE) amp = Integer.MAX_VALUE; + return (int)amp; + } + + public long getPerAspectEnergy(Aspect aspect) { + int type = LargeEssentiaEnergyData.getAspectTypeIndex(aspect); + if (!isValidEssentia(aspect)) return 0; + switch (type) { + case 0: return normalEssentia(aspect); + case 1: return airEssentia(aspect); + case 2: return thermalEssentia(aspect); + case 3: return unstableEssentia(aspect); + case 4: return victusEssentia(aspect); + case 5: return taintedEssentia(aspect); + case 6: return mechanicEssentia(aspect); + case 7: return spiritEssentia(aspect); + case 8: return radiationEssentia(aspect); + case 9: return electricEssentia(aspect); + default: return 0; + } + } + + public long normalEssentia(Aspect aspect) { + return LargeEssentiaEnergyData.getAspectFuelValue(aspect); + } + + public long airEssentia(Aspect aspect) { + long baseValue = LargeEssentiaEnergyData.getAspectFuelValue(aspect); + double ceoOutput = 0; + int ceoInput = (int) LargeEssentiaEnergyData.getAspectCeo(aspect) * 8; + if (depleteInput(Materials.LiquidAir.getFluid(ceoInput))) { + ceoOutput = 1.5D; + } + else if (depleteInput(Materials.Air.getGas(ceoInput))){ + ceoOutput = 1.0D; + } + return (long) (baseValue * ceoOutput); + } + + public long thermalEssentia(Aspect aspect) { + long baseValue = LargeEssentiaEnergyData.getAspectFuelValue(aspect); + double ceoOutput = 0; + int ceoInput = (int) LargeEssentiaEnergyData.getAspectCeo(aspect) * 2; + if (depleteInput(FluidRegistry.getFluidStack("cryotheum", ceoInput))) { + ceoOutput = 9.0D; + } + else if (depleteInput(Materials.SuperCoolant.getFluid(ceoInput))) { + ceoOutput = 5.0D; + } + else if (depleteInput(FluidRegistry.getFluidStack("ic2coolant", ceoInput))) { + ceoOutput = 1.5D; + } + else if (depleteInput(Materials.Ice.getSolid(ceoInput))) { + ceoOutput = 1.2D; + } + else if (depleteInput(FluidRegistry.getFluidStack("ic2distilledwater", ceoInput))){ + ceoOutput = 1.0D; + } + else if (depleteInput(Materials.Water.getFluid(ceoInput))) { + ceoOutput = 0.5D; + } + + return (long) (baseValue * ceoOutput); + } + + public long unstableEssentia(Aspect aspect) { + long baseValue = LargeEssentiaEnergyData.getAspectFuelValue(aspect); + double ceoOutput = 0; + int ceoInput = (int) LargeEssentiaEnergyData.getAspectCeo(aspect) * 4; + if (depleteInput(WerkstoffLoader.Xenon.getFluidOrGas(ceoInput))){ + ceoOutput = 4.0D; + } + else if (depleteInput(WerkstoffLoader.Krypton.getFluidOrGas(ceoInput))){ + ceoOutput = 3.0D; + } + else if (depleteInput(Materials.Argon.getFluid(ceoInput))){ + ceoOutput = 2.5D; + } + else if (depleteInput(WerkstoffLoader.Neon.getFluidOrGas(ceoInput))){ + ceoOutput = 2.2D; + } + else if (depleteInput(Materials.Helium.getFluid(ceoInput))){ + ceoOutput = 2.0D; + } + else if (depleteInput(Materials.Nitrogen.getFluid(ceoInput))){ + ceoOutput = 1.0D; + } + return (long) (baseValue * ceoOutput); + } + + public long victusEssentia(Aspect aspect) { + long baseValue = LargeEssentiaEnergyData.getAspectFuelValue(aspect); + double ceoOutput = 1.0D; + int ceoInput = (int) LargeEssentiaEnergyData.getAspectCeo(aspect) * 18; + if (depleteInput(FluidRegistry.getFluidStack("xpjuice", ceoInput))) { + ceoOutput = 2.0D; + } + else if (depleteInput(FluidRegistry.getFluidStack("lifeessence", ceoInput))){ + ceoOutput = 6.0D; + } + return (long) (baseValue * ceoOutput); + } + + public long taintedEssentia(Aspect aspect) { + long baseValue = LargeEssentiaEnergyData.getAspectFuelValue(aspect); + double ceoOutput = 1.0D; + int ceoInput = (int) LargeEssentiaEnergyData.getAspectCeo(aspect) * 3; + int chance = 2000; + if (depleteInput(FluidRegistry.getFluidStack("fluidpure", ceoInput))) { + ceoOutput = 60.0D; + chance = 0; + } + else if (depleteInput(FluidRegistry.getFluidStack("fluiddeath", ceoInput))){ + ceoOutput = Math.pow(25000D / baseValue, 4); + chance = 4000; + } + + if (R.nextInt(10000) < chance) { + World world = getBaseMetaTileEntity().getWorld(); + int tX = R.nextInt(4); + int tZ = R.nextInt(4); + if (world.isAirBlock(tX, 0, tZ)) + world.setBlock(tX, 0, tZ, ConfigBlocks.blockFluxGas, R.nextInt(8), 3); + } + + return (long) (baseValue * ceoOutput); + } + + public long mechanicEssentia(Aspect aspect) { + long baseValue = LargeEssentiaEnergyData.getAspectFuelValue(aspect); + double ceoOutput = 0; + int ceoInput = (int) LargeEssentiaEnergyData.getAspectCeo(aspect) * 20; + if (depleteInput(Materials.Lubricant.getFluid(ceoInput))) { + ceoOutput = 1.0D; + } + return (long) (baseValue * ceoOutput); + } + + public long spiritEssentia(Aspect aspect) { + long baseValue = LargeEssentiaEnergyData.getAspectFuelValue(aspect); + double ceoOutput = 1.0D; + int ceoInput = (int) LargeEssentiaEnergyData.getAspectCeo(aspect) * 2; + if (depleteInput(FluidRegistry.getFluidStack("witchery:fluidspirit", ceoInput))) { + ceoOutput = 10D * (1 + mStableValue / 100D); + } + else if (depleteInput(FluidRegistry.getFluidStack("witchery:hollowtears", ceoInput))) { + ceoOutput = 15D * (1 + 100D / mStableValue); + } + return (long) (baseValue * ceoOutput); + } + + public long radiationEssentia(Aspect aspect) { + long baseValue = LargeEssentiaEnergyData.getAspectFuelValue(aspect); + double ceoOutput = 1.0D; + int ceoInput = (int) LargeEssentiaEnergyData.getAspectCeo(aspect) * 6; + if (depleteInput(Materials.Caesium.getMolten(ceoInput))) { + ceoOutput = 2.0D; + } + else if (depleteInput(Materials.Uranium235.getMolten(ceoInput))) { + ceoOutput = 3.0D; + } + else if (depleteInput(Materials.Naquadah.getMolten(ceoInput))) { + ceoOutput = 4.0D; + } + else if (depleteInput(MyMaterial.atomicSeparationCatalyst.getMolten(ceoInput))) { + ceoOutput = 16.0D; + } + return (long) (baseValue * ceoOutput); + } + + public long electricEssentia(Aspect aspect) { + long baseValue = LargeEssentiaEnergyData.getAspectFuelValue(aspect); + double ceoOutput = Math.pow(3.0, GT_Utility.getTier(getVoltageLimit())); + return (long) (baseValue * ceoOutput); + } + + public void setEssentiaToEUVoltageAndAmp(long voltageLimit, long ampLimit) { + long EUt = mLeftEnergy; + long EUVoltage = voltageLimit, EUAmp = 1; + + for (EssentiaHatch hatch: this.mEssentiaHatch){ + AspectList aspects = hatch.getAspects(); + for (Aspect aspect: aspects.aspects.keySet()) { + if (!isValidEssentia(aspect) || getPerAspectEnergy(aspect) == 0) continue; + while (EUt <= (voltageLimit * ampLimit) && aspects.getAmount(aspect) > 0) { + EUt += getPerAspectEnergy(aspect); + aspects.reduce(aspect, 1); + if (aspects.getAmount(aspect) == 0) + aspects.remove(aspect); + } + } + if (EUt == 0 && aspects.size() != 0) { + if (!isValidEssentia(aspects.getAspects()[0]) || getPerAspectEnergy(aspects.getAspects()[0]) == 0) continue; + EUt += getPerAspectEnergy(aspects.getAspects()[0]); + aspects.reduce(aspects.getAspects()[0], 1); + if (aspects.getAmount(aspects.getAspects()[0]) == 0) + aspects.remove(aspects.getAspects()[0]); + } + } + + if (EUt <= voltageLimit) { + EUVoltage = EUt; + EUAmp = 1; + mLeftEnergy = 0; + } + else { + while (EUVoltage * (EUAmp + 1) <= EUt && EUAmp + 1 <= ampLimit) { + EUAmp ++; + } + mLeftEnergy = EUt - (EUVoltage * EUAmp); + } + + this.mEUt = (int)EUVoltage; + this.eAmpereFlow = (int)EUAmp; + } + + @Override + public int getMaxEfficiency(ItemStack aStack) { + return 10000; + } + + @Override + public String[] getStructureDescription(ItemStack itemStack) { + return DescTextLocalization.addText("LargeEssentiaGenerator.hint", 6); + } + + @Override + public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new LargeEssentiaGenerator(this.mName); + } + + @Override + public String[] getDescription() { + final GT_Multiblock_Tooltip_Builder tt = new GT_Multiblock_Tooltip_Builder(); + tt.addMachineType("Essentia Generator") + .addInfo("Controller block for the Large Essentia Generator") + .addInfo("Maybe some thaumaturages are upset by it. . .") + .addInfo("Transform essentia into energy!") + .addInfo("The the Diffusion Cell determines the highest hatch tier that LEG can accept.") + .addInfo("You can find more information about this generator in Thaumonomicon.") + .addInfo("The structure is too complex!") + .addInfo(BLUE_PRINT_INFO) + .addSeparator() + .addMaintenanceHatch("Hint block with dot 1") + .addInputHatch("Hint block with dot 1") + .addDynamoHatch("Hint block with dot 1") + .addOtherStructurePart("Essentia Input Hatch","Hint block with dot 1") + .toolTipFinisher("Good Generator"); + if (!Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { + return tt.getInformation(); + } else { + return tt.getStructureInformation(); + } + } + + @Override + @SuppressWarnings("ALL") + public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { + if(aSide == aFacing) { + if(aActive) return new ITexture[]{Textures.BlockIcons.getCasingTextureForId(1536), new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_DRAGONEGG), TextureFactory.builder().addIcon(Textures.BlockIcons.MACHINE_CASING_DRAGONEGG_GLOW).glow().build()}; + return new ITexture[]{Textures.BlockIcons.getCasingTextureForId(1536), new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_DRAGONEGG)}; + } + return new ITexture[]{Textures.BlockIcons.getCasingTextureForId(1536)}; + } + + public boolean isValidEssentia(Aspect aspect) { + int type = LargeEssentiaEnergyData.getAspectTypeIndex(aspect); + return type != -1 && (mUpgrade & (1 << type)) != 0; + } +} diff --git a/src/main/java/goodgenerator/blocks/tileEntity/MegaPlasmaTurbine.java b/src/main/java/goodgenerator/blocks/tileEntity/MegaPlasmaTurbine.java new file mode 100644 index 0000000000..0e2dda7389 --- /dev/null +++ b/src/main/java/goodgenerator/blocks/tileEntity/MegaPlasmaTurbine.java @@ -0,0 +1,50 @@ +package goodgenerator.blocks.tileEntity; + + +import com.github.bartimaeusnek.crossmod.tectech.TecTechEnabledMulti; +import com.github.technus.tectech.mechanics.constructable.IConstructable; +import com.github.technus.tectech.mechanics.structure.IStructureDefinition; +import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_EnergyMulti; +import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_EnergyTunnel; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Energy; +import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_LargeTurbine_Plasma; +import net.minecraft.item.ItemStack; + +import java.util.ArrayList; +import java.util.List; + +public class MegaPlasmaTurbine extends GT_MetaTileEntity_LargeTurbine_Plasma implements TecTechEnabledMulti, IConstructable { + + private IStructureDefinition multiDefinition = null; + + public MegaPlasmaTurbine(String name){super(name);} + + public MegaPlasmaTurbine(int id, String name, String nameRegional){ + super(id,name,nameRegional); + } + + @Override + public void construct(ItemStack itemStack, boolean b) { + + } + + @Override + public String[] getStructureDescription(ItemStack itemStack) { + return new String[0]; + } + + @Override + public List getVanillaEnergyHatches() { + return this.mEnergyHatches; + } + + @Override + public List getTecTechEnergyTunnels() { + return new ArrayList<>(); + } + + @Override + public List getTecTechEnergyMultis() { + return new ArrayList<>(); + } +} diff --git a/src/main/java/goodgenerator/blocks/tileEntity/MetalVaporTurbine.java b/src/main/java/goodgenerator/blocks/tileEntity/MetalVaporTurbine.java new file mode 100644 index 0000000000..29aa1f3e1c --- /dev/null +++ b/src/main/java/goodgenerator/blocks/tileEntity/MetalVaporTurbine.java @@ -0,0 +1,5 @@ +package goodgenerator.blocks.tileEntity; + +public class MetalVaporTurbine{ + +} diff --git a/src/main/java/goodgenerator/blocks/tileEntity/MultiNqGenerator.java b/src/main/java/goodgenerator/blocks/tileEntity/MultiNqGenerator.java new file mode 100644 index 0000000000..3fd83472d8 --- /dev/null +++ b/src/main/java/goodgenerator/blocks/tileEntity/MultiNqGenerator.java @@ -0,0 +1,427 @@ +package goodgenerator.blocks.tileEntity; + +import goodgenerator.items.MyMaterial; +import goodgenerator.loader.Loaders; +import goodgenerator.util.CrackRecipeAdder; +import goodgenerator.util.DescTextLocalization; +import goodgenerator.util.MyRecipeAdder; +import com.github.bartimaeusnek.bartworks.util.Pair; +import com.github.bartimaeusnek.crossmod.tectech.TecTechEnabledMulti; +import com.github.technus.tectech.thing.metaTileEntity.hatch.*; +import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEntity_MultiblockBase_EM; +import com.gtnewhorizon.structurelib.alignment.constructable.IConstructable; +import com.gtnewhorizon.structurelib.structure.IStructureDefinition; +import com.gtnewhorizon.structurelib.structure.StructureDefinition; +import gregtech.api.GregTech_API; +import gregtech.api.enums.Materials; +import gregtech.api.enums.Textures; +import gregtech.api.interfaces.ITexture; +import gregtech.api.interfaces.metatileentity.IMetaTileEntity; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.metatileentity.implementations.*; +import gregtech.api.objects.GT_RenderedTexture; +import gregtech.api.render.TextureFactory; +import gregtech.api.util.GT_Multiblock_Tooltip_Builder; +import gregtech.api.util.GT_Recipe; +import gregtech.api.util.GT_Utility; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.EnumChatFormatting; +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; +import org.lwjgl.input.Keyboard; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import static goodgenerator.main.GG_Config_Loader.LiquidAirConsumptionPerSecond; +import static goodgenerator.main.GG_Config_Loader.CoolantEfficiency; +import static goodgenerator.main.GG_Config_Loader.ExcitedLiquidCoe; +import static goodgenerator.util.DescTextLocalization.BLUE_PRINT_INFO; +import static com.gtnewhorizon.structurelib.structure.StructureUtility.*; +import static gregtech.api.util.GT_StructureUtility.ofHatchAdder; + +public class MultiNqGenerator extends GT_MetaTileEntity_MultiblockBase_EM implements TecTechEnabledMulti, IConstructable { + + protected IStructureDefinition multiDefinition = null; + protected long leftEnergy = 0; + protected long trueOutput = 0; + protected int trueEff = 0; + protected FluidStack lockedFluid = null; + protected int times = 1; + protected int basicOutput; + + private static final List> excitedLiquid; + + private static final List> coolant; + + static { + excitedLiquid = Arrays.asList( + new Pair<>(MyMaterial.atomicSeparationCatalyst.getMolten(20), ExcitedLiquidCoe[0]), + new Pair<>(Materials.Naquadah.getMolten(20L), ExcitedLiquidCoe[1]), + new Pair<>(Materials.Uranium235.getMolten(180L), ExcitedLiquidCoe[2]), + new Pair<>(Materials.Caesium.getMolten(180L), ExcitedLiquidCoe[3]) + ); + coolant = Arrays.asList( + new Pair<>(FluidRegistry.getFluidStack("cryotheum", 1000), CoolantEfficiency[0]), + new Pair<>(Materials.SuperCoolant.getFluid(1000L), CoolantEfficiency[1]), + new Pair<>(FluidRegistry.getFluidStack("ic2coolant",1000), CoolantEfficiency[2]) + ); + } + + @Override + public void construct(ItemStack itemStack, boolean hintsOnly) { + structureBuild_EM(mName, 3,7,0, hintsOnly, itemStack); + } + + @Override + public String[] getStructureDescription(ItemStack itemStack) { + return DescTextLocalization.addText("MultiNqGenerator.hint", 8); + } + + public final boolean addToGeneratorList(IGregTechTileEntity aTileEntity, int aBaseCasingIndex){ + if (aTileEntity == null) { + return false; + } else { + IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity(); + if (aMetaTileEntity == null) { + return false; + } else { + if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch) { + ((GT_MetaTileEntity_Hatch)aMetaTileEntity).updateTexture(aBaseCasingIndex); + } + if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Input) { + return this.mInputHatches.add((GT_MetaTileEntity_Hatch_Input)aMetaTileEntity); + } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Output) { + return this.mOutputHatches.add((GT_MetaTileEntity_Hatch_Output)aMetaTileEntity); + } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Dynamo) { + return this.mDynamoHatches.add((GT_MetaTileEntity_Hatch_Dynamo)aMetaTileEntity); + } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Maintenance) { + return this.mMaintenanceHatches.add((GT_MetaTileEntity_Hatch_Maintenance)aMetaTileEntity); + } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_DynamoMulti) { + return this.eDynamoMulti.add((GT_MetaTileEntity_Hatch_DynamoMulti)aMetaTileEntity); + } else { + return false; + } + } + } + } + + @Override + public IStructureDefinition getStructure_EM() { + if(multiDefinition == null) { + multiDefinition = StructureDefinition + .builder() + .addShape(mName, + transpose(new String[][]{ + {"AAAAAAA","AAAAAAA","AAAAAAA","AAAAAAA","AAAAAAA","AAAAAAA","AAAAAAA"}, + {"N N"," "," CCC "," CPC "," CCC "," ","N N"}, + {"N N"," "," CCC "," CPC "," CCC "," ","N N"}, + {"N N"," "," CCC "," CPC "," CCC "," ","N N"}, + {"N N"," "," CCC "," CPC "," CCC "," ","N N"}, + {"AAAAAAA","A A","A CCC A","A CPC A","A CCC A","A A","AAAAAAA"}, + {"ANNNNNA","N N","N CCC N","N CPC N","N CCC N","N N","ANNNNNA"}, + {"XXX~XXX","XXXXXXX","XXXXXXX","XXXXXXX","XXXXXXX","XXXXXXX","XXXXXXX"}, + }) + ).addElement( + 'X', + ofChain( + ofHatchAdder( + MultiNqGenerator::addToGeneratorList, 44, + GregTech_API.sBlockCasings3, 12 + ), + ofBlock( + GregTech_API.sBlockCasings3, 12 + ) + ) + ).addElement( + 'A', + ofBlock( + GregTech_API.sBlockCasings3, 12 + ) + ).addElement( + 'N', + ofBlock( + Loaders.radiationProtectionSteelFrame, 0 + ) + ).addElement( + 'C', + ofBlock( + Loaders.MAR_Casing, 0 + ) + ).addElement( + 'P', + ofBlock( + GregTech_API.sBlockCasings2,15 + ) + ) + .build(); + } + return multiDefinition; + } + + public MultiNqGenerator(String name) { + super(name); + } + + public MultiNqGenerator(int id, String name, String nameRegional) { + super(id,name,nameRegional); + } + + @Override + public boolean isCorrectMachinePart(ItemStack aStack) { + return true; + } + + @Override + public void loadNBTData(NBTTagCompound aNBT){ + this.times = aNBT.getInteger("mTimes"); + this.leftEnergy = aNBT.getLong("mLeftEnergy"); + this.basicOutput = aNBT.getInteger("mbasicOutput"); + if (FluidRegistry.getFluid(aNBT.getString("mLockedFluidName")) != null) + this.lockedFluid = new FluidStack(FluidRegistry.getFluid(aNBT.getString("mLockedFluidName")), aNBT.getInteger("mLockedFluidAmount")); + else this.lockedFluid = null; + super.loadNBTData(aNBT); + } + + @Override + public void saveNBTData(NBTTagCompound aNBT){ + aNBT.setInteger("mTimes", this.times); + aNBT.setLong("mLeftEnergy", this.leftEnergy); + aNBT.setInteger("mbasicOutput", this.basicOutput); + if (lockedFluid != null){ + aNBT.setString("mLockedFluidName", this.lockedFluid.getFluid().getName()); + aNBT.setInteger("mLockedFluidAmount", this.lockedFluid.amount); + } + super.saveNBTData(aNBT); + } + + @Override + public boolean checkRecipe_EM(ItemStack aStack) { + + ArrayList tFluids = getStoredFluids(); + + for (int i = 0; i < tFluids.size() - 1; i++) { + for (int j = i + 1; j < tFluids.size(); j++) { + if (GT_Utility.areFluidsEqual(tFluids.get(i), tFluids.get(j))) { + if ((tFluids.get(i)).amount >= (tFluids.get(j)).amount) { + tFluids.remove(j--); + } else { + tFluids.remove(i--); + break; + } + } + } + } + + GT_Recipe tRecipe = MyRecipeAdder.instance.NqGFuels.findRecipe(this.getBaseMetaTileEntity(), true, 1 << 30, tFluids.toArray(new FluidStack[0])); + if (tRecipe != null) { + Pair excitedInfo = getExcited(tFluids.toArray(new FluidStack[0]), false); + int pall = excitedInfo == null ? 1 : excitedInfo.getValue(); + if (consumeFuel(CrackRecipeAdder.copyFluidWithAmount(tRecipe.mFluidInputs[0], pall), tFluids.toArray(new FluidStack[0]))) { + mOutputFluids = new FluidStack[]{CrackRecipeAdder.copyFluidWithAmount(tRecipe.mFluidOutputs[0], pall)}; + basicOutput = tRecipe.mSpecialValue; + times = pall; + lockedFluid = excitedInfo == null ? null : excitedInfo.getKey(); + mMaxProgresstime = tRecipe.mDuration; + return true; + } + } + + return false; + } + + @Override + public boolean onRunningTick(ItemStack stack) { + if (this.getBaseMetaTileEntity().isServerSide()) { + if (mMaxProgresstime != 0 && mProgresstime % 20 == 0) { + FluidStack[] input = getStoredFluids().toArray(new FluidStack[0]); + int eff = 100, time = 1; + if (LiquidAirConsumptionPerSecond != 0 && !consumeFuel(Materials.LiquidAir.getFluid(LiquidAirConsumptionPerSecond), input)) { + this.mEUt = 0; + this.trueEff = 0; + this.trueOutput = 0; + return true; + } + if (getCoolant(input, true) != null) eff = getCoolant(input, false).getValue(); + if (consumeFuel(lockedFluid, input)) time = times; + this.mEUt = basicOutput * eff * time / 100; + this.trueEff = eff; + this.trueOutput = (long) basicOutput * (long) eff * (long) time / 100; + } + addAutoEnergy(trueOutput); + } + return true; + } + + @Override + public String[] getInfoData() { + String[] info = super.getInfoData(); + info[4] = "Probably makes: " + EnumChatFormatting.RED + Math.abs(this.trueOutput) + EnumChatFormatting.RESET + " EU/t"; + info[6] = "Problems: " + EnumChatFormatting.RED + (this.getIdealStatus() - this.getRepairStatus()) + EnumChatFormatting.RESET + " Efficiency: " + EnumChatFormatting.YELLOW + trueEff + EnumChatFormatting.RESET + " %"; + return info; + } + + public boolean consumeFuel(FluidStack target, FluidStack[] input) { + if (target == null) return false; + for (FluidStack inFluid : input) { + if (inFluid != null && inFluid.isFluidEqual(target) && inFluid.amount >= target.amount){ + inFluid.amount -= target.amount; + return true; + } + } + return false; + } + + public Pair getExcited(FluidStack[] input, boolean isConsume) { + for (Pair fluidPair : excitedLiquid) { + FluidStack tFluid = fluidPair.getKey(); + for (FluidStack inFluid : input) { + if (inFluid != null && inFluid.isFluidEqual(tFluid) && inFluid.amount >= tFluid.amount) { + if (isConsume) inFluid.amount -= tFluid.amount; + return fluidPair; + } + } + } + return null; + } + + public Pair getCoolant(FluidStack[] input, boolean isConsume) { + for (Pair fluidPair : coolant) { + FluidStack tFluid = fluidPair.getKey(); + for (FluidStack inFluid : input) { + if (inFluid != null && inFluid.isFluidEqual(tFluid) && inFluid.amount >= tFluid.amount) { + if (isConsume) inFluid.amount -= tFluid.amount; + return fluidPair; + } + } + } + return null; + } + + public void addAutoEnergy(long outputPower){ + if (this.eDynamoMulti.size() > 0) + for (GT_MetaTileEntity_Hatch tHatch : this.eDynamoMulti){ + long voltage = tHatch.maxEUOutput(); + long power = voltage * tHatch.maxAmperesOut(); + long outputAmperes; + if (outputPower > power) doExplosion(8 * GT_Utility.getTier(power)); + if (outputPower >= voltage){ + leftEnergy += outputPower; + outputAmperes = leftEnergy / voltage; + leftEnergy -= outputAmperes * voltage; + addEnergyOutput_EM(voltage, outputAmperes); + } + else{ + addEnergyOutput_EM(outputPower, 1); + } + } + if (this.mDynamoHatches.size() > 0) + for (GT_MetaTileEntity_Hatch tHatch : this.mDynamoHatches){ + long voltage = tHatch.maxEUOutput(); + long power = voltage * tHatch.maxAmperesOut(); + long outputAmperes; + if (outputPower > power) doExplosion(8 * GT_Utility.getTier(power)); + if (outputPower >= voltage){ + leftEnergy += outputPower; + outputAmperes = leftEnergy / voltage; + leftEnergy -= outputAmperes * voltage; + addEnergyOutput_EM(voltage, outputAmperes); + } + else{ + addEnergyOutput_EM(outputPower, 1); + } + } + } + + @Override + public boolean checkMachine_EM(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { + return structureCheck_EM(mName, 3, 7, 0) && mMaintenanceHatches.size() == 1 && mDynamoHatches.size() + eDynamoMulti.size() == 1; + } + + @Override + public int getMaxEfficiency(ItemStack aStack) { + return 0; + } + + @Override + public int getPollutionPerTick(ItemStack aStack) { + return 0; + } + + @Override + public int getDamageToComponent(ItemStack aStack) { + return 0; + } + + @Override + public boolean explodesOnComponentBreak(ItemStack aStack) { + return false; + } + + @Override + public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new MultiNqGenerator(this.mName); + } + + @Override + public String[] getDescription() { + final GT_Multiblock_Tooltip_Builder tt = new GT_Multiblock_Tooltip_Builder(); + tt.addMachineType("Naquadah Reactor") + .addInfo("Controller block for the Naquadah Reactor") + .addInfo("Environmental Friendly!") + .addInfo("Generate power with the High-energy liquid.") + .addInfo(String.format("Consume liquid air %d L/s to keep running, otherwise" + EnumChatFormatting.YELLOW + " it will void your fuel" + EnumChatFormatting.GRAY + ".", LiquidAirConsumptionPerSecond)) + .addInfo("Input liquid nuclear fuel or liquid naquadah fuel.") + .addInfo("The reactor will explode when there are more than" + EnumChatFormatting.RED + " ONE" + EnumChatFormatting.GRAY + " types of fuel in the hatch!") + .addInfo("Consume coolant 1000 L/s to increase the efficiency:") + .addInfo(String.format("IC2 Coolant %d%%, Super Coolant %d%%, Cryotheum %d%%", CoolantEfficiency[2], CoolantEfficiency[1], CoolantEfficiency[0])) + .addInfo("Consume excited liquid to increase the output power:") + .addInfo(String.format("molten caesium | %dx power | 180 L/s ", ExcitedLiquidCoe[3])) + .addInfo(String.format("molten uranium-235 | %dx power | 180 L/s", ExcitedLiquidCoe[2])) + .addInfo(String.format("molten naquadah | %dx power | 20 L/s", ExcitedLiquidCoe[1])) + .addInfo(String.format("molten Atomic Separation Catalyst | %dx power | 20 L/s", ExcitedLiquidCoe[0])) + .addInfo("The structure is too complex!") + .addInfo(BLUE_PRINT_INFO) + .addSeparator() + .beginStructureBlock(7, 8, 7, true) + .addController("Front bottom") + .addDynamoHatch("Any bottom layer casing, only accept ONE!") + .addInputHatch("Any bottom layer casing") + .addOutputHatch("Any bottom layer casing") + .addMaintenanceHatch("Any bottom layer casing") + .toolTipFinisher("Good Generator"); + if (!Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { + return tt.getInformation(); + } else { + return tt.getStructureInformation(); + } + } + + @Override + @SuppressWarnings("ALL") + public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { + if(aSide == aFacing){ + if(aActive) return new ITexture[]{Textures.BlockIcons.getCasingTextureForId(44), new GT_RenderedTexture(Textures.BlockIcons.NAQUADAH_REACTOR_SOLID_FRONT_ACTIVE), TextureFactory.builder().addIcon(Textures.BlockIcons.NAQUADAH_REACTOR_SOLID_FRONT_ACTIVE_GLOW).glow().build()}; + return new ITexture[]{Textures.BlockIcons.getCasingTextureForId(44), new GT_RenderedTexture(Textures.BlockIcons.NAQUADAH_REACTOR_SOLID_FRONT)}; + } + return new ITexture[]{Textures.BlockIcons.getCasingTextureForId(44)}; + } + + @Override + public List getVanillaEnergyHatches() { + return this.mEnergyHatches; + } + + @Override + public List getTecTechEnergyTunnels() { + return new ArrayList<>(); + } + + @Override + public List getTecTechEnergyMultis() { + return new ArrayList<>(); + } + +} diff --git a/src/main/java/goodgenerator/blocks/tileEntity/NeutronActivator.java b/src/main/java/goodgenerator/blocks/tileEntity/NeutronActivator.java new file mode 100644 index 0000000000..6c809bb676 --- /dev/null +++ b/src/main/java/goodgenerator/blocks/tileEntity/NeutronActivator.java @@ -0,0 +1,441 @@ +package goodgenerator.blocks.tileEntity; + +import goodgenerator.blocks.tileEntity.GTMetaTileEntity.NeutronAccelerator; +import goodgenerator.blocks.tileEntity.GTMetaTileEntity.NeutronSensor; +import goodgenerator.client.GUI.NeutronActivatorGUIClient; +import goodgenerator.common.container.NeutronActivatorGUIContainer; +import goodgenerator.loader.Loaders; +import goodgenerator.util.CharExchanger; +import goodgenerator.util.DescTextLocalization; +import goodgenerator.util.ItemRefer; +import goodgenerator.util.MyRecipeAdder; +import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEntity_MultiblockBase_EM; +import com.gtnewhorizon.structurelib.alignment.constructable.IConstructable; +import com.gtnewhorizon.structurelib.structure.IStructureDefinition; +import com.gtnewhorizon.structurelib.structure.StructureDefinition; +import gregtech.api.GregTech_API; +import gregtech.api.enums.Materials; +import gregtech.api.enums.Textures; +import gregtech.api.interfaces.IIconContainer; +import gregtech.api.interfaces.ITexture; +import gregtech.api.interfaces.metatileentity.IMetaTileEntity; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch; +import gregtech.api.render.TextureFactory; +import gregtech.api.util.GT_Multiblock_Tooltip_Builder; +import gregtech.api.util.GT_Recipe; +import gregtech.api.util.GT_Utility; +import ic2.core.Ic2Items; +import net.minecraft.block.Block; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.StatCollector; +import net.minecraftforge.fluids.FluidStack; +import org.lwjgl.input.Keyboard; + +import java.util.ArrayList; +import java.util.Collection; + +import static goodgenerator.util.DescTextLocalization.BLUE_PRINT_INFO; +import static goodgenerator.util.StructureHelper.addFrame; +import static com.gtnewhorizon.structurelib.structure.StructureUtility.*; +import static gregtech.api.util.GT_StructureUtility.ofHatchAdder; +import static org.apache.commons.lang3.RandomUtils.nextInt; + +public class NeutronActivator extends GT_MetaTileEntity_MultiblockBase_EM implements IConstructable { + + protected IStructureDefinition multiDefinition = null; + protected final ArrayList mNeutronAccelerator = new ArrayList<>(); + protected final ArrayList mNeutronSensor = new ArrayList<>(); + protected int casingAmount = 0; + protected int height = 0; + protected int eV = 0, mCeil = 0, mFloor = 0; + + private static final IIconContainer textureFontOn = new Textures.BlockIcons.CustomIcon("icons/NeutronActivator_On"); + private static final IIconContainer textureFontOn_Glow = new Textures.BlockIcons.CustomIcon("icons/NeutronActivator_On_GLOW"); + private static final IIconContainer textureFontOff = new Textures.BlockIcons.CustomIcon("icons/NeutronActivator_Off"); + private static final IIconContainer textureFontOff_Glow = new Textures.BlockIcons.CustomIcon("icons/NeutronActivator_Off_GLOW"); + + protected final String NA_BOTTOM = mName + "buttom"; + protected final String NA_MID = mName + "mid"; + protected final String NA_TOP = mName + "top"; + + public NeutronActivator(String name) { + super(name); + } + + public NeutronActivator(int id, String name, String nameRegional) { + super(id, name, nameRegional); + } + + @Override + public boolean checkRecipe_EM(ItemStack aStack) { + this.mEfficiency = 10000; + + ArrayList tFluids = getStoredFluids(); + ArrayList tItems = getStoredInputs(); + Collection tRecipes = MyRecipeAdder.instance.NA.mRecipeList; + + for (int i = 0; i < tFluids.size() - 1; i++) { + for (int j = i + 1; j < tFluids.size(); j++) { + if (GT_Utility.areFluidsEqual(tFluids.get(i), tFluids.get(j))) { + if ((tFluids.get(i)).amount >= (tFluids.get(j)).amount) { + tFluids.remove(j--); + } else { + tFluids.remove(i--); + break; + } + } + } + } + + for (int i = 0; i < tItems.size() - 1; i++) { + for (int j = i + 1; j < tItems.size(); j++) { + if (GT_Utility.areStacksEqual(tItems.get(i), tItems.get(j))) { + if ((tItems.get(i)).stackSize >= (tItems.get(j)).stackSize) { + tItems.remove(j--); + } else { + tItems.remove(i--); + break; + } + } + } + } + + FluidStack[] inFluids = tFluids.toArray(new FluidStack[0]); + ItemStack[] inItems = tItems.toArray(new ItemStack[0]); + int minNKE, maxNKE; + + for (GT_Recipe recipe : tRecipes) { + minNKE = (recipe.mSpecialValue % 10000) * 1000000; + maxNKE = (recipe.mSpecialValue / 10000) * 1000000; + if (recipe.isRecipeInputEqual(true, inFluids, inItems)) { + mFloor = minNKE; + mCeil = maxNKE; + mMaxProgresstime = Math.max((int)(recipe.mDuration * Math.pow(0.9, height - 4)), 1); + if (eV <= maxNKE && eV >= minNKE) { + this.mOutputFluids = recipe.mFluidOutputs; + this.mOutputItems = recipe.mOutputs; + } else { + this.mOutputFluids = null; + this.mOutputItems = new ItemStack[]{ItemRefer.Radioactive_Waste.get(4)}; + } + return true; + } + } + return false; + } + + @Override + public int getMaxEfficiency(ItemStack aStack) { + return 10000; + } + + @Override + public int getPollutionPerTick(ItemStack aStack) { + return 0; + } + + @Override + public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new NeutronActivatorGUIClient(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "EMDisplay.png"); + } + + @Override + public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new NeutronActivatorGUIContainer(aPlayerInventory, aBaseMetaTileEntity); + } + + @Override + public void loadNBTData(NBTTagCompound aNBT) { + eV = aNBT.getInteger("mKeV"); + mCeil = aNBT.getInteger("mCeil"); + mFloor = aNBT.getInteger("mFloor"); + height = aNBT.getInteger("height"); + super.loadNBTData(aNBT); + } + + @Override + public void saveNBTData(NBTTagCompound aNBT) { + aNBT.setInteger("mKeV", eV); + aNBT.setInteger("mCeil", mCeil); + aNBT.setInteger("mFloor", mFloor); + aNBT.setInteger("height", height); + super.saveNBTData(aNBT); + } + + @Override + public String[] getDescription() { + final GT_Multiblock_Tooltip_Builder tt = new GT_Multiblock_Tooltip_Builder(); + tt.addMachineType("Neutron Activator") + .addInfo("Controller block for the Neutron Activator") + .addInfo("Superluminal-velocity Motion.") + .addInfo("The minimum height of the Speeding Pipe Casing is 4.") + .addInfo("Per extra Speeding Pipe Casing will give time discount.") + .addInfo("But it will reduce the Neutron Accelerator efficiency.") + .addInfo("You need to input energy to the Neutron Accelerator to get it running.") + .addInfo("It will output correct products with Specific Neutron Kinetic Energy.") + .addInfo("Otherwise it will output trash.") + .addInfo("The Neutron Kinetic Energy will decrease 72KeV/s when no Neutron Accelerator is running.") + .addInfo("It will explode when the Neutron Kinetic Energy is over" + EnumChatFormatting.RED + " 1200MeV" + EnumChatFormatting.GRAY + ".") + .addInfo("The structure is too complex!") + .addInfo(BLUE_PRINT_INFO) + .addSeparator() + .addController("Front bottom") + .addInputHatch("Hint block with dot 1") + .addInputBus("Hint block with dot 1") + .addOutputHatch("Hint block with dot 2") + .addOutputBus("Hint block with dot 2") + .addMaintenanceHatch("Hint block with dot 2") + .addOtherStructurePart("Neutron Accelerator", "Hint block with dot 2") + .addOtherStructurePart("Neutron Sensor", "Hint block with dot 2") + .addCasingInfo("Clean Stainless Steel Machine Casing", 7) + .toolTipFinisher("Good Generator"); + if (!Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { + return tt.getInformation(); + } else { + return tt.getStructureInformation(); + } + } + + @Override + public IStructureDefinition getStructure_EM() { + if (multiDefinition == null) { + multiDefinition = StructureDefinition + .builder() + .addShape(NA_TOP, + transpose(new String[][]{ + {"CCCCC", "CDDDC", "CDDDC", "CDDDC", "CCCCC"} + }) + ) + .addShape(NA_MID, + transpose(new String[][]{ + {"F F", " GGG ", " GPG ", " GGG ", "F F"} + }) + ) + .addShape(NA_BOTTOM, + transpose(new String[][]{ + {"XX~XX", "XDDDX", "XDDDX", "XDDDX", "XXXXX"} + }) + ) + .addElement( + 'C', + ofChain( + ofHatchAdder( + NeutronActivator::addClassicInputToMachineList, 49, + 1 + ), + onElementPass( + x -> x.casingAmount++, + ofBlock( + GregTech_API.sBlockCasings4, 1 + ) + ) + ) + ) + .addElement( + 'D', + ofBlock( + GregTech_API.sBlockCasings2, 6 + ) + ) + .addElement( + 'F', + addFrame( + Materials.Steel + ) + ) + .addElement( + 'G', + ofBlock( + Block.getBlockFromItem(Ic2Items.reinforcedGlass.getItem()), 0 + ) + ) + .addElement( + 'P', + ofBlock( + Loaders.speedingPipe, 0 + ) + ) + .addElement( + 'X', + ofChain( + ofHatchAdder( + NeutronActivator::addClassicOutputToMachineList, 49, + 2 + ), + ofHatchAdder( + NeutronActivator::addMaintenanceToMachineList, 49, + 2 + ), + ofHatchAdder( + NeutronActivator::addAcceleratorAndSensor, 49, + 2 + ), + onElementPass( + x -> x.casingAmount++, + ofBlock( + GregTech_API.sBlockCasings4, 1 + ) + ) + ) + ) + .build(); + } + return multiDefinition; + } + + @Override + public boolean checkMachine_EM(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { + this.casingAmount = 0; + this.mNeutronAccelerator.clear(); + this.mNeutronSensor.clear(); + if (!structureCheck_EM(NA_BOTTOM, 2, 0, 0)) return false; + height = 0; + while (structureCheck_EM(NA_MID, 2, height +1, 0)) { + height ++; + } + if (height < 4) return false; + return structureCheck_EM(NA_TOP, 2, height + 1, 0) && casingAmount >= 7; + } + + public final boolean addAcceleratorAndSensor(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) { + if (aTileEntity == null) { + return false; + } else { + IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity(); + if (aMetaTileEntity instanceof NeutronAccelerator) { + ((GT_MetaTileEntity_Hatch) aMetaTileEntity).updateTexture(aBaseCasingIndex); + return this.mNeutronAccelerator.add((NeutronAccelerator) aMetaTileEntity); + } else if (aMetaTileEntity instanceof NeutronSensor) { + ((GT_MetaTileEntity_Hatch) aMetaTileEntity).updateTexture(aBaseCasingIndex); + return this.mNeutronSensor.add((NeutronSensor) aMetaTileEntity); + } + } + return false; + } + + public int maxNeutronKineticEnergy() { + return 1200000000; + } + + public int getCurrentNeutronKineticEnergy() { + return eV; + } + + @Override + public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new NeutronActivator(this.mName); + } + + @Override + public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { + super.onPostTick(aBaseMetaTileEntity, aTick); + boolean anyWorking = false; + if (this.getBaseMetaTileEntity().isServerSide()) { + for (NeutronAccelerator tHatch : mNeutronAccelerator) { + if (tHatch.isRunning && this.getRepairStatus() == this.getIdealStatus()) { + anyWorking = true; + this.eV += Math.max(nextInt(tHatch.getMaxEUConsume(), tHatch.getMaxEUConsume() * 2 + 1) * 10 * Math.pow(0.95, height - 4), 10); + } + } + if (!anyWorking) { + if (this.eV >= 72000 && aTick % 20 == 0) { + this.eV -= 72000; + } else if (this.eV > 0 && aTick % 20 == 0) { + this.eV = 0; + } + } + if (this.eV < 0) this.eV = 0; + if (this.eV > maxNeutronKineticEnergy()) doExplosion(4 * 32); + + for (NeutronSensor tHatch : mNeutronSensor) { + String tText = tHatch.getText(); + if (CharExchanger.isValidCompareExpress(rawProcessExp(tText))) { + if (CharExchanger.compareExpression(rawProcessExp(tText), eV)) { + tHatch.outputRedstoneSignal(); + } else tHatch.stopOutputRedstoneSignal(); + } + } + + if (mProgresstime < mMaxProgresstime && (eV > mCeil || eV < mFloor)) { + this.mOutputFluids = null; + this.mOutputItems = new ItemStack[]{ItemRefer.Radioactive_Waste.get(4)}; + } + } + } + + protected String rawProcessExp(String exp) { + StringBuilder ret = new StringBuilder(); + for (char c : exp.toCharArray()) { + if (exp.length() - ret.length() == 3) { + if (Character.isDigit(c)) ret.append(c); + else { + if (c == 'K' || c == 'k') { + ret.append("000"); + } + if (c == 'M' || c == 'm') { + ret.append("000000"); + } + } + break; + } + ret.append(c); + } + return ret.toString(); + } + + @Override + public void construct(ItemStack stackSize, boolean hintsOnly) { + structureBuild_EM(NA_BOTTOM, 2, 0, 0, hintsOnly, stackSize); + int heights = stackSize.stackSize + 3; + structureBuild_EM(NA_TOP, 2, heights + 1, 0, hintsOnly, stackSize); + while (heights > 0) { + structureBuild_EM(NA_MID, 2, heights, 0, hintsOnly, stackSize); + heights --; + } + } + + @Override + public String[] getStructureDescription(ItemStack itemStack) { + return DescTextLocalization.addText("NeutronActivator.hint", 7); + } + + @Override + public String[] getInfoData() { + int currentNKEInput = 0; + boolean anyWorking = false; + for (NeutronAccelerator tHatch : mNeutronAccelerator) { + if (tHatch.isRunning) { + currentNKEInput += nextInt(tHatch.getMaxEUConsume(), tHatch.getMaxEUConsume() * 2 + 1) * 10 * Math.pow(0.95, height - 4); + anyWorking = true; + } + } + if (!anyWorking) currentNKEInput = -72000; + return new String[] { + "Progress:", + EnumChatFormatting.GREEN + Integer.toString(this.mProgresstime / 20) + EnumChatFormatting.RESET + " s / " + EnumChatFormatting.YELLOW + this.mMaxProgresstime / 20 + EnumChatFormatting.RESET + " s", + "Current Neutron Kinetic Energy Input: " + EnumChatFormatting.GREEN + GT_Utility.formatNumbers(currentNKEInput) + EnumChatFormatting.RESET + "eV", + StatCollector.translateToLocal("scanner.info.NA") + " " + EnumChatFormatting.LIGHT_PURPLE + GT_Utility.formatNumbers(getCurrentNeutronKineticEnergy()) + EnumChatFormatting.RESET + "eV" + }; + } + + @Override + public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { + if(aSide == aFacing) { + if(aActive) return new ITexture[]{ + Textures.BlockIcons.getCasingTextureForId(49), + TextureFactory.of(textureFontOn), + TextureFactory.builder().addIcon(textureFontOn_Glow).glow().build() + }; + else return new ITexture[]{ + Textures.BlockIcons.getCasingTextureForId(49), + TextureFactory.of(textureFontOff), + TextureFactory.builder().addIcon(textureFontOff_Glow).glow().build() + }; + } + return new ITexture[]{Textures.BlockIcons.getCasingTextureForId(49)}; + } +} diff --git a/src/main/java/goodgenerator/blocks/tileEntity/UniversalChemicalFuelEngine.java b/src/main/java/goodgenerator/blocks/tileEntity/UniversalChemicalFuelEngine.java new file mode 100644 index 0000000000..4cd0476b4a --- /dev/null +++ b/src/main/java/goodgenerator/blocks/tileEntity/UniversalChemicalFuelEngine.java @@ -0,0 +1,348 @@ +package goodgenerator.blocks.tileEntity; + +import goodgenerator.loader.Loaders; +import goodgenerator.util.DescTextLocalization; +import com.github.bartimaeusnek.crossmod.tectech.TecTechEnabledMulti; +import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_EnergyMulti; +import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_EnergyTunnel; +import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEntity_MultiblockBase_EM; +import com.gtnewhorizon.structurelib.alignment.constructable.IConstructable; +import com.gtnewhorizon.structurelib.structure.IStructureDefinition; +import com.gtnewhorizon.structurelib.structure.StructureDefinition; +import gregtech.api.GregTech_API; +import gregtech.api.interfaces.ITexture; +import gregtech.api.interfaces.metatileentity.IMetaTileEntity; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.metatileentity.implementations.*; +import gregtech.api.render.TextureFactory; +import gregtech.api.util.GT_Multiblock_Tooltip_Builder; +import gregtech.api.util.GT_Recipe; +import gregtech.api.util.GT_Utility; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; +import org.lwjgl.input.Keyboard; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +import static goodgenerator.util.DescTextLocalization.BLUE_PRINT_INFO; +import static com.gtnewhorizon.structurelib.structure.StructureUtility.*; +import static gregtech.api.enums.Textures.BlockIcons.*; +import static gregtech.api.util.GT_StructureUtility.ofHatchAdder; + +public class UniversalChemicalFuelEngine extends GT_MetaTileEntity_MultiblockBase_EM implements TecTechEnabledMulti, IConstructable { + + protected final double DIESEL_EFFICIENCY_COEFFICIENT = 0.02D; + protected final double GAS_EFFICIENCY_COEFFICIENT = 0.01D; + protected final double EFFICIENCY_CEILING = 1.5D; + + private IStructureDefinition multiDefinition = null; + + public UniversalChemicalFuelEngine(String name){super(name);} + + public UniversalChemicalFuelEngine(int id, String name, String nameRegional){ + super(id,name,nameRegional); + } + + public final boolean addMaintenance(IGregTechTileEntity aTileEntity, int aBaseCasingIndex){ + if (aTileEntity == null) { + return false; + } else { + IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity(); + if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Maintenance){ + ((GT_MetaTileEntity_Hatch)aMetaTileEntity).updateTexture(aBaseCasingIndex); + return this.mMaintenanceHatches.add((GT_MetaTileEntity_Hatch_Maintenance)aMetaTileEntity); + } + } + return false; + } + + public final boolean addMuffler(IGregTechTileEntity aTileEntity, int aBaseCasingIndex){ + if (aTileEntity == null) { + return false; + } else { + IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity(); + if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Muffler){ + ((GT_MetaTileEntity_Hatch)aMetaTileEntity).updateTexture(aBaseCasingIndex); + return this.mMufflerHatches.add((GT_MetaTileEntity_Hatch_Muffler)aMetaTileEntity); + } + } + return false; + } + + public final boolean addInputHatch(IGregTechTileEntity aTileEntity, int aBaseCasingIndex){ + if (aTileEntity == null) { + return false; + } else { + IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity(); + if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Input){ + ((GT_MetaTileEntity_Hatch)aMetaTileEntity).updateTexture(aBaseCasingIndex); + return this.mInputHatches.add((GT_MetaTileEntity_Hatch_Input)aMetaTileEntity); + } + } + return false; + } + + public final boolean addDynamoHatch(IGregTechTileEntity aTileEntity, int aBaseCasingIndex){ + if (aTileEntity == null) { + return false; + } else { + IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity(); + if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Dynamo){ + ((GT_MetaTileEntity_Hatch)aMetaTileEntity).updateTexture(aBaseCasingIndex); + return this.mDynamoHatches.add((GT_MetaTileEntity_Hatch_Dynamo)aMetaTileEntity); + } + } + return false; + } + + @Override + public IStructureDefinition getStructure_EM(){ + if (multiDefinition == null){ + multiDefinition = StructureDefinition + .builder() + .addShape(mName, + transpose(new String[][]{ + {"TTTTT","TTMMT","TTMMT","TTMMT","TTMMT","TTMMT","TTMMT","TTMMT","TTTTT"}, + {"TTTTT","SPCCI-","SPCCI-","SPCCI-","SPCCI-","SPCCI-","SPCCI-","SPCCI-","TTTTT"}, + {"TT~TT","SPGGI-","SPGGI-","SPGGI-","SPGGI-","SPGGI-","SPGGI-","SPGGI-","TTETT"}, + {"TTWTT","TTTTT","TTTTT","TTTTT","TTTTT","TTTTT","TTTTT","TTTTT","TTTTT"} + }) + ).addElement( + 'T', + ofBlock( + GregTech_API.sBlockCasings4, 2 + ) + ).addElement( + 'W', + ofHatchAdder( + UniversalChemicalFuelEngine::addMaintenance, 50, + 1 + ) + ).addElement( + 'M', + ofHatchAdder( + UniversalChemicalFuelEngine::addMuffler, 50, + 2 + ) + ).addElement( + 'S', + ofHatchAdder( + UniversalChemicalFuelEngine::addInputHatch, 50, + 3 + ) + ).addElement( + 'E', + ofHatchAdder( + UniversalChemicalFuelEngine::addDynamoHatch, 50, + 4 + ) + ).addElement( + 'P', + ofBlock( + GregTech_API.sBlockCasings2, 14 + ) + ).addElement( + 'C', + ofBlock( + Loaders.titaniumPlatedCylinder, 0 + ) + ).addElement( + 'G', + ofBlock( + GregTech_API.sBlockCasings2, 4 + ) + ).addElement( + 'I', + ofBlock( + GregTech_API.sBlockCasings4, 13 + ) + ) + .build(); + } + return multiDefinition; + } + + @Override + public boolean checkMachine_EM(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { + return structureCheck_EM(mName, 2, 2, 0); + } + + @Override + public void construct(ItemStack itemStack, boolean b) { + structureBuild_EM(mName, 2, 2, 0, b, itemStack); + } + + @Override + public String[] getStructureDescription(ItemStack itemStack) { + return DescTextLocalization.addText("UniversalChemicalFuelEngine.hint", 11); + } + + @Override + public boolean isCorrectMachinePart(ItemStack aStack) { + return true; + } + + @Override + public int getPollutionPerTick(ItemStack aStack) { + return (int)Math.sqrt(this.mEUt) / 20; + } + + @Override + public String[] getDescription(){ + final GT_Multiblock_Tooltip_Builder tt = new GT_Multiblock_Tooltip_Builder(); + tt.addMachineType("Chemical Engine") + .addInfo("Controller block for the Chemical Engine") + .addInfo("BURNING BURNING BURNING") + .addInfo("Use combustible liquid to generate power.") + .addInfo("You need to supply Combustion Promoter to keep it running.") + .addInfo("This engine will consume all the fuel and combustion promoter in the hatch every second.") + .addInfo("The efficiency is determined by the proportion of Combustion Promoter to fuel.") + .addInfo("The proportion is bigger, and the efficiency will be higher.") + .addInfo("It creates sqrt(Current Output Power) pollution every second") + .addInfo("If you forget to supply Combustion Promoter, this engine will swallow all the fuel " + EnumChatFormatting.YELLOW + "without outputting energy" + EnumChatFormatting.GRAY + ".") + .addInfo("The efficiency is up to 150%.") + .addInfo("The structure is too complex!") + .addInfo(BLUE_PRINT_INFO) + .addSeparator() + .beginStructureBlock(5, 4, 9, false) + .addMaintenanceHatch("Hint block with dot 1") + .addMufflerHatch("Hint block with dot 2") + .addInputHatch("Hint block with dot 3") + .addDynamoHatch("Hint block with dot 4") + .toolTipFinisher("Good Generator"); + if (!Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { + return tt.getInformation(); + } else { + return tt.getStructureInformation(); + } + } + + @Override + public boolean checkRecipe_EM(ItemStack aStack) { + + ArrayList tFluids = getStoredFluids(); + + Collection tDieselFuels = GT_Recipe.GT_Recipe_Map.sDieselFuels.mRecipeList; + Collection tGasFuels = GT_Recipe.GT_Recipe_Map.sTurbineFuels.mRecipeList; + + int PromoterAmount = findLiquidAmount(getPromoter(), tFluids); + + for (GT_Recipe recipe : tDieselFuels) { + FluidStack tFuel = findFuel(recipe); + if (tFuel == null) continue; + int FuelAmount = findLiquidAmount(tFuel, tFluids); + if (FuelAmount == 0) continue; + calculateEfficiency(FuelAmount, PromoterAmount, DIESEL_EFFICIENCY_COEFFICIENT); + + consumeAllLiquid(tFuel); + consumeAllLiquid(getPromoter()); + + this.mEUt = (int)(FuelAmount * recipe.mSpecialValue / 20.0D); + this.mMaxProgresstime = 20; + this.updateSlots(); + return true; + } + + for (GT_Recipe recipe : tGasFuels) { + FluidStack tFuel = findFuel(recipe); + if (tFuel == null) continue; + int FuelAmount = findLiquidAmount(tFuel, tFluids); + if (FuelAmount == 0) continue; + calculateEfficiency(FuelAmount, PromoterAmount, GAS_EFFICIENCY_COEFFICIENT); + + consumeAllLiquid(tFuel); + consumeAllLiquid(getPromoter()); + + this.mEUt = (int)(FuelAmount * recipe.mSpecialValue / 20.0D); + this.mMaxProgresstime = 20; + this.updateSlots(); + return true; + } + + return false; + } + + public FluidStack getPromoter() { + return FluidRegistry.getFluidStack("combustionpromotor", 1); + } + + public FluidStack findFuel(GT_Recipe aFuel) { + return GT_Utility.getFluidForFilledItem(aFuel.mInputs[0], true); + } + + public void calculateEfficiency(int aFuel, int aPromoter, double coefficient){ + if (aPromoter == 0){ + this.mEfficiency = 0; + return; + } + this.mEfficiency = (int)(Math.exp(-coefficient * (double)aFuel / (double)aPromoter) * EFFICIENCY_CEILING * 10000); + } + + public int findLiquidAmount(FluidStack liquid, List input) { + int cnt = 0; + for (FluidStack fluid : input){ + if (fluid.isFluidEqual(liquid)) { + cnt += fluid.amount; + } + } + if (cnt < 0) cnt = 0; + return cnt; + } + + public void consumeAllLiquid(FluidStack liquid) { + for (GT_MetaTileEntity_Hatch_Input tHatch : mInputHatches) { + if (isValidMetaTileEntity(tHatch)) { + FluidStack tLiquid = tHatch.getFluid(); + if (tLiquid != null && tLiquid.isFluidEqual(liquid)) { + tHatch.drain(tLiquid.amount, true); + } + } + } + } + + @Override + public int getMaxEfficiency(ItemStack aStack) { + return (int)(10000 * EFFICIENCY_CEILING); + } + + @Override + public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone){ + if(aSide == aFacing){ + if(aActive) return new ITexture[]{ + casingTexturePages[0][50], + TextureFactory.of(OVERLAY_FRONT_DIESEL_ENGINE_ACTIVE), + TextureFactory.builder().addIcon(OVERLAY_FRONT_DIESEL_ENGINE_ACTIVE_GLOW).glow().build() + }; + return new ITexture[]{ + casingTexturePages[0][50], + TextureFactory.of(OVERLAY_FRONT_DIESEL_ENGINE), + TextureFactory.builder().addIcon(OVERLAY_FRONT_DIESEL_ENGINE_GLOW).glow().build() + }; + } + return new ITexture[]{casingTexturePages[0][50]}; + } + + @Override + public List getVanillaEnergyHatches() { + return this.mEnergyHatches; + } + + @Override + public List getTecTechEnergyTunnels() { + return new ArrayList<>(); + } + + @Override + public List getTecTechEnergyMultis() { + return new ArrayList<>(); + } + + @Override + public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new UniversalChemicalFuelEngine(this.mName); + } +} diff --git a/src/main/java/goodgenerator/blocks/tileEntity/YottaFluidTank.java b/src/main/java/goodgenerator/blocks/tileEntity/YottaFluidTank.java new file mode 100644 index 0000000000..c2ac9ae885 --- /dev/null +++ b/src/main/java/goodgenerator/blocks/tileEntity/YottaFluidTank.java @@ -0,0 +1,424 @@ +package goodgenerator.blocks.tileEntity; + +import goodgenerator.client.GUI.YOTTankGUIClient; +import goodgenerator.common.container.YOTTankGUIContainer; +import goodgenerator.loader.Loaders; +import goodgenerator.util.CharExchanger; +import goodgenerator.util.DescTextLocalization; +import com.github.bartimaeusnek.bartworks.common.loaders.ItemRegistry; +import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEntity_MultiblockBase_EM; +import com.gtnewhorizon.structurelib.alignment.constructable.IConstructable; +import com.gtnewhorizon.structurelib.structure.IStructureDefinition; +import com.gtnewhorizon.structurelib.structure.IStructureElement; +import com.gtnewhorizon.structurelib.structure.StructureDefinition; +import gregtech.api.enums.Materials; +import gregtech.api.enums.Textures; +import gregtech.api.interfaces.IIconContainer; +import gregtech.api.interfaces.ITexture; +import gregtech.api.interfaces.metatileentity.IMetaTileEntity; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Input; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Output; +import gregtech.api.render.TextureFactory; +import gregtech.api.util.GT_Multiblock_Tooltip_Builder; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.StatCollector; +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; +import org.lwjgl.input.Keyboard; + +import java.math.BigInteger; +import java.util.ArrayList; +import java.util.List; + +import static goodgenerator.util.DescTextLocalization.BLUE_PRINT_INFO; +import static goodgenerator.util.StructureHelper.addFrame; +import static goodgenerator.util.StructureHelper.addTieredBlock; +import static com.gtnewhorizon.structurelib.structure.StructureUtility.*; +import static gregtech.api.util.GT_StructureUtility.*; + +public class YottaFluidTank extends GT_MetaTileEntity_MultiblockBase_EM implements IConstructable { + + private static final IIconContainer textureFontOn = new Textures.BlockIcons.CustomIcon("iconsets/OVERLAY_QTANK"); + private static final IIconContainer textureFontOn_Glow = new Textures.BlockIcons.CustomIcon("iconsets/OVERLAY_QTANK_GLOW"); + private static final IIconContainer textureFontOff = new Textures.BlockIcons.CustomIcon("iconsets/OVERLAY_QCHEST"); + private static final IIconContainer textureFontOff_Glow = new Textures.BlockIcons.CustomIcon("iconsets/OVERLAY_QCHEST_GLOW"); + + protected IStructureDefinition multiDefinition = null; + + protected BigInteger mStorage = new BigInteger("0", 10); + protected BigInteger mStorageCurrent = new BigInteger("0", 10); + protected String mFluidName = ""; + protected int glassMeta; + protected int maxCell; + protected final String YOTTANK_BOTTOM = mName + "buttom"; + protected final String YOTTANK_MID = mName + "mid"; + protected final String YOTTANK_TOP = mName + "top"; + + public YottaFluidTank(int id, String name, String nameRegional) { + super(id, name, nameRegional); + } + + public YottaFluidTank(String name) { + super(name); + } + + public int getMeta() { + return glassMeta; + } + + public void setMeta(int meta) { + glassMeta = meta; + } + + public String getCap() { + return mStorage.toString(10); + } + + public String getStored() { + return mStorageCurrent.toString(10); + } + + public String getFluidName() { + if (mFluidName == null || mFluidName.equals("") || FluidRegistry.getFluidStack(mFluidName, 1) == null) return "Empty"; + return FluidRegistry.getFluidStack(mFluidName, 1).getLocalizedName(); + } + + @Override + public void loadNBTData(NBTTagCompound aNBT) { + String tAmount = aNBT.getString("mStorage"); + String tAmountCurrent = aNBT.getString("mStorageCurrent"); + if (tAmount == null || tAmount.equals("")) tAmount = "0"; + if (tAmountCurrent == null || tAmountCurrent.equals("")) tAmountCurrent = "0"; + mStorage = new BigInteger(tAmount, 10); + mStorageCurrent = new BigInteger(tAmountCurrent, 10); + mFluidName = aNBT.getString("mFluidName"); + super.loadNBTData(aNBT); + } + + @Override + public void saveNBTData(NBTTagCompound aNBT) { + aNBT.setString("mStorage", mStorage.toString(10)); + aNBT.setString("mStorageCurrent", mStorageCurrent.toString(10)); + aNBT.setString("mFluidName", mFluidName); + super.saveNBTData(aNBT); + } + + @Override + public boolean checkRecipe_EM(ItemStack aStack) { + this.mEUt = 0; + this.mMaxProgresstime = 20; + return true; + } + + public boolean reduceFluid(int amount) { + BigInteger tmp = new BigInteger(amount + ""); + if (mStorageCurrent.compareTo(tmp) < 0) { + return false; + } + else { + mStorageCurrent = mStorageCurrent.subtract(tmp); + return true; + } + } + + private int calGlassTier(int meta) { + if (meta >= 1 && meta <= 6) return meta; + if (meta >= 7 && meta <= 12) return 1; + return 3; + } + + @Override + public boolean checkMachine_EM(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { + mStorage = BigInteger.ZERO; + glassMeta = 0; + if (!structureCheck_EM(YOTTANK_BOTTOM, 2, 0, 0)) return false; + int cnt = 0; + while (structureCheck_EM(YOTTANK_MID, 2, cnt + 1, 0)) { + cnt ++; + } + if (cnt > 15 || cnt < 1) return false; + if (!structureCheck_EM(YOTTANK_TOP, 2, cnt + 2, 0)) return false; + if (mMaintenanceHatches.size() == 1 && maxCell + 1 <= calGlassTier(glassMeta)) { + if (mStorage.compareTo(mStorageCurrent) < 0) mStorageCurrent = mStorage; + if (FluidRegistry.getFluidStack(mFluidName, 1) == null) { + mStorageCurrent = BigInteger.ZERO; + mFluidName = ""; + } + return true; + } + return false; + } + + @Override + public IStructureDefinition getStructure_EM() { + if(multiDefinition == null) { + multiDefinition = StructureDefinition + .builder() + .addShape(YOTTANK_BOTTOM, transpose(new String[][]{ + {"MM~MM","MCCCM","MCCCM","MCCCM","MMMMM"}, + {" "," CCC "," COC "," CCC "," "} + })) + .addShape(YOTTANK_MID, transpose(new String[][]{ + {"GGGGG","GRRRG","GRRRG","GRRRG","GGGGG"} + })) + .addShape(YOTTANK_TOP, transpose(new String[][]{ + {"FFFFF","F F","F F","F F","FFFFF"}, + {"CCCCC","CIIIC","CIIIC","CIIIC","CCCCC"} + })) + .addElement( + 'C', + ofBlock( + Loaders.yottaFluidTankCasing, 0 + ) + ) + .addElement( + 'G', + addTieredBlock( + ItemRegistry.bw_realglas, YottaFluidTank::setMeta, YottaFluidTank::getMeta, 12 + ) + ) + .addElement( + 'R', + ofChain( + cells(10) + ) + ) + .addElement( + 'F', + addFrame(Materials.Steel) + ) + .addElement( + 'I', + ofHatchAdderOptional( + YottaFluidTank::addInput, + 1537, + 1, + Loaders.yottaFluidTankCasing, + 0 + ) + ) + .addElement( + 'M', + ofHatchAdderOptional( + YottaFluidTank::addClassicMaintenanceToMachineList, + 1537, + 2, + Loaders.yottaFluidTankCasing, + 0 + ) + ) + .addElement( + 'O', + ofHatchAdder( + YottaFluidTank::addOutput, + 1537, + 3 + ) + ) + .build(); + } + return multiDefinition; + } + + public List> cells(int num) { + List> out = new ArrayList<>(); + for (int i = 0; i < num; ++i) { + int finalI = i; + out.add( + onElementPass( + x -> { + x.mStorage = x.mStorage.add(calStorage(finalI)); + x.maxCell = Math.max(x.maxCell, finalI); + }, + ofBlock(Loaders.yottaFluidTankCell, i) + ) + ); + } + return out; + } + + public final boolean addInput(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) { + if (aTileEntity == null) { + return false; + } else { + IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity(); + if (aMetaTileEntity == null) { + return false; + } else { + if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Input) { + ((GT_MetaTileEntity_Hatch)aMetaTileEntity).updateTexture(aBaseCasingIndex); + return this.mInputHatches.add((GT_MetaTileEntity_Hatch_Input)aMetaTileEntity); + } + } + } + return false; + } + + public final boolean addOutput(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) { + if (aTileEntity == null) { + return false; + } else { + IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity(); + if (aMetaTileEntity == null) { + return false; + } else { + if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Output) { + ((GT_MetaTileEntity_Hatch)aMetaTileEntity).updateTexture(aBaseCasingIndex); + return this.mOutputHatches.add((GT_MetaTileEntity_Hatch_Output)aMetaTileEntity); + } + } + } + return false; + } + + @Override + public String[] getInfoData() { + return new String[] { + StatCollector.translateToLocal("scanner.info.YOTTank.0") + " " + EnumChatFormatting.GREEN + CharExchanger.formatNumber(getCap()) + EnumChatFormatting.RESET + " L", + StatCollector.translateToLocal("scanner.info.YOTTank.1") + " " + EnumChatFormatting.YELLOW + CharExchanger.formatNumber(getFluidName()) + EnumChatFormatting.RESET, + StatCollector.translateToLocal("scanner.info.YOTTank.2") + " " + EnumChatFormatting.BLUE + CharExchanger.formatNumber(getStored()) + EnumChatFormatting.RESET + " L", + }; + } + + @Override + public String[] getDescription() { + final GT_Multiblock_Tooltip_Builder tt = new GT_Multiblock_Tooltip_Builder(); + tt.addMachineType("Fluid Tank") + .addInfo("Controller block for the YOTTank.") + .addInfo("The max output speed is decided by the amount of stored liquid and the output hatch's capacity.") + .addInfo("The max fluid cell tier is limited by the glass tier.") + .addInfo("HV glass for T1, EV glass for T2, IV glass for T3. . .") + .addInfo("The max height of the cell blocks is 15.") + .addInfo("The structure is too complex!") + .addInfo(BLUE_PRINT_INFO) + .addSeparator() + .beginVariableStructureBlock(5, 5, 1, 15, 5 ,5, false) + .addController("Front of the second layer") + .addInputHatch("Hint block with dot 1") + .addMaintenanceHatch("Hint block with dot 2") + .addOutputHatch("Hint block with dot 3") + .toolTipFinisher("Good Generator"); + if (!Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { + return tt.getInformation(); + } else { + return tt.getStructureInformation(); + } + } + + public BigInteger calStorage(int meta) { + StringBuilder cap = new StringBuilder(); + cap.append("1000000"); + for (int i = 0; i < meta; ++i) + cap.append("00"); + return new BigInteger(cap.toString()); + } + + @Override + public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new YOTTankGUIClient(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "EMDisplay.png"); + } + + @Override + public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new YOTTankGUIContainer(aPlayerInventory, aBaseMetaTileEntity); + } + + @Override + public boolean onRunningTick(ItemStack aStack) { + super.onRunningTick(aStack); + if (this.getBaseMetaTileEntity().isServerSide()) { + List tStore = getStoredFluids(); + for (FluidStack tFluid : tStore) { + if (tFluid == null) continue; + if (mFluidName == null || mFluidName.equals("") || tFluid.getFluid().getName().equals(mFluidName)) { + if (mFluidName == null || mFluidName.equals("")) { + mFluidName = tFluid.getFluid().getName(); + } + if (mStorageCurrent.add(new BigInteger(tFluid.amount + "")).compareTo(mStorage) < 0) { + mStorageCurrent = mStorageCurrent.add(new BigInteger(tFluid.amount + "")); + tFluid.amount = 0; + } else { + BigInteger delta = mStorage.subtract(mStorageCurrent); + mStorageCurrent = mStorageCurrent.add(delta); + tFluid.amount -= delta.intValue(); + } + } + } + BigInteger outputAmount = mStorageCurrent.divide(new BigInteger("100", 10)); + if (outputAmount.compareTo(new BigInteger(Integer.MAX_VALUE + "", 10)) > 0) outputAmount = new BigInteger(Integer.MAX_VALUE + ""); + if (outputAmount.compareTo(BigInteger.ONE) <= 0) outputAmount = new BigInteger("1", 10); + + if (mStorageCurrent.compareTo(BigInteger.ZERO) <= 0) mFluidName = ""; + + if (mFluidName != null && !mFluidName.equals("")) { + if (mOutputHatches.size() > 0) { + FluidStack tHatchFluid = mOutputHatches.get(0).mFluid; + FluidStack tOutput = FluidRegistry.getFluidStack(mFluidName, outputAmount.intValue()); + if (tHatchFluid != null && tHatchFluid.isFluidEqual(tOutput)) { + int leftSpace = mOutputHatches.get(0).getCapacity() - tHatchFluid.amount; + if (leftSpace < tOutput.amount) { + if (reduceFluid(leftSpace)) tHatchFluid.amount += leftSpace; + } + else { + if (reduceFluid(tOutput.amount)) tHatchFluid.amount += tOutput.amount; + } + } + else if (tHatchFluid == null) { + int leftSpace = mOutputHatches.get(0).getCapacity(); + if (leftSpace < tOutput.amount) { + if (reduceFluid(leftSpace)) mOutputHatches.get(0).fill(FluidRegistry.getFluidStack(mFluidName, leftSpace), true); + } + else { + if (reduceFluid(tOutput.amount)) mOutputHatches.get(0).fill(tOutput, true); + } + } + } + } + } + return true; + } + + @Override + public void construct(ItemStack stackSize, boolean hintsOnly) { + structureBuild_EM(YOTTANK_BOTTOM, 2, 0, 0, hintsOnly, stackSize); + int height = stackSize.stackSize; + if (height > 15) height = 15; + structureBuild_EM(YOTTANK_TOP, 2, height + 2, 0, hintsOnly, stackSize); + while (height > 0) { + structureBuild_EM(YOTTANK_MID, 2, height, 0, hintsOnly, stackSize); + height --; + } + } + + @Override + public String[] getStructureDescription(ItemStack stackSize) { + return DescTextLocalization.addText("YOTTank.hint", 7); + } + + @Override + public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new YottaFluidTank(this.mName); + } + + @Override + public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone){ + if (aSide == aFacing) { + if (aActive) return new ITexture[] { + Textures.BlockIcons.getCasingTextureForId(1537), + TextureFactory.of(textureFontOn), + TextureFactory.builder().addIcon(textureFontOn_Glow).glow().build() + }; + else return new ITexture[] { + Textures.BlockIcons.getCasingTextureForId(1537), + TextureFactory.of(textureFontOff), + TextureFactory.builder().addIcon(textureFontOff_Glow).glow().build() + }; + } + else return new ITexture[] {Textures.BlockIcons.getCasingTextureForId(1537)}; + } +} diff --git a/src/main/java/goodgenerator/client/ClientProxy.java b/src/main/java/goodgenerator/client/ClientProxy.java new file mode 100644 index 0000000000..e97cbd6e86 --- /dev/null +++ b/src/main/java/goodgenerator/client/ClientProxy.java @@ -0,0 +1,21 @@ +package goodgenerator.client; + +import goodgenerator.common.CommonProxy; +import cpw.mods.fml.common.event.FMLInitializationEvent; +import cpw.mods.fml.common.event.FMLPostInitializationEvent; +import cpw.mods.fml.common.event.FMLPreInitializationEvent; + +public class ClientProxy extends CommonProxy { + @Override + public void preInit(FMLPreInitializationEvent event){ + super.preInit(event); + } + @Override + public void init(FMLInitializationEvent event){ + super.init(event); + } + @Override + public void postInit(FMLPostInitializationEvent event){ + super.postInit(event); + } +} diff --git a/src/main/java/goodgenerator/client/GUI/NeutronActivatorGUIClient.java b/src/main/java/goodgenerator/client/GUI/NeutronActivatorGUIClient.java new file mode 100644 index 0000000000..c3f7992a17 --- /dev/null +++ b/src/main/java/goodgenerator/client/GUI/NeutronActivatorGUIClient.java @@ -0,0 +1,43 @@ +package goodgenerator.client.GUI; + +import goodgenerator.common.container.NeutronActivatorGUIContainer; +import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_GUIContainer_MultiMachineEM; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.StatCollector; + +@SideOnly(Side.CLIENT) +public class NeutronActivatorGUIClient extends GT_GUIContainer_MultiMachineEM { + + private final NeutronActivatorGUIContainer containerNeutronActivator; + + public NeutronActivatorGUIClient(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity, String aName, String aTextureFile) { + super(new NeutronActivatorGUIContainer(aInventoryPlayer, aTileEntity), aName, aTextureFile, true, true, true); + containerNeutronActivator = (NeutronActivatorGUIContainer) this.mContainer; + } + + @Override + protected void drawGuiContainerForegroundLayer(int par1, int par2) { + super.drawGuiContainerForegroundLayer(par1, par2); + if (this.mContainer.mDisplayErrorCode == 0) { + fontRendererObj.drawString(StatCollector.translateToLocal("gui.NeutronActivator.0"), 7, 40, 16448255); + fontRendererObj.drawString(processNumber(containerNeutronActivator.getKineticE()) + "eV", 7, 48, 16448255); + } + } + + protected String processNumber(int num) { + float num2; + num2 = ((float) num) / 1000F; + if (num2 <= 0) { + return String.format("%d", num); + } + if (num2 < 1000.0) { + return String.format("%.1fK", num2); + } + num2 /= 1000F; + return String.format("%.1fM", num2); + } + +} diff --git a/src/main/java/goodgenerator/client/GUI/NeutronSensorGUIClient.java b/src/main/java/goodgenerator/client/GUI/NeutronSensorGUIClient.java new file mode 100644 index 0000000000..5070d80ead --- /dev/null +++ b/src/main/java/goodgenerator/client/GUI/NeutronSensorGUIClient.java @@ -0,0 +1,110 @@ +package goodgenerator.client.GUI; + +import goodgenerator.main.GoodGenerator; +import goodgenerator.network.MessageSetNeutronSensorData; +import goodgenerator.util.CharExchanger; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import gregtech.api.gui.GT_GUIContainerMetaTile_Machine; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import net.minecraft.client.gui.GuiTextField; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.StatCollector; + +@SideOnly(Side.CLIENT) +public class NeutronSensorGUIClient extends GT_GUIContainerMetaTile_Machine { + + protected final String mName; + + private GuiTextField TextBox; + private String context; + + public NeutronSensorGUIClient(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity, String aTexture, String text) { + super(aInventoryPlayer, aTileEntity, aTexture); + this.mName = "Neutron Sensor"; + this.mContainer.detectAndSendChanges(); + if (text == null) this.context = ""; + else this.context = text; + } + + public void initGui(){ + super.initGui(); + this.TextBox = new GuiTextField(this.fontRendererObj, 8, 48, 100, 18); + TextBox.setMaxStringLength(20); + TextBox.setText(context); + this.TextBox.setFocused(true); + } + + protected void drawGuiContainerForegroundLayer(int par1, int par2) { + this.fontRendererObj.drawString(this.mName, 8, 4, 4210752); + this.fontRendererObj.drawString(StatCollector.translateToLocal("gui.NeutronSensor.0"), 8, 16, 0x000000); + this.fontRendererObj.drawString(StatCollector.translateToLocal("gui.NeutronSensor.1"), 8, 28, 0x000000); + this.TextBox.drawTextBox(); + if (TextBox.getText() != null) { + if (isValidSuffix(TextBox.getText())) { + if (CharExchanger.isValidCompareExpress(rawProcessExp(TextBox.getText()))) + this.fontRendererObj.drawString(StatCollector.translateToLocal("gui.NeutronSensor.2"), 120, 53, 0x077d02); + else this.fontRendererObj.drawString(StatCollector.translateToLocal("gui.NeutronSensor.3"), 120, 53, 0xff0000); + } + else this.fontRendererObj.drawString(StatCollector.translateToLocal("gui.NeutronSensor.3"), 120, 53, 0xff0000); + } + this.mc.getTextureManager().bindTexture(new ResourceLocation(GoodGenerator.MOD_ID + ":textures/gui/NeutronSensorGUI.png")); + } + + protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3) { + super.drawGuiContainerBackgroundLayer(par1, par2, par3); + int x = (this.width - this.xSize) / 2; + int y = (this.height - this.ySize) / 2; + this.drawTexturedModalRect(x, y, 0, 0, this.xSize, this.ySize); + } + + protected void keyTyped(char par1, int par2) { + if (!this.TextBox.isFocused()) + super.keyTyped(par1, par2); + if (par2 == 1) this.mc.thePlayer.closeScreen(); + this.TextBox.textboxKeyTyped(par1, par2); + } + + public void updateScreen() { + super.updateScreen(); + this.TextBox.updateCursorCounter(); + } + + protected void mouseClicked(int x, int y, int btn) { + super.mouseClicked(x, y, btn); + this.TextBox.mouseClicked(x - this.getLeft(), y - this.getTop(), btn); + } + + @Override + public void onGuiClosed() { + if (CharExchanger.isValidCompareExpress(rawProcessExp(TextBox.getText()))) + GoodGenerator.CHANNEL.sendToServer(new MessageSetNeutronSensorData(mContainer.mTileEntity, TextBox.getText())); + super.onGuiClosed(); + } + + protected String rawProcessExp(String exp) { + StringBuilder ret = new StringBuilder(); + for (char c: exp.toCharArray()) { + if (exp.length() - ret.length() == 3) { + if (Character.isDigit(c)) ret.append(c); + break; + } + ret.append(c); + } + return ret.toString(); + } + + protected boolean isValidSuffix(String exp) { + int index; + index = exp.length() - 1; + if (index < 0) return false; + if (exp.charAt(index) != 'V' && exp.charAt(index) != 'v') return false; + index = exp.length() - 2; + if (index < 0) return false; + if (exp.charAt(index) != 'E' && exp.charAt(index) != 'e') return false; + index = exp.length() - 3; + if (index < 0) return false; + return exp.charAt(index) == 'M' || exp.charAt(index) == 'm' || exp.charAt(index) == 'K' || exp.charAt(index) == 'k' || Character.isDigit(exp.charAt(index)); + } +} diff --git a/src/main/java/goodgenerator/client/GUI/YOTTankGUIClient.java b/src/main/java/goodgenerator/client/GUI/YOTTankGUIClient.java new file mode 100644 index 0000000000..82d8b19e35 --- /dev/null +++ b/src/main/java/goodgenerator/client/GUI/YOTTankGUIClient.java @@ -0,0 +1,28 @@ +package goodgenerator.client.GUI; + +import goodgenerator.common.container.YOTTankGUIContainer; +import goodgenerator.util.CharExchanger; +import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_GUIContainer_MultiMachineEM; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.StatCollector; + +public class YOTTankGUIClient extends GT_GUIContainer_MultiMachineEM { + + private final YOTTankGUIContainer containerYOTTank; + + public YOTTankGUIClient(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity, String aName, String aTextureFile) { + super(new YOTTankGUIContainer(aInventoryPlayer, aTileEntity), aName, aTextureFile, true, true, true); + containerYOTTank = (YOTTankGUIContainer) this.mContainer; + } + + @Override + protected void drawGuiContainerForegroundLayer(int par1, int par2) { + super.drawGuiContainerForegroundLayer(par1, par2); + if (this.mContainer.mDisplayErrorCode == 0) { + fontRendererObj.drawString(StatCollector.translateToLocal("gui.YOTTank.0") + " " + CharExchanger.formatNumber(containerYOTTank.getCap()) + " L", 7, 40, 16448255); + fontRendererObj.drawString(StatCollector.translateToLocal("gui.YOTTank.1") + " " + CharExchanger.formatNumber(containerYOTTank.getFluidName()), 7, 48, 16448255); + fontRendererObj.drawString(StatCollector.translateToLocal("gui.YOTTank.2") + " " + CharExchanger.formatNumber(containerYOTTank.getStorage()) + " L", 7, 56, 16448255); + } + } +} diff --git a/src/main/java/goodgenerator/common/CommonProxy.java b/src/main/java/goodgenerator/common/CommonProxy.java new file mode 100644 index 0000000000..7a270b9550 --- /dev/null +++ b/src/main/java/goodgenerator/common/CommonProxy.java @@ -0,0 +1,11 @@ +package goodgenerator.common; + +import cpw.mods.fml.common.event.FMLInitializationEvent; +import cpw.mods.fml.common.event.FMLPostInitializationEvent; +import cpw.mods.fml.common.event.FMLPreInitializationEvent; + +public class CommonProxy { + public void preInit(FMLPreInitializationEvent event){} + public void init(FMLInitializationEvent event){} + public void postInit(FMLPostInitializationEvent event){} +} diff --git a/src/main/java/goodgenerator/common/container/NeutronActivatorGUIContainer.java b/src/main/java/goodgenerator/common/container/NeutronActivatorGUIContainer.java new file mode 100644 index 0000000000..772557957e --- /dev/null +++ b/src/main/java/goodgenerator/common/container/NeutronActivatorGUIContainer.java @@ -0,0 +1,80 @@ +package goodgenerator.common.container; + +import goodgenerator.blocks.tileEntity.NeutronActivator; +import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_Container_MultiMachineEM; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.ICrafting; + +import java.nio.ByteBuffer; + +public class NeutronActivatorGUIContainer extends GT_Container_MultiMachineEM { + + private int KineticE; + + private ByteBuffer buffer; + + public NeutronActivatorGUIContainer(InventoryPlayer inventoryPlayer, IGregTechTileEntity aTileEntity) { + super(inventoryPlayer, aTileEntity, true, true, true); + } + + @Override + public void addCraftingToCrafters(ICrafting clientHandle) { + buffer.putInt(0, KineticE); + sendStateUpdate(clientHandle); + super.addCraftingToCrafters(clientHandle); + } + + @Override + public void detectAndSendChanges() { + super.detectAndSendChanges(); + if (buffer == null) { + buffer = ByteBuffer.allocate(Integer.BYTES); + } + if(mTileEntity.isServerSide()) { + NeutronActivator tile = (NeutronActivator) mTileEntity.getMetaTileEntity(); + if (tile == null) return; + int currentKineticE = tile.getCurrentNeutronKineticEnergy(); + boolean isUpdated = false; + if (currentKineticE != KineticE) { + KineticE = currentKineticE; + buffer.putInt(0, KineticE); + isUpdated = true; + } + for (Object clientHandle : this.crafters) { + if (isUpdated) { + sendStateUpdate((ICrafting) clientHandle); + } + } + } + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return true; + } + + private void sendStateUpdate(ICrafting clientHandle) { + final int bytes = Integer.BYTES; + for (int i = 0; i < bytes; i++) { + clientHandle.sendProgressBarUpdate(this, i + 21, buffer.get(i)); + } + } + + @SideOnly(Side.CLIENT) + public void updateProgressBar(int index, int value) { + super.updateProgressBar(index, value); + index = index - 21; + if(index >= 0 && index < buffer.capacity()) { + buffer.put(index, (byte) value); + } + } + + @SideOnly(Side.CLIENT) + public int getKineticE() { + return buffer.getInt(0); + } +} diff --git a/src/main/java/goodgenerator/common/container/NeutronSensorGUIContainer.java b/src/main/java/goodgenerator/common/container/NeutronSensorGUIContainer.java new file mode 100644 index 0000000000..ebfcd10bda --- /dev/null +++ b/src/main/java/goodgenerator/common/container/NeutronSensorGUIContainer.java @@ -0,0 +1,12 @@ +package goodgenerator.common.container; + +import gregtech.api.gui.GT_ContainerMetaTile_Machine; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import net.minecraft.entity.player.InventoryPlayer; + +public class NeutronSensorGUIContainer extends GT_ContainerMetaTile_Machine { + + public NeutronSensorGUIContainer(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) { + super(aInventoryPlayer, aTileEntity); + } +} diff --git a/src/main/java/goodgenerator/common/container/YOTTankGUIContainer.java b/src/main/java/goodgenerator/common/container/YOTTankGUIContainer.java new file mode 100644 index 0000000000..0a425e358e --- /dev/null +++ b/src/main/java/goodgenerator/common/container/YOTTankGUIContainer.java @@ -0,0 +1,133 @@ +package goodgenerator.common.container; + +import goodgenerator.blocks.tileEntity.YottaFluidTank; +import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_Container_MultiMachineEM; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.ICrafting; + +import java.nio.ByteBuffer; + +public class YOTTankGUIContainer extends GT_Container_MultiMachineEM { + + private String currentStore = ""; + private String store = ""; + private String fluidName = ""; + + private ByteBuffer buffer; + + public YOTTankGUIContainer(InventoryPlayer inventoryPlayer, IGregTechTileEntity aTileEntity) { + super(inventoryPlayer, aTileEntity, true, true, true); + } + + @Override + public void addCraftingToCrafters(ICrafting clientHandle) { + buffer.putInt(0, currentStore.length()); + buffer.putInt(Integer.BYTES, store.length()); + buffer.putInt(Integer.BYTES * 2, fluidName.length()); + for (int i = 0; i < currentStore.length(); ++i) { + buffer.putChar(Integer.BYTES * 3 + Character.BYTES * i, currentStore.charAt(i)); + } + for (int i = 0; i < store.length(); ++i) { + buffer.putChar(Integer.BYTES * 3 + Character.BYTES * (i + currentStore.length()), store.charAt(i)); + } + for (int i = 0; i < fluidName.length(); ++i) { + buffer.putChar(Integer.BYTES * 3 + Character.BYTES * (i + currentStore.length() + store.length()), fluidName.charAt(i)); + } + sendStateUpdate(clientHandle); + super.addCraftingToCrafters(clientHandle); + } + + @Override + public void detectAndSendChanges() { + super.detectAndSendChanges(); + if (buffer == null) { + buffer = ByteBuffer.allocate(8192); + } + if(mTileEntity.isServerSide()) { + YottaFluidTank tile = (YottaFluidTank) mTileEntity.getMetaTileEntity(); + if (tile == null) return; + String newStored = tile.getStored(); + String newCap = tile.getCap(); + String newFluid = tile.getFluidName(); + boolean isUpdated = false; + if (!newStored.equals(currentStore) || !newCap.equals(store) || !newFluid.equals(fluidName)) { + currentStore = newStored; + store = newCap; + fluidName = newFluid; + buffer.putInt(0, currentStore.length()); + buffer.putInt(Integer.BYTES, store.length()); + buffer.putInt(Integer.BYTES * 2, fluidName.length()); + for (int i = 0; i < currentStore.length(); ++i) { + buffer.putChar(Integer.BYTES * 3 + Character.BYTES * i, currentStore.charAt(i)); + } + for (int i = 0; i < store.length(); ++i) { + buffer.putChar(Integer.BYTES * 3 + Character.BYTES * (i + currentStore.length()), store.charAt(i)); + } + for (int i = 0; i < fluidName.length(); ++i) { + buffer.putChar(Integer.BYTES * 3 + Character.BYTES * (i + currentStore.length() + store.length()), fluidName.charAt(i)); + } + isUpdated = true; + } + for (Object clientHandle : this.crafters) { + if (isUpdated) { + sendStateUpdate((ICrafting) clientHandle); + } + } + } + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return true; + } + + private void sendStateUpdate(ICrafting clientHandle) { + final int bytes = Integer.BYTES * 3 + Character.BYTES * (currentStore.length() + store.length() + fluidName.length()); + for (int i = 0; i < bytes; i++) { + clientHandle.sendProgressBarUpdate(this, i + 21, buffer.get(i)); + } + } + + @SideOnly(Side.CLIENT) + public void updateProgressBar(int index, int value) { + super.updateProgressBar(index, value); + index = index - 21; + if(index >= 0 && index < buffer.capacity()) { + buffer.put(index, (byte) value); + } + } + + @SideOnly(Side.CLIENT) + public String getStorage() { + StringBuilder sb = new StringBuilder(); + int startP = Integer.BYTES * 3; + for (int i = 0; i < buffer.getInt(0); ++i) { + sb.append(buffer.getChar(startP + Character.BYTES * i)); + } + return sb.toString(); + } + + @SideOnly(Side.CLIENT) + public String getCap() { + StringBuilder sb = new StringBuilder(); + int startP = Integer.BYTES * 3 + Character.BYTES * buffer.getInt(0); + for (int i = 0; i < buffer.getInt(Integer.BYTES); ++i) { + sb.append(buffer.getChar(startP + Character.BYTES * i)); + } + return sb.toString(); + } + + @SideOnly(Side.CLIENT) + public String getFluidName() { + StringBuilder sb = new StringBuilder(); + int startP = Integer.BYTES * 3 + Character.BYTES * (buffer.getInt(0) + buffer.getInt(Integer.BYTES)); + for (int i = 0; i < buffer.getInt(Integer.BYTES * 2); ++i) { + sb.append(buffer.getChar(startP + Character.BYTES * i)); + } + return sb.toString(); + } +} diff --git a/src/main/java/goodgenerator/crossmod/nei/IMCForNEI.java b/src/main/java/goodgenerator/crossmod/nei/IMCForNEI.java new file mode 100644 index 0000000000..f93fdfa6eb --- /dev/null +++ b/src/main/java/goodgenerator/crossmod/nei/IMCForNEI.java @@ -0,0 +1,24 @@ +package goodgenerator.crossmod.nei; + +import cpw.mods.fml.common.event.FMLInterModComms; +import net.minecraft.nbt.NBTTagCompound; + +public class IMCForNEI { + public static void IMCSender() { + NBTTagCompound info = new NBTTagCompound(); + setNBTInfo(info, "GoodGenerator.CrossMod.NEI.NeutronActivatorHandler", "gregtech:gt.blockmachines:32013"); + FMLInterModComms.sendMessage("NotEnoughItems", "registerHandlerInfo", info); + } + + private static void setNBTInfo(NBTTagCompound aNBT, String aName, String aBlock) { + aNBT.setString("handler", aName); + aNBT.setString("modName", "Good Generator"); + aNBT.setString("modId", "goodgenerator"); + aNBT.setBoolean("modRequired", true); + aNBT.setString("itemName", aBlock); + aNBT.setInteger("handlerHeight", 135); + aNBT.setInteger("handlerWidth", 166); + aNBT.setInteger("maxRecipesPerPage", 1); + aNBT.setInteger("yShift", 6); + } +} diff --git a/src/main/java/goodgenerator/crossmod/nei/NEI_Config.java b/src/main/java/goodgenerator/crossmod/nei/NEI_Config.java new file mode 100644 index 0000000000..d5c71bc197 --- /dev/null +++ b/src/main/java/goodgenerator/crossmod/nei/NEI_Config.java @@ -0,0 +1,38 @@ +package goodgenerator.crossmod.nei; + +import goodgenerator.main.GoodGenerator; +import goodgenerator.util.MyRecipeAdder; +import codechicken.nei.api.API; +import codechicken.nei.api.IConfigureNEI; +import net.minecraft.block.Block; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +public class NEI_Config implements IConfigureNEI { + public static boolean isAdded = true; + + @Override + public void loadConfig() { + NEI_Config.isAdded = false; + new NeutronActivatorHandler(MyRecipeAdder.instance.NA); + NEI_Config.isAdded = true; + } + + public static void hide(Block aBlock) { + API.hideItem(new ItemStack(aBlock, 1)); + } + + public static void hide(Item aItem) { + API.hideItem(new ItemStack(aItem, 1)); + } + + @Override + public String getName() { + return "Good Generator NEI Plugin"; + } + + @Override + public String getVersion() { + return GoodGenerator.VERSION; + } +} diff --git a/src/main/java/goodgenerator/crossmod/nei/NeutronActivatorHandler.java b/src/main/java/goodgenerator/crossmod/nei/NeutronActivatorHandler.java new file mode 100644 index 0000000000..ea7cf56cf9 --- /dev/null +++ b/src/main/java/goodgenerator/crossmod/nei/NeutronActivatorHandler.java @@ -0,0 +1,43 @@ +package goodgenerator.crossmod.nei; + +import codechicken.nei.recipe.GuiCraftingRecipe; +import codechicken.nei.recipe.GuiUsageRecipe; +import codechicken.nei.recipe.TemplateRecipeHandler; +import cpw.mods.fml.common.event.FMLInterModComms; +import gregtech.api.enums.GT_Values; +import gregtech.api.util.GT_Recipe; +import gregtech.api.util.GT_Utility; +import gregtech.nei.GT_NEI_DefaultHandler; +import net.minecraft.util.StatCollector; + +import java.awt.*; + +public class NeutronActivatorHandler extends GT_NEI_DefaultHandler { + + public NeutronActivatorHandler(GT_Recipe.GT_Recipe_Map aRecipeMap) { + super(aRecipeMap); + this.transferRects.add(new TemplateRecipeHandler.RecipeTransferRect(new Rectangle(65, 13, 36, 18), this.getOverlayIdentifier())); + if (!NEI_Config.isAdded) { + FMLInterModComms.sendRuntimeMessage(GT_Values.GT, "NEIPlugins", "register-crafting-handler", "gregtech@" + this.getRecipeName() + "@" + this.getOverlayIdentifier()); + GuiCraftingRecipe.craftinghandlers.add(this); + GuiUsageRecipe.usagehandlers.add(this); + } + } + + @Override + public TemplateRecipeHandler newInstance() { + return new NeutronActivatorHandler(this.mRecipeMap); + } + + @Override + public void drawExtras(int aRecipeIndex) { + int tDuration = ((CachedDefaultRecipe) this.arecipes.get(aRecipeIndex)).mRecipe.mDuration; + int minNKE = ((CachedDefaultRecipe) this.arecipes.get(aRecipeIndex)).mRecipe.mSpecialValue % 10000; + int maxNKE = ((CachedDefaultRecipe) this.arecipes.get(aRecipeIndex)).mRecipe.mSpecialValue / 10000; + drawText(10, 73, this.trans("158", "Time: ") + GT_Utility.formatNumbers((float)tDuration / 20.0) + this.trans("161", " secs"), -16777216); + drawText(10, 83, StatCollector.translateToLocal("value.neutron_activator.0"), -16777216); + drawText(10, 93, GT_Utility.formatNumbers(minNKE) + StatCollector.translateToLocal("value.neutron_activator.2"), -16777216); + drawText(10, 103, StatCollector.translateToLocal("value.neutron_activator.1"), -16777216); + drawText(10, 113, GT_Utility.formatNumbers(maxNKE) + StatCollector.translateToLocal("value.neutron_activator.2"), -16777216); + } +} diff --git a/src/main/java/goodgenerator/crossmod/thaumcraft/LargeEssentiaEnergyData.java b/src/main/java/goodgenerator/crossmod/thaumcraft/LargeEssentiaEnergyData.java new file mode 100644 index 0000000000..0328b5906d --- /dev/null +++ b/src/main/java/goodgenerator/crossmod/thaumcraft/LargeEssentiaEnergyData.java @@ -0,0 +1,124 @@ +package goodgenerator.crossmod.thaumcraft; + +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; +import thaumcraft.api.aspects.Aspect; + +import java.io.*; +import java.net.URL; +import java.nio.charset.StandardCharsets; +import java.util.HashMap; + +public class LargeEssentiaEnergyData { + + public static final HashMap ASPECT_FUEL_DATA = new HashMap<>(); + + public static String readJsonFile() { + try { + URL url = Thread.currentThread().getContextClassLoader().getResource("assets/goodgenerator/data/essentia.json"); + assert url != null; + BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream(), StandardCharsets.UTF_8)); + String s; + StringBuilder sb = new StringBuilder(); + while ((s = in.readLine()) != null) { + sb.append(s); + } + in.close(); + return sb.toString(); + } catch (IOException e) { + e.printStackTrace(); + return null; + } + } + + public static void processEssentiaData() { + String data = readJsonFile(); + if (data == null) { + return; + } + JsonParser jsonParser = new JsonParser(); + JsonObject jsonObject = (JsonObject)jsonParser.parse(data); + JsonArray jsonArray = jsonObject.get("Essentia").getAsJsonArray(); + for (JsonElement elm : jsonArray) { + JsonObject essData = elm.getAsJsonObject(); + String aspectName = essData.get("name").getAsString(); + Aspect aspect = Aspect.getAspect(aspectName.toLowerCase()); + if (aspect != null) { + int fuel = essData.get("fuelValue").getAsInt(); + String cate = essData.get("category").getAsString(); + float ceo = essData.get("consumeCeo").getAsFloat(); + ASPECT_FUEL_DATA.put(aspect, new FuelData(fuel, cate, ceo)); + } + } + } + + public static int getAspectTypeIndex(Aspect aspect) { + if (ASPECT_FUEL_DATA.containsKey(aspect)) { + return ASPECT_FUEL_DATA.get(aspect).getCategoryIndex(); + } + else return -1; + } + + public static String getAspectType(Aspect aspect) { + if (ASPECT_FUEL_DATA.containsKey(aspect)) { + return ASPECT_FUEL_DATA.get(aspect).getCategory(); + } + else return null; + } + + public static int getAspectFuelValue(Aspect aspect) { + if (ASPECT_FUEL_DATA.containsKey(aspect)) { + return ASPECT_FUEL_DATA.get(aspect).getFuelValue(); + } + else return 0; + } + + public static float getAspectCeo(Aspect aspect) { + if (ASPECT_FUEL_DATA.containsKey(aspect)) { + return ASPECT_FUEL_DATA.get(aspect).getConsumeSpeed(); + } + else return 0; + } +} + +class FuelData { + private final int fuelValue; + private final String category; + private final float consumeSpeed; + + FuelData(int basicValue, String cate, float ceo) { + fuelValue = basicValue; + category = cate; + consumeSpeed = ceo; + } + + public int getFuelValue() { + return fuelValue; + } + + public float getConsumeSpeed() { + return consumeSpeed; + } + + public String getCategory() { + return category; + } + + public int getCategoryIndex() { + switch (category) { + case "NORMAL": return 0; + case "AIR": return 1; + case "THERMAL": return 2; + case "UNSTABLE": return 3; + case "VICTUS": return 4; + case "TAINTED": return 5; + case "MECHANICS": return 6; + case "SPRITE": return 7; + case "RADIATION": return 8; + case "ELECTRIC": return 9; + default: return -1; + } + } +} \ No newline at end of file diff --git a/src/main/java/goodgenerator/crossmod/thaumcraft/Research.java b/src/main/java/goodgenerator/crossmod/thaumcraft/Research.java new file mode 100644 index 0000000000..2eb3a4dbc0 --- /dev/null +++ b/src/main/java/goodgenerator/crossmod/thaumcraft/Research.java @@ -0,0 +1,620 @@ +package goodgenerator.crossmod.thaumcraft; + +import goodgenerator.items.MyMaterial; +import goodgenerator.util.DescTextLocalization; +import goodgenerator.util.ItemRefer; +import com.github.bartimaeusnek.bartworks.common.loaders.ItemRegistry; +import com.github.bartimaeusnek.bartworks.system.material.WerkstoffLoader; +import cpw.mods.fml.common.Loader; +import gregtech.api.GregTech_API; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.TC_Aspects; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import ic2.core.Ic2Items; +import net.minecraft.block.Block; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import thaumcraft.api.aspects.Aspect; +import thaumcraft.api.aspects.AspectList; +import thaumcraft.common.config.ConfigBlocks; +import thaumcraft.common.config.ConfigItems; + +import java.util.Arrays; +import java.util.Collections; + +import static thaumcraft.api.ThaumcraftApi.addArcaneCraftingRecipe; + +public class Research{ + + public static void addResearch() { + DescTextLocalization.addText("research.ESSENTIA_GENERATOR.page",4); + DescTextLocalization.addText("research.ESSENTIA_CELL.page",1); + DescTextLocalization.addText("research.ESSENTIA_UPGRADE_BLANK.page",1); + DescTextLocalization.addText("research.ESSENTIA_UPGRADE_AIR.page",2); + DescTextLocalization.addText("research.ESSENTIA_UPGRADE_THERMAL.page",3); + DescTextLocalization.addText("research.ESSENTIA_UPGRADE_UNSTABLE.page",3); + DescTextLocalization.addText("research.ESSENTIA_UPGRADE_VICTUS.page",3); + DescTextLocalization.addText("research.ESSENTIA_UPGRADE_TAINTED.page",4); + DescTextLocalization.addText("research.ESSENTIA_UPGRADE_MECHANICS.page",3); + DescTextLocalization.addText("research.ESSENTIA_UPGRADE_SPRITE.page",3); + DescTextLocalization.addText("research.ESSENTIA_UPGRADE_RADIATION.page",3); + DescTextLocalization.addText("research.ESSENTIA_UPGRADE_ELECTRIC.page",2); + GregTech_API.sThaumcraftCompat.addResearch( + "ESSENTIA_GENERATOR", + "Combustion Engine in Magic World", + "Will it cause Flux pollution?", + new String[]{"INFUSION"}, + "ARTIFICE", + ItemRefer.Large_Essentia_Generator.get(1), + 3, 0, -9, 3, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.PRAECANTATIO, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 10L) + ), + null, + new Object[]{ + "research.ESSENTIA_GENERATOR.page.0", + GregTech_API.sThaumcraftCompat.addInfusionRecipe( + "ESSENTIA_GENERATOR", + ItemList.Hull_HV.get(1), + new ItemStack[]{ + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Advanced, 1L), + new ItemStack(ConfigBlocks.blockJar, 1), + GT_OreDictUnificator.get(OrePrefixes.gearGt, Materials.Thaumium, 1L), + GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Emerald, 1L), + new ItemStack(ConfigBlocks.blockWoodenDevice, 1), + GT_OreDictUnificator.get(OrePrefixes.spring, Materials.Manyullyn, 1L), + Ic2Items.teslaCoil, + ItemList.Sensor_MV.get(1) + }, + ItemRefer.Large_Essentia_Generator.get(1), + 6, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 64L), + new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 64L), + new TC_Aspects.TC_AspectStack(TC_Aspects.PRAECANTATIO, 32), + new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 32) + ) + ), + GregTech_API.sThaumcraftCompat.addInfusionRecipe( + "ESSENTIA_GENERATOR", + ItemList.Hatch_Input_HV.get(1), + new ItemStack[]{ + new ItemStack(ConfigBlocks.blockJar, 1), + ItemRefer.Magic_Casing.get(1), + new ItemStack(ConfigBlocks.blockTube, 1), + ItemList.Electric_Pump_MV.get(1L) + }, + ItemRefer.Essentia_Hatch.get(1), + 6, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 128), + new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 64), + new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 32), + new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITIO, 32) + ) + ), + GregTech_API.sThaumcraftCompat.addInfusionRecipe( + "ESSENTIA_GENERATOR", + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Thaumium, 1), + new ItemStack[]{ + GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.StainlessSteel, 1), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.ElectricalSteel, 1), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.ElectricalSteel, 1), + ItemList.Electric_Pump_HV.get(1L), + new ItemStack(ConfigBlocks.blockTube, 1, 4), + new ItemStack(ConfigBlocks.blockCosmeticOpaque, 1, 2), + }, + ItemRefer.Essentia_Cell_T1.get(1), + 4, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 32), + new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 32), + new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 16) + ) + ), + addArcaneCraftingRecipe( + "ESSENTIA_GENERATOR", + ItemRefer.Magic_Casing.get(1), + new AspectList().add(Aspect.AIR, 50).add(Aspect.FIRE, 50).add(Aspect.ORDER, 50), + "SCS","GAG","SCS", + 'S', new ItemStack(ConfigItems.itemResource,1,14), + 'C', GT_OreDictUnificator.get(OrePrefixes.itemCasing, Materials.Thaumium, 1), + 'G', Ic2Items.reinforcedGlass, + 'A', Ic2Items.advancedMachine + ), + "research.ESSENTIA_GENERATOR.page.1", + "research.ESSENTIA_GENERATOR.page.2", + "research.ESSENTIA_GENERATOR.page.3" + } + ); + GregTech_API.sThaumcraftCompat.addResearch( + "ESSENTIA_CELL", + "Better Cells", + "And higher efficiency.", + new String[]{"ESSENTIA_GENERATOR"}, + "ARTIFICE", + ItemRefer.Essentia_Cell_T3.get(1), + 2, 0, -10, 3, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.PRAECANTATIO, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 10L) + ), + null, + new Object[]{ + "research.ESSENTIA_CELL.page.0", + GregTech_API.sThaumcraftCompat.addInfusionRecipe( + "ESSENTIA_CELL", + ItemRefer.Essentia_Cell_T1.get(1), + new ItemStack[]{ + GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.TungstenSteel, 1), + ItemList.FluidRegulator_EV.get(1L), + ItemList.QuantumStar.get(1L), + new ItemStack(ConfigBlocks.blockJar, 1, 0), + GT_OreDictUnificator.get(OrePrefixes.spring, Materials.Platinum, 1), + GT_OreDictUnificator.get(OrePrefixes.gearGt, Materials.Desh, 1) + }, + ItemRefer.Essentia_Cell_T2.get(1), + 6, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 64), + new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 64), + new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 32) + ) + ), + GregTech_API.sThaumcraftCompat.addInfusionRecipe( + "ESSENTIA_CELL", + ItemRefer.Essentia_Cell_T2.get(1), + new ItemStack[]{ + GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.NiobiumTitanium, 1), + ItemList.Field_Generator_IV.get(1L), + ItemList.Reactor_Coolant_Sp_3.get(1L), + new ItemStack(ConfigItems.itemResource,1,14), + Ic2Items.fluidregulator, + new ItemStack(ConfigBlocks.blockCrystal, 1, 6), + GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Plutonium241, 1), + GT_OreDictUnificator.get(OrePrefixes.gearGt, Materials.Void, 1), + GT_OreDictUnificator.get(OrePrefixes.lens, Materials.EnderEye, 1), + new ItemStack(ConfigBlocks.blockMetalDevice, 1, 3) + }, + ItemRefer.Essentia_Cell_T3.get(1), + 8, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 128), + new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 128), + new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 64) + ) + ), + GregTech_API.sThaumcraftCompat.addInfusionRecipe( + "ESSENTIA_CELL", + ItemRefer.Essentia_Cell_T3.get(1), + new ItemStack[]{ + GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.Europium, 1), + ItemList.Emitter_LuV.get(1L), + ItemList.FluidRegulator_LuV.get(1L), + new ItemStack(ConfigItems.itemEldritchObject,1,3), + new ItemStack(ItemRegistry.bw_realglas, 1, 3), + GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Indium, 1), + GT_OreDictUnificator.get(OrePrefixes.gearGt, Materials.Ichorium, 1), + GT_OreDictUnificator.get(OrePrefixes.spring, Materials.Quantium, 1), + GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Sunnarium, 1), + MyMaterial.orundum.get(OrePrefixes.gemExquisite, 1) + }, + ItemRefer.Essentia_Cell_T4.get(1), + 10, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 256), + new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 256), + new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 128) + ) + ) + } + ); + ItemStack broad = new ItemStack(ConfigBlocks.blockCosmeticSolid, 1, 6); + if (Loader.isModLoaded("dreamcraft")) broad = GT_ModHandler.getModItem("dreamcraft", "item.ArcaneSlate", 1); + GregTech_API.sThaumcraftCompat.addResearch( + "ESSENTIA_UPGRADE_BLANK", + "Upgrade your generator", + "Let's try some more dangerous essentia.", + new String[]{"ESSENTIA_GENERATOR"}, + "ARTIFICE", + ItemRefer.Essentia_Upgrade_Empty.get(1), + 2, 0, -9, 4, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.AURAM, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 10L) + ), + null, + new Object[] { + "research.ESSENTIA_UPGRADE_BLANK.page.0", + addArcaneCraftingRecipe( + "ESSENTIA_UPGRADE_BLANK", + ItemRefer.Essentia_Upgrade_Empty.get(1), + new AspectList().add(Aspect.AIR, 80).add(Aspect.ENTROPY, 50).add(Aspect.ORDER, 50).add(Aspect.WATER, 80), + "AMB","CZD","EIF", + 'A', GT_OreDictUnificator.get(OrePrefixes.screw, Materials.InfusedAir, 1), + 'B', GT_OreDictUnificator.get(OrePrefixes.screw, Materials.InfusedEarth, 1), + 'C', GT_OreDictUnificator.get(OrePrefixes.screw, Materials.InfusedFire, 1), + 'D', GT_OreDictUnificator.get(OrePrefixes.screw, Materials.InfusedWater, 1), + 'E', GT_OreDictUnificator.get(OrePrefixes.screw, Materials.InfusedOrder, 1), + 'F', GT_OreDictUnificator.get(OrePrefixes.screw, Materials.InfusedEntropy, 1), + 'M', new ItemStack(ConfigItems.itemResource, 1, 10), + 'Z', broad, + 'I', GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.PulsatingIron, 1) + ), + } + ); + GregTech_API.sThaumcraftCompat.addResearch( + "ESSENTIA_UPGRADE_AIR", + "Essentia: AIR", + "I can feel it on the wind.", + new String[]{"ESSENTIA_UPGRADE_BLANK"}, + "ARTIFICE", + ItemRefer.Essentia_Upgrade_Air.get(1), + 1, 0, -9, 5, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.AER, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 10L) + ), + null, + new Object[] { + "research.ESSENTIA_UPGRADE_AIR.page.0", + GregTech_API.sThaumcraftCompat.addInfusionRecipe( + "ESSENTIA_UPGRADE_AIR", + ItemRefer.Essentia_Upgrade_Empty.get(1), + new ItemStack[] { + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.LiquidAir, 1), + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Hydrogen, 1), + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Helium, 1), + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Argon, 1), + WerkstoffLoader.Neon.get(OrePrefixes.cell, 1), + WerkstoffLoader.Krypton.get(OrePrefixes.cell, 1), + }, + ItemRefer.Essentia_Upgrade_Air.get(1), + 5, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.AER, 128), + new TC_Aspects.TC_AspectStack(TC_Aspects.VOLATUS, 128), + new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 128), + new TC_Aspects.TC_AspectStack(TC_Aspects.AURAM, 128) + ) + ), + "research.ESSENTIA_UPGRADE_AIR.page.1" + } + ); + GregTech_API.sThaumcraftCompat.addResearch( + "ESSENTIA_UPGRADE_THERMAL", + "Essentia: THERMAL", + "Melting down.", + new String[]{"ESSENTIA_UPGRADE_BLANK"}, + "ARTIFICE", + ItemRefer.Essentia_Upgrade_Thermal.get(1), + 1, 0, -10, 5, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 10L) + ), + null, + new Object[] { + "research.ESSENTIA_UPGRADE_THERMAL.page.0", + GregTech_API.sThaumcraftCompat.addInfusionRecipe( + "ESSENTIA_UPGRADE_THERMAL", + ItemRefer.Essentia_Upgrade_Empty.get(1), + new ItemStack[] { + GT_OreDictUnificator.get(OrePrefixes.lens, Materials.Firestone, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Netherrack, 1), + Ic2Items.reactorPlatingHeat, + ItemList.Casing_Coil_Nichrome.get(1), + new ItemStack(ConfigItems.itemResource, 1, 1), + new ItemStack(ConfigItems.itemResource, 1, 0), + }, + ItemRefer.Essentia_Upgrade_Thermal.get(1), + 5, + Collections.singletonList( + new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1024) + ) + ), + "research.ESSENTIA_UPGRADE_THERMAL.page.1", + "research.ESSENTIA_UPGRADE_THERMAL.page.2" + } + ); + GregTech_API.sThaumcraftCompat.addResearch( + "ESSENTIA_UPGRADE_UNSTABLE", + "Essentia: UNSTABLE", + "Heart of chaos.", + new String[]{"ESSENTIA_UPGRADE_BLANK"}, + "ARTIFICE", + ItemRefer.Essentia_Upgrade_Unstable.get(1), + 1, 0, -11, 5, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.PERDITIO, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 10L) + ), + null, + new Object[] { + "research.ESSENTIA_UPGRADE_UNSTABLE.page.0", + GregTech_API.sThaumcraftCompat.addInfusionRecipe( + "ESSENTIA_UPGRADE_UNSTABLE", + ItemRefer.Essentia_Upgrade_Empty.get(1), + new ItemStack[] { + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.GasolinePremium, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Unstable, 1), + GT_OreDictUnificator.get(OrePrefixes.gearGt, Materials.Void, 1), + GT_OreDictUnificator.get(OrePrefixes.gem, Materials.InfusedEntropy, 1), + Ic2Items.industrialTnt, + new ItemStack(ItemRegistry.DESTRUCTOPACK) + }, + ItemRefer.Essentia_Upgrade_Unstable.get(1), + 6, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.PERDITIO, 128), + new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 128), + new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 128), + new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 128) + ) + ), + "research.ESSENTIA_UPGRADE_UNSTABLE.page.1", + "research.ESSENTIA_UPGRADE_UNSTABLE.page.2" + } + ); + ItemStack meatDust = GT_OreDictUnificator.get(OrePrefixes.dust, Materials.MeatRaw, 1); + if (Loader.isModLoaded("dreamcraft")) meatDust = GT_ModHandler.getModItem("dreamcraft", "GTNHBioItems", 1, 2); + GregTech_API.sThaumcraftCompat.addResearch( + "ESSENTIA_UPGRADE_VICTUS", + "Essentia: VICTUS", + "Will it bleed?", + new String[]{"ESSENTIA_UPGRADE_BLANK"}, + "ARTIFICE", + ItemRefer.Essentia_Upgrade_Victus.get(1), + 1, 0, -12, 5, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.VICTUS, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 10L) + ), + null, + new Object[] { + "research.ESSENTIA_UPGRADE_VICTUS.page.0", + GregTech_API.sThaumcraftCompat.addInfusionRecipe( + "ESSENTIA_UPGRADE_VICTUS", + ItemRefer.Essentia_Upgrade_Empty.get(1), + new ItemStack[] { + meatDust, + ItemList.Food_Dough_Sugar.get(1), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Calcium, 1), + new ItemStack(Item.getItemById(367), 1), + new ItemStack(ConfigItems.itemResource, 1, 4), + new ItemStack(ConfigBlocks.blockMetalDevice, 1, 8), + }, + ItemRefer.Essentia_Upgrade_Victus.get(1), + 5, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.VICTUS, 128), + new TC_Aspects.TC_AspectStack(TC_Aspects.SPIRITUS, 128), + new TC_Aspects.TC_AspectStack(TC_Aspects.SANO, 128), + new TC_Aspects.TC_AspectStack(TC_Aspects.CORPUS, 128), + new TC_Aspects.TC_AspectStack(TC_Aspects.HUMANUS, 128) + ) + ), + "research.ESSENTIA_UPGRADE_VICTUS.page.1", + "research.ESSENTIA_UPGRADE_VICTUS.page.2" + } + ); + GregTech_API.sThaumcraftCompat.addResearch( + "ESSENTIA_UPGRADE_TAINTED", + "Essentia: TAINTED", + "Dirty Deeds Done Dirt Cheap", + new String[]{"ESSENTIA_UPGRADE_BLANK"}, + "ARTIFICE", + ItemRefer.Essentia_Upgrade_Tainted.get(1), + 1, 0, -13, 5, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.MORTUUS, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 10L) + ), + null, + new Object[] { + "research.ESSENTIA_UPGRADE_TAINTED.page.0", + "research.ESSENTIA_UPGRADE_TAINTED.page.1", + GregTech_API.sThaumcraftCompat.addInfusionRecipe( + "ESSENTIA_UPGRADE_TAINTED", + ItemRefer.Essentia_Upgrade_Empty.get(1), + new ItemStack[] { + new ItemStack(ConfigBlocks.blockTaintFibres, 1, 0), + new ItemStack(ConfigBlocks.blockTaintFibres, 1, 2), + new ItemStack(ConfigItems.itemResource, 1, 11), + GT_OreDictUnificator.get(OrePrefixes.spring, Materials.NaquadahEnriched, 1), + GT_OreDictUnificator.get(OrePrefixes.gearGt, Materials.EndSteel, 1), + new ItemStack(Block.getBlockById(138), 1), + }, + ItemRefer.Essentia_Upgrade_Tainted.get(1), + 7, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.MORTUUS, 128), + new TC_Aspects.TC_AspectStack(TC_Aspects.ALIENIS, 128), + new TC_Aspects.TC_AspectStack(TC_Aspects.EXANIMIS, 128), + new TC_Aspects.TC_AspectStack(TC_Aspects.VITIUM, 128) + ) + ), + "research.ESSENTIA_UPGRADE_TAINTED.page.2", + "research.ESSENTIA_UPGRADE_TAINTED.page.3" + } + ); + GregTech_API.sThaumcraftCompat.addResearch( + "ESSENTIA_UPGRADE_MECHANICS", + "Essentia: MECHANICS", + "Driven by Ether.", + new String[]{"ESSENTIA_UPGRADE_BLANK"}, + "ARTIFICE", + ItemRefer.Essentia_Upgrade_Mechanics.get(1), + 1, 0, -14, 5, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 10L) + ), + null, + new Object[] { + "research.ESSENTIA_UPGRADE_MECHANICS.page.0", + GregTech_API.sThaumcraftCompat.addInfusionRecipe( + "ESSENTIA_UPGRADE_MECHANICS", + ItemRefer.Essentia_Upgrade_Empty.get(1), + new ItemStack[] { + new ItemStack(ConfigBlocks.blockTube, 1, 4), + new ItemStack(ConfigBlocks.blockTube, 1, 2), + GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.VividAlloy, 1), + GT_OreDictUnificator.get(OrePrefixes.pipeMedium, Materials.Polybenzimidazole, 1), + ItemList.Electric_Motor_IV.get(1), + ItemList.Electric_Pump_IV.get(1), + }, + ItemRefer.Essentia_Upgrade_Mechanics.get(1), + 5, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 128), + new TC_Aspects.TC_AspectStack(TC_Aspects.LIMUS, 128), + new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 128) + ) + ), + "research.ESSENTIA_UPGRADE_MECHANICS.page.1", + "research.ESSENTIA_UPGRADE_MECHANICS.page.2" + } + ); + GregTech_API.sThaumcraftCompat.addResearch( + "ESSENTIA_UPGRADE_SPRITE", + "Essentia: SPRITE", + "Brain in a Machine.", + new String[]{"ESSENTIA_UPGRADE_BLANK"}, + "ARTIFICE", + ItemRefer.Essentia_Upgrade_Spirit.get(1), + 1, 0, -15, 5, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITIO, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 10L) + ), + null, + new Object[] { + "research.ESSENTIA_UPGRADE_SPRITE.page.0", + GregTech_API.sThaumcraftCompat.addInfusionRecipe( + "ESSENTIA_UPGRADE_SPRITE", + ItemRefer.Essentia_Upgrade_Empty.get(1), + new ItemStack[] { + new ItemStack(ConfigBlocks.blockJar, 1, 1), + GT_OreDictUnificator.get(OrePrefixes.food, Materials.Cheese, 1), + GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.Shadow, 1), + GT_OreDictUnificator.get(OrePrefixes.spring, Materials.FierySteel, 1), + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Milk, 1), + ItemList.Machine_EV_Scanner.get(1) + }, + ItemRefer.Essentia_Upgrade_Spirit.get(1), + 5, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITIO, 128), + new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 128), + new TC_Aspects.TC_AspectStack(TC_Aspects.LUCRUM, 128), + new TC_Aspects.TC_AspectStack(TC_Aspects.STRONTIO, 128), + new TC_Aspects.TC_AspectStack(TC_Aspects.NEBRISUM, 128) + ) + ), + "research.ESSENTIA_UPGRADE_SPRITE.page.1", + "research.ESSENTIA_UPGRADE_SPRITE.page.2" + } + ); + GregTech_API.sThaumcraftCompat.addResearch( + "ESSENTIA_UPGRADE_RADIATION", + "Essentia: RADIATION", + "Atomic Heart", + new String[]{"ESSENTIA_UPGRADE_BLANK"}, + "ARTIFICE", + ItemRefer.Essentia_Upgrade_Radiation.get(1), + 1, 0, -16, 5, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.RADIO, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 10L) + ), + null, + new Object[] { + "research.ESSENTIA_UPGRADE_RADIATION.page.0", + GregTech_API.sThaumcraftCompat.addInfusionRecipe( + "ESSENTIA_UPGRADE_RADIATION", + ItemRefer.Essentia_Upgrade_Empty.get(1), + new ItemStack[] { + ItemRefer.High_Density_Plutonium.get(1), + ItemRefer.High_Density_Uranium.get(1), + ItemRefer.High_Density_Thorium.get(1), + Ic2Items.UranFuel, + Ic2Items.MOXFuel, + WerkstoffLoader.Tiberium.get(OrePrefixes.gem, 1) + }, + ItemRefer.Essentia_Upgrade_Radiation.get(1), + 8, + Collections.singletonList( + new TC_Aspects.TC_AspectStack(TC_Aspects.RADIO, 1024) + ) + ), + "research.ESSENTIA_UPGRADE_RADIATION.page.1", + "research.ESSENTIA_UPGRADE_RADIATION.page.2" + } + ); + GregTech_API.sThaumcraftCompat.addResearch( + "ESSENTIA_UPGRADE_ELECTRIC", + "Essentia: ELECTRIC", + "Get electricity from... electricity?", + new String[]{"ESSENTIA_UPGRADE_AIR", "ESSENTIA_UPGRADE_THERMAL", "ESSENTIA_UPGRADE_UNSTABLE", "ESSENTIA_UPGRADE_VICTUS", "ESSENTIA_UPGRADE_TAINTED", "ESSENTIA_UPGRADE_MECHANICS", "ESSENTIA_UPGRADE_SPRITE", "ESSENTIA_UPGRADE_RADIATION"}, + "ARTIFICE", + ItemRefer.Essentia_Upgrade_Electric.get(1), + 1, 0, -12, 7, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 10L) + ), + null, + new Object[] { + "research.ESSENTIA_UPGRADE_ELECTRIC.page.0", + GregTech_API.sThaumcraftCompat.addInfusionRecipe( + "ESSENTIA_UPGRADE_RADIATION", + ItemRefer.Essentia_Upgrade_Empty.get(1), + new ItemStack[] { + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorMV, 1), + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorHV, 1), + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorEV, 1), + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorIV, 1), + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorLuV, 1), + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorZPM, 1) + }, + ItemRefer.Essentia_Upgrade_Electric.get(1), + 10, + Collections.singletonList( + new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 32768) + ) + ), + "research.ESSENTIA_UPGRADE_ELECTRIC.page.1" + } + ); + } +} diff --git a/src/main/java/goodgenerator/items/FuelRod.java b/src/main/java/goodgenerator/items/FuelRod.java new file mode 100644 index 0000000000..9a0becf8b1 --- /dev/null +++ b/src/main/java/goodgenerator/items/FuelRod.java @@ -0,0 +1,183 @@ +package goodgenerator.items; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import ic2.api.item.IBoxable; +import ic2.api.reactor.IReactor; +import ic2.api.reactor.IReactorComponent; +import ic2.core.util.StackUtil; +import ic2.core.util.Util; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; + +import java.util.ArrayList; +import java.util.List; + +import static goodgenerator.util.DescTextLocalization.addText; + +public class FuelRod extends RadioactiveItem implements IReactorComponent, IBoxable { + private final int numberOfCells; + private final int maxDmg; + private final float Power; + private final int Heat; + private float HeatBonus = 0; + private final ItemStack result; + + public FuelRod(String aName, int aCells, int aEUt, int aHeat, int aRads, int aDuration, ItemStack aResult, CreativeTabs Tab) { + super(aName, Tab, aRads); + this.setMaxStackSize(64); + this.numberOfCells = aCells; + this.maxDmg = aDuration; + this.Power = (float)aEUt / 25.0F; + this.result = aResult; + this.Heat = aHeat; + } + + public FuelRod(String aName, int aCells, int aEUt, int aHeat, int aRads, int aDuration, float aHeatBonus, ItemStack aResult, CreativeTabs Tab) { + super(aName, Tab, aRads); + this.setMaxStackSize(64); + this.numberOfCells = aCells; + this.maxDmg = aDuration; + this.Power = (float)aEUt / 25.0F; + this.result = aResult; + this.Heat = aHeat; + this.HeatBonus = aHeatBonus; + } + + public void processChamber(IReactor reactor, ItemStack stack, int x, int y, boolean heatRun) { + if (reactor.produceEnergy()) { + for(int iteration = 0; iteration < this.numberOfCells; ++iteration) { + int pulses = 1 + this.numberOfCells / 2; + int heat; + if (!heatRun) { + for(heat = 0; heat < pulses; ++heat) { + this.acceptUraniumPulse(reactor, stack, stack, x, y, x, y, heatRun); + } + checkPulseable(reactor, x - 1, y, stack, x, y, heatRun); + checkPulseable(reactor, x + 1, y, stack, x, y, heatRun); + checkPulseable(reactor, x, y - 1, stack, x, y, heatRun); + checkPulseable(reactor, x, y + 1, stack, x, y, heatRun); + } else { + pulses += checkPulseable(reactor, x - 1, y, stack, x, y, heatRun) + checkPulseable(reactor, x + 1, y, stack, x, y, heatRun) + checkPulseable(reactor, x, y - 1, stack, x, y, heatRun) + checkPulseable(reactor, x, y + 1, stack, x, y, heatRun); + heat = sumUp(pulses) * this.Heat; + ArrayList heatAcceptors = new ArrayList<>(); + this.checkHeatAcceptor(reactor, x - 1, y, heatAcceptors); + this.checkHeatAcceptor(reactor, x + 1, y, heatAcceptors); + this.checkHeatAcceptor(reactor, x, y - 1, heatAcceptors); + this.checkHeatAcceptor(reactor, x, y + 1, heatAcceptors); + + while(heatAcceptors.size() > 0 && heat > 0) { + int dheat = heat / heatAcceptors.size(); + heat -= dheat; + dheat = ((IReactorComponent) heatAcceptors.get(0).stack.getItem()).alterHeat(reactor, heatAcceptors.get(0).stack, heatAcceptors.get(0).x, heatAcceptors.get(0).y, dheat); + heat += dheat; + heatAcceptors.remove(0); + } + + if (heat > 0) { + reactor.addHeat(heat); + } + } + } + if (this.getCustomDamage(stack) >= this.getMaxCustomDamage(stack) - 1) { + reactor.setItemAt(x, y, result); + } else if (heatRun) { + this.applyCustomDamage(stack, 1, null); + } + } + } + + private static int checkPulseable(IReactor reactor, int x, int y, ItemStack me, int mex, int mey, boolean heatrun) { + ItemStack other = reactor.getItemAt(x, y); + return other != null && other.getItem() instanceof IReactorComponent && ((IReactorComponent)other.getItem()).acceptUraniumPulse(reactor, other, me, x, y, mex, mey, heatrun) ? 1 : 0; + } + + private static int sumUp(int x) { + return (x * x + x) / 2; + } + + private void checkHeatAcceptor(IReactor reactor, int x, int y, ArrayList heatAcceptors) { + ItemStack thing = reactor.getItemAt(x, y); + if (thing != null && thing.getItem() instanceof IReactorComponent && ((IReactorComponent)thing.getItem()).canStoreHeat(reactor, thing, x, y)) { + heatAcceptors.add(new ItemStackCoord(thing, x, y)); + } + + } + + public boolean acceptUraniumPulse(IReactor reactor, ItemStack yourStack, ItemStack pulsingStack, int youX, int youY, int pulseX, int pulseY, boolean heatrun) { + if (!heatrun) { + reactor.addOutput(Power * (1 + HeatBonus * ((float) reactor.getHeat() /(float) reactor.getMaxHeat()))); + } + return true; + } + + public boolean canStoreHeat(IReactor reactor, ItemStack yourStack, int x, int y) { + return false; + } + + public int getMaxHeat(IReactor reactor, ItemStack yourStack, int x, int y) { + return 0; + } + + public int getCurrentHeat(IReactor reactor, ItemStack yourStack, int x, int y) { + return 0; + } + + public int alterHeat(IReactor reactor, ItemStack yourStack, int x, int y, int heat) { + return heat; + } + + public float influenceExplosion(IReactor reactor, ItemStack yourStack) { + return (float)(2 * this.numberOfCells); + } + + @Override + public boolean canBeStoredInToolbox(ItemStack itemStack) { + return true; + } + + private static class ItemStackCoord { + public ItemStack stack; + public int x; + public int y; + + public ItemStackCoord(ItemStack stack1, int x1, int y1) { + this.stack = stack1; + this.x = x1; + this.y = y1; + } + } + + public int getCustomDamage(ItemStack stack) { + NBTTagCompound nbt = StackUtil.getOrCreateNbtData(stack); + return nbt.getInteger("advDmg"); + } + + public int getMaxCustomDamage(ItemStack stack) { + return this.maxDmg; + } + + public void setCustomDamage(ItemStack stack, int damage) { + NBTTagCompound nbt = StackUtil.getOrCreateNbtData(stack); + nbt.setInteger("advDmg", damage); + int maxStackDamage = stack.getMaxDamage(); + if (maxStackDamage > 2) { + stack.setItemDamage(1 + (int) Util.map(damage, this.maxDmg, maxStackDamage - 2)); + } + } + + public boolean applyCustomDamage(ItemStack stack, int damage, EntityLivingBase src) { + this.setCustomDamage(stack, this.getCustomDamage(stack) + damage); + return true; + } + + @SideOnly(Side.CLIENT) + @Override + public void addInformation(ItemStack item, EntityPlayer player, List tooltip, boolean p_77624_4_) { + super.addInformation(item, player, tooltip, p_77624_4_); + tooltip.add(String.format(addText("fuelrod.tooltip", 1)[0], getMaxCustomDamage(item) - getCustomDamage(item), getMaxCustomDamage(item))); + } +} diff --git a/src/main/java/goodgenerator/items/MyItemBlocks.java b/src/main/java/goodgenerator/items/MyItemBlocks.java new file mode 100644 index 0000000000..2136c6a9c4 --- /dev/null +++ b/src/main/java/goodgenerator/items/MyItemBlocks.java @@ -0,0 +1,89 @@ +package goodgenerator.items; + +import goodgenerator.blocks.regularBlock.TEBlock; +import goodgenerator.util.CharExchanger; +import goodgenerator.util.DescTextLocalization; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import gregtech.api.util.GT_LanguageManager; +import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemBlock; +import goodgenerator.main.GoodGenerator; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraft.util.StatCollector; + +import java.util.Arrays; +import java.util.List; + +import static goodgenerator.loader.Loaders.essentiaCell; +import static goodgenerator.loader.Loaders.yottaFluidTankCell; +import static goodgenerator.util.CharExchanger.tierName; + +public class MyItemBlocks extends ItemBlock { + private final String mNoMobsToolTip = GT_LanguageManager.addStringLocalization("gt.nomobspawnsonthisblock", "Mobs cannot Spawn on this Block"); + private final String mNoTileEntityToolTip = GT_LanguageManager.addStringLocalization("gt.notileentityinthisblock", "This is NOT a TileEntity!"); + + + public MyItemBlocks(Block block){ + super(block); + this.setMaxDamage(0); + this.setHasSubtypes(true); + this.setCreativeTab(GoodGenerator.GG); + } + + @Override + public int getMetadata(int aMeta) { + return aMeta; + } + + @Override + public String getUnlocalizedName(ItemStack aStack) { + return this.field_150939_a.getUnlocalizedName() + "." + this.getDamage(aStack); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(ItemStack stack, int pass) { + return this.field_150939_a.getIcon(0, stack.getItemDamage()); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(ItemStack stack, int renderPass, EntityPlayer player, ItemStack usingItem, int useRemaining) { + return this.getIcon(stack, renderPass); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIconFromDamageForRenderPass(int p_77618_1_, int p_77618_2_) { + return this.field_150939_a.getIcon(0, p_77618_2_); + } + + @Override + @SuppressWarnings({"unchecked"}) + @SideOnly(Side.CLIENT) + public void addInformation(ItemStack p_77624_1_, EntityPlayer p_77624_2_, List p_77624_3_, boolean p_77624_4_) { + if (p_77624_1_ == null) return; + p_77624_3_.add(mNoMobsToolTip); + if (Block.getBlockFromItem(p_77624_1_.getItem()) instanceof TEBlock) { + TEBlock tile = (TEBlock) Block.getBlockFromItem(p_77624_1_.getItem()); + if (tile.getIndex() == 1) + p_77624_3_.addAll(Arrays.asList(DescTextLocalization.addText("EssentiaHatch.tooltip", 2))); + } + else p_77624_3_.add(mNoTileEntityToolTip); + + if (Block.getBlockFromItem(p_77624_1_.getItem()).equals(yottaFluidTankCell)) { + StringBuilder cap = new StringBuilder(); + cap.append(" 1000000"); + for (int i = 0; i < p_77624_1_.getItemDamage(); i++) cap.append("00"); + cap.append(" L"); + p_77624_3_.add(StatCollector.translateToLocal("YOTTankCell.tooltip.0") + CharExchanger.formatNumber(cap.toString())); + } + + if (Block.getBlockFromItem(p_77624_1_.getItem()).equals(essentiaCell)) { + p_77624_3_.add(StatCollector.translateToLocal("hatchTier.tooltip.0") + " " + tierName[p_77624_1_.getItemDamage() + 3]); + } + } +} diff --git a/src/main/java/goodgenerator/items/MyItems.java b/src/main/java/goodgenerator/items/MyItems.java new file mode 100644 index 0000000000..58203953db --- /dev/null +++ b/src/main/java/goodgenerator/items/MyItems.java @@ -0,0 +1,112 @@ +package goodgenerator.items; + +import goodgenerator.main.GoodGenerator; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class MyItems extends Item { + + @SideOnly(Side.CLIENT) + protected IIcon[] texture; + private String tex; + private String[] textureNames; + private String Name; + private List tooltips = new ArrayList<>(); + + public MyItems(String name, CreativeTabs Tab){ + this.setUnlocalizedName(name); + this.setCreativeTab(Tab); + this.tex = name; + this.Name = name; + } + + public MyItems(String name, CreativeTabs Tab, String[] textures){ + this.setUnlocalizedName(name); + this.setCreativeTab(Tab); + this.setHasSubtypes(true); + this.textureNames = textures; + this.Name = name; + } + + public MyItems(String name, String tooltip, CreativeTabs Tab) { + this.setUnlocalizedName(name); + this.setCreativeTab(Tab); + this.tex = name; + this.tooltips.add(tooltip); + this.Name = name; + } + + public MyItems(String name, String[] tooltip, CreativeTabs Tab) { + this.setUnlocalizedName(name); + this.setCreativeTab(Tab); + this.tex = name; + this.tooltips = Arrays.asList(tooltip); + this.Name = name; + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIconFromDamage(int meta) { + if (this.texture == null || this.texture.length < 1) return this.itemIcon; + else return meta < this.texture.length ? this.texture[meta] : this.texture[0]; + } + + @Override + public int getMetadata(int aMeta) { + return aMeta; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister iconRegister) { + if (this.textureNames == null || this.textureNames.length < 1) { + this.itemIcon = iconRegister.registerIcon(GoodGenerator.MOD_ID + ":" + this.tex); + } + else { + this.texture = new IIcon[this.textureNames.length]; + for (int i = 0; i < this.textureNames.length; ++i) { + this.texture[i] = iconRegister.registerIcon(this.textureNames[i]); + } + } + } + + @Override + public String getUnlocalizedName(ItemStack p_77667_1_) { + if (this.textureNames == null || this.textureNames.length < 1){ + return "item." + this.Name; + } + else { + return "item." + this.Name + "." + p_77667_1_.getItemDamage(); + } + } + + @Override + @SideOnly(Side.CLIENT) + @SuppressWarnings("unchecked") + public void getSubItems(Item item, CreativeTabs tab, List list) { + if (this.texture == null || this.texture.length < 1) list.add(new ItemStack(item, 1, 0)); + else { + for (int i = 0; i < this.texture.length; ++i) { + list.add(new ItemStack(item, 1, i)); + } + } + } + + @SideOnly(Side.CLIENT) + @SuppressWarnings({"unchecked"}) + public void addInformation(ItemStack p_77624_1_, EntityPlayer p_77624_2_, List p_77624_3_, boolean p_77624_4_) { + if (tooltips.size() > 0) { + p_77624_3_.addAll(tooltips); + } + } +} diff --git a/src/main/java/goodgenerator/items/MyMaterial.java b/src/main/java/goodgenerator/items/MyMaterial.java new file mode 100644 index 0000000000..5e2a5e2a0d --- /dev/null +++ b/src/main/java/goodgenerator/items/MyMaterial.java @@ -0,0 +1,1015 @@ +package goodgenerator.items; + +import goodgenerator.util.CharExchanger; +import com.github.bartimaeusnek.bartworks.system.material.Werkstoff; +import com.github.bartimaeusnek.bartworks.system.material.WerkstoffLoader; +import gregtech.api.enums.TextureSet; +import com.github.bartimaeusnek.bartworks.util.Pair; + +import static com.github.bartimaeusnek.bartworks.util.BW_Util.subscriptNumbers; +import static gregtech.api.enums.Materials.*; + +@SuppressWarnings({"unchecked"}) +public class MyMaterial implements Runnable { + + protected static final int OffsetID = 10001; + + //Uranium Based Fuel Line + public static final Werkstoff graphiteUraniumMixture = new Werkstoff( + new short[]{0x3a,0x77,0x3d}, + "Graphite-Uranium Mixture", + subscriptNumbers("C3U"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable().addMixerRecipes().onlyDust(), + OffsetID, + TextureSet.SET_DULL, + new Pair<> (Graphite,3), + new Pair<> (Uranium,1) + ); + + public static final Werkstoff uraniumBasedLiquidFuel = new Werkstoff( + new short[]{0x00,0xff,0x00}, + "Uranium Based Liquid Fuel", + subscriptNumbers("U36Rb8Qt4Rn"), + new Werkstoff.Stats().setRadioactive(true), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable().addCells(), + OffsetID + 1, + TextureSet.SET_FLUID + ); + + public static final Werkstoff uraniumBasedLiquidFuelExcited = new Werkstoff( + new short[]{0x00,0xff,0x00}, + "Uranium Based Liquid Fuel (Excited State)", + subscriptNumbers("*(U36Rb8Qt4Rn)*"), + new Werkstoff.Stats().setRadioactive(true), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable().addCells(), + OffsetID + 2, + TextureSet.SET_FLUID + ); + + public static final Werkstoff uraniumBasedLiquidFuelDepleted = new Werkstoff( + new short[]{0x6e,0x8b,0x3d}, + "Uranium Based Liquid Fuel (Depleted)", + subscriptNumbers("Pb?Bi?Ba?Xe?"), + new Werkstoff.Stats().setToxic(true), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable().addCells(), + OffsetID + 3, + TextureSet.SET_FLUID + ); + + //Thorium Based Fuel + public static final Werkstoff uraniumCarbideThoriumMixture = new Werkstoff( + new short[]{0x16,0x32,0x07}, + "Uranium Carbide-Thorium Mixture", + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable().addMixerRecipes().onlyDust(), + OffsetID + 4, + TextureSet.SET_DULL, + new Pair<> (Thorium,8), + new Pair<> (WerkstoffLoader.Thorium232,4), + new Pair<> (Uranium235,1), + new Pair<> (Carbon,3) + ); + + public static final Werkstoff thoriumBasedLiquidFuel = new Werkstoff( + new short[]{0x50,0x32,0x66}, + "Thorium Based Liquid Fuel", + subscriptNumbers("Th432Li4D2Hg"), + new Werkstoff.Stats().setRadioactive(true), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable().addCells(), + OffsetID + 5, + TextureSet.SET_FLUID + ); + + public static final Werkstoff thoriumBasedLiquidFuelExcited = new Werkstoff( + new short[]{0x50,0x32,0x66}, + "Thorium Based Liquid Fuel (Excited State)", + subscriptNumbers("*(Th432Li4D2Hg)*"), + new Werkstoff.Stats().setRadioactive(true), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable().addCells(), + OffsetID + 6, + TextureSet.SET_FLUID + ); + + public static final Werkstoff thoriumBasedLiquidFuelDepleted = new Werkstoff( + new short[]{0x7d,0x6c,0x8a}, + "Thorium Based Liquid Fuel (Depleted)", + subscriptNumbers("Lu?Pr?B?In?"), + new Werkstoff.Stats().setToxic(true), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable().addCells(), + OffsetID + 7, + TextureSet.SET_FLUID + ); + + //Plutonium Based Fuel + public static final Werkstoff plutoniumOxideUraniumMixture = new Werkstoff( + new short[]{0xd1,0x1f,0x4a}, + "Plutonium Oxide-Uranium Mixture", + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable().addMixerRecipes().onlyDust(), + OffsetID + 8, + TextureSet.SET_SHINY, + new Pair<> (Plutonium,10), + new Pair<> (Oxygen,12), + new Pair<> (Uranium,2), + new Pair<> (Carbon,8) + ); + + public static final Werkstoff plutoniumBasedLiquidFuel = new Werkstoff( + new short[]{0xef,0x15,0x15}, + "Plutonium Based Liquid Fuel", + subscriptNumbers("Pu45Nt8Cs16Am2"), + new Werkstoff.Stats().setRadioactive(true), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable().addCells(), + OffsetID + 9, + TextureSet.SET_FLUID + ); + + public static final Werkstoff plutoniumBasedLiquidFuelExcited = new Werkstoff( + new short[]{0xef,0x15,0x15}, + "Plutonium Based Liquid Fuel (Excited State)", + subscriptNumbers("*(Pu45Nt8Cs16Am2)*"), + new Werkstoff.Stats().setRadioactive(true), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable().addCells(), + OffsetID + 10, + TextureSet.SET_FLUID + ); + + public static final Werkstoff plutoniumBasedLiquidFuelDepleted = new Werkstoff( + new short[]{0x67,0x19,0x19}, + "Plutonium Based Liquid Fuel (Depleted)", + subscriptNumbers("Tn?Ce?Au?Kr?"), + new Werkstoff.Stats().setToxic(true), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable().addCells(), + OffsetID + 11, + TextureSet.SET_FLUID + ); + + //Thorium-233 + public static final Werkstoff oxalate = new Werkstoff( + new short[]{0x79,0xd8,0x55}, + "Oxalate", + Werkstoff.Types.BIOLOGICAL, + new Werkstoff.GenerationFeatures().disable().addCells(), + OffsetID + 12, + TextureSet.SET_FLUID, + new Pair<> (Hydrogen,2), + new Pair<> (Carbon,2), + new Pair<> (Oxygen,4) + ); + + public static final Werkstoff vanadiumPentoxide = new Werkstoff( + new short[]{0xde,0x8d,0x12}, + "Vanadium Pentoxide", + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable().onlyDust(), + OffsetID + 13, + TextureSet.SET_SHINY, + new Pair<> (Vanadium,2), + new Pair<> (Oxygen,5) + ); + + public static final Werkstoff thoriumNitrate = new Werkstoff( + new short[]{0xba,0xe8,0x26}, + "Thorium Nitrate", + subscriptNumbers("Th(NO3)4"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable().addCells(), + OffsetID + 14, + TextureSet.SET_DULL + ); + + public static final Werkstoff thoriumOxalate = new Werkstoff( + new short[]{0x50,0x63,0x13}, + "Thorium Oxalate", + subscriptNumbers("Th(C2O4)2"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable().onlyDust(), + OffsetID + 15, + TextureSet.SET_DULL + ); + + public static final Werkstoff thoriumHydroxide = new Werkstoff( + new short[]{0x92,0xae,0x89}, + "Thorium Hydroxide", + subscriptNumbers("Th(OH)4"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable().onlyDust(), + OffsetID + 16, + TextureSet.SET_SHINY + ); + + public static final Werkstoff sodiumOxalate = new Werkstoff( + new short[]{0xe4,0xf8,0x9b}, + "Sodium Oxalate", + subscriptNumbers("Na2C2O4"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable().onlyDust(), + OffsetID + 17, + TextureSet.SET_DULL + ); + + public static final Werkstoff thoriumTetrachloride = new Werkstoff( + new short[]{0x13,0x7c,0x16}, + "Thorium Tetrachloride", + subscriptNumbers("ThCl4"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable().addCells(), + OffsetID + 18, + TextureSet.SET_FLUID + ); + + public static final Werkstoff thoriumTetrafluoride = new Werkstoff( + new short[]{0x15,0x6a,0x6a}, + "Thorium Tetrafluoride", + subscriptNumbers("ThF4"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable().addCells(), + OffsetID + 19, + TextureSet.SET_FLUID + ); + + public static final Werkstoff thorium232Tetrafluoride = new Werkstoff( + new short[]{0x15,0x6a,0x6a}, + "Thorium-232 Tetrafluoride", + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable().addCells(), + OffsetID + 20, + TextureSet.SET_FLUID, + new Pair<> (WerkstoffLoader.Thorium232,1), + new Pair<> (Fluorine,4) + ); + + //Atomic Separation Catalyst + public static final Werkstoff orundum = new Werkstoff( + new short[]{0xcd,0x26,0x26}, + "Orundum", + "Or", + new Werkstoff.Stats().setProtons(120).setMass(300), + Werkstoff.Types.ELEMENT, + new Werkstoff.GenerationFeatures().addGems(), + OffsetID + 22, + TextureSet.SET_DIAMOND + ); + + public static final Werkstoff atomicSeparationCatalyst = new Werkstoff( + new short[]{0xe8,0x5e,0x0c}, + "Atomic Separation Catalyst", + "the melting core...", + new Werkstoff.Stats().setMeltingPoint(5000).setBlastFurnace(true), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable().onlyDust().addMolten().addMetalItems().addSimpleMetalWorkingItems().addCraftingMetalWorkingItems().addMultipleIngotMetalWorkingItems(), + OffsetID + 21, + TextureSet.SET_SHINY, + new Pair<>(MyMaterial.orundum, 2), + new Pair<>(Plutonium, 1), + new Pair<>(Naquadah, 2) + ); + + //Naquadah Fuel Rework + public static final Werkstoff extremelyUnstableNaquadah = new Werkstoff( + new short[]{0x06,0x26,0x05}, + "Extremely Unstable Naquadah", + "Nq"+ CharExchanger.shifter(9734), + new Werkstoff.Stats().setMeltingPoint(7000).setBlastFurnace(true).setProtons(200).setMass(450).setRadioactive(true), + Werkstoff.Types.ELEMENT, + new Werkstoff.GenerationFeatures().disable().onlyDust().addMolten().addMetalItems().addSimpleMetalWorkingItems().addCraftingMetalWorkingItems().addMultipleIngotMetalWorkingItems(), + OffsetID + 23, + TextureSet.SET_SHINY + ); + + public static final Werkstoff lightNaquadahFuel = new Werkstoff( + new short[]{92,203,92}, + "Light Naquadah Fuel", + "far from enough", + new Werkstoff.Stats().setToxic(true).setRadioactive(true), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable().addCells(), + OffsetID + 24, + TextureSet.SET_FLUID + ); + + public static final Werkstoff heavyNaquadahFuel = new Werkstoff( + new short[]{54,255,54}, + "Heavy Naquadah Fuel", + "still need processing", + new Werkstoff.Stats().setToxic(true).setRadioactive(true), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable().addCells(), + OffsetID + 25, + TextureSet.SET_FLUID + ); + + public static final Werkstoff naquadahGas = new Werkstoff( + new short[]{93,219,0}, + "Naquadah Gas", + "Who need it?", + new Werkstoff.Stats().setToxic(true).setRadioactive(true).setGas(true), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable().addCells(), + OffsetID + 26, + TextureSet.SET_FLUID + ); + + public static final Werkstoff naquadahAsphalt = new Werkstoff( + new short[]{5,37,5}, + "Naquadah Asphalt", + "It will damage the reactor.", + new Werkstoff.Stats().setToxic(true).setRadioactive(true), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable().addCells(), + OffsetID + 27, + TextureSet.SET_FLUID + ); + + public static final Werkstoff ether = new Werkstoff( + new short[]{0xeb,0xbc,0x2f}, + "Ether", + subscriptNumbers("CH3CH2OCH2CH3"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable().addCells(), + OffsetID + 28, + TextureSet.SET_FLUID, + new Pair<> (Carbon,4), + new Pair<> (Hydrogen, 10), + new Pair<> (Oxygen, 1) + ); + + public static final Werkstoff antimonyTrichloride = new Werkstoff( + new short[]{0x0f,0xdc,0x34}, + "Antimony Trichloride Solution", + subscriptNumbers("SbCl3"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable().addCells(), + OffsetID + 29, + TextureSet.SET_FLUID + ); + + public static final Werkstoff antimonyPentachlorideSolution = new Werkstoff( + new short[]{0x15,0x93,0x2c}, + "Antimony Pentachloride Solution", + subscriptNumbers("SbCl5"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable().addCells(), + OffsetID + 30, + TextureSet.SET_FLUID + ); + + public static final Werkstoff antimonyPentachloride = new Werkstoff( + new short[]{0x15,0x93,0x2c}, + "Antimony Pentachloride", + subscriptNumbers("SbCl5"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable().addCells(), + OffsetID + 31, + TextureSet.SET_FLUID + ); + + public static final Werkstoff antimonyPentafluoride = new Werkstoff( + new short[]{0x16,0xd5,0xe2}, + "Antimony Pentafluoride", + subscriptNumbers("SbF5"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable().addCells(), + OffsetID + 32, + TextureSet.SET_FLUID + ); + + public static final Werkstoff fluoroantimonicAcid = new Werkstoff( + new short[]{0x16,0xd5,0xe2}, + "Fluoroantimonic Acid", + subscriptNumbers("HSbF6"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable().addCells(), + OffsetID + 33, + TextureSet.SET_FLUID + ); + + public static final Werkstoff radioactiveSludge = new Werkstoff( + new short[]{0xb3,0x49,0x1e}, + "Radioactive Sludge", + ">>> DANGER <<<", + new Werkstoff.Stats().setRadioactive(true), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable().onlyDust(), + OffsetID + 34, + TextureSet.SET_DULL + ); + + public static final Werkstoff acidNaquadahEmulsion = new Werkstoff( + new short[]{0x25,0x22,0x22}, + "Acid Naquadah Emulsion", + "??Nq??H"+CharExchanger.shifter(8314), + new Werkstoff.Stats().setRadioactive(true), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable().addCells(), + OffsetID + 35, + TextureSet.SET_FLUID + ); + + public static final Werkstoff naquadahEmulsion = new Werkstoff( + new short[]{0x4a,0x46,0x45}, + "Naquadah Emulsion", + "??Nq??", + new Werkstoff.Stats().setRadioactive(true), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable().addCells(), + OffsetID + 36, + TextureSet.SET_FLUID + ); + + public static final Werkstoff naquadahSolution = new Werkstoff( + new short[]{0x84,0x81,0x80}, + "Naquadah Solution", + "~Nq~", + new Werkstoff.Stats().setRadioactive(true), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable().addCells(), + OffsetID + 37, + TextureSet.SET_FLUID + ); + + public static final Werkstoff naquadahBasedFuelMkI = new Werkstoff( + new short[]{0x62,0x5c,0x5b}, + "Naquadah Based Liquid Fuel MkI", + new Werkstoff.Stats().setRadioactive(true), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable().addCells(), + OffsetID + 38, + TextureSet.SET_FLUID + ); + + public static final Werkstoff naquadahBasedFuelMkIDepleted = new Werkstoff( + new short[]{0xcb,0xc3,0xc1}, + "Naquadah Based Liquid Fuel MkI (Depleted)", + new Werkstoff.Stats().setToxic(true), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable().addCells(), + OffsetID + 39, + TextureSet.SET_FLUID + ); + + public static final Werkstoff naquadahBasedFuelMkII = new Werkstoff( + new short[]{0x52,0x4e,0x4d}, + "Naquadah Based Liquid Fuel MkII", + new Werkstoff.Stats().setRadioactive(true), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable().addCells(), + OffsetID + 40, + TextureSet.SET_FLUID + ); + + public static final Werkstoff naquadahBasedFuelMkIIDepleted = new Werkstoff( + new short[]{0xb5,0xb0,0xae}, + "Naquadah Based Liquid Fuel MkII (Depleted)", + new Werkstoff.Stats().setToxic(true), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable().addCells(), + OffsetID + 41, + TextureSet.SET_FLUID + ); + /*These materials will be enable when they are removed in GregTech*/ + /* + public static final Werkstoff praseodymium = new Werkstoff( + new short[]{0xff,0xff,0xff}, + "praseodymium", + "Pr", + new Werkstoff.Stats(), + Werkstoff.Types.ELEMENT, + new Werkstoff.GenerationFeatures().disable().onlyDust().addMolten().addMetalItems(), + OffsetID + 42, + TextureSet.SET_METALLIC + ); + + public static final Werkstoff rubidium = new Werkstoff( + new short[]{0xff,0x2a,0x00}, + "rubidium", + "Rb", + new Werkstoff.Stats(), + Werkstoff.Types.ELEMENT, + new Werkstoff.GenerationFeatures().disable().onlyDust().addMolten().addMetalItems(), + OffsetID + 43, + TextureSet.SET_SHINY + ); + + public static final Werkstoff thulium = new Werkstoff( + new short[]{0xff,0xff,0xff}, + "Thulium", + "Tm", + new Werkstoff.Stats(), + Werkstoff.Types.ELEMENT, + new Werkstoff.GenerationFeatures().disable().onlyDust().addMolten().addMetalItems(), + OffsetID + 44, + TextureSet.SET_METALLIC + ); + */ + public static final Werkstoff naquadahBasedFuelMkIII = new Werkstoff( + new short[]{0x29,0x22,0x21}, + "Naquadah Based Liquid Fuel MkIII", + new Werkstoff.Stats().setRadioactive(true), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable().addCells(), + OffsetID + 45, + TextureSet.SET_FLUID + ); + + public static final Werkstoff naquadahBasedFuelMkIIIDepleted = new Werkstoff( + new short[]{0x66,0x40,0x38}, + "Naquadah Based Liquid Fuel MkIII (Depleted)", + new Werkstoff.Stats().setToxic(true), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable().addCells(), + OffsetID + 46, + TextureSet.SET_FLUID + ); + + public static final Werkstoff naquadahBasedFuelMkIV = new Werkstoff( + new short[]{0x0e,0x0c,0x0c}, + "Naquadah Based Liquid Fuel MkIV", + new Werkstoff.Stats().setRadioactive(true), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable().addCells(), + OffsetID + 47, + TextureSet.SET_FLUID + ); + + public static final Werkstoff naquadahBasedFuelMkIVDepleted = new Werkstoff( + new short[]{0x8e,0x34,0x22}, + "Naquadah Based Liquid Fuel MkIV (Depleted)", + new Werkstoff.Stats().setToxic(true), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable().addCells(), + OffsetID + 48, + TextureSet.SET_FLUID + ); + + public static final Werkstoff naquadahBasedFuelMkV = new Werkstoff( + new short[]{0x00,0x00,0x00}, + "Naquadah Based Liquid Fuel MkV", + "THE END", + new Werkstoff.Stats().setRadioactive(true), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable().addCells(), + OffsetID + 49, + TextureSet.SET_FLUID + ); + + public static final Werkstoff naquadahBasedFuelMkVDepleted = new Werkstoff( + new short[]{0xff,0xff,0xff}, + "Naquadah Based Liquid Fuel MkV (Depleted)", + "THE END (literally)", + new Werkstoff.Stats().setToxic(true), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable().addCells(), + OffsetID + 50, + TextureSet.SET_FLUID + ); + + public static final Werkstoff zincChloride = new Werkstoff( + new short[]{0x73,0xa5,0xfc}, + "Zinc Chloride", + subscriptNumbers("ZnCl2"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable().onlyDust(), + OffsetID + 51, + TextureSet.SET_SHINY + ); + + public static final Werkstoff zincThoriumAlloy = new Werkstoff( + new short[]{0x12,0x34,0x56}, + "Zn-Th Alloy", + subscriptNumbers("ZnTh"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable().onlyDust().addMolten().addMetalItems(), + OffsetID + 52, + TextureSet.SET_SHINY, + new Pair<>(Zinc, 1), + new Pair<>(Thorium, 1) + ); + + //Naquadah Rework Materials + public static final Werkstoff naquadahEarth = new Werkstoff( + new short[]{0x4c,0x4c,0x4c}, + "Naquadah Oxide Mixture", + subscriptNumbers("??NqTiGaAd??"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures(), + OffsetID + 53, + TextureSet.SET_METALLIC + ); + + public static final Werkstoff titaniumTrifluoride = new Werkstoff( + new short[]{0xc0,0x92,0xa8}, + "Titanium Trifluoride", + subscriptNumbers("TiF3"), + new Werkstoff.Stats().setElektrolysis(true), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable().onlyDust(), + OffsetID + 54, + TextureSet.SET_METALLIC, + new Pair<> (Titanium, 1), + new Pair<> (Fluorine, 3) + ); + + public static final Werkstoff lowQualityNaquadahEmulsion = new Werkstoff( + new short[]{0x4c,0x4c,0x4c}, + "Low Quality Naquadah Emulsion", + subscriptNumbers("??NqGaAd??"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable().addCells(), + OffsetID + 55, + TextureSet.SET_FLUID + ); + + public static final Werkstoff galliumHydroxide = new Werkstoff( + new short[]{0xa6,0xa6,0xa6}, + "Gallium Hydroxide", + subscriptNumbers("Ga(OH)3"), + new Werkstoff.Stats().setElektrolysis(true), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable().onlyDust(), + OffsetID + 56, + TextureSet.SET_DULL, + new Pair<> (Gallium, 1), + new Pair<> (Oxygen, 3), + new Pair<> (Hydrogen, 3) + ); + + public static final Werkstoff lowQualityNaquadahSolution = new Werkstoff( + new short[]{0x71,0x62,0x62}, + "Low Quality Naquadah Solution", + subscriptNumbers("~??NqAd??~"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable().addCells(), + OffsetID + 57, + TextureSet.SET_FLUID + ); + + public static final Werkstoff towEthyl1Hexanol = new Werkstoff( + new short[]{0x80,0xb5,0x57}, + "2-Ethyl-1-Hexanol", + subscriptNumbers("C8H18O"), + new Werkstoff.Stats().setElektrolysis(true), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable().addCells(), + OffsetID + 58, + TextureSet.SET_FLUID, + new Pair<> (Carbon, 8), + new Pair<> (Oxygen, 1), + new Pair<> (Hydrogen, 18) + ); + + public static final Werkstoff P507 = new Werkstoff( + new short[]{0x29,0xc2,0x2a}, + "P-507", + subscriptNumbers("(C8H17)2PO3H"), + new Werkstoff.Stats().setElektrolysis(true), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable().addCells(), + OffsetID + 59, + TextureSet.SET_FLUID, + new Pair<> (Carbon, 16), + new Pair<> (Phosphorus, 1), + new Pair<> (Oxygen, 3), + new Pair<> (Hydrogen, 35) + ); + + public static final Werkstoff naquadahAdamantiumSolution = new Werkstoff( + new short[]{0x3d,0x38,0x38}, + "Naquadah-Adamantium Solution", + subscriptNumbers("~NqAd~"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable().addCells(), + OffsetID + 60, + TextureSet.SET_FLUID + ); + + public static final Werkstoff naquadahRichSolution = new Werkstoff( + new short[]{0x33,0x33,0x33}, + "Naquadah-Rich Solution", + subscriptNumbers("~?Nq?~"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable().addCells(), + OffsetID + 61, + TextureSet.SET_FLUID + ); + + public static final Werkstoff naquadahine = new Werkstoff( + new short[]{0x33,0x33,0x33}, + "Naquadahine", + subscriptNumbers("NqO2"), + new Werkstoff.Stats().setElektrolysis(true), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable().onlyDust(), + OffsetID + 62, + TextureSet.SET_METALLIC, + new Pair<> (Naquadah, 1), + new Pair<> (Oxygen, 2) + ); + + public static final Werkstoff fluorineRichWasteLiquid = new Werkstoff( + new short[]{0x13,0x68,0x62}, + "Fluorine-Rich Waste Liquid", + new Werkstoff.Stats().setToxic(true), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable().addCells(), + OffsetID + 63, + TextureSet.SET_FLUID + ); + + public static final Werkstoff wasteLiquid = new Werkstoff( + new short[]{0x14,0x1c,0x68}, + "Waste Liquid", + new Werkstoff.Stats().setToxic(true), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable().addCells(), + OffsetID + 64, + TextureSet.SET_FLUID + ); + + public static final Werkstoff adamantine = new Werkstoff( + new short[]{0xb7,0xb7,0xb7}, + "Adamantine", + subscriptNumbers("Ad2O3"), + new Werkstoff.Stats().setElektrolysis(true), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable().onlyDust(), + OffsetID + 65, + TextureSet.SET_DULL, + new Pair<> (Adamantium, 2), + new Pair<> (Oxygen, 3) + ); + + public static final Werkstoff enrichedNaquadahEarth = new Werkstoff( + new short[]{0x82,0x68,0x68}, + "Enriched-Naquadah Oxide Mixture", + subscriptNumbers("??KeNq") + CharExchanger.shifter(8314) + "??", + new Werkstoff.Stats().setRadioactive(true), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures(), + OffsetID + 66, + TextureSet.SET_METALLIC + ); + + public static final Werkstoff triniumSulphate = new Werkstoff( + new short[]{0xda,0xda,0xda}, + "Trinium Sulphate", + subscriptNumbers("KeSO4"), + new Werkstoff.Stats().setElektrolysis(true), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable().onlyDust(), + OffsetID + 67, + TextureSet.SET_METALLIC, + new Pair<> (Trinium, 1), + new Pair<> (Sulfur, 1), + new Pair<> (Oxygen, 4) + ); + + public static final Werkstoff enrichedNaquadahRichSolution = new Werkstoff( + new short[]{0x52,0x39,0x39}, + "Enriched-Naquadah-Rich Solution", + subscriptNumbers("~?Nq") + CharExchanger.shifter(8314) + "?~", + new Werkstoff.Stats().setRadioactive(true), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable().addCells(), + OffsetID + 68, + TextureSet.SET_FLUID + ); + + public static final Werkstoff concentratedEnrichedNaquadahSludge = new Werkstoff( + new short[]{0x52,0x39,0x39}, + "Concentrated Enriched-Naquadah Sludge", + subscriptNumbers("?Nq") + CharExchanger.shifter(8314) + "?", + new Werkstoff.Stats().setRadioactive(true), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable().onlyDust(), + OffsetID + 69, + TextureSet.SET_METALLIC + ); + + public static final Werkstoff enrichedNaquadahSulphate = new Werkstoff( + new short[]{0x52,0x39,0x39}, + "Enriched-Naquadah Sulphate", + "Nq" + CharExchanger.shifter(8314) + subscriptNumbers("(SO4)2"), + new Werkstoff.Stats().setRadioactive(true).setElektrolysis(true), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable().onlyDust(), + OffsetID + 70, + TextureSet.SET_DULL, + new Pair<>(NaquadahEnriched, 1), + new Pair<>(Sulfur, 2), + new Pair<>(Oxygen, 8) + ); + + public static final Werkstoff naquadriaEarth = new Werkstoff( + new short[]{0x4d,0x4d,0x55}, + "Naquadria Oxide Mixture", + subscriptNumbers("??Nq*BaIn??"), + new Werkstoff.Stats().setRadioactive(true).setToxic(true), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures(), + OffsetID + 71, + TextureSet.SET_METALLIC + ); + + public static final Werkstoff indiumPhosphate = new Werkstoff( + new short[]{0x2b,0x2e,0x70}, + "Indium Phosphate", + subscriptNumbers("InPO4"), + new Werkstoff.Stats().setToxic(true).setElektrolysis(true), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable().onlyDust(), + OffsetID + 72, + TextureSet.SET_DULL, + new Pair<>(Indium, 1), + new Pair<>(Phosphorus, 1), + new Pair<>(Oxygen, 4) + ); + + public static final Werkstoff lowQualityNaquadriaPhosphate = new Werkstoff( + new short[]{0x4d,0x4d,0x55}, + "Low Quality Naquadria Phosphate", + subscriptNumbers("??Nq*3(PO4)4??"), + new Werkstoff.Stats().setRadioactive(true).setToxic(true), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable().onlyDust(), + OffsetID + 73, + TextureSet.SET_DULL + ); + + public static final Werkstoff naquadriaRichSolution = new Werkstoff( + new short[]{0x1f,0x1e,0x33}, + "Naquadria-Rich Solution", + subscriptNumbers("~?Nq*?~"), + new Werkstoff.Stats().setRadioactive(true).setToxic(true), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable().addCells(), + OffsetID + 74, + TextureSet.SET_FLUID + ); + + public static final Werkstoff lowQualityNaquadriaSulphate = new Werkstoff( + new short[]{0x73,0x72,0x84}, + "Low Quality Naquadria Sulphate", + subscriptNumbers("??Nq*(SO4)2??"), + new Werkstoff.Stats().setRadioactive(true).setToxic(true), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable().onlyDust(), + OffsetID + 75, + TextureSet.SET_METALLIC + ); + + public static final Werkstoff lowQualityNaquadriaSolution = new Werkstoff( + new short[]{0x73,0x72,0x84}, + "Low Quality Naquadria Sulphate", + subscriptNumbers("~??Nq*??~"), + new Werkstoff.Stats().setRadioactive(true).setToxic(true), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable().addCells(), + OffsetID + 76, + TextureSet.SET_FLUID + ); + + public static final Werkstoff naquadriaSulphate = new Werkstoff( + new short[]{0x1f,0x1e,0x33}, + "Naquadria Sulphate", + subscriptNumbers("Nq*(SO4)2"), + new Werkstoff.Stats().setRadioactive(true).setToxic(true).setElektrolysis(true), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable().onlyDust(), + OffsetID + 77, + TextureSet.SET_METALLIC, + new Pair<>(Naquadria, 1), + new Pair<>(Sulfur, 2), + new Pair<>(Oxygen, 8) + ); + + public static final Werkstoff naquadahGoo = new Werkstoff( + new short[]{0x4c,0x4c,0x4c}, + "Naquadah Goo", + subscriptNumbers("??NqTiGaAd??"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable().addCells(), + OffsetID + 78, + TextureSet.SET_FLUID + ); + + public static final Werkstoff enrichedNaquadahGoo = new Werkstoff( + new short[]{0x82,0x68,0x68}, + "Enriched Naquadah Goo", + subscriptNumbers("??KeNq") + CharExchanger.shifter(8314) + "??", + new Werkstoff.Stats().setRadioactive(true), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable().addCells(), + OffsetID + 79, + TextureSet.SET_FLUID + ); + + public static final Werkstoff naquadriaGoo = new Werkstoff( + new short[]{0x4d,0x4d,0x55}, + "Naquadria Goo", + subscriptNumbers("??Nq*BaIn??"), + new Werkstoff.Stats().setRadioactive(true).setToxic(true), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable().addCells(), + OffsetID + 80, + TextureSet.SET_FLUID + ); + + //material for reactor stuff + public static final Werkstoff zircaloy4 = new Werkstoff( + new short[]{0x8a,0x6e,0x68}, + "Zircaloy-4", + subscriptNumbers("Zr34Sn5Fe2Cr"), + new Werkstoff.Stats().setCentrifuge(true).setBlastFurnace(true).setMeltingPoint(2800), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().onlyDust().addMolten().addMetalItems().addCraftingMetalWorkingItems().addSimpleMetalWorkingItems().addMixerRecipes((short) 4), + OffsetID + 81, + TextureSet.SET_METALLIC, + new Pair<>(WerkstoffLoader.Zirconium, 34), + new Pair<>(Tin, 5), + new Pair<>(Iron, 2), + new Pair<>(Chrome, 1) + ); + + public static final Werkstoff zircaloy2 = new Werkstoff( + new short[]{0xa4,0x8f,0x8b}, + "Zircaloy-2", + subscriptNumbers("Zr34Sn4FeCrNi"), + new Werkstoff.Stats().setCentrifuge(true).setBlastFurnace(true).setMeltingPoint(2800), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().onlyDust().addMolten().addMetalItems().addCraftingMetalWorkingItems().addSimpleMetalWorkingItems().addMixerRecipes((short) 2), + OffsetID + 82, + TextureSet.SET_METALLIC, + new Pair<>(WerkstoffLoader.Zirconium, 34), + new Pair<>(Tin, 4), + new Pair<>(Iron, 1), + new Pair<>(Chrome, 1), + new Pair<>(Nickel, 1) + ); + + public static final Werkstoff incoloy903 = new Werkstoff( + new short[]{0xa4,0x8f,0x8b}, + "Incoloy-903", + subscriptNumbers("Fe12Ni10Co8Ti4Mo2Al"), + new Werkstoff.Stats().setCentrifuge(true).setBlastFurnace(true).setMeltingPoint(3700).setGas(true), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().onlyDust().addMolten().addMetalItems().addCraftingMetalWorkingItems().addSimpleMetalWorkingItems().addMixerRecipes((short) 6), + OffsetID + 83, + TextureSet.SET_METALLIC, + new Pair<>(Iron, 12), + new Pair<>(Nickel, 10), + new Pair<>(Cobalt, 8), + new Pair<>(Titanium, 4), + new Pair<>(Molybdenum, 2), + new Pair<>(Aluminium, 1) + ); + + public static final Werkstoff adamantiumAlloy = new Werkstoff( + new short[]{0xa0,0xa0,0xa0}, + "Adamantium Alloy", + subscriptNumbers("Ad5Nq2La3"), + new Werkstoff.Stats().setCentrifuge(true).setBlastFurnace(true).setMeltingPoint(5000).setGas(true), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().onlyDust().addMolten().addMetalItems().addCraftingMetalWorkingItems().addSimpleMetalWorkingItems().addMixerRecipes((short) 3), + OffsetID + 84, + TextureSet.SET_SHINY, + new Pair<>(Adamantium, 5), + new Pair<>(Naquadah, 2), + new Pair<>(Lanthanum, 3) + ); + + @Override + public void run() { } +} diff --git a/src/main/java/goodgenerator/items/RadioactiveItem.java b/src/main/java/goodgenerator/items/RadioactiveItem.java new file mode 100644 index 0000000000..81ed7aa98a --- /dev/null +++ b/src/main/java/goodgenerator/items/RadioactiveItem.java @@ -0,0 +1,40 @@ +package goodgenerator.items; + +import gregtech.api.util.GT_Utility; +import ic2.core.IC2Potion; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.PotionEffect; +import net.minecraft.world.World; + +public class RadioactiveItem extends MyItems{ + + protected final int mRadio; + + public RadioactiveItem(String name, CreativeTabs Tab, int Rad) { + super(name, Tab); + this.mRadio = Rad; + } + + public RadioactiveItem(String name, String[] tooltip, CreativeTabs Tab, int Rad) { + super(name, tooltip, Tab); + this.mRadio = Rad; + } + + public RadioactiveItem(String name, String tooltip, CreativeTabs Tab, int Rad) { + super(name, tooltip, Tab); + this.mRadio = Rad; + } + + @Override + public void onUpdate(ItemStack aStack, World aWorld, Entity aPlayer, int aTimer, boolean aIsInHand) { + super.onUpdate(aStack, aWorld, aPlayer, aTimer, aIsInHand); + EntityLivingBase tPlayer = (EntityPlayer) aPlayer; + if (!GT_Utility.isWearingFullRadioHazmat(tPlayer)) + tPlayer.addPotionEffect(new PotionEffect(IC2Potion.radiation.id, mRadio, 4)); + } + +} diff --git a/src/main/java/goodgenerator/items/nuclear/IsotopeMaterial.java b/src/main/java/goodgenerator/items/nuclear/IsotopeMaterial.java new file mode 100644 index 0000000000..3d3d36cee0 --- /dev/null +++ b/src/main/java/goodgenerator/items/nuclear/IsotopeMaterial.java @@ -0,0 +1,55 @@ +package goodgenerator.items.nuclear; + +import goodgenerator.loader.Loaders; +import net.minecraft.item.ItemStack; + +import java.util.HashMap; +import java.util.HashSet; + +public class IsotopeMaterial { + + public static final HashSet mIsotopeMaterial = new HashSet<>(); + public static final HashMap mIDMap = new HashMap<>(); + public static final HashMap mNameMap = new HashMap<>(); + + public final int mID; + public final int mNeutron; + public final String mName; + public final String mLocalizedName; + public final String mMaterialName; + public final short[] mRGB; + public final NuclearTextures mTexture; + + public IsotopeMaterial(int aID, String aName, String aMaterialName, String aLocalizedName, NuclearTextures aTexture, int aR, int aG, int aB, int aNeutron) { + this.mID = aID; + this.mNeutron = aNeutron; + this.mName = aName; + this.mMaterialName = aMaterialName; + this.mLocalizedName = aLocalizedName; + this.mRGB = new short[] {(short) aR,(short) aG,(short) aB, 0}; + this.mTexture = aTexture; + mIsotopeMaterial.add(this); + mIDMap.put(this.mID, this); + mNameMap.put(this.mName, this); + } + + public ItemStack getFull(int aAmount) { + if (aAmount > 64) aAmount = 64; + return new ItemStack(Loaders.Isotope, aAmount, mID + 1000); + } + + public ItemStack getTiny(int aAmount) { + if (aAmount > 64) aAmount = 64; + return new ItemStack(Loaders.Isotope, aAmount, mID + 2000); + } + + public ItemStack getFullOxide(int aAmount) { + if (aAmount > 64) aAmount = 64; + return new ItemStack(Loaders.Isotope, aAmount, mID + 3000); + } + + public ItemStack getTinyOxide(int aAmount) { + if (aAmount > 64) aAmount = 64; + return new ItemStack(Loaders.Isotope, aAmount, mID + 4000); + } +} diff --git a/src/main/java/goodgenerator/items/nuclear/IsotopeMaterialLoader.java b/src/main/java/goodgenerator/items/nuclear/IsotopeMaterialLoader.java new file mode 100644 index 0000000000..75c2dba39c --- /dev/null +++ b/src/main/java/goodgenerator/items/nuclear/IsotopeMaterialLoader.java @@ -0,0 +1,16 @@ +package goodgenerator.items.nuclear; + +public class IsotopeMaterialLoader implements Runnable { + + protected static final int OffsetID = 0; + + public static final IsotopeMaterial Thorium232 = new IsotopeMaterial( + OffsetID, + "Thorium232", "Thorium", "Thorium-232", + NuclearTextures.STABLE1, 59, 59, 59, + 232 + ); + + @Override + public void run() { } +} diff --git a/src/main/java/goodgenerator/items/nuclear/NuclearMetaItemGenerator.java b/src/main/java/goodgenerator/items/nuclear/NuclearMetaItemGenerator.java new file mode 100644 index 0000000000..bd530699b3 --- /dev/null +++ b/src/main/java/goodgenerator/items/nuclear/NuclearMetaItemGenerator.java @@ -0,0 +1,103 @@ +package goodgenerator.items.nuclear; + +import com.github.bartimaeusnek.bartworks.util.Pair; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import goodgenerator.main.GoodGenerator; +import gregtech.api.interfaces.IIconContainer; +import gregtech.api.items.GT_MetaGenerated_Item; +import gregtech.api.util.GT_LanguageManager; +import gregtech.api.util.GT_OreDictUnificator; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; + +import java.util.List; + +import static goodgenerator.items.nuclear.IsotopeMaterial.mIDMap; +import static goodgenerator.items.nuclear.IsotopeMaterial.mIsotopeMaterial; + +public class NuclearMetaItemGenerator extends GT_MetaGenerated_Item { + + /** + *

Full ingot - 1000 + *

Tiny ingot - 2000 + *

Full-Oxide - 3000 + *

Tiny-Oxide - 4000 + */ + public static final Pair[] TYPE_OFFSET = new Pair[] { + new Pair<>(1000, "%s"), + new Pair<>(2000, "Tiny of %s"), + new Pair<>(3000, "%s Oxide"), + new Pair<>(4000, "Tiny of %s Oxide"), + }; + public static final Pair[] OREPREFIX = new Pair[] { + new Pair<>(1000, "item%s"), + new Pair<>(2000, "itemTiny%s"), + new Pair<>(3000, "item%sOxide"), + new Pair<>(4000, "itemTiny%sOxide"), + }; + + public NuclearMetaItemGenerator() { + super("nuclearIsotopeMaterial", (short) 32766, (short) 0); + this.setCreativeTab(GoodGenerator.GG); + for (IsotopeMaterial tIsotope : mIsotopeMaterial) { + for (Pair tType : TYPE_OFFSET) { + int tOffset = tType.getKey(); + String tOreName = tType.getValue(); + ItemStack tStack = new ItemStack(this, 1, tIsotope.mID + tOffset); + GT_LanguageManager.addStringLocalization(this.getUnlocalizedName(tStack) + ".name", String.format(tOreName, tIsotope.mLocalizedName)); + GT_LanguageManager.addStringLocalization(this.getUnlocalizedName(tStack) + ".tooltip", String.format("§b%s's Isotope.§r", tIsotope.mMaterialName)); + } + for (Pair tOreDict : OREPREFIX) { + int tOffset = tOreDict.getKey(); + String tOreName = tOreDict.getValue(); + ItemStack tStack = new ItemStack(this, 1, tIsotope.mID + tOffset); + GT_OreDictUnificator.registerOre(String.format(tOreName, tIsotope.mName), tStack); + } + } + } + + @Override + public String getItemStackDisplayName(ItemStack aStack) { + return GT_LanguageManager.getTranslation(this.getUnlocalizedName(aStack) + ".name"); + } + + @Override + public IIconContainer getIconContainer(int aMetaData) { + int tID = aMetaData % 1000; + int tType = aMetaData / 1000 - 1; + IsotopeMaterial tMaterial = mIDMap.get(tID); + if (tMaterial != null) { + return tMaterial.mTexture.mTextures[tType]; + } + return null; + } + + @Override + @SideOnly(Side.CLIENT) + public void getSubItems(Item var1, CreativeTabs aCreativeTab, List aList) { + for (IsotopeMaterial tIsotope : mIsotopeMaterial) { + for (int i = 1; i <= 4; i ++) { + ItemStack tStack = new ItemStack(this, 1, tIsotope.mID + i * 1000); + aList.add(tStack); + } + } + } + + @Override + public short[] getRGBa(ItemStack aStack) { + int tID = aStack.getItemDamage() % 1000; + IsotopeMaterial tMaterial = mIDMap.get(tID); + if (tMaterial != null) { + return tMaterial.mRGB; + } + return null; + } + + @Override + public final IIcon getIconFromDamage(int aMetaData) { + return this.getIconContainer(aMetaData).getIcon(); + } +} diff --git a/src/main/java/goodgenerator/items/nuclear/NuclearTextures.java b/src/main/java/goodgenerator/items/nuclear/NuclearTextures.java new file mode 100644 index 0000000000..b68c31a014 --- /dev/null +++ b/src/main/java/goodgenerator/items/nuclear/NuclearTextures.java @@ -0,0 +1,31 @@ +package goodgenerator.items.nuclear; + +import gregtech.api.enums.Textures; +import gregtech.api.interfaces.IIconContainer; + +public class NuclearTextures { + public static final NuclearTextures + STABLE1 = new NuclearTextures("stable1"), + STABLE2 = new NuclearTextures("stable2"), + UNSTABLE1 = new NuclearTextures("unstable1"), + UNSTABLE2 = new NuclearTextures("unstable2"), + UNSTABLE3 = new NuclearTextures("unstable3"), + UNSTABLE4 = new NuclearTextures("unstable4"); + + public final IIconContainer[] mTextures = new IIconContainer[4]; + public final String mSetName; + public static final String mTextureDir = "icons/isotope/"; + public static final int + FULL = 0, + TINY = 1, + FULL_OXIDE = 2, + TINY_OXIDE = 3; + + public NuclearTextures(String aName) { + mSetName = aName; + mTextures[0] = new Textures.ItemIcons.CustomIcon(mTextureDir + aName); + mTextures[1] = new Textures.ItemIcons.CustomIcon(mTextureDir + aName + "tiny"); + mTextures[2] = new Textures.ItemIcons.CustomIcon(mTextureDir + aName); + mTextures[3] = new Textures.ItemIcons.CustomIcon(mTextureDir + aName + "tiny"); + } +} diff --git a/src/main/java/goodgenerator/loader/AchievementLoader.java b/src/main/java/goodgenerator/loader/AchievementLoader.java new file mode 100644 index 0000000000..2df30c8752 --- /dev/null +++ b/src/main/java/goodgenerator/loader/AchievementLoader.java @@ -0,0 +1,4 @@ +package goodgenerator.loader; + +public class AchievementLoader { +} diff --git a/src/main/java/goodgenerator/loader/FuelRecipeLoader.java b/src/main/java/goodgenerator/loader/FuelRecipeLoader.java new file mode 100644 index 0000000000..73e97830a2 --- /dev/null +++ b/src/main/java/goodgenerator/loader/FuelRecipeLoader.java @@ -0,0 +1,79 @@ +package goodgenerator.loader; + +import goodgenerator.items.MyMaterial; +import goodgenerator.util.ItemRefer; +import goodgenerator.util.MyRecipeAdder; +import com.github.bartimaeusnek.bartworks.system.material.WerkstoffLoader; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.util.GT_OreDictUnificator; +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; + +import static goodgenerator.main.GG_Config_Loader.NaquadahFuelTime; +import static goodgenerator.main.GG_Config_Loader.NaquadahFuelVoltage; + +public class FuelRecipeLoader { + public static void RegisterFuel(){ + //MyRecipeAdder.instance.addLiquidMentalFuel(Materials.NaquadahEnriched.getMolten(1L),Materials.Naquadah.getMolten(1L),32768,100); + //MyRecipeAdder.instance.addLiquidMentalFuel(Materials.Naquadria.getMolten(1L),Materials.Naquadah.getMolten(1L),262144,120); + MyRecipeAdder.instance.addLiquidMentalFuel(MyMaterial.uraniumBasedLiquidFuelExcited.getFluidOrGas(1),MyMaterial.uraniumBasedLiquidFuelDepleted.getFluidOrGas(1),NaquadahFuelVoltage[0],NaquadahFuelTime[0]); + MyRecipeAdder.instance.addLiquidMentalFuel(MyMaterial.thoriumBasedLiquidFuelExcited.getFluidOrGas(1),MyMaterial.thoriumBasedLiquidFuelDepleted.getFluidOrGas(1),NaquadahFuelVoltage[1],NaquadahFuelTime[1]); + MyRecipeAdder.instance.addLiquidMentalFuel(MyMaterial.plutoniumBasedLiquidFuelExcited.getFluidOrGas(1),MyMaterial.plutoniumBasedLiquidFuelDepleted.getFluidOrGas(1),NaquadahFuelVoltage[2],NaquadahFuelTime[2]); + MyRecipeAdder.instance.addLiquidMentalFuel(MyMaterial.naquadahBasedFuelMkI.getFluidOrGas(1),MyMaterial.naquadahBasedFuelMkIDepleted.getFluidOrGas(1),NaquadahFuelVoltage[3],NaquadahFuelTime[3]); + MyRecipeAdder.instance.addLiquidMentalFuel(MyMaterial.naquadahBasedFuelMkII.getFluidOrGas(1),MyMaterial.naquadahBasedFuelMkIIDepleted.getFluidOrGas(1),NaquadahFuelVoltage[4],NaquadahFuelTime[4]); + MyRecipeAdder.instance.addLiquidMentalFuel(MyMaterial.naquadahBasedFuelMkIII.getFluidOrGas(1),MyMaterial.naquadahBasedFuelMkIIIDepleted.getFluidOrGas(1),NaquadahFuelVoltage[5],NaquadahFuelTime[5]); + MyRecipeAdder.instance.addLiquidMentalFuel(MyMaterial.naquadahBasedFuelMkIV.getFluidOrGas(1),MyMaterial.naquadahBasedFuelMkIVDepleted.getFluidOrGas(1),NaquadahFuelVoltage[6],NaquadahFuelTime[6]); + MyRecipeAdder.instance.addLiquidMentalFuel(MyMaterial.naquadahBasedFuelMkV.getFluidOrGas(1),MyMaterial.naquadahBasedFuelMkVDepleted.getFluidOrGas(1),NaquadahFuelVoltage[7],NaquadahFuelTime[7]); + + MyRecipeAdder.instance.addNaquadahFuelRefineRecipe( + new FluidStack[]{ + MyMaterial.heavyNaquadahFuel.getFluidOrGas(800), + MyMaterial.lightNaquadahFuel.getFluidOrGas(1000), + }, + new ItemStack[]{ + MyMaterial.extremelyUnstableNaquadah.get(OrePrefixes.dust,4), + WerkstoffLoader.Tiberium.get(OrePrefixes.dust,27), + ItemRefer.High_Density_Uranium.get(2), + ItemRefer.High_Density_Plutonium.get(1), + }, + MyMaterial.naquadahBasedFuelMkIII.getFluidOrGas(100), + 1100000, + 100, + 1 + ); + + MyRecipeAdder.instance.addNaquadahFuelRefineRecipe( + new FluidStack[]{ + MyMaterial.naquadahBasedFuelMkIII.getFluidOrGas(2000), + Materials.Praseodymium.getMolten(9216L) + }, + new ItemStack[]{ + MyMaterial.extremelyUnstableNaquadah.get(OrePrefixes.dust,27), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.NetherStar,64), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.DraconiumAwakened,64), + MyMaterial.orundum.get(OrePrefixes.dust,32), + }, + MyMaterial.naquadahBasedFuelMkIV.getFluidOrGas(250), + 46000000, + 160, + 2 + ); + + MyRecipeAdder.instance.addNaquadahFuelRefineRecipe( + new FluidStack[]{ + MyMaterial.naquadahBasedFuelMkIV.getFluidOrGas(2000), + FluidRegistry.getFluidStack("heavyradox",1000), + }, + new ItemStack[]{ + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Infinity,16), + MyMaterial.atomicSeparationCatalyst.get(OrePrefixes.dust, 32), + }, + MyMaterial.naquadahBasedFuelMkV.getFluidOrGas(500), + 100000000, + 200, + 2 + ); + } +} diff --git a/src/main/java/goodgenerator/loader/FuelRodLoader.java b/src/main/java/goodgenerator/loader/FuelRodLoader.java new file mode 100644 index 0000000000..ead118983d --- /dev/null +++ b/src/main/java/goodgenerator/loader/FuelRodLoader.java @@ -0,0 +1,56 @@ +package goodgenerator.loader; + +import goodgenerator.items.FuelRod; +import goodgenerator.items.RadioactiveItem; +import goodgenerator.main.GoodGenerator; +import cpw.mods.fml.common.registry.GameRegistry; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +import static goodgenerator.util.DescTextLocalization.addText; + +public class FuelRodLoader { + + public static Item rodCompressedUraniumDepleted; + public static Item rodCompressedUraniumDepleted_2; + public static Item rodCompressedUraniumDepleted_4; + public static Item rodCompressedPlutoniumDepleted; + public static Item rodCompressedPlutoniumDepleted_2; + public static Item rodCompressedPlutoniumDepleted_4; + public static Item rodCompressedUranium; + public static Item rodCompressedUranium_2; + public static Item rodCompressedUranium_4; + public static Item rodCompressedPlutonium; + public static Item rodCompressedPlutonium_2; + public static Item rodCompressedPlutonium_4; + + public static void RegisterRod() { + rodCompressedUraniumDepleted = new RadioactiveItem("rodCompressedUraniumDepleted", addText("depletedfuelrod.tooltip", 1), GoodGenerator.GG, 100); + rodCompressedUraniumDepleted_2 = new RadioactiveItem("rodCompressedUraniumDepleted2", addText("depletedfuelrod.tooltip", 1), GoodGenerator.GG, 200); + rodCompressedUraniumDepleted_4 = new RadioactiveItem("rodCompressedUraniumDepleted4", addText("depletedfuelrod.tooltip", 1), GoodGenerator.GG, 400); + rodCompressedPlutoniumDepleted = new RadioactiveItem("rodCompressedPlutoniumDepleted", addText("depletedfuelrod.tooltip", 1), GoodGenerator.GG, 120); + rodCompressedPlutoniumDepleted_2 = new RadioactiveItem("rodCompressedPlutoniumDepleted2", addText("depletedfuelrod.tooltip", 1), GoodGenerator.GG, 240); + rodCompressedPlutoniumDepleted_4 = new RadioactiveItem("rodCompressedPlutoniumDepleted4", addText("depletedfuelrod.tooltip", 1), GoodGenerator.GG, 480); + + GameRegistry.registerItem(rodCompressedUraniumDepleted, "rodCompressedUraniumDepleted", GoodGenerator.MOD_ID); + GameRegistry.registerItem(rodCompressedUraniumDepleted_2, "rodCompressedUraniumDepleted2", GoodGenerator.MOD_ID); + GameRegistry.registerItem(rodCompressedUraniumDepleted_4, "rodCompressedUraniumDepleted4", GoodGenerator.MOD_ID); + GameRegistry.registerItem(rodCompressedPlutoniumDepleted, "rodCompressedPlutoniumDepleted", GoodGenerator.MOD_ID); + GameRegistry.registerItem(rodCompressedPlutoniumDepleted_2, "rodCompressedPlutoniumDepleted2", GoodGenerator.MOD_ID); + GameRegistry.registerItem(rodCompressedPlutoniumDepleted_4, "rodCompressedPlutoniumDepleted4", GoodGenerator.MOD_ID); + + rodCompressedUranium = new FuelRod("rodCompressedUranium", 1, 100, 4, 800, 70000, new ItemStack(rodCompressedUraniumDepleted, 1), GoodGenerator.GG); + rodCompressedUranium_2 = new FuelRod("rodCompressedUranium2", 2, 100, 4, 1600, 70000, new ItemStack(rodCompressedUraniumDepleted_2, 1), GoodGenerator.GG); + rodCompressedUranium_4 = new FuelRod("rodCompressedUranium4", 4, 100, 4, 3200, 70000, new ItemStack(rodCompressedUraniumDepleted_4, 1), GoodGenerator.GG); + rodCompressedPlutonium = new FuelRod("rodCompressedPlutonium", 1, 50, 4, 1000, 30000, 6, new ItemStack(rodCompressedPlutoniumDepleted, 1), GoodGenerator.GG); + rodCompressedPlutonium_2 = new FuelRod("rodCompressedPlutonium2", 2, 50, 4, 2000, 30000, 6, new ItemStack(rodCompressedPlutoniumDepleted_2, 1), GoodGenerator.GG); + rodCompressedPlutonium_4 = new FuelRod("rodCompressedPlutonium4", 4, 50, 4, 4000, 30000, 6, new ItemStack(rodCompressedPlutoniumDepleted_4, 1), GoodGenerator.GG); + + GameRegistry.registerItem(rodCompressedUranium, "rodCompressedUranium", GoodGenerator.MOD_ID); + GameRegistry.registerItem(rodCompressedUranium_2, "rodCompressedUranium2", GoodGenerator.MOD_ID); + GameRegistry.registerItem(rodCompressedUranium_4, "rodCompressedUranium4", GoodGenerator.MOD_ID); + GameRegistry.registerItem(rodCompressedPlutonium, "rodCompressedPlutonium", GoodGenerator.MOD_ID); + GameRegistry.registerItem(rodCompressedPlutonium_2, "rodCompressedPlutonium2", GoodGenerator.MOD_ID); + GameRegistry.registerItem(rodCompressedPlutonium_4, "rodCompressedPlutonium4", GoodGenerator.MOD_ID); + } +} diff --git a/src/main/java/goodgenerator/loader/Loaders.java b/src/main/java/goodgenerator/loader/Loaders.java new file mode 100644 index 0000000000..95c956a85a --- /dev/null +++ b/src/main/java/goodgenerator/loader/Loaders.java @@ -0,0 +1,215 @@ +package goodgenerator.loader; + +import goodgenerator.blocks.myFluids.FluidsBuilder; +import goodgenerator.blocks.regularBlock.Casing; +import goodgenerator.blocks.regularBlock.ComplexTextureCasing; +import goodgenerator.blocks.regularBlock.Frame; +import goodgenerator.blocks.regularBlock.TEBlock; +import goodgenerator.blocks.tileEntity.*; +import goodgenerator.blocks.tileEntity.GTMetaTileEntity.NeutronAccelerator; +import goodgenerator.blocks.tileEntity.GTMetaTileEntity.NeutronSensor; +import goodgenerator.crossmod.nei.IMCForNEI; +import goodgenerator.crossmod.nei.NEI_Config; +import goodgenerator.crossmod.thaumcraft.LargeEssentiaEnergyData; +import goodgenerator.items.MyItemBlocks; +import goodgenerator.items.MyItems; +import goodgenerator.items.RadioactiveItem; +import goodgenerator.items.nuclear.NuclearMetaItemGenerator; +import goodgenerator.main.GoodGenerator; +import cpw.mods.fml.common.Loader; +import cpw.mods.fml.common.registry.GameRegistry; +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.Textures; +import gregtech.api.interfaces.ITexture; +import gregtech.api.render.TextureFactory; +import net.minecraft.block.Block; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraftforge.oredict.OreDictionary; + +import static goodgenerator.util.DescTextLocalization.addText; + +public class Loaders { + + public static final int IDOffset = 32001; + public static final byte GoodGeneratorTexturePage = 12; + + public static final Item _null_ = new MyItems("_null_", null); + + public static final Item radiationProtectionPlate = new MyItems("radiationProtectionPlate", GoodGenerator.GG); + public static final Item wrappedUraniumIngot = new MyItems("wrappedUraniumIngot", GoodGenerator.GG); + public static final Item highDensityUraniumNugget = new RadioactiveItem("highDensityUraniumNugget", GoodGenerator.GG, 200); + public static final Item highDensityUranium = new RadioactiveItem("highDensityUranium", GoodGenerator.GG, 1800); + public static final Item wrappedThoriumIngot = new MyItems("wrappedThoriumIngot", GoodGenerator.GG); + public static final Item highDensityThoriumNugget = new RadioactiveItem("highDensityThoriumNugget", GoodGenerator.GG, 50); + public static final Item highDensityThorium = new RadioactiveItem("highDensityThorium", GoodGenerator.GG, 450); + public static final Item wrappedPlutoniumIngot = new MyItems("wrappedPlutoniumIngot", GoodGenerator.GG); + public static final Item highDensityPlutoniumNugget = new RadioactiveItem("highDensityPlutoniumNugget", GoodGenerator.GG, 450); + public static final Item highDensityPlutonium = new RadioactiveItem("highDensityPlutonium", GoodGenerator.GG, 4050); + public static final Item rawAtomicSeparationCatalyst = new MyItems("rawAtomicSeparationCatalyst", GoodGenerator.GG); + public static final Item advancedRadiationProtectionPlate = new MyItems("advancedRadiationProtectionPlate", GoodGenerator.GG); + public static final Item aluminumNitride = new MyItems("aluminumNitride", "AlN", GoodGenerator.GG); + public static final Item specialCeramics = new MyItems("specialCeramics", GoodGenerator.GG); + public static final Item specialCeramicsPlate = new MyItems("specialCeramicsPlate", GoodGenerator.GG); + public static final Item radioactiveWaste = new RadioactiveItem("radioactiveWaste", GoodGenerator.GG, 400); + public static final Item plasticCase = new MyItems("plasticCase", GoodGenerator.GG); + public static final Item quartzWafer = new MyItems("quartzWafer", GoodGenerator.GG); + public static final Item microHeater = new MyItems("microHeater", GoodGenerator.GG); + public static final Item quartzCrystalResonator = new MyItems("quartzCrystalResonator", GoodGenerator.GG); + public static final Item inverter = new MyItems("inverter", addText("inverter.tooltip", 1), GoodGenerator.GG); + public static final Item neutronSource = new MyItems("neutronSource", GoodGenerator.GG); + public static final Item naquadahMass = new MyItems("naquadahMass", addText("naquadahMass.tooltip", 1), GoodGenerator.GG); + public static final Item enrichedNaquadahMass = new MyItems("enrichedNaquadahMass", addText("enrichedNaquadahMass.tooltip", 1), GoodGenerator.GG); + public static final Item naquadriaMass = new MyItems("naquadriaMass", addText("naquadriaMass.tooltip", 1), GoodGenerator.GG); + public static final Item advancedFuelRod = new MyItems("advancedFuelRod", GoodGenerator.GG); + public static final Item fluidCore = new MyItems("fluidCore", GoodGenerator.GG, new String[]{GoodGenerator.MOD_ID+":fluidCore/1", GoodGenerator.MOD_ID+":fluidCore/2", GoodGenerator.MOD_ID+":fluidCore/3", GoodGenerator.MOD_ID+":fluidCore/4", GoodGenerator.MOD_ID+":fluidCore/5", GoodGenerator.MOD_ID+":fluidCore/6"}); + public static final Item upgradeEssentia = new MyItems("upgradeEssentia", GoodGenerator.GG, new String[]{GoodGenerator.MOD_ID+":upgradeEssentia/null", GoodGenerator.MOD_ID+":upgradeEssentia/air", GoodGenerator.MOD_ID+":upgradeEssentia/thermal", GoodGenerator.MOD_ID+":upgradeEssentia/unstable", GoodGenerator.MOD_ID+":upgradeEssentia/victus", GoodGenerator.MOD_ID+":upgradeEssentia/tainted", GoodGenerator.MOD_ID+":upgradeEssentia/mechanics", GoodGenerator.MOD_ID+":upgradeEssentia/spirit", GoodGenerator.MOD_ID+":upgradeEssentia/radiation", GoodGenerator.MOD_ID+":upgradeEssentia/electric"}); + + public static final Block MAR_Casing = new Casing("MAR_Casing", new String[]{GoodGenerator.MOD_ID+":MAR_Casing"}); + public static final Block FRF_Casings = new Casing("FRF_Casing", new String[]{"gregtech:iconsets/MACHINE_CASING_MINING_BLACKPLUTONIUM"}); + public static final Block FRF_Coil_1 = new Casing("FRF_Coil_1", new String[]{GoodGenerator.MOD_ID+":FRF_Coils/1"}); + public static final Block FRF_Coil_2 = new Casing("FRF_Coil_2", new String[]{GoodGenerator.MOD_ID+":FRF_Coils/2"}); + public static final Block FRF_Coil_3 = new Casing("FRF_Coil_3", new String[]{GoodGenerator.MOD_ID+":FRF_Coils/3"}); + public static final Block radiationProtectionSteelFrame = new Frame("radiationProtectionSteelFrame", new String[]{GoodGenerator.MOD_ID+":radiationProtectionSteelFrame"}); + public static final Block fieldRestrictingGlass = new Frame("fieldRestrictingGlass", new String[]{GoodGenerator.MOD_ID+":fieldRestrictingGlass"}); + public static final Block rawCylinder = new Casing("rawCylinder", new String[]{GoodGenerator.MOD_ID+":rawCylinder"}); + public static final Block titaniumPlatedCylinder = new Casing("titaniumPlatedCylinder", new String[]{GoodGenerator.MOD_ID+":titaniumPlatedCylinder"}); + public static final Block magicCasing = new Casing("magicCasing", new String[]{GoodGenerator.MOD_ID+":MagicCasing"}); + public static final Block essentiaCell = new Casing("essentiaCell", new String[]{GoodGenerator.MOD_ID+":essentiaCell/1",GoodGenerator.MOD_ID+":essentiaCell/2",GoodGenerator.MOD_ID+":essentiaCell/3",GoodGenerator.MOD_ID+":essentiaCell/4"}); + public static final Block speedingPipe = new ComplexTextureCasing("speedingPipe", new String[]{GoodGenerator.MOD_ID+":speedingPipe_SIDE"}, new String[]{GoodGenerator.MOD_ID+":speedingPipe_TOP"}); + public static final Block yottaFluidTankCell = new Casing("yottaFluidTankCell", new String[]{GoodGenerator.MOD_ID+":yottaFluidTankCell/1", GoodGenerator.MOD_ID+":yottaFluidTankCell/2", GoodGenerator.MOD_ID+":yottaFluidTankCell/3", GoodGenerator.MOD_ID+":yottaFluidTankCell/4", GoodGenerator.MOD_ID+":yottaFluidTankCell/5", + GoodGenerator.MOD_ID+":yottaFluidTankCell/6", GoodGenerator.MOD_ID+":yottaFluidTankCell/7", GoodGenerator.MOD_ID+":yottaFluidTankCell/8", GoodGenerator.MOD_ID+":yottaFluidTankCell/9", GoodGenerator.MOD_ID+":yottaFluidTankCell/10",}); + public static final Block yottaFluidTankCasing = new ComplexTextureCasing("yottaFluidTankCasing", new String[]{GoodGenerator.MOD_ID+":yottaFluidTankCasing_SIDE"}, new String[]{GoodGenerator.MOD_ID+":yottaFluidTankCasing_TOP"}); + + public static Block essentiaHatch; + + public static ItemStack MAR; + public static ItemStack FRF; + public static ItemStack UCFE; + public static ItemStack LEG; + public static ItemStack NS; + public static ItemStack NA; + public static ItemStack YFT; + + public static ItemStack[] NeutronAccelerators = new ItemStack[9]; + + public static Item Isotope = new NuclearMetaItemGenerator(); + + public static void GTMetaTileRegister(){ + Loaders.MAR = new MultiNqGenerator(12732, "NaG", "Large Naquadah Reactor").getStackForm(1L); + Loaders.FRF = new FuelRefineFactory(16999, "FRF", "Naquadah Fuel Refinery").getStackForm(1L); + Loaders.UCFE = new UniversalChemicalFuelEngine(IDOffset, "UniversalChemicalFuelEngine", "Universal Chemical Fuel Engine").getStackForm(1L); + for (int i = 0; i < 9; i ++) { + Loaders.NeutronAccelerators[i] = new NeutronAccelerator(IDOffset + 2 + i, "Neutron Accelerator " + GT_Values.VN[i], "Neutron Accelerator " + GT_Values.VN[i], i).getStackForm(1L); + } + Loaders.NS = new NeutronSensor(IDOffset + 11, "Neutron Sensor", "Neutron Sensor", 5).getStackForm(1L); + Loaders.NA = new NeutronActivator(IDOffset + 12, "NeutronActivator", "Neutron Activator").getStackForm(1L); + Loaders.YFT = new YottaFluidTank(IDOffset + 13, "YottaFluidTank", "YOTTank").getStackForm(1L); + } + + public static void Register() { + + GameRegistry.registerItem(_null_, "_null_", GoodGenerator.MOD_ID); + NEI_Config.hide(_null_); + + GameRegistry.registerBlock(MAR_Casing, MyItemBlocks.class, "MAR_Casing"); + GameRegistry.registerBlock(radiationProtectionSteelFrame, MyItemBlocks.class, "radiationProtectionSteelFrame"); + GameRegistry.registerBlock(fieldRestrictingGlass, MyItemBlocks.class, "fieldRestrictingGlass"); + GameRegistry.registerBlock(FRF_Casings, MyItemBlocks.class, "FRF_Casings"); + GameRegistry.registerBlock(FRF_Coil_1, MyItemBlocks.class, "FRF_Coil_1"); + GameRegistry.registerBlock(FRF_Coil_2, MyItemBlocks.class, "FRF_Coil_2"); + GameRegistry.registerBlock(FRF_Coil_3, MyItemBlocks.class, "FRF_Coil_3"); + GameRegistry.registerBlock(rawCylinder, MyItemBlocks.class, "rawCylinder"); + GameRegistry.registerBlock(titaniumPlatedCylinder, MyItemBlocks.class, "titaniumPlatedCylinder"); + GameRegistry.registerBlock(speedingPipe, MyItemBlocks.class, "speedingPipe"); + GameRegistry.registerBlock(yottaFluidTankCell, MyItemBlocks.class, "yottaFluidTankCells"); + GameRegistry.registerBlock(yottaFluidTankCasing, MyItemBlocks.class, "yottaFluidTankCasing"); + GameRegistry.registerItem(radiationProtectionPlate, "radiationProtectionPlate", GoodGenerator.MOD_ID); + GameRegistry.registerItem(wrappedUraniumIngot, "wrappedUraniumIngot", GoodGenerator.MOD_ID); + GameRegistry.registerItem(highDensityUraniumNugget, "highDensityUraniumNugget", GoodGenerator.MOD_ID); + GameRegistry.registerItem(highDensityUranium, "highDensityUranium", GoodGenerator.MOD_ID); + GameRegistry.registerItem(wrappedThoriumIngot, "wrappedThoriumIngot", GoodGenerator.MOD_ID); + GameRegistry.registerItem(highDensityThoriumNugget, "highDensityThoriumNugget", GoodGenerator.MOD_ID); + GameRegistry.registerItem(highDensityThorium, "highDensityThorium", GoodGenerator.MOD_ID); + GameRegistry.registerItem(wrappedPlutoniumIngot, "wrappedPlutoniumIngot", GoodGenerator.MOD_ID); + GameRegistry.registerItem(highDensityPlutoniumNugget, "highDensityPlutoniumNugget", GoodGenerator.MOD_ID); + GameRegistry.registerItem(highDensityPlutonium, "highDensityPlutonium", GoodGenerator.MOD_ID); + GameRegistry.registerItem(rawAtomicSeparationCatalyst, "rawAtomicSeparationCatalyst", GoodGenerator.MOD_ID); + GameRegistry.registerItem(advancedRadiationProtectionPlate, "advancedRadiationProtectionPlate", GoodGenerator.MOD_ID); + GameRegistry.registerItem(aluminumNitride, "aluminumNitride", GoodGenerator.MOD_ID); + GameRegistry.registerItem(specialCeramics, "specialCeramics", GoodGenerator.MOD_ID); + GameRegistry.registerItem(specialCeramicsPlate, "specialCeramicsPlate", GoodGenerator.MOD_ID); + GameRegistry.registerItem(radioactiveWaste, "radioactiveWaste", GoodGenerator.MOD_ID); + GameRegistry.registerItem(plasticCase, "plasticCase", GoodGenerator.MOD_ID); + GameRegistry.registerItem(quartzWafer, "quartzWafer", GoodGenerator.MOD_ID); + GameRegistry.registerItem(microHeater, "microHeater", GoodGenerator.MOD_ID); + GameRegistry.registerItem(quartzCrystalResonator, "quartzCrystalResonator", GoodGenerator.MOD_ID); + GameRegistry.registerItem(inverter, "inverter", GoodGenerator.MOD_ID); + GameRegistry.registerItem(neutronSource, "neutronSource", GoodGenerator.MOD_ID); + GameRegistry.registerItem(naquadahMass, "naquadahMass", GoodGenerator.MOD_ID); + GameRegistry.registerItem(enrichedNaquadahMass, "enrichedNaquadahMass", GoodGenerator.MOD_ID); + GameRegistry.registerItem(naquadriaMass, "naquadriaMass", GoodGenerator.MOD_ID); + GameRegistry.registerItem(advancedFuelRod, "advancedFuelRod", GoodGenerator.MOD_ID); + GameRegistry.registerItem(fluidCore, "fluidCore", GoodGenerator.MOD_ID); + } + + public static void compactMod() { + if (Loader.isModLoaded("Thaumcraft")) { + LargeEssentiaEnergyData.processEssentiaData(); + GameRegistry.registerItem(upgradeEssentia, "upgradeEssentia", GoodGenerator.MOD_ID); + GameRegistry.registerTileEntity(EssentiaHatch.class, "EssentiaHatch"); + Loaders.LEG = new LargeEssentiaGenerator(IDOffset + 1, "LargeEssentiaGenerator", "Large Essentia Generator").getStackForm(1L); + essentiaHatch = new TEBlock("essentiaHatch", new String[]{GoodGenerator.MOD_ID + ":essentiaHatch"}, 1); + GameRegistry.registerBlock(magicCasing, MyItemBlocks.class, "magicCasing"); + GameRegistry.registerBlock(essentiaCell, MyItemBlocks.class, "essentiaCell"); + GameRegistry.registerBlock(essentiaHatch, MyItemBlocks.class, "essentiaHatch"); + } + } + + public static void addOreDic(){ + OreDictionary.registerOre("blockGlass", fieldRestrictingGlass); + OreDictionary.registerOre("blockGlassZPM", fieldRestrictingGlass); + OreDictionary.registerOre("dustAluminumNitride", aluminumNitride); + } + + public static void addTexturePage(){ + if (Textures.BlockIcons.casingTexturePages[GoodGeneratorTexturePage] == null){ + Textures.BlockIcons.casingTexturePages[GoodGeneratorTexturePage] = new ITexture[128]; + Textures.BlockIcons.casingTexturePages[GoodGeneratorTexturePage][0] = TextureFactory.of(magicCasing); + Textures.BlockIcons.casingTexturePages[GoodGeneratorTexturePage][1] = TextureFactory.of(yottaFluidTankCasing); + } + } + + public static void preInitLoad(){ + Register(); + addOreDic(); + addTexturePage(); + compactMod(); + FluidsBuilder.Register(); + FuelRodLoader.RegisterRod(); + } + + public static void initLoad(){ + GTMetaTileRegister(); + initLoadRecipes(); + IMCForNEI.IMCSender(); + } + + public static void postInitLoad(){ + postInitLoadRecipes(); + } + + public static void initLoadRecipes(){ + RecipeLoader.InitLoadRecipe(); + RecipeLoader_02.InitLoadRecipe(); + FuelRecipeLoader.RegisterFuel(); + NaquadahReworkRecipeLoader.RecipeLoad(); + } + + public static void postInitLoadRecipes(){ + RecipeLoader.RecipeLoad(); + RecipeLoader.Fixer(); + RecipeLoader_02.RecipeLoad(); + NeutronActivatorLoader.NARecipeLoad(); + } +} diff --git a/src/main/java/goodgenerator/loader/NaquadahReworkRecipeLoader.java b/src/main/java/goodgenerator/loader/NaquadahReworkRecipeLoader.java new file mode 100644 index 0000000000..7c3361eac4 --- /dev/null +++ b/src/main/java/goodgenerator/loader/NaquadahReworkRecipeLoader.java @@ -0,0 +1,1125 @@ +package goodgenerator.loader; + +import goodgenerator.main.GoodGenerator; +import goodgenerator.util.ItemRefer; +import goodgenerator.util.MyRecipeAdder; +import com.github.bartimaeusnek.bartworks.system.material.GT_Enhancement.PlatinumSludgeOverHaul; +import com.github.bartimaeusnek.bartworks.system.material.WerkstoffLoader; +import cpw.mods.fml.common.Loader; +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.*; +import gregtech.common.items.CombType; +import gregtech.loaders.misc.GT_Bees; +import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_MultisUsingFluidInsteadOfCells; +import net.minecraft.item.ItemStack; +import net.minecraft.item.crafting.CraftingManager; +import net.minecraft.item.crafting.IRecipe; +import net.minecraft.item.crafting.ShapedRecipes; +import net.minecraft.item.crafting.ShapelessRecipes; +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.oredict.OreDictionary; +import net.minecraftforge.oredict.ShapedOreRecipe; +import net.minecraftforge.oredict.ShapelessOreRecipe; +import org.apache.commons.lang3.reflect.FieldUtils; + +import java.lang.reflect.*; +import java.util.HashSet; + +import static goodgenerator.items.MyMaterial.*; +import static goodgenerator.main.GG_Config_Loader.EnableNaquadahRework; +import static gregtech.common.items.GT_MetaGenerated_Item_01.registerCauldronCleaningFor; + +public class NaquadahReworkRecipeLoader { + + public static void RecipeLoad(){ + + if (!EnableNaquadahRework) return; + + //Naquadah Rework Line + GT_Values.RA.addBlastRecipe( + naquadahEarth.get(OrePrefixes.dust, 2), + GT_Utility.getIntegratedCircuit(1), + fluoroantimonicAcid.getFluidOrGas(3000), + lowQualityNaquadahEmulsion.getFluidOrGas(2000), + titaniumTrifluoride.get(OrePrefixes.dust, 1), + null, + 100, + 480, + 3000 + ); + + GT_Values.RA.addBlastRecipe( + titaniumTrifluoride.get(OrePrefixes.dust, 1), + GT_Utility.getIntegratedCircuit(1), + Materials.Hydrogen.getGas(3000), + Materials.HydrofluoricAcid.getFluid(3000), + GT_OreDictUnificator.get(OrePrefixes.ingotHot, Materials.Titanium, 1), + null, + 120, + 1920, + 2000 + ); + + GT_Values.RA.addMultiblockChemicalRecipe( + new ItemStack[]{ + GT_Utility.copyAmount(0, GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Copper, 1)) + }, + new FluidStack[]{ + Materials.Hydrogen.getGas(8000), + FluidRegistry.getFluidStack("seedoil", 3000) + }, + new FluidStack[]{ + towEthyl1Hexanol.getFluidOrGas(1000) + }, + null, + 400, + 480 + ); + + GT_Values.RA.addMultiblockChemicalRecipe( + new ItemStack[]{ + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sodium, 16) + }, + new FluidStack[]{ + towEthyl1Hexanol.getFluidOrGas(2000), + Materials.PhosphoricAcid.getFluid(1000), + Materials.Ethanol.getFluid(4000) + }, + new FluidStack[]{ + P507.getFluidOrGas(1000) + }, + null, + 1200, + 1920 + ); + + GT_Values.RA.addMultiblockChemicalRecipe( + null, + new FluidStack[]{ + P507.getFluidOrGas(4000), + lowQualityNaquadahSolution.getFluidOrGas(36000), + }, + new FluidStack[]{ + fluorineRichWasteLiquid.getFluidOrGas(6000), + naquadahAdamantiumSolution.getFluidOrGas(30000) + }, + null, + 4000, + 1920 + ); + + GT_Values.RA.addMultiblockChemicalRecipe( + new ItemStack[]{ + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Quicklime, 60), + }, + new FluidStack[]{ + fluorineRichWasteLiquid.getFluidOrGas(1500) + }, + new FluidStack[]{ + wasteLiquid.getFluidOrGas(1000) + }, + new ItemStack[]{ + WerkstoffLoader.Fluorspar.get(OrePrefixes.dust, 60) + }, + 1000, + 120 + ); + + GT_Values.RA.addUniversalDistillationRecipe( + wasteLiquid.getFluidOrGas(10000), + new FluidStack[]{ + Materials.SaltWater.getFluid(3000), + FluidRegistry.getFluidStack("phenol", 2000), + Materials.HydrochloricAcid.getFluid(5000) + }, + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Chrome, 3), + 300, + 480 + ); + + MyRecipeAdder.instance.addNeutronActivatorRecipe( + new FluidStack[]{ + naquadahAdamantiumSolution.getFluidOrGas(3000) + }, + null, + new FluidStack[]{ + naquadahRichSolution.getFluidOrGas(2000) + }, + new ItemStack[]{ + adamantine.get(OrePrefixes.dust, 4), + naquadahEarth.get(OrePrefixes.dust, 2), + concentratedEnrichedNaquadahSludge.get(OrePrefixes.dust, 1) + }, + 100, + 230, + 200 + ); + + GT_Values.RA.addAutoclaveRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SodiumHydroxide, 27), + null, + naquadahRichSolution.getFluidOrGas(5000), + P507.getFluidOrGas(1000), + naquadahine.get(OrePrefixes.dust, 10), + 10000, + 1000, + 120, + false + ); + + GT_Values.RA.addBlastRecipe( + naquadahine.get(OrePrefixes.dust, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Carbon, 1), + null, + Materials.CarbonDioxide.getGas(1000), + GT_OreDictUnificator.get(OrePrefixes.ingotHot, Materials.Naquadah, 1), + null, + 20, + 7680, + 5000 + ); + + GT_Values.RA.addCentrifugeRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SodiumHydroxide, 27), + GT_Utility.getIntegratedCircuit(1), + lowQualityNaquadahEmulsion.getFluidOrGas(10000), + lowQualityNaquadahSolution.getFluidOrGas(9000), + galliumHydroxide.get(OrePrefixes.dust, 16), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.AntimonyTrioxide, 10), + null,null,null, null, + new int[]{6250, 10000}, + 1000, + 1920 + ); + + GT_Values.RA.addMultiblockChemicalRecipe( + new ItemStack[]{ + enrichedNaquadahEarth.get(OrePrefixes.dust, 4), + }, + new FluidStack[]{ + P507.getFluidOrGas(1000), + Materials.SulfuricAcid.getFluid(32000) + }, + new FluidStack[]{ + enrichedNaquadahRichSolution.getFluidOrGas(4000), + wasteLiquid.getFluidOrGas(1000) + }, + new ItemStack[]{ + naquadahEarth.get(OrePrefixes.dust, 1), + triniumSulphate.get(OrePrefixes.dust, 1) + }, + 400, + 1920 + ); + + GT_Values.RA.addAutoclaveRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SodiumHydroxide, 27), + null, + enrichedNaquadahRichSolution.getFluidOrGas(10000), + P507.getFluidOrGas(2500), + concentratedEnrichedNaquadahSludge.get(OrePrefixes.dust, 8), + 10000, + 1000, + 480, + false + ); + + MyRecipeAdder.instance.addNeutronActivatorRecipe( + null, + new ItemStack[]{ + concentratedEnrichedNaquadahSludge.get(OrePrefixes.dust, 16), + }, + null, + new ItemStack[]{ + enrichedNaquadahSulphate.get(OrePrefixes.dust, 15), + WerkstoffLoader.Sodiumsulfate.get(OrePrefixes.dust, 20), + lowQualityNaquadriaSulphate.get(OrePrefixes.dust, 2) + }, + 120, + 480, + 460 + ); + + GT_Values.RA.addBlastRecipe( + enrichedNaquadahSulphate.get(OrePrefixes.dust, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Zinc, 2), + null, + null, + GT_OreDictUnificator.get(OrePrefixes.ingotHot, Materials.NaquadahEnriched, 1), + WerkstoffLoader.ZincSulfate.get(OrePrefixes.dust, 2), + 100, + 7680, + 7500 + ); + + GT_Values.RA.addMultiblockChemicalRecipe( + new ItemStack[]{ + triniumSulphate.get(OrePrefixes.dust, 1), + }, + new FluidStack[]{ + Materials.Hydrogen.getGas(1000) + }, + new FluidStack[]{ + Materials.SulfuricAcid.getFluid(1000) + }, + new ItemStack[]{ + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Trinium, 1), + }, + 120, + 480 + ); + + GT_Values.RA.addCentrifugeRecipe( + naquadriaEarth.get(OrePrefixes.dust, 4), + null, + Materials.PhosphoricAcid.getFluid(4000), + null, + indiumPhosphate.get(OrePrefixes.dust, 1), + lowQualityNaquadriaPhosphate.get(OrePrefixes.dust, 4), + null, null, null, null, + new int[]{2000, 10000}, + 400, + 7680 + ); + + GT_Values.RA.addChemicalRecipe( + galliumHydroxide.get(OrePrefixes.dust, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sodium, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Gallium, 1), + 40, + 30 + ); + + GT_Values.RA.addChemicalRecipe( + indiumPhosphate.get(OrePrefixes.dust, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcium, 1), + null, null, + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Indium, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.TricalciumPhosphate, 1), + 20, + 30 + ); + + GT_Values.RA.addMultiblockChemicalRecipe( + new ItemStack[]{ + lowQualityNaquadriaPhosphate.get(OrePrefixes.dust, 10), + }, + new FluidStack[]{ + Materials.SulfuricAcid.getFluid(30000) + }, + new FluidStack[]{ + naquadriaRichSolution.getFluidOrGas(9000) + }, + new ItemStack[]{ + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Barite, 1), + }, + 1000, + 7680 + ); + + MyRecipeAdder.instance.addNeutronActivatorRecipe( + new FluidStack[]{ + naquadriaRichSolution.getFluidOrGas(9000) + }, + null, + null, + new ItemStack[]{ + naquadriaSulphate.get(OrePrefixes.dust, 4), + lowQualityNaquadriaSulphate.get(OrePrefixes.dust, 6) + }, + 100, + 1100, + 1050 + ); + + GT_Values.RA.addMultiblockChemicalRecipe( + new ItemStack[]{ + lowQualityNaquadriaSulphate.get(OrePrefixes.dust, 3), + }, + new FluidStack[]{ + Materials.Water.getFluid(3000), + P507.getFluidOrGas(500) + }, + new FluidStack[]{ + lowQualityNaquadriaSolution.getFluidOrGas(3500) + }, + null, + 500, + 1920 + ); + + GT_Values.RA.addUniversalDistillationRecipe( + lowQualityNaquadriaSolution.getFluidOrGas(7000), + new FluidStack[]{ + P507.getFluidOrGas(1000), + naquadriaRichSolution.getFluidOrGas(5400), + Materials.DilutedSulfuricAcid.getFluid(12000) + }, + enrichedNaquadahEarth.get(OrePrefixes.dust, 2), + 500, + 7680 + ); + + GT_Values.RA.addBlastRecipe( + naquadriaSulphate.get(OrePrefixes.dust, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Magnesium, 1), + null, + Materials.HydricSulfide.getGas(1000), + GT_OreDictUnificator.get(OrePrefixes.ingotHot, Materials.Naquadria, 1), + null, + 100, + 122880, + 9100 + ); + + GT_Values.RA.addMixerRecipe( + indiumPhosphate.get(OrePrefixes.dust, 1), + galliumHydroxide.get(OrePrefixes.dust, 1), + GT_Utility.getIntegratedCircuit(2), + null, + null, + null, + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.IndiumGalliumPhosphide, 2), + 15, + 7 + ); + + GT_Values.RA.addFluidSolidifierRecipe( + ItemList.Shape_Mold_Ball.get(0), + naquadahGoo.getFluidOrGas(72), + ItemRefer.Naquadah_Mass.get(1), + 100, + 30 + ); + + GT_Values.RA.addFluidSolidifierRecipe( + ItemList.Shape_Mold_Ball.get(0), + enrichedNaquadahGoo.getFluidOrGas(72), + ItemRefer.Enriched_Naquadah_Mass.get(1), + 100, + 30 + ); + + GT_Values.RA.addFluidSolidifierRecipe( + ItemList.Shape_Mold_Ball.get(0), + naquadriaGoo.getFluidOrGas(72), + ItemRefer.Naquadria_Mass.get(1), + 100, + 30 + ); + + GT_Values.RA.addPulveriserRecipe( + ItemRefer.Naquadah_Mass.get(1), + new ItemStack[]{ + naquadahEarth.get(OrePrefixes.dust, 1), + enrichedNaquadahEarth.get(OrePrefixes.dust, 1) + }, + new int[]{10000, 100}, + 100, + 2 + ); + + GT_Values.RA.addPulveriserRecipe( + ItemRefer.Enriched_Naquadah_Mass.get(1), + new ItemStack[]{ + enrichedNaquadahEarth.get(OrePrefixes.dust, 1), + naquadriaEarth.get(OrePrefixes.dust, 1) + }, + new int[]{10000, 100}, + 100, + 2 + ); + + GT_Values.RA.addPulveriserRecipe( + ItemRefer.Naquadria_Mass.get(1), + new ItemStack[]{ + naquadriaEarth.get(OrePrefixes.dust, 1), + naquadriaEarth.get(OrePrefixes.dust, 1) + }, + new int[]{10000, 100}, + 100, + 2 + ); + + GT_Values.RA.addBlastRecipe( + GT_OreDictUnificator.get(OrePrefixes.block, Materials.Silicon, 16), + naquadahine.get(OrePrefixes.dust, 1), + Materials.Argon.getGas(8000), + null, + ItemList.Circuit_Silicon_Ingot3.get(1), + null, + 1000, + 7680, + 4484 + ); + + GT_Values.RA.addChemicalRecipe( + naquadahine.get(OrePrefixes.dust, 1), + Materials.Sodium.getDust(1), + Materials.Naquadah.getDust(1), + 10, + 1920 + ); + + GT_Values.RA.addBlastRecipe( + naquadahEarth.get(OrePrefixes.dust, 2), + GT_Utility.getIntegratedCircuit(2), + Materials.Nitrogen.getGas(1000), + null, + Materials.Naquadah.getNuggets(3), + null, + 2400, + 7680, + 5000 + ); + + GT_Values.RA.addMultiblockChemicalRecipe( + new ItemStack[]{ + GT_Utility.getIntegratedCircuit(24) + }, + new FluidStack[]{ + Materials.Ethylene.getGas(1000), + FluidRegistry.getFluidStack("steam", 2000) + }, + new FluidStack[]{ + Materials.Ethanol.getFluid(1000) + }, + null, + 400, + 480 + ); + + GT_Values.RA.addChemicalRecipeForBasicMachineOnly( + Materials.Ethylene.getCells(1), + GT_Utility.getIntegratedCircuit(24), + FluidRegistry.getFluidStack("steam", 2000), + null, + Materials.Ethanol.getCells(1), + null, + 400, + 480 + ); + + GT_Values.RA.addVacuumFreezerRecipe( + GT_OreDictUnificator.get(OrePrefixes.ingotHot, Materials.Naquadah, 1), + GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Naquadah, 1), + 330, + 7680 + ); + } + + public static void SmallRecipeChange() { + + GT_Recipe tRecipe; + + tRecipe = GT_Recipe.GT_Recipe_Map.sChemicalRecipes.findRecipe( + null, false, 1 << 30, + new FluidStack[]{Materials.SulfuricAcid.getFluid(500)}, + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Platinum, 16), + ItemList.Empty_Board_Elite.get(2) + ); + if (tRecipe != null) { + GT_Recipe.GT_Recipe_Map.sChemicalRecipes.mRecipeList.remove(tRecipe); + GT_Recipe tRecipe2 = tRecipe.copy(); + tRecipe2.mInputs = new ItemStack[]{GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Naquadah, 8), ItemList.Empty_Board_Elite.get(2)}; + GT_Recipe.GT_Recipe_Map.sChemicalRecipes.mRecipeList.add(tRecipe2); + GT_Recipe.GT_Recipe_Map.sChemicalRecipes.reInit(); + } + + tRecipe = GT_Recipe.GT_Recipe_Map.sMultiblockChemicalRecipes.findRecipe( + null, false, 1 << 30, + new FluidStack[]{Materials.SulfuricAcid.getFluid(500)}, + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Platinum, 16), + ItemList.Empty_Board_Elite.get(2) + ); + if (tRecipe != null) { + GT_Recipe.GT_Recipe_Map.sMultiblockChemicalRecipes.mRecipeList.remove(tRecipe); + GT_Recipe tRecipe2 = tRecipe.copy(); + tRecipe2.mInputs = new ItemStack[]{GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Naquadah, 8), ItemList.Empty_Board_Elite.get(2)}; + GT_Recipe.GT_Recipe_Map.sMultiblockChemicalRecipes.mRecipeList.add(tRecipe2); + GT_Recipe.GT_Recipe_Map.sMultiblockChemicalRecipes.reInit(); + } + + tRecipe = GT_Recipe.GT_Recipe_Map.sAssemblerRecipes.findRecipe( + null, false, 1 << 30, + new FluidStack[]{Materials.Polybenzimidazole.getMolten(36)}, + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Polybenzimidazole, 2), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.HSSS, 1), + GT_Utility.getIntegratedCircuit(1) + ); + if (tRecipe != null) { + GT_Recipe.GT_Recipe_Map.sAssemblerRecipes.mRecipeList.remove(tRecipe); + GT_Recipe tRecipe2 = tRecipe.copy(); + tRecipe2.mInputs = new ItemStack[]{GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Polybenzimidazole, 2), GT_OreDictUnificator.get(OrePrefixes.foil, Materials.NaquadahEnriched, 1)}; + GT_Recipe.GT_Recipe_Map.sAssemblerRecipes.mRecipeList.add(tRecipe2); + GT_Recipe.GT_Recipe_Map.sAssemblerRecipes.reInit(); + } + } + + public static void Remover() { + + if (!EnableNaquadahRework) return; + + GT_Log.out.print(GoodGenerator.MOD_ID + ": Begin to remove pure Naquadah, Enriched Naquadah and Naquadria.\n"); + + HashSet remove = new HashSet<>(5000); + HashSet reAdd = new HashSet<>(5000); + + //For Crusher + for (GT_Recipe recipe : GT_Recipe.GT_Recipe_Map.sMaceratorRecipes.mRecipeList) { + ItemStack input = recipe.mInputs[0]; + if (GT_Utility.isStackValid(input)) { + int[] oreDict = OreDictionary.getOreIDs(input); + for (int oreDictID : oreDict) { + if ((OreDictionary.getOreName(oreDictID).startsWith("ore") || OreDictionary.getOreName(oreDictID).startsWith("crushed")) && OreDictionary.getOreName(oreDictID).contains("Naq")) { + GT_Recipe tRecipe = recipe.copy(); + for (int i = 0; i < tRecipe.mOutputs.length; i ++) { + if (!GT_Utility.isStackValid(tRecipe.mOutputs[i])) continue; + if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadah.getDust(1))) { + tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, naquadahEarth.get(OrePrefixes.dust, 1)); + } else if (tRecipe.mOutputs[i].isItemEqual(Materials.NaquadahEnriched.getDust(1))) { + tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, enrichedNaquadahEarth.get(OrePrefixes.dust, 1)); + } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadria.getDust(1))) { + tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, naquadriaEarth.get(OrePrefixes.dust, 1)); + } + } + if (!tRecipe.equals(recipe)){ + reAdd.add(tRecipe); + remove.add(recipe); + } + break; + } + } + } + } + GT_Recipe.GT_Recipe_Map.sMaceratorRecipes.mRecipeList.removeAll(remove); + GT_Recipe.GT_Recipe_Map.sMaceratorRecipes.mRecipeList.addAll(reAdd); + GT_Recipe.GT_Recipe_Map.sMaceratorRecipes.reInit(); + + GT_Log.out.print(GoodGenerator.MOD_ID + ": Replace " + remove.size() + "! "); + + remove.clear(); + reAdd.clear(); + + GT_Log.out.print("Crusher done!\n"); + + //For Washer + for (GT_Recipe recipe : GT_Recipe.GT_Recipe_Map.sOreWasherRecipes.mRecipeList) { + ItemStack input = recipe.mInputs[0]; + if (GT_Utility.isStackValid(input)) { + int[] oreDict = OreDictionary.getOreIDs(input); + for (int oreDictID : oreDict) { + if (OreDictionary.getOreName(oreDictID).startsWith("crushed") && OreDictionary.getOreName(oreDictID).contains("Naq")) { + GT_Recipe tRecipe = recipe.copy(); + for (int i = 0; i < tRecipe.mOutputs.length; i ++) { + if (!GT_Utility.isStackValid(tRecipe.mOutputs[i])) continue; + if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadah.getDustTiny(1))) { + tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, naquadahEarth.get(OrePrefixes.dustTiny, 1)); + } else if (tRecipe.mOutputs[i].isItemEqual(Materials.NaquadahEnriched.getDustTiny(1))) { + tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, enrichedNaquadahEarth.get(OrePrefixes.dustTiny, 1)); + } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadria.getDustTiny(1))) { + tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, naquadriaEarth.get(OrePrefixes.dustTiny, 1)); + } + } + if (!tRecipe.equals(recipe)){ + reAdd.add(tRecipe); + remove.add(recipe); + } + break; + } + } + } + } + GT_Recipe.GT_Recipe_Map.sOreWasherRecipes.mRecipeList.removeAll(remove); + GT_Recipe.GT_Recipe_Map.sOreWasherRecipes.mRecipeList.addAll(reAdd); + GT_Recipe.GT_Recipe_Map.sOreWasherRecipes.reInit(); + + GT_Log.out.print(GoodGenerator.MOD_ID + ": Replace " + remove.size() + "! "); + + remove.clear(); + reAdd.clear(); + + GT_Log.out.print("Washer done!\n"); + + //For Thermal Centrifuge + for (GT_Recipe recipe : GT_Recipe.GT_Recipe_Map.sThermalCentrifugeRecipes.mRecipeList) { + ItemStack input = recipe.mInputs[0]; + if (GT_Utility.isStackValid(input)) { + int[] oreDict = OreDictionary.getOreIDs(input); + for (int oreDictID : oreDict) { + if (OreDictionary.getOreName(oreDictID).startsWith("crushed") && OreDictionary.getOreName(oreDictID).contains("Naq")) { + GT_Recipe tRecipe = recipe.copy(); + for (int i = 0; i < tRecipe.mOutputs.length; i ++) { + if (!GT_Utility.isStackValid(tRecipe.mOutputs[i])) continue; + if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadah.getDustTiny(1))) { + tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, naquadahEarth.get(OrePrefixes.dustTiny, 1)); + } else if (tRecipe.mOutputs[i].isItemEqual(Materials.NaquadahEnriched.getDustTiny(1))) { + tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, enrichedNaquadahEarth.get(OrePrefixes.dustTiny, 1)); + } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadria.getDustTiny(1))) { + tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, naquadriaEarth.get(OrePrefixes.dustTiny, 1)); + } + } + if (!tRecipe.equals(recipe)){ + reAdd.add(tRecipe); + remove.add(recipe); + } + break; + } + } + } + } + GT_Recipe.GT_Recipe_Map.sThermalCentrifugeRecipes.mRecipeList.removeAll(remove); + GT_Recipe.GT_Recipe_Map.sThermalCentrifugeRecipes.mRecipeList.addAll(reAdd); + GT_Recipe.GT_Recipe_Map.sThermalCentrifugeRecipes.reInit(); + + GT_Log.out.print(GoodGenerator.MOD_ID + ": Replace " + remove.size() + "! "); + + remove.clear(); + reAdd.clear(); + + GT_Log.out.print("Thermal Centrifuge done!\n"); + + //For Centrifuge + for (GT_Recipe recipe : GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes.mRecipeList) { + ItemStack input = null; + if (recipe.mInputs.length > 0) input = recipe.mInputs[0]; + if (GT_Utility.isStackValid(input)) { + int[] oreDict = OreDictionary.getOreIDs(input); + if (input.isItemEqual(GT_Bees.combs.getStackForType(CombType.DOB))){ + GT_Recipe tRecipe = recipe.copy(); + for (int i = 0; i < tRecipe.mOutputs.length; i ++) { + if (!GT_Utility.isStackValid(tRecipe.mOutputs[i])) continue; + if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadah.getDustTiny(1))) { + tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, naquadahEarth.get(OrePrefixes.dustTiny, 1)); + } + } + if (!tRecipe.equals(recipe)){ + reAdd.add(tRecipe); + remove.add(recipe); + } + } + else for (int oreDictID : oreDict) { + if (OreDictionary.getOreName(oreDictID).startsWith("dustPureNaq") || OreDictionary.getOreName(oreDictID).startsWith("dustImpureNaq") || OreDictionary.getOreName(oreDictID).startsWith("dustSpace") || OreDictionary.getOreName(oreDictID).startsWith("dustNaq")) { + GT_Recipe tRecipe = recipe.copy(); + for (int i = 0; i < tRecipe.mOutputs.length; i ++) { + if (!GT_Utility.isStackValid(tRecipe.mOutputs[i])) continue; + if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadah.getDustTiny(1))) { + tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, naquadahEarth.get(OrePrefixes.dustTiny, 1)); + } else if (tRecipe.mOutputs[i].isItemEqual(Materials.NaquadahEnriched.getDustTiny(1))) { + tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, enrichedNaquadahEarth.get(OrePrefixes.dustTiny, 1)); + } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadria.getDustTiny(1))) { + tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, naquadriaEarth.get(OrePrefixes.dustTiny, 1)); + } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadah.getDust(1))) { + tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, naquadahEarth.get(OrePrefixes.dust, 1)); + } else if (tRecipe.mOutputs[i].isItemEqual(Materials.NaquadahEnriched.getDust(1))) { + tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, enrichedNaquadahEarth.get(OrePrefixes.dust, 1)); + } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadria.getDust(1))) { + tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, naquadriaEarth.get(OrePrefixes.dust, 1)); + } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadah.getDustSmall(1))) { + tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, naquadahEarth.get(OrePrefixes.dustSmall, 1)); + } else if (tRecipe.mOutputs[i].isItemEqual(Materials.NaquadahEnriched.getDustSmall(1))) { + tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, enrichedNaquadahEarth.get(OrePrefixes.dustSmall, 1)); + } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadria.getDustSmall(1))) { + tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, naquadriaEarth.get(OrePrefixes.dustSmall, 1)); + } + } + if (!tRecipe.equals(recipe)){ + reAdd.add(tRecipe); + remove.add(recipe); + } + break; + } + } + } + } + GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes.mRecipeList.removeAll(remove); + GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes.mRecipeList.addAll(reAdd); + GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes.reInit(); + + GT_Log.out.print(GoodGenerator.MOD_ID + ": Replace " + remove.size() + "! "); + + remove.clear(); + reAdd.clear(); + + GT_Log.out.print("Centrifuge done!\n"); + + //For Hammer + for (GT_Recipe recipe : GT_Recipe.GT_Recipe_Map.sHammerRecipes.mRecipeList) { + ItemStack input = recipe.mInputs[0]; + if (GT_Utility.isStackValid(input)) { + int[] oreDict = OreDictionary.getOreIDs(input); + for (int oreDictID : oreDict) { + if (OreDictionary.getOreName(oreDictID).startsWith("crushed") && OreDictionary.getOreName(oreDictID).contains("Naq")) { + GT_Recipe tRecipe = recipe.copy(); + for (int i = 0; i < tRecipe.mOutputs.length; i ++) { + if (!GT_Utility.isStackValid(tRecipe.mOutputs[i])) continue; + if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadah.getDust(1))) { + tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, naquadahEarth.get(OrePrefixes.dust, 1)); + } else if (tRecipe.mOutputs[i].isItemEqual(Materials.NaquadahEnriched.getDust(1))) { + tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, enrichedNaquadahEarth.get(OrePrefixes.dust, 1)); + } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadria.getDust(1))) { + tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, naquadriaEarth.get(OrePrefixes.dust, 1)); + } + } + if (!tRecipe.equals(recipe)){ + reAdd.add(tRecipe); + remove.add(recipe); + } + break; + } + } + } + } + GT_Recipe.GT_Recipe_Map.sHammerRecipes.mRecipeList.removeAll(remove); + GT_Recipe.GT_Recipe_Map.sHammerRecipes.mRecipeList.addAll(reAdd); + GT_Recipe.GT_Recipe_Map.sHammerRecipes.reInit(); + + GT_Log.out.print(GoodGenerator.MOD_ID + ": Replace " + remove.size() + "! "); + + remove.clear(); + reAdd.clear(); + + GT_Log.out.print("Hammer done!\n"); + + //For Chemical Reactor + for (GT_Recipe recipe : GT_Recipe.GT_Recipe_Map.sChemicalRecipes.mRecipeList) { + if (recipe.mFluidOutputs == null) continue; + boolean isAny = false; + for (int i = 0; i < recipe.mFluidOutputs.length; i ++) { + if (recipe.mFluidOutputs[i] == null) continue; + if (recipe.mFluidOutputs[i].isFluidEqual(Materials.Naquadah.getMolten(1)) || + recipe.mFluidOutputs[i].isFluidEqual(Materials.NaquadahEnriched.getMolten(1)) || + recipe.mFluidOutputs[i].isFluidEqual(Materials.Naquadria.getMolten(1))) { + isAny = true; + break; + } + } + if (!isAny) continue; + GT_Recipe tRecipe = recipe.copy(); + for (int i = 0; i < recipe.mFluidOutputs.length; i ++) { + if (recipe.mFluidOutputs[i] == null) continue; + if (recipe.mFluidOutputs[i].isFluidEqual(Materials.Naquadah.getMolten(1))) { + tRecipe.mFluidOutputs[i] = naquadahGoo.getFluidOrGas(recipe.mFluidOutputs[i].amount * 2); + } else if (recipe.mFluidOutputs[i].isFluidEqual(Materials.NaquadahEnriched.getMolten(1))) { + tRecipe.mFluidOutputs[i] = enrichedNaquadahGoo.getFluidOrGas(recipe.mFluidOutputs[i].amount * 2); + } else if (recipe.mFluidOutputs[i].isFluidEqual(Materials.Naquadria.getMolten(1))) { + tRecipe.mFluidOutputs[i] = naquadriaGoo.getFluidOrGas(recipe.mFluidOutputs[i].amount * 2); + } + } + if (!tRecipe.equals(recipe)) { + reAdd.add(tRecipe); + remove.add(recipe); + } + } + GT_Recipe.GT_Recipe_Map.sChemicalRecipes.mRecipeList.removeAll(remove); + GT_Recipe.GT_Recipe_Map.sChemicalRecipes.mRecipeList.addAll(reAdd); + GT_Recipe.GT_Recipe_Map.sChemicalRecipes.reInit(); + + GT_Log.out.print(GoodGenerator.MOD_ID + ": Replace " + remove.size() + "! "); + + remove.clear(); + reAdd.clear(); + + GT_Log.out.print("Chemical Reactor done!\n"); + + //For Multi Chemical Reactor + for (GT_Recipe recipe : GT_Recipe.GT_Recipe_Map.sMultiblockChemicalRecipes.mRecipeList) { + if (recipe.mFluidOutputs == null) continue; + boolean isAny = false; + for (int i = 0; i < recipe.mFluidOutputs.length; i ++) { + if (recipe.mFluidOutputs[i] == null) continue; + if (recipe.mFluidOutputs[i].isFluidEqual(Materials.Naquadah.getMolten(1)) || + recipe.mFluidOutputs[i].isFluidEqual(Materials.NaquadahEnriched.getMolten(1)) || + recipe.mFluidOutputs[i].isFluidEqual(Materials.Naquadria.getMolten(1))) { + isAny = true; + break; + } + } + if (!isAny) continue; + GT_Recipe tRecipe = recipe.copy(); + for (int i = 0; i < recipe.mFluidOutputs.length; i ++) { + if (recipe.mFluidOutputs[i] == null) continue; + if (recipe.mFluidOutputs[i].isFluidEqual(Materials.Naquadah.getMolten(1))) { + tRecipe.mFluidOutputs[i] = naquadahGoo.getFluidOrGas(recipe.mFluidOutputs[i].amount * 2); + } else if (recipe.mFluidOutputs[i].isFluidEqual(Materials.NaquadahEnriched.getMolten(1))) { + tRecipe.mFluidOutputs[i] = enrichedNaquadahGoo.getFluidOrGas(recipe.mFluidOutputs[i].amount * 2); + } else if (recipe.mFluidOutputs[i].isFluidEqual(Materials.Naquadria.getMolten(1))) { + tRecipe.mFluidOutputs[i] = naquadriaGoo.getFluidOrGas(recipe.mFluidOutputs[i].amount * 2); + } + } + if (!tRecipe.equals(recipe)) { + reAdd.add(tRecipe); + remove.add(recipe); + } + } + GT_Recipe.GT_Recipe_Map.sMultiblockChemicalRecipes.mRecipeList.removeAll(remove); + GT_Recipe.GT_Recipe_Map.sMultiblockChemicalRecipes.mRecipeList.addAll(reAdd); + GT_Recipe.GT_Recipe_Map.sMultiblockChemicalRecipes.reInit(); + + GT_Log.out.print(GoodGenerator.MOD_ID + ": Replace " + remove.size() + "! "); + + remove.clear(); + reAdd.clear(); + + GT_Log.out.print("Multi Chemical Reactor done!\n"); + + if (Loader.isModLoaded("miscutils")) { + //For Multi Centrifuge + //Blame alk. She made some shit in it, NEI will break down if anyone modify the hash list directly. + GTPP_Recipe.GTPP_Recipe_Map.sMultiblockCentrifugeRecipes_GT.mRecipeList.clear(); + RecipeGen_MultisUsingFluidInsteadOfCells.generateRecipesNotUsingCells(GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes, GTPP_Recipe.GTPP_Recipe_Map.sMultiblockCentrifugeRecipes_GT); + GTPP_Recipe.GTPP_Recipe_Map.sMultiblockCentrifugeRecipes_GT.reInit(); + + //For Simple Washer + for (GT_Recipe recipe : GTPP_Recipe.GTPP_Recipe_Map.sSimpleWasherRecipes.mRecipeList) { + ItemStack input = recipe.mInputs[0]; + if (GT_Utility.isStackValid(input)) { + int[] oreDict = OreDictionary.getOreIDs(input); + for (int oreDictID : oreDict) { + if (OreDictionary.getOreName(oreDictID).startsWith("dustImpureNaq")) { + GT_Recipe tRecipe = recipe.copy(); + for (int i = 0; i < tRecipe.mOutputs.length; i ++) { + if (!GT_Utility.isStackValid(tRecipe.mOutputs[i])) continue; + if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadah.getDust(1))) { + tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize, naquadahEarth.get(OrePrefixes.dust, 1)); + } else if (tRecipe.mOutputs[i].isItemEqual(Materials.NaquadahEnriched.getDust(1))) { + tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize, enrichedNaquadahEarth.get(OrePrefixes.dust, 1)); + } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadria.getDust(1))) { + tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize, naquadriaEarth.get(OrePrefixes.dust, 1)); + } + } + if (!tRecipe.equals(recipe)){ + reAdd.add(tRecipe); + remove.add(recipe); + } + break; + } + } + } + } + GTPP_Recipe.GTPP_Recipe_Map.sSimpleWasherRecipes.mRecipeList.removeAll(remove); + GTPP_Recipe.GTPP_Recipe_Map.sSimpleWasherRecipes.mRecipeList.addAll(reAdd); + GTPP_Recipe.GTPP_Recipe_Map.sSimpleWasherRecipes.reInit(); + + GT_Log.out.print(GoodGenerator.MOD_ID + ": Replace " + remove.size() + "! "); + + remove.clear(); + reAdd.clear(); + + GT_Log.out.print("Simple Washer done!\n"); + } + + //For ByProduct List + for (GT_Recipe recipe : GT_Recipe.GT_Recipe_Map.sByProductList.mRecipeList) { + ItemStack input = recipe.mInputs[0]; + if (GT_Utility.isStackValid(input)) { + int[] oreDict = OreDictionary.getOreIDs(input); + for (int oreDictID : oreDict) { + if (OreDictionary.getOreName(oreDictID).startsWith("ore") && OreDictionary.getOreName(oreDictID).contains("Naq")) { + GT_Recipe tRecipe = recipe.copy(); + for (int i = 0; i < tRecipe.mOutputs.length; i ++) { + if (!GT_Utility.isStackValid(tRecipe.mOutputs[i])) continue; + if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadah.getDust(1))) { + tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize, naquadahEarth.get(OrePrefixes.dust, 1)); + } else if (tRecipe.mOutputs[i].isItemEqual(Materials.NaquadahEnriched.getDust(1))) { + tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize, enrichedNaquadahEarth.get(OrePrefixes.dust, 1)); + } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadria.getDust(1))) { + tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize, naquadriaEarth.get(OrePrefixes.dust, 1)); + } + } + if (!tRecipe.equals(recipe)){ + reAdd.add(tRecipe); + remove.add(recipe); + } + break; + } + } + } + } + GT_Recipe.GT_Recipe_Map.sByProductList.mRecipeList.removeAll(remove); + GT_Recipe.GT_Recipe_Map.sByProductList.mRecipeList.addAll(reAdd); + GT_Recipe.GT_Recipe_Map.sByProductList.reInit(); + + GT_Log.out.print(GoodGenerator.MOD_ID + ": Replace " + remove.size() + "! "); + + remove.clear(); + reAdd.clear(); + + GT_Log.out.print("ByProduct List done!\n"); + + //For Cauldron Wash + registerCauldronCleaningFor(Materials.Naquadah, naquadahEarth.getBridgeMaterial()); + registerCauldronCleaningFor(Materials.NaquadahEnriched, enrichedNaquadahEarth.getBridgeMaterial()); + registerCauldronCleaningFor(Materials.Naquadria, naquadriaEarth.getBridgeMaterial()); + GT_Log.out.print(GoodGenerator.MOD_ID + ": Replace 3! "); + GT_Log.out.print("Cauldron Wash done!\n"); + + //For Crafting Table + CraftingManager.getInstance().getRecipeList().forEach(NaquadahReworkRecipeLoader::replaceInCraftTable); + + GT_Log.out.print(GoodGenerator.MOD_ID + ": Replace Unknown! "); + GT_Log.out.print("Crafting Table done!\n"); + } + + //I don't understand. . . + //I use and copy some private methods in Bartworks because his system runs well. + //Bartworks is under MIT License + /* + * Copyright (c) 2018-2020 bartimaeusnek + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + public static void replaceInCraftTable(Object obj) { + + Constructor cs = null; + PlatinumSludgeOverHaul BartObj = null; + try { + cs = PlatinumSludgeOverHaul.class.getDeclaredConstructor(); + cs.setAccessible(true); + } catch (NoSuchMethodException e) { + e.printStackTrace(); + } + + if (cs == null) return; + + try { + BartObj = (PlatinumSludgeOverHaul)cs.newInstance(); + } catch (IllegalAccessException | InstantiationException | InvocationTargetException e) { + e.printStackTrace(); + } + + Method recipeCheck = null; + + try { + recipeCheck = PlatinumSludgeOverHaul.class.getDeclaredMethod("checkRecipe", Object.class, Materials.class); + recipeCheck.setAccessible(true); + } catch (Exception e) { + e.printStackTrace(); + } + + String inputName = "output"; + String inputItemName = "input"; + if (!(obj instanceof ShapedOreRecipe || obj instanceof ShapelessOreRecipe)){ + if (obj instanceof ShapedRecipes || (obj instanceof ShapelessRecipes)) { + inputName = "recipeOutput"; + inputItemName = "recipeItems"; + } + } + IRecipe recipe = (IRecipe) obj; + ItemStack result = recipe.getRecipeOutput(); + + Field out = FieldUtils.getDeclaredField(recipe.getClass(), inputName, true); + if (out == null) + out = FieldUtils.getField(recipe.getClass(), inputName, true); + + Field in = FieldUtils.getDeclaredField(recipe.getClass(), inputItemName, true); + if (in == null) + in = FieldUtils.getField(recipe.getClass(), inputItemName, true); + if (in == null) + return; + + //this part here is NOT MIT LICENSED BUT LICSENSED UNDER THE Apache License, Version 2.0! + try { + if (Modifier.isFinal(in.getModifiers())) { + // Do all JREs implement Field with a private ivar called "modifiers"? + Field modifiersField = Field.class.getDeclaredField("modifiers"); + boolean doForceAccess = !modifiersField.isAccessible(); + if (doForceAccess) { + modifiersField.setAccessible(true); + } + try { + modifiersField.setInt(in, in.getModifiers() & ~Modifier.FINAL); + } finally { + if (doForceAccess) { + modifiersField.setAccessible(false); + } + } + } + } catch (NoSuchFieldException ignored) { + // The field class contains always a modifiers field + } catch (IllegalAccessException ignored) { + // The modifiers field is made accessible + } + // END OF APACHE COMMONS COLLECTION COPY + + Object input; + try { + input = in.get(obj); + } catch (IllegalAccessException e) { + e.printStackTrace(); + return; + } + + if (out == null || recipeCheck == null) return; + + if (GT_Utility.areStacksEqual(result, Materials.Naquadah.getDust(1), true)) { + + recipeCheck.setAccessible(true); + boolean isOk = true; + + try { + isOk = (boolean)recipeCheck.invoke(BartObj, input, Materials.Naquadah); + } catch (InvocationTargetException | IllegalAccessException ignored) { + } + + if (isOk) return; + try { + out.set(recipe, naquadahEarth.get(OrePrefixes.dust, 2)); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + } else if (GT_Utility.areStacksEqual(result, Materials.NaquadahEnriched.getDust(1), true)) { + + recipeCheck.setAccessible(true); + boolean isOk = true; + + try { + isOk = (boolean)recipeCheck.invoke(BartObj, input, Materials.NaquadahEnriched); + } catch (InvocationTargetException | IllegalAccessException ignored) { + } + + if (isOk) return; + try { + out.set(recipe, enrichedNaquadahEarth.get(OrePrefixes.dust, 2)); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + } else if (GT_Utility.areStacksEqual(result, Materials.Naquadria.getDust(1), true)) { + + recipeCheck.setAccessible(true); + boolean isOk = true; + + try { + isOk = (boolean)recipeCheck.invoke(BartObj, input, Materials.Naquadria); + } catch (InvocationTargetException | IllegalAccessException ignored) { + } + + if (isOk) return; + try { + out.set(recipe, naquadriaEarth.get(OrePrefixes.dust, 2)); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + } + } +} diff --git a/src/main/java/goodgenerator/loader/NeutronActivatorLoader.java b/src/main/java/goodgenerator/loader/NeutronActivatorLoader.java new file mode 100644 index 0000000000..176976d77b --- /dev/null +++ b/src/main/java/goodgenerator/loader/NeutronActivatorLoader.java @@ -0,0 +1,24 @@ +package goodgenerator.loader; + +import goodgenerator.util.MyRecipeAdder; +import net.minecraftforge.fluids.FluidStack; + +import static goodgenerator.items.MyMaterial.*; + +public class NeutronActivatorLoader { + public static void NARecipeLoad() { + MyRecipeAdder.instance.addNeutronActivatorRecipe( + new FluidStack[]{ + thoriumBasedLiquidFuelExcited.getFluidOrGas(200) + }, + null, + new FluidStack[]{ + thoriumBasedLiquidFuelDepleted.getFluidOrGas(200) + }, + null, + 20000, + 700, + 500 + ); + } +} diff --git a/src/main/java/goodgenerator/loader/RecipeLoader.java b/src/main/java/goodgenerator/loader/RecipeLoader.java new file mode 100644 index 0000000000..297f43c3d2 --- /dev/null +++ b/src/main/java/goodgenerator/loader/RecipeLoader.java @@ -0,0 +1,1904 @@ +package goodgenerator.loader; + +import goodgenerator.items.MyMaterial; +import goodgenerator.util.CrackRecipeAdder; +import goodgenerator.util.ItemRefer; +import goodgenerator.util.MaterialFix; +import com.github.bartimaeusnek.bartworks.system.material.WerkstoffLoader; +import cpw.mods.fml.common.Loader; +import gregtech.api.enums.*; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import ic2.core.Ic2Items; +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; +import gregtech.api.util.GT_Utility; + +public class RecipeLoader { + public static void RecipeLoad(){ + + //Radiation Protection Plate + GT_Values.RA.addAssemblerRecipe( + new ItemStack[]{GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.Lanthanum, 8L), + GT_OreDictUnificator.get(OrePrefixes.plate,Materials.NaquadahAlloy,8L), + GT_OreDictUnificator.get(OrePrefixes.foil,Materials.Neutronium,1L), + GT_Utility.getIntegratedCircuit(1)}, + Materials.Lead.getMolten(1152), + ItemRefer.Radiation_Protection_Plate.get(1), + 400, + 1920 + ); + + //LNR Controller + GT_Values.RA.addAssemblylineRecipe( + ItemList.Generator_Naquadah_Mark_III.get(1).copy(), + 100000, + new Object[]{ + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Adamantium,8), + ItemRefer.Radiation_Protection_Plate.get(16), + ItemList.Field_Generator_ZPM.get(2), + ItemList.Electric_Pump_ZPM.get(8), + new Object[]{OrePrefixes.circuit.get(Materials.Superconductor),4}, + GT_OreDictUnificator.get(OrePrefixes.wireGt08,Materials.SuperconductorLuV,8), + GT_OreDictUnificator.get(OrePrefixes.pipeHuge,Materials.Naquadah,4), + GT_OreDictUnificator.get(OrePrefixes.plate,Materials.NaquadahAlloy,8), + GT_OreDictUnificator.get(OrePrefixes.screw,Materials.Osmium,16) + }, + new FluidStack[]{ + Materials.Trinium.getMolten(576), + Materials.SolderingAlloy.getMolten(4608), + Materials.Lubricant.getFluid(8000) + }, + ItemRefer.Large_Naquadah_Reactor.get(1), + 16200, + 122880 + ); + + //LNR Casing + GT_Values.RA.addAssemblerRecipe( + new ItemStack[]{ + ItemRefer.Radiation_Protection_Plate.get(6), + GT_OreDictUnificator.get(OrePrefixes.frameGt,Materials.Europium,1), + ItemList.Field_Generator_MV.get(1), + GT_Utility.getIntegratedCircuit(1) + }, + null, + ItemRefer.Field_Restriction_Casing.get(1), + 400, + 1920 + ); + + //LNR Frame + GT_Values.RA.addAssemblerRecipe( + new ItemStack[]{ + GT_OreDictUnificator.get(OrePrefixes.stickLong,Materials.NaquadahAlloy,8), + GT_OreDictUnificator.get(OrePrefixes.frameGt,Materials.HSSE,4), + GT_Utility.getIntegratedCircuit(24) + }, + null, + ItemRefer.Radiation_Proof_Steel_Frame_Box.get(1), + 320, + 1920 + ); + + //Uranium Liquid Fuel Process Line + GT_Values.RA.addAssemblerRecipe( + new ItemStack[]{ + MyMaterial.graphiteUraniumMixture.get(OrePrefixes.dust,4), + GT_OreDictUnificator.get(OrePrefixes.foil,Materials.TungstenCarbide,2), + GT_Utility.getIntegratedCircuit(1) + }, + null, + ItemRefer.Wrapped_Uranium_Ingot.get(1), + 1400, + 480 + ); + + GT_Values.RA.addImplosionRecipe( + ItemRefer.Wrapped_Uranium_Ingot.get(4), + 8, + ItemRefer.High_Density_Uranium_Nugget.get(1), + GT_OreDictUnificator.get(OrePrefixes.dustTiny,Materials.TungstenCarbide,8) + ); + + GT_Values.RA.addCompressorRecipe( + ItemRefer.High_Density_Uranium_Nugget.get(9), + ItemRefer.High_Density_Uranium.get(1), + 600, + 480 + ); + + GT_Values.RA.addMixerRecipe( + ItemRefer.High_Density_Uranium.get(1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Rubidium,8), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Quantium,4), + GT_Utility.getIntegratedCircuit(1), + Materials.Radon.getGas(1000L), + MyMaterial.uraniumBasedLiquidFuel.getFluidOrGas(1000), + null, + 200, + 15360 + ); + + GT_Values.RA.addFusionReactorRecipe( + MyMaterial.uraniumBasedLiquidFuel.getFluidOrGas(10), + Materials.Hydrogen.getGas(100L), + MyMaterial.uraniumBasedLiquidFuelExcited.getFluidOrGas(10), + 40, + 7680, + 200000000 + ); + + //Thorium Liquid Process Line + GT_Values.RA.addAssemblerRecipe( + new ItemStack[]{ + MyMaterial.uraniumCarbideThoriumMixture.get(OrePrefixes.dust,64), + GT_OreDictUnificator.get(OrePrefixes.foil,Materials.TungstenSteel,4), + GT_Utility.getIntegratedCircuit(1) + }, + null, + ItemRefer.Wrapped_Thorium_Ingot.get(1), + 1000, + 480 + ); + + GT_Values.RA.addImplosionRecipe( + ItemRefer.Wrapped_Thorium_Ingot.get(1), + 4, + ItemRefer.High_Density_Thorium_Nugget.get(1), + GT_OreDictUnificator.get(OrePrefixes.dustTiny,Materials.TungstenSteel,3) + ); + + GT_Values.RA.addCompressorRecipe( + ItemRefer.High_Density_Thorium_Nugget.get(9), + ItemRefer.High_Density_Thorium.get(1), + 400, + 120 + ); + + GT_Values.RA.addMixerRecipe( + ItemRefer.High_Density_Thorium.get(1), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Lithium,4), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Draconium,2), + GT_Utility.getIntegratedCircuit(2), + Materials.Mercury.getFluid(1000L), + MyMaterial.thoriumBasedLiquidFuel.getFluidOrGas(4000), + null, + 3000, + 240 + ); + + GT_Values.RA.addMixerRecipe( + MyMaterial.thoriumBasedLiquidFuel.get(OrePrefixes.cell,1), + GT_Utility.getIntegratedCircuit(1), + null,null, + Materials.Helium.getPlasma(750L), + null, + MyMaterial.thoriumBasedLiquidFuelExcited.get(OrePrefixes.cell,1), + 120, + 3840 + ); + + //Liquid Plutonium Process Line + GT_Values.RA.addAssemblerRecipe( + new ItemStack[]{ + MyMaterial.plutoniumOxideUraniumMixture.get(OrePrefixes.dust,8), + GT_OreDictUnificator.get(OrePrefixes.foil,Materials.HSSS,4), + GT_Utility.getIntegratedCircuit(1) + }, + null, + ItemRefer.Wrapped_Plutonium_Ingot.get(1), + 1800, + 2040 + ); + + GT_Values.RA.addImplosionRecipe( + ItemRefer.Wrapped_Plutonium_Ingot.get(2), + 16, + ItemRefer.High_Density_Plutonium_Nugget.get(1), + GT_OreDictUnificator.get(OrePrefixes.dustTiny,Materials.HSSS,8) + ); + + GT_Values.RA.addCompressorRecipe( + ItemRefer.High_Density_Plutonium_Nugget.get(9), + ItemRefer.High_Density_Plutonium.get(1), + 1200, + 120 + ); + + GT_Values.RA.addMixerRecipe( + ItemRefer.High_Density_Plutonium.get(1), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Neutronium,8), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Caesium,16), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Americium,2), + GT_Utility.getIntegratedCircuit(1), + null,null, + MyMaterial.plutoniumBasedLiquidFuel.getFluidOrGas(1000), + null, + 360, + 30720 + ); + + GT_Values.RA.addFusionReactorRecipe( + Materials.Lutetium.getMolten(16), + MyMaterial.plutoniumBasedLiquidFuel.getFluidOrGas(20), + MyMaterial.plutoniumBasedLiquidFuelExcited.getFluidOrGas(20), + 20, + 15360, + 220000000 + ); + + //Th-232 + GT_Values.RA.addMultiblockChemicalRecipe( + new ItemStack[]{ + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Sugar,16), + MyMaterial.vanadiumPentoxide.get(OrePrefixes.dust,0), + GT_Utility.getIntegratedCircuit(1) + }, + new FluidStack[]{ + FluidRegistry.getFluidStack("nitricacid", 6000) + }, + new FluidStack[]{ + MyMaterial.oxalate.getFluidOrGas(3000), + Materials.NitricOxide.getGas(6000) + }, + null, + 600, + 120 + ); + + GT_Values.RA.addBlastRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Thorium,1), + null, + Materials.Oxygen.getGas(2000), + null, + WerkstoffLoader.Thorianit.get(OrePrefixes.dust,1), + null, + 100, + 480, + 1200 + ); + + GT_Values.RA.addMultiblockChemicalRecipe( + new ItemStack[]{ + Materials.Thorium.getDust(1), + }, + new FluidStack[]{ + Materials.HydrofluoricAcid.getFluid(100), + FluidRegistry.getFluidStack("nitricacid", 8000) + }, + new FluidStack[]{ + MyMaterial.thoriumNitrate.getFluidOrGas(1000), + Materials.NitrogenDioxide.getGas(4000) + }, + null, + 40, + 120 + ); + + GT_Values.RA.addChemicalRecipe( + GT_Utility.getIntegratedCircuit(1), + Materials.SodiumHydroxide.getDust(4), + MyMaterial.thoriumNitrate.getFluidOrGas(1000), + null, + MyMaterial.thoriumHydroxide.get(OrePrefixes.dust, 1), + WerkstoffLoader.SodiumNitrate.get(OrePrefixes.dust, 4), + 200, + 120 + ); + + GT_Values.RA.addChemicalRecipe( + MyMaterial.thoriumHydroxide.get(OrePrefixes.dust,1), + GT_Utility.getIntegratedCircuit(1), + Materials.HydrofluoricAcid.getFluid(4000), + MyMaterial.thoriumTetrafluoride.getFluidOrGas(1000), + null, + null, + 400, + 30 + ); + + GT_Values.RA.addChemicalRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Zinc, 1), + GT_Utility.getIntegratedCircuit(1), + Materials.Chlorine.getGas(2000), + null, + MyMaterial.zincChloride.get(OrePrefixes.dust, 3), + null, + 100, + 30 + ); + + GT_Values.RA.addElectrolyzerRecipe( + MyMaterial.zincChloride.get(OrePrefixes.dust, 3), + null, + null, + Materials.Chlorine.getGas(2000), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Zinc, 1), + null, null, null, null, null, + new int[]{10000}, + 150, + 120 + ); + + GT_Values.RA.addBlastRecipe( + MyMaterial.zincChloride.get(OrePrefixes.dust, 1), + Materials.Calcium.getDust(3), + MyMaterial.thorium232Tetrafluoride.getFluidOrGas(1000), + WerkstoffLoader.CalciumChloride.getFluidOrGas(1000), + MyMaterial.zincThoriumAlloy.get(OrePrefixes.ingot, 1), + WerkstoffLoader.Fluorspar.get(OrePrefixes.dust, 8), + 300, + 120, + 3000 + ); + + GT_Values.RA.addBlastRecipe( + MyMaterial.zincThoriumAlloy.get(OrePrefixes.ingot, 1), + GT_Utility.getIntegratedCircuit(11), + Materials.Argon.getGas(250), + Materials.Zinc.getMolten(36), + WerkstoffLoader.Thorium232.get(OrePrefixes.dust, 1), + null, + 150, + 480, + 1900 + ); + + GT_Values.RA.addBlastRecipe( + GT_Utility.getIntegratedCircuit(24), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Vanadium,2), + Materials.Oxygen.getGas(5000), + null, + MyMaterial.vanadiumPentoxide.get(OrePrefixes.dust,1), + null, + 200, + 120, + 2500 + ); + + //Atomic Separation Catalyst + GT_Values.RA.addMixerRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Blaze,32), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Shadow,4), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Sunnarium,4), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Ardite,4), + GT_Utility.getIntegratedCircuit(4),null, + Materials.Naquadah.getMolten(288), + null, + ItemRefer.Raw_Atomic_Separation_Catalyst.get(9), + 300, + 480 + ); + + GT_Values.RA.addMixerRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Blaze,32), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Shadow,4), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Sunnarium,4), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Manyullyn,4), + GT_Utility.getIntegratedCircuit(4),null, + Materials.Naquadah.getMolten(288), + null, + ItemRefer.Raw_Atomic_Separation_Catalyst.get(9), + 300, + 480 + ); + + GT_Values.RA.addMixerRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Blaze,32), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Shadow,4), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Ichorium,4), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Ardite,4), + GT_Utility.getIntegratedCircuit(4),null, + Materials.Naquadah.getMolten(288), + null, + ItemRefer.Raw_Atomic_Separation_Catalyst.get(27), + 300, + 480 + ); + + GT_Values.RA.addMixerRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Blaze,32), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Shadow,4), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Ichorium,4), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Manyullyn,4), + GT_Utility.getIntegratedCircuit(4),null, + Materials.Naquadah.getMolten(288), + null, + ItemRefer.Raw_Atomic_Separation_Catalyst.get(27), + 300, + 480 + ); + + GT_Values.RA.addMixerRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Blaze,32), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Bedrockium,4), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Sunnarium,4), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Ardite,4), + GT_Utility.getIntegratedCircuit(4),null, + Materials.Naquadah.getMolten(288), + null, + ItemRefer.Raw_Atomic_Separation_Catalyst.get(9), + 300, + 480 + ); + + GT_Values.RA.addMixerRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Blaze,32), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Bedrockium,4), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Sunnarium,4), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Manyullyn,4), + GT_Utility.getIntegratedCircuit(4),null, + Materials.Naquadah.getMolten(288), + null, + ItemRefer.Raw_Atomic_Separation_Catalyst.get(9), + 300, + 480 + ); + + GT_Values.RA.addMixerRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Blaze,32), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Bedrockium,4), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Ichorium,4), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Ardite,4), + GT_Utility.getIntegratedCircuit(4),null, + Materials.Naquadah.getMolten(288), + null, + ItemRefer.Raw_Atomic_Separation_Catalyst.get(27), + 300, + 480 + ); + + GT_Values.RA.addMixerRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Blaze,32), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Bedrockium,4), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Ichorium,4), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Manyullyn,4), + GT_Utility.getIntegratedCircuit(4),null, + Materials.Naquadah.getMolten(288), + null, + ItemRefer.Raw_Atomic_Separation_Catalyst.get(27), + 300, + 480 + ); + + GT_Values.RA.addMixerRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Firestone,9), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Shadow,4), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Sunnarium,4), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Ardite,4), + GT_Utility.getIntegratedCircuit(4),null, + Materials.Naquadah.getMolten(288), + null, + ItemRefer.Raw_Atomic_Separation_Catalyst.get(18), + 300, + 480 + ); + + GT_Values.RA.addMixerRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Firestone,9), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Shadow,4), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Sunnarium,4), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Manyullyn,4), + GT_Utility.getIntegratedCircuit(4),null, + Materials.Naquadah.getMolten(288), + null, + ItemRefer.Raw_Atomic_Separation_Catalyst.get(18), + 300, + 480 + ); + + GT_Values.RA.addMixerRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Firestone,9), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Shadow,4), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Ichorium,4), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Ardite,4), + GT_Utility.getIntegratedCircuit(4),null, + Materials.Naquadah.getMolten(288), + null, + ItemRefer.Raw_Atomic_Separation_Catalyst.get(54), + 300, + 480 + ); + + GT_Values.RA.addMixerRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Firestone,9), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Shadow,4), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Ichorium,4), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Manyullyn,4), + GT_Utility.getIntegratedCircuit(4),null, + Materials.Naquadah.getMolten(288), + null, + ItemRefer.Raw_Atomic_Separation_Catalyst.get(54), + 300, + 480 + ); + + GT_Values.RA.addMixerRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Firestone,9), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Bedrockium,4), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Sunnarium,4), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Ardite,4), + GT_Utility.getIntegratedCircuit(4),null, + Materials.Naquadah.getMolten(288), + null, + ItemRefer.Raw_Atomic_Separation_Catalyst.get(18), + 300, + 480 + ); + + GT_Values.RA.addMixerRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Firestone,9), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Bedrockium,4), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Sunnarium,4), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Manyullyn,4), + GT_Utility.getIntegratedCircuit(4),null, + Materials.Naquadah.getMolten(288), + null, + ItemRefer.Raw_Atomic_Separation_Catalyst.get(18), + 300, + 480 + ); + + GT_Values.RA.addMixerRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Firestone,9), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Bedrockium,4), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Ichorium,4), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Ardite,4), + GT_Utility.getIntegratedCircuit(4),null, + Materials.Naquadah.getMolten(288), + null, + ItemRefer.Raw_Atomic_Separation_Catalyst.get(54), + 300, + 480 + ); + + GT_Values.RA.addMixerRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Firestone,9), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Bedrockium,4), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Ichorium,4), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Manyullyn,4), + GT_Utility.getIntegratedCircuit(4),null, + Materials.Naquadah.getMolten(288), + null, + ItemRefer.Raw_Atomic_Separation_Catalyst.get(54), + 300, + 480 + ); + + GT_Values.RA.addFormingPressRecipe( + WerkstoffLoader.Tiberium.get(OrePrefixes.plate,4), + GT_OreDictUnificator.get(OrePrefixes.plate,Materials.Silicon,8), + MyMaterial.orundum.get(OrePrefixes.plate,1), + 400, + 3000 + ); + + GT_Values.RA.addBlastRecipe( + MyMaterial.orundum.get(OrePrefixes.plate,2), + ItemRefer.Raw_Atomic_Separation_Catalyst.get(4), + Materials.Plutonium.getMolten(144), + null, + MyMaterial.atomicSeparationCatalyst.get(OrePrefixes.ingotHot,1), + null, + 3600, + 480, + 5000 + ); + + GT_Values.RA.addVacuumFreezerRecipe( + MyMaterial.atomicSeparationCatalyst.get(OrePrefixes.ingotHot,1), + MyMaterial.atomicSeparationCatalyst.get(OrePrefixes.ingot,1), + 450, + 960 + ); + + CrackRecipeAdder.crackerAdder( + MyMaterial.naquadahGas.getFluidOrGas(1000), + MyMaterial.atomicSeparationCatalyst.getMolten(4), + new FluidStack[]{ + Materials.Helium.getGas(300), + WerkstoffLoader.Neon.getFluidOrGas(50), + Materials.Argon.getGas(80), + WerkstoffLoader.Krypton.getFluidOrGas(20), + WerkstoffLoader.Xenon.getFluidOrGas(40), + Materials.Radon.getGas(14000) + }, + GT_OreDictUnificator.get(OrePrefixes.dustTiny,Materials.Naquadah,1), + 6, + 4020, + 300 + ); + + CrackRecipeAdder.crackerAdder( + MyMaterial.lightNaquadahFuel.getFluidOrGas(1000), + MyMaterial.atomicSeparationCatalyst.getMolten(4), + new FluidStack[]{ + Materials.Radon.getGas(1400), + MyMaterial.naquadahGas.getFluidOrGas(400), + Materials.Uranium.getMolten(648), + MyMaterial.heavyNaquadahFuel.getFluidOrGas(280), + Materials.Plutonium.getMolten(576), + MyMaterial.naquadahAsphalt.getFluidOrGas(140) + }, + GT_OreDictUnificator.get(OrePrefixes.dustTiny,Materials.Uranium235,1), + 6, + 4020, + 450 + ); + + CrackRecipeAdder.crackerAdder( + MyMaterial.heavyNaquadahFuel.getFluidOrGas(1000), + MyMaterial.atomicSeparationCatalyst.getMolten(6), + new FluidStack[]{ + Materials.Radon.getGas(1000), + MyMaterial.naquadahGas.getFluidOrGas(450), + MyMaterial.lightNaquadahFuel.getFluidOrGas(560), + Materials.Uranium.getMolten(720), + Materials.Lutetium.getMolten(648), + MyMaterial.naquadahAsphalt.getFluidOrGas(240) + }, + GT_OreDictUnificator.get(OrePrefixes.dustTiny,Materials.Plutonium,1), + 6, + 4020, + 500 + ); + + CrackRecipeAdder.crackerAdder( + MyMaterial.naquadahAsphalt.getFluidOrGas(1000), + MyMaterial.atomicSeparationCatalyst.getMolten(12), + new FluidStack[]{ + MyMaterial.lightNaquadahFuel.getFluidOrGas(600), + Materials.Uranium.getMolten(1152), + Materials.Thorium.getMolten(864), + Materials.Plutonium.getMolten(792), + Materials.Thulium.getMolten(216), + MyMaterial.heavyNaquadahFuel.getFluidOrGas(350) + }, + GT_OreDictUnificator.get(OrePrefixes.dustTiny,Materials.Naquadria,1), + 6, + 4020, + 800 + ); + + GT_Values.RA.addMultiblockChemicalRecipe( + new ItemStack[]{ + GT_Utility.getIntegratedCircuit(2) + }, + new FluidStack[]{ + Materials.Ethanol.getFluid(1000), + Materials.SulfuricAcid.getFluid(1000) + }, + new FluidStack[]{ + MyMaterial.ether.getFluidOrGas(500), + Materials.DilutedSulfuricAcid.getFluid(1500) + }, + null, + 510, + 120 + ); + + GT_Values.RA.addFuel(MyMaterial.ether.get(OrePrefixes.cell),GT_OreDictUnificator.get(OrePrefixes.cell,Materials.Empty,1),537,0); + GT_Values.RA.addFuel(MyMaterial.ether.get(OrePrefixes.cell),null,537,1); + + GT_Values.RA.addMultiblockChemicalRecipe( + new ItemStack[]{ + GT_Utility.getIntegratedCircuit(1), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Antimony,1), + }, + new FluidStack[]{ + MyMaterial.ether.getFluidOrGas(1000), + Materials.Chlorine.getGas(3000) + }, + new FluidStack[]{ + MyMaterial.antimonyTrichloride.getFluidOrGas(1000) + }, + null, + 60, + 30 + ); + + GT_Values.RA.addMultiblockChemicalRecipe( + new ItemStack[]{ + GT_Utility.getIntegratedCircuit(1), + }, + new FluidStack[]{ + MyMaterial.antimonyTrichloride.getFluidOrGas(1000), + Materials.Chlorine.getGas(2000) + }, + new FluidStack[]{ + MyMaterial.antimonyPentachlorideSolution.getFluidOrGas(1000) + }, + null, + 180, + 480 + ); + + GT_Values.RA.addUniversalDistillationRecipe( + MyMaterial.antimonyPentachlorideSolution.getFluidOrGas(1000), + new FluidStack[]{ + MyMaterial.ether.getFluidOrGas(1000), + MyMaterial.antimonyPentachloride.getFluidOrGas(1000) + }, + null, + 600, + 120 + ); + + GT_Values.RA.addMultiblockChemicalRecipe( + new ItemStack[]{ + GT_Utility.getIntegratedCircuit(1), + }, + new FluidStack[]{ + MyMaterial.antimonyPentachloride.getFluidOrGas(1000), + Materials.HydrofluoricAcid.getFluid(5000) + }, + new FluidStack[]{ + MyMaterial.antimonyPentafluoride.getFluidOrGas(1000), + Materials.HydrochloricAcid.getFluid(5000) + }, + null, + 420, + 30 + ); + + GT_Values.RA.addMultiblockChemicalRecipe( + new ItemStack[]{ + GT_Utility.getIntegratedCircuit(1), + }, + new FluidStack[]{ + MyMaterial.antimonyPentafluoride.getFluidOrGas(1000), + Materials.HydrofluoricAcid.getFluid(1000) + }, + new FluidStack[]{ + MyMaterial.fluoroantimonicAcid.getFluidOrGas(1000), + }, + null, + 840, + 2040 + ); + + GT_Values.RA.addBlastRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.NaquadahEnriched,32), + GT_Utility.getIntegratedCircuit(16), + MyMaterial.fluoroantimonicAcid.getFluidOrGas(1000), + MyMaterial.acidNaquadahEmulsion.getFluidOrGas(2000), + MyMaterial.radioactiveSludge.get(OrePrefixes.dust,3), + null, + 3600, + 2040, + 3400 + ); + + GT_Values.RA.addMultiblockChemicalRecipe( + new ItemStack[]{ + GT_Utility.getIntegratedCircuit(3), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Quicklime,32) + }, + new FluidStack[]{ + MyMaterial.acidNaquadahEmulsion.getFluidOrGas(1000), + }, + new FluidStack[]{ + MyMaterial.naquadahEmulsion.getFluidOrGas(1000), + }, + new ItemStack[]{ + GT_OreDictUnificator.get(OrePrefixes.dustSmall,Materials.AntimonyTrioxide,1), + WerkstoffLoader.Fluorspar.get(OrePrefixes.dust,4) + }, + 240, + 30 + ); + + + + GT_Values.RA.addUniversalDistillationRecipe( + MyMaterial.naquadahSolution.getFluidOrGas(20), + new FluidStack[]{ + MyMaterial.naquadahAsphalt.getFluidOrGas(2), + MyMaterial.heavyNaquadahFuel.getFluidOrGas(5), + MyMaterial.lightNaquadahFuel.getFluidOrGas(10), + FluidRegistry.getFluidStack("water",10), + MyMaterial.naquadahGas.getFluidOrGas(60) + }, + null, + 20, + 2040 + ); + + GT_Values.RA.addFuel(MyMaterial.naquadahGas.get(OrePrefixes.cell),null,1024,1); + + GT_Values.RA.addFusionReactorRecipe( + MyMaterial.lightNaquadahFuel.getFluidOrGas(65), + MyMaterial.heavyNaquadahFuel.getFluidOrGas(30), + MyMaterial.naquadahBasedFuelMkI.getFluidOrGas(100), + 5, + 26000, + 330000000 + ); + + GT_Values.RA.addMultiblockChemicalRecipe( + new ItemStack[]{ + GT_Utility.getIntegratedCircuit(1), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Praseodymium,16), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Samarium,24), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.ElectrumFlux,32), + }, + new FluidStack[]{ + MyMaterial.naquadahBasedFuelMkI.getFluidOrGas(1000), + MyMaterial.naquadahGas.getFluidOrGas(2500) + }, + new FluidStack[]{ + MyMaterial.naquadahBasedFuelMkII.getFluidOrGas(1000) + }, + null, + 200, + 480000 + ); + + GT_Values.RA.addBlastRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Naquadria,32), + GT_Utility.getIntegratedCircuit(16), + MyMaterial.fluoroantimonicAcid.getFluidOrGas(4000), + MyMaterial.acidNaquadahEmulsion.getFluidOrGas(8000), + MyMaterial.extremelyUnstableNaquadah.get(OrePrefixes.dust,17), + null, + 3600, + 4080, + 3400 + ); + + GT_Values.RA.addAssemblylineRecipe( + ItemList.Generator_Naquadah_Mark_V.get(1).copy(), + 500000, + new Object[]{ + GT_OreDictUnificator.get(OrePrefixes.frameGt,Materials.Osmiridium,8), + ItemRefer.Advanced_Radiation_Protection_Plate.get(64), + ItemList.Field_Generator_UV.get(8), + ItemList.Electric_Pump_UHV.get(2), + new Object[]{OrePrefixes.circuit.get(Materials.Bio), 4}, + GT_OreDictUnificator.get(OrePrefixes.pipeHuge,Materials.MysteriousCrystal,8), + ItemList.Circuit_Wafer_NPIC.get(16), + ItemList.UHV_Coil.get(64), + new Object[]{"craftingLensYellow", 16}, + GT_OreDictUnificator.get(OrePrefixes.screw,Materials.Thulium,64) + }, + new FluidStack[]{ + Materials.Quantium.getMolten(9216L), + Materials.DraconiumAwakened.getMolten(4608L), + MyMaterial.extremelyUnstableNaquadah.getMolten(1440), + Materials.SolderingAlloy.getMolten(14400L) + }, + ItemRefer.Naquadah_Fuel_Refinery.get(1), + 36000, + 1919810 + ); + + GT_Values.RA.addAssemblylineRecipe( + ItemRefer.Radiation_Protection_Plate.get(1), + 80000, + new Object[]{ + ItemRefer.Radiation_Protection_Plate.get(1), + GT_OreDictUnificator.get(OrePrefixes.plate,Materials.ElectrumFlux,4), + GT_OreDictUnificator.get(OrePrefixes.plate,Materials.Trinium,4), + GT_OreDictUnificator.get(OrePrefixes.plate,Materials.NaquadahAlloy,4), + GT_OreDictUnificator.get(OrePrefixes.plate,Materials.Osmiridium,4), + GT_OreDictUnificator.get(OrePrefixes.plate,Materials.VibrantAlloy,4), + ItemRefer.Radiation_Protection_Plate.get(1), + }, + new FluidStack[]{ + Materials.SolderingAlloy.getMolten(1152) + }, + ItemRefer.Advanced_Radiation_Protection_Plate.get(1), + 1000, + 65536 + ); + + GT_Values.RA.addAssemblylineRecipe( + ItemRefer.Field_Restriction_Casing.get(1), + 250000, + new Object[]{ + GT_OreDictUnificator.get(OrePrefixes.frameGt,Materials.Thulium,1), + ItemRefer.Advanced_Radiation_Protection_Plate.get(6), + ItemList.Field_Generator_IV.get(2), + GT_OreDictUnificator.get(OrePrefixes.pipeTiny,Materials.Naquadah,16), + GT_OreDictUnificator.get(OrePrefixes.wireFine,Materials.NaquadahAlloy,32), + GT_OreDictUnificator.get(OrePrefixes.wireFine,Materials.NaquadahAlloy,32), + GT_OreDictUnificator.get(OrePrefixes.wireFine,Materials.Manyullyn,32), + GT_OreDictUnificator.get(OrePrefixes.wireFine,Materials.Manyullyn,32), + MyMaterial.orundum.get(OrePrefixes.plate,4) + }, + new FluidStack[]{ + Materials.TungstenSteel.getMolten(1152), + Materials.SolderingAlloy.getMolten(2304) + }, + ItemRefer.Naquadah_Fuel_Refinery_Casing.get(1), + 500, + 65536 + ); + + if (Loader.isModLoaded("dreamcraft")) { + GT_Values.RA.addAssemblylineRecipe( + MyMaterial.extremelyUnstableNaquadah.get(OrePrefixes.ingot), + 300000, + new Object[]{ + GT_OreDictUnificator.get(OrePrefixes.frameGt,Materials.Osmium,1), + ItemList.Field_Generator_UV.get(2), + ItemList.Electric_Pump_UV.get(8), + GT_OreDictUnificator.get(OrePrefixes.wireGt01,Materials.SuperconductorZPM,64), + GT_OreDictUnificator.get(OrePrefixes.wireGt01,Materials.SuperconductorZPM,64), + GT_OreDictUnificator.get(OrePrefixes.plateDense,Materials.Americium,8), + GT_OreDictUnificator.get(OrePrefixes.pipeMedium,Materials.BlackPlutonium,16), + ItemList.Circuit_Wafer_PPIC.get(32), + new Object[]{"circuitNano", 1}, + }, + new FluidStack[]{ + WerkstoffLoader.Krypton.getFluidOrGas(32000), + Materials.ElectrumFlux.getMolten(9216), + Materials.Lubricant.getFluid(128000) + }, + ItemRefer.Field_Restriction_Coil_T1.get(1), + 18000, + 114514 + ); + + GT_Values.RA.addAssemblylineRecipe( + ItemRefer.Field_Restriction_Coil_T1.get(1), + 350000, + new Object[]{ + GT_OreDictUnificator.get(OrePrefixes.frameGt,Materials.CosmicNeutronium,1), + ItemList.Field_Generator_UHV.get(2), + ItemList.Electric_Pump_UHV.get(8), + GT_OreDictUnificator.get(OrePrefixes.wireGt02,Materials.SuperconductorUV,64), + GT_OreDictUnificator.get(OrePrefixes.wireGt02,Materials.SuperconductorUV,64), + GT_OreDictUnificator.get(OrePrefixes.plateDense,Materials.Infinity,8), + GT_OreDictUnificator.get(OrePrefixes.pipeMedium,Materials.Neutronium,16), + ItemList.Circuit_Wafer_PPIC.get(48), + new Object[]{"circuitPiko", 1}, + }, + new FluidStack[]{ + Materials.Radon.getPlasma(32000), + Materials.DraconiumAwakened.getMolten(9216), + Materials.Lubricant.getFluid(128000), + }, + ItemRefer.Field_Restriction_Coil_T2.get(1), + 36000, + 114514 + ); + + GT_Values.RA.addAssemblylineRecipe( + ItemRefer.Field_Restriction_Coil_T2.get(1), + 400000, + new Object[]{ + GT_OreDictUnificator.get(OrePrefixes.frameGt,Materials.Infinity,1), + ItemList.Field_Generator_UEV.get(2), + ItemList.Electric_Pump_UEV.get(8), + GT_OreDictUnificator.get(OrePrefixes.wireGt04,Materials.SuperconductorUHV,64), + GT_OreDictUnificator.get(OrePrefixes.wireGt04,Materials.SuperconductorUHV,64), + new Object[]{"plateDenseRadoxPoly", 8}, + GT_OreDictUnificator.get(OrePrefixes.pipeMedium,Materials.Infinity,16), + ItemList.Circuit_Wafer_PPIC.get(64), + new Object[]{"circuitQuantum", 1}, + }, + new FluidStack[]{ + WerkstoffLoader.Oganesson.getFluidOrGas(32000), + Materials.Neutronium.getMolten(9216), + Materials.Lubricant.getFluid(128000), + }, + ItemRefer.Field_Restriction_Coil_T3.get(1), + 72000, + 114514 + ); + } + else { + GT_Values.RA.addAssemblylineRecipe( + MyMaterial.extremelyUnstableNaquadah.get(OrePrefixes.ingot), + 300000, + new Object[]{ + GT_OreDictUnificator.get(OrePrefixes.frameGt,Materials.VanadiumGallium,1), + GT_OreDictUnificator.get(OrePrefixes.wireGt02,Materials.SuperconductorIV,64), + GT_OreDictUnificator.get(OrePrefixes.wireGt02,Materials.SuperconductorLuV,32), + GT_OreDictUnificator.get(OrePrefixes.wireGt02,Materials.SuperconductorZPM,16), + ItemList.Neutron_Reflector.get(4), + GT_OreDictUnificator.get(OrePrefixes.wireFine,Materials.Gallium,32), + GT_OreDictUnificator.get(OrePrefixes.spring,Materials.Indium,16), + GT_OreDictUnificator.get(OrePrefixes.gearGt,Materials.Osmiridium,16), + new ItemStack(Ic2Items.iridiumPlate.getItem(),32), + GT_OreDictUnificator.get(OrePrefixes.foil,Materials.CrystallineAlloy,64), + GT_OreDictUnificator.get(OrePrefixes.foil,Materials.CrystallineAlloy,64), + GT_OreDictUnificator.get(OrePrefixes.foil,Materials.CrystallineAlloy,64), + GT_OreDictUnificator.get(OrePrefixes.foil,Materials.CrystallineAlloy,64), + ItemList.Tool_DataStick.get(16), + GT_OreDictUnificator.get(OrePrefixes.screw,Materials.Cobalt,32) + }, + new FluidStack[]{ + Materials.Trinium.getMolten(2304), + Materials.Platinum.getMolten(4608), + Materials.SolderingAlloy.getMolten(9216), + FluidRegistry.getFluidStack("ic2coolant",8000) + }, + ItemRefer.Field_Restriction_Coil_T1.get(1), + 900, + 114514 + ); + + GT_Values.RA.addAssemblylineRecipe( + ItemRefer.Field_Restriction_Coil_T1.get(1), + 350000, + new Object[]{ + GT_OreDictUnificator.get(OrePrefixes.frameGt,Materials.Molybdenum,1), + GT_OreDictUnificator.get(OrePrefixes.wireGt02,Materials.SuperconductorLuV,64), + GT_OreDictUnificator.get(OrePrefixes.wireGt02,Materials.SuperconductorZPM,32), + GT_OreDictUnificator.get(OrePrefixes.wireGt02,Materials.SuperconductorUV,16), + ItemList.Field_Generator_LuV.get(4), + GT_OreDictUnificator.get(OrePrefixes.cableGt04,Materials.NiobiumTitanium,16), + GT_OreDictUnificator.get(OrePrefixes.pipeTiny,Materials.Enderium,16), + WerkstoffLoader.LuVTierMaterial.get(OrePrefixes.gearGt,8), + ItemList.Circuit_Wafer_QPIC.get(16), + GT_OreDictUnificator.get(OrePrefixes.plate,Materials.CrystallineAlloy,64), + GT_OreDictUnificator.get(OrePrefixes.foil,Materials.Indium,64), + GT_OreDictUnificator.get(OrePrefixes.foil,Materials.Indium,64), + GT_OreDictUnificator.get(OrePrefixes.foil,Materials.Indium,64), + ItemList.Energy_LapotronicOrb.get(4), + GT_OreDictUnificator.get(OrePrefixes.screw,Materials.BlackPlutonium,32) + }, + new FluidStack[]{ + Materials.Tritanium.getMolten(2304), + Materials.Palladium.getMolten(4608), + Materials.SolderingAlloy.getMolten(9216), + FluidRegistry.getFluidStack("ic2coolant",8000) + }, + ItemRefer.Field_Restriction_Coil_T2.get(1), + 2700, + 114514 + ); + + GT_Values.RA.addAssemblylineRecipe( + ItemRefer.Field_Restriction_Coil_T2.get(1), + 400000, + new Object[]{ + GT_OreDictUnificator.get(OrePrefixes.frameGt,Materials.CosmicNeutronium,1), + GT_OreDictUnificator.get(OrePrefixes.wireGt02,Materials.SuperconductorZPM,64), + GT_OreDictUnificator.get(OrePrefixes.wireGt02,Materials.SuperconductorUV,32), + GT_OreDictUnificator.get(OrePrefixes.wireGt02,Materials.SuperconductorUHV,16), + ItemList.Sensor_UV.get(4), + GT_OreDictUnificator.get(OrePrefixes.cableGt04,Materials.NetherStar,16), + GT_OreDictUnificator.get(OrePrefixes.plateDense,Materials.SamariumMagnetic,4), + GT_OreDictUnificator.get(OrePrefixes.gearGt,Materials.BlackPlutonium,16), + ItemList.Circuit_Chip_CrystalSoC2.get(32), + GT_OreDictUnificator.get(OrePrefixes.plate,Materials.CrystallineAlloy,64), + GT_OreDictUnificator.get(OrePrefixes.plate,Materials.Indium,32), + GT_OreDictUnificator.get(OrePrefixes.foil,Materials.VibrantAlloy,64), + GT_OreDictUnificator.get(OrePrefixes.foil,Materials.VibrantAlloy,64), + ItemList.Energy_LapotronicOrb2.get(4), + GT_OreDictUnificator.get(OrePrefixes.screw,Materials.Infinity,16) + }, + new FluidStack[]{ + Materials.Americium.getMolten(2304), + Materials.Osmium.getMolten(4608), + Materials.SolderingAlloy.getMolten(9216), + FluidRegistry.getFluidStack("ic2coolant",8000) + }, + ItemRefer.Field_Restriction_Coil_T3.get(1), + 8100, + 114514 + ); + } + + GT_Values.RA.addAssemblerRecipe( + new ItemStack[]{ + GT_OreDictUnificator.get(OrePrefixes.frameGt,Materials.BorosilicateGlass,1), + GT_OreDictUnificator.get(OrePrefixes.plate,Materials.ReinforceGlass,6), + GT_OreDictUnificator.get(OrePrefixes.ring,Materials.NaquadahAlloy,32), + ItemList.Field_Generator_HV.get(4), + GT_Utility.getIntegratedCircuit(6) + }, + MyMaterial.naquadahAsphalt.getFluidOrGas(500), + ItemRefer.Field_Restriction_Glass.get(1), + 300, + 120000 + ); + + GT_Values.RA.addChemicalRecipe( + GT_Utility.getIntegratedCircuit(1), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Calcium,1), + Materials.Oxygen.getGas(1000), + null, + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Quicklime,2), + 10, + 30 + ); + + GT_Values.RA.addElectrolyzerRecipe( + ItemRefer.Aluminum_Nitride_Dust.get(2), + null, + null, + Materials.Nitrogen.getGas(1000L), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Aluminium,1), + null,null,null,null,null, + new int[]{10000}, + 100, + 120 + ); + + GT_Values.RA.addMixerRecipe( + ItemRefer.Aluminum_Nitride_Dust.get(4), + WerkstoffLoader.YttriumOxide.get(OrePrefixes.dust,5), + GT_Utility.getIntegratedCircuit(9), + null, + FluidRegistry.getFluidStack("refinedglue",1000), + null, + ItemRefer.Special_Ceramics_Dust.get(9), + 100, + 1980 + ); + + GT_Values.RA.addMixerRecipe( + ItemRefer.Aluminum_Nitride_Dust.get(4), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Uraninite,5), + GT_Utility.getIntegratedCircuit(9), + null, + FluidRegistry.getFluidStack("refinedglue",1000), + null, + ItemRefer.Special_Ceramics_Dust.get(9), + 100, + 1980 + ); + + GT_Values.RA.addExtruderRecipe( + ItemRefer.Special_Ceramics_Dust.get(2), + ItemList.Shape_Extruder_Plate.get(0L), + ItemRefer.Special_Ceramics_Plate.get(1), + 400, + 480 + ); + + GT_ModHandler.addCraftingRecipe( + ItemRefer.Raw_Cylinder.get(1), + GT_ModHandler.RecipeBits.DISMANTLEABLE, + new Object[]{ + "PPP","PFP","PPP", + 'P', ItemRefer.Special_Ceramics_Plate.get(1), + 'F', GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.StainlessSteel,1) + } + ); + + GT_Values.RA.addAssemblerRecipe( + new ItemStack[]{ + ItemRefer.Raw_Cylinder.get(1), + GT_OreDictUnificator.get(OrePrefixes.gearGt,Materials.Titanium,1), + GT_OreDictUnificator.get(OrePrefixes.stickLong,Materials.Titanium,4), + GT_OreDictUnificator.get(OrePrefixes.plate,Materials.Titanium,6), + GT_Utility.getIntegratedCircuit(4) + }, + null, + ItemRefer.Titanium_Plated_Cylinder.get(1), + 300, + 1920 + ); + + GT_Values.RA.addMultiblockChemicalRecipe( + new ItemStack[]{ + GT_Utility.getIntegratedCircuit(16), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Saltpeter,2) + }, + new FluidStack[]{ + FluidRegistry.getFluidStack("liquidoxygen",1000), + Materials.NitrogenDioxide.getGas(1000) + }, + new FluidStack[]{ + FluidRegistry.getFluidStack("combustionpromotor",500) + }, + null, + 200, + 120 + ); + + GT_Values.RA.addMultiblockChemicalRecipe( + new ItemStack[]{ + GT_Utility.getIntegratedCircuit(16), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.PotassiumNitrade,2) + }, + new FluidStack[]{ + FluidRegistry.getFluidStack("liquidoxygen",1000), + Materials.NitrogenDioxide.getGas(1000) + }, + new FluidStack[]{ + FluidRegistry.getFluidStack("combustionpromotor",500) + }, + null, + 200, + 120 + ); + + GT_Values.RA.addMultiblockChemicalRecipe( + new ItemStack[]{ + GT_Utility.getIntegratedCircuit(16), + WerkstoffLoader.SodiumNitrate.get(OrePrefixes.dust,2) + }, + new FluidStack[]{ + FluidRegistry.getFluidStack("liquidoxygen",1000), + Materials.NitrogenDioxide.getGas(1000) + }, + new FluidStack[]{ + FluidRegistry.getFluidStack("combustionpromotor",500) + }, + null, + 200, + 120 + ); + + if (Loader.isModLoaded("miscutils")) { + GT_Values.RA.addMultiblockChemicalRecipe( + new ItemStack[]{ + GT_Utility.getIntegratedCircuit(16), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Saltpeter, 2) + }, + new FluidStack[]{ + FluidRegistry.getFluidStack("fluid.hydrogenperoxide", 1000), + Materials.NitrogenDioxide.getGas(1000) + }, + new FluidStack[]{ + FluidRegistry.getFluidStack("combustionpromotor", 2000) + }, + null, + 200, + 120 + ); + + GT_Values.RA.addMultiblockChemicalRecipe( + new ItemStack[]{ + GT_Utility.getIntegratedCircuit(16), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.PotassiumNitrade, 2) + }, + new FluidStack[]{ + FluidRegistry.getFluidStack("fluid.hydrogenperoxide", 1000), + Materials.NitrogenDioxide.getGas(1000) + }, + new FluidStack[]{ + FluidRegistry.getFluidStack("combustionpromotor", 2000) + }, + null, + 200, + 120 + ); + + GT_Values.RA.addMultiblockChemicalRecipe( + new ItemStack[]{ + GT_Utility.getIntegratedCircuit(16), + WerkstoffLoader.SodiumNitrate.get(OrePrefixes.dust, 2) + }, + new FluidStack[]{ + FluidRegistry.getFluidStack("fluid.hydrogenperoxide", 1000), + Materials.NitrogenDioxide.getGas(1000) + }, + new FluidStack[]{ + FluidRegistry.getFluidStack("combustionpromotor", 2000) + }, + null, + 200, + 120 + ); + } + + if (Loader.isModLoaded("botdustries")) { + GT_Values.RA.addMultiblockChemicalRecipe( + new ItemStack[]{ + GT_Utility.getIntegratedCircuit(16), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Saltpeter, 2) + }, + new FluidStack[]{ + FluidRegistry.getFluidStack("hydrogen peroxide", 1000), + Materials.NitrogenDioxide.getGas(1000) + }, + new FluidStack[]{ + FluidRegistry.getFluidStack("combustionpromotor", 2000) + }, + null, + 200, + 120 + ); + + GT_Values.RA.addMultiblockChemicalRecipe( + new ItemStack[]{ + GT_Utility.getIntegratedCircuit(16), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.PotassiumNitrade, 2) + }, + new FluidStack[]{ + FluidRegistry.getFluidStack("hydrogen peroxide", 1000), + Materials.NitrogenDioxide.getGas(1000) + }, + new FluidStack[]{ + FluidRegistry.getFluidStack("combustionpromotor", 2000) + }, + null, + 200, + 120 + ); + + GT_Values.RA.addMultiblockChemicalRecipe( + new ItemStack[]{ + GT_Utility.getIntegratedCircuit(16), + WerkstoffLoader.SodiumNitrate.get(OrePrefixes.dust, 2) + }, + new FluidStack[]{ + FluidRegistry.getFluidStack("hydrogen peroxide", 1000), + Materials.NitrogenDioxide.getGas(1000) + }, + new FluidStack[]{ + FluidRegistry.getFluidStack("combustionpromotor", 2000) + }, + null, + 200, + 120 + ); + } + + GT_ModHandler.addCraftingRecipe( + ItemRefer.Universal_Chemical_Fuel_Engine.get(1), + GT_ModHandler.RecipeBits.DISMANTLEABLE, + new Object[]{ + "TZT","ALB","WGW", + 'T', GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.Titanium,1), + 'Z', "circuitUltimate", + 'A', ItemList.Machine_Multi_DieselEngine.get(1), + 'B', ItemList.Machine_Multi_ExtremeDieselEngine.get(1), + 'L', ItemList.Hull_LuV, + 'W', GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Naquadah,1), + 'G', GT_OreDictUnificator.get(OrePrefixes.gearGt, Materials.Osmium,1), + } + ); + + //neutron activator + GT_Values.RA.addAssemblerRecipe( + new ItemStack[]{ + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.PolyvinylChloride, 4), + GT_OreDictUnificator.get(OrePrefixes.itemCasing, Materials.Plastic, 4), + GT_Utility.getIntegratedCircuit(8) + }, + FluidRegistry.getFluidStack("dye.chemical.dyecyan", 144), + ItemRefer.Plastic_Case.get(1), + 100, + 28 + ); + + GT_Values.RA.addAssemblerRecipe( + new ItemStack[]{ + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.PolyvinylChloride, 4), + GT_OreDictUnificator.get(OrePrefixes.itemCasing, Materials.Plastic, 4), + GT_Utility.getIntegratedCircuit(8) + }, + FluidRegistry.getFluidStack("dye.watermixed.dyecyan", 144), + ItemRefer.Plastic_Case.get(1), + 100, + 28 + ); + + GT_ModHandler.addCraftingRecipe( + ItemRefer.Plastic_Case.get(1), + new Object[]{ + "PCP","CDC","PCP", + 'P', GT_OreDictUnificator.get(OrePrefixes.stick, Materials.PolyvinylChloride,1), + 'C', GT_OreDictUnificator.get(OrePrefixes.itemCasing, Materials.Plastic,1), + 'D', "dyeCyan" + } + ); + + GT_ModHandler.addCraftingRecipe( + ItemRefer.Micro_Heater.get(1), + GT_ModHandler.RecipeBits.DISMANTLEABLE, + new Object[]{ + "PIP","UBU","CTC", + 'P', "plateQuintuplePaper", + 'I', ItemList.Circuit_Chip_ULPIC, + 'U', "circuitPrimitive", + 'B', ItemList.Circuit_Board_Coated_Basic, + 'C', ItemList.ULV_Coil, + 'T', ItemList.Battery_RE_ULV_Tantalum + } + ); + + GT_Values.RA.addAutoclaveRecipe( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Quartzite,1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sodium,4), + Materials.Water.getFluid(1000), + ItemRefer.Quartz_Wafer.get(1), + 3333, + 6000, + 30, + true + ); + + GT_Values.RA.addAutoclaveRecipe( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Quartzite,1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sodium,4), + FluidRegistry.getFluidStack("ic2distilledwater", 1000), + ItemRefer.Quartz_Wafer.get(1), + 3333, + 1500, + 30, + true + ); + + CrackRecipeAdder.addUniversalCircuitAssemblerRecipe( + new ItemStack[]{ + ItemRefer.Quartz_Wafer.get(1), + ItemRefer.Special_Ceramics_Plate.get(2), + ItemRefer.Micro_Heater.get(1), + GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.EnergeticAlloy,4), + ItemList.Circuit_Chip_ILC.get(4), + GT_OreDictUnificator.get(OrePrefixes.bolt, Materials.Silver,2), + }, + ItemRefer.Quartz_Crystal_Resonator.get(1), + 36, + 100, + 120, + true + ); + + CrackRecipeAdder.addUniversalAssemblerRecipe( + new ItemStack[]{ + ItemRefer.Quartz_Crystal_Resonator.get(2), + ItemRefer.Plastic_Case.get(1), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Good,1), + ItemList.Cover_Screen.get(1), + ItemList.Circuit_Parts_Diode.get(16), + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Aluminium,8), + }, + ItemRefer.Inverter.get(1), + 144, + 240, + 120, + false + ); + + CrackRecipeAdder.addUniversalAssemblerRecipe( + new ItemStack[]{ + ItemRefer.Quartz_Crystal_Resonator.get(2), + ItemRefer.Plastic_Case.get(1), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Good,1), + ItemList.Cover_Screen.get(1), + ItemList.Circuit_Parts_DiodeSMD.get(16), + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Aluminium,8), + }, + ItemRefer.Inverter.get(1), + 144, + 240, + 120, + false + ); + + CrackRecipeAdder.addUniversalAssemblerRecipe( + new ItemStack[]{ + ItemRefer.Quartz_Crystal_Resonator.get(2), + ItemRefer.Plastic_Case.get(1), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Good,1), + ItemList.Cover_Screen.get(1), + ItemList.Circuit_Parts_DiodeASMD.get(4), + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Aluminium,8), + }, + ItemRefer.Inverter.get(1), + 144, + 240, + 120, + false + ); + + GT_ModHandler.addCraftingRecipe( + Loaders.NeutronAccelerators[0].copy(), + GT_ModHandler.RecipeBits.DISMANTLEABLE, + new Object[]{ + "WPM","CHI","WPM", + 'W', GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Lead,1), + 'P', GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Lead,1), + 'M', GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.Lead,1), + 'C', GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Wood,1), + 'H', ItemList.Hull_ULV, + 'I', ItemRefer.Inverter.get(1), + } + ); + + GT_ModHandler.addCraftingRecipe( + Loaders.NeutronAccelerators[1].copy(), + GT_ModHandler.RecipeBits.DISMANTLEABLE, + new Object[]{ + "WPM","CHI","WPM", + 'W', GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Tin,1), + 'P', GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Lead,1), + 'M', ItemList.Electric_Motor_LV, + 'C', "plateAnyRubber", + 'H', ItemList.Hull_LV, + 'I', ItemRefer.Inverter.get(1), + } + ); + + GT_Values.RA.addAssemblerRecipe( + new ItemStack[]{ + ItemRefer.Inverter.get(1), + ItemList.Hull_MV.get(1L), + GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.AnyCopper,2), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Plastic,1), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Beryllium,2), + ItemList.Electric_Motor_MV.get(2), + }, + null, + Loaders.NeutronAccelerators[2].copy(), + 300, + 120 + ); + + GT_Values.RA.addAssemblerRecipe( + new ItemStack[]{ + ItemRefer.Inverter.get(1), + ItemList.Hull_HV.get(1L), + GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Gold,2), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.PolyvinylChloride,1), + GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Beryllium,2), + ItemList.Electric_Motor_HV.get(2), + }, + null, + Loaders.NeutronAccelerators[3].copy(), + 300, + 480 + ); + + GT_Values.RA.addAssemblylineRecipe( + Loaders.NeutronAccelerators[5].copy(), + 20000, + new Object[] { + ItemRefer.Inverter.get(2), + ItemList.Hull_LuV.get(1L), + GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.YttriumBariumCuprate,2), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.NetherStar,1), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Polybenzimidazole,4), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.NeodymiumMagnetic,4), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.NeodymiumMagnetic,4), + ItemList.Electric_Motor_LuV.get(2), + GT_OreDictUnificator.get(OrePrefixes.wireGt04, Materials.SuperconductorMV,4), + }, + new FluidStack[]{ + Materials.Argon.getGas(3000) + }, + Loaders.NeutronAccelerators[6].copy(), + 300, + 30720 + ); + + GT_Values.RA.addAssemblylineRecipe( + Loaders.NeutronAccelerators[6].copy(), + 20000, + new Object[] { + ItemRefer.Inverter.get(2), + ItemList.Hull_ZPM.get(1L), + GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.VanadiumGallium,2), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.NetherStar,1), + GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Polybenzimidazole,4), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.SamariumMagnetic,4), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.SamariumMagnetic,4), + ItemList.Electric_Motor_ZPM.get(2), + GT_OreDictUnificator.get(OrePrefixes.wireGt04, Materials.SuperconductorEV,4), + }, + new FluidStack[]{ + WerkstoffLoader.Xenon.getFluidOrGas(3000) + }, + Loaders.NeutronAccelerators[7].copy(), + 300, + 122880 + ); + + GT_Values.RA.addAssemblylineRecipe( + Loaders.NeutronAccelerators[7].copy(), + 20000, + new Object[] { + ItemRefer.Inverter.get(4), + ItemList.Hull_UV.get(1L), + GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.NaquadahAlloy,4), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.NetherStar,2), + GT_OreDictUnificator.get(OrePrefixes.plateTriple, Materials.Polybenzimidazole,4), + ItemList.ZPM_Coil.get(4), + GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.NickelZincFerrite,16), + ItemList.ZPM_Coil.get(4), + ItemList.Electric_Motor_UV.get(2), + GT_OreDictUnificator.get(OrePrefixes.wireGt04, Materials.SuperconductorLuV,4), + }, + new FluidStack[]{ + WerkstoffLoader.Oganesson.getFluidOrGas(3000) + }, + Loaders.NeutronAccelerators[8].copy(), + 300, + 491520 + ); + + GT_Values.RA.addAssemblerRecipe( + new ItemStack[]{ + ItemList.Casing_IV.get(1L), + ItemList.Cover_ActivityDetector.get(1L), + ItemList.Cover_Screen.get(1L), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.VibrantAlloy,4), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Data,1), + ItemList.Sensor_HV.get(2), + GT_Utility.getIntegratedCircuit(1) + }, + Materials.Helium.getGas(1000), + Loaders.NS.copy(), + 200, + 1920 + ); + + GT_ModHandler.addCraftingRecipe( + ItemRefer.Neutron_Source.get(1), + GT_ModHandler.RecipeBits.DISMANTLEABLE, + new Object[]{ + " P ","PUP"," P ", + 'P', GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.Steel,1), + 'U', ItemRefer.High_Density_Uranium.get(1) + } + ); + + GT_ModHandler.addCraftingRecipe( + Loaders.NA.copy(), + GT_ModHandler.RecipeBits.DISMANTLEABLE, + new Object[]{ + "PCP","ESE","PCP", + 'C', "circuitMaster", + 'P', GT_OreDictUnificator.get(OrePrefixes.plate, Materials.StainlessSteel,1), + 'E', ItemList.Emitter_EV.get(1), + 'S', ItemRefer.Neutron_Source.get(1), + } + ); + } + + public static void InitLoadRecipe(){ + + GT_Values.RA.addAssemblerRecipe( + new ItemStack[]{ + ItemRefer.Inverter.get(1), + ItemList.Hull_EV.get(1L), + GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Aluminium,2), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.StyreneButadieneRubber,1), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.IronMagnetic,4), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.TungstenCarbide,2), + ItemList.Electric_Motor_EV.get(2), + }, + null, + Loaders.NeutronAccelerators[4].copy(), + 300, + 1920 + ); + + GT_Values.RA.addAssemblerRecipe( + new ItemStack[]{ + ItemRefer.Inverter.get(1), + ItemList.Hull_IV.get(1L), + GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Tungsten,2), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Silicone,1), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.SteelMagnetic,4), + GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.TungstenCarbide,2), + ItemList.Electric_Motor_IV.get(2), + }, + null, + Loaders.NeutronAccelerators[5].copy(), + 300, + 7680 + ); + + GT_Values.RA.addBlastRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Sapphire,1), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Coal,3), + FluidRegistry.getFluidStack("liquidnitrogen",1000), + null, + ItemRefer.Aluminum_Nitride_Dust.get(2), + null, + 200, + 1920, + 4600 + ); + + GT_Values.RA.addBlastRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.GreenSapphire,1), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Coal,3), + FluidRegistry.getFluidStack("liquidnitrogen",1000), + null, + ItemRefer.Aluminum_Nitride_Dust.get(2), + null, + 200, + 1920, + 4600 + ); + + GT_Values.RA.addBlastRecipe( + MyMaterial.extremelyUnstableNaquadah.get(OrePrefixes.dust,1), + GT_Utility.getIntegratedCircuit(1), + null,null, + MyMaterial.extremelyUnstableNaquadah.get(OrePrefixes.ingotHot), + null, + 8000, + 114514, + 7000 + ); + + GT_Values.RA.addVacuumFreezerRecipe( + MyMaterial.atomicSeparationCatalyst.get(OrePrefixes.ingotHot,1), + MyMaterial.atomicSeparationCatalyst.get(OrePrefixes.ingot,1), + 200, + 30720 + ); + + GT_Values.RA.addVacuumFreezerRecipe( + MyMaterial.extremelyUnstableNaquadah.get(OrePrefixes.ingotHot,1), + MyMaterial.extremelyUnstableNaquadah.get(OrePrefixes.ingot,1), + 400, + 30720 + ); + + GT_Values.RA.addCentrifugeRecipe( + GT_Utility.getIntegratedCircuit(1),null, + MyMaterial.naquadahBasedFuelMkVDepleted.getFluidOrGas(1000), + WerkstoffLoader.Oganesson.getFluidOrGas(1), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Naquadah,1), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Naquadah,1), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Naquadah,1), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Naquadah,1), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Naquadah,1), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Naquadah,1), + new int[]{ + 1000,500,400,50,20,5 + }, + 100, + 30 + ); + + GT_Values.RA.addCentrifugeRecipe( + GT_Utility.getIntegratedCircuit(1),null, + MyMaterial.naquadahBasedFuelMkIVDepleted.getFluidOrGas(1000), + WerkstoffLoader.Oganesson.getFluidOrGas(864), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Naquadah,64), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Naquadah,64), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Naquadah,64), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Naquadah,64), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Sunnarium,32), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Sunnarium,32), + new int[]{ + 9900,9500,9000,8000,5000,3000 + }, + 2500, + 30000 + ); + + GT_Values.RA.addCentrifugeRecipe( + GT_Utility.getIntegratedCircuit(1),null, + MyMaterial.naquadahBasedFuelMkIIIDepleted.getFluidOrGas(1000), + WerkstoffLoader.Oganesson.getFluidOrGas(720), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Naquadah,64), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Naquadah,64), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Naquadah,64), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Bedrockium,32), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Bedrockium,32), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Bedrockium,32), + new int[]{ + 9500,9000,8000,7000,5000,4000 + }, + 2000, + 30000 + ); + + GT_Values.RA.addCentrifugeRecipe( + GT_Utility.getIntegratedCircuit(1), + null, + MyMaterial.naquadahBasedFuelMkIIDepleted.getFluidOrGas(1000), + WerkstoffLoader.Oganesson.getFluidOrGas(144), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Naquadah,64), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Naquadah,64), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Naquadah,32), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Americium,32), + WerkstoffLoader.Californium.get(OrePrefixes.dust,32), + null, + new int[]{9000,8500,5000,4000,2000}, + 8000, + 2040 + ); + + GT_Values.RA.addCentrifugeRecipe( + GT_Utility.getIntegratedCircuit(1),null, + MyMaterial.uraniumBasedLiquidFuelDepleted.getFluidOrGas(1000), + WerkstoffLoader.Xenon.getFluidOrGas(10), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Lead,16L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Bismuth,1L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Barium,6L), + null,null,null, + new int[]{6000,1000,5000}, + 1000,1040 + ); + + GT_Values.RA.addCentrifugeRecipe( + GT_Utility.getIntegratedCircuit(1),null, + MyMaterial.thoriumBasedLiquidFuelDepleted.getFluidOrGas(1000), + null, + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Lutetium,64), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Lutetium,48), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Lutetium,32), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Praseodymium,64), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Boron,2), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Indium,4), + new int[]{9000,7000,1500,10000,3000,5000}, + 1500, + 1040 + ); + + GT_Values.RA.addCentrifugeRecipe( + GT_Utility.getIntegratedCircuit(1),null, + MyMaterial.plutoniumBasedLiquidFuelDepleted.getFluidOrGas(1000), + WerkstoffLoader.Krypton.getFluidOrGas(144), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Tritanium,9), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Cerium,4), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Gold,2), + null,null,null, + new int[]{5000,8000,7500}, + 2500, + 7680 + ); + + GT_Values.RA.addCentrifugeRecipe( + GT_Utility.getIntegratedCircuit(1), + null, + MyMaterial.thoriumTetrafluoride.getFluidOrGas(1000), + MyMaterial.thorium232Tetrafluoride.getFluidOrGas(750), + GT_OreDictUnificator.get(OrePrefixes.dustSmall,Materials.Thorium,1), + null,null,null,null,null,null, + 100, + 480 + ); + + GT_Values.RA.addCentrifugeRecipe( + GT_Utility.getIntegratedCircuit(1), + null, + MyMaterial.naquadahEmulsion.getFluidOrGas(1000), + MyMaterial.naquadahSolution.getFluidOrGas(500), + MyMaterial.radioactiveSludge.get(OrePrefixes.dust,4), + MyMaterial.radioactiveSludge.get(OrePrefixes.dust,2), + MyMaterial.radioactiveSludge.get(OrePrefixes.dust,1), + MyMaterial.radioactiveSludge.get(OrePrefixes.dust,1), + MyMaterial.radioactiveSludge.get(OrePrefixes.dust,1), + MyMaterial.radioactiveSludge.get(OrePrefixes.dust,1), + new int[]{8000,7500,5000,2000,500,100}, + 800, + 120 + ); + + GT_Values.RA.addCentrifugeRecipe( + GT_Utility.getIntegratedCircuit(1), + null, + MyMaterial.naquadahBasedFuelMkIDepleted.getFluidOrGas(1000), + WerkstoffLoader.Xenon.getFluidOrGas(144), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Naquadah,64), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Naquadah,48), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Naquadah,32), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Neodymium,32), + GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Europium,32), + null, + new int[]{9000,8500,5000,4000,2000}, + 6000, + 2040 + ); + + GT_Values.RA.addCentrifugeRecipe( + MyMaterial.radioactiveSludge.get(OrePrefixes.dust,1), + null,null, + Materials.Radon.getGas(5), + GT_OreDictUnificator.get(OrePrefixes.dustSmall,Materials.Calcium,2), + GT_OreDictUnificator.get(OrePrefixes.dustSmall,Materials.Calcium,1), + GT_OreDictUnificator.get(OrePrefixes.dustSmall,Materials.Naquadah,1), + GT_OreDictUnificator.get(OrePrefixes.dustSmall,Materials.Uranium,1), + GT_OreDictUnificator.get(OrePrefixes.dustSmall,Materials.Plutonium,1), + WerkstoffLoader.Tiberium.get(OrePrefixes.dustSmall,1), + new int[]{10000,9500,8000,2500,2000,2000}, + 100, + 120 + ); + } + + public static void Fixer(){ + MaterialFix.MaterialFluidExtractionFix(MyMaterial.atomicSeparationCatalyst); + MaterialFix.MaterialFluidExtractionFix(MyMaterial.extremelyUnstableNaquadah); + } +} diff --git a/src/main/java/goodgenerator/loader/RecipeLoader_02.java b/src/main/java/goodgenerator/loader/RecipeLoader_02.java new file mode 100644 index 0000000000..220afaaa43 --- /dev/null +++ b/src/main/java/goodgenerator/loader/RecipeLoader_02.java @@ -0,0 +1,670 @@ +package goodgenerator.loader; + +import goodgenerator.items.MyMaterial; +import goodgenerator.util.CrackRecipeAdder; +import goodgenerator.util.ItemRefer; +import com.github.bartimaeusnek.bartworks.system.material.WerkstoffLoader; +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.item.ItemStack; +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; + +public class RecipeLoader_02 { + + public static void RecipeLoad(){ + + GT_Values.RA.addAssemblerRecipe( + new ItemStack[]{ + GT_OreDictUnificator.get(OrePrefixes.pipeLarge, Materials.StainlessSteel,1), + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.BlueAlloy,1), + GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorHV,32), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Beryllium,32), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Elite,1) + }, + null, + ItemRefer.Speeding_Pipe.get(1), + 300, + 1920 + ); + + CrackRecipeAdder.reAddBlastRecipe(MyMaterial.zircaloy2, 500, 480, 2800, true); + CrackRecipeAdder.reAddBlastRecipe(MyMaterial.zircaloy2, 513, 480, 2800, false); + CrackRecipeAdder.reAddBlastRecipe(MyMaterial.zircaloy4, 500, 480, 2800, true); + CrackRecipeAdder.reAddBlastRecipe(MyMaterial.zircaloy4, 513, 480, 2800, false); + CrackRecipeAdder.reAddBlastRecipe(MyMaterial.incoloy903, 2400, 1920, 3700, true); + CrackRecipeAdder.reAddBlastRecipe(MyMaterial.adamantiumAlloy, 2500, 1920, 5000, true); + + GT_Values.RA.addAssemblerRecipe( + new ItemStack[] { + MyMaterial.zircaloy4.get(OrePrefixes.plate, 4), + MyMaterial.zircaloy2.get(OrePrefixes.ring, 2), + GT_Utility.getIntegratedCircuit(2) + }, + null, + ItemRefer.Advanced_Fuel_Rod.get(1), + 200, + 120 + ); + + GT_Values.RA.addCannerRecipe( + ItemRefer.Advanced_Fuel_Rod.get(1), + ItemRefer.High_Density_Uranium.get(1), + ItemRefer.Fuel_Rod_U_1.get(1), + null, + 400, + 120 + ); + + GT_Values.RA.addAssemblerRecipe( + new ItemStack[] { + ItemRefer.Fuel_Rod_U_1.get(2), + MyMaterial.zircaloy2.get(OrePrefixes.stick, 4), + GT_Utility.getIntegratedCircuit(2) + }, + null, + ItemRefer.Fuel_Rod_U_2.get(1), + 200, + 1920 + ); + + GT_Values.RA.addAssemblerRecipe( + new ItemStack[] { + ItemRefer.Fuel_Rod_U_2.get(2), + MyMaterial.zircaloy2.get(OrePrefixes.stick, 4), + GT_Utility.getIntegratedCircuit(5) + }, + null, + ItemRefer.Fuel_Rod_U_4.get(1), + 200, + 1920 + ); + + GT_Values.RA.addAssemblerRecipe( + new ItemStack[] { + ItemRefer.Fuel_Rod_U_1.get(4), + MyMaterial.zircaloy2.get(OrePrefixes.stickLong, 6), + GT_Utility.getIntegratedCircuit(4) + }, + null, + ItemRefer.Fuel_Rod_U_4.get(1), + 220, + 1920 + ); + + GT_Values.RA.addCannerRecipe( + ItemRefer.Advanced_Fuel_Rod.get(1), + ItemRefer.High_Density_Plutonium.get(1), + ItemRefer.Fuel_Rod_Pu_1.get(1), + null, + 400, + 120 + ); + + GT_Values.RA.addAssemblerRecipe( + new ItemStack[] { + ItemRefer.Fuel_Rod_Pu_1.get(2), + MyMaterial.zircaloy2.get(OrePrefixes.stick, 4), + GT_Utility.getIntegratedCircuit(2) + }, + null, + ItemRefer.Fuel_Rod_Pu_2.get(1), + 200, + 1920 + ); + + GT_Values.RA.addAssemblerRecipe( + new ItemStack[] { + ItemRefer.Fuel_Rod_Pu_2.get(2), + MyMaterial.zircaloy2.get(OrePrefixes.stick, 4), + GT_Utility.getIntegratedCircuit(5) + }, + null, + ItemRefer.Fuel_Rod_Pu_4.get(1), + 200, + 1920 + ); + + GT_Values.RA.addAssemblerRecipe( + new ItemStack[] { + ItemRefer.Fuel_Rod_Pu_1.get(4), + MyMaterial.zircaloy2.get(OrePrefixes.stickLong, 6), + GT_Utility.getIntegratedCircuit(4) + }, + null, + ItemRefer.Fuel_Rod_Pu_4.get(1), + 220, + 1920 + ); + + GT_ModHandler.addCraftingRecipe( + ItemRefer.YOTTank_Casing.get(1), + GT_ModHandler.RecipeBits.DISMANTLEABLE, + new Object[]{ + "BPB","FOF","BPB", + 'B', GT_OreDictUnificator.get(OrePrefixes.plate, Materials.BlackSteel,1), + 'P', GT_OreDictUnificator.get(OrePrefixes.pipeMedium, Materials.StainlessSteel,1), + 'F', GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Polytetrafluoroethylene,1), + 'O', GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.BlackSteel,1), + } + ); + + GT_ModHandler.addCraftingRecipe( + ItemRefer.YOTTank.get(1), + GT_ModHandler.RecipeBits.DISMANTLEABLE, + new Object[]{ + "SPS","ECE","SLS", + 'S', GT_OreDictUnificator.get(OrePrefixes.screw, Materials.BlueSteel,1), + 'P', ItemList.Cover_Screen.get(1), + 'E', "circuitData", + 'L', GT_OreDictUnificator.get(OrePrefixes.pipeMedium, Materials.Enderium,1), + 'C', ItemRefer.YOTTank_Casing.get(1) + } + ); + + GT_Values.RA.addAssemblerRecipe( + new ItemStack[]{ + ItemList.Large_Fluid_Cell_Steel.get(12L), + GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, Materials.Tin,4), + GT_Utility.getIntegratedCircuit(1) + }, + Materials.Plastic.getMolten(144), + ItemRefer.Fluid_Storage_Core_T1.get(1), + 200, + 480 + ); + + GT_Values.RA.addAssemblerRecipe( + new ItemStack[]{ + ItemList.Large_Fluid_Cell_Aluminium.get(3L), + GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, Materials.Tin,4), + GT_Utility.getIntegratedCircuit(1) + }, + Materials.Plastic.getMolten(144), + ItemRefer.Fluid_Storage_Core_T1.get(1), + 200, + 480 + ); + + GT_Values.RA.addAssemblerRecipe( + new ItemStack[]{ + ItemList.Large_Fluid_Cell_StainlessSteel.get(2L), + GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, Materials.Tin,4), + GT_Utility.getIntegratedCircuit(1) + }, + Materials.Plastic.getMolten(144), + ItemRefer.Fluid_Storage_Core_T1.get(1), + 200, + 480 + ); + + GT_Values.RA.addAssemblerRecipe( + new ItemStack[]{ + ItemList.Large_Fluid_Cell_Titanium.get(64L), + GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.Titanium,8), + GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, Materials.BlackSteel,4), + GT_Utility.getIntegratedCircuit(2) + }, + Materials.Polytetrafluoroethylene.getMolten(2304), + ItemRefer.Fluid_Storage_Core_T2.get(1), + 200, + 7680 + ); + + GT_Values.RA.addAssemblerRecipe( + new ItemStack[]{ + ItemList.Large_Fluid_Cell_TungstenSteel.get(18L), + GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, Materials.BlackSteel,4), + GT_Utility.getIntegratedCircuit(2) + }, + Materials.Polytetrafluoroethylene.getMolten(2304), + ItemRefer.Fluid_Storage_Core_T2.get(1), + 200, + 7680 + ); + + GT_Values.RA.addAssemblerRecipe( + new ItemStack[]{ + ItemList.Large_Fluid_Cell_Chrome.get(4L), + GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, Materials.BlackSteel,4), + GT_Utility.getIntegratedCircuit(2) + }, + Materials.Polytetrafluoroethylene.getMolten(2304), + ItemRefer.Fluid_Storage_Core_T2.get(1), + 200, + 7680 + ); + + GT_Values.RA.addAssemblylineRecipe( + ItemRefer.Fluid_Storage_Core_T1.get(1), + 10000, + new Object[]{ + ItemRefer.Fluid_Storage_Core_T1.get(32), + ItemRefer.Fluid_Storage_Core_T1.get(32), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Polytetrafluoroethylene,16), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Polytetrafluoroethylene,16), + GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.BlackSteel,4), + GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.BlackSteel,4), + GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.BlackSteel,4) + }, + new FluidStack[]{ + Materials.SolderingAlloy.getMolten(288), + Materials.Lubricant.getFluid(1000) + }, + ItemRefer.Fluid_Storage_Core_T2.get(1), + 200, + 7680 + ); + + GT_Values.RA.addAssemblylineRecipe( + ItemRefer.Fluid_Storage_Core_T2.get(1), + 20000, + new Object[]{ + ItemRefer.Fluid_Storage_Core_T2.get(48), + ItemRefer.Fluid_Storage_Core_T2.get(48), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Polytetrafluoroethylene,16), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Polytetrafluoroethylene,16), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Polytetrafluoroethylene,16), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Polytetrafluoroethylene,16), + GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Iridium,4), + GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Iridium,4), + GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Iridium,4) + }, + new FluidStack[]{ + Materials.SolderingAlloy.getMolten(2304), + Materials.Lubricant.getFluid(4000) + }, + ItemRefer.Fluid_Storage_Core_T3.get(1), + 800, + 122880 + ); + + GT_Values.RA.addAssemblylineRecipe( + ItemRefer.Fluid_Storage_Core_T3.get(1), + 40000, + new Object[]{ + ItemRefer.Fluid_Storage_Core_T3.get(48), + ItemRefer.Fluid_Storage_Core_T3.get(48), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Polybenzimidazole,16), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Polybenzimidazole,16), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Polybenzimidazole,16), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Polybenzimidazole,16), + GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Osmium,4), + GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Osmium,4), + GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Osmium,4), + GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Osmium,4) + }, + new FluidStack[]{ + Materials.SolderingAlloy.getMolten(18432), + Materials.Lubricant.getFluid(16000) + }, + ItemRefer.Fluid_Storage_Core_T4.get(1), + 3200, + 1966080 + ); + + GT_Values.RA.addAssemblylineRecipe( + ItemRefer.Fluid_Storage_Core_T4.get(1), + 80000, + new Object[]{ + ItemRefer.Fluid_Storage_Core_T4.get(48), + ItemRefer.Fluid_Storage_Core_T4.get(48), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Polybenzimidazole,32), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Polybenzimidazole,32), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Polybenzimidazole,32), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Polybenzimidazole,32), + GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Neutronium,4), + GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Neutronium,4), + GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Neutronium,4), + GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Neutronium,4) + }, + new FluidStack[]{ + Materials.Draconium.getMolten(2304), + Materials.Titanium.getMolten(288), + Materials.Lubricant.getFluid(64000) + }, + ItemRefer.Fluid_Storage_Core_T5.get(1), + 6400, + 3921160 + ); + + GT_Values.RA.addAssemblylineRecipe( + ItemRefer.Fluid_Storage_Core_T5.get(1), + 160000, + new Object[]{ + ItemRefer.Fluid_Storage_Core_T5.get(48), + ItemRefer.Fluid_Storage_Core_T5.get(48), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Polybenzimidazole,32), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Polybenzimidazole,32), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Polybenzimidazole,32), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Polybenzimidazole,32), + GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.DraconiumAwakened,4), + GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.DraconiumAwakened,4), + GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.DraconiumAwakened,4), + GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.DraconiumAwakened,4) + }, + new FluidStack[]{ + Materials.Draconium.getMolten(9216), + Materials.TungstenSteel.getMolten(4608), + Materials.Lubricant.getFluid(128000) + }, + ItemRefer.Fluid_Storage_Core_T6.get(1), + 12800, + 7842320 + ); + + GT_Values.RA.addAssemblerRecipe( + new ItemStack[]{ + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.BlackSteel,1), + ItemRefer.Fluid_Storage_Core_T1.get(10), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Steel,4), + ItemList.Electric_Pump_HV.get(2), + GT_OreDictUnificator.get(OrePrefixes.pipeMedium, Materials.StainlessSteel,4), + GT_Utility.getIntegratedCircuit(5) + }, + Materials.Plastic.getMolten(144), + ItemRefer.YOTTank_Cell_T1.get(1), + 400, + 480 + ); + + GT_Values.RA.addAssemblerRecipe( + new ItemStack[]{ + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.TungstenSteel,1), + ItemRefer.Fluid_Storage_Core_T2.get(10), + WerkstoffLoader.LuVTierMaterial.get(OrePrefixes.plate, 4), + ItemList.Electric_Pump_IV.get(2), + GT_OreDictUnificator.get(OrePrefixes.pipeMedium, Materials.Enderium,4), + GT_Utility.getIntegratedCircuit(5) + }, + Materials.Polytetrafluoroethylene.getMolten(144), + ItemRefer.YOTTank_Cell_T2.get(1), + 1600, + 7680 + ); + + GT_Values.RA.addAssemblylineRecipe( + ItemRefer.YOTTank_Cell_T2.get(1), + 20000, + new Object[]{ + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Naquadah,1), + ItemRefer.Fluid_Storage_Core_T3.get(5), + ItemRefer.Fluid_Storage_Core_T3.get(5), + new Object[]{"circuitUltimate", 4}, + new Object[]{"circuitUltimate", 4}, + ItemList.Electric_Pump_ZPM.get(2), + GT_OreDictUnificator.get(OrePrefixes.pipeMedium, Materials.NiobiumTitanium,4), + GT_OreDictUnificator.get(OrePrefixes.pipeMedium, Materials.NiobiumTitanium,4), + MyMaterial.adamantiumAlloy.get(OrePrefixes.plate, 16), + MyMaterial.adamantiumAlloy.get(OrePrefixes.plate, 16) + }, + new FluidStack[]{ + Materials.Quantium.getMolten(1440), + FluidRegistry.getFluidStack("ic2coolant",8000), + Materials.Lubricant.getFluid(8000) + }, + ItemRefer.YOTTank_Cell_T3.get(1), + 1600, + 122880 + ); + + GT_Values.RA.addAssemblylineRecipe( + ItemRefer.YOTTank_Cell_T3.get(1), + 40000, + new Object[]{ + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Neutronium,1), + ItemRefer.Fluid_Storage_Core_T4.get(5), + ItemRefer.Fluid_Storage_Core_T4.get(5), + new Object[]{"circuitInfinite", 4}, + new Object[]{"circuitInfinite", 4}, + ItemList.Electric_Pump_UHV.get(2), + GT_OreDictUnificator.get(OrePrefixes.pipeMedium, Materials.MysteriousCrystal,4), + GT_OreDictUnificator.get(OrePrefixes.pipeMedium, Materials.MysteriousCrystal,4), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.ElectrumFlux,16), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.ElectrumFlux,16) + }, + new FluidStack[]{ + Materials.Draconium.getMolten(1440), + FluidRegistry.getFluidStack("ic2coolant",16000), + Materials.Lubricant.getFluid(16000) + }, + ItemRefer.YOTTank_Cell_T4.get(1), + 3200, + 1966080 + ); + + GT_Values.RA.addAssemblylineRecipe( + ItemRefer.YOTTank_Cell_T4.get(1), + 80000, + new Object[]{ + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.CosmicNeutronium,1), + ItemRefer.Fluid_Storage_Core_T5.get(5), + ItemRefer.Fluid_Storage_Core_T5.get(5), + new Object[]{"circuitBio", 4}, + new Object[]{"circuitBio", 4}, + ItemList.Electric_Pump_UEV.get(2), + GT_OreDictUnificator.get(OrePrefixes.pipeMedium, Materials.DraconiumAwakened,4), + GT_OreDictUnificator.get(OrePrefixes.pipeMedium, Materials.DraconiumAwakened,4), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Neutronium,16), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Neutronium,16), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Neutronium,16), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Neutronium,16) + }, + new FluidStack[]{ + Materials.Draconium.getMolten(1440), + FluidRegistry.getFluidStack("ic2coolant",16000), + Materials.Lubricant.getFluid(16000) + }, + ItemRefer.YOTTank_Cell_T5.get(1), + 6400, + 3921160 + ); + + GT_Values.RA.addAssemblylineRecipe( + ItemRefer.YOTTank_Cell_T5.get(1), + 160000, + new Object[]{ + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Infinity,1), + ItemRefer.Fluid_Storage_Core_T6.get(5), + ItemRefer.Fluid_Storage_Core_T6.get(5), + ItemList.Field_Generator_UEV.get(4), + ItemList.Field_Generator_UEV.get(4), + ItemList.Electric_Pump_UEV.get(16), + GT_OreDictUnificator.get(OrePrefixes.pipeMedium, Materials.NetherStar,4), + GT_OreDictUnificator.get(OrePrefixes.pipeMedium, Materials.NetherStar,4), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Infinity,16), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Infinity,16), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Infinity,16), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Infinity,16) + }, + new FluidStack[]{ + Materials.DraconiumAwakened.getMolten(1440), + FluidRegistry.getFluidStack("ic2coolant",32000), + Materials.Lubricant.getFluid(32000) + }, + ItemRefer.YOTTank_Cell_T6.get(1), + 12800, + 7842320 + ); + + GT_Values.RA.addUnboxingRecipe( + ItemRefer.YOTTank_Cell_T1.get(1), + ItemRefer.Fluid_Storage_Core_T1.get(10), + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.BlackSteel,1), + 100, + 480 + ); + + GT_Values.RA.addUnboxingRecipe( + ItemRefer.YOTTank_Cell_T2.get(1), + ItemRefer.Fluid_Storage_Core_T2.get(10), + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.TungstenSteel,1), + 100, + 480 + ); + + GT_Values.RA.addUnboxingRecipe( + ItemRefer.YOTTank_Cell_T3.get(1), + ItemRefer.Fluid_Storage_Core_T3.get(10), + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Naquadah,1), + 100, + 480 + ); + + GT_Values.RA.addUnboxingRecipe( + ItemRefer.YOTTank_Cell_T4.get(1), + ItemRefer.Fluid_Storage_Core_T4.get(10), + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Neutronium,1), + 100, + 480 + ); + + GT_Values.RA.addUnboxingRecipe( + ItemRefer.YOTTank_Cell_T5.get(1), + ItemRefer.Fluid_Storage_Core_T5.get(10), + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.CosmicNeutronium,1), + 100, + 480 + ); + + GT_Values.RA.addUnboxingRecipe( + ItemRefer.YOTTank_Cell_T6.get(1), + ItemRefer.Fluid_Storage_Core_T6.get(10), + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Infinity,1), + 100, + 480 + ); + + GT_Values.RA.addAutoclaveRecipe( + WerkstoffLoader.Tiberium.get(OrePrefixes.dust, 1), + MyMaterial.naquadahGas.getFluidOrGas(250), + WerkstoffLoader.Tiberium.get(OrePrefixes.gem, 1), + 10000, + 400, + 480 + ); + + GT_Values.RA.addChemicalBathRecipe( + Materials.Firestone.getGems(1), + MyMaterial.lightNaquadahFuel.getFluidOrGas(144), + WerkstoffLoader.Tiberium.get(OrePrefixes.gem, 1), + null, null, + new int[]{10000}, + 400, + 1980 + ); + + GT_Values.RA.addChemicalBathRecipe( + Materials.Diamond.getGems(1), + MyMaterial.heavyNaquadahFuel.getFluidOrGas(144), + WerkstoffLoader.Tiberium.get(OrePrefixes.gem, 1), + null, null, + new int[]{10000}, + 400, + 1980 + ); + } + + public static void InitLoadRecipe() { + GT_Values.RA.addCentrifugeRecipe( + ItemRefer.Fuel_Rod_U_Depleted_1.get(1), + null, + null, + WerkstoffLoader.Neon.getFluidOrGas(32), + ItemRefer.Advanced_Fuel_Rod.get(1), + Materials.Uranium.getDust(8), + Materials.Plutonium.getDust(2), + Materials.Graphite.getDust(8), + Materials.Uranium235.getDust(1), + Materials.Plutonium241.getDust(1), + new int[]{10000, 10000, 10000, 9000, 5000, 3000}, + 200, + 1920 + ); + + GT_Values.RA.addCentrifugeRecipe( + ItemRefer.Fuel_Rod_U_Depleted_2.get(1), + null, + null, + WerkstoffLoader.Neon.getFluidOrGas(64), + ItemRefer.Advanced_Fuel_Rod.get(2), + Materials.Uranium.getDust(16), + Materials.Plutonium.getDust(4), + Materials.Graphite.getDust(16), + Materials.Uranium235.getDust(2), + Materials.Plutonium241.getDust(2), + new int[]{10000, 10000, 10000, 9000, 5000, 3000}, + 200, + 1920 + ); + + GT_Values.RA.addCentrifugeRecipe( + ItemRefer.Fuel_Rod_U_Depleted_4.get(1), + null, + null, + WerkstoffLoader.Neon.getFluidOrGas(128), + ItemRefer.Advanced_Fuel_Rod.get(4), + Materials.Uranium.getDust(32), + Materials.Plutonium.getDust(8), + Materials.Graphite.getDust(32), + Materials.Uranium235.getDust(4), + Materials.Plutonium241.getDust(4), + new int[]{10000, 10000, 10000, 9000, 5000, 3000}, + 200, + 1920 + ); + + GT_Values.RA.addCentrifugeRecipe( + ItemRefer.Fuel_Rod_Pu_Depleted_1.get(1), + null, + null, + WerkstoffLoader.Krypton.getFluidOrGas(32), + ItemRefer.Advanced_Fuel_Rod.get(1), + Materials.Plutonium.getDust(5), + Materials.Plutonium241.getDust(2), + Materials.Carbon.getDust(2), + Materials.Uranium.getDust(1), + Materials.Uranium235.getDust(1), + new int[]{10000, 10000, 10000, 9000, 5000, 3000}, + 200, + 1920 + ); + + GT_Values.RA.addCentrifugeRecipe( + ItemRefer.Fuel_Rod_Pu_Depleted_2.get(1), + null, + null, + WerkstoffLoader.Krypton.getFluidOrGas(64), + ItemRefer.Advanced_Fuel_Rod.get(2), + Materials.Plutonium.getDust(10), + Materials.Plutonium241.getDust(4), + Materials.Carbon.getDust(4), + Materials.Uranium.getDust(2), + Materials.Uranium235.getDust(2), + new int[]{10000, 10000, 10000, 9000, 5000, 3000}, + 200, + 1920 + ); + + GT_Values.RA.addCentrifugeRecipe( + ItemRefer.Fuel_Rod_Pu_Depleted_4.get(1), + null, + null, + WerkstoffLoader.Krypton.getFluidOrGas(128), + ItemRefer.Advanced_Fuel_Rod.get(4), + Materials.Plutonium.getDust(20), + Materials.Plutonium241.getDust(8), + Materials.Carbon.getDust(8), + Materials.Uranium.getDust(4), + Materials.Uranium235.getDust(4), + new int[]{10000, 10000, 10000, 9000, 5000, 3000}, + 200, + 1920 + ); + } +} diff --git a/src/main/java/goodgenerator/main/GG_Config_Loader.java b/src/main/java/goodgenerator/main/GG_Config_Loader.java new file mode 100644 index 0000000000..a93256c27d --- /dev/null +++ b/src/main/java/goodgenerator/main/GG_Config_Loader.java @@ -0,0 +1,69 @@ +package goodgenerator.main; + +import cpw.mods.fml.relauncher.FMLInjectionData; +import net.minecraftforge.common.config.Configuration; + +import java.io.File; + +public class GG_Config_Loader { + + public static final Configuration GG_Config = new Configuration(new File(new File((File) FMLInjectionData.data()[6], "config"), "GoodGenerator.cfg")); + + public static int LiquidAirConsumptionPerSecond = 2400; + public static int[] NaquadahFuelVoltage = new int[]{ + 12960, 2200, 32400, 220000, + 380000, 9511000, 88540000, 399576000 + }; + public static int[] NaquadahFuelTime = new int[]{ + 100, 500, 150, 20, 20, 80, 100, 160 + }; + public static int[] CoolantEfficiency = new int[]{ + 275, 150, 105 + }; + public static int[] ExcitedLiquidCoe = new int[]{ + 16, 4, 3, 2 + }; + public static boolean EnableNaquadahRework = true; + + public static void run() { + loadCategory(); + loadProperty(); + } + + private static void loadProperty() { + NaquadahFuelVoltage[0] = GG_Config.get("LargeNaquadahReactor", "Uranium Based Liquid Fuel Basic Output Voltage", NaquadahFuelVoltage[0]).getInt(); + NaquadahFuelTime[0] = GG_Config.get("LargeNaquadahReactor", "Uranium Based Liquid Fuel Burning Time", NaquadahFuelTime[0]).getInt(); + NaquadahFuelVoltage[1] = GG_Config.get("LargeNaquadahReactor", "Thorium Based Liquid Fuel Basic Output Voltage", NaquadahFuelVoltage[1]).getInt(); + NaquadahFuelTime[1] = GG_Config.get("LargeNaquadahReactor", "Thorium Based Liquid Fuel Burning Time", NaquadahFuelTime[1]).getInt(); + NaquadahFuelVoltage[2] = GG_Config.get("LargeNaquadahReactor", "Plutonium Based Liquid Fuel Basic Output Voltage", NaquadahFuelVoltage[2]).getInt(); + NaquadahFuelTime[2] = GG_Config.get("LargeNaquadahReactor", "Plutonium Based Liquid Fuel Burning Time", NaquadahFuelTime[2]).getInt(); + NaquadahFuelVoltage[3] = GG_Config.get("LargeNaquadahReactor", "Naquadah Fuel MkI Basic Output Voltage", NaquadahFuelVoltage[3]).getInt(); + NaquadahFuelTime[3] = GG_Config.get("LargeNaquadahReactor", "Naquadah Fuel MkI Burning Time", NaquadahFuelTime[3]).getInt(); + NaquadahFuelVoltage[4] = GG_Config.get("LargeNaquadahReactor", "Naquadah Fuel MkII Basic Output Voltage", NaquadahFuelVoltage[4]).getInt(); + NaquadahFuelTime[4] = GG_Config.get("LargeNaquadahReactor", "Naquadah Fuel MkII Burning Time", NaquadahFuelTime[4]).getInt(); + NaquadahFuelVoltage[5] = GG_Config.get("LargeNaquadahReactor", "Naquadah Fuel MkIII Basic Output Voltage", NaquadahFuelVoltage[5]).getInt(); + NaquadahFuelTime[5] = GG_Config.get("LargeNaquadahReactor", "Naquadah Fuel MkIII Burning Time", NaquadahFuelTime[5]).getInt(); + NaquadahFuelVoltage[6] = GG_Config.get("LargeNaquadahReactor", "Naquadah Fuel MkIV Basic Output Voltage", NaquadahFuelVoltage[6]).getInt(); + NaquadahFuelTime[6] = GG_Config.get("LargeNaquadahReactor", "Naquadah Fuel MkIV Burning Time", NaquadahFuelTime[6]).getInt(); + NaquadahFuelVoltage[7] = GG_Config.get("LargeNaquadahReactor", "Naquadah Fuel MkV Basic Output Voltage", NaquadahFuelVoltage[7]).getInt(); + NaquadahFuelTime[7] = GG_Config.get("LargeNaquadahReactor", "Naquadah Fuel MkV Burning Time", NaquadahFuelTime[7]).getInt(); + CoolantEfficiency[0] = GG_Config.get("LargeNaquadahReactor", "Cryotheum Efficiency", CoolantEfficiency[0]).getInt(); + CoolantEfficiency[1] = GG_Config.get("LargeNaquadahReactor", "Super Coolant Efficiency", CoolantEfficiency[1]).getInt(); + CoolantEfficiency[2] = GG_Config.get("LargeNaquadahReactor", "IC2 Coolant Efficiency", CoolantEfficiency[2]).getInt(); + ExcitedLiquidCoe[0] = GG_Config.get("LargeNaquadahReactor", "Atomic Separation Catalyst Magnification", ExcitedLiquidCoe[0]).getInt(); + ExcitedLiquidCoe[1] = GG_Config.get("LargeNaquadahReactor", "Naquadah Magnification", ExcitedLiquidCoe[1]).getInt(); + ExcitedLiquidCoe[2] = GG_Config.get("LargeNaquadahReactor", "Uranium-235 Magnification", ExcitedLiquidCoe[2]).getInt(); + ExcitedLiquidCoe[3] = GG_Config.get("LargeNaquadahReactor", "Caesium Magnification", ExcitedLiquidCoe[3]).getInt(); + LiquidAirConsumptionPerSecond = Math.max(GG_Config.get("LargeNaquadahReactor", "Liquid Air Consumption Per Second", LiquidAirConsumptionPerSecond).getInt(), 0); + + EnableNaquadahRework = GG_Config.get("NaquadahRework", "Enable Naquadah Rework", EnableNaquadahRework).getBoolean(); + + if (GG_Config.hasChanged()) + GG_Config.save(); + } + + private static void loadCategory() { + GG_Config.addCustomCategoryComment("LargeNaquadahReactor", "Set fuel value, coolant or excited liquid property."); + GG_Config.addCustomCategoryComment("NaquadahRework", "About the naquadah line"); + } +} diff --git a/src/main/java/goodgenerator/main/GoodGenerator.java b/src/main/java/goodgenerator/main/GoodGenerator.java new file mode 100644 index 0000000000..e9cde96edc --- /dev/null +++ b/src/main/java/goodgenerator/main/GoodGenerator.java @@ -0,0 +1,76 @@ +package goodgenerator.main; + +import goodgenerator.common.CommonProxy; +import goodgenerator.crossmod.thaumcraft.Research; +import goodgenerator.items.MyMaterial; +import goodgenerator.items.nuclear.IsotopeMaterialLoader; +import goodgenerator.loader.*; +import goodgenerator.network.MessageOpenNeutronSensorGUI; +import goodgenerator.network.MessageSetNeutronSensorData; +import goodgenerator.tabs.MyTabs; +import com.github.bartimaeusnek.bartworks.API.WerkstoffAdderRegistry; +import cpw.mods.fml.common.Loader; +import cpw.mods.fml.common.SidedProxy; +import cpw.mods.fml.common.event.*; +import cpw.mods.fml.common.network.NetworkRegistry; +import cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper; +import cpw.mods.fml.relauncher.Side; +import net.minecraft.creativetab.CreativeTabs; +import cpw.mods.fml.common.Mod; + +@SuppressWarnings("ALL") +@Mod(modid = GoodGenerator.MOD_ID, version = GoodGenerator.VERSION, + dependencies = "required-after:IC2; " + + "required-after:gregtech; " + + "required-after:bartworks; " + + "required-after:tectech; ") +public final class GoodGenerator { + public static final String MOD_ID = "GoodGenerator"; + public static final String MOD_NAME = "Good Generator"; + public static final String VERSION = "GRADLETOKEN_VERSION"; + + public static final CreativeTabs GG = new MyTabs("Good Generator"); + + @SidedProxy(clientSide = "goodgenerator.client.ClientProxy",serverSide = "goodgenerator.common.CommonProxy") + public static CommonProxy proxy; + public static SimpleNetworkWrapper CHANNEL = NetworkRegistry.INSTANCE.newSimpleChannel(MOD_ID); + + static { + CHANNEL.registerMessage(MessageSetNeutronSensorData.ServerHandler.class, MessageSetNeutronSensorData.class, 0, Side.SERVER); + CHANNEL.registerMessage(MessageOpenNeutronSensorGUI.ClientHandler.class, MessageOpenNeutronSensorGUI.class, 1, Side.CLIENT); + } + + @Mod.Instance(GoodGenerator.MOD_ID) + public static GoodGenerator instance; + + @Mod.EventHandler + public static void preInit(FMLPreInitializationEvent event) { + GG_Config_Loader.run(); + WerkstoffAdderRegistry.addWerkstoffAdder(new MyMaterial()); + WerkstoffAdderRegistry.addWerkstoffAdder(new IsotopeMaterialLoader()); + Loaders.preInitLoad(); + proxy.preInit(event); + } + @Mod.EventHandler + public static void init(FMLInitializationEvent event) { + Loaders.initLoad(); + proxy.init(event); + } + @Mod.EventHandler + public static void postInit(FMLPostInitializationEvent event) { + Loaders.postInitLoad(); + crossMod(); + proxy.postInit(event); + } + @Mod.EventHandler + public void onLoadComplete(FMLLoadCompleteEvent event) { + //NaquadahReworkRecipeLoader.SmallRecipeChange(); + NaquadahReworkRecipeLoader.Remover(); + } + + public static void crossMod() { + if (Loader.isModLoaded("Thaumcraft")) { + Research.addResearch(); + } + } +} \ No newline at end of file diff --git a/src/main/java/goodgenerator/network/MessageMTEBase.java b/src/main/java/goodgenerator/network/MessageMTEBase.java new file mode 100644 index 0000000000..65a86573d6 --- /dev/null +++ b/src/main/java/goodgenerator/network/MessageMTEBase.java @@ -0,0 +1,98 @@ +/* + * MIT License + * + * Copyright (c) 2021 Glease + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package goodgenerator.network; + +import com.github.technus.tectech.TecTech; +import cpw.mods.fml.common.network.simpleimpl.IMessage; +import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; +import cpw.mods.fml.common.network.simpleimpl.MessageContext; +import cpw.mods.fml.relauncher.Side; +import gregtech.api.interfaces.metatileentity.IMetaTileEntity; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import io.netty.buffer.ByteBuf; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import net.minecraftforge.common.DimensionManager; + +public abstract class MessageMTEBase implements IMessage { + protected int w; + protected int x; + protected short y; + protected int z; + + public MessageMTEBase() { + } + + public MessageMTEBase(IGregTechTileEntity tile) { + this.w = tile.getWorld().provider.dimensionId; + this.x = tile.getXCoord(); + this.y = tile.getYCoord(); + this.z = tile.getZCoord(); + } + + @Override + public void fromBytes(ByteBuf buf) { + x = buf.readInt(); + y = buf.readShort(); + z = buf.readInt(); + w = buf.readInt(); + } + + @Override + public void toBytes(ByteBuf buf) { + buf.writeInt(x); + buf.writeShort(y); + buf.writeInt(z); + buf.writeInt(w); + } + + public static abstract class Handler implements IMessageHandler { + protected abstract REPLY onError(REQ message, MessageContext ctx); + + protected abstract REPLY onSuccess(REQ message, MessageContext ctx, IMetaTileEntity mte); + + @Override + public REPLY onMessage(REQ message, MessageContext ctx) { + World world; + if (ctx.side == Side.SERVER) { + world = DimensionManager.getWorld(message.w); + } else { + world = TecTech.proxy.getClientWorld(); + if (world.provider.dimensionId != message.w) + return onError(message, ctx); + } + if (world == null) + return onError(message, ctx); + if (world.blockExists(message.x, message.y, message.z)) { + TileEntity te = world.getTileEntity(message.x, message.y, message.z); + if (te instanceof IGregTechTileEntity && !((IGregTechTileEntity) te).isInvalidTileEntity()) { + IMetaTileEntity mte = ((IGregTechTileEntity) te).getMetaTileEntity(); + if (mte != null) + return onSuccess(message, ctx, mte); + } + } + return onError(message, ctx); + } + } +} diff --git a/src/main/java/goodgenerator/network/MessageOpenNeutronSensorGUI.java b/src/main/java/goodgenerator/network/MessageOpenNeutronSensorGUI.java new file mode 100644 index 0000000000..ec0c40d4e1 --- /dev/null +++ b/src/main/java/goodgenerator/network/MessageOpenNeutronSensorGUI.java @@ -0,0 +1,50 @@ +package goodgenerator.network; + +import goodgenerator.blocks.tileEntity.GTMetaTileEntity.NeutronSensor; +import com.github.technus.tectech.TecTech; +import cpw.mods.fml.common.network.ByteBufUtils; +import cpw.mods.fml.common.network.simpleimpl.IMessage; +import cpw.mods.fml.common.network.simpleimpl.MessageContext; +import gregtech.api.interfaces.metatileentity.IMetaTileEntity; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import io.netty.buffer.ByteBuf; + +public class MessageOpenNeutronSensorGUI extends MessageMTEBase { + protected String data; + + public MessageOpenNeutronSensorGUI() { + } + + public MessageOpenNeutronSensorGUI(IGregTechTileEntity tile, String data) { + super(tile); + this.data = data; + } + + @Override + public void fromBytes(ByteBuf buf) { + super.fromBytes(buf); + data = ByteBufUtils.readUTF8String(buf); + } + + @Override + public void toBytes(ByteBuf buf) { + super.toBytes(buf); + ByteBufUtils.writeUTF8String(buf, data); + } + + public static class ClientHandler extends MessageMTEBase.Handler { + @Override + protected IMessage onError(MessageOpenNeutronSensorGUI message, MessageContext ctx) { + return null; + } + + @Override + protected IMessage onSuccess(MessageOpenNeutronSensorGUI message, MessageContext ctx, IMetaTileEntity mte) { + if (mte instanceof NeutronSensor) { + ((NeutronSensor) mte).setText(message.data); + mte.getBaseMetaTileEntity().openGUI(TecTech.proxy.getPlayer()); + } + return null; + } + } +} diff --git a/src/main/java/goodgenerator/network/MessageSetNeutronSensorData.java b/src/main/java/goodgenerator/network/MessageSetNeutronSensorData.java new file mode 100644 index 0000000000..e802e9477e --- /dev/null +++ b/src/main/java/goodgenerator/network/MessageSetNeutronSensorData.java @@ -0,0 +1,52 @@ +package goodgenerator.network; + +import goodgenerator.blocks.tileEntity.GTMetaTileEntity.NeutronSensor; +import com.github.technus.tectech.TecTech; +import cpw.mods.fml.common.network.ByteBufUtils; +import cpw.mods.fml.common.network.simpleimpl.IMessage; +import cpw.mods.fml.common.network.simpleimpl.MessageContext; +import cpw.mods.fml.relauncher.Side; +import gregtech.api.interfaces.metatileentity.IMetaTileEntity; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import io.netty.buffer.ByteBuf; + +public class MessageSetNeutronSensorData extends MessageMTEBase { + protected String data; + + public MessageSetNeutronSensorData() { + } + + public MessageSetNeutronSensorData(IGregTechTileEntity tile, String data) { + super(tile); + this.data = data; + } + + @Override + public void fromBytes(ByteBuf buf) { + super.fromBytes(buf); + data = ByteBufUtils.readUTF8String(buf); + } + + @Override + public void toBytes(ByteBuf buf) { + super.toBytes(buf); + ByteBufUtils.writeUTF8String(buf, data); + } + + public static class ServerHandler extends MessageMTEBase.Handler { + @Override + protected IMessage onError(MessageSetNeutronSensorData message, MessageContext ctx) { + return null; + } + + @Override + protected IMessage onSuccess(MessageSetNeutronSensorData message, MessageContext ctx, IMetaTileEntity mte) { + if (mte instanceof NeutronSensor) { + ((NeutronSensor) mte).setText(message.data); + if (ctx.side == Side.CLIENT) + mte.getBaseMetaTileEntity().openGUI(TecTech.proxy.getPlayer()); + } + return null; + } + } +} diff --git a/src/main/java/goodgenerator/tabs/MyTabs.java b/src/main/java/goodgenerator/tabs/MyTabs.java new file mode 100644 index 0000000000..52320703d5 --- /dev/null +++ b/src/main/java/goodgenerator/tabs/MyTabs.java @@ -0,0 +1,16 @@ +package goodgenerator.tabs; + +import goodgenerator.loader.Loaders; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; + +public class MyTabs extends CreativeTabs { + public MyTabs(String name){ + super(name); + } + + @Override + public Item getTabIconItem() { + return Loaders.radiationProtectionPlate; + } +} diff --git a/src/main/java/goodgenerator/tabs/NuclearTab.java b/src/main/java/goodgenerator/tabs/NuclearTab.java new file mode 100644 index 0000000000..867e1c9141 --- /dev/null +++ b/src/main/java/goodgenerator/tabs/NuclearTab.java @@ -0,0 +1,16 @@ +package goodgenerator.tabs; + +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; + +public class NuclearTab extends CreativeTabs { + + public NuclearTab() { + super("Nuclear Items"); + } + + @Override + public Item getTabIconItem() { + return null; + } +} diff --git a/src/main/java/goodgenerator/util/CharExchanger.java b/src/main/java/goodgenerator/util/CharExchanger.java new file mode 100644 index 0000000000..e92eea548f --- /dev/null +++ b/src/main/java/goodgenerator/util/CharExchanger.java @@ -0,0 +1,124 @@ +package goodgenerator.util; + +import net.minecraft.util.EnumChatFormatting; + +public class CharExchanger { + + public static final String[] tierName = new String[] { + EnumChatFormatting.RED + "ULV" + EnumChatFormatting.RESET, + EnumChatFormatting.GRAY + "LV" + EnumChatFormatting.RESET, + EnumChatFormatting.AQUA + "MV" + EnumChatFormatting.RESET, + EnumChatFormatting.GOLD + "HV" + EnumChatFormatting.RESET, + EnumChatFormatting.DARK_PURPLE + "EV" + EnumChatFormatting.RESET, + EnumChatFormatting.DARK_BLUE + "IV" + EnumChatFormatting.RESET, + EnumChatFormatting.LIGHT_PURPLE + "LuV" + EnumChatFormatting.RESET, + EnumChatFormatting.WHITE + "ZPM" + EnumChatFormatting.RESET, + EnumChatFormatting.DARK_AQUA + "UV" + EnumChatFormatting.RESET, + EnumChatFormatting.DARK_RED + "UHV" + EnumChatFormatting.RESET, + EnumChatFormatting.GREEN + "UEV" + EnumChatFormatting.RESET, + }; + + public static char shifter(int unicode){ + return (char)unicode; + } + + public static boolean isValidCompareExpressChar(char c) { + return Character.isDigit(c) || c == '<' || c == '>' || c == '=' || c == '!'; + } + + public static boolean isValidCompareExpress(String exp) { + if (exp.length() < 2) return false; + for (char c: exp.toCharArray()) + if (!isValidCompareExpressChar(c)) return false; + char c1 = exp.charAt(0), c2 = exp.charAt(1); + String subExp = "" + c1; + if (!Character.isDigit(c2)) subExp = subExp + c2; + switch (subExp) { + case ">": + case "<": + case ">=": + case "<=": + case "==": + case "!=": + break; + default: return false; + } + if (exp.length() == subExp.length()) return false; + for (int i = subExp.length(); i < exp.length(); i ++) { + if (!Character.isDigit(exp.charAt(i))) return false; + } + return true; + } + + /** + * ">" : 1
+ * "<" : 2
+ * "==" : 13
+ * "!=" : 14
+ * ">=" : 11
+ * "<=" : 12
+ * INVALID : -1 + */ + public static int getOperator(String exp){ + char c1, c2; + int ret; + if (exp.length() < 1) return -1; + c1 = exp.charAt(0); + switch (c1) { + case '>': ret = 1;break; + case '<': ret = 2;break; + case '=': ret = 3;break; + case '!': ret = 4;break; + default: return -1; + } + if (exp.length() > 1) c2 = exp.charAt(1); + else return ret; + if (c2 == '=') { + ret += 10; + } + return ret; + } + + public static boolean compareExpression(String exp, int num) { + int op = getOperator(exp); + String NumExp = exp; + String[] opChar = new String[]{">", "<", "=", "!"}; + if (op == -1) throw new IllegalArgumentException(); + for (String re: opChar) NumExp = NumExp.replace(re, ""); + long num2 = 0; + for (char c: NumExp.toCharArray()) { + num2 *=10; + num2 += c - '0'; + } + switch (op) { + case 1: return num > num2; + case 2: return num < num2; + case 13: return num == num2; + case 14: return num != num2; + case 11: return num >= num2; + case 12: return num <= num2; + default: return false; + } + } + + public static String formatNumber(String exp) { + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < exp.length(); ++i) { + if (Character.isDigit(exp.charAt(i))) { + int cnt = 0, prt = i; + while (i < exp.length() && Character.isDigit(exp.charAt(i))) { + i ++; + cnt ++; + } + while (prt < exp.length() && Character.isDigit(exp.charAt(prt))) { + sb.append(exp.charAt(prt)); + prt ++; + cnt --; + if (cnt % 3 == 0 && cnt != 0) sb.append(" "); + } + } + if (i < exp.length()) sb.append(exp.charAt(i)); + } + return sb.toString(); + } +} diff --git a/src/main/java/goodgenerator/util/CrackRecipeAdder.java b/src/main/java/goodgenerator/util/CrackRecipeAdder.java new file mode 100644 index 0000000000..dacae721e9 --- /dev/null +++ b/src/main/java/goodgenerator/util/CrackRecipeAdder.java @@ -0,0 +1,78 @@ +package goodgenerator.util; + +import com.github.bartimaeusnek.bartworks.system.material.Werkstoff; +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.util.GT_Utility; +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; + +public class CrackRecipeAdder { + static float[] coe1 = {1.25f,1.2f,1.1f,0.9f,0.85f,0.8f,0.75f}; + static float[] coe2 = {1.4f,1.25f,1.2f,0.8f,0.75f,0.7f,0.65f}; + static float[] coe3 = {1.6f,1.5f,1.45f,0.7f,0.6f,0.55f,0.45f}; + public static void crackerAdder(FluidStack inputFluid, FluidStack cracker, FluidStack[] outputFluids, ItemStack outputItem, int num, int EUt, int Duration){ + + String name; + FluidStack[] actOutput = new FluidStack[num]; + name = inputFluid.getFluid().getName().replaceAll(" ",""); + + GT_Values.RA.addCrackingRecipe(1,inputFluid,cracker, FluidRegistry.getFluidStack("lightlycracked"+name,1000),(int)(Duration * 0.8),EUt); + GT_Values.RA.addCrackingRecipe(2,inputFluid,cracker, FluidRegistry.getFluidStack("moderatelycracked"+name,1000),Duration,EUt); + GT_Values.RA.addCrackingRecipe(3,inputFluid,cracker, FluidRegistry.getFluidStack("heavilycracked"+name,1000),(int)(Duration * 1.2),EUt); + + for ( int i = num - 1, j = 0; i >= 0; i --, j ++ ){ + Fluid tmp1 = outputFluids[i].getFluid(); + int tmp2 = (int)(outputFluids[i].amount * coe1[i]); + actOutput[j] = new FluidStack(tmp1, tmp2); + } + + GT_Values.RA.addUniversalDistillationRecipe(FluidRegistry.getFluidStack("lightlycracked"+name,1000),actOutput,outputItem,Duration / 2,EUt / 3); + + for ( int i = num - 1, j = 0; i >= 0; i --, j ++ ){ + Fluid tmp1 = outputFluids[i].getFluid(); + int tmp2 = (int)(outputFluids[i].amount * coe2[i]); + actOutput[j] = new FluidStack(tmp1, tmp2); + } + + GT_Values.RA.addUniversalDistillationRecipe(FluidRegistry.getFluidStack("moderatelycracked"+name,1000),actOutput,outputItem,Duration / 2,EUt / 3); + + for ( int i = num - 1, j = 0; i >= 0; i --, j ++ ){ + Fluid tmp1 = outputFluids[i].getFluid(); + int tmp2 = (int)(outputFluids[i].amount * coe3[i]); + actOutput[j] = new FluidStack(tmp1, tmp2); + } + + GT_Values.RA.addUniversalDistillationRecipe(FluidRegistry.getFluidStack("heavilycracked"+name,1000),actOutput,outputItem,Duration / 2,EUt / 3); + } + + public static void addUniversalCircuitAssemblerRecipe(ItemStack[] inputs, ItemStack output, int solders, int duration, int EUt, boolean isClean) { + GT_Values.RA.addCircuitAssemblerRecipe(inputs, Materials.SolderingAlloy.getMolten(solders), output, duration, EUt, isClean); + GT_Values.RA.addCircuitAssemblerRecipe(inputs, Materials.Tin.getMolten(solders * 2), output, duration, EUt, isClean); + GT_Values.RA.addCircuitAssemblerRecipe(inputs, Materials.Lead.getMolten(solders * 4), output, duration, EUt, isClean); + } + + public static void addUniversalAssemblerRecipe(ItemStack[] inputs, ItemStack output, int solders, int duration, int EUt, boolean isClean) { + GT_Values.RA.addAssemblerRecipe(inputs, Materials.SolderingAlloy.getMolten(solders), output, duration, EUt, isClean); + GT_Values.RA.addAssemblerRecipe(inputs, Materials.Tin.getMolten(solders * 2), output, duration, EUt, isClean); + GT_Values.RA.addAssemblerRecipe(inputs, Materials.Lead.getMolten(solders * 4), output, duration, EUt, isClean); + } + + public static void reAddBlastRecipe(Werkstoff material, int duration, int EUt, int level, boolean gas) { + ItemStack input = material.get(OrePrefixes.dust, 1); + ItemStack output = level > 1750 ? material.get(OrePrefixes.ingotHot, 1) : material.get(OrePrefixes.ingot, 1); + if (gas) { + GT_Values.RA.addBlastRecipe(input, GT_Utility.getIntegratedCircuit(11), Materials.Helium.getGas(1000), null, output, null, duration, EUt, level); + } else { + GT_Values.RA.addBlastRecipe(input, GT_Utility.getIntegratedCircuit(1), null, null, output, null, duration, EUt, level); + } + } + + public static FluidStack copyFluidWithAmount(FluidStack fluid, int amount) { + if (fluid == null || amount <= 0) return null; + return new FluidStack(fluid.getFluid(), amount); + } +} diff --git a/src/main/java/goodgenerator/util/DescTextLocalization.java b/src/main/java/goodgenerator/util/DescTextLocalization.java new file mode 100644 index 0000000000..755397a864 --- /dev/null +++ b/src/main/java/goodgenerator/util/DescTextLocalization.java @@ -0,0 +1,17 @@ +package goodgenerator.util; + +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.StatCollector; + +public class DescTextLocalization { + + public static final String BLUE_PRINT_INFO = "Follow the" + EnumChatFormatting.BLUE + " Structure" + EnumChatFormatting.DARK_BLUE + "Lib" + EnumChatFormatting.GRAY + " hologram projector to build the main structure."; + + public static String[] addText(String preFix, int length){ + String[] text = new String[length]; + for (int i = 0; i < length; i ++) { + text[i] = StatCollector.translateToLocal(preFix + "." + i); + } + return text; + } +} diff --git a/src/main/java/goodgenerator/util/ItemRefer.java b/src/main/java/goodgenerator/util/ItemRefer.java new file mode 100644 index 0000000000..5ffec9e7eb --- /dev/null +++ b/src/main/java/goodgenerator/util/ItemRefer.java @@ -0,0 +1,152 @@ +package goodgenerator.util; + +import gregtech.api.util.GT_Utility; +import net.minecraft.block.Block; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +import static goodgenerator.loader.FuelRodLoader.*; +import static goodgenerator.loader.Loaders.*; + +public final class ItemRefer { + + public static ItemRefer NULL = getItemStack(_null_); + + public static ItemRefer Radiation_Protection_Plate = getItemStack(radiationProtectionPlate); + public static ItemRefer Wrapped_Uranium_Ingot = getItemStack(wrappedUraniumIngot); + public static ItemRefer High_Density_Uranium_Nugget = getItemStack(highDensityUraniumNugget); + public static ItemRefer High_Density_Uranium = getItemStack(highDensityUranium); + public static ItemRefer Wrapped_Thorium_Ingot = getItemStack(wrappedThoriumIngot); + public static ItemRefer High_Density_Thorium_Nugget = getItemStack(highDensityThoriumNugget); + public static ItemRefer High_Density_Thorium = getItemStack(highDensityThorium); + public static ItemRefer Wrapped_Plutonium_Ingot = getItemStack(wrappedPlutoniumIngot); + public static ItemRefer High_Density_Plutonium_Nugget = getItemStack(highDensityPlutoniumNugget); + public static ItemRefer High_Density_Plutonium = getItemStack(highDensityPlutonium); + public static ItemRefer Raw_Atomic_Separation_Catalyst = getItemStack(rawAtomicSeparationCatalyst); + public static ItemRefer Advanced_Radiation_Protection_Plate = getItemStack(advancedRadiationProtectionPlate); + public static ItemRefer Aluminum_Nitride_Dust = getItemStack(aluminumNitride); + public static ItemRefer Special_Ceramics_Dust = getItemStack(specialCeramics); + public static ItemRefer Special_Ceramics_Plate = getItemStack(specialCeramicsPlate); + public static ItemRefer Radioactive_Waste = getItemStack(radioactiveWaste); + public static ItemRefer Plastic_Case = getItemStack(plasticCase); + public static ItemRefer Quartz_Wafer = getItemStack(quartzWafer); + public static ItemRefer Micro_Heater = getItemStack(microHeater); + public static ItemRefer Quartz_Crystal_Resonator = getItemStack(quartzCrystalResonator); + public static ItemRefer Inverter = getItemStack(inverter); + public static ItemRefer Neutron_Source = getItemStack(neutronSource); + public static ItemRefer Naquadah_Mass = getItemStack(naquadahMass); + public static ItemRefer Enriched_Naquadah_Mass = getItemStack(enrichedNaquadahMass); + public static ItemRefer Naquadria_Mass = getItemStack(naquadriaMass); + public static ItemRefer Advanced_Fuel_Rod = getItemStack(advancedFuelRod); + public static ItemRefer Fuel_Rod_U_Depleted_1 = getItemStack(rodCompressedUraniumDepleted); + public static ItemRefer Fuel_Rod_U_Depleted_2 = getItemStack(rodCompressedUraniumDepleted_2); + public static ItemRefer Fuel_Rod_U_Depleted_4 = getItemStack(rodCompressedUraniumDepleted_4); + public static ItemRefer Fuel_Rod_U_1 = getItemStack(rodCompressedUranium); + public static ItemRefer Fuel_Rod_U_2 = getItemStack(rodCompressedUranium_2); + public static ItemRefer Fuel_Rod_U_4 = getItemStack(rodCompressedUranium_4); + public static ItemRefer Fuel_Rod_Pu_Depleted_1 = getItemStack(rodCompressedPlutoniumDepleted); + public static ItemRefer Fuel_Rod_Pu_Depleted_2 = getItemStack(rodCompressedPlutoniumDepleted_2); + public static ItemRefer Fuel_Rod_Pu_Depleted_4 = getItemStack(rodCompressedPlutoniumDepleted_4); + public static ItemRefer Fuel_Rod_Pu_1 = getItemStack(rodCompressedPlutonium); + public static ItemRefer Fuel_Rod_Pu_2 = getItemStack(rodCompressedPlutonium_2); + public static ItemRefer Fuel_Rod_Pu_4 = getItemStack(rodCompressedPlutonium_4); + public static ItemRefer Fluid_Storage_Core_T1 = getItemStack(fluidCore, 0); + public static ItemRefer Fluid_Storage_Core_T2 = getItemStack(fluidCore, 1); + public static ItemRefer Fluid_Storage_Core_T3 = getItemStack(fluidCore, 2); + public static ItemRefer Fluid_Storage_Core_T4 = getItemStack(fluidCore, 3); + public static ItemRefer Fluid_Storage_Core_T5 = getItemStack(fluidCore, 4); + public static ItemRefer Fluid_Storage_Core_T6 = getItemStack(fluidCore, 5); + public static ItemRefer Essentia_Upgrade_Empty = getItemStack(upgradeEssentia, 0); + public static ItemRefer Essentia_Upgrade_Air = getItemStack(upgradeEssentia, 1); + public static ItemRefer Essentia_Upgrade_Thermal = getItemStack(upgradeEssentia, 2); + public static ItemRefer Essentia_Upgrade_Unstable = getItemStack(upgradeEssentia, 3); + public static ItemRefer Essentia_Upgrade_Victus = getItemStack(upgradeEssentia, 4); + public static ItemRefer Essentia_Upgrade_Tainted = getItemStack(upgradeEssentia, 5); + public static ItemRefer Essentia_Upgrade_Mechanics = getItemStack(upgradeEssentia, 6); + public static ItemRefer Essentia_Upgrade_Spirit = getItemStack(upgradeEssentia, 7); + public static ItemRefer Essentia_Upgrade_Radiation = getItemStack(upgradeEssentia, 8); + public static ItemRefer Essentia_Upgrade_Electric = getItemStack(upgradeEssentia, 9); + + public static ItemRefer Field_Restriction_Casing = getItemStack(MAR_Casing); + public static ItemRefer Naquadah_Fuel_Refinery_Casing = getItemStack(FRF_Casings); + public static ItemRefer Field_Restriction_Coil_T1 = getItemStack(FRF_Coil_1); + public static ItemRefer Field_Restriction_Coil_T2 = getItemStack(FRF_Coil_2); + public static ItemRefer Field_Restriction_Coil_T3 = getItemStack(FRF_Coil_3); + public static ItemRefer Radiation_Proof_Steel_Frame_Box = getItemStack(radiationProtectionSteelFrame); + public static ItemRefer Field_Restriction_Glass = getItemStack(fieldRestrictingGlass); + public static ItemRefer Raw_Cylinder = getItemStack(rawCylinder); + public static ItemRefer Titanium_Plated_Cylinder = getItemStack(titaniumPlatedCylinder); + public static ItemRefer Magic_Casing = getItemStack(magicCasing); + public static ItemRefer Speeding_Pipe = getItemStack(speedingPipe); + public static ItemRefer Essentia_Cell_T1 = getItemStack(essentiaCell, 0); + public static ItemRefer Essentia_Cell_T2 = getItemStack(essentiaCell, 1); + public static ItemRefer Essentia_Cell_T3 = getItemStack(essentiaCell, 2); + public static ItemRefer Essentia_Cell_T4 = getItemStack(essentiaCell, 3); + public static ItemRefer Essentia_Hatch = getItemStack(essentiaHatch); + public static ItemRefer YOTTank_Casing = getItemStack(yottaFluidTankCasing); + public static ItemRefer YOTTank_Cell_T1 = getItemStack(yottaFluidTankCell, 0); + public static ItemRefer YOTTank_Cell_T2 = getItemStack(yottaFluidTankCell, 1); + public static ItemRefer YOTTank_Cell_T3 = getItemStack(yottaFluidTankCell, 2); + public static ItemRefer YOTTank_Cell_T4 = getItemStack(yottaFluidTankCell, 3); + public static ItemRefer YOTTank_Cell_T5 = getItemStack(yottaFluidTankCell, 4); + public static ItemRefer YOTTank_Cell_T6 = getItemStack(yottaFluidTankCell, 5); + public static ItemRefer YOTTank_Cell_T7 = getItemStack(yottaFluidTankCell, 6); + public static ItemRefer YOTTank_Cell_T8 = getItemStack(yottaFluidTankCell, 7); + public static ItemRefer YOTTank_Cell_T9 = getItemStack(yottaFluidTankCell, 8); + public static ItemRefer YOTTank_Cell_T10 = getItemStack(yottaFluidTankCell, 9); + + public static ItemRefer Large_Naquadah_Reactor = getItemStack(MAR); + public static ItemRefer Naquadah_Fuel_Refinery = getItemStack(FRF); + public static ItemRefer Universal_Chemical_Fuel_Engine = getItemStack(UCFE); + public static ItemRefer Large_Essentia_Generator = getItemStack(LEG); + public static ItemRefer YOTTank = getItemStack(YFT); + + private Item mItem = null; + private Block mBlock = null; + private ItemStack mItemStack = null; + private int mMeta = 0; + + private static ItemRefer getItemStack(ItemStack itemStack) { + if (itemStack == null) return NULL; + return new ItemRefer(itemStack); + } + + private static ItemRefer getItemStack(Item item) { + return getItemStack(item, 0); + } + + private static ItemRefer getItemStack(Item item, int meta) { + if (item == null) return NULL; + return new ItemRefer(item, meta); + } + + private static ItemRefer getItemStack(Block block) { + return getItemStack(block, 0); + } + + private static ItemRefer getItemStack(Block block, int meta) { + if (block == null) return NULL; + return new ItemRefer(block, meta); + } + + private ItemRefer(Item item, int meta) { + mItem = item; + mMeta = meta; + } + + private ItemRefer(Block block, int meta) { + mBlock = block; + mMeta = meta; + } + + private ItemRefer(ItemStack itemStack) { + mItemStack = itemStack; + } + + public ItemStack get(int amount){ + if (mItem != null ) return new ItemStack(mItem, amount, mMeta); + if (mBlock != null) return new ItemStack(mBlock, amount, mMeta); + if (mItemStack != null) return GT_Utility.copyAmount(amount, mItemStack); + return new ItemStack(_null_, amount, 0); + } +} diff --git a/src/main/java/goodgenerator/util/MaterialFix.java b/src/main/java/goodgenerator/util/MaterialFix.java new file mode 100644 index 0000000000..ad3468dd98 --- /dev/null +++ b/src/main/java/goodgenerator/util/MaterialFix.java @@ -0,0 +1,50 @@ +package goodgenerator.util; + +import com.github.bartimaeusnek.bartworks.system.material.Werkstoff; +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.util.GT_OreDictUnificator; + +public class MaterialFix { + public static void MaterialFluidExtractionFix(Werkstoff material){ + if (material.hasItemType(OrePrefixes.ingot)) + GT_Values.RA.addFluidExtractionRecipe(material.get(OrePrefixes.ingot),null,material.getMolten(144),0,32,8); + if (material.hasItemType(OrePrefixes.plate)) + GT_Values.RA.addFluidExtractionRecipe(material.get(OrePrefixes.plate),null,material.getMolten(144),0,32,8); + if (material.hasItemType(OrePrefixes.gearGtSmall)) + GT_Values.RA.addFluidExtractionRecipe(material.get(OrePrefixes.gearGtSmall),null,material.getMolten(144),0,32,8); + if (material.hasItemType(OrePrefixes.stickLong)) + GT_Values.RA.addFluidExtractionRecipe(material.get(OrePrefixes.stickLong),null,material.getMolten(144),0,32,8); + if (material.hasItemType(OrePrefixes.spring)) + GT_Values.RA.addFluidExtractionRecipe(material.get(OrePrefixes.spring),null,material.getMolten(144),0,32,8); + if (material.hasItemType(OrePrefixes.stick)) + GT_Values.RA.addFluidExtractionRecipe(material.get(OrePrefixes.stick),null,material.getMolten(72),0,16,8); + if (material.hasItemType(OrePrefixes.itemCasing)) + GT_Values.RA.addFluidExtractionRecipe(material.get(OrePrefixes.itemCasing),null,material.getMolten(72),0,16,8); + if (material.hasItemType(OrePrefixes.wireGt01)) + GT_Values.RA.addFluidExtractionRecipe(material.get(OrePrefixes.wireGt01),null,material.getMolten(72),0,16,8); + if (material.hasItemType(OrePrefixes.cableGt01)) + GT_Values.RA.addFluidExtractionRecipe(material.get(OrePrefixes.cableGt01), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Ash,2),material.getMolten(72),10000,16,8); + if (material.hasItemType(OrePrefixes.foil)) + GT_Values.RA.addFluidExtractionRecipe(material.get(OrePrefixes.foil),null,material.getMolten(36),0,8,8); + if (material.hasItemType(OrePrefixes.springSmall)) + GT_Values.RA.addFluidExtractionRecipe(material.get(OrePrefixes.springSmall),null,material.getMolten(36),0,8,8); + if (material.hasItemType(OrePrefixes.ring)) + GT_Values.RA.addFluidExtractionRecipe(material.get(OrePrefixes.ring),null,material.getMolten(36),0,8,8); + if (material.hasItemType(OrePrefixes.bolt)) + GT_Values.RA.addFluidExtractionRecipe(material.get(OrePrefixes.bolt),null,material.getMolten(18),0,4,8); + if (material.hasItemType(OrePrefixes.wireFine)) + GT_Values.RA.addFluidExtractionRecipe(material.get(OrePrefixes.wireFine),null,material.getMolten(18),0,4,8); + if (material.hasItemType(OrePrefixes.round)) + GT_Values.RA.addFluidExtractionRecipe(material.get(OrePrefixes.round),null,material.getMolten(16),0,4,8); + if (material.hasItemType(OrePrefixes.screw)) + GT_Values.RA.addFluidExtractionRecipe(material.get(OrePrefixes.screw),null,material.getMolten(16),0,4,8); + if (material.hasItemType(OrePrefixes.nugget)) + GT_Values.RA.addFluidExtractionRecipe(material.get(OrePrefixes.nugget),null,material.getMolten(16),0,4,8); + if (material.hasItemType(OrePrefixes.rotor)) + GT_Values.RA.addFluidExtractionRecipe(material.get(OrePrefixes.rotor),null,material.getMolten(612),0,136,8); + if (material.hasItemType(OrePrefixes.gearGt)) + GT_Values.RA.addFluidExtractionRecipe(material.get(OrePrefixes.gearGt),null,material.getMolten(576),0,128,8); + } +} diff --git a/src/main/java/goodgenerator/util/MyRecipeAdder.java b/src/main/java/goodgenerator/util/MyRecipeAdder.java new file mode 100644 index 0000000000..056d220275 --- /dev/null +++ b/src/main/java/goodgenerator/util/MyRecipeAdder.java @@ -0,0 +1,100 @@ +package goodgenerator.util; + +import gregtech.api.util.GT_Recipe; +import net.minecraft.item.ItemStack; +import net.minecraft.util.StatCollector; +import net.minecraftforge.fluids.FluidStack; + +import java.util.Collection; +import java.util.HashSet; + +public class MyRecipeAdder { + + public static final MyRecipeAdder instance = new MyRecipeAdder(); + + public final liquidMentalFuelMapper NqGFuels = new liquidMentalFuelMapper( + new HashSet<>(50), + "gg.recipe.naquadah_reactor", + StatCollector.translateToLocal("tile.recipe.naquadah_reactor"), + null, + "goodgenerator:textures/gui/naquadah_reactor", + 0,0,0,1,1, + StatCollector.translateToLocal("value.naquadah_reactor") + " ", + 1, + " EU/t", + false, + true + ); + + public final NaqFuelRefineMapper FRF = new NaqFuelRefineMapper( + new HashSet<>(50), + "gg.recipe.naquadah_fuel_refine_factory", + StatCollector.translateToLocal("tile.naquadah_fuel_refine_factory"), + null, + "gregtech:textures/gui/basicmachines/FusionReactor", + 6,0, 0, 1, 1, + StatCollector.translateToLocal("value.naquadah_fuel_refine_factory.0") + " ", + 1, + StatCollector.translateToLocal("value.naquadah_fuel_refine_factory.1"), + true, + true + ); + + public final NeutronActivatorMapper NA = new NeutronActivatorMapper( + new HashSet<>(150), + "gg.recipe.neutron_activator", + StatCollector.translateToLocal("tile.neutron_activator"), + null, + "goodgenerator:textures/gui/neutron_activator", + 6, 6, 0, 0, 0, + null, 0, null, + false, + false + ); + + public static class liquidMentalFuelMapper extends GT_Recipe.GT_Recipe_Map_Fuel{ + public liquidMentalFuelMapper(Collection aRecipeList, String aUnlocalizedName, String aLocalName, String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, int aMinimalInputItems, int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, int aNEISpecialValueMultiplier, String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, boolean aNEIAllowed){ + super(aRecipeList, aUnlocalizedName, aLocalName, aNEIName, aNEIGUIPath, aUsualInputCount, aUsualOutputCount, aMinimalInputItems, aMinimalInputFluids, aAmperage, aNEISpecialValuePre, aNEISpecialValueMultiplier, aNEISpecialValuePost, aShowVoltageAmperageInNEI, aNEIAllowed); + } + + public void addFuel(FluidStack input, FluidStack output, int EUt, int ticks){ + super.addRecipe(true, null, null, null, new FluidStack[]{input}, new FluidStack[]{output}, ticks, 0, EUt); + } + } + + public void addLiquidMentalFuel(FluidStack input, FluidStack output, int EUt, int ticks){ + NqGFuels.addFuel(input, output, EUt, ticks); + } + + public static class NaqFuelRefineMapper extends GT_Recipe.GT_Recipe_Map{ + public NaqFuelRefineMapper(Collection aRecipeList, String aUnlocalizedName, String aLocalName, String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, int aMinimalInputItems, int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, int aNEISpecialValueMultiplier, String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, boolean aNEIAllowed){ + super(aRecipeList, aUnlocalizedName, aLocalName, aNEIName, aNEIGUIPath, aUsualInputCount, aUsualOutputCount, aMinimalInputItems, aMinimalInputFluids, aAmperage, aNEISpecialValuePre, aNEISpecialValueMultiplier, aNEISpecialValuePost, aShowVoltageAmperageInNEI, aNEIAllowed); + } + + public void addNaqFuelRefineRecipe(FluidStack[] input1, ItemStack[] input2, FluidStack output, int EUt, int ticks, int tier){ + super.addRecipe(false, input2, null, null, input1, new FluidStack[]{output}, ticks, EUt, tier); + } + } + + public void addNaquadahFuelRefineRecipe(FluidStack[] input1, ItemStack[] input2, FluidStack output, int EUt, int ticks, int tier){ + FRF.addNaqFuelRefineRecipe(input1, input2, output, EUt, ticks, tier); + } + + public static class NeutronActivatorMapper extends GT_Recipe.GT_Recipe_Map{ + public NeutronActivatorMapper(Collection aRecipeList, String aUnlocalizedName, String aLocalName, String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, int aMinimalInputItems, int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, int aNEISpecialValueMultiplier, String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, boolean aNEIAllowed){ + super(aRecipeList, aUnlocalizedName, aLocalName, aNEIName, aNEIGUIPath, aUsualInputCount, aUsualOutputCount, aMinimalInputItems, aMinimalInputFluids, aAmperage, aNEISpecialValuePre, aNEISpecialValueMultiplier, aNEISpecialValuePost, aShowVoltageAmperageInNEI, aNEIAllowed); + } + + public void addNARecipe(FluidStack[] input1, ItemStack[] input2, FluidStack[] output1, ItemStack[] output2, int ticks, int special) { + super.addRecipe(false, input2, output2, null, input1, output1, ticks, 0, special); + } + } + + public void addNeutronActivatorRecipe(FluidStack[] input1, ItemStack[] input2, FluidStack[] output1, ItemStack[] output2, int ticks, int maxNKE, int minNKE) { + if (maxNKE <= 0) maxNKE = 1; + if (maxNKE >= 1100) maxNKE = 1100; + if (minNKE < 0) minNKE = 0; + if (minNKE >= maxNKE) minNKE = maxNKE - 1; + NA.addNARecipe(input1, input2, output1, output2, ticks, maxNKE * 10000 + minNKE); + } +} diff --git a/src/main/java/goodgenerator/util/StructureHelper.java b/src/main/java/goodgenerator/util/StructureHelper.java new file mode 100644 index 0000000000..e1f5b69981 --- /dev/null +++ b/src/main/java/goodgenerator/util/StructureHelper.java @@ -0,0 +1,112 @@ +package goodgenerator.util; + +import com.gtnewhorizon.structurelib.StructureLibAPI; +import com.gtnewhorizon.structurelib.structure.IStructureElement; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.metatileentity.BaseMetaPipeEntity; +import gregtech.api.metatileentity.implementations.GT_MetaPipeEntity_Frame; +import gregtech.api.util.GT_OreDictUnificator; +import net.minecraft.block.Block; +import net.minecraft.init.Items; +import net.minecraft.item.ItemBlock; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; + +import java.util.Arrays; +import java.util.function.BiConsumer; +import java.util.function.BiPredicate; +import java.util.function.Function; + +public class StructureHelper { + + public static IStructureElement addFrame(Materials aMaterials) { + return new IStructureElement() { + + private IIcon[] mIcons; + + @Override + public boolean check(T t, World world, int x, int y, int z) { + TileEntity tBlock = world.getTileEntity(x, y, z); + if (tBlock instanceof BaseMetaPipeEntity) { + BaseMetaPipeEntity tFrame = (BaseMetaPipeEntity) tBlock; + if (tFrame.isInvalidTileEntity()) return false; + if (tFrame.getMetaTileEntity() instanceof GT_MetaPipeEntity_Frame) { + return ((GT_MetaPipeEntity_Frame) tFrame.getMetaTileEntity()).mMaterial == aMaterials; + } + } + return false; + } + + @Override + public boolean spawnHint(T t, World world, int x, int y, int z, ItemStack trigger) { + if (mIcons == null) { + mIcons = new IIcon[6]; + Arrays.fill(mIcons, aMaterials.mIconSet.mTextures[OrePrefixes.frameGt.mTextureIndex].getIcon()); + } + StructureLibAPI.hintParticleTinted(world, x, y, z, mIcons, aMaterials.mRGBa); + return true; + } + + @Override + public boolean placeBlock(T t, World world, int x, int y, int z, ItemStack trigger) { + ItemStack tFrame = GT_OreDictUnificator.get(OrePrefixes.frameGt, aMaterials, 1); + if (tFrame.getItem() instanceof ItemBlock) { + ItemBlock tFrameStackItem = (ItemBlock) tFrame.getItem(); + return tFrameStackItem.placeBlockAt(tFrame, null, world, x, y, z, 6, 0, 0, 0, Items.feather.getDamage(tFrame)); + } + return false; + } + }; + } + + //Only support to use meta to tier + public static IStructureElement addTieredBlock(Block aBlock, BiConsumer aSetTheFuckingMeta, Function aGetTheFuckingMeta, int maxMeta) { + return addTieredBlock(aBlock, (t, i) -> { + aSetTheFuckingMeta.accept(t, i); + return true; + }, aGetTheFuckingMeta, maxMeta + ); + } + + public static IStructureElement addTieredBlock(Block aBlock, BiPredicate aSetTheFuckingMeta, Function aGetTheFuckingMeta, int maxMeta) { + + return new IStructureElement() { + @Override + public boolean check(T t, World world, int x, int y, int z) { + Block tBlock = world.getBlock(x, y, z); + if (aBlock == tBlock) { + Integer currentMeta = aGetTheFuckingMeta.apply(t); + int newMeta = tBlock.getDamageValue(world, x, y, z) + 1; + if (newMeta > maxMeta) return false; + if (currentMeta == 0) { + return aSetTheFuckingMeta.test(t, newMeta); + } else { + return currentMeta == newMeta; + } + } + return false; + } + + @Override + public boolean spawnHint(T t, World world, int x, int y, int z, ItemStack trigger) { + StructureLibAPI.hintParticle(world, x, y, z, aBlock, getMeta(trigger)); + return true; + } + + @Override + public boolean placeBlock(T t, World world, int x, int y, int z, ItemStack trigger) { + return world.setBlock(x, y, z, aBlock, getMeta(trigger), 3); + } + + private int getMeta(ItemStack trigger) { + int meta = trigger.stackSize; + if (meta <= 0) meta = 0; + if (meta >= maxMeta) meta = maxMeta - 1; + return meta; + } + }; + } +} diff --git a/src/main/resources/assets/goodgenerator/lang/en_US.lang b/src/main/resources/assets/goodgenerator/lang/en_US.lang index 4c1f478cd1..e8a511828e 100644 --- a/src/main/resources/assets/goodgenerator/lang/en_US.lang +++ b/src/main/resources/assets/goodgenerator/lang/en_US.lang @@ -180,6 +180,7 @@ tile.combustionPromotor.name=Combustion Promoter #Tab Name itemGroup.Good Generator=Good Generator +itemGroup.Nuclear Items=[GG] Multi Nuclear Reactor #Scanner Info scanner.info.FRF=Coil Tier: diff --git a/src/main/resources/assets/gregtech/textures/items/icons/isotope/stable1.png b/src/main/resources/assets/gregtech/textures/items/icons/isotope/stable1.png new file mode 100644 index 0000000000..b31aa41fd0 Binary files /dev/null and b/src/main/resources/assets/gregtech/textures/items/icons/isotope/stable1.png differ diff --git a/src/main/resources/assets/gregtech/textures/items/icons/isotope/stable1tiny.png b/src/main/resources/assets/gregtech/textures/items/icons/isotope/stable1tiny.png new file mode 100644 index 0000000000..89d09ea4f4 Binary files /dev/null and b/src/main/resources/assets/gregtech/textures/items/icons/isotope/stable1tiny.png differ diff --git a/src/main/resources/assets/gregtech/textures/items/icons/isotope/stable2.png b/src/main/resources/assets/gregtech/textures/items/icons/isotope/stable2.png new file mode 100644 index 0000000000..8ea085b73c Binary files /dev/null and b/src/main/resources/assets/gregtech/textures/items/icons/isotope/stable2.png differ diff --git a/src/main/resources/assets/gregtech/textures/items/icons/isotope/stable2tiny.png b/src/main/resources/assets/gregtech/textures/items/icons/isotope/stable2tiny.png new file mode 100644 index 0000000000..b75fc700e4 Binary files /dev/null and b/src/main/resources/assets/gregtech/textures/items/icons/isotope/stable2tiny.png differ diff --git a/src/main/resources/assets/gregtech/textures/items/icons/isotope/unstable1.png b/src/main/resources/assets/gregtech/textures/items/icons/isotope/unstable1.png new file mode 100644 index 0000000000..695afd0b8a Binary files /dev/null and b/src/main/resources/assets/gregtech/textures/items/icons/isotope/unstable1.png differ diff --git a/src/main/resources/assets/gregtech/textures/items/icons/isotope/unstable1tiny.png b/src/main/resources/assets/gregtech/textures/items/icons/isotope/unstable1tiny.png new file mode 100644 index 0000000000..543ee6db73 Binary files /dev/null and b/src/main/resources/assets/gregtech/textures/items/icons/isotope/unstable1tiny.png differ diff --git a/src/main/resources/assets/gregtech/textures/items/icons/isotope/unstable2.png b/src/main/resources/assets/gregtech/textures/items/icons/isotope/unstable2.png new file mode 100644 index 0000000000..81d7b350cd Binary files /dev/null and b/src/main/resources/assets/gregtech/textures/items/icons/isotope/unstable2.png differ diff --git a/src/main/resources/assets/gregtech/textures/items/icons/isotope/unstable2tiny.png b/src/main/resources/assets/gregtech/textures/items/icons/isotope/unstable2tiny.png new file mode 100644 index 0000000000..d0291d81eb Binary files /dev/null and b/src/main/resources/assets/gregtech/textures/items/icons/isotope/unstable2tiny.png differ diff --git a/src/main/resources/assets/gregtech/textures/items/icons/isotope/unstable3.png b/src/main/resources/assets/gregtech/textures/items/icons/isotope/unstable3.png new file mode 100644 index 0000000000..c2377efe04 Binary files /dev/null and b/src/main/resources/assets/gregtech/textures/items/icons/isotope/unstable3.png differ diff --git a/src/main/resources/assets/gregtech/textures/items/icons/isotope/unstable3tiny.png b/src/main/resources/assets/gregtech/textures/items/icons/isotope/unstable3tiny.png new file mode 100644 index 0000000000..e7b65c0895 Binary files /dev/null and b/src/main/resources/assets/gregtech/textures/items/icons/isotope/unstable3tiny.png differ diff --git a/src/main/resources/assets/gregtech/textures/items/icons/isotope/unstable4.png b/src/main/resources/assets/gregtech/textures/items/icons/isotope/unstable4.png new file mode 100644 index 0000000000..184819817d Binary files /dev/null and b/src/main/resources/assets/gregtech/textures/items/icons/isotope/unstable4.png differ diff --git a/src/main/resources/assets/gregtech/textures/items/icons/isotope/unstable4tiny.png b/src/main/resources/assets/gregtech/textures/items/icons/isotope/unstable4tiny.png new file mode 100644 index 0000000000..0699e4ef39 Binary files /dev/null and b/src/main/resources/assets/gregtech/textures/items/icons/isotope/unstable4tiny.png differ -- cgit