基本信息
我的世界Java版本
平台
其他链接
创作团队
详情信息
月光依赖库
📖 关于 📖
以前叫塞勒涅依赖库(Selene Library),月光依赖库是我在制作模组时使用的一组专用工具和共享代码。
其中包括一些高度专业化的功能,比如动态资源生成、两个新的数据注册表、动态注册系统,以及常见的多加载器辅助工具和包装器,以便同时为Fabric和Forge进行开发。
🛠️ 功能🛠️
以下是包含的最重要的功能。如果你是计划使用这个依赖库的开发者,这部分内容就是为你准备的!
文档的主要存放位置如下:
要**导入这个依赖库**,只需进入此处的文件部分并点击“复制Gradle行”。然后将其粘贴到你的build.gradle文件中。
🎨动态资源
月光依赖库允许你为数据包和资源包动态生成任何资源。特别是该模组包含一个广泛的API,可通过提取调色板、裁剪、重塑图像、自动重新上色等工具来生成动态纹理。
-
动态资源示例:
-
纹理重新上色示例:
-
调色板操作示例:
🌍 多加载器工具
这些工具集尽量做到简单,通常仅依靠静态辅助函数,而不使用注解或其他面向对象编程的做法,并且主要通过用辅助函数简单包装来模拟Forge的行为。对于Fabric,如果没有等效行为,就会调用或实现它。其中一些亮点功能包括延迟注册、通用设置等。
模组注重简洁性,所以最重要的调用仅分布在4个主要的API类中。
它们是:平台助手(PlatHelper)、客户端助手(ClientHelper)、注册助手(RegHelper)和Forge助手(ForgeHelper)。
对于配置和网络方面,主要的类是配置构建器(ConfigBuilder)和通道处理器(ChannelHandler)。
配置尤其具有一些额外功能,比如能够使用编解码器、提前加载或自动同步到客户端。
-
平台助手示例:
-
客户端助手示例
-
注册助手示例:
-
配置构建器示例:
-
通道处理器示例:
📒 动态注册
这包括一个新系统(块集API,BlockSetAPI),它允许在所有方块注册完成后立即动态检测“块集”,并动态注册依赖于它的新条目。例如,可以使用内置的木材类型注册表(WoodTypeRegistry)或树叶类型注册表(LeavesTypeRegistry),这两个块集会动态填充来自任何模组的所有已安装的木材和树叶,从而允许你在所有现有的木材类型中注册你的木制物品。
-
块集API示例:定义一个块集
-
块集API示例:注册动态方块
🧙♂️ 杂项工具
-
投掷器助手(DispenserHelper)示例
-
第一人称和第三人称物品动画示例:
🍩自定义烘焙模型
-
自定义模型和模型加载器示例:
-
四边形工具(Quad Utils)示例:
🌽自定义村民交易
使用`moonlight/villager_trades`数据包文件夹,你将能够为任何村民添加新的自定义交易。这是一个示例交易。 查看锯木厂补充物品(Supplementaries of Sawmill)以获取更多示例。
-
方块颜色API:
一组工具,可用于检测任何任意模组添加的方块的染料颜色,以及获取不同颜色的等效方块。
这对任何模组添加的方块或物品都能动态生效。
-
自定义地图标记:
一个完整的系统,可轻松实现并添加地图装饰和地图标记,以及控制它们的各个方面,如渲染。还允许在地图数据中存储简单数据,并提供了几个可使用它的钩子,比如在物品提示框上。
该系统还提供了一个简单的数据驱动实现,这意味着你可以轻松地用数据包注册新的标记!
-
动态村民AI
一个辅助系统,可轻松、动态地添加任务并以兼容的方式修改村民的日程安排,而不会覆盖现有的整个AI。还允许正确添加记忆类型。
-
自定义第一人称和第三人称动画:
允许模组制作者在他们的物品中实现一个简单的接口,使其能够拥有自定义的第三人称和第一人称动画(比如弩)。
包括简单易用的接口,可让你控制第一人称和第三人称动画,以及一个在物品类中直接渲染物品本身的回调(类似于望远镜)。
-
砂轮成就触发:
该模组添加了一个自定义触发,当一个物品通过砂轮时会被调用,你可以在你的模组进度JSON文件中调用它。
-
软流体系统:
一个完全由数据驱动的自定义虚拟流体系统,它基于Forge的流体系统之上,旨在更好地适配原版《我的世界》,其主要特点是能够拥有多个流体容器物品,如瓶子、碗和水桶,并且还为可以直接从流体罐中食用的炖菜和饮料提供支持。与Forge流体系统不同,它的基本单位是1个《我的世界》瓶子(250 Forge MB)。该系统还会自动为已注册的Forge流体生成所有所需的流体,并允许用户轻松覆盖或添加它们。流体是虚拟的,所以它们只能存在于专门为它们设计的模组容器中。
🦉 我们的模组🦉