Skip to content

Commit

Permalink
Controller recipes for PRASS and Coal, ULV covers mod compat with the…
Browse files Browse the repository at this point in the history
… CoAL, and recipes for the PRASS casings (#12)

* Add recipe for PRASS and CoAL controllers

* Add compatibility with the ULV covers mod to the CoAL

* Fix recipe duplication

* Add recipe for the PRASS casings
  • Loading branch information
Zorbatron authored Sep 9, 2024
1 parent eec8709 commit 1e0e5a9
Show file tree
Hide file tree
Showing 9 changed files with 233 additions and 33 deletions.
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

0 comments on commit 1e0e5a9

Please sign in to comment.