aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <gtandemmodding@gmail.com>2022-01-26 17:39:11 +1100
committerunknown <gtandemmodding@gmail.com>2022-01-26 17:39:11 +1100
commitd456346fed210198c59cf301d5d26bdc8fc88fab (patch)
treeec220b96a39e818ee2f6db5a6d1227c40c88fa2a
parent3b4e3b33b630e676b44aa8ec16baf7dd11138d5c (diff)
downloadGT5-Unofficial-d456346fed210198c59cf301d5d26bdc8fc88fab.tar.gz
GT5-Unofficial-d456346fed210198c59cf301d5d26bdc8fc88fab.tar.bz2
GT5-Unofficial-d456346fed210198c59cf301d5d26bdc8fc88fab.zip
Further add to recipes
-rw-r--r--src/main/java/com/elisis/gtnhlanth/common/register/ItemList.java3
-rw-r--r--src/main/java/com/elisis/gtnhlanth/common/register/WerkstoffMaterialPool.java57
-rw-r--r--src/main/java/com/elisis/gtnhlanth/common/tileentity/DissolutionTank.java233
-rw-r--r--src/main/java/com/elisis/gtnhlanth/loader/RecipeAdder.java6
-rw-r--r--src/main/java/com/elisis/gtnhlanth/loader/RecipeLoader.java102
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
+ );
+
+