Skip to content

Commit 92cb32c

Browse files
committed
Won't run the recipe 💀
1 parent 30f2efe commit 92cb32c

File tree

8 files changed

+37
-9
lines changed

8 files changed

+37
-9
lines changed

src/generated/resources/assets/monilabs/lang/en_ud.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,5 +17,6 @@
1717
"monilabs.prismatic.current_color": "%s ɟo ɹoןoɔ ɐ sɐɥ ʎןʇuǝɹɹnƆ",
1818
"monilabs.prismatic.current_mode": "%s sɹoןoɔ sǝbuɐɥƆ",
1919
"monilabs.prismatic.mode_name.deterministic": "ʎןןɐɔıʇsıuıɯɹǝʇǝp",
20-
"monilabs.prismatic.mode_name.random": "ʎןɯopuɐɹ"
20+
"monilabs.prismatic.mode_name.random": "ʎןɯopuɐɹ",
21+
"monilabs.recipe.color": "%s ǝq oʇ ǝuıɥɔɐɯ sǝɹınbǝᴚ"
2122
}

src/generated/resources/assets/monilabs/lang/en_us.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,5 +17,6 @@
1717
"monilabs.prismatic.current_color": "Currently has a color of %s",
1818
"monilabs.prismatic.current_mode": "Changes colors %s",
1919
"monilabs.prismatic.mode_name.deterministic": "deterministically",
20-
"monilabs.prismatic.mode_name.random": "randomly"
20+
"monilabs.prismatic.mode_name.random": "randomly",
21+
"monilabs.recipe.color": "Requires machine to be %s"
2122
}

src/main/java/net/neganote/monilabs/MoniLabsGTAddon.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,18 +46,16 @@ public void registerRecipeCapabilities() {
4646
MoniRecipeCapabilities.init();
4747
}
4848

49-
public static NumberComponent.IntRange COLOR_RANGE = new NumberComponent.IntRange(0, 11);
50-
public static final ContentJS<Integer> COLOR_IN = new ContentJS<>(COLOR_RANGE, MoniRecipeCapabilities.COLOR, false);
49+
public static NumberComponent.IntRange COLOR_RANGE = new NumberComponent.IntRange(1, 12);
5150
public static final ContentJS<Integer> COLOR_OUT = new ContentJS<>(COLOR_RANGE, MoniRecipeCapabilities.COLOR, true);
5251

5352
public static NumberComponent.IntRange PRISMATIC_MODE_RANGE = new NumberComponent.IntRange(0, 2);
54-
public static final ContentJS<Integer> PRISMATIC_MODE_IN = new ContentJS<>(PRISMATIC_MODE_RANGE, MoniRecipeCapabilities.PRISMATIC_MODE, false);
5553
public static final ContentJS<Integer> PRISMATIC_MODE_OUT = new ContentJS<>(PRISMATIC_MODE_RANGE, MoniRecipeCapabilities.PRISMATIC_MODE, true);
5654

5755
@Override
5856
public void registerRecipeKeys(KJSRecipeKeyEvent event) {
59-
event.registerKey(MoniRecipeCapabilities.COLOR, Pair.of(COLOR_IN, COLOR_OUT));
60-
event.registerKey(MoniRecipeCapabilities.PRISMATIC_MODE, Pair.of(PRISMATIC_MODE_IN, PRISMATIC_MODE_OUT));
57+
event.registerKey(MoniRecipeCapabilities.COLOR, Pair.of(null, COLOR_OUT));
58+
event.registerKey(MoniRecipeCapabilities.PRISMATIC_MODE, Pair.of(null, PRISMATIC_MODE_OUT));
6159
}
6260

6361
}

src/main/java/net/neganote/monilabs/common/machine/multiblock/PrismaticCrucibleMachine.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
import com.gregtechceu.gtceu.api.machine.IMachineBlockEntity;
44
import com.gregtechceu.gtceu.api.machine.multiblock.WorkableElectricMultiblockMachine;
5+
import com.gregtechceu.gtceu.api.recipe.GTRecipe;
6+
import org.jetbrains.annotations.Nullable;
57

68
import javax.annotation.ParametersAreNonnullByDefault;
79

@@ -23,6 +25,22 @@ public void onStructureFormed() {
2325
mode = PrismaticMode.DETERMINISTIC;
2426
}
2527

