Skip to content

Commit c723cc3

Browse files
committed
Don't go through MachineRecipeType caching on the client side
1 parent 2f9c6fe commit c723cc3

File tree

13 files changed

+51
-35
lines changed

13 files changed

+51
-35
lines changed

src/client/java/aztech/modern_industrialization/compat/viewer/usage/MachineCategory.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@
3535
import aztech.modern_industrialization.machines.gui.MachineScreen;
3636
import aztech.modern_industrialization.machines.guicomponents.EnergyBarClient;
3737
import aztech.modern_industrialization.machines.guicomponents.ProgressBarClient;
38-
import aztech.modern_industrialization.machines.init.MIMachineRecipeTypes;
3938
import aztech.modern_industrialization.machines.init.MachineTier;
4039
import aztech.modern_industrialization.machines.recipe.MachineRecipe;
4140
import aztech.modern_industrialization.thirdparty.fabrictransfer.api.fluid.FluidVariant;
@@ -93,8 +92,7 @@ public void buildWorkstations(WorkstationConsumer consumer) {
9392

9493
@Override
9594
public void buildRecipes(RecipeManager recipeManager, RegistryAccess registryAccess, Consumer<RecipeHolder<MachineRecipe>> consumer) {
96-
MIMachineRecipeTypes.getRecipeTypes().stream()
97-
.flatMap(type -> type.getRecipes(Minecraft.getInstance().level).stream())
95+
params.recipeType.getRecipesWithoutCache(Minecraft.getInstance().level).stream()
9896
.filter(recipe -> params.recipePredicate.test(recipe.value()))
9997
.sorted(Comparator.comparing(RecipeHolder::id))
10098
.forEach(consumer);

src/main/java/aztech/modern_industrialization/compat/rei/machines/MachineCategoryParams.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import aztech.modern_industrialization.inventory.SlotPositions;
2727
import aztech.modern_industrialization.machines.guicomponents.ProgressBar;
2828
import aztech.modern_industrialization.machines.recipe.MachineRecipe;
29+
import aztech.modern_industrialization.machines.recipe.MachineRecipeType;
2930
import java.util.ArrayList;
3031
import java.util.List;
3132
import java.util.function.Predicate;
@@ -39,21 +40,23 @@ public class MachineCategoryParams {
3940
public final SlotPositions fluidInputs;
4041
public final SlotPositions fluidOutputs;
4142
public final ProgressBar.Parameters progressBarParams;
43+
public final MachineRecipeType recipeType;
4244
public final Predicate<MachineRecipe> recipePredicate;
4345
public final boolean isMultiblock;
4446
public final SteamMode steamMode;
4547
public final List<ResourceLocation> workstations = new ArrayList<>();
4648

4749
public MachineCategoryParams(String englishName, ResourceLocation category, SlotPositions itemInputs, SlotPositions itemOutputs,
48-
SlotPositions fluidInputs, SlotPositions fluidOutputs, ProgressBar.Parameters progressBarParams, Predicate<MachineRecipe> recipePredicate,
49-
boolean isMultiblock, SteamMode steamMode) {
50+
SlotPositions fluidInputs, SlotPositions fluidOutputs, ProgressBar.Parameters progressBarParams, MachineRecipeType recipeType,
51+
Predicate<MachineRecipe> recipePredicate, boolean isMultiblock, SteamMode steamMode) {
5052
this.englishName = englishName;
5153
this.category = category;
5254
this.itemInputs = itemInputs;
5355
this.itemOutputs = itemOutputs;
5456
this.fluidInputs = fluidInputs;
5557
this.fluidOutputs = fluidOutputs;
5658
this.progressBarParams = progressBarParams;
59+
this.recipeType = recipeType;
5760
this.recipePredicate = recipePredicate;
5861
this.isMultiblock = isMultiblock;
5962
this.steamMode = steamMode;

src/main/java/aztech/modern_industrialization/machines/blockentities/AbstractCraftingMachineBlockEntity.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
import aztech.modern_industrialization.machines.recipe.MachineRecipeType;
4040
import aztech.modern_industrialization.util.Tickable;
4141
import java.util.UUID;
42-
import net.minecraft.world.level.Level;
42+
import net.minecraft.server.level.ServerLevel;
4343
import org.jetbrains.annotations.Nullable;
4444

4545
public abstract class AbstractCraftingMachineBlockEntity extends MachineBlockEntity implements CrafterComponent.Behavior, Tickable,
@@ -106,8 +106,8 @@ public MIInventory getInventory() {
106106
}
107107

108108
@Override
109-
public Level getCrafterWorld() {
110-
return level;
109+
public ServerLevel getCrafterWorld() {
110+
return (ServerLevel) level;
111111
}
112112

113113
@Override

src/main/java/aztech/modern_industrialization/machines/blockentities/multiblocks/AbstractElectricCraftingMultiblockBlockEntity.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,10 @@
3535
import java.util.List;
3636
import java.util.UUID;
3737
import net.minecraft.core.Direction;
38+
import net.minecraft.server.level.ServerLevel;
3839
import net.minecraft.world.InteractionHand;
3940
import net.minecraft.world.ItemInteractionResult;
4041
import net.minecraft.world.entity.player.Player;
41-
import net.minecraft.world.level.Level;
4242
import org.jetbrains.annotations.Nullable;
4343

4444
public abstract class AbstractElectricCraftingMultiblockBlockEntity extends AbstractCraftingMultiblockBlockEntity
@@ -109,8 +109,8 @@ public final long consumeEu(long max, Simulation simulation) {
109109
}
110110

111111
@Override
112-
public final Level getCrafterWorld() {
113-
return level;
112+
public final ServerLevel getCrafterWorld() {
113+
return (ServerLevel) level;
114114
}
115115

116116
@Override

src/main/java/aztech/modern_industrialization/machines/blockentities/multiblocks/SteamCraftingMultiblockBlockEntity.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,10 @@
3838
import java.util.UUID;
3939
import net.minecraft.core.Direction;
4040
import net.minecraft.network.chat.Component;
41+
import net.minecraft.server.level.ServerLevel;
4142
import net.minecraft.world.InteractionHand;
4243
import net.minecraft.world.ItemInteractionResult;
4344
import net.minecraft.world.entity.player.Player;
44-
import net.minecraft.world.level.Level;
4545
import org.jetbrains.annotations.Nullable;
4646

4747
public class SteamCraftingMultiblockBlockEntity extends AbstractCraftingMultiblockBlockEntity {
@@ -105,8 +105,8 @@ public long getMaxRecipeEu() {
105105
}
106106

107107
@Override
108-
public Level getCrafterWorld() {
109-
return level;
108+
public ServerLevel getCrafterWorld() {
109+
return (ServerLevel) level;
110110
}
111111

112112
@Override

src/main/java/aztech/modern_industrialization/machines/components/CrafterComponent.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@
5757
import net.minecraft.world.item.Item;
5858
import net.minecraft.world.item.ItemStack;
5959
import net.minecraft.world.item.crafting.RecipeHolder;
60-
import net.minecraft.world.level.Level;
6160
import net.minecraft.world.level.material.Fluid;
6261
import org.jetbrains.annotations.Nullable;
6362

@@ -104,7 +103,7 @@ default boolean isOverdriving() {
104103
}
105104

106105
// can't use getWorld() or the remapping will fail
107-
Level getCrafterWorld();
106+
ServerLevel getCrafterWorld();
108107

109108
default int getMaxFluidOutputs() {
110109
return Integer.MAX_VALUE;
@@ -627,7 +626,7 @@ protected void clearLocks() {
627626

628627
public void lockRecipe(ResourceLocation recipeId, net.minecraft.world.entity.player.Inventory inventory) {
629628
// Find MachineRecipe
630-
Optional<RecipeHolder<MachineRecipe>> optionalMachineRecipe = behavior.recipeType().getRecipes(behavior.getCrafterWorld()).stream()
629+
Optional<RecipeHolder<MachineRecipe>> optionalMachineRecipe = behavior.recipeType().getRecipesWithCache(behavior.getCrafterWorld()).stream()
631630
.filter(recipe -> recipe.id().equals(recipeId)).findFirst();
632631
if (optionalMachineRecipe.isEmpty())
633632
return;

src/main/java/aztech/modern_industrialization/machines/init/MultiblockMachines.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -790,7 +790,7 @@ public final void register() {
790790

791791
ReiMachineRecipes.registerCategory(category, new MachineCategoryParams(englishName, category,
792792
itemInputs.build(), itemOutputs.build(), fluidInputs.build(), fluidOutputs.build(),
793-
progressBarParams, recipe -> recipe.getType() == recipeType && extraTest.test(recipe), true, steamMode));
793+
progressBarParams, recipeType, extraTest, true, steamMode));
794794
for (ResourceLocation workstation : workstations) {
795795
ReiMachineRecipes.registerWorkstation(category, workstation);
796796
ReiMachineRecipes.registerRecipeCategoryForMachine(workstation, category, ReiMachineRecipes.MachineScreenPredicate.MULTIBLOCK);

src/main/java/aztech/modern_industrialization/machines/init/SingleBlockCraftingMachines.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -245,7 +245,7 @@ public static void registerMachineTiers(String englishName, String machine, Mach
245245
new MachineCategoryParams(null, null, items.sublist(0, itemInputCount),
246246
items.sublist(itemInputCount, itemInputCount + itemOutputCount),
247247
fluids.sublist(0, fluidInputCount), fluids.sublist(fluidInputCount, fluidInputCount + fluidOutputCount), progressBarParams,
248-
null, false, SteamMode.BOTH),
248+
null, null, false, SteamMode.BOTH),
249249
tiers);
250250
}
251251

@@ -265,7 +265,7 @@ private static void registerReiTiers(String englishName, String machine, Machine
265265
MachineCategoryParams category = new MachineCategoryParams(fullEnglishName, MI.id(itemId), categoryParams.itemInputs,
266266
categoryParams.itemOutputs,
267267
categoryParams.fluidInputs, categoryParams.fluidOutputs, categoryParams.progressBarParams,
268-
recipe -> recipe.getType() == recipeType && minEu <= recipe.eu && recipe.eu <= maxEu, false,
268+
recipeType, recipe -> minEu <= recipe.eu && recipe.eu <= maxEu, false,
269269
i < 2 ? SteamMode.BOTH : SteamMode.ELECTRIC_ONLY);
270270
ReiMachineRecipes.registerCategory(MI.id(itemId), category);
271271
ReiMachineRecipes.registerMachineClickArea(MI.id(itemId), categoryParams.progressBarParams.toRectangle());

src/main/java/aztech/modern_industrialization/machines/recipe/CentrifugeMachineRecipeType.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,9 @@
2323
*/
2424
package aztech.modern_industrialization.machines.recipe;
2525

26+
import java.util.List;
2627
import net.minecraft.resources.ResourceLocation;
28+
import net.minecraft.world.item.crafting.RecipeHolder;
2729
import net.minecraft.world.level.Level;
2830
import net.minecraft.world.level.block.ComposterBlock;
2931

@@ -34,7 +36,7 @@ public CentrifugeMachineRecipeType(ResourceLocation id) {
3436
}
3537

3638
@Override
37-
protected void fillRecipeList(Level world) {
39+
protected void fillRecipeList(Level world, List<RecipeHolder<MachineRecipe>> recipeList) {
3840
recipeList.addAll(getManagerRecipes(world));
3941

4042
for (var itemCompostable : ComposterBlock.COMPOSTABLES.keySet()) {

src/main/java/aztech/modern_industrialization/machines/recipe/CuttingMachineRecipeType.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,9 @@
2323
*/
2424
package aztech.modern_industrialization.machines.recipe;
2525

26+
import java.util.List;
2627
import net.minecraft.resources.ResourceLocation;
28+
import net.minecraft.world.item.crafting.RecipeHolder;
2729
import net.minecraft.world.item.crafting.RecipeType;
2830
import net.minecraft.world.level.Level;
2931

@@ -33,7 +35,7 @@ public CuttingMachineRecipeType(ResourceLocation id) {
3335
}
3436

3537
@Override
36-
protected void fillRecipeList(Level world) {
38+
protected void fillRecipeList(Level world, List<RecipeHolder<MachineRecipe>> recipeList) {
3739
// Add all regular cutting machine recipes
3840
recipeList.addAll(getManagerRecipes(world));
3941
// Add all stone cutter recipes

0 commit comments

Comments
 (0)