Deimos

Deimos

配置与数据生成库

基础库

Title

Discord Support me on Patreon CurseForge Modrinth

Deimos 是一个 Minecraft 数据生成与配置库。借助它,你可以生成配置文件,并在游戏中原生显示(Forge 和 Neoforge),或在 Fabric 上通过 Mod Menu 的帮助来显示。Deimos 允许你在游戏启动时创建新的配方,这使得它们可配置。这也意味着你无需使用 JSON 文件,并且切换 Minecraft 版本会变得显著更容易、更省心。

此库的配置部分基于 MotschenMidnightLib

我制作这个模组是为了简化我自己的模组开发,并让我能够在所有模组加载器和 Minecraft 版本中只使用一个配置库。所以如果你想看一些实际使用此库的示例,可以查看我制作的模组

Laser Bridges & Doors Wishful Recipes More Music Discs Server-Side Horror EXP Counter Fire Arrows Ignite Fire Flat EXP Costs Lava Turns Sand into Glass Cooked Carrots Husks Drop Sand

面向开发人员

以下是设置和使用 Deimos 的说明。有关此库的更多详细信息,请务必查看其 GitHub 页面

设置

你可以使用我的 IntelliJ 模板 来生成一个预配置了 Deimos 的新 MultiLoader 项目,或者按照以下说明手动设置:

在 build.gradle 中

repositories {
    maven {
        url = "https://api.modrinth.com/maven"
    }
}

Forge 和 Neoforge:

dependencies {
    implementation "maven.modrinth:deimos:${project.deimos_version}"
}

Fabric:

dependencies {
    modImplementation "maven.modrinth:deimos:${project.deimos_version}"
    //如果你想要使用 modmenu
    modCompileOnly "com.terraformersmc:modmenu:${project.modmenu_version}"
}

如果你想要使用 Mod Menu 功能,你需要添加一个新的仓库:

repositories {
    maven {
        name = "Terraformers"
        url = "https://maven.terraformersmc.com/"
    }
}

你可以在 Modrinth 上找到你需要的特定 Deimos 版本。

如何使用

创建配置

你可以在一个继承 DeimosConfig 的类中添加配置:

public class TestConfig extends DeimosConfig {
    @Entry public static int test_int = 6;
    @Entry public static List<String> test_string_list = Lists.newArrayList(
            "minecraft:acacia_planks", "minecraft:andesite");
}

然后在你的初始化方法中,你需要像这样调用 DeimosConfig.init:

DeimosConfig.init(MOD_ID, TestConfig.class);

添加新配方

要添加新配方,你可以在初始化方法中调用 DeimosRecipeGenerator 的方法。你可以添加无序合成、有序合成、熔炼、烟熏、高炉、营火和石切割配方。以下是一些示例:

DeimosRecipeGenerator.createSmeltingJson(TestConfig.test_string_list.get(0), TestConfig.test_string_list.get(1), TestConfig.test_int, 0.5F);

DeimosRecipeGenerator.createShapedRecipeJson(
        Lists.newArrayList('#'),
        Lists.newArrayList(ResourceLocation.parse("sand")),
        Lists.newArrayList("item"),
        Lists.newArrayList(
                "# ",
                " #"
        ),
        ResourceLocation.parse("stone"), 1);

请注意,你可以使用配置文件中的值。如果玩家更改了它们并重新启动游戏,配方也会随之改变。这甚至适用于模组物品。

支持我