Added recipes into named map
This commit is contained in:
parent
fa3e82ed4e
commit
95284640e0
3 changed files with 18 additions and 1 deletions
|
@ -55,11 +55,11 @@ public class MinecraftServerMixin {
|
|||
@Inject(method = "loadLevel", at = @At(value = "RETURN"), cancellable = true)
|
||||
private void bclib_loadLevel(CallbackInfo info) {
|
||||
bclib_injectRecipes();
|
||||
//BiomeAPI.initRegistry(MinecraftServer.class.cast(this));
|
||||
}
|
||||
|
||||
private void bclib_injectRecipes() {
|
||||
RecipeManagerAccessor accessor = (RecipeManagerAccessor) resources.getRecipeManager();
|
||||
accessor.bclib_setRecipes(BCLRecipeManager.getMap(accessor.bclib_getRecipes()));
|
||||
accessor.bclib_setRecipesByName(BCLRecipeManager.getMapByName(accessor.bclib_getRecipesByName()));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -16,4 +16,10 @@ public interface RecipeManagerAccessor {
|
|||
|
||||
@Accessor("recipes")
|
||||
void bclib_setRecipes(Map<RecipeType<?>, Map<ResourceLocation, Recipe<?>>> recipes);
|
||||
|
||||
@Accessor("byName")
|
||||
Map<ResourceLocation, Recipe<?>> bclib_getRecipesByName();
|
||||
|
||||
@Accessor("byName")
|
||||
void bclib_setRecipesByName(Map<ResourceLocation, Recipe<?>> recipes);
|
||||
}
|
|
@ -8,6 +8,7 @@ import net.minecraft.world.item.crafting.RecipeSerializer;
|
|||
import net.minecraft.world.item.crafting.RecipeType;
|
||||
import net.minecraft.world.level.ItemLike;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import ru.bclib.util.CollectionsUtil;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
|
@ -59,6 +60,16 @@ public class BCLRecipeManager {
|
|||
return result;
|
||||
}
|
||||
|
||||
public static Map<ResourceLocation, Recipe<?>> getMapByName(Map<ResourceLocation, Recipe<?>> recipes) {
|
||||
Map<ResourceLocation, Recipe<?>> result = CollectionsUtil.getMutable(recipes);
|
||||
RECIPES.values().forEach(map -> map.forEach((location, recipe) -> {
|
||||
if (!recipes.containsKey(location)) {
|
||||
result.put(location, recipe);
|
||||
}
|
||||
}));
|
||||
return result;
|
||||
}
|
||||
|
||||
public static <S extends RecipeSerializer<T>, T extends Recipe<?>> S registerSerializer(String modID, String id, S serializer) {
|
||||
return Registry.register(Registry.RECIPE_SERIALIZER, modID + ":" + id, serializer);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue