跳到正文

TESLA

作者:DarkhaxDev

一个电力前置库

收藏

介绍

介绍由机器翻译自 CurseForge 原页面,仅供参考。

Tesla

Tesla 是一个用于模组间通信的电力 API。它允许来自不同模组的物品、方块和实体通过 Tesla 电力网络相互交互。 

 

警告:Alpha 和 beta 版本面向模组作者和测试人员。支持 Tesla 的模组应仅以正式版本为目标!使用 Alpha 构建版本可能会导致需要它的模组崩溃!

 


本项目由 Nodecraft 赞助。使用代码 Darkhax,首个月服务可享受 7 折优惠!

 

入门指南

使用 Tesla API 的最佳方式是通过 Forge 的能力系统。 其理念非常简单:能力是接口的实现,用于处理某种 Tesla 相关逻辑。这些能力随后可以附加到受支持的对象上(方块实体、物品堆和实体)。当一个能力被附加后,该对象就可以使用所提供的 Tesla 逻辑,并且其他启用 Tesla 的对象也能够识别它。你可以在这里查看一个基础能力实现,在这里查看一个方块实体示例。这里还有一个物品示例:这里。

 

常见问题

 

大家可以在哪里讨论 Tesla API?

这里有一个公开的 Discord 服务器,你可以点击这里加入。

 

Tesla 与其他电力 API 有什么不同?

Tesla API 的功能与其他电力 API 非常相似,但在设计上做出了一些选择,使 API 更加灵活。其中一项选择是使用 Forge 的能力系统,这使得几乎任何对象都可以添加 Tesla 支持。在这一系统下,模组甚至可以为原版熔炉添加 Tesla 支持,而无需使用任何不规范的变通手段。另一项选择是使用长整数而不是整数。这一改动让模组能够更轻松地处理更大的电力数值。 

 

你为什么要制作这个 API?

这个 API 最初只是作为一个有趣的业余项目制作的,但意外地受到了其他开发者的大量关注。它的创作目的并不是发起一场消灭其他能源 API 的 crusade 之类的行动。 

 

Tesla 有什么标准吗?

该 API 不会强制执行任何标准,不过有一些事项建议模组作者遵循:1 Tesla 应等于 1 RF,方块实体不应直接实现 capability 接口,而与方向相关的逻辑应通过 capability 方法处理。

 

应该将 Tesla API 与其他模组捆绑吗?

虽然捆绑 API 是一种常见做法,并且 Forge 也支持这样做,但这是一种非常糟糕的实践。虽然没有任何东西阻止其他模组捆绑该 API,但我们强烈不建议这样做,并且官方不会为此提供支持。 

 

如果我不能捆绑 API,那么软依赖是如何运作的?

Forge 提供了多种工具,可以让软依赖变得非常简单。第一种是 Optional 注解。这个注解可以添加到实现接口的任意类上;如果未检测到某个指定的模组 ID,就可以从该类中移除这个接口。这样一来,现有的容器对象就可以在不产生硬依赖的情况下实现 Tesla 的接口。CapabilityInject 注解 对软依赖同样非常有用。你可以在字段上使用此注解,使其在指定 capability 初始化时,自动使用该 capability 进行初始化。你也可以将此注解添加到方法上,使这些方法在 capability 初始化时被调用。你可能会注意到,这个注解需要引用 Tesla 中的 capability 类,而在软依赖情况下该类并不存在。由于注解和 JVM 的工作方式,在注解中创建此引用是安全的,不会引发 Class Definition 异常。

 

整合包政策

可以,你可以将其用于整合包中。请不要发消息询问是否可以在你的整合包中使用它,我不会回复此类消息。 

常见问题

TESLA 支持哪些 Minecraft 版本?

TESLA 支持 Minecraft Java 版 1.9–1.12.2,共 10 个版本,可用的加载器:Forge。下载时注意选择和你游戏版本一致的文件。

TESLA 怎么安装?

先用 PCL2 或 HMCL 启动器安装对应版本的 Forge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。

评论

登录后评论和评分

DarkhaxDev 的其他作品

查看全部 →