From e7d30ccf7c8b728552bdfd39498fa2985c67a8f3 Mon Sep 17 00:00:00 2001 From: gnembon <41132274+gnembon@users.noreply.github.com> Date: Wed, 13 Nov 2024 23:20:39 +0100 Subject: [PATCH] 24w46a --- gradle.properties | 2 +- src/main/java/carpet/helpers/HopperCounter.java | 10 ++++------ src/main/java/carpet/script/api/Inventories.java | 7 +++---- 3 files changed, 8 insertions(+), 11 deletions(-) diff --git a/gradle.properties b/gradle.properties index cf6947e1..2af372fc 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,7 +3,7 @@ org.gradle.jvmargs=-Xmx1G # Fabric Properties # check https://fabricmc.net/develop/ - minecraft_version=24w44a + minecraft_version=24w46a loader_version=0.16.7 jsr305_version=3.0.2 fabric_version=0.106.0+1.21.2 diff --git a/src/main/java/carpet/helpers/HopperCounter.java b/src/main/java/carpet/helpers/HopperCounter.java index 46af906e..3fc8ca68 100644 --- a/src/main/java/carpet/helpers/HopperCounter.java +++ b/src/main/java/carpet/helpers/HopperCounter.java @@ -37,6 +37,7 @@ import java.util.EnumMap; import java.util.List; import java.util.Locale; import java.util.Map; +import java.util.Optional; import java.util.stream.Collectors; import static java.util.Map.entry; @@ -420,13 +421,10 @@ public class HopperCounter { for (Ingredient ingredient : r.placementInfo().ingredients()) { - for (Holder stack : ingredient.items()) + Optional> match = ingredient.items().filter(stack -> fromItem(stack.value(), registryAccess) != null).findFirst(); + if (match.isPresent()) { - TextColor cand = fromItem(stack.value(), registryAccess); - if (cand != null) - { - return cand; - } + return fromItem(match.get().value(), registryAccess); } } } diff --git a/src/main/java/carpet/script/api/Inventories.java b/src/main/java/carpet/script/api/Inventories.java index 1f5b6ea2..e7b45930 100644 --- a/src/main/java/carpet/script/api/Inventories.java +++ b/src/main/java/carpet/script/api/Inventories.java @@ -132,15 +132,14 @@ public class Inventories List ingredientValue = new ArrayList<>(); - for (Optional info : recipe.placementInfo().slotInfo()) + for (int info : recipe.placementInfo().slotsToIngredientIndex()) { - if (info.isEmpty()) + if (info == PlacementInfo.EMPTY_SLOT) { ingredientValue.add(Value.NULL); continue; } - PlacementInfo.SlotInfo value = info.get(); - int ingredientIndex = value.placerOutputPosition(); + int ingredientIndex = info; List alternatives = new ArrayList<>(); recipe.placementInfo().ingredients().get(ingredientIndex).items().forEach(item -> alternatives.add(ValueConversions.of(item.value(), regs)));