Skip to content

Commit e900c42

Browse files
committed
2.0.3
1 parent 3bcea02 commit e900c42

File tree

6 files changed

+37
-36
lines changed

6 files changed

+37
-36
lines changed

gradle.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ minecraft_version=1.19.2
55
fabric_version=0.68.0+1.19.2
66
loader_version=0.14.11
77
# Mod Properties
8-
mod_version=2.0.2
8+
mod_version=2.0.3
99
maven_group=me.chikage
1010
archives_base_name=emicompat
1111
emi_version=0.4.3+1.19

src/main/java/me/chikage/emicompat/EmiCompatPlugin.java

+14
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,21 @@
22

33
import dev.emi.emi.api.EmiPlugin;
44
import dev.emi.emi.api.EmiRegistry;
5+
import dev.emi.emi.api.recipe.EmiRecipe;
56
import me.chikage.emicompat.ae2.Ae2Plugin;
67
import me.chikage.emicompat.ae2wtlib.Ae2wtlibPlugin;
78
import me.chikage.emicompat.createaddition.CreateAdditionPlugin;
89
import me.chikage.emicompat.farmersdelight.FarmersDelightPlugin;
910
import net.fabricmc.loader.api.FabricLoader;
11+
import net.minecraft.world.Container;
12+
import net.minecraft.world.item.crafting.Recipe;
13+
import net.minecraft.world.item.crafting.RecipeType;
1014
import org.slf4j.Logger;
1115
import org.slf4j.LoggerFactory;
1216

17+
import java.util.List;
18+
import java.util.function.Function;
19+
1320
public class EmiCompatPlugin implements EmiPlugin {
1421
public static final Logger LOGGER = LoggerFactory.getLogger("emicompat");
1522

@@ -25,4 +32,11 @@ public void register(EmiRegistry emi) {
2532
if (loader.isModLoaded("ae2wtlib"))
2633
new Ae2wtlibPlugin().register(emi);
2734
}
35+
36+
@SuppressWarnings("unchecked")
37+
public static <T extends Recipe<?>> void addAll(EmiRegistry registry, RecipeType type, Function<T, EmiRecipe> constructor) {
38+
for (T recipe : (List<T>) registry.getRecipeManager().getAllRecipesFor(type)) {
39+
registry.addRecipe(constructor.apply(recipe));
40+
}
41+
}
2842
}

src/main/java/me/chikage/emicompat/ae2/Ae2Plugin.java

+7-11
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@
3232
import java.util.Map;
3333
import java.util.stream.Collectors;
3434

35+
import static me.chikage.emicompat.EmiCompatPlugin.addAll;
36+
3537

3638
public class Ae2Plugin implements EmiPlugin {
3739
public static final Map<ResourceLocation, EmiRecipeCategory> ALL = new LinkedHashMap<>();
@@ -46,7 +48,6 @@ public class Ae2Plugin implements EmiPlugin {
4648

4749
@Override
4850
public void register(EmiRegistry registry) {
49-
var recipes = registry.getRecipeManager();
5051
ALL.forEach((id, category) -> registry.addCategory(category));
5152

5253
registry.addWorkstation(VanillaEmiRecipeCategories.CRAFTING, EmiStack.of(AEParts.CRAFTING_TERMINAL.stack()));
@@ -63,9 +64,7 @@ public void register(EmiRegistry registry) {
6364
});
6465

6566
registry.addWorkstation(INSCRIBER, EmiStack.of(AEBlocks.INSCRIBER.stack()));
66-
recipes.getAllRecipesFor(InscriberRecipe.TYPE).stream()
67-
.parallel().map(EMIInscriberRecipe::new)
68-
.forEach(registry::addRecipe);
67+
addAll(registry,InscriberRecipe.TYPE,EMIInscriberRecipe::new);
6968

7069
registry.addWorkstation(CONDENSER, EmiStack.of(AEBlocks.CONDENSER.stack()));
7170
registry.addRecipe(new EMICondenserRecipe(CondenserOutput.MATTER_BALLS));
@@ -76,14 +75,10 @@ public void register(EmiRegistry registry) {
7675
List.of(EmiStack.of(entry.getValue()))));
7776
}
7877

