Add fluid support to DEFC (#38)

* DEFC fluid support

* Generic + overloads

* V
This commit is contained in:
Jakub authored and GitHub committed 2022-08-06 02:27:10 +01:00
1 parent 53616d5ba6
commit d86ea1bbca
2 files changed
+18 -6

No files matched your search

@@ -7,6 +7,7 @@ import gregtech.api.util.GT_ModHandler;
import gregtech.api.util.GT_OreDictUnificator;
import gregtech.api.util.GT_Recipe;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fluids.FluidStack;
import java.util.HashSet;
@@ -17,10 +18,19 @@ import static gregtech.api.enums.GT_Values.RES_PATH_GUI;
public class EMT_RecipeAdder {
public static final GT_Recipe.GT_Recipe_Map sFusionCraftingRecipes = new GT_Recipe.GT_Recipe_Map(new HashSet<>(4), "emt.recipe.fusioncrafting", "Draconic Evolution Fusion Crafter", null, RES_PATH_GUI + "basicmachines/Default", 6, 1, 1, 0, 1, "Tier Casing: ", 1, E, false, false);
public static void addFusionCraftingRecipe(ItemStack[] inputs, ItemStack output, int aDuration, int aEUt, int aTier) {
sFusionCraftingRecipes.addRecipe(true, inputs, new ItemStack[]{output}, null, null, null, aDuration, aEUt, aTier);
public static void addFusionCraftingRecipe(ItemStack[] inputs, FluidStack[] fluidinputs, ItemStack[] outputs, FluidStack[] fluidoutputs, int aDuration, int aEUt, int aTier) {
sFusionCraftingRecipes.addRecipe(true, inputs, outputs, null, fluidinputs, fluidoutputs, aDuration, aEUt, aTier);
}
public static void addFusionCraftingRecipe(ItemStack[] inputs, ItemStack output, int aDuration, int aEUt, int aTier) {
addFusionCraftingRecipe(inputs, null, new ItemStack[] { output }, null, aDuration, aEUt, aTier);
}
public static void addFusionCraftingRecipe(ItemStack[] inputs, FluidStack fluidinput, ItemStack output, FluidStack fluidoutput, int aDuration, int aEUt, int aTier) {
addFusionCraftingRecipe(inputs, new FluidStack[] { fluidinput }, new ItemStack[] { output }, new FluidStack[] { fluidoutput }, aDuration, aEUt, aTier);
}
public static void Run() {
// CORES
@@ -24,6 +24,7 @@ import java.util.Arrays;
import java.util.List;
import static com.gtnewhorizon.structurelib.structure.StructureUtility.*;
import static gregtech.api.enums.GT_Values.V;
import static gregtech.api.enums.Textures.BlockIcons.*;
import static gregtech.api.util.GT_StructureUtility.ofHatchAdder;
@@ -127,11 +128,12 @@ public class DE_Fusion_Crafter extends GT_MetaTileEntity_EnhancedMultiBlockBase<
addOtherStructurePart("Tiered Fusion Casing", "Rings (5x5 hollow) at layer 4 and 7").
addStructureInfo("Bloody Ichorium for tier 1, Draconium for tier 2, etc").
addStructureInfo("To use tier 3 + you have to use fusion casing MK II").
addMaintenanceHatch("Any bottom casing", 1).
addInputBus("Any bottom casing", 1).
addOutputBus("Any bottom casing", 1).
addInputHatch("Any bottom casing", 1).
addOutputBus("Any bottom casing", 1).
addOutputHatch("Any bottom casing", 1).
addEnergyHatch("Any bottom casing", 1).
addMaintenanceHatch("Any bottom casing", 1).
toolTipFinisher(EMT.NAME);
return tt;
}
@@ -173,12 +175,12 @@ public class DE_Fusion_Crafter extends GT_MetaTileEntity_EnhancedMultiBlockBase<
@Override
public boolean checkRecipe(ItemStack aStack) {
ItemStack[] tInputs = getCompactedInputs();
//FluidStack[] tFluids = getCompactedFluids(); unused for now
FluidStack[] tFluids = getCompactedFluids();
if (tInputs.length > 0) {
long tVoltage = getMaxInputVoltage();
byte tTier = (byte) Math.max(1, GT_Utility.getTier(tVoltage));
GT_Recipe tRecipe = EMT_RecipeAdder.sFusionCraftingRecipes.findRecipe(getBaseMetaTileEntity(), false, gregtech.api.enums.GT_Values.V[tTier], null, tInputs);
GT_Recipe tRecipe = EMT_RecipeAdder.sFusionCraftingRecipes.findRecipe(getBaseMetaTileEntity(), false, V[tTier], tFluids, tInputs);
if ((tRecipe != null) && (this.mTierCasing >= tRecipe.mSpecialValue) && (tRecipe.isRecipeInputEqual(true, null, tInputs))) {
calculateOverclockedNessMulti(tRecipe.mEUt, tRecipe.mDuration, 2, tVoltage);
if (this.mEUt > 0)