
Moonlight Lib / Selene
Forge和Fabric的轻量级库,提供自定义村民AI、数据驱动交易、全局数据包、自定义地图标记、第一人称和第三人称物品动画、动态资源生成、动态注册等实用功能。
查看大图Moonlight Lib
📖 简介 📖
前身为 Selene Library,Moonlight Lib 是一套用于我制作的模组的专用工具集和共享代码。 包含一些高度专用化的功能,例如动态资源生成、2 个新的数据注册表、动态注册系统,以及常见的多加载器辅助工具和包装器,用于同时为 Fabric 和 Forge 开发。
🛠️ 功能 🛠️
以下是包含的最重要的功能。如果你是一名计划使用此库的开发者,那么这就是为你准备的部分!
主要的文档位置如下:
要导入此库,只需进入此处的文件部分,点击“复制 gradle 行”。然后将其粘贴到你的 build.gradle 文件中。
🎨 动态资源 (Dynamic Assets)
Moonlight 允许你动态生成任何资源,包括数据包和资源包。特别是,该模组包含一个广泛的 API,用于使用如提取调色板、裁剪、重塑图像、自动重新着色等工具来生成动态纹理。
动态资源示例:

纹理重新着色示例:

调色板操作示例:

🌍 多加载器工具 (Multiloader Utilities)
这套工具力求尽可能简单,通常仅依赖静态辅助函数,而非注解或其他面向对象实践,并且主要通过使用辅助函数包装来模拟 Forge 行为。对于 Fabric,如果不可用,则会调用或实现等效行为。其中一些亮点包括延迟注册、通用设置等。
模组注重简洁性,因此大多数重要调用分布在仅 4 个主要 API 类中。它们是:PlatHelper、ClientHelper、RegHelper 和 ForgeHelper。
对于配置和网络,主要类是 ConfigBuilder 和 ChannelHandler。
配置特别具有额外功能,例如能够使用 Codec、提前加载或自动同步到客户端。
PlatHelper 示例:

ClientHelper 示例:

RegHelper 示例:

ConfigBuilder 示例:

ChannelHandler 示例:

📒 动态注册 (Dynamic Registration)
这包括一个新系统(BlockSetAPI),它允许在所有方块注册完成后动态检测“方块集合”,并动态注册依赖于它的新条目。一个例子是使用内置的 WoodTypeRegistry 或 LeavesTypeRegistry,这两个方块集合将动态填充来自任何模组的所有已安装的木头和树叶,允许你为所有现有的木头类型注册你的木质物品。
BlockSetAPI 示例:定义方块集合

BlockSetAPI 示例:注册动态方块

🧙♂️ 杂项工具 (Misc Utilities)
DispenserHelper 示例:

第一人称和第三人称物品动画示例:

🍩 自定义烘焙模型 (Custom Baked Models)
自定义模型和模型加载器示例:

Quad Utils 示例:

🌽 自定义村民交易 (Custom Villager Trades)
使用 moonlight/villager_trades 数据包文件夹,你可以为任何村民添加新的自定义交易。以下是一个交易示例。查看 Supplementaries 或 Sawmill 模组以获取更多示例。
方块颜色 API (Block Color API): 一套工具,允许检测任意模组方块的染料颜色 (
DyeColor),以及获取不同颜色的等效方块。这可以动态适用于任何模组方块或物品。自定义地图标记 (Custom map markers): 一个完整的系统,可以轻松实现和添加地图装饰和地图标记,并控制其渲染等各个方面。还允许在地图数据中存储简单数据,并提供一些钩子来使用它,例如在物品提示中。该系统还提供了一种简单的数据驱动实现,这意味着你可以轻松地使用数据包注册新的标记!
全局数据包文件夹和模型加载器文件夹 (Global datapack folder & model loader folder): 分别位于
moonlight-global-datapacks和/assets/models/special_models。动态村民 AI (Dynamic Villager AI): 一个辅助系统,可以轻松地以兼容的方式动态添加任务和修改村民日程安排,而无需覆盖整个现有 AI。还允许正确添加记忆类型。
自定义第一人称和第三人称动画 (Custom first and third person animations): 允许模组制作者在其物品中实现一个简单的接口,使其具有自定义的第三人称和第一人称动画(例如弩)。包括简单易用的接口,可以控制第一人称和第三人称动画,以及一个直接在你的物品类中渲染物品本身的回调(类似于望远镜)。
全局数据包文件夹 (Global datapacks folder)
调试渲染器命令 (Debug renderers command)
砂轮成就触发 (Grindstone achievement triggers): 该模组添加了一个自定义触发器,当物品通过砂轮时会触发,你可以在你的模组进度 JSON 文件中调用它。
软流体系统 (Soft fluid system): 一个完全数据驱动的自定义虚拟流体系统,建立在 Forge 流体系统之上,旨在更好地适应原版 Minecraft,其主要特点是能够拥有多种流体容器物品,如瓶子、碗和桶,以及提供对可以直接从流体罐中饮用的炖菜和饮料的支持。与 Forge 流体系统不同,它的基本单位是 1 个原版瓶子(250 Forge mb)。该系统还自动为已注册的 Forge 流体生成所有需要的流体,并允许用户轻松覆盖或添加它们。流体是虚拟的,因此它们只能存在于专门为其设计的模组容器中。
❤️ 支持我 ❤️
制作模组占用了我很多时间,所以如果你喜欢我的工作,并愿意支持我,你可以在此处进行支持。如果你这样做了,你将获得一个为你定制的地球仪或雕像!如果你使用优惠码 "supplementaries" 从 Akliz 购买服务器,这也同样适用。
需要服务器吗?看看 Akliz,他们有专为模组 Minecraft 打造的顶级品牌服务器。他们拥有一个友好的社区,提供出色的支持,服务器运行也非常好。使用优惠码 "supplementaries" 可获得 20% 折扣,同时也能支持我!

🦉 我们的模组 🦉
正在加载版本记录…




正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。