From dc3c19d63eb08699ee0e516b283277a8fa224c2c Mon Sep 17 00:00:00 2001 From: Serenibyss <10861407+serenibyss@users.noreply.github.com> Date: Sat, 14 Oct 2023 19:36:06 -0500 Subject: [PATCH] Multi fluid hatch additions and recipe changes (#2105) --- .../metatileentities/MetaTileEntities.java | 28 ++- .../MetaTileEntityMultiFluidHatch.java | 41 ++-- .../loaders/recipe/MachineRecipeLoader.java | 20 +- .../loaders/recipe/MetaTileEntityLoader.java | 6 - .../MetaTileEntityMachineRecipeLoader.java | 196 ++++++++++++++++++ .../resources/assets/gregtech/lang/en_us.lang | 31 ++- 6 files changed, 274 insertions(+), 48 deletions(-) diff --git a/src/main/java/gregtech/common/metatileentities/MetaTileEntities.java b/src/main/java/gregtech/common/metatileentities/MetaTileEntities.java index 42f54a98fc0..60a4802ce90 100644 --- a/src/main/java/gregtech/common/metatileentities/MetaTileEntities.java +++ b/src/main/java/gregtech/common/metatileentities/MetaTileEntities.java @@ -120,8 +120,10 @@ public class MetaTileEntities { public static final MetaTileEntityItemBus[] ITEM_EXPORT_BUS = new MetaTileEntityItemBus[GTValues.UHV + 1]; public static final MetaTileEntityFluidHatch[] FLUID_IMPORT_HATCH = new MetaTileEntityFluidHatch[GTValues.UHV + 1]; public static final MetaTileEntityFluidHatch[] FLUID_EXPORT_HATCH = new MetaTileEntityFluidHatch[GTValues.UHV + 1]; - public static final MetaTileEntityMultiFluidHatch[] MULTI_FLUID_IMPORT_HATCH = new MetaTileEntityMultiFluidHatch[2]; - public static final MetaTileEntityMultiFluidHatch[] MULTI_FLUID_EXPORT_HATCH = new MetaTileEntityMultiFluidHatch[2]; + public static final MetaTileEntityMultiFluidHatch[] QUADRUPLE_IMPORT_HATCH = new MetaTileEntityMultiFluidHatch[6]; // EV-UHV + public static final MetaTileEntityMultiFluidHatch[] NONUPLE_IMPORT_HATCH = new MetaTileEntityMultiFluidHatch[6]; // EV-UHV + public static final MetaTileEntityMultiFluidHatch[] QUADRUPLE_EXPORT_HATCH = new MetaTileEntityMultiFluidHatch[6]; // EV-UHV + public static final MetaTileEntityMultiFluidHatch[] NONUPLE_EXPORT_HATCH = new MetaTileEntityMultiFluidHatch[6]; // EV-UHV public static final MetaTileEntityEnergyHatch[] ENERGY_INPUT_HATCH = new MetaTileEntityEnergyHatch[GTValues.V.length]; public static final MetaTileEntityEnergyHatch[] ENERGY_INPUT_HATCH_4A = new MetaTileEntityEnergyHatch[6]; // EV, IV, LuV, ZPM, UV, UHV public static final MetaTileEntityEnergyHatch[] ENERGY_INPUT_HATCH_16A = new MetaTileEntityEnergyHatch[5]; // IV, LuV, ZPM, UV, UHV @@ -561,11 +563,7 @@ public static void init() { registerMetaTileEntity(1195 + i, FLUID_EXPORT_HATCH[i]); } - // Multi-Fluid Hatches - MULTI_FLUID_IMPORT_HATCH[0] = registerMetaTileEntity(1190, new MetaTileEntityMultiFluidHatch(gregtechId("fluid_hatch.import_4x"), 2, false)); - MULTI_FLUID_IMPORT_HATCH[1] = registerMetaTileEntity(1191, new MetaTileEntityMultiFluidHatch(gregtechId("fluid_hatch.import_9x"), 3, false)); - MULTI_FLUID_EXPORT_HATCH[0] = registerMetaTileEntity(1205, new MetaTileEntityMultiFluidHatch(gregtechId("fluid_hatch.export_4x"), 2, true)); - MULTI_FLUID_EXPORT_HATCH[1] = registerMetaTileEntity(1206, new MetaTileEntityMultiFluidHatch(gregtechId("fluid_hatch.export_9x"), 3, true)); + // IDs 1190, 1191, 1205, and 1206 reserved for multi-fluid hatches // Energy Input/Output Hatches, IDs 1210-1269 endPos = GregTechAPI.isHighTier() ? ENERGY_INPUT_HATCH.length - 1 : Math.min(ENERGY_INPUT_HATCH.length - 1, GTValues.UV + 2); @@ -822,6 +820,22 @@ public static void init() { LONG_DIST_ITEM_ENDPOINT = registerMetaTileEntity(1749, new MetaTileEntityLDItemEndpoint(gregtechId("ld_item_endpoint"))); LONG_DIST_FLUID_ENDPOINT = registerMetaTileEntity(1750, new MetaTileEntityLDFluidEndpoint(gregtechId("ld_fluid_endpoint"))); + + // Multi-Fluid Hatches, IDs 1190, 1191, 1205, 1206, 1780-1799 + // EV hatches separate because of old names/IDs + QUADRUPLE_IMPORT_HATCH[0] = registerMetaTileEntity(1190, new MetaTileEntityMultiFluidHatch(gregtechId("fluid_hatch.import_4x"), GTValues.EV, 4, false)); + NONUPLE_IMPORT_HATCH[0] = registerMetaTileEntity(1191, new MetaTileEntityMultiFluidHatch(gregtechId("fluid_hatch.import_9x"), GTValues.EV, 9, false)); + QUADRUPLE_EXPORT_HATCH[0] = registerMetaTileEntity(1205, new MetaTileEntityMultiFluidHatch(gregtechId("fluid_hatch.export_4x"), GTValues.EV, 4, true)); + NONUPLE_EXPORT_HATCH[0] = registerMetaTileEntity(1206, new MetaTileEntityMultiFluidHatch(gregtechId("fluid_hatch.export_9x"), GTValues.EV, 9, true)); + for (int i = GTValues.IV; i <= GTValues.UHV; i++) { + int index = i - GTValues.IV; + String tierName = GTValues.VN[i].toLowerCase(); + QUADRUPLE_IMPORT_HATCH[index + 1] = registerMetaTileEntity(1780 + index, new MetaTileEntityMultiFluidHatch(gregtechId("fluid_hatch.import_4x." + tierName), i, 4, false)); + NONUPLE_IMPORT_HATCH[index + 1] = registerMetaTileEntity(1785 + index, new MetaTileEntityMultiFluidHatch(gregtechId("fluid_hatch.import_9x." + tierName), i, 9, false)); + QUADRUPLE_EXPORT_HATCH[index + 1] = registerMetaTileEntity(1790 + index, new MetaTileEntityMultiFluidHatch(gregtechId("fluid_hatch.export_4x." + tierName), i, 4, true)); + NONUPLE_EXPORT_HATCH[index + 1] = registerMetaTileEntity(1795 + index, new MetaTileEntityMultiFluidHatch(gregtechId("fluid_hatch.export_9x." + tierName), i, 9, true)); + } + /* * FOR ADDON DEVELOPERS: * diff --git a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityMultiFluidHatch.java b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityMultiFluidHatch.java index 26195983160..b6dab63c91b 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityMultiFluidHatch.java +++ b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityMultiFluidHatch.java @@ -3,6 +3,7 @@ import codechicken.lib.render.CCRenderState; import codechicken.lib.render.pipeline.IVertexOperation; import codechicken.lib.vec.Matrix4; +import gregtech.api.GTValues; import gregtech.api.capability.GregtechDataCodes; import gregtech.api.capability.GregtechTileCapabilities; import gregtech.api.capability.IControllable; @@ -15,8 +16,6 @@ import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.metatileentity.multiblock.IMultiblockAbilityPart; import gregtech.api.metatileentity.multiblock.MultiblockAbility; -import gregtech.api.metatileentity.multiblock.MultiblockControllerBase; -import gregtech.client.renderer.ICubeRenderer; import gregtech.client.renderer.texture.Textures; import gregtech.client.renderer.texture.cube.SimpleOverlayRenderer; import net.minecraft.client.resources.I18n; @@ -36,18 +35,25 @@ public class MetaTileEntityMultiFluidHatch extends MetaTileEntityMultiblockNotifiablePart implements IMultiblockAbilityPart, IControllable { - private static final int TANK_SIZE = 16000; + private static final int BASE_TANK_SIZE = 8000; + + private final int numSlots; + private final int tankSize; // only holding this for convenience private final FluidTankList fluidTankList; private boolean workingEnabled; - public MetaTileEntityMultiFluidHatch(ResourceLocation metaTileEntityId, int tier, boolean isExportHatch) { + public MetaTileEntityMultiFluidHatch(ResourceLocation metaTileEntityId, int tier, int numSlots, boolean isExportHatch) { super(metaTileEntityId, tier, isExportHatch); this.workingEnabled = true; - FluidTank[] fluidsHandlers = new FluidTank[getTier() * getTier()]; + this.numSlots = numSlots; + // Quadruple: 1/4th the capacity of a fluid hatch of this tier + // Nonuple: 1/8th the capacity of a fluid hatch of this tier + this.tankSize = (BASE_TANK_SIZE * (1 << Math.min(GTValues.UHV, tier))) / (numSlots == 4 ? 4 : 8); + FluidTank[] fluidsHandlers = new FluidTank[numSlots]; for (int i = 0; i < fluidsHandlers.length; i++) { - fluidsHandlers[i] = new NotifiableFluidTank(TANK_SIZE, this, isExportHatch); + fluidsHandlers[i] = new NotifiableFluidTank(tankSize, this, isExportHatch); } this.fluidTankList = new FluidTankList(false, fluidsHandlers); initializeInventory(); @@ -55,7 +61,7 @@ public MetaTileEntityMultiFluidHatch(ResourceLocation metaTileEntityId, int tier @Override public MetaTileEntity createMetaTileEntity(IGregTechTileEntity metaTileEntityHolder) { - return new MetaTileEntityMultiFluidHatch(metaTileEntityId, this.getTier(), this.isExportHatch); + return new MetaTileEntityMultiFluidHatch(metaTileEntityId, this.getTier(), numSlots, this.isExportHatch); } @Override @@ -131,30 +137,15 @@ public void readFromNBT(NBTTagCompound data) { public void renderMetaTileEntity(CCRenderState renderState, Matrix4 translation, IVertexOperation[] pipeline) { super.renderMetaTileEntity(renderState, translation, pipeline); if (shouldRenderOverlay()) { - SimpleOverlayRenderer renderer = getTier() == 2 ? Textures.PIPE_4X_OVERLAY : Textures.PIPE_9X_OVERLAY; + SimpleOverlayRenderer renderer = numSlots == 4 ? Textures.PIPE_4X_OVERLAY : Textures.PIPE_9X_OVERLAY; renderer.renderSided(getFrontFacing(), renderState, translation, pipeline); } } - @Override - public ICubeRenderer getBaseTexture() { - MultiblockControllerBase controller = getController(); - if (controller != null) { - return this.hatchTexture = controller.getBaseTexture(this); - } else if (this.hatchTexture != null) { - if (hatchTexture != Textures.getInactiveTexture(hatchTexture)) { - return this.hatchTexture = Textures.getInactiveTexture(hatchTexture); - } - return this.hatchTexture; - } else { - return Textures.VOLTAGE_CASINGS[getTier() == 2 ? 3 : 5]; - } - } - @Override public void addInformation(ItemStack stack, @Nullable World player, List tooltip, boolean advanced) { tooltip.add(I18n.format(isExportHatch ? "gregtech.machine.fluid_hatch.export.tooltip" : "gregtech.machine.fluid_hatch.import.tooltip")); - tooltip.add(I18n.format("gregtech.universal.tooltip.fluid_storage_capacity_mult", (int) Math.pow(this.getTier(), 2), TANK_SIZE)); + tooltip.add(I18n.format("gregtech.universal.tooltip.fluid_storage_capacity_mult", numSlots, tankSize)); tooltip.add(I18n.format("gregtech.universal.enabled")); } @@ -187,7 +178,7 @@ public void registerAbilities(List abilityList) { @Override protected ModularUI createUI(EntityPlayer entityPlayer) { - int rowSize = getTier(); + int rowSize = (int) Math.sqrt(numSlots); ModularUI.Builder builder = ModularUI.builder(GuiTextures.BACKGROUND, 176, 18 + 18 * rowSize + 94) .label(10, 5, getMetaFullName()); diff --git a/src/main/java/gregtech/loaders/recipe/MachineRecipeLoader.java b/src/main/java/gregtech/loaders/recipe/MachineRecipeLoader.java index f399877f025..2f475b8403f 100644 --- a/src/main/java/gregtech/loaders/recipe/MachineRecipeLoader.java +++ b/src/main/java/gregtech/loaders/recipe/MachineRecipeLoader.java @@ -1079,13 +1079,21 @@ private static void ConvertHatchToHatch() { } } - for (int i = 0; i < MULTI_FLUID_IMPORT_HATCH.length; i++) { - if (MULTI_FLUID_IMPORT_HATCH[i] != null && MULTI_FLUID_EXPORT_HATCH[i] != null) { + for (int i = 0; i < QUADRUPLE_IMPORT_HATCH.length; i++) { + if (QUADRUPLE_IMPORT_HATCH[i] != null && QUADRUPLE_EXPORT_HATCH[i] != null) { + ModHandler.addShapedRecipe("quadruple_fluid_hatch_output_to_input_" + QUADRUPLE_IMPORT_HATCH[i].getTier(), QUADRUPLE_IMPORT_HATCH[i].getStackForm(), + "d", "B", 'B', QUADRUPLE_EXPORT_HATCH[i].getStackForm()); + ModHandler.addShapedRecipe("quadruple_fluid_hatch_input_to_output_" + QUADRUPLE_EXPORT_HATCH[i].getTier(), QUADRUPLE_EXPORT_HATCH[i].getStackForm(), + "d", "B", 'B', QUADRUPLE_IMPORT_HATCH[i].getStackForm()); + } + } - ModHandler.addShapedRecipe("multi_fluid_hatch_output_to_input_" + MULTI_FLUID_IMPORT_HATCH[i].getTier(), MULTI_FLUID_IMPORT_HATCH[i].getStackForm(), - "d", "B", 'B', MULTI_FLUID_EXPORT_HATCH[i].getStackForm()); - ModHandler.addShapedRecipe("multi_fluid_hatch_input_to_output_" + MULTI_FLUID_EXPORT_HATCH[i].getTier(), MULTI_FLUID_EXPORT_HATCH[i].getStackForm(), - "d", "B", 'B', MULTI_FLUID_IMPORT_HATCH[i].getStackForm()); + for (int i = 0; i < NONUPLE_IMPORT_HATCH.length; i++) { + if (NONUPLE_IMPORT_HATCH[i] != null && NONUPLE_EXPORT_HATCH[i] != null) { + ModHandler.addShapedRecipe("nonuple_fluid_hatch_output_to_input_" + NONUPLE_IMPORT_HATCH[i].getTier(), NONUPLE_IMPORT_HATCH[i].getStackForm(), + "d", "B", 'B', NONUPLE_EXPORT_HATCH[i].getStackForm()); + ModHandler.addShapedRecipe("nonuple_fluid_hatch_input_to_output_" + NONUPLE_EXPORT_HATCH[i].getTier(), NONUPLE_EXPORT_HATCH[i].getStackForm(), + "d", "B", 'B', NONUPLE_IMPORT_HATCH[i].getStackForm()); } } diff --git a/src/main/java/gregtech/loaders/recipe/MetaTileEntityLoader.java b/src/main/java/gregtech/loaders/recipe/MetaTileEntityLoader.java index 10536aff480..f16c11efcee 100644 --- a/src/main/java/gregtech/loaders/recipe/MetaTileEntityLoader.java +++ b/src/main/java/gregtech/loaders/recipe/MetaTileEntityLoader.java @@ -153,12 +153,6 @@ public static void init() { ModHandler.addShapelessRecipe("frost_hazard_to_steel_solid_casing", MetaBlocks.METAL_CASING.getItemVariant(STEEL_SOLID), MetaBlocks.WARNING_SIGN.getItemVariant(FROST_HAZARD)); ModHandler.addShapelessRecipe("noise_hazard_to_steel_solid_casing", MetaBlocks.METAL_CASING.getItemVariant(STEEL_SOLID), MetaBlocks.WARNING_SIGN.getItemVariant(NOISE_HAZARD)); - ModHandler.addShapedRecipe(true, "fluid_import_hatch_4x", MetaTileEntities.MULTI_FLUID_IMPORT_HATCH[0].getStackForm(), "P", "M", 'M', MetaTileEntities.HULL[GTValues.HV].getStackForm(), 'P', new UnificationEntry(OrePrefix.pipeQuadrupleFluid, Materials.Titanium)); - ModHandler.addShapedRecipe(true, "fluid_import_hatch_9x", MetaTileEntities.MULTI_FLUID_IMPORT_HATCH[1].getStackForm(), "P", "M", 'M', MetaTileEntities.HULL[GTValues.IV].getStackForm(), 'P', new UnificationEntry(OrePrefix.pipeNonupleFluid, Materials.TungstenSteel)); - - ModHandler.addShapedRecipe(true, "fluid_export_hatch_4x", MetaTileEntities.MULTI_FLUID_EXPORT_HATCH[0].getStackForm(), "M", "P", 'M', MetaTileEntities.HULL[GTValues.HV].getStackForm(), 'P', new UnificationEntry(OrePrefix.pipeQuadrupleFluid, Materials.Titanium)); - ModHandler.addShapedRecipe(true, "fluid_export_hatch_9x", MetaTileEntities.MULTI_FLUID_EXPORT_HATCH[1].getStackForm(), "M", "P", 'M', MetaTileEntities.HULL[GTValues.IV].getStackForm(), 'P', new UnificationEntry(OrePrefix.pipeNonupleFluid, Materials.TungstenSteel)); - ModHandler.addShapedRecipe(true, "rotor_holder_hv", MetaTileEntities.ROTOR_HOLDER[0].getStackForm(), "SGS", "GHG", "SGS", 'H', MetaTileEntities.HULL[GTValues.HV].getStackForm(), 'G', new UnificationEntry(OrePrefix.gear, Materials.BlackSteel), 'S', new UnificationEntry(OrePrefix.gearSmall, Materials.StainlessSteel)); ModHandler.addShapedRecipe(true, "rotor_holder_ev", MetaTileEntities.ROTOR_HOLDER[1].getStackForm(), "SGS", "GHG", "SGS", 'H', MetaTileEntities.HULL[GTValues.EV].getStackForm(), 'G', new UnificationEntry(OrePrefix.gear, Materials.Ultimet), 'S', new UnificationEntry(OrePrefix.gearSmall, Materials.Titanium)); ModHandler.addShapedRecipe(true, "rotor_holder_iv", MetaTileEntities.ROTOR_HOLDER[2].getStackForm(), "SGS", "GHG", "SGS", 'H', MetaTileEntities.HULL[GTValues.IV].getStackForm(), 'G', new UnificationEntry(OrePrefix.gear, Materials.HSSG), 'S', new UnificationEntry(OrePrefix.gearSmall, Materials.TungstenSteel)); diff --git a/src/main/java/gregtech/loaders/recipe/MetaTileEntityMachineRecipeLoader.java b/src/main/java/gregtech/loaders/recipe/MetaTileEntityMachineRecipeLoader.java index a2ce1d4dc92..aa727ac912d 100644 --- a/src/main/java/gregtech/loaders/recipe/MetaTileEntityMachineRecipeLoader.java +++ b/src/main/java/gregtech/loaders/recipe/MetaTileEntityMachineRecipeLoader.java @@ -37,6 +37,202 @@ public static void init() { registerHatchBusRecipe(UV, FLUID_IMPORT_HATCH[UV], FLUID_EXPORT_HATCH[UV], QUANTUM_TANK[0].getStackForm()); registerHatchBusRecipe(UHV, FLUID_IMPORT_HATCH[UHV], FLUID_EXPORT_HATCH[UHV], QUANTUM_TANK[1].getStackForm()); + // Quadruple Fluid Input Hatches + ASSEMBLER_RECIPES.recipeBuilder() + .input(FLUID_IMPORT_HATCH[EV]) + .input(pipeQuadrupleFluid, Titanium) + .fluidInputs(Polytetrafluoroethylene.getFluid(L * 4)) + .circuitMeta(4) + .output(QUADRUPLE_IMPORT_HATCH[0]) + .duration(300).EUt(VA[EV]).buildAndRegister(); + + ASSEMBLER_RECIPES.recipeBuilder() + .input(FLUID_IMPORT_HATCH[IV]) + .input(pipeQuadrupleFluid, TungstenSteel) + .fluidInputs(Polytetrafluoroethylene.getFluid(L * 4)) + .circuitMeta(4) + .output(QUADRUPLE_IMPORT_HATCH[1]) + .duration(300).EUt(VA[IV]).buildAndRegister(); + + ASSEMBLER_RECIPES.recipeBuilder() + .input(FLUID_IMPORT_HATCH[LuV]) + .input(pipeQuadrupleFluid, NiobiumTitanium) + .fluidInputs(Polytetrafluoroethylene.getFluid(L * 4)) + .circuitMeta(4) + .output(QUADRUPLE_IMPORT_HATCH[2]) + .duration(300).EUt(VA[LuV]).buildAndRegister(); + + ASSEMBLER_RECIPES.recipeBuilder() + .input(FLUID_IMPORT_HATCH[ZPM]) + .input(pipeQuadrupleFluid, Iridium) + .fluidInputs(Polybenzimidazole.getFluid(L * 4)) + .circuitMeta(4) + .output(QUADRUPLE_IMPORT_HATCH[3]) + .duration(300).EUt(VA[ZPM]).buildAndRegister(); + + ASSEMBLER_RECIPES.recipeBuilder() + .input(FLUID_IMPORT_HATCH[UV]) + .input(pipeQuadrupleFluid, Naquadah) + .fluidInputs(Polybenzimidazole.getFluid(L * 4)) + .circuitMeta(4) + .output(QUADRUPLE_IMPORT_HATCH[4]) + .duration(300).EUt(VA[UV]).buildAndRegister(); + + ASSEMBLER_RECIPES.recipeBuilder() + .input(FLUID_IMPORT_HATCH[UHV]) + .input(pipeQuadrupleFluid, Neutronium) + .fluidInputs(Polybenzimidazole.getFluid(L * 4)) + .circuitMeta(4) + .output(QUADRUPLE_IMPORT_HATCH[5]) + .duration(300).EUt(VA[UV]).buildAndRegister(); + + // Nonuple Fluid Input Hatches + ASSEMBLER_RECIPES.recipeBuilder() + .input(FLUID_IMPORT_HATCH[EV]) + .input(pipeNonupleFluid, Titanium) + .fluidInputs(Polytetrafluoroethylene.getFluid(L * 9)) + .circuitMeta(9) + .output(NONUPLE_IMPORT_HATCH[0]) + .duration(600).EUt(VA[EV]).buildAndRegister(); + + ASSEMBLER_RECIPES.recipeBuilder() + .input(FLUID_IMPORT_HATCH[IV]) + .input(pipeNonupleFluid, TungstenSteel) + .fluidInputs(Polytetrafluoroethylene.getFluid(L * 9)) + .circuitMeta(9) + .output(NONUPLE_IMPORT_HATCH[1]) + .duration(600).EUt(VA[IV]).buildAndRegister(); + + ASSEMBLER_RECIPES.recipeBuilder() + .input(FLUID_IMPORT_HATCH[LuV]) + .input(pipeNonupleFluid, NiobiumTitanium) + .fluidInputs(Polytetrafluoroethylene.getFluid(L * 9)) + .circuitMeta(9) + .output(NONUPLE_IMPORT_HATCH[2]) + .duration(600).EUt(VA[LuV]).buildAndRegister(); + + ASSEMBLER_RECIPES.recipeBuilder() + .input(FLUID_IMPORT_HATCH[ZPM]) + .input(pipeNonupleFluid, Iridium) + .fluidInputs(Polybenzimidazole.getFluid(L * 9)) + .circuitMeta(9) + .output(NONUPLE_IMPORT_HATCH[3]) + .duration(600).EUt(VA[ZPM]).buildAndRegister(); + + ASSEMBLER_RECIPES.recipeBuilder() + .input(FLUID_IMPORT_HATCH[UV]) + .input(pipeNonupleFluid, Naquadah) + .fluidInputs(Polybenzimidazole.getFluid(L * 9)) + .circuitMeta(9) + .output(NONUPLE_IMPORT_HATCH[4]) + .duration(600).EUt(VA[UV]).buildAndRegister(); + + ASSEMBLER_RECIPES.recipeBuilder() + .input(FLUID_IMPORT_HATCH[UHV]) + .input(pipeNonupleFluid, Neutronium) + .fluidInputs(Polybenzimidazole.getFluid(L * 9)) + .circuitMeta(9) + .output(NONUPLE_IMPORT_HATCH[5]) + .duration(600).EUt(VA[UV]).buildAndRegister(); + + // Quadruple Fluid Output Hatches + ASSEMBLER_RECIPES.recipeBuilder() + .input(FLUID_EXPORT_HATCH[EV]) + .input(pipeQuadrupleFluid, Titanium) + .fluidInputs(Polytetrafluoroethylene.getFluid(L * 4)) + .circuitMeta(4) + .output(QUADRUPLE_EXPORT_HATCH[0]) + .duration(300).EUt(VA[EV]).buildAndRegister(); + + ASSEMBLER_RECIPES.recipeBuilder() + .input(FLUID_EXPORT_HATCH[IV]) + .input(pipeQuadrupleFluid, TungstenSteel) + .fluidInputs(Polytetrafluoroethylene.getFluid(L * 4)) + .circuitMeta(4) + .output(QUADRUPLE_EXPORT_HATCH[1]) + .duration(300).EUt(VA[IV]).buildAndRegister(); + + ASSEMBLER_RECIPES.recipeBuilder() + .input(FLUID_EXPORT_HATCH[LuV]) + .input(pipeQuadrupleFluid, NiobiumTitanium) + .fluidInputs(Polytetrafluoroethylene.getFluid(L * 4)) + .circuitMeta(4) + .output(QUADRUPLE_EXPORT_HATCH[2]) + .duration(300).EUt(VA[LuV]).buildAndRegister(); + + ASSEMBLER_RECIPES.recipeBuilder() + .input(FLUID_EXPORT_HATCH[ZPM]) + .input(pipeQuadrupleFluid, Iridium) + .fluidInputs(Polybenzimidazole.getFluid(L * 4)) + .circuitMeta(4) + .output(QUADRUPLE_EXPORT_HATCH[3]) + .duration(300).EUt(VA[ZPM]).buildAndRegister(); + + ASSEMBLER_RECIPES.recipeBuilder() + .input(FLUID_EXPORT_HATCH[UV]) + .input(pipeQuadrupleFluid, Naquadah) + .fluidInputs(Polybenzimidazole.getFluid(L * 4)) + .circuitMeta(4) + .output(QUADRUPLE_EXPORT_HATCH[4]) + .duration(300).EUt(VA[UV]).buildAndRegister(); + + ASSEMBLER_RECIPES.recipeBuilder() + .input(FLUID_EXPORT_HATCH[UHV]) + .input(pipeQuadrupleFluid, Neutronium) + .fluidInputs(Polybenzimidazole.getFluid(L * 4)) + .circuitMeta(4) + .output(QUADRUPLE_EXPORT_HATCH[5]) + .duration(300).EUt(VA[UV]).buildAndRegister(); + + // Nonuple Fluid Output Hatches + ASSEMBLER_RECIPES.recipeBuilder() + .input(FLUID_EXPORT_HATCH[EV]) + .input(pipeNonupleFluid, Titanium) + .fluidInputs(Polytetrafluoroethylene.getFluid(L * 9)) + .circuitMeta(9) + .output(NONUPLE_EXPORT_HATCH[0]) + .duration(600).EUt(VA[EV]).buildAndRegister(); + + ASSEMBLER_RECIPES.recipeBuilder() + .input(FLUID_EXPORT_HATCH[IV]) + .input(pipeNonupleFluid, TungstenSteel) + .fluidInputs(Polytetrafluoroethylene.getFluid(L * 9)) + .circuitMeta(9) + .output(NONUPLE_EXPORT_HATCH[1]) + .duration(600).EUt(VA[IV]).buildAndRegister(); + + ASSEMBLER_RECIPES.recipeBuilder() + .input(FLUID_EXPORT_HATCH[LuV]) + .input(pipeNonupleFluid, NiobiumTitanium) + .fluidInputs(Polytetrafluoroethylene.getFluid(L * 9)) + .circuitMeta(9) + .output(NONUPLE_EXPORT_HATCH[2]) + .duration(600).EUt(VA[LuV]).buildAndRegister(); + + ASSEMBLER_RECIPES.recipeBuilder() + .input(FLUID_EXPORT_HATCH[ZPM]) + .input(pipeNonupleFluid, Iridium) + .fluidInputs(Polybenzimidazole.getFluid(L * 9)) + .circuitMeta(9) + .output(NONUPLE_EXPORT_HATCH[3]) + .duration(600).EUt(VA[ZPM]).buildAndRegister(); + + ASSEMBLER_RECIPES.recipeBuilder() + .input(FLUID_EXPORT_HATCH[UV]) + .input(pipeNonupleFluid, Naquadah) + .fluidInputs(Polybenzimidazole.getFluid(L * 9)) + .circuitMeta(9) + .output(NONUPLE_EXPORT_HATCH[4]) + .duration(600).EUt(VA[UV]).buildAndRegister(); + + ASSEMBLER_RECIPES.recipeBuilder() + .input(FLUID_EXPORT_HATCH[UHV]) + .input(pipeNonupleFluid, Neutronium) + .fluidInputs(Polybenzimidazole.getFluid(L * 9)) + .circuitMeta(9) + .output(NONUPLE_EXPORT_HATCH[5]) + .duration(600).EUt(VA[UV]).buildAndRegister(); + // Item Buses registerHatchBusRecipe(ULV, ITEM_IMPORT_BUS[ULV], ITEM_EXPORT_BUS[ULV], new ItemStack(Blocks.CHEST)); registerHatchBusRecipe(LV, ITEM_IMPORT_BUS[LV], ITEM_EXPORT_BUS[LV], new ItemStack(Blocks.CHEST)); diff --git a/src/main/resources/assets/gregtech/lang/en_us.lang b/src/main/resources/assets/gregtech/lang/en_us.lang index 656b52cb6d3..27e9235915c 100644 --- a/src/main/resources/assets/gregtech/lang/en_us.lang +++ b/src/main/resources/assets/gregtech/lang/en_us.lang @@ -4828,10 +4828,33 @@ gregtech.machine.fluid_hatch.import.uhv.name=UHV Input Hatch gregtech.machine.fluid_hatch.export.tooltip=Fluid Output for Multiblocks -gregtech.machine.fluid_hatch.import_4x.name=Quadruple Input Hatch -gregtech.machine.fluid_hatch.import_9x.name=Nonuple Input Hatch -gregtech.machine.fluid_hatch.export_4x.name=Quadruple Output Hatch -gregtech.machine.fluid_hatch.export_9x.name=Nonuple Output Hatch +gregtech.machine.fluid_hatch.import_4x.name=EV Quadruple Input Hatch +gregtech.machine.fluid_hatch.import_4x.iv.name=IV Quadruple Input Hatch +gregtech.machine.fluid_hatch.import_4x.luv.name=LuV Quadruple Input Hatch +gregtech.machine.fluid_hatch.import_4x.zpm.name=ZPM Quadruple Input Hatch +gregtech.machine.fluid_hatch.import_4x.uv.name=UV Quadruple Input Hatch +gregtech.machine.fluid_hatch.import_4x.uhv.name=UHV Quadruple Input Hatch + +gregtech.machine.fluid_hatch.import_9x.name=EV Nonuple Input Hatch +gregtech.machine.fluid_hatch.import_9x.iv.name=IV Nonuple Input Hatch +gregtech.machine.fluid_hatch.import_9x.luv.name=LuV Nonuple Input Hatch +gregtech.machine.fluid_hatch.import_9x.zpm.name=ZPM Nonuple Input Hatch +gregtech.machine.fluid_hatch.import_9x.uv.name=UV Nonuple Input Hatch +gregtech.machine.fluid_hatch.import_9x.uhv.name=UHV Nonuple Input Hatch + +gregtech.machine.fluid_hatch.export_4x.name=EV Quadruple Output Hatch +gregtech.machine.fluid_hatch.export_4x.iv.name=IV Quadruple Output Hatch +gregtech.machine.fluid_hatch.export_4x.luv.name=LuV Quadruple Output Hatch +gregtech.machine.fluid_hatch.export_4x.zpm.name=ZPM Quadruple Output Hatch +gregtech.machine.fluid_hatch.export_4x.uv.name=UV Quadruple Output Hatch +gregtech.machine.fluid_hatch.export_4x.uhv.name=UHV Quadruple Output Hatch + +gregtech.machine.fluid_hatch.export_9x.name=EV Nonuple Output Hatch +gregtech.machine.fluid_hatch.export_9x.iv.name=IV Nonuple Output Hatch +gregtech.machine.fluid_hatch.export_9x.luv.name=LuV Nonuple Output Hatch +gregtech.machine.fluid_hatch.export_9x.zpm.name=ZPM Nonuple Output Hatch +gregtech.machine.fluid_hatch.export_9x.uv.name=UV Nonuple Output Hatch +gregtech.machine.fluid_hatch.export_9x.uhv.name=UHV Nonuple Output Hatch gregtech.machine.fluid_hatch.export.ulv.name=ULV Output Hatch gregtech.machine.fluid_hatch.export.lv.name=LV Output Hatch