aboutsummaryrefslogtreecommitdiff
path: root/RoughlyEnoughItems-runtime/src/main/java/me/shedaniel/rei/impl/RecipeHelperImpl.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/RecipeHelperImpl.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/RecipeHelperImpl.java')
-rw-r--r--RoughlyEnoughItems-runtime/src/main/java/me/shedaniel/rei/impl/RecipeHelperImpl.java51
1 files changed, 25 insertions, 26 deletions
diff --git a/RoughlyEnoughItems-runtime/src/main/java/me/shedaniel/rei/impl/RecipeHelperImpl.java b/RoughlyEnoughItems-runtime/src/main/java/me/shedaniel/rei/impl/RecipeHelperImpl.java
index 7e3f57868..2e254962e 100644
--- a/RoughlyEnoughItems-runtime/src/main/java/me/shedaniel/rei/impl/RecipeHelperImpl.java
+++ b/RoughlyEnoughItems-runtime/src/main/java/me/shedaniel/rei/impl/RecipeHelperImpl.java
@@ -23,6 +23,7 @@
package me.shedaniel.rei.impl;
+import com.google.common.base.Stopwatch;
import com.google.common.collect.*;
import me.shedaniel.math.Rectangle;
import me.shedaniel.rei.RoughlyEnoughItemsCore;
@@ -42,6 +43,7 @@ import net.minecraft.world.InteractionResult;
import net.minecraft.world.InteractionResultHolder;
import net.minecraft.world.item.crafting.Recipe;
import net.minecraft.world.item.crafting.RecipeManager;
+import org.apache.commons.lang3.tuple.MutablePair;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -77,7 +79,7 @@ public class RecipeHelperImpl implements RecipeHelper {
private boolean arePluginsLoading = false;
@Override
- public List<EntryStack> findCraftableEntriesByItems(List<EntryStack> inventoryItems) {
+ public List<EntryStack> findCraftableEntriesByItems(Iterable<EntryStack> inventoryItems) {
List<EntryStack> craftables = new ArrayList<>();
for (List<RecipeDisplay> value : recipeDisplays.values())
for (RecipeDisplay recipeDisplay : Lists.newArrayList(value)) {
@@ -149,7 +151,7 @@ public class RecipeHelperImpl implements RecipeHelper {
@Override
public Map<RecipeCategory<?>, List<RecipeDisplay>> buildMapFor(ClientHelper.ViewSearchBuilder builder) {
- long start = Util.getNanos();
+ Stopwatch stopwatch = Stopwatch.createStarted();
Set<ResourceLocation> categories = builder.getCategories();
List<EntryStack> recipesFor = builder.getRecipesFor();
List<EntryStack> usagesFor = builder.getUsagesFor();
@@ -244,9 +246,8 @@ public class RecipeHelperImpl implements RecipeHelper {
}
}
- long end = Util.getNanos();
- String message = String.format("Built Recipe View in %dμs for %d categories, %d recipes for, %d usages for and %d live recipe generators.",
- (end - start) / 1000, categories.size(), recipesFor.size(), usagesFor.size(), liveRecipeGenerators.size());
+ String message = String.format("Built Recipe View in %s for %d categories, %d recipes for, %d usages for and %d live recipe generators.",
+ stopwatch.stop().toString(), categories.size(), recipesFor.size(), usagesFor.size(), liveRecipeGenerators.size());
if (ConfigObject.getInstance().doDebugSearchTimeRequired()) {
RoughlyEnoughItemsCore.LOGGER.info(message);
} else {
@@ -305,24 +306,20 @@ public class RecipeHelperImpl implements RecipeHelper {
autoCraftAreaSupplierMap.put(category, rectangle);
}
- private void startSection(Object[] sectionData, String section) {
- sectionData[0] = Util.getNanos();
- sectionData[2] = section;
+ private void startSection(MutablePair<Stopwatch, String> sectionData, String section) {
+ sectionData.setRight(section);
RoughlyEnoughItemsCore.LOGGER.debug("Reloading Section: \"%s\"", section);
+ sectionData.getLeft().start();
}
- private void endSection(Object[] sectionData) {
- sectionData[1] = Util.getNanos();
- long time = (long) sectionData[1] - (long) sectionData[0];
- String section = (String) sectionData[2];
- if (time >= 1000000) {
- RoughlyEnoughItemsCore.LOGGER.debug("Reloading Section: \"%s\" done in %.2fms", section, time / 1000000.0F);
- } else {
- RoughlyEnoughItemsCore.LOGGER.debug("Reloading Section: \"%s\" done in %.2fμs", section, time / 1000.0F);
- }
+ private void endSection(MutablePair<Stopwatch, String> sectionData) {
+ sectionData.getLeft().stop();
+ String section = sectionData.getRight();
+ RoughlyEnoughItemsCore.LOGGER.debug("Reloading Section: \"%s\" done in %s", section, sectionData.getLeft().toString());
+ sectionData.getLeft().reset();
}
- private void pluginSection(Object[] sectionData, String sectionName, List<REIPluginV0> list, Consumer<REIPluginV0> consumer) {
+ private void pluginSection(MutablePair<Stopwatch, String> sectionData, String sectionName, List<REIPluginV0> list, Consumer<REIPluginV0> consumer) {
for (REIPluginV0 plugin : list) {
try {
startSection(sectionData, sectionName + " for " + plugin.getPluginIdentifier().toString());
@@ -345,7 +342,7 @@ public class RecipeHelperImpl implements RecipeHelper {
public void recipesLoaded(RecipeManager recipeManager) {
long startTime = Util.getMillis();
- Object[] sectionData = {0L, 0L, ""};
+ MutablePair<Stopwatch, String> sectionData = new MutablePair<>(Stopwatch.createUnstarted(), "");
startSection(sectionData, "reset-data");
arePluginsLoading = true;
@@ -401,14 +398,16 @@ public class RecipeHelperImpl implements RecipeHelper {
startSection(sectionData, "recipe-functions");
if (!recipeFunctions.isEmpty()) {
@SuppressWarnings("rawtypes") List<Recipe> allSortedRecipes = getAllSortedRecipes();
- Collections.reverse(allSortedRecipes);
- for (RecipeFunction recipeFunction : recipeFunctions) {
- try {
- for (Recipe<?> recipe : CollectionUtils.filter(allSortedRecipes, recipe -> recipeFunction.recipeFilter.test(recipe))) {
- registerDisplay(recipeFunction.category, (RecipeDisplay) recipeFunction.mappingFunction.apply(recipe), 0);
+ for (int i = allSortedRecipes.size() - 1; i >= 0; i--) {
+ Recipe recipe = allSortedRecipes.get(i);
+ for (RecipeFunction recipeFunction : recipeFunctions) {
+ try {
+ if (recipeFunction.recipeFilter.test(recipe)) {
+ registerDisplay(recipeFunction.category, (RecipeDisplay) recipeFunction.mappingFunction.apply(recipe), 0);
+ }
+ } catch (Throwable e) {
+ RoughlyEnoughItemsCore.LOGGER.error("Failed to add recipes!", e);
}
- } catch (Throwable e) {
- RoughlyEnoughItemsCore.LOGGER.error("Failed to add recipes!", e);
}
}
}