refactor some classes. this will break stuff so I will release it after 1.17
This commit is contained in:
parent
b6c9e59151
commit
98c736af46
5
.gitignore
vendored
5
.gitignore
vendored
@ -117,3 +117,8 @@ run/
|
||||
|
||||
# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)
|
||||
!gradle-wrapper.jar
|
||||
|
||||
.classpath
|
||||
bin
|
||||
.project
|
||||
.settings
|
||||
|
@ -4,11 +4,8 @@ import io.gitlab.jfronny.libjf.Libjf;
|
||||
import io.gitlab.jfronny.libjf.config.Config;
|
||||
import io.gitlab.jfronny.libjf.config.Entry;
|
||||
import io.gitlab.jfronny.libjf.config.EntryInfo;
|
||||
import io.gitlab.jfronny.libjf.config.gui.ButtonEntry;
|
||||
import io.gitlab.jfronny.libjf.config.gui.MidnightConfigListWidget;
|
||||
import net.fabricmc.api.EnvType;
|
||||
import net.fabricmc.api.Environment;
|
||||
import net.fabricmc.loader.api.FabricLoader;
|
||||
import net.minecraft.client.gui.screen.Screen;
|
||||
import net.minecraft.client.gui.screen.ScreenTexts;
|
||||
import net.minecraft.client.gui.widget.ButtonWidget;
|
||||
|
@ -1,29 +1,33 @@
|
||||
package io.gitlab.jfronny.libjf.data;
|
||||
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.Identifier;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
public class RecipeUtil {
|
||||
private final static Set<String> removalsByIdentifier = new HashSet<>();
|
||||
private final static List<ItemStack> recipesForRemoval = new ArrayList<>();
|
||||
private static final Set<Identifier> REMOVAL_BY_ID = new HashSet<>();
|
||||
private static final Set<ItemStack> RECIPES_FOR_REMOVAL = new HashSet<>();
|
||||
|
||||
public static void removeRecipe(String id) {
|
||||
removalsByIdentifier.add(id);
|
||||
public static void removeRecipe(Identifier identifier) {
|
||||
REMOVAL_BY_ID.add(identifier);
|
||||
}
|
||||
|
||||
public static void removeRecipeFor(ItemStack product) {
|
||||
recipesForRemoval.add(product);
|
||||
RECIPES_FOR_REMOVAL.add(product);
|
||||
}
|
||||
|
||||
public static Iterable<ItemStack> getRecipesForRemoval() {
|
||||
return recipesForRemoval;
|
||||
public static boolean isIdBlocked(Identifier identifier) {
|
||||
return REMOVAL_BY_ID.contains(identifier);
|
||||
}
|
||||
|
||||
public static Set<String> getIdentifiersForRemoval() {
|
||||
return removalsByIdentifier;
|
||||
public static boolean isOutputBlocked(ItemStack product) {
|
||||
for (ItemStack stack : RECIPES_FOR_REMOVAL) {
|
||||
if (product.isItemEqual(stack)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@ -3,7 +3,7 @@ package io.gitlab.jfronny.libjf.data;
|
||||
import net.minecraft.resource.ResourceType;
|
||||
import net.minecraft.util.Identifier;
|
||||
|
||||
public class ResourcePath implements AutoCloseable {
|
||||
public class ResourcePath {
|
||||
private final ResourceType type;
|
||||
private final Identifier id;
|
||||
|
||||
@ -36,9 +36,4 @@ public class ResourcePath implements AutoCloseable {
|
||||
public String getName() {
|
||||
return String.format("%s/%s/%s", type.getDirectory(), id.getNamespace(), id.getPath());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void close() throws Exception {
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -1,11 +1,11 @@
|
||||
package io.gitlab.jfronny.libjf.data;
|
||||
|
||||
import io.gitlab.jfronny.libjf.data.wrappedPackImpl.WrappedResourcePack;
|
||||
import io.gitlab.jfronny.libjf.data.impl.WrappedResourcePack;
|
||||
import net.minecraft.resource.ResourcePack;
|
||||
|
||||
//This is a class for binary compatibility with mods using libjf
|
||||
public abstract class WrappedPack implements ResourcePack {
|
||||
public abstract ResourcePack getUnderlying();
|
||||
public interface WrappedPack extends ResourcePack {
|
||||
ResourcePack getUnderlying();
|
||||
|
||||
public static WrappedPack create(ResourcePack underlying) {
|
||||
//if (underlying instanceof ModNioResourcePack mi)
|
||||
|
@ -1,4 +1,4 @@
|
||||
package io.gitlab.jfronny.libjf.data.wrappedPackImpl;
|
||||
package io.gitlab.jfronny.libjf.data.impl;
|
||||
|
||||
import io.gitlab.jfronny.libjf.data.ResourcePath;
|
||||
import io.gitlab.jfronny.libjf.data.UserResourceEvents;
|
@ -1,4 +1,4 @@
|
||||
package io.gitlab.jfronny.libjf.data.wrappedPackImpl;
|
||||
package io.gitlab.jfronny.libjf.data.impl;
|
||||
|
||||
import io.gitlab.jfronny.libjf.data.WrappedPack;
|
||||
import net.minecraft.resource.ResourcePack;
|
||||
@ -13,7 +13,7 @@ import java.util.Collection;
|
||||
import java.util.Set;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
public class WrappedResourcePack extends WrappedPack {
|
||||
public class WrappedResourcePack implements WrappedPack {
|
||||
ResourcePack pack;
|
||||
public WrappedResourcePack(ResourcePack pack) {
|
||||
this.pack = pack;
|
@ -4,7 +4,6 @@ import com.google.common.collect.ImmutableMap;
|
||||
import com.google.gson.JsonObject;
|
||||
import io.gitlab.jfronny.libjf.Libjf;
|
||||
import io.gitlab.jfronny.libjf.data.RecipeUtil;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.recipe.Recipe;
|
||||
import net.minecraft.recipe.RecipeManager;
|
||||
import net.minecraft.util.Identifier;
|
||||
@ -26,7 +25,7 @@ public class RecipeManagerMixin {
|
||||
Map.Entry<Identifier, JsonObject> cur = iterator.next();
|
||||
Identifier recipeId = cur.getKey();
|
||||
|
||||
if (RecipeUtil.getIdentifiersForRemoval().contains(recipeId.toString())) {
|
||||
if (RecipeUtil.isIdBlocked(recipeId)) {
|
||||
Libjf.LOGGER.info("Blocking recipe by identifier: " + recipeId);
|
||||
} else {
|
||||
replacement.add(cur);
|
||||
@ -41,12 +40,10 @@ public class RecipeManagerMixin {
|
||||
Identifier id = (Identifier) key;
|
||||
Recipe<?> recipe = (Recipe<?>) value;
|
||||
|
||||
for (ItemStack stack : RecipeUtil.getRecipesForRemoval()) {
|
||||
if (recipe.getOutput().isItemEqual(stack)) {
|
||||
if (RecipeUtil.isOutputBlocked(recipe.getOutput())) {
|
||||
Libjf.LOGGER.info("Blocked recipe by predicate: " + recipe.getId());
|
||||
return builder;
|
||||
}
|
||||
}
|
||||
|
||||
return builder.put(id, recipe);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user