28+
@Override
29+
public boolean beforeWorking(@Nullable GTRecipe recipe) {
30+
if (recipe == null) return false;
31+
if (!recipe.data.contains("required_color") || recipe.data.getInt("required_color") != color.modulus) {
32+
return false;
33+
}
34+
return super.beforeWorking(recipe);
35+
}
36+
37+
@Override
38+
public void afterWorking() {
39+
super.afterWorking();
40+
GTRecipe recipe = recipeLogic.getLastRecipe();
41+
42+
}
43+
2644
private void changeColorState(Color newColor) {
2745
color = newColor;
2846
}

src/main/java/net/neganote/monilabs/data/MoniMachines.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package net.neganote.monilabs.data;
22

3+
import com.gregtechceu.gtceu.GTCEu;
34
import com.gregtechceu.gtceu.api.data.RotationState;
45
import com.gregtechceu.gtceu.api.machine.MultiblockMachineDefinition;
56
import com.gregtechceu.gtceu.api.pattern.FactoryBlockPattern;
@@ -39,6 +40,8 @@ public class MoniMachines {
3940
components.add(Component.translatable("monilabs.prismatic.current_mode", Component.translatable(prismMachine.getCurrentMode().nameKey)));
4041
}
4142
})
43+
// TODO: replace with custom renderer
44+
.workableCasingRenderer(MoniLabs.id("block/casings/prismatic_casing"), GTCEu.id("block/multiblock/processing_array"))
4245
.register();
4346

4447
public static void init() {}

src/main/java/net/neganote/monilabs/data/lang/MoniLangHandler.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,7 @@ public static void init(RegistrateLangProvider provider) {
2121
provider.add("monilabs.prismatic.current_mode", "Changes colors %s");
2222
provider.add("monilabs.prismatic.mode_name.deterministic", "deterministically");
2323
provider.add("monilabs.prismatic.mode_name.random", "randomly");
24+
25+
provider.add("monilabs.recipe.color", "Requires machine to be %s");
2426
}
2527
}

src/main/java/net/neganote/monilabs/gtbridge/MoniRecipeTypes.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,21 @@
55
import com.gregtechceu.gtceu.api.recipe.GTRecipeType;
66
import com.gregtechceu.gtceu.common.data.GTRecipeTypes;
77
import com.lowdragmc.lowdraglib.gui.texture.ProgressTexture;
8+
import com.lowdragmc.lowdraglib.utils.LocalizationUtils;
9+
import net.neganote.monilabs.common.machine.multiblock.PrismaticCrucibleMachine.Color;
810

911
import static net.neganote.monilabs.capability.recipe.MoniRecipeCapabilities.COLOR;
1012
import static net.neganote.monilabs.capability.recipe.MoniRecipeCapabilities.PRISMATIC_MODE;
1113

1214
public class MoniRecipeTypes {
1315
public static final GTRecipeType PRISMATIC_CRUCIBLE_RECIPES = GTRecipeTypes
1416
.register("prismatic_crucible", GTRecipeTypes.MULTIBLOCK)
17+
.addDataInfo(data -> {
18+
int modulus = data.getInt("required_color");
19+
return LocalizationUtils.format("monilabs.recipe.color", LocalizationUtils.format(Color.getColorFromModulus(modulus).nameKey));
20+
})
1521
.setMaxIOSize(3, 1, 1, 0)
1622
.setEUIO(IO.IN)
17-
.setMaxSize(IO.IN, COLOR, 1)
1823
.setMaxSize(IO.OUT, COLOR, 1)
1924
.setMaxSize(IO.OUT, PRISMATIC_MODE, 1)
2025
.setProgressBar(GuiTextures.PROGRESS_BAR_ARROW, ProgressTexture.FillDirection.LEFT_TO_RIGHT);

src/main/java/net/neganote/monilabs/gtbridge/MoniRecipes.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public class MoniRecipes {
1515
public static void init(Consumer<FinishedRecipe> provider) {
1616
// Used to test prismatic crucible functionality
1717
PRISMATIC_CRUCIBLE_RECIPES.recipeBuilder("prismatic_crucible_test_recipe")
18-
.input(COLOR, Color.RED.modulus)
18+
.addData("required_color", Color.RED.modulus)
1919
.output(COLOR, Color.GREEN.modulus)
2020
.inputItems(RED_DYE, 32)
2121
.outputItems(GREEN_DYE, 32)

0 commit comments

Comments
 (0)