虚无世界为希望向AoA添加集成或创建附属mod的开发人员提供了开放的可访问性。
信息
虽然虚无世界并不是开源的,但它确实支持第三方插件,并允许开发人员浏览大部分源代码来帮助实现这一点。本页将详细说明与AoA集成或制作附属mod的要求。
免责声明
本页不是关于mod开发的教程,在使用以下信息之前,您应该知道如何设置forge开发环境来创建mod。
下载资源库
为了有效地创建一个附属mod或集成,您需要将它添加到您的开发环境中。
为此,您需要编辑repositories
进入你的build.gradle
文件添加至AoA存储库
如果你还没有一个存储库添加至build.gradle,你需要创建一个。

Build.gradle layout.
从这里,将以下行添加到存储库部分:
maven {
url "https://dl.bintray.com/tslat/aoa3"
}
完成后,创建一个libs
文件夹在你的项目目录中,并从Curseforge中放入你的AoA.jar文件夹(你用来游玩AoA的那个。)
然后,在dependencies
部分,添加以下行代码:
compileOnly ("net.tslat.aoa3:aoa3:<version>") {transitive = false} // This allows you to browse/integrate AoA code
runtime files("./libs/<jarname>") // This adds the mod to your runtime when debugging/testing
Replacing:
<version>
你为之开发的AoA版本-E.G。net.tslat.aoa3:aoa3:3.3
<jarname>
在libs文件夹中使用jarfile的名称。AoA3-3.3.jar
当它生成,gradle将会被编辑,重新运行setupDecompWorkspace
任务在gradle中,然后通过gradle刷新你的项目。
关键类
下面是一些开发人员可能感兴趣或发现有用的关键类。
- PlayerUtil -一个实用类,包含各种有用的方法来与AoA的玩家数据交互,比如技能和资源。
- EntityUtil -一个实用类,包含与AoA生物交互的各种有用方法。包含生物伤害免疫类型、造成的伤害类型等。
- PlayerDataManager -一个容器抓住AoA玩家的数据获取有用的信息。您可以通过PlayerUtil\getAdventPlayer()获取玩家容器。容器只存在于服务器上,而不存在于客户端上。
- ConfigurationUtil -包含AoA的所有配置选项。
- AoAMeleeMob, AoARangedMob, AoAFlyingMeleeMob, AoAFlyingRangedMob, AoAAnimal -几乎所有AoA生物的基础。
- AoAAmbientNPC, AoATrader -AoA的NPC实体的基础。
- Enums -几乎所有AoA枚举类型的holder类。这些枚举用于整个mod的各种方法中。
- ArmourRegister -包含物品注册后AoA所有装甲物品的参考。
- BlockRegister -包含方块注册后对所有AoA块的参考。
- ItemRegister -包含对物品注册后所有AoA物品的参考。
- CreativeTabsRegister - 包含对AoA的所有创造物品栏的参考,用于将物品放置在创造模式菜单中。
- EnchantmentsRegister -包含对所有AoA附魔的参考。
- MaterialsRegister -包含所有AoA的工具,剑,和盔甲材料注册后的参考。
- SoundsRegister -包含音效注册后对AoA所有声音的参考。
- ToolRegister -包含物品注册后对AoA所有工具的参考。
- WeaponRegister -包含在物品注册后对AoA所有武器的参考。
- SpecialHarvestTool -一个接口,它将HarvestDropsEvents传递给实现它的任何类,用于自定义交互。
- BaseArchergun -所有AoA弩的基础。包含用于物品统计和效果的所有参考方法。
- BaseBlaster -所有AoA爆能枪的基础。包含用于物品统计和效果的所有参考方法。
- BaseBow -所有AoA弓的基础。包含用于物品统计和效果的所有参考方法。
- BaseCannon -所有AoA加农炮的基础。包含用于物品统计和效果的所有参考方法。
- BaseGreatblade -所有巨型兵器的基础。包含用于物品统计和效果的所有参考方法。
- BaseGun -所有AoA枪械的基础。包含用于物品统计和效果的所有参考方法。
- BaseMaul -所有AoA榔槌的基础。包含用于物品统计和效果的所有参考方法。
- BaseShotgun -所有AoA霰弹枪的基础。包含用于物品统计和效果的所有参考方法。
- BaseSniper -所有AoA狙击枪的基础。包含用于物品统计和效果的所有参考方法。
- BaseStaff -所有AoA法杖的基础。包含用于物品统计和效果的所有参考方法。
- BaseSword -所有AoA剑的基础。包含用于物品统计和效果的所有参考方法。
- BaseThrownWeapon -所有AoA投掷型武器的基础。包含用于物品统计和效果的所有参考方法。
- BaseVulcane -所有AoA浊流之杖的基础。包含用于物品统计和效果的所有参考方法。
模组的显示功能(IMC)
虚无世界提供了几个IMC功能,可以快速选择集成。有关可用功能及其用途,请参见下文。
添加自定义指南
IMC关键词:mod_provides_guides
信息类型:Any
用法:
获取发送模组的Mod ID并将其注册为指南提供程序。 Guides txt文件应该被存放在mod的assets/<modid>/lang/aoa3/guides/
目录当中
处理箴言集条目
IMC关键词:mod_handles_bestiaries
信息类型:Function
用法:
从消息中获取一个函数Function<EntityLivingBase, Tuple<List<String>, String>>
参数,并在从Mod ID为任何实体打开箴言集条目时使用该参数。
元组的预期格式是第一个是字符串格式的stat行列表,第二个是可选的bestiary lore/description条目。
处理箴言集信息
IMC关键词:mod_has_bestiary_entries
信息类型:Any
用法:
获取发送Mod的Mod ID并将其注册为箴言集信息提供者。Bestiary txt文件应该被存放在mod的assets/<modid>/lang/aoa3/bestiary/
目录下。
添加自定义的Advent Gui主题
IMC关键词:add_advent_gui_theme
信息类型:Function
用法:
从消息中获取一个函数Function<String, String>
参数,并从中获取几个可选的数据片段来注册一个新的Advent Gui主题。
函数参数:
- "name" -返回主题的格式化名称,显示在主题的按钮选择器上。
- "background" -(可选)主题背景材质的文件路径。E.G. 材质路径:"textures/gui/maingui/themes/default/background.png"
- "buttons" -(可选)主题按钮材质的文件路径。E.G. 材质路径:"textures/gui/maingui/themes/default/buttons.png"
- "overlay" -(可选)主题覆盖材质的文件路径。E.G. 材质路径:"textures/gui/maingui/themes/default/overlay.png"
注册狩猎实体
IMC关键词:register_hunter_entity
信息类型:String
用法:
从消息中获取一个String
参数,并对其进行解析以将实体注册为狩猎实体。
字符串的预期格式为:"<EntityID> lvl:<HunterLevel> xp:<XP>" - E.G. "aoa3:cyclops lvl:10 xp:50.5"
阻止生物掉落生命之石
IMC关键词:blacklist_heartstone_entity
信息类型:String
用法:
从消息中获取一个String
参数,并将其解析为从掉落生命之石的生物ID中黑名单。
字符串的预期格式为:"<EntityID>" - E.G. "aoa3:cyclops"
阻止生物生成嗜血晶体
IMC关键词:blacklist_bloodlust_entity
信息类型:String
用法:
从消息中获取一个String
参数,并将其解析为从生成嗜血晶体的生物ID黑名单。
字符串的预期格式为:"<EntityID>" - E.G. "aoa3:cyclops"
类别:语法突出显示错误的页面