Получить BakedModel для произвольного ResourceLocation

Версия Minecraft
1.18.1
API
Forge
7,099
324
1,510
Допустим, у мя в ассетах лежит json модель, которая не принадлежит ни одному предмету/блоку.
Хочу получить BakedModel для нее.
На 1.12.2 решается довольно просто, вызовом ванильного лоадера моделей
Scala:
val loadModel: ResourceLocation => IModel = {
    val VanillaLoaderClass = classOf[net.minecraftforge.client.model.ModelLoader].getDeclaredClasses.filter(cl => cl.getSimpleName == "VanillaLoader").head
    val instanceField = VanillaLoaderClass.getDeclaredField("INSTANCE")
    instanceField.setAccessible(true)
    val instance = instanceField.get(null)
    val loadModel = VanillaLoaderClass.getDeclaredMethod("loadModel", classOf[ResourceLocation])
    loadModel.setAccessible(true)
    loadModel.invoke(instance, _).asInstanceOf[IModel]
}

def bakeModel(model: IModel): IBakedModel = model.bake(model.getDefaultState, DefaultVertexFormats.ITEM, ModelLoader.defaultTextureGetter())

Однако на 1.18 лоадеры не занимаются чтением из ресурсов и десериализацией, они требуют в аргументах JsonDeserializationContext
Так как получить модель?
Java:
public static void loadModel(ResourceLocation location) {
    ModelLoaderRegistry.VanillaProxy.Loader instance1 = ModelLoaderRegistry.VanillaProxy.Loader.INSTANCE;
    try (
        Resource resource = Minecraft.getInstance().getResourceManager().getResource(location);
        InputStreamReader reader = new InputStreamReader(resource.getInputStream(), StandardCharsets.UTF_8)
    ) {
        String content = CharStreams.toString(reader);
        JsonObject jsonObject = new Gson().fromJson(content, JsonObject.class);
                
        ModelLoaderRegistry.VanillaProxy modelProxy = ModelLoaderRegistry.VanillaProxy.Loader.INSTANCE.read(
                ???,
                jsonObject
        );
        return modelProxy.bake(???);
        } catch (IOException e) {
            e.printStackTrace();
        }
}
 
Сверху