79-
recipes.getAllRecipesFor(TransformRecipe.TYPE).stream()
80-
.parallel().map(EMIItemTransformationRecipe::new)
81-
.forEach(registry::addRecipe);
78+
addAll(registry,TransformRecipe.TYPE,EMIItemTransformationRecipe::new);
8279

8380
registry.addWorkstation(CHARGER, EmiStack.of(AEBlocks.CHARGER.stack()));
84-
recipes.getAllRecipesFor(ChargerRecipe.TYPE).stream()
85-
.parallel().map(EMIChargerRecipe::new)
86-
.forEach(registry::addRecipe);
81+
addAll(registry,ChargerRecipe.TYPE,EMIChargerRecipe::new);
8782
}
8883

8984
private static EmiRecipeCategory register(String name, EmiRenderable icon) {
@@ -94,7 +89,8 @@ private static EmiRecipeCategory register(String name, EmiRenderable icon) {
9489
}
9590

9691

97-
public static List<Bounds> mapRects(List<Rect2i> exclusionZones) {
92+
93+
private static List<Bounds> mapRects(List<Rect2i> exclusionZones) {
9894
return exclusionZones.stream()
9995
.map(ez -> new Bounds(ez.getX(), ez.getY(), ez.getWidth(), ez.getHeight()))
10096
.collect(Collectors.toList());

src/main/java/me/chikage/emicompat/createaddition/CreateAdditionPlugin.java

+4-9
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
import java.util.LinkedHashMap;
1818
import java.util.Map;
1919

20+
import static me.chikage.emicompat.EmiCompatPlugin.addAll;
21+
2022

2123
public class CreateAdditionPlugin implements EmiPlugin {
2224
public static final Map<ResourceLocation, EmiRecipeCategory> ALL = new LinkedHashMap<>();
@@ -27,20 +29,13 @@ public class CreateAdditionPlugin implements EmiPlugin {
2729

2830
@Override
2931
public void register(EmiRegistry registry) {
30-
var recipes = registry.getRecipeManager();
3132
ALL.forEach((id, category) -> registry.addCategory(category));
3233

3334
registry.addWorkstation(Charging, EmiStack.of(CABlocks.TESLA_COIL.get()));
3435
registry.addWorkstation(RollingMill, EmiStack.of(CABlocks.ROLLING_MILL.get()));
3536

36-
recipes.getAllRecipesFor(ChargingRecipe.TYPE).stream()
37-
.parallel().map(EMIChargingRecipe::new)
38-
.forEach(registry::addRecipe);
39-
40-
recipes.getAllRecipesFor(RollingRecipe.TYPE).stream()
41-
.parallel().map(EMIRollingMillRecipe::new)
42-
.forEach(registry::addRecipe);
43-
37+
addAll(registry, ChargingRecipe.TYPE, EMIChargingRecipe::new);
38+
addAll(registry, RollingRecipe.TYPE, EMIRollingMillRecipe::new);
4439
}
4540

4641
private static EmiRecipeCategory register(String name, EmiRenderable icon) {

src/main/java/me/chikage/emicompat/farmersdelight/FarmersDelightPlugin.java

+3-9
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import java.util.Map;
3030

3131
import static com.nhoryzon.mc.farmersdelight.FarmersDelightMod.MOD_ID;
32+
import static me.chikage.emicompat.EmiCompatPlugin.addAll;
3233

3334
public class FarmersDelightPlugin implements EmiPlugin {
3435
public static final Map<ResourceLocation, EmiRecipeCategory> ALL = new LinkedHashMap<>();
@@ -43,23 +44,16 @@ public void register(EmiRegistry registry) {
4344
RecipeType<CookingPotRecipe> COOKING_T = RecipeTypesRegistry.COOKING_RECIPE_SERIALIZER.type();
4445
RecipeType<CuttingBoardRecipe> CUTTING_T = RecipeTypesRegistry.CUTTING_RECIPE_SERIALIZER.type();
4546

46-
var recipes = registry.getRecipeManager();
4747
ALL.forEach((id, category) -> registry.addCategory(category));
4848

4949
registry.addWorkstation(VanillaEmiRecipeCategories.CAMPFIRE_COOKING, EmiStack.of(ItemsRegistry.STOVE.get()));
5050
registry.addWorkstation(VanillaEmiRecipeCategories.CAMPFIRE_COOKING, EmiStack.of(ItemsRegistry.SKILLET.get()));
5151

5252
registry.addWorkstation(FarmersDelightPlugin.COOKING, EmiStack.of(ItemsRegistry.COOKING_POT.get()));
53-
recipes.getAllRecipesFor(COOKING_T).stream()
54-
.parallel()
55-
.map(EmiCookingPotRecipe::new)
56-
.forEach(registry::addRecipe);
53+
addAll(registry, COOKING_T, EmiCookingPotRecipe::new);
5754

5855
registry.addWorkstation(CUTTING, EmiStack.of(ItemsRegistry.CUTTING_BOARD.get()));
59-
recipes.getAllRecipesFor(CUTTING_T).stream()
60-
.parallel()
61-
.map(EmiCuttingBoardRecipe::new)
62-
.forEach(registry::addRecipe);
56+
addAll(registry, CUTTING_T, EmiCuttingBoardRecipe::new);
6357

6458
registry.addRecipe(new EmiDecompositionRecipe(
6559
List.of(EmiIngredient.of(Ingredient.of(BlocksRegistry.ORGANIC_COMPOST.get()))),

src/main/java/me/chikage/emicompat/farmersdelight/recipe/EmiDecompositionRecipe.java

+8-6
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package me.chikage.emicompat.farmersdelight.recipe;
22

33
import com.nhoryzon.mc.farmersdelight.FarmersDelightMod;
4+
import com.nhoryzon.mc.farmersdelight.registry.TagsRegistry;
45
import dev.emi.emi.EmiPort;
56
import dev.emi.emi.api.recipe.EmiRecipe;
67
import dev.emi.emi.api.recipe.EmiRecipeCategory;
@@ -11,6 +12,9 @@
1112
import dev.emi.emi.api.widget.WidgetHolder;
1213
import me.chikage.emicompat.farmersdelight.FarmersDelightPlugin;
1314
import net.minecraft.client.gui.screens.inventory.tooltip.ClientTooltipComponent;
15+
import net.minecraft.core.Holder;
16+
import net.minecraft.core.HolderSet;
17+
import net.minecraft.core.Registry;
1418
import net.minecraft.resources.ResourceLocation;
1519
import net.minecraft.world.item.crafting.Ingredient;
1620
import net.minecraft.world.level.block.Block;
@@ -19,6 +23,7 @@
1923
import java.util.Collection;
2024
import java.util.List;
2125
import java.util.PrimitiveIterator;
26+
import java.util.stream.Collectors;
2227
import java.util.stream.IntStream;
2328

2429
public class EmiDecompositionRecipe implements EmiRecipe {
@@ -67,12 +72,9 @@ public void addWidgets(WidgetHolder gui) {
6772
gui.addSlot(output.get(0), 84, 16)
6873
.drawBack(false);
6974

70-
if (!catalysts.isEmpty() && catalysts.get(0).isEmpty()) {
71-
// gui.addTexture(SLOT, 55, 44);
72-
gui.addSlot(this.catalysts.get(0), 55, 44)
73-
.customBackground(GUI_TEXTURE, 119, 0, 18, 18)
74-
.catalyst(true);
75-
}
75+
gui.addSlot(EmiIngredient.of(Registry.BLOCK.getTag(TagsRegistry.COMPOST_ACTIVATORS).stream().flatMap(HolderSet::stream).map(Holder::value).map(v->EmiStack.of(v.asItem())).collect(Collectors.toList())) , 55, 44)
76+
.customBackground(GUI_TEXTURE, 119, 0, 18, 18)
77+
.catalyst(true);
7678

7779
gui.addDrawable(33, 30, 13, 13, NULL_RENDERABLE)
7880
.tooltip(((mouseX, mouseY) -> List.of(ClientTooltipComponent.create(EmiPort.translatable("farmersdelight.rei.decomposition.light").getVisualOrderText()))));

0 commit comments

Comments
 (0)