Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Controller recipes for PRASS and Coal, ULV covers mod compat with the CoAL, and recipes for the PRASS casings #12

Merged
merged 3 commits into from
Sep 9, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions dependencies.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,11 @@ dependencies {
api("codechicken:codechickenlib:3.2.3.358")
api("appeng:ae2-uel:v0.56.4") { transitive = false }
api("gregicality:GregicalityMultiblocks:1.2.11")
compileOnly rfg.deobf("curse.maven:ulv-covers-635555:4912949")

//For easier testing
runtimeOnlyNonPublishable("curse.maven:nae2-884359:5380800")
runtimeOnlyNonPublishable("curse.maven:spark-361579:3542217")

runtimeOnlyNonPublishable rfg.deobf("curse.maven:ulv-covers-635555:4912949")
}
4 changes: 3 additions & 1 deletion src/main/java/com/zorbatron/zbgt/api/util/ZBGTMods.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@

public enum ZBGTMods {

GCYM(Names.GCYM);
GCYM(Names.GCYM),
ULV_COVERS(Names.ULV_COVERS);

private final String ID;
private Boolean modLoaded;
Expand All @@ -23,5 +24,6 @@ public boolean isModLoaded() {
public static class Names {

public static final String GCYM = "gcym";
public static final String ULV_COVERS = "ulv_covers";
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -66,20 +66,21 @@ public String getName() {

public static CasingType getCasingByTier(int tier) {
return switch (tier) {
case (MV) -> CASING_MV;
case (HV) -> CASING_HV;
case (EV) -> CASING_EV;
case (IV) -> CASING_IV;
case (LV) -> CASING_LV;
case (MV) -> CASING_MV;
case (HV) -> CASING_HV;
case (EV) -> CASING_EV;
case (IV) -> CASING_IV;
case (LuV) -> CASING_LuV;
case (ZPM) -> CASING_ZPM;
case (UV) -> CASING_UV;
case (UV) -> CASING_UV;
case (UHV) -> CASING_UHV;
case (UEV) -> CASING_UEV;
case (UIV) -> CASING_UIV;
case (UXV) -> CASING_UXV;
case (OpV) -> CASING_OpV;
case (MAX) -> CASING_MAX;
default -> CASING_LV;
default -> CASING_ULV;
};
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import gregtech.api.unification.material.info.MaterialFlags;
import gregtech.api.unification.material.properties.FluidProperty;
import gregtech.api.unification.material.properties.PropertyKey;
import gregtech.api.unification.material.properties.WireProperties;

public class ZBGTMaterialOverrides {

Expand All @@ -17,6 +18,7 @@ public static void init() {
frameBoxes();
longRods();
gears();
wire();
}

private static void magneticMaterialFluids() {
Expand All @@ -30,15 +32,15 @@ private static void magneticMaterialFluids() {

private static void densePlates() {
Material[] materials = { Steel, Aluminium, StainlessSteel, Titanium, TungstenSteel, Tritanium, HSSS,
Osmiridium, NiobiumTitanium };
Osmiridium, NiobiumTitanium, Iridium, WroughtIron };

for (Material material : materials) {
material.addFlags(MaterialFlags.GENERATE_DENSE);
}
}

private static void frameBoxes() {
Material[] materials = { NaquadahAlloy, RhodiumPlatedPalladium, Darmstadtium };
Material[] materials = { NaquadahAlloy, RhodiumPlatedPalladium, Darmstadtium, WroughtIron };

for (Material material : materials) {
material.addFlags(MaterialFlags.GENERATE_FRAME);
Expand All @@ -60,4 +62,12 @@ private static void gears() {
material.addFlags(MaterialFlags.GENERATE_GEAR);
}
}

private static void wire() {
Material[] materials = { Titanium };

for (Material material : materials) {
material.setProperty(PropertyKey.WIRE, new WireProperties(2048, 4, 2));
}
}
}
46 changes: 43 additions & 3 deletions src/main/java/com/zorbatron/zbgt/recipe/CasingRecipes.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,15 @@
import static gregtech.api.recipes.RecipeMaps.ASSEMBLER_RECIPES;
import static gregtech.api.recipes.RecipeMaps.ASSEMBLY_LINE_RECIPES;
import static gregtech.api.unification.material.Materials.Naquadria;
import static gregtech.api.unification.material.Materials.SolderingAlloy;
import static gregtech.api.unification.ore.OrePrefix.*;

import java.util.Arrays;

import net.minecraft.util.IStringSerializable;

import com.filostorm.ulvcovers.items.ULVCoverMetaItems;
import com.zorbatron.zbgt.api.util.ZBGTMods;
import com.zorbatron.zbgt.common.block.ZBGTMetaBlocks;
import com.zorbatron.zbgt.common.block.blocks.CoALCasing;
import com.zorbatron.zbgt.common.block.blocks.ZBGTBlockMultiblockCasing;
Expand All @@ -26,7 +29,8 @@ public class CasingRecipes {

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

private static void ZBGTBlockMultiblockCasings() {
Expand All @@ -45,15 +49,33 @@ 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))
.input(plateDense, getMaterialByTier(ULV), 4)
.input(ULVCoverMetaItems.ROBOT_ARM_ULV, 4)
.input(ULVCoverMetaItems.ELECTRIC_PISTON_ULV, 8)
.input(ULVCoverMetaItems.ELECTRIC_MOTOR_ULV, 10)
.input(gear, getMaterialByTier(ULV), 4)
.input(cableGtQuadruple, getCableByTier(ULV), 6)
.input(circuit, getMarkerMaterialByTier(LV), 8)
.input(circuit, getMarkerMaterialByTier(ULV), 16)
.fluidInputs(SolderingAlloy.getFluid(L))
.outputs(ZBGTMetaBlocks.CoAL_CASING.getItemVariant(CoALCasing.CasingType.getCasingByTier(ULV)))
.EUt(VA[ULV]).duration(150)
.buildAndRegister();
}

for (int tier = LV; tier <= IV; tier++) {
ASSEMBLER_RECIPES.recipeBuilder()
.input(frameGt, getMaterialByTier(tier))
Expand Down Expand Up @@ -101,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();
}
}
}
71 changes: 60 additions & 11 deletions src/main/java/com/zorbatron/zbgt/recipe/CoALRecipes.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,18 @@
import static gregtech.common.items.MetaItems.QUANTUM_EYE;
import static gregtech.common.items.MetaItems.QUANTUM_STAR;

import com.filostorm.ulvcovers.items.ULVCoverMetaItems;
import com.zorbatron.zbgt.api.recipes.builders.CoALRecipeBuilder;
import com.zorbatron.zbgt.api.util.ZBGTMods;

import gregtech.api.recipes.RecipeBuilder;

public class CoALRecipes {

public static void init() {
if (ZBGTMods.ULV_COVERS.isModLoaded()) {
ulv();
}
lvToEV();
luvToUV();
}
Expand All @@ -31,11 +36,61 @@ private static void specialRecipes(int tier, coalRecipeType type) {
.EUt(VA[ULV]).duration(600)
.CasingTier(LV)
.CWUt(getCWUt(LV))
.circuitMeta(1)
.circuitMeta(MOTOR.ordinal() + 1)
.buildAndRegister();
}
}

private static void ulv() {
CoAL_RECIPES.recipeBuilder()
.output(ULVCoverMetaItems.ELECTRIC_MOTOR_ULV, 64)
.input(stickLong, Bronze, 48)
.input(cableGtHex, getCableByTier(ULV), 48)
.input(wireGtHex, getFineWireByTier(ULV), 12)
.input(stickLong, IronMagnetic, 24)
.EUt(VA[ULV]).duration(600)
.buildAndRegister();

CoAL_RECIPES.recipeBuilder()
.output(ULVCoverMetaItems.ELECTRIC_PISTON_ULV, 64)
.input(gear, Bronze, 12)
.input(stickLong, Bronze, 48)
.input(ULVCoverMetaItems.ELECTRIC_MOTOR_ULV, 48)
.input(cableGtHex, getCableByTier(ULV), 6)
.input(plateDense, Bronze, 16)
.EUt(VA[ULV]).duration(600)
.buildAndRegister();

CoAL_RECIPES.recipeBuilder()
.output(ULVCoverMetaItems.ELECTRIC_PUMP_ULV, 64)
.input(screw, Bronze, 48)
.input(rotor, Bronze, 48)
.input(pipeNormalFluid, Bronze, 48)
.input(cableGtHex, getCableByTier(ULV), 3)
.input(ULVCoverMetaItems.ELECTRIC_MOTOR_ULV, 48)
.fluidInputs(Rubber.getFluid(L * 24))
.EUt(VA[ULV]).duration(600)
.buildAndRegister();

CoAL_RECIPES.recipeBuilder()
.output(ULVCoverMetaItems.ROBOT_ARM_ULV, 64)
.input(circuit, getMarkerMaterialByTier(ULV), 48)
.input(stickLong, Bronze, 48)
.input(cableGtHex, getCableByTier(ULV), 9)
.input(ULVCoverMetaItems.ELECTRIC_PISTON_ULV, 64)
.input(ULVCoverMetaItems.ELECTRIC_MOTOR_ULV, 96)
.EUt(VA[ULV]).duration(600)
.buildAndRegister();

CoAL_RECIPES.recipeBuilder()
.output(ULVCoverMetaItems.CONVEYOR_MODULE_ULV, 64)
.input(ULVCoverMetaItems.ELECTRIC_MOTOR_ULV, 96)
.input(cableGtHex, getCableByTier(ULV), 3)
.fluidInputs(Rubber.getFluid(L * 288))
.EUt(VA[ULV]).duration(600)
.buildAndRegister();
}

private static void lvToEV() {
for (int tier = LV; tier <= IV; tier++) {
for (coalRecipeType type : coalRecipeType.values()) {
Expand Down Expand Up @@ -69,16 +124,10 @@ private static void lvToEV() {
getCoALLowTierRecipe(tier, type)
.input(tier == MV ? gemFlawless : gem, getLowEmitterSensorStarMaterial(tier), 48)
.buildAndRegister();
getCoALLowTierRecipe(tier, type)
.input(tier == MV ? gemFlawless : gem, getLowEmitterSensorStarMaterial(tier), 48)
.buildAndRegister();
} else {
getCoALLowTierRecipe(tier, type)
.input(getStarByTier(tier), 48)
.buildAndRegister();
getCoALLowTierRecipe(tier, type)
.input(getStarByTier(tier), 48)
.buildAndRegister();
}
} else if (type == FIELD_GEN) {
switch (tier) {
Expand Down Expand Up @@ -248,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 @@ -260,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
Loading