1.1. 模型加载器:ICustomModelLoader

ICustomModelLoader,顾名思义,一个加载 IModel 的东西。正确实现并注册的 ICustomModelLoader 拥有根据给定 ResourceLocation 产生一个原始的 IModel 的能力。

public class ABrandNewModelLoader implements ICustomModelLoader {

    @Override
    public void onResourceManagerReload(IResourceManager manager) {
        // 用于资源刷新时刷新内部数据。若没有数据需要刷新,直接留空即可。
    }

    @Override
    public boolean accepts(ResourceLocation location) {
        // 这个方法决定了该加载器能加载哪些模型。
        // 一个 location 只可能有一个 ICustomModelLoader 能加载它。
        // 如果有两个 ICustomModelLoader 的这个方法对同一个 location 返回了 true,
        // 则会抛出异常。所以在实现这个方法时,务必比较足够多的信息。
        return false;
    }

    @Override
    public IModel loadModel(ResourceLocation location) {
        // 这个就是加载 IModel 的方法了。没什么可说的。
        return something; // 你大概不能返回 null。
    }
}

注册 ICustomModelLoader 也很简单:

ModelLoaderRegistry.registerLoader(new ABrandNewModelLoader());