Skip to content

Commit

Permalink
Merge remote-tracking branch 'slprime/bookmarks_groups_and_filter' in…
Browse files Browse the repository at this point in the history
…to dev
  • Loading branch information
Dream-Master committed Jan 26, 2024
2 parents 355cc5b + 4953edd commit 66deab6
Show file tree
Hide file tree
Showing 9 changed files with 319 additions and 335 deletions.
2 changes: 1 addition & 1 deletion src/main/java/codechicken/nei/BookmarkCraftingChain.java
Original file line number Diff line number Diff line change
Expand Up @@ -276,7 +276,7 @@ private boolean calculateShift(CraftingChainRequest request, int stackIndex) {
if (!request.initialItems.contains(item.recipeIndex) && item.factor > 0) {
long ingrCount = calculateCount(request, request.inputs.get(item.stackIndex));
long outputCount = calculateCount(request, request.outputs.get(item.stackIndex));
long shift = (ingrCount - outputCount) / item.factor;
long shift = (long) Math.ceil((ingrCount - outputCount) / (double) item.factor);

if (shift > 0 && shift < minShift) {
minShift = (int) shift;
Expand Down
13 changes: 6 additions & 7 deletions src/main/java/codechicken/nei/ItemList.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package codechicken.nei;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
Expand Down Expand Up @@ -84,20 +85,18 @@ public AllMultiItemFilter(List<ItemFilter> filters) {
this.filters = filters;
}

public AllMultiItemFilter() {
this(new LinkedList<>());
public AllMultiItemFilter(ItemFilter... filters) {
this(Arrays.asList(filters));
}

public AllMultiItemFilter(ItemFilter a, ItemFilter b) {
this.filters = new ArrayList<>();
this.filters.add(a);
this.filters.add(b);
public AllMultiItemFilter() {
this(new LinkedList<>());
}

@Override
public boolean matches(ItemStack item) {
for (ItemFilter filter : filters) try {
if (!filter.matches(item)) return false;
if (filter != null && !filter.matches(item)) return false;
} catch (Exception e) {
NEIClientConfig.logger.error("Exception filtering " + item + " with " + filter, e);
}
Expand Down
9 changes: 7 additions & 2 deletions src/main/java/codechicken/nei/NEIClientConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -432,8 +432,13 @@ private static void setWorldDefaults() {
}

public static void unloadWorld() {
ItemPanels.bookmarkPanel.saveBookmarks();
world.saveNBT();
if (ItemPanels.bookmarkPanel != null) {
ItemPanels.bookmarkPanel.saveBookmarks();
}

if (world != null) {
world.saveNBT();
}
}

public static int getKeyBinding(String string) {
Expand Down
40 changes: 0 additions & 40 deletions src/main/java/codechicken/nei/api/IRecipeFilter.java
Original file line number Diff line number Diff line change
@@ -1,54 +1,14 @@
package codechicken.nei.api;

import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.List;

import codechicken.nei.PositionedStack;
import codechicken.nei.recipe.IRecipeHandler;
import codechicken.nei.recipe.TemplateRecipeHandler;

public interface IRecipeFilter {

public static interface IRecipeFilterProvider {

static HashMap<String, Boolean> override = new HashMap<>();

static boolean filteringAvailable(IRecipeHandler handler) {
return handler instanceof TemplateRecipeHandler && !overrideMethod(handler.getClass().getName());
}

static boolean overrideMethod(String className) {
try {

if (override.containsKey(className)) {
return override.get(className);
}

String[] methods = new String[] { "getResultStack", "getOtherStacks", "getIngredientStacks" };
Class<?> cls = Class.forName(className);

for (String method : methods) {
Method m = cls.getMethod(method, Integer.TYPE);
if (!m.getDeclaringClass().getName().equals("codechicken.nei.recipe.TemplateRecipeHandler")) {
override.put(className, true);
return true;
}
}

Method m = cls.getMethod("numRecipes");
if (!m.getDeclaringClass().getName().equals("codechicken.nei.recipe.TemplateRecipeHandler")) {
override.put(className, true);
return true;
}

override.put(className, false);
return false;
} catch (Throwable e) {
return true;
}
}

public IRecipeFilter getFilter();
}

Expand Down
Loading

0 comments on commit 66deab6

Please sign in to comment.