介绍
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 异常。
整合包政策
可以,你可以将其用于整合包中。请不要发消息询问是否可以在你的整合包中使用它,我不会回复此类消息。
DarkhaxDev 的其他作品
查看全部 →Dark Utilities
内容丰富的模组,各方面都添加了一点。
Wawla – What Are We Looking At
Waila/Hwyla 附加模组,添加所有信息。
Runelic
一个用于 Minecraft 的符文字体。
Botany Pots
添加了可以用来种植作物的花盆!
评论
登录后评论和评分