Skip to content

Commit

Permalink
Add recipe for the PRASS casings
Browse files Browse the repository at this point in the history
  • Loading branch information
Zorbatron committed Sep 9, 2024
1 parent d28109e commit e77c639
Show file tree
Hide file tree
Showing 3 changed files with 69 additions and 9 deletions.
26 changes: 23 additions & 3 deletions src/main/java/com/zorbatron/zbgt/recipe/CasingRecipes.java
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,8 @@ public class CasingRecipes {

public static void init() {
ZBGTBlockMultiblockCasings();
CoALCasings();
coALCasings();
preciseCasings();
}

private static void ZBGTBlockMultiblockCasings() {
Expand All @@ -48,15 +49,16 @@ T extends Enum<T> & IStringSerializable> void registerMetalCasingRecipe(Material
'P', OreDictUnifier.get(plate, inputMaterial),
'F', OreDictUnifier.get(frameGt, inputMaterial));

ASSEMBLER_RECIPES.recipeBuilder().duration(50).EUt(16)
ASSEMBLER_RECIPES.recipeBuilder()
.input(plate, inputMaterial, 6)
.input(frameGt, inputMaterial)
.circuitMeta(6)
.outputs(outputCasingType.getItemVariant(outputCasing, ConfigHolder.recipes.casingsPerCraft))
.EUt(16).duration(50)
.buildAndRegister();
}

private static void CoALCasings() {
private static void coALCasings() {
if (ZBGTMods.ULV_COVERS.isModLoaded()) {
ASSEMBLER_RECIPES.recipeBuilder()
.input(frameGt, getMaterialByTier(ULV))
Expand Down Expand Up @@ -121,4 +123,22 @@ private static void CoALCasings() {
.buildAndRegister();
}
}

private static void preciseCasings() {
for (int tier = EV; tier < UHV; tier++) {
ASSEMBLER_RECIPES.recipeBuilder()
.inputs(getMachineCasingByTier(tier))
.input(getRobotArmByTier(tier), 2)
.input(cableGtDouble, getCableByTier(tier), 2)
.input(plateDouble, getMaterialByTier(tier), 2)
.input(circuit, getMarkerMaterialByTier(tier))
.input(bolt, getSecondaryComponentMaterialByTier(tier), 32)
.input(gearSmall, getSecondaryComponentMaterialByTier(tier), 8)
.fluidInputs(SolderingAlloy.getFluid(L * 4 * tier))
.circuitMeta(18)
.outputs(getPreciseCasingByTier(tier - EV))
.EUt(VA[tier]).duration(20 * 8 * (tier - HV))
.buildAndRegister();
}
}
}
8 changes: 4 additions & 4 deletions src/main/java/com/zorbatron/zbgt/recipe/CoALRecipes.java
Original file line number Diff line number Diff line change
Expand Up @@ -297,8 +297,8 @@ private static RecipeBuilder<CoALRecipeBuilder> getCoALHighTierRecipe(int tier,
.input(frameGt, tier == ZPM ? NaquadahAlloy : getMainComponentMaterialByTier(tier), 48)
.input(circuit, getMarkerMaterialByTier(tier), 96)
.fluidInputs(SolderingAlloy.getFluid((int) (48 * L * Math.pow(2, tier - LuV))))
.fluidInputs(getSensorEmitterFoil(tier).getFluid(L * 48 * 24))
.fluidInputs(getSensorEmitterPlateRod(tier).getFluid(L * 48 * 4))
.fluidInputs(getSensorEmitterFoilByTier(tier).getFluid(L * 48 * 24))
.fluidInputs(getSensorEmitterPlateRodByTier(tier).getFluid(L * 48 * 4))
.fluidInputs(tier > ZPM ? Naquadria.getFluid(L * 4 * 48) : null);

case SENSOR -> builder
Expand All @@ -309,8 +309,8 @@ private static RecipeBuilder<CoALRecipeBuilder> getCoALHighTierRecipe(int tier,
.input(frameGt, tier == ZPM ? NaquadahAlloy : getMainComponentMaterialByTier(tier), 48)
.input(circuit, getMarkerMaterialByTier(tier), 96)
.fluidInputs(SolderingAlloy.getFluid((int) (48 * L * Math.pow(2, tier - LuV))))
.fluidInputs(getSensorEmitterFoil(tier).getFluid(L * 48 * 24))
.fluidInputs(getSensorEmitterPlateRod(tier).getFluid(L * 48 * 4))
.fluidInputs(getSensorEmitterFoilByTier(tier).getFluid(L * 48 * 24))
.fluidInputs(getSensorEmitterPlateRodByTier(tier).getFluid(L * 48 * 4))
.fluidInputs(tier > ZPM ? Naquadria.getFluid(L * 4 * 48) : null);

case FIELD_GEN -> builder
Expand Down
44 changes: 42 additions & 2 deletions src/main/java/com/zorbatron/zbgt/recipe/helpers/RecipeAssists.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,16 @@
import static gregtech.api.unification.material.Materials.*;
import static gregtech.common.items.MetaItems.*;

import net.minecraft.item.ItemStack;

import com.zorbatron.zbgt.common.block.ZBGTMetaBlocks;
import com.zorbatron.zbgt.common.block.blocks.PreciseCasing;

import gregtech.api.items.metaitem.MetaItem;
import gregtech.api.unification.material.MarkerMaterials;
import gregtech.api.unification.material.Material;
import gregtech.common.blocks.BlockMachineCasing;
import gregtech.common.blocks.MetaBlocks;

public class RecipeAssists {

Expand Down Expand Up @@ -302,7 +309,7 @@ public static Material getSecondaryComponentMaterialByTier(int tier) {
return getMainComponentMaterialByTier(tier);
}

public static Material getSensorEmitterFoil(int tier) {
public static Material getSensorEmitterFoilByTier(int tier) {
return switch (tier) {
case (LuV) -> Palladium;
case (ZPM) -> Trinium;
Expand All @@ -311,11 +318,44 @@ public static Material getSensorEmitterFoil(int tier) {
};
}

public static Material getSensorEmitterPlateRod(int tier) {
public static Material getSensorEmitterPlateRodByTier(int tier) {
return switch (tier) {
case (LuV) -> Ruridit;
case (ZPM) -> Osmiridium;
default -> getMainComponentMaterialByTier(tier);
};
}

public static ItemStack getMachineCasingByTier(int tier) {
return MetaBlocks.MACHINE_CASING.getItemVariant(getMachineCasingTypeByTier(tier));
}

public static BlockMachineCasing.MachineCasingType getMachineCasingTypeByTier(int tier) {
return switch (tier) {
case (LV) -> BlockMachineCasing.MachineCasingType.LV;
case (MV) -> BlockMachineCasing.MachineCasingType.MV;
case (HV) -> BlockMachineCasing.MachineCasingType.HV;
case (EV) -> BlockMachineCasing.MachineCasingType.EV;
case (IV) -> BlockMachineCasing.MachineCasingType.IV;
case (LuV) -> BlockMachineCasing.MachineCasingType.LuV;
case (ZPM) -> BlockMachineCasing.MachineCasingType.ZPM;
case (UV) -> BlockMachineCasing.MachineCasingType.UV;
case (UHV) -> BlockMachineCasing.MachineCasingType.UHV;
default -> BlockMachineCasing.MachineCasingType.ULV;
};
}

public static ItemStack getPreciseCasingByTier(int tier) {
return ZBGTMetaBlocks.PRECISE_CASING.getItemVariant(getPreciseCasingTypeByTier(tier));
}

public static PreciseCasing.CasingType getPreciseCasingTypeByTier(int tier) {
return switch (tier) {
case (1) -> PreciseCasing.CasingType.PRECISE_CASING_1;
case (2) -> PreciseCasing.CasingType.PRECISE_CASING_2;
case (3) -> PreciseCasing.CasingType.PRECISE_CASING_3;
case (4) -> PreciseCasing.CasingType.PRECISE_CASING_4;
default -> PreciseCasing.CasingType.PRECISE_CASING_0;
};
}
}

0 comments on commit e77c639

Please sign in to comment.