aboutsummaryrefslogtreecommitdiff
path: root/RoughlyEnoughItems-runtime/src/main/java/me/shedaniel/rei/impl/ClientHelperImpl.java
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2020-08-30 21:29:58 +0800
committershedaniel <daniel@shedaniel.me>2020-08-30 21:29:58 +0800
commit8d77ad86b203de62aa08a5ee62f91e27fd0fbd00 (patch)
tree72c8f0a412591fce05ba85a9a075592a0c9d4ea2 /RoughlyEnoughItems-runtime/src/main/java/me/shedaniel/rei/impl/ClientHelperImpl.java
parent2f0e6aa2024fae2d210ed40a56435d86510ce66a (diff)
downloadRoughlyEnoughItems-8d77ad86b203de62aa08a5ee62f91e27fd0fbd00.tar.gz
RoughlyEnoughItems-8d77ad86b203de62aa08a5ee62f91e27fd0fbd00.tar.bz2
RoughlyEnoughItems-8d77ad86b203de62aa08a5ee62f91e27fd0fbd00.zip
Fix brewing potions not appearing and allow scrolling in the tabs for villager like recipe viewing screen
Signed-off-by: shedaniel <daniel@shedaniel.me>
Diffstat (limited to 'RoughlyEnoughItems-runtime/src/main/java/me/shedaniel/rei/impl/ClientHelperImpl.java')
-rw-r--r--RoughlyEnoughItems-runtime/src/main/java/me/shedaniel/rei/impl/ClientHelperImpl.java54
1 files changed, 26 insertions, 28 deletions
diff --git a/RoughlyEnoughItems-runtime/src/main/java/me/shedaniel/rei/impl/ClientHelperImpl.java b/RoughlyEnoughItems-runtime/src/main/java/me/shedaniel/rei/impl/ClientHelperImpl.java
index 34735d0c2..b07898abe 100644
--- a/RoughlyEnoughItems-runtime/src/main/java/me/shedaniel/rei/impl/ClientHelperImpl.java
+++ b/RoughlyEnoughItems-runtime/src/main/java/me/shedaniel/rei/impl/ClientHelperImpl.java
@@ -65,6 +65,8 @@ import org.jetbrains.annotations.Nullable;
import java.time.LocalDateTime;
import java.util.*;
import java.util.function.Supplier;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
import static me.shedaniel.rei.impl.Internals.attachInstance;
@@ -206,10 +208,15 @@ public class ClientHelperImpl implements ClientHelper, ClientModInitializer {
@Override
public List<ItemStack> getInventoryItemsTypes() {
- List<ItemStack> inventoryStacks = new ArrayList<>(Minecraft.getInstance().player.inventory.items);
- inventoryStacks.addAll(Minecraft.getInstance().player.inventory.armor);
- inventoryStacks.addAll(Minecraft.getInstance().player.inventory.offhand);
- return inventoryStacks;
+ return Minecraft.getInstance().player.inventory.compartments.stream().flatMap(Collection::stream).collect(Collectors.toList());
+ }
+
+ @ApiStatus.Internal
+ public Set<EntryStack> _getInventoryItemsTypes() {
+ return Minecraft.getInstance().player.inventory.compartments.stream()
+ .flatMap(Collection::stream)
+ .map(EntryStack::create)
+ .collect(Collectors.toSet());
}
@ApiStatus.ScheduledForRemoval
@@ -269,7 +276,20 @@ public class ClientHelperImpl implements ClientHelper, ClientModInitializer {
modNameCache.put("global", "Global");
}
- public static final class ViewSearchBuilder implements ClientHelper.ViewSearchBuilder {
+ private static abstract class AbstractViewSearchBuilder implements ClientHelper.ViewSearchBuilder {
+ @Override
+ public ClientHelper.ViewSearchBuilder fillPreferredOpenedCategory() {
+ if (getPreferredOpenedCategory() == null) {
+ Screen currentScreen = Minecraft.getInstance().screen;
+ if (currentScreen instanceof RecipeScreen) {
+ setPreferredOpenedCategory(((RecipeScreen) currentScreen).getCurrentCategory());
+ }
+ }
+ return this;
+ }
+ }
+
+ public static final class ViewSearchBuilder extends AbstractViewSearchBuilder {
@NotNull private final Set<ResourceLocation> categories = new HashSet<>();
@NotNull private final List<EntryStack> recipesFor = new ArrayList<>();
@NotNull private final List<EntryStack> usagesFor = new ArrayList<>();
@@ -333,17 +353,6 @@ public class ClientHelperImpl implements ClientHelper, ClientModInitializer {
}
@Override
- public ClientHelper.ViewSearchBuilder fillPreferredOpenedCategory() {
- if (getPreferredOpenedCategory() == null) {
- Screen currentScreen = Minecraft.getInstance().screen;
- if (currentScreen instanceof RecipeScreen) {
- setPreferredOpenedCategory(((RecipeScreen) currentScreen).getCurrentCategory());
- }
- }
- return this;
- }
-
- @Override
public ClientHelper.ViewSearchBuilder setInputNotice(@Nullable EntryStack stack) {
this.inputNotice = stack;
return this;
@@ -374,7 +383,7 @@ public class ClientHelperImpl implements ClientHelper, ClientModInitializer {
}
}
- public static final class LegacyWrapperViewSearchBuilder implements ClientHelper.ViewSearchBuilder {
+ public static final class LegacyWrapperViewSearchBuilder extends AbstractViewSearchBuilder {
@NotNull private final Map<RecipeCategory<?>, List<RecipeDisplay>> map;
@Nullable private ResourceLocation preferredOpenedCategory = null;
@Nullable private EntryStack inputNotice;
@@ -432,17 +441,6 @@ public class ClientHelperImpl implements ClientHelper, ClientModInitializer {
}
@Override
- public ClientHelper.ViewSearchBuilder fillPreferredOpenedCategory() {
- if (getPreferredOpenedCategory() == null) {
- Screen currentScreen = Minecraft.getInstance().screen;
- if (currentScreen instanceof RecipeScreen) {
- setPreferredOpenedCategory(((RecipeScreen) currentScreen).getCurrentCategory());
- }
- }
- return this;
- }
-
- @Override
public ClientHelper.ViewSearchBuilder setInputNotice(@Nullable EntryStack stack) {
this.inputNotice = stack;
return this;