Skip to content

引言

TIP

我们默认您已经对 Minecraft 模组开发的相关知识有所掌握,因此在本文档中我们将只对这部分内容做回顾性介绍。若您想要了解相关内容,请查阅相关的文档部分。

简介

格雷科技是 Minecraft 中著名的科技模组,因其的复杂机制,工厂化生产与丰富的内容而闻名。这个模组最初由 GregoriusT 个人开发, 而后在 1.12.2 版本中由 GTCEu 团队进行维护。 从最早的格雷科技社区版(GTCE)到如今的格雷科技社区版非官方版(GTCEu), 模组的内部API已经经过了长足的迭代与优化,使得开发其的附属模组变得不再是一件困难的事。

这个文档旨在向开发者介绍 GTCEu 中的诸多 API 设计与使用方式,来使开发者可以快速上手基于 GTCEu 的附属模组开发工作, 同时也会介绍其背后的底层工作原理与一部分 GTCEu 所依赖模组的运作模式,例如 ModularUI2 与 CodeChickenLib(CCL)。

凡例

在此对本系列文档做系统性的符号与叙述方式约定,本文档以一个名为 Gregica 的虚构模组作为主体来进行开发与介绍, 开发者可以试着跟随本文档的内容来真正创建一个名为 Gregica 的 GTCEu附属模组。需要注意的是,这个模组是作为一个介绍范例存在的, 而非已发布 / 未发布的真实模组。

这个模组的类的通用前缀名为 GA,这意味着如果存在外部包同名类,例如 Material, 则处于模组内的对应功能类会被命名为 GAMaterial,另一个可用前缀名为 Gregica,一般用于一些使用通用前缀名容易引起混淆的情况, 例如 GregicaAPIGAAPI这样的区别。

对于作为示例的语言,我们并不做特定的限制,一般来说会提供 Java 与 Kotlin 两种语言的代码示例,可以通过点击代码块顶部的方框进行切换。 需要注意的是,若开发者期望在生产环境中获得 Kotlin 语言支持,则需要 Forgelin Continuous 模组的支持。

大致内容

本文档以目前最新的 GTCEu 版本的 API 作为演示,这意味着非 Release 版本的变动也会被纳入考虑范围内。具体内容可见于侧边栏的分类中, 我们以章作为组成文档的基本单位,每章中设有1-4个小节用以囊括具体的内容,基于这些考量,本文档的内容的写作上有以下几个特点:

  • 对于初学者的介绍与使用指南,兼具面向已对相关 API 熟稔的开发者作为参考的功能;
  • 强调原理与底层实现,但不强制开发者阅读相关内容,一般来说,这部分内容会在正文中被折叠或援引;

作为引言,有必要在此申明阅读本文档所需的前置知识:

  • 掌握 Java 或 Kotlin 语言的基本语法,至少了解其面向对象特性,if-else结构等基本操作;
  • 对 Minecraft 1.12.2 及 Forge 的开发知识的基本认识,至少了解事件注册等内容;

针对超过这部分限度的内容,我们将在文档中援引相关外部资料或进行回顾性介绍。

阅读提示

本文档的总体写作结构从较为简单的部分深入,由对元物品和与之相关的 API 的介绍作为起始,旨在使开发者通过从了解一部分整体性的 API 后对其他 API 产生兴趣。

我们采取内篇外篇的区分方式来向开发者展示,内篇为共通的基础框架,外篇则为对内篇的增补与补充,将会涉及更多的扩展性内容。 例如对于材料部分,内篇部分包括了对材料注册,矿物前缀,词条与图案集的介绍,外篇部分则包括对 CraftingComponent API 与 MarkerMaterial API 的介绍, 这两个小型 API 隶属于材料相关的 API 的一部分,但多用于矿物辞典与配方注册,因此被置入外篇的讨论范围内。

在阅读时,外篇内容属于可以在阅读时暂且跳过的内容,你可以在适当情况下跳过它们并在之后需要了解时回顾。

Released under the Creative Commons Zero v1.0 Universal License.