diff options
author | unknown <gtandemmodding@gmail.com> | 2022-01-26 17:39:11 +1100 |
---|---|---|
committer | unknown <gtandemmodding@gmail.com> | 2022-01-26 17:39:11 +1100 |
commit | d456346fed210198c59cf301d5d26bdc8fc88fab (patch) | |
tree | ec220b96a39e818ee2f6db5a6d1227c40c88fa2a | |
parent | 3b4e3b33b630e676b44aa8ec16baf7dd11138d5c (diff) | |
download | GT5-Unofficial-d456346fed210198c59cf301d5d26bdc8fc88fab.tar.gz GT5-Unofficial-d456346fed210198c59cf301d5d26bdc8fc88fab.tar.bz2 GT5-Unofficial-d456346fed210198c59cf301d5d26bdc8fc88fab.zip |
Further add to recipes
5 files changed, 390 insertions, 11 deletions
diff --git a/src/main/java/com/elisis/gtnhlanth/common/register/ItemList.java b/src/main/java/com/elisis/gtnhlanth/common/register/ItemList.java index 9f70c70d78..9725b6329e 100644 --- a/src/main/java/com/elisis/gtnhlanth/common/register/ItemList.java +++ b/src/main/java/com/elisis/gtnhlanth/common/register/ItemList.java @@ -1,16 +1,19 @@ package com.elisis.gtnhlanth.common.register; import com.elisis.gtnhlanth.common.tileentity.Digester; +import com.elisis.gtnhlanth.common.tileentity.DissolutionTank; import net.minecraft.item.ItemStack; public final class ItemList { public static ItemStack DIGESTER; + public static ItemStack DISSOLUTION_TANK; public static void register() { ItemList.DIGESTER = new Digester(10500, "Digester", "Digester").getStackForm(1L); + //ItemList.DISSOLUTION_TANK = new DissolutionTank(10501, "Dissolution Tank", "Dissolution Tank").getStackForm(1L); } diff --git a/src/main/java/com/elisis/gtnhlanth/common/register/WerkstoffMaterialPool.java b/src/main/java/com/elisis/gtnhlanth/common/register/WerkstoffMaterialPool.java index dca342fded..746bd86555 100644 --- a/src/main/java/com/elisis/gtnhlanth/common/register/WerkstoffMaterialPool.java +++ b/src/main/java/com/elisis/gtnhlanth/common/register/WerkstoffMaterialPool.java @@ -393,6 +393,7 @@ public class WerkstoffMaterialPool implements Runnable { public static final Werkstoff MonaziteResidue = new Werkstoff(
new short[] {64, 69, 62},
+ "Monazite Residue",
subscriptNumbers("??ZrHfTh??"),
new Werkstoff.Stats(),
Werkstoff.Types.MIXTURE,
@@ -401,6 +402,62 @@ public class WerkstoffMaterialPool implements Runnable { TextureSet.SET_DULL
);
+ public static final Werkstoff AmmoniumNitrate = new Werkstoff(
+ new short[] {255, 255, 255},
+ "Ammonium Nitrate",
+ subscriptNumbers("NH4NO3"),
+ new Werkstoff.Stats(),
+ Werkstoff.Types.COMPOUND,
+ new Werkstoff.GenerationFeatures().disable().addCells(),
+ offsetID + 36,
+ TextureSet.SET_FLUID
+ );
+
+ public static final Werkstoff ThoriumPhosphateCake = new Werkstoff(
+ new short[] {188, 143, 143},
+ "Thorium-Phosphate Cake",
+ subscriptNumbers("??ThP??"),
+ new Werkstoff.Stats(),
+ Werkstoff.Types.MIXTURE,
+ new Werkstoff.GenerationFeatures().disable().onlyDust(),
+ offsetID + 37,
+ TextureSet.SET_DULL
+ );
+
+ public static final Werkstoff ThoriumPhosphateConcentrate = new Werkstoff(
+ new short[] {217, 144, 88},
+ "Thorium-Phosphate Concentrate",
+ subscriptNumbers("??ThP??"),
+ new Werkstoff.Stats(),
+ Werkstoff.Types.MIXTURE,
+ new Werkstoff.GenerationFeatures().disable().onlyDust(),
+ offsetID + 38,
+ TextureSet.SET_DULL
+ );
+
+ public static final Werkstoff UraniumFiltrate = new Werkstoff(
+ new short[] {190, 240, 94},
+ "UraniumFiltrate",
+ subscriptNumbers("??U??"),
+ new Werkstoff.Stats(),
+ Werkstoff.Types.MIXTURE,
+ new Werkstoff.GenerationFeatures().disable().onlyDust(),
+ offsetID + 39,
+ TextureSet.SET_DULL
+ );
+
+ public static final Werkstoff NeutralizedUraniumFiltrate = new Werkstoff(
+ new short[] {217, 120, 88},
+ "Neutralized Uranium Filtrate",
+ subscriptNumbers("??U??"),
+ new Werkstoff.Stats(),
+ Werkstoff.Types.MIXTURE,
+ new Werkstoff.GenerationFeatures().disable().onlyDust(),
+ offsetID + 40,
+ TextureSet.SET_DULL
+ );
+
+
diff --git a/src/main/java/com/elisis/gtnhlanth/common/tileentity/DissolutionTank.java b/src/main/java/com/elisis/gtnhlanth/common/tileentity/DissolutionTank.java index e69de29bb2..b10938344e 100644 --- a/src/main/java/com/elisis/gtnhlanth/common/tileentity/DissolutionTank.java +++ b/src/main/java/com/elisis/gtnhlanth/common/tileentity/DissolutionTank.java @@ -0,0 +1,233 @@ +package com.elisis.gtnhlanth.common.tileentity; + +import static com.elisis.gtnhlanth.util.DescTextLocalization.BLUEPRINT_INFO; +import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofBlock; +import static gregtech.api.util.GT_StructureUtility.ofHatchAdder; + +import java.util.ArrayList; + +import org.lwjgl.input.Keyboard; + +import com.elisis.gtnhlanth.loader.RecipeAdder; +import com.elisis.gtnhlanth.util.DescTextLocalization; +import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_GUIContainer_MultiMachineEM; +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 static com.elisis.gtnhlanth.util.DescTextLocalization.BLUEPRINT_INFO; +import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofBlock; +import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofChain; +import static com.gtnewhorizon.structurelib.structure.StructureUtility.transpose; +import static gregtech.api.util.GT_StructureUtility.ofCoil; +import static gregtech.api.util.GT_StructureUtility.ofHatchAdder; + +import gregtech.api.GregTech_API; +import gregtech.api.enums.Materials; +import gregtech.api.interfaces.metatileentity.IMetaTileEntity; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.util.GT_Multiblock_Tooltip_Builder; +import gregtech.api.util.GT_Recipe; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.FluidStack; + +public class DissolutionTank extends GT_MetaTileEntity_MultiblockBase_EM implements IConstructable { + + @SuppressWarnings("deprecation") + private IStructureDefinition<DissolutionTank> multiDefinition = StructureDefinition.<DissolutionTank>builder() + .addShape(mName, transpose(new String[][] { + {"-sss-", "sssss", "sssss", "sssss", "-sss-"}, + {"sgggs", "g---g", "g---g", "g---g", "sgggs"}, + {"sgggs", "g---g", "g---g", "g---g", "sgggs"}, + {"ss~ss", "shhhs", "shhhs", "shhhs", "sssss"}, + {"s---s", "-----", "-----", "-----", "s---s"} + })) + .addElement('s', ofChain( + ofHatchAdder(DissolutionTank::addInputToMachineList, 48, 1), + ofHatchAdder(DissolutionTank::addOutputToMachineList, 48, 1), + ofHatchAdder(DissolutionTank::addEnergyInputToMachineList, 48, 1), + ofHatchAdder(DissolutionTank::addMaintenanceToMachineList, 48, 1), + ofHatchAdder(DissolutionTank::addMufflerToMachineList, 48, 1), + ofBlock(GregTech_API.sBlockCasings4, 1) + )) + .addElement('h', ofBlock(GregTech_API.sBlockCasings1, 11)) + //.addElement('g', ofBlock()) + + + .build(); + + + + + + + + + + public DissolutionTank(String name) { + super(name); + } + + public DissolutionTank(int id, String name, String nameRegional) { + super(id, name, nameRegional); + } + + + @Override + public IStructureDefinition<DissolutionTank> getStructure_EM(){ + return null; + } + + @Override + public boolean checkMachine_EM(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { + return structureCheck_EM(mName, 3, 3, 0); + } + + @Override + public boolean isCorrectMachinePart(ItemStack aStack) { + return true; + } + + @Override + public boolean checkRecipe_EM(ItemStack itemStack) { + + ArrayList<FluidStack> tFluidInputs = this.getStoredFluids(); + FluidStack[] tFluidInputArray = tFluidInputs.toArray(new FluidStack[0]); + ArrayList<ItemStack> tItems = this.getStoredInputs(); + long tVoltage = this.getMaxInputVoltage(); + + + + //Collection<GT_Recipe> tRecipes = RecipeAdder.instance.DigesterRecipes.mRecipeList; + GT_Recipe tRecipe = RecipeAdder.instance.DissolutionTankRecipes.findRecipe( + this.getBaseMetaTileEntity(), + this.doTickProfilingInThisTick, + tVoltage, + this.mOutputFluids, + this.mInventory + ); + + + + if (tRecipe == null) + return false; + + + if (tRecipe.isRecipeInputEqual(true, tFluidInputArray, mInventory[1])) { + + this.mEfficiency = (10000 - (this.getIdealStatus() - this.getRepairStatus()) * 1000); + this.mEfficiencyIncrease = 10000; + this.calculateOverclockedNessMulti(tRecipe.mEUt, tRecipe.mDuration, 1, tVoltage); + + if (mMaxProgresstime == Integer.MAX_VALUE - 1 && this.mEUt == Integer.MAX_VALUE - 1) + return false; + + if (this.mEUt > 0) + this.mEUt = (-this.mEUt); + + FluidStack majorGenericFluid = tRecipe.mFluidInputs[0]; + FluidStack minorGenericFluid = tRecipe.mFluidOutputs[1]; + + FluidStack majorInput = null; + FluidStack minorInput = null; + + FluidStack fluidInputOne = tFluidInputs.get(0); + FluidStack fluidInputTwo = tFluidInputs.get(1); + + majorInput = (fluidInputOne.getUnlocalizedName() == majorGenericFluid.getUnlocalizedName() ? fluidInputOne : fluidInputTwo); + if (fluidInputOne.getUnlocalizedName() == majorGenericFluid.getUnlocalizedName()) { + if (fluidInputTwo.getUnlocalizedName() == minorGenericFluid.getUnlocalizedName()) { + majorInput = fluidInputOne; + minorInput = fluidInputTwo; + } + else + return false; // No valid other input + + } else if (fluidInputTwo.getUnlocalizedName() == majorGenericFluid.getUnlocalizedName()) { + if (fluidInputOne.getUnlocalizedName() == minorGenericFluid.getUnlocalizedName()) { + majorInput = fluidInputTwo; + minorInput = fluidInputOne; + } + else + return false; + + } + else + return false; + + /* + for (FluidStack fluid : tFluidInputs) { + String name = fluid.getUnlocalizedName(); + if (name == majorGenericFluid.getUnlocalizedName()) + majorInput = fluid; + + else if (name == minorGenericFluid.getUnlocalizedName()) + minorInput = fluid; + } + */ + if (majorInput == null || minorInput == null) + return false; + + if ((majorInput.amount / tRecipe.mSpecialValue) != (minorInput.amount)) + return false; + + this.mOutputFluids = new FluidStack[] { + tRecipe.getFluidOutput(0) + }; + return true; + } + return false; + } + + @Override + public int getMaxEfficiency(ItemStack itemStack) { + return 10000; + } + + @Override + public Object getClientGUI(int id, InventoryPlayer playerInventory, IGregTechTileEntity metaTileEntity) { + return new GT_GUIContainer_MultiMachineEM(playerInventory, metaTileEntity, getLocalName(), "DissolutionTank.png"); + } + + @Override + public String[] getDescription() { + final GT_Multiblock_Tooltip_Builder tt = new GT_Multiblock_Tooltip_Builder(); + tt.addMachineType("Dissolution Tank") + .addInfo("Controller block for the Dissolution Tank") + .addInfo(BLUEPRINT_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") + .toolTipFinisher("GTNH: Lanthanides"); + if (!Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { + return tt.getInformation(); + } else { + return tt.getStructureInformation(); + } + } + + @Override + public IMetaTileEntity newMetaEntity(IGregTechTileEntity arg0) { + return new DissolutionTank(this.mName); + } + + @Override + public void construct(ItemStack itemStack, boolean b) { + structureBuild_EM(mName, 3, 3, 0, b, itemStack); + + } + + @Override + public String[] getStructureDescription(ItemStack arg0) { + return DescTextLocalization.addText("DissolutionTank.hint", 11); + } + + + +} diff --git a/src/main/java/com/elisis/gtnhlanth/loader/RecipeAdder.java b/src/main/java/com/elisis/gtnhlanth/loader/RecipeAdder.java index fa17bc4bdd..c9c7b8a81a 100644 --- a/src/main/java/com/elisis/gtnhlanth/loader/RecipeAdder.java +++ b/src/main/java/com/elisis/gtnhlanth/loader/RecipeAdder.java @@ -81,9 +81,9 @@ public class RecipeAdder { aNEISpecialValuePost, aShowVoltageAmperageInNEI, aNEIAllowed); } - - public void addDissolutionTankRecipe(FluidStack[] fluidInputs, ItemStack[] itemInputs, FluidStack fluidOutput, ItemStack[] itemOutputs, int EUt, int ticks) { - super.addRecipe(false, itemInputs, itemOutputs, null, fluidInputs, new FluidStack[] {fluidOutput}, ticks, EUt, ticks); + /** Higher part input fluid first, always **/ + public void addDissolutionTankRecipe(FluidStack[] fluidInputs, ItemStack[] itemInputs, FluidStack fluidOutput, ItemStack[] itemOutputs, int EUt, int ticks, int ratio) { + super.addRecipe(false, itemInputs, itemOutputs, null, fluidInputs, new FluidStack[] {fluidOutput}, ticks, EUt, ratio); } } diff --git a/src/main/java/com/elisis/gtnhlanth/loader/RecipeLoader.java b/src/main/java/com/elisis/gtnhlanth/loader/RecipeLoader.java index 2700154bee..4db956eb0f 100644 --- a/src/main/java/com/elisis/gtnhlanth/loader/RecipeLoader.java +++ b/src/main/java/com/elisis/gtnhlanth/loader/RecipeLoader.java @@ -136,6 +136,16 @@ public class RecipeLoader { 1920 ); + //Ammonium Nitrate + GT_Values.RA.addChemicalRecipe( + GT_Utility.getIntegratedCircuit(12), + Materials.NitricAcid.getCells(1), + Materials.Ammonium.getFluid(1000), + null, + null, + 400 + ); + } @@ -248,27 +258,30 @@ public class RecipeLoader { new ItemStack[] {GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Monazite, 1)}, WerkstoffMaterialPool.MuddyRareEarthSolution.getFluidOrGas(200), new ItemStack[] { - WerkstoffMaterialPool.HafniaZirconiaBlend.get(OrePrefixes.dustTiny, 4), - Materials.SiliconDioxide.getDustSmall(2), - WerkstoffLoader.Thorianit.get(OrePrefixes.dust, 1) + Materials.SiliconDioxide.getDustSmall(2) }, 1920, 200, 2700 ); - /*RecipeAdder.instance.DissolutionTankRecipes.addDissolutionTankRecipe( + RecipeAdder.instance.DissolutionTankRecipes.addDissolutionTankRecipe( new FluidStack[] { Materials.Water.getFluid(10000), WerkstoffMaterialPool.MuddyRareEarthSolution.getFluidOrGas(1000) }, null, WerkstoffMaterialPool.DilutedRareEarthMud.getFluidOrGas(11000), - null, + new ItemStack[] { + WerkstoffMaterialPool.HafniaZirconiaBlend.get(OrePrefixes.dustTiny, 4), + WerkstoffLoader.Thorianit.get(OrePrefixes.dust, 1), + Materials.Monazite.getDustTiny(2) + }, 480, - 900 + 900, + 0 ); - */ + GT_Recipe.GT_Recipe_Map.sSifterRecipes.addRecipe( false, null, @@ -281,7 +294,7 @@ public class RecipeLoader { }, null, new int[] { - 7500, 1000, 500, 2000 + 8000, 7500, 1000, 500, 2000 }, new FluidStack[] { WerkstoffMaterialPool.DilutedRareEarthMud.getFluidOrGas(1000) @@ -292,6 +305,79 @@ public class RecipeLoader { 0 ); + GT_Values.RA.addMixerRecipe( + WerkstoffMaterialPool.MonaziteSulfate.get(OrePrefixes.dust, 1), + null, null, null, null, null, + Materials.Water.getFluid(6000), + WerkstoffMaterialPool.DilutedMonaziteSulfate.getFluidOrGas(7000), + null, + 480, + 400 + ); + + GT_Values.RA.addMultiblockChemicalRecipe( + new ItemStack[] { + GT_Utility.getIntegratedCircuit(13) + }, + new FluidStack[] { + WerkstoffMaterialPool.DilutedMonaziteSulfate.getFluidOrGas(1000), + WerkstoffMaterialPool.AmmoniumNitrate.getFluidOrGas(200) + }, + null, + new ItemStack[] { + WerkstoffMaterialPool.AcidicMonazitePowder.get(OrePrefixes.dustTiny, 3), + }, + 480, + 480 + ); + + GT_Values.RA.addSifterRecipe( + WerkstoffMaterialPool.AcidicMonazitePowder.get(OrePrefixes.dust, 1), + new ItemStack[] { + WerkstoffMaterialPool.RareEarthFiltrate.get(OrePrefixes.dust, 1), + WerkstoffMaterialPool.ThoriumPhosphateCake.get(OrePrefixes.dust, 1) + }, + new int[] {9000, 7000}, + 600, + 256 + ); + + GT_Values.RA.addBlastRecipe( + WerkstoffMaterialPool.ThoriumPhosphateCake.get(OrePrefixes.dust, 1), + null, + null, + null, + WerkstoffMaterialPool.ThoriumPhosphateConcentrate.get(OrePrefixes.dust, 1), + null, + 300, + 128, + 1500 + ); + + GT_Values.RA.addChemicalBathRecipe( + WerkstoffMaterialPool.RareEarthFiltrate.get(OrePrefixes.dust, 1), + WerkstoffMaterialPool.AmmoniumNitrate.getFluidOrGas(320), + WerkstoffMaterialPool.NeutralizedRareEarthFiltrate.get(OrePrefixes.dust, 1), + null, + null, + new int[] {10000}, + 120, + 240 + ); + + GT_Values.RA.addSifterRecipe( + WerkstoffMaterialPool.NeutralizedRareEarthFiltrate.get(OrePrefixes.dust, 1), + new ItemStack[] { + WerkstoffMaterialPool.RareEarthHydroxideConcentrate.get(OrePrefixes.dust, 1), + WerkstoffMaterialPool.UraniumFiltrate.get(OrePrefixes.dust, 1), + WerkstoffMaterialPool.UraniumFiltrate.get(OrePrefixes.dust, 1) + }, + new int[] {9000, 5000, 4000}, + 800, + 480 + ); + + |