From 112b14f67aacc3cd2a10f2b11dcd3e1d691d8369 Mon Sep 17 00:00:00 2001 From: GlodBlock <1356392126@qq.com> Date: Wed, 26 Jan 2022 22:54:09 +0800 Subject: [PATCH] add recipe for XHE, SC turbine and new pipes --- .../blocks/regularBlock/ITextureBlock.java | 13 +++ .../blocks/regularBlock/TurbineCasing.java | 4 +- .../client/render/BlockRenderHandler.java | 10 +- .../java/goodgenerator/items/MyMaterial.java | 41 +++++++ .../java/goodgenerator/loader/Loaders.java | 3 + .../goodgenerator/loader/RecipeLoader_02.java | 101 ++++++++++++++++++ .../goodgenerator/util/CrackRecipeAdder.java | 23 ++++ 7 files changed, 189 insertions(+), 6 deletions(-) create mode 100644 src/main/java/goodgenerator/blocks/regularBlock/ITextureBlock.java diff --git a/src/main/java/goodgenerator/blocks/regularBlock/ITextureBlock.java b/src/main/java/goodgenerator/blocks/regularBlock/ITextureBlock.java new file mode 100644 index 00000000..d889c0f6 --- /dev/null +++ b/src/main/java/goodgenerator/blocks/regularBlock/ITextureBlock.java @@ -0,0 +1,13 @@ +package goodgenerator.blocks.regularBlock; + +import gregtech.api.interfaces.ITexture; +import net.minecraft.block.Block; +import net.minecraft.world.IBlockAccess; + +public interface ITextureBlock { + + ITexture[] getTexture(Block aBlock, byte aSide); + + ITexture[] getTexture(Block aBlock, byte aSide, IBlockAccess aWorld, int xCoord, int yCoord, int zCoord); + +} diff --git a/src/main/java/goodgenerator/blocks/regularBlock/TurbineCasing.java b/src/main/java/goodgenerator/blocks/regularBlock/TurbineCasing.java index 83876622..f0fc14f2 100644 --- a/src/main/java/goodgenerator/blocks/regularBlock/TurbineCasing.java +++ b/src/main/java/goodgenerator/blocks/regularBlock/TurbineCasing.java @@ -12,7 +12,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.world.IBlockAccess; -public class TurbineCasing extends Casing { +public class TurbineCasing extends Casing implements ITextureBlock{ public static IIconContainer[][] turbineShape = new IIconContainer[3][9]; public IIconContainer base; @@ -47,12 +47,14 @@ public ITexture[] getTurbineCasing(int iconIndex, boolean active, boolean hasTur }; } + @Override public ITexture[] getTexture(Block aBlock, byte aSide) { return new ITexture[] { TextureFactory.of(base) }; } + @Override public ITexture[] getTexture(Block aBlock, byte aSide, IBlockAccess aWorld, int xCoord, int yCoord, int zCoord) { int tInvertLeftRightMod = aSide % 2 * 2 - 1; switch (aSide / 2) { diff --git a/src/main/java/goodgenerator/client/render/BlockRenderHandler.java b/src/main/java/goodgenerator/client/render/BlockRenderHandler.java index 3d705baa..d8f903cd 100644 --- a/src/main/java/goodgenerator/client/render/BlockRenderHandler.java +++ b/src/main/java/goodgenerator/client/render/BlockRenderHandler.java @@ -2,7 +2,7 @@ import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; import cpw.mods.fml.client.registry.RenderingRegistry; -import goodgenerator.blocks.regularBlock.TurbineCasing; +import goodgenerator.blocks.regularBlock.ITextureBlock; import gregtech.GT_Mod; import net.minecraft.block.Block; import net.minecraft.client.Minecraft; @@ -36,8 +36,8 @@ public void renderInventoryBlock(Block aBlock, int metadata, int modelId, Render GL11.glRotatef(90.0F, 0.0F, 1.0F, 0.0F); GL11.glTranslatef(-0.5F, -0.5F, -0.5F); - if (aBlock instanceof TurbineCasing) { - TurbineCasing tc = (TurbineCasing) aBlock; + if (aBlock instanceof ITextureBlock) { + ITextureBlock tc = (ITextureBlock) aBlock; aBlock.setBlockBoundsForItemRender(); aRenderer.setRenderBoundsFromBlock(aBlock); Tessellator.instance.startDrawingQuads(); @@ -77,10 +77,10 @@ public void renderInventoryBlock(Block aBlock, int metadata, int modelId, Render public boolean renderWorldBlock(IBlockAccess aWorld, int aX, int aY, int aZ, Block aBlock, int aModelID, RenderBlocks aRenderer) { aRenderer.enableAO = Minecraft.isAmbientOcclusionEnabled() && GT_Mod.gregtechproxy.mRenderTileAmbientOcclusion; aRenderer.useInventoryTint = false; - if (aBlock instanceof TurbineCasing) { + if (aBlock instanceof ITextureBlock) { aBlock.setBlockBounds(blockMin, blockMin, blockMin, blockMax, blockMax, blockMax); aRenderer.setRenderBoundsFromBlock(aBlock); - TurbineCasing tc = (TurbineCasing) aBlock; + ITextureBlock tc = (ITextureBlock) aBlock; renderNegativeYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tc.getTexture(aBlock, (byte) DOWN.ordinal(), aWorld, aX, aY, aZ), true); renderPositiveYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tc.getTexture(aBlock, (byte) UP.ordinal(), aWorld, aX, aY, aZ), true); renderNegativeZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tc.getTexture(aBlock, (byte) NORTH.ordinal(), aWorld, aX, aY, aZ), true); diff --git a/src/main/java/goodgenerator/items/MyMaterial.java b/src/main/java/goodgenerator/items/MyMaterial.java index 13dd19a2..f73247dd 100644 --- a/src/main/java/goodgenerator/items/MyMaterial.java +++ b/src/main/java/goodgenerator/items/MyMaterial.java @@ -1114,6 +1114,47 @@ public class MyMaterial implements Runnable { TextureSet.SET_FLUID ); + public static final Werkstoff marM200 = new Werkstoff( + new short[]{0x51,0x51,0x51}, + "MAR-M200 Steel", + new Werkstoff.Stats().setCentrifuge(true).setBlastFurnace(true).setMeltingPoint(5000), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().onlyDust().addMolten().addMetalItems().addCraftingMetalWorkingItems().addSimpleMetalWorkingItems().addMultipleIngotMetalWorkingItems().addMixerRecipes((short) 7), + OffsetID + 95, + TextureSet.SET_SHINY, + new Pair<>(Niobium, 2), + new Pair<>(Chrome, 9), + new Pair<>(Aluminium, 5), + new Pair<>(Titanium, 2), + new Pair<>(Cobalt, 10), + new Pair<>(Tungsten, 13), + new Pair<>(Nickel, 18) + ); + + public static final Werkstoff marCeM200 = new Werkstoff( + new short[]{0x38,0x30,0x30}, + "MAR-Ce-M200 Steel", + new Werkstoff.Stats().setCentrifuge(true).setBlastFurnace(true).setMeltingPoint(5000).setMass(1200).setProtons(1000).setSpeedOverride(150F).setDurOverride(204800), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().onlyDust().addMolten().addMetalItems().addCraftingMetalWorkingItems().addSimpleMetalWorkingItems().addMultipleIngotMetalWorkingItems(), + OffsetID + 96, + TextureSet.SET_METALLIC, + new Pair<>(marM200, 18), + new Pair<>(Cerium, 1) + ); + + public static final Werkstoff lithiumChloride = new Werkstoff( + new short[]{0xb7,0xe2,0xce}, + "Lithium Chloride", + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().onlyDust().addMolten().addMetalItems().enforceUnification(), + OffsetID + 97, + TextureSet.SET_DULL, + new Pair<>(Lithium, 1), + new Pair<>(Chlorine, 1) + ); + @Override public void run() { } } diff --git a/src/main/java/goodgenerator/loader/Loaders.java b/src/main/java/goodgenerator/loader/Loaders.java index 92ea70a5..f88cfdd4 100644 --- a/src/main/java/goodgenerator/loader/Loaders.java +++ b/src/main/java/goodgenerator/loader/Loaders.java @@ -14,10 +14,12 @@ import goodgenerator.crossmod.thaumcraft.LargeEssentiaEnergyData; import goodgenerator.items.MyItemBlocks; import goodgenerator.items.MyItems; +import goodgenerator.items.MyMaterial; import goodgenerator.items.RadioactiveItem; import goodgenerator.main.GoodGenerator; import cpw.mods.fml.common.Loader; import cpw.mods.fml.common.registry.GameRegistry; +import goodgenerator.util.CrackRecipeAdder; import gregtech.api.enums.GT_Values; import gregtech.api.enums.Textures; import gregtech.api.interfaces.ITexture; @@ -116,6 +118,7 @@ public static void GTMetaTileRegister(){ Loaders.XHE = new ExtremeHeatExchanger(IDOffset + 16, "ExtremeHeatExchanger", "Extreme Heat Exchanger").getStackForm(1L); Loaders.Generator_Diesel[0] = new DieselGenerator(1113, "basicgenerator.diesel.tier.04", "Turbo Supercharging Combustion Generator", 4).getStackForm(1L); Loaders.Generator_Diesel[1] = new DieselGenerator(1114, "basicgenerator.diesel.tier.05", "Ultimate Chemical Energy Releaser", 5).getStackForm(1L); + CrackRecipeAdder.registerPipe(30995, MyMaterial.incoloy903, 15000, 8000, true); } public static void Register() { diff --git a/src/main/java/goodgenerator/loader/RecipeLoader_02.java b/src/main/java/goodgenerator/loader/RecipeLoader_02.java index 3a46f5ee..18adc9d1 100644 --- a/src/main/java/goodgenerator/loader/RecipeLoader_02.java +++ b/src/main/java/goodgenerator/loader/RecipeLoader_02.java @@ -11,6 +11,7 @@ import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.util.*; +import ic2.core.Ic2Items; import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; @@ -40,6 +41,8 @@ public static void RecipeLoad(){ CrackRecipeAdder.reAddBlastRecipe(MyMaterial.zircaloy4, 513, 480, 2800, false); CrackRecipeAdder.reAddBlastRecipe(MyMaterial.incoloy903, 2400, 1920, 3700, true); CrackRecipeAdder.reAddBlastRecipe(MyMaterial.adamantiumAlloy, 2500, 1920, 5500, true); + CrackRecipeAdder.reAddBlastRecipe(MyMaterial.marM200, 200, 7680, 5000, true); + CrackRecipeAdder.reAddBlastRecipe(MyMaterial.marM200, 220, 7680, 5000, false); GT_Values.RA.addAssemblerRecipe( new ItemStack[] { @@ -904,6 +907,104 @@ public static void RecipeLoad(){ FluidRegistry.getFluidStack("supercriticalsteam", 32000), 8000 ); + + GT_Values.RA.addChemicalBathRecipe( + GT_OreDictUnificator.get(OrePrefixes.crushedPurified, Materials.Lepidolite, 1), + Materials.HydrochloricAcid.getFluid(1000), + Materials.RockSalt.getDust(1), + MyMaterial.lithiumChloride.get(OrePrefixes.dust, 3), + Materials.Cryolite.getDust(4), + new int[]{8000, 8000, 8000}, + 140, + 120 + ); + + GT_Values.RA.addBlastRecipe( + MyMaterial.marM200.get(OrePrefixes.ingot, 18), + Materials.Cerium.getIngots(1), + MyMaterial.lithiumChloride.getMolten(144), + null, + MyMaterial.marCeM200.get(OrePrefixes.ingotHot, 19), + null, + 5700, + 1920, + 4500 + ); + + GT_ModHandler.addCraftingRecipe( + ItemRefer.SC_Turbine_Casing.get(1), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.REVERSIBLE, + new Object[] { + "PhP","GCG","PwP", + 'G', MyMaterial.marM200.get(OrePrefixes.gearGt, 1), + 'C', ItemList.Casing_Turbine.get(1), + 'P', MyMaterial.marCeM200.get(OrePrefixes.plate, 1), + } + ); + + GT_Values.RA.addAssemblerRecipe( + new ItemStack[] { + MyMaterial.marM200.get(OrePrefixes.gearGt, 2), + MyMaterial.marCeM200.get(OrePrefixes.plate, 4), + ItemList.Casing_Turbine.get(1) + }, + null, + ItemRefer.SC_Turbine_Casing.get(1), + 300, + 480 + ); + + GT_ModHandler.addCraftingRecipe( + ItemRefer.SC_Fluid_Turbine.get(1), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.REVERSIBLE, + new Object[] { + "NPN","GHG","IPI", + 'N', "circuitMaster", + 'P', MyMaterial.marM200.get(OrePrefixes.plate, 1), + 'H', ItemList.Hull_IV.get(1), + 'G', MyMaterial.marCeM200.get(OrePrefixes.gearGt, 1), + 'I', MyMaterial.incoloy903.get(OrePrefixes.pipeLarge, 1) + } + ); + + GT_Values.RA.addAssemblerRecipe( + new ItemStack[] { + MyMaterial.marM200.get(OrePrefixes.plate, 2), + MyMaterial.marCeM200.get(OrePrefixes.gearGt, 2), + MyMaterial.incoloy903.get(OrePrefixes.pipeLarge, 2), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Master, 2), + ItemList.Hull_IV.get(1) + }, + null, + ItemRefer.SC_Fluid_Turbine.get(1), + 300, + 480 + ); + + GT_Values.RA.addAssemblerRecipe( + new ItemStack[] { + MyMaterial.incoloy903.get(OrePrefixes.plate, 4), + MyMaterial.marCeM200.get(OrePrefixes.plate, 4), + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.NiobiumTitanium, 1), + GT_Utility.getIntegratedCircuit(8) + }, + null, + ItemRefer.Pressure_Resistant_Wall.get(1), + 1000, + 480 + ); + + GT_ModHandler.addCraftingRecipe( + ItemRefer.Extreme_Heat_Exchanger.get(1), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.REVERSIBLE, + new Object[] { + "EPE","PHP","SPS", + 'P', GT_OreDictUnificator.get(OrePrefixes.pipeMedium, Materials.TungstenSteel, 1), + 'H', ItemList.Hull_IV.get(1), + 'S', MyMaterial.marM200.get(OrePrefixes.plate, 1), + 'E', Ic2Items.reactorHeatSwitchDiamond + } + ); } public static void InitLoadRecipe() { diff --git a/src/main/java/goodgenerator/util/CrackRecipeAdder.java b/src/main/java/goodgenerator/util/CrackRecipeAdder.java index dacae721..bae288af 100644 --- a/src/main/java/goodgenerator/util/CrackRecipeAdder.java +++ b/src/main/java/goodgenerator/util/CrackRecipeAdder.java @@ -2,8 +2,11 @@ import com.github.bartimaeusnek.bartworks.system.material.Werkstoff; import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; +import gregtech.api.metatileentity.implementations.GT_MetaPipeEntity_Fluid; +import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.Fluid; @@ -75,4 +78,24 @@ public static FluidStack copyFluidWithAmount(FluidStack fluid, int amount) { if (fluid == null || amount <= 0) return null; return new FluidStack(fluid.getFluid(), amount); } + + public static void registerPipe(int ID, Werkstoff material, int flow, int temp, boolean gas) { + String unName = material.getDefaultName().replace(" ", "_"); + String Name = material.getDefaultName(); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeTiny.get(material.getBridgeMaterial()), new GT_MetaPipeEntity_Fluid(ID, "GT_Pipe_" + unName + "_Tiny", "Tiny " + Name + " Fluid Pipe", 0.25F, material.getBridgeMaterial(), flow / 6, temp, gas).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeSmall.get(material.getBridgeMaterial()), new GT_MetaPipeEntity_Fluid(ID + 1, "GT_Pipe_" + unName + "_Small", "Small " + Name + " Fluid Pipe", 0.375F, material.getBridgeMaterial(), flow / 3, temp, gas).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeMedium.get(material.getBridgeMaterial()), new GT_MetaPipeEntity_Fluid(ID + 2, "GT_Pipe_" + unName, Name + " Fluid Pipe", 0.5F, material.getBridgeMaterial(), flow, temp, gas).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeLarge.get(material.getBridgeMaterial()), new GT_MetaPipeEntity_Fluid(ID + 3, "GT_Pipe_" + unName + "_Large", "Large " + Name + " Fluid Pipe", 0.75F, material.getBridgeMaterial(), flow * 2, temp, gas).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeHuge.get(material.getBridgeMaterial()), new GT_MetaPipeEntity_Fluid(ID + 4, "GT_Pipe_" + unName + "_Huge", "Huge " + Name + " Fluid Pipe", 0.875F, material.getBridgeMaterial(), flow * 4, temp, gas).getStackForm(1L)); + GT_Values.RA.addExtruderRecipe(material.get(OrePrefixes.ingot, 1), ItemList.Shape_Extruder_Pipe_Tiny.get(0), material.get(OrePrefixes.pipeTiny, 2), (int) material.getStats().getMass(), 120); + GT_Values.RA.addExtruderRecipe(material.get(OrePrefixes.ingot, 1), ItemList.Shape_Extruder_Pipe_Small.get(0), material.get(OrePrefixes.pipeSmall, 1), (int) material.getStats().getMass() * 2, 120); + GT_Values.RA.addExtruderRecipe(material.get(OrePrefixes.ingot, 3), ItemList.Shape_Extruder_Pipe_Medium.get(0), material.get(OrePrefixes.pipeMedium, 1), (int) material.getStats().getMass() * 6, 120); + GT_Values.RA.addExtruderRecipe(material.get(OrePrefixes.ingot, 6), ItemList.Shape_Extruder_Pipe_Large.get(0), material.get(OrePrefixes.pipeLarge, 1), (int) material.getStats().getMass() * 12, 120); + GT_Values.RA.addExtruderRecipe(material.get(OrePrefixes.ingot, 12), ItemList.Shape_Extruder_Pipe_Huge.get(0), material.get(OrePrefixes.pipeHuge, 1), (int) material.getStats().getMass() * 24, 120); + GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Pipe_Tiny.get(0), material.getMolten(72), material.get(OrePrefixes.pipeTiny, 1), (int) material.getStats().getMass(), 30); + GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Pipe_Small.get(0), material.getMolten(144), material.get(OrePrefixes.pipeSmall, 1), (int) material.getStats().getMass() * 2, 30); + GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Pipe_Medium.get(0), material.getMolten(432), material.get(OrePrefixes.pipeMedium, 1), (int) material.getStats().getMass() * 6, 30); + GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Pipe_Large.get(0), material.getMolten(864), material.get(OrePrefixes.pipeLarge, 1), (int) material.getStats().getMass() * 12, 30); + GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Pipe_Huge.get(0), material.getMolten(1728), material.get(OrePrefixes.pipeHuge, 1), (int) material.getStats().getMass() * 24, 30); + } }