Skip to content

Commit 49fe83e

Browse files
2.2.2b [fix] Fix extreme tick rate spike when Extra Delight mixer/press compat is working
1 parent 075caa7 commit 49fe83e

3 files changed

Lines changed: 39 additions & 23 deletions

File tree

CHANGELOG.md

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,5 @@
1-
## Create: Central Kitchen 2.2.2
1+
## Create: Central Kitchen 2.2.2b
22

33
### Fix
4-
* **(Critical)** Fix Extra Delight recipe conversion does not working and mess up Machines
5-
* Fix an error in Extra Delight Ponder
6-
7-
### Revert
8-
* Revert last patch for Placebo crash since the issue seems to be not on this side and current patch cause else issue.
9-
10-
If you encounter another crash and also have Placebo installed, please inform me with complete log, thanks!
4+
* Fix extreme tick rate spike when Extra Delight mixer/press compat is working
5+
* Fix a registration issue when Json Things and Hostile Neural Networks are present.

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ mod_id = create_central_kitchen
1717
mod_artifact_id = create-central-kitchen
1818
mod_name = Create: Central Kitchen
1919
mod_license = LGPL-3.0-or-later
20-
mod_version = 2.2.2
20+
mod_version = 2.2.2b
2121
mod_group_id = plus.dragons.createcentralkitchen
2222
mod_authors = DragonsPlus
2323
mod_description = Integrated cooking automation for Create

src/integration/extradelight/java/plus/dragons/createcentralkitchen/mixin/extradelight/RecipeFinderMixin.java

Lines changed: 35 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -21,41 +21,62 @@
2121
import com.lance5057.extradelight.ExtraDelightRecipes;
2222
import com.llamalad7.mixinextras.injector.ModifyReturnValue;
2323
import com.simibubi.create.foundation.recipe.RecipeFinder;
24+
25+
import java.util.Collection;
26+
import java.util.HashSet;
2427
import java.util.List;
2528
import java.util.function.Predicate;
2629
import java.util.stream.Collectors;
2730
import javax.annotation.Nullable;
31+
2832
import net.minecraft.world.item.crafting.Recipe;
2933
import net.minecraft.world.item.crafting.RecipeHolder;
3034
import net.minecraft.world.level.Level;
3135
import org.spongepowered.asm.mixin.Mixin;
36+
import org.spongepowered.asm.mixin.Unique;
3237
import org.spongepowered.asm.mixin.injection.At;
3338
import plus.dragons.createcentralkitchen.config.CCKConfig;
3439
import plus.dragons.createcentralkitchen.integration.extradelight.recipe.ExtraDelightRecipeConverters;
3540

3641
@Mixin(RecipeFinder.class)
3742
public abstract class RecipeFinderMixin {
43+
44+
@Unique
45+
@Nullable
46+
private static Collection<RecipeHolder<? extends Recipe<?>>> create_central_kitchen$CACHED_MIXING_RECIPE;
47+
48+
@Unique
49+
@Nullable
50+
private static Collection<RecipeHolder<? extends Recipe<?>>> create_central_kitchen$CACHED_COMPACTING_RECIPE;
51+
3852
@ModifyReturnValue(method = "get", at = @At(value = "RETURN"))
3953
private static List<RecipeHolder<? extends Recipe<?>>> addRecipe(List<RecipeHolder<? extends Recipe<?>>> original, @Nullable Object cacheKey, Level level, Predicate<RecipeHolder<? extends Recipe<?>>> conditions) {
4054
if (cacheKey == MechanicalMixerBlockEntityAccessor.getShapelessOrMixingRecipesKey()) {
41-
var recipeManager = level.getRecipeManager();
42-
if (CCKConfig.recipes().convertMeltingPotRecipesToMixingRecipes.get()) {
43-
var r = recipeManager.getAllRecipesFor(ExtraDelightRecipes.MELTING_POT.get())
44-
.stream().map(ExtraDelightRecipeConverters.AUTOMATIC_MELTING).filter(conditions).collect(Collectors.toSet());
45-
original.addAll(r);
55+
if(create_central_kitchen$CACHED_MIXING_RECIPE == null) {
56+
var recipeManager = level.getRecipeManager();
57+
if (CCKConfig.recipes().convertMeltingPotRecipesToMixingRecipes.get()) {
58+
create_central_kitchen$CACHED_MIXING_RECIPE =
59+
recipeManager.getAllRecipesFor(ExtraDelightRecipes.MELTING_POT.get())
60+
.stream().map(ExtraDelightRecipeConverters.AUTOMATIC_MELTING).filter(conditions).collect(Collectors.toSet());
61+
}
62+
original.addAll(create_central_kitchen$CACHED_MIXING_RECIPE);
4663
}
4764
} else if (cacheKey == MechanicalPressBlockEntityAccessor.getCompressingRecipesKey()) {
4865
var recipeManager = level.getRecipeManager();
49-
if (CCKConfig.recipes().convertMortarGrindingRecipesToCompactingRecipes.get()) {
50-
var r = recipeManager.getAllRecipesFor(ExtraDelightRecipes.MORTAR.get())
51-
.stream().map(ExtraDelightRecipeConverters.AUTOMATIC_GRINDING).filter(conditions).collect(Collectors.toSet());
52-
original.addAll(r);
53-
}
54-
if (CCKConfig.recipes().convertJuicerRecipesToCompactingRecipes.get()) {
55-
var r = recipeManager.getAllRecipesFor(ExtraDelightRecipes.JUICER.get())
56-
.stream().map(ExtraDelightRecipeConverters.AUTOMATIC_JUICING).filter(conditions).collect(Collectors.toSet());
57-
original.addAll(r);
66+
if(create_central_kitchen$CACHED_COMPACTING_RECIPE == null) {
67+
create_central_kitchen$CACHED_COMPACTING_RECIPE = new HashSet<>();
68+
if (CCKConfig.recipes().convertMortarGrindingRecipesToCompactingRecipes.get()) {
69+
create_central_kitchen$CACHED_COMPACTING_RECIPE.addAll(recipeManager.getAllRecipesFor(ExtraDelightRecipes.MORTAR.get())
70+
.stream().map(ExtraDelightRecipeConverters.AUTOMATIC_GRINDING).filter(conditions).collect(Collectors.toSet()));
71+
72+
}
73+
if (CCKConfig.recipes().convertJuicerRecipesToCompactingRecipes.get()) {
74+
create_central_kitchen$CACHED_COMPACTING_RECIPE.addAll(recipeManager.getAllRecipesFor(ExtraDelightRecipes.JUICER.get())
75+
.stream().map(ExtraDelightRecipeConverters.AUTOMATIC_JUICING).filter(conditions).collect(Collectors.toSet()));
76+
77+
}
5878
}
79+
original.addAll(create_central_kitchen$CACHED_COMPACTING_RECIPE);
5980
}
6081
return original;
6182
}

0 commit comments

Comments
 (0)