Skip to content

Commit 4199621

Browse files
authored
[1.20.1] Added the rest of JEI compat (#2)
* started work on jei compat * added clickable area for producers (dna wip) * finished producers * fixed recipe path typo * finished dna labware display, moving to processing machines * added recipe catalysts * forgot to run data generators * cleaned up some code, made it less congested * moved producers code under same path
1 parent 32b4b7d commit 4199621

22 files changed

+269
-18
lines changed
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
// 1.20.1 2025-01-14T18:00:20.7166039 ModKit Language: en_us for mod 'gendustry'
2-
a67e95b70c92f62f4d94c6831fced1974ff2d8ae assets/gendustry/lang/en_us.json
1+
// 1.20.1 2025-01-20T18:49:21.4418297 ModKit Language: en_us for mod 'gendustry'
2+
dc3ec84cadb2f83e7e36bcc5e6e5d5be1c1ef5cb assets/gendustry/lang/en_us.json

src/generated/resources/.cache/9fb1092f32d4fcbf9e061ffd718d4ec689c6c95e

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// 1.20.1 2025-01-14T23:05:00.7044002 Recipes
1+
// 1.20.1 2025-01-20T19:27:35.7743009 Recipes
22
f6e776b964531a01c7ba87ab89c7705969105cc3 data/gendustry/advancements/recipes/misc/activity_simulator_elite_upgrade.json
33
d10b8cb8f7e9927b0057ca12bb22cf6c25abfefa data/gendustry/advancements/recipes/misc/advanced_mutatron.json
44
611d8e0b68aa9b0a58559a0dfb5ceb13fd9298eb data/gendustry/advancements/recipes/misc/automation_upgrade.json
@@ -52,6 +52,16 @@ d6ea5ac2ddf764d1b7218e1fc11da0ead2b274aa data/gendustry/recipes/blank_gene_sampl
5252
a4d95241e639906aab9c5c737863560401480a0b data/gendustry/recipes/climate_control_module.json
5353
f687cc074d768e789b2d43e62fc906be97c58347 data/gendustry/recipes/combine_genetic_template.json
5454
45a06cae1f7bab07a93086cc00a694a17a00d880 data/gendustry/recipes/cooler_upgrade.json
55+
229f6a1cd1e8c23694c5108459f5de194efd5906 data/gendustry/recipes/dna/butterfly.json
56+
4292d9a2976565315a4255be1f660435fa449d5a data/gendustry/recipes/dna/caterpillar.json
57+
59c53139f3f24805e5001dd08925e8b6ecb02e27 data/gendustry/recipes/dna/cocoon.json
58+
2c76f025619f28d4158560435440eed4e2097512 data/gendustry/recipes/dna/drone.json
59+
222536094cf0c80e647641c30315ad6dff23749a data/gendustry/recipes/dna/larvae.json
60+
4bc638cda6099f6b9e4ce46b024e4485f3e921bf data/gendustry/recipes/dna/pollen.json
61+
01228d2c8433f025a6e867f67aebce5e49294af7 data/gendustry/recipes/dna/princess.json
62+
054f9162f068c570e76337f041013d8ba9e4b4b1 data/gendustry/recipes/dna/queen.json
63+
aeeea2c652f238e7603f6d5c6fe094ba17569d0b data/gendustry/recipes/dna/sapling.json
64+
660c786e588fe8c87c21bdd2e1394fbea83a3559 data/gendustry/recipes/dna/serum.json
5565
5c12ca057c9bd513560789eb97bda2bf29ab49c9 data/gendustry/recipes/dna_extractor.json
5666
67d8b0786245d71d7b72a3cd71b55e5a07d44966 data/gendustry/recipes/dryer_upgrade.json
5767
297c2d8e805ec336444ebd9ec5c419f19eaf4f50 data/gendustry/recipes/elite_upgrade_frame.json
@@ -80,21 +90,11 @@ fe09292eda4663ede6a06a734a3058c72bc5a2d9 data/gendustry/recipes/mutatron.json
8090
f92c2071f551fb9b13c087a77707c01cc5025fad data/gendustry/recipes/productivity_elite_upgrade.json
8191
637315de889058b0d5fa24c9813ca63053f6cf6a data/gendustry/recipes/productivity_upgrade.json
8292
d085832ee27decbc77ba94611341566f7b9193c0 data/gendustry/recipes/protein/beef.json
83-
229f6a1cd1e8c23694c5108459f5de194efd5906 data/gendustry/recipes/protein/butterfly.json
84-
4292d9a2976565315a4255be1f660435fa449d5a data/gendustry/recipes/protein/caterpillar.json
85-
59c53139f3f24805e5001dd08925e8b6ecb02e27 data/gendustry/recipes/protein/cocoon.json
8693
252530d1cf7f4567122c422fa1b8f918db6cb0ec data/gendustry/recipes/protein/cod.json
87-
2c76f025619f28d4158560435440eed4e2097512 data/gendustry/recipes/protein/drone.json
88-
222536094cf0c80e647641c30315ad6dff23749a data/gendustry/recipes/protein/larvae.json
89-
4bc638cda6099f6b9e4ce46b024e4485f3e921bf data/gendustry/recipes/protein/pollen.json
9094
3252b0df877b4e0883ba4397aaaf5fb89fcb7fad data/gendustry/recipes/protein/porkchop.json
91-
01228d2c8433f025a6e867f67aebce5e49294af7 data/gendustry/recipes/protein/princess.json
9295
ca53c63c78b08871076323f9a0c7ff420bec8990 data/gendustry/recipes/protein/pufferfish.json
93-
054f9162f068c570e76337f041013d8ba9e4b4b1 data/gendustry/recipes/protein/queen.json
9496
553091dd7e400e6a1e40e6fa23aca2442041c2a0 data/gendustry/recipes/protein/rabbit.json
9597
e623827b959a2409af87b8c921f6de8cd73b1d9e data/gendustry/recipes/protein/salmon.json
96-
aeeea2c652f238e7603f6d5c6fe094ba17569d0b data/gendustry/recipes/protein/sapling.json
97-
660c786e588fe8c87c21bdd2e1394fbea83a3559 data/gendustry/recipes/protein/serum.json
9898
63000ab315360768fe18aa0a2bbd204cf7c81877 data/gendustry/recipes/protein/tropical_fish.json
9999
a2c7e6c66243a7287b9aa16e01b1802314f8ec80 data/gendustry/recipes/protein_liquefier.json
100100
82f1540f27dcebb8b282a0c78865a9414e276f78 data/gendustry/recipes/receptacle.json

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@
7171
"for.hints.sample_usage.tag": "What are samples for?",
7272
"for.hints.transposer_usage.desc": "The Genetic Transposer creates copies of Gene Samples and Genetic Templates.",
7373
"for.hints.transposer_usage.tag": "How to use the Genetic Transposer?",
74+
"gen.for.chance": "%s%% chance to be consumed!",
7475
"item.gendustry.activity_simulator_elite_upgrade": "Activity Simulator Elite Upgrade",
7576
"item.gendustry.activity_simulator_elite_upgrade.tooltip": "A combination of the Sky, Weatherproof, and Lighting upgrades.",
7677
"item.gendustry.automation_upgrade": "Automation Upgrade",

src/main/java/thedarkcolour/gendustry/compat/jei/GendustryJeiPlugin.java

Lines changed: 35 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,23 @@
11
package thedarkcolour.gendustry.compat.jei;
22

3+
import forestry.core.ClientsideCode;
4+
import forestry.core.utils.RecipeUtils;
5+
import mezz.jei.api.helpers.IGuiHelper;
6+
import mezz.jei.api.registration.*;
37
import net.minecraft.resources.ResourceLocation;
48

59
import mezz.jei.api.IModPlugin;
610
import mezz.jei.api.JeiPlugin;
711
import mezz.jei.api.recipe.RecipeType;
8-
import mezz.jei.api.registration.IGuiHandlerRegistration;
9-
import mezz.jei.api.registration.ISubtypeRegistration;
12+
import net.minecraft.world.item.crafting.RecipeManager;
1013
import thedarkcolour.gendustry.Gendustry;
11-
import thedarkcolour.gendustry.GendustryModule;
12-
import thedarkcolour.gendustry.client.screen.MutatronScreen;
14+
import thedarkcolour.gendustry.client.screen.*;
15+
import thedarkcolour.gendustry.compat.jei.producers.DNAExtractorRecipeCategory;
16+
import thedarkcolour.gendustry.compat.jei.producers.MutagenRecipeCategory;
17+
import thedarkcolour.gendustry.compat.jei.producers.ProducerGuiContainerHandler;
18+
import thedarkcolour.gendustry.compat.jei.producers.ProteinProducerRecipeCategory;
1319
import thedarkcolour.gendustry.registry.GItems;
20+
import thedarkcolour.gendustry.registry.GRecipeTypes;
1421

1522
@JeiPlugin
1623
public class GendustryJeiPlugin implements IModPlugin {
@@ -26,6 +33,29 @@ public void registerItemSubtypes(ISubtypeRegistration registration) {
2633
registration.registerSubtypeInterpreter(GItems.GENE_SAMPLE.item(), new GeneSampleInterpreter());
2734
}
2835

36+
@Override
37+
public void registerCategories(IRecipeCategoryRegistration registration) {
38+
IGuiHelper guiHelper = registration.getJeiHelpers().getGuiHelper();
39+
registration.addRecipeCategories(new MutagenRecipeCategory(guiHelper));
40+
registration.addRecipeCategories(new ProteinProducerRecipeCategory(guiHelper));
41+
registration.addRecipeCategories(new DNAExtractorRecipeCategory(guiHelper));
42+
}
43+
44+
@Override
45+
public void registerRecipeCatalysts(IRecipeCatalystRegistration registration) {
46+
registration.addRecipeCatalyst(MutagenRecipeCategory.ICON_STACK, GendustryRecipeType.MUTAGEN_PRODUCER);
47+
registration.addRecipeCatalyst(DNAExtractorRecipeCategory.ICON_STACK, GendustryRecipeType.DNA_EXTRACTOR);
48+
registration.addRecipeCatalyst(ProteinProducerRecipeCategory.ICON_STACK, GendustryRecipeType.PROTEIN_LIQUEFIER);
49+
}
50+
51+
@Override
52+
public void registerRecipes(IRecipeRegistration registration) {
53+
RecipeManager manager = ClientsideCode.getRecipeManager();
54+
registration.addRecipes(GendustryRecipeType.MUTAGEN_PRODUCER, RecipeUtils.getRecipes(manager, GRecipeTypes.MUTAGEN).toList());
55+
registration.addRecipes(GendustryRecipeType.PROTEIN_LIQUEFIER, RecipeUtils.getRecipes(manager, GRecipeTypes.PROTEIN).toList());
56+
registration.addRecipes(GendustryRecipeType.DNA_EXTRACTOR, RecipeUtils.getRecipes(manager, GRecipeTypes.DNA).toList());
57+
}
58+
2959
@Override
3060
public void registerGuiHandlers(IGuiHandlerRegistration registration) {
3161
// todo replace with MutationRecipe.class when Forestry makes it public
@@ -34,5 +64,6 @@ public void registerGuiHandlers(IGuiHandlerRegistration registration) {
3464
.toArray(RecipeType[]::new);
3565

3666
registration.addRecipeClickArea(MutatronScreen.class, 68, 38, 55, 18, mutationTypes);
67+
registration.addGuiContainerHandler(ProducerScreen.class, new ProducerGuiContainerHandler());
3768
}
3869
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package thedarkcolour.gendustry.compat.jei;
2+
3+
import mezz.jei.api.recipe.RecipeType;
4+
import thedarkcolour.gendustry.Gendustry;
5+
import thedarkcolour.gendustry.recipe.DnaRecipe;
6+
import thedarkcolour.gendustry.recipe.MutagenRecipe;
7+
import thedarkcolour.gendustry.recipe.ProteinRecipe;
8+
9+
public class GendustryRecipeType {
10+
11+
public static final RecipeType<MutagenRecipe> MUTAGEN_PRODUCER = create("mutagen_producer", MutagenRecipe.class);
12+
public static final RecipeType<DnaRecipe> DNA_EXTRACTOR = create("dna_extractor", DnaRecipe.class);
13+
public static final RecipeType<ProteinRecipe> PROTEIN_LIQUEFIER = create("protein_liquefier", ProteinRecipe.class);
14+
15+
private static <T> RecipeType<T> create(String uid, Class<? extends T> recipeClass) {
16+
return RecipeType.create(Gendustry.ID, uid, recipeClass);
17+
}
18+
}
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package thedarkcolour.gendustry.compat.jei.producers;
2+
3+
import mezz.jei.api.gui.builder.IRecipeLayoutBuilder;
4+
import mezz.jei.api.gui.drawable.IDrawable;
5+
import mezz.jei.api.gui.ingredient.IRecipeSlotsView;
6+
import mezz.jei.api.helpers.IGuiHelper;
7+
import mezz.jei.api.recipe.IFocusGroup;
8+
import mezz.jei.api.recipe.RecipeIngredientRole;
9+
import mezz.jei.api.recipe.RecipeType;
10+
import net.minecraft.ChatFormatting;
11+
import net.minecraft.client.gui.GuiGraphics;
12+
import net.minecraft.network.chat.Component;
13+
import net.minecraft.world.item.ItemStack;
14+
import thedarkcolour.gendustry.block.GendustryMachineType;
15+
import thedarkcolour.gendustry.compat.jei.GendustryRecipeType;
16+
import thedarkcolour.gendustry.item.GendustryResourceType;
17+
import thedarkcolour.gendustry.recipe.DnaRecipe;
18+
import thedarkcolour.gendustry.registry.GBlocks;
19+
import thedarkcolour.gendustry.registry.GFluids;
20+
import thedarkcolour.gendustry.registry.GItems;
21+
22+
public class DNAExtractorRecipeCategory extends ProducerRecipeCategory<DnaRecipe> {
23+
24+
public static final ItemStack ICON_STACK = new ItemStack(GBlocks.MACHINE.get(GendustryMachineType.DNA_EXTRACTOR).block());
25+
private final IDrawable labwareSlot;
26+
27+
public DNAExtractorRecipeCategory(IGuiHelper helper) {
28+
super(helper, "block.gendustry.dna_extractor", ICON_STACK);
29+
this.labwareSlot = helper.createDrawable(GUI, 176, 78, 18, 18);
30+
}
31+
32+
@Override
33+
public RecipeType<DnaRecipe> getRecipeType() {
34+
return GendustryRecipeType.DNA_EXTRACTOR;
35+
}
36+
37+
@Override
38+
public void setRecipe(IRecipeLayoutBuilder builder, DnaRecipe recipe, IFocusGroup iFocusGroup) {
39+
builder.addSlot(RecipeIngredientRole.INPUT, 1, 23).addItemStack(recipe.getSpeciesType().getDefaultSpecies().createStack(recipe.getStage()));
40+
addFluidTank(builder, GFluids.LIQUID_DNA.fluid(), recipe.getAmount());
41+
builder.addSlot(RecipeIngredientRole.INPUT, 51, 1).addItemStack(GItems.RESOURCE.item(GendustryResourceType.LABWARE).getDefaultInstance()).addRichTooltipCallback((recipeSlotView, tooltip) -> {
42+
tooltip.add(Component.translatable("gen.for.chance", 10).withStyle(ChatFormatting.AQUA));
43+
});
44+
}
45+
46+
@Override
47+
public void draw(DnaRecipe recipe, IRecipeSlotsView recipeSlotsView, GuiGraphics graphics, double mouseX, double mouseY) {
48+
super.draw(recipe, recipeSlotsView, graphics, mouseX, mouseY);
49+
this.labwareSlot.draw(graphics, 50, 0);
50+
}
51+
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package thedarkcolour.gendustry.compat.jei.producers;
2+
3+
import mezz.jei.api.gui.builder.IRecipeLayoutBuilder;
4+
import mezz.jei.api.helpers.IGuiHelper;
5+
import mezz.jei.api.recipe.IFocusGroup;
6+
import mezz.jei.api.recipe.RecipeIngredientRole;
7+
import mezz.jei.api.recipe.RecipeType;
8+
import net.minecraft.world.item.ItemStack;
9+
import thedarkcolour.gendustry.block.GendustryMachineType;
10+
import thedarkcolour.gendustry.compat.jei.GendustryRecipeType;
11+
import thedarkcolour.gendustry.recipe.MutagenRecipe;
12+
import thedarkcolour.gendustry.registry.GBlocks;
13+
import thedarkcolour.gendustry.registry.GFluids;
14+
15+
public class MutagenRecipeCategory extends ProducerRecipeCategory<MutagenRecipe> {
16+
17+
public static final ItemStack ICON_STACK = new ItemStack(GBlocks.MACHINE.get(GendustryMachineType.MUTAGEN_PRODUCER).block());
18+
19+
public MutagenRecipeCategory(IGuiHelper helper) {
20+
super(helper, "block.gendustry.mutagen_producer", ICON_STACK);
21+
}
22+
23+
@Override
24+
public RecipeType<MutagenRecipe> getRecipeType() {
25+
return GendustryRecipeType.MUTAGEN_PRODUCER;
26+
}
27+
28+
@Override
29+
public void setRecipe(IRecipeLayoutBuilder builder, MutagenRecipe recipe, IFocusGroup focuses) {
30+
builder.addSlot(RecipeIngredientRole.INPUT, 1, 23).addIngredients(recipe.getIngredient());
31+
addFluidTank(builder, GFluids.MUTAGEN.fluid(), recipe.getAmount());
32+
}
33+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package thedarkcolour.gendustry.compat.jei.producers;
2+
3+
import mezz.jei.api.gui.handlers.IGuiClickableArea;
4+
import mezz.jei.api.gui.handlers.IGuiContainerHandler;
5+
import net.minecraft.world.level.block.entity.BlockEntity;
6+
import thedarkcolour.gendustry.blockentity.DnaExtractorBlockEntity;
7+
import thedarkcolour.gendustry.blockentity.MutagenProducerBlockEntity;
8+
import thedarkcolour.gendustry.blockentity.ProteinLiquefierBlockEntity;
9+
import thedarkcolour.gendustry.client.screen.ProducerScreen;
10+
import thedarkcolour.gendustry.compat.jei.GendustryRecipeType;
11+
12+
import java.util.Collection;
13+
import java.util.Collections;
14+
15+
public class ProducerGuiContainerHandler implements IGuiContainerHandler<ProducerScreen> {
16+
17+
@Override
18+
public Collection<IGuiClickableArea> getGuiClickableAreas(ProducerScreen containerScreen, double guiMouseX, double guiMouseY) {
19+
BlockEntity blockEntity = containerScreen.getMenu().getTile();
20+
if (blockEntity instanceof MutagenProducerBlockEntity) {
21+
return Collections.singleton(IGuiClickableArea.createBasic(48, 40, 55, 18, GendustryRecipeType.MUTAGEN_PRODUCER));
22+
} else if (blockEntity instanceof DnaExtractorBlockEntity) {
23+
return Collections.singleton(IGuiClickableArea.createBasic(48, 40, 55, 18, GendustryRecipeType.DNA_EXTRACTOR));
24+
} else if (blockEntity instanceof ProteinLiquefierBlockEntity) {
25+
return Collections.singleton(IGuiClickableArea.createBasic(48, 40, 55, 18, GendustryRecipeType.PROTEIN_LIQUEFIER));
26+
}
27+
return Collections.emptyList();
28+
}
29+
}
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
package thedarkcolour.gendustry.compat.jei.producers;
2+
3+
import forestry.core.recipes.jei.ForestryRecipeCategory;
4+
import mezz.jei.api.constants.VanillaTypes;
5+
import mezz.jei.api.forge.ForgeTypes;
6+
import mezz.jei.api.gui.builder.IRecipeLayoutBuilder;
7+
import mezz.jei.api.gui.drawable.IDrawable;
8+
import mezz.jei.api.gui.drawable.IDrawableAnimated;
9+
import mezz.jei.api.gui.drawable.IDrawableStatic;
10+
import mezz.jei.api.gui.ingredient.IRecipeSlotsView;
11+
import mezz.jei.api.helpers.IGuiHelper;
12+
import mezz.jei.api.recipe.RecipeIngredientRole;
13+
import net.minecraft.client.gui.GuiGraphics;
14+
import net.minecraft.resources.ResourceLocation;
15+
import net.minecraft.world.item.ItemStack;
16+
import net.minecraft.world.level.material.Fluid;
17+
import net.minecraftforge.fluids.FluidStack;
18+
import org.jetbrains.annotations.Nullable;
19+
import thedarkcolour.gendustry.Gendustry;
20+
import thedarkcolour.gendustry.recipe.ProcessorRecipe;
21+
22+
public abstract class ProducerRecipeCategory<T extends ProcessorRecipe> extends ForestryRecipeCategory<T> {
23+
24+
protected static final ResourceLocation GUI = new ResourceLocation(Gendustry.ID, "textures/gui/processor.png");
25+
private final IDrawableAnimated arrow;
26+
private final IDrawable tankOverlay;
27+
private final IDrawable icon;
28+
29+
public ProducerRecipeCategory(IGuiHelper helper, String unlocalizedName, ItemStack stack) {
30+
super(helper.createDrawable(GUI, 13, 18, 151, 60), unlocalizedName);
31+
32+
IDrawableStatic arrowDrawable = helper.createDrawable(GUI, 176, 60, 55, 18);
33+
this.arrow = helper.createAnimatedDrawable(arrowDrawable, 200, IDrawableAnimated.StartDirection.LEFT, false);
34+
this.tankOverlay = helper.createDrawable(GUI, 176, 0, 16, 58);
35+
this.icon = helper.createDrawableIngredient(VanillaTypes.ITEM_STACK, stack);
36+
}
37+
38+
@Override
39+
public @Nullable IDrawable getIcon() {
40+
return this.icon;
41+
}
42+
43+
@Override
44+
public void draw(T recipe, IRecipeSlotsView recipeSlotsView, GuiGraphics graphics, double mouseX, double mouseY) {
45+
this.arrow.draw(graphics, 35, 23);
46+
}
47+
48+
protected void addFluidTank(IRecipeLayoutBuilder builder, Fluid fluid, int amount) {
49+
builder.addSlot(RecipeIngredientRole.OUTPUT, 109, 1)
50+
.setFluidRenderer(10000, false, 16, 58)
51+
.setOverlay(tankOverlay, 0, 0)
52+
.addIngredient(ForgeTypes.FLUID_STACK, new FluidStack(fluid, amount));
53+
}
54+
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package thedarkcolour.gendustry.compat.jei.producers;
2+
3+
import mezz.jei.api.gui.builder.IRecipeLayoutBuilder;
4+
import mezz.jei.api.helpers.IGuiHelper;
5+
import mezz.jei.api.recipe.IFocusGroup;
6+
import mezz.jei.api.recipe.RecipeIngredientRole;
7+
import mezz.jei.api.recipe.RecipeType;
8+
import net.minecraft.world.item.ItemStack;
9+
import thedarkcolour.gendustry.block.GendustryMachineType;
10+
import thedarkcolour.gendustry.compat.jei.GendustryRecipeType;
11+
import thedarkcolour.gendustry.recipe.ProteinRecipe;
12+
import thedarkcolour.gendustry.registry.GBlocks;
13+
import thedarkcolour.gendustry.registry.GFluids;
14+
15+
public class ProteinProducerRecipeCategory extends ProducerRecipeCategory<ProteinRecipe> {
16+
17+
public static final ItemStack ICON_STACK = new ItemStack(GBlocks.MACHINE.get(GendustryMachineType.PROTEIN_LIQUEFIER).block());
18+
19+
public ProteinProducerRecipeCategory(IGuiHelper helper) {
20+
super(helper, "block.gendustry.protein_liquefier", ICON_STACK);
21+
}
22+
23+
@Override
24+
public RecipeType<ProteinRecipe> getRecipeType() {
25+
return GendustryRecipeType.PROTEIN_LIQUEFIER;
26+
}
27+
28+
@Override
29+
public void setRecipe(IRecipeLayoutBuilder builder, ProteinRecipe recipe, IFocusGroup iFocusGroup) {
30+
builder.addSlot(RecipeIngredientRole.INPUT, 1, 23).addIngredients(recipe.getIngredient());
31+
addFluidTank(builder, GFluids.PROTEIN.fluid(), recipe.getAmount());
32+
}
33+
}

src/main/java/thedarkcolour/gendustry/data/English.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ static void addTranslations(MKEnglishProvider lang) {
2222
lang.add(TranslationKeys.TEMPLATE_ALLELE_COUNT, "Alleles (%1$s/%2$s)");
2323
lang.add(TranslationKeys.UPGRADE_ENERGY_COST, "Energy Cost: %s RF");
2424
lang.add(TranslationKeys.UPGRADE_STACK_LIMIT, "Max Count: %s");
25+
lang.add("gen.for.chance", "%s%% chance to be consumed!");
2526

2627
// Machine hints
2728
addHint(lang, TranslationKeys.HINT_MUTAGEN_USAGE, "What's Mutagen for?", "Produce Mutagen to use in other Gendustry machines.");

src/main/java/thedarkcolour/gendustry/data/Recipes.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -515,6 +515,6 @@ private static void protein(Consumer<FinishedRecipe> writer, Item input, int pro
515515
}
516516

517517
private static void dna(Consumer<FinishedRecipe> writer, ResourceLocation speciesType, ILifeStage input, int dna) {
518-
writer.accept(new DnaFinishedRecipe(Gendustry.loc("protein/" + input.getSerializedName()), IForestryApi.INSTANCE.getGeneticManager().getSpeciesType(speciesType), input, dna));
518+
writer.accept(new DnaFinishedRecipe(Gendustry.loc("dna/" + input.getSerializedName()), IForestryApi.INSTANCE.getGeneticManager().getSpeciesType(speciesType), input, dna));
519519
}
520520
}

0 commit comments

Comments
 (0)