
磁石
一个用于Fabric模组的自动内容加载器。
一个用于 Fabric 模组的自动内容加载器。
使用方法
为了直接使用 Lodestone, 请确保你将其作为依赖项添加到你的模组中。 此模组本身不会添加任何内容。
Lodestone 提供了基本的接口和 API,用于
在初始化期间轻松注册模组内容。
其中最重要的类型是 Loaded 接口,
整个模组都围绕该接口构建。
有关基本示例,请参阅 Cheese 模组。
要创建一个自动注册的类型, 只需实现目标环境对应的接口即可。
/** 一个在运行时加载的物品。 */
public class LoadedItem extends Item implements CommonLoaded {
// 所有 `Loaded` 实例所必需的。允许 Lodestone 按模组标识符对注册的值进行分组。
@Override
public Identifier getLoaderId() {
return Identifier.of(YourMod.MOD_ID, "your_item");
}
// 一个在运行时注册值的函数。
@Override
public void loadCommon() {
Registry.register(Registries.ITEM, this.getLoaderId(), this);
}
}
每个模组环境都有其专用的接口:
CommonLoaded在“通用”环境(即客户端和服务器)中加载该值。ClientLoaded仅在客户端实例上加载该值。ServerLoaded仅在服务器实例上加载该值。DataGenerating仅在 Fabric 的数据生成任务期间加载该值。
这些接口旨在用于每个模组初始化器中,以正确加载它们。
public class YourMod implements ModInitializer {
public static final String MOD_ID = "your_mod";
public static final LoadedItem YOUR_ITEM = new LoadedItem(new Settings());
@Override
public void onInitialize() {
// 注册此物品以供稍后加载。
Lodestone.register(CommonLoaded.class, YOUR_ITEM);
// 随后在此处完成加载。
Lodestone.load(CommonLoaded.class, MOD_ID);
}
}
Lodestone 还提供了一个抽象类和两个注解,用于自动注册值。
public final class ItemLoader extends AutoLoader {
@LoadingPriority(-1) // 控制加载顺序。在这种情况下,此值最后加载。
public static final LoadedItem ITEM_1 = new LoadedItem("item_1", new Settings());
public static final LoadedItem ITEM_2 = new LoadedItem("item_2", new Settings());
public static final LoadedItem ITEM_3 = new LoadedItem("item_3", new Settings());
public static final LoadedItem ITEM_4 = new LoadedItem("item_4", new Settings());
public static final LoadedItem ITEM_5 = new LoadedItem("item_5", new Settings());
@IgnoreLoading({ }) // 阻止此值被加载。
public static final LoadedItem NULL = null;
@Override
public Identifier getLoaderId() {
return Identifier.of(YourMod.MOD_ID, "items");
}
}
然后以非常相似的方式进行注册。
public class YourMod implements ModInitializer {
public static final String MOD_ID = "your_mod";
public static final ItemLoader ITEMS = new ItemLoader();
@Override
public void onInitialize() {
// 注册所有物品以供稍后加载。
ITEMS.register();
// 随后在此处完成加载。
Lodestone.load(CommonLoaded.class, MOD_ID);
}
}
依赖 Lodestone
Lodestone 的唯一用途是作为其他模组的库使用。 如果你希望为 Fabric 模组依赖 Lodestone, 请将以下内容添加到你的 Gradle 清单中:
# gradle.properties
lodestone_version = 1.8.0
// build.gradle
repositories {
maven { url 'https://jitpack.io' }
}
dependencies {
modImplementation "com.github.Jaxydog:Lodestone:${project.lodestone_version}"
// 或者,如果想要依赖最新提交:
modImplementation 'com.github.Jaxydog:Lodestone:main-SNAPSHOT'
}
Lodestone 应该能与许多较旧版本的 Minecraft 兼容, 但只有最新的游戏版本保证得到完整支持。 我目前对移植到大约 1.18 之前的版本不感兴趣, 但如果你遇到任何问题,欢迎随时告诉我。
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。