[Change] Stricter Generics for RecipeManager

This commit is contained in:
Frank 2022-07-21 13:30:04 +02:00
parent 1628ac9a86
commit 9f75cbde1b
4 changed files with 49 additions and 36 deletions

View file

@ -1,6 +1,7 @@
package org.betterx.bclib.mixin.common;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.Container;
import net.minecraft.world.item.crafting.Recipe;
import net.minecraft.world.item.crafting.RecipeManager;
import net.minecraft.world.item.crafting.RecipeType;
@ -13,14 +14,14 @@ import java.util.Map;
@Mixin(RecipeManager.class)
public interface RecipeManagerAccessor {
@Accessor("recipes")
Map<RecipeType<?>, Map<ResourceLocation, Recipe<?>>> bclib_getRecipes();
<C extends Container, T extends Recipe<C>> Map<RecipeType<T>, Map<ResourceLocation, T>> bclib_getRecipes();
@Accessor("recipes")
void bclib_setRecipes(Map<RecipeType<?>, Map<ResourceLocation, Recipe<?>>> recipes);
<C extends Container, T extends Recipe<C>> void bclib_setRecipes(Map<RecipeType<T>, Map<ResourceLocation, T>> recipes);
@Accessor("byName")
Map<ResourceLocation, Recipe<?>> bclib_getRecipesByName();
<C extends Container, T extends Recipe<C>> Map<ResourceLocation, T> bclib_getRecipesByName();
@Accessor("byName")
void bclib_setRecipesByName(Map<ResourceLocation, Recipe<?>> recipes);
<C extends Container, T extends Recipe<C>> void bclib_setRecipesByName(Map<ResourceLocation, T> recipes);
}

View file

@ -21,9 +21,7 @@ import java.util.Optional;
@Mixin(RecipeManager.class)
public abstract class RecipeManagerMixin {
@Shadow
private <C extends Container, T extends Recipe<C>> Map<ResourceLocation, Recipe<C>> byType(RecipeType<T> type) {
return null;
}
protected abstract <C extends Container, T extends Recipe<C>> Map<ResourceLocation, T> byType(RecipeType<T> recipeType);
@Inject(method = "getRecipeFor", at = @At(value = "HEAD"), cancellable = true)
private <C extends Container, T extends Recipe<C>> void bclib_getRecipeFor(