第三方mod兼容/制作插件

From Advent of Ascension Wiki
Jump to: navigation, search

虚无世界为希望向AoA添加集成或创建附属mod的开发人员提供了开放的可访问性。

信息[edit | edit source]

虽然虚无世界并不是开源的,但它确实支持第三方插件,并允许开发人员浏览大部分源代码来帮助实现这一点。本页将详细说明与AoA集成或制作附属mod的要求。

免责声明[edit | edit source]

本页不是关于mod开发的教程,在使用以下信息之前,您应该知道如何设置forge开发环境来创建mod。

下载资源库[edit | edit source]

为了有效地创建一个附属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刷新你的项目。

关键类[edit | edit source]

下面是一些开发人员可能感兴趣或发现有用的关键类。

  • 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)[edit | edit source]

虚无世界提供了几个IMC功能,可以快速选择集成。有关可用功能及其用途,请参见下文。

添加自定义指南[edit | edit source]

IMC关键词:mod_provides_guides

信息类型:Any

用法:

获取发送模组的Mod ID并将其注册为指南提供程序。 Guides txt文件应该被存放在mod的assets/<modid>/lang/aoa3/guides/目录当中

处理箴言集条目[edit | edit source]

IMC关键词:mod_handles_bestiaries

信息类型:Function

用法:

从消息中获取一个函数Function<EntityLivingBase, Tuple<List<String>, String>>参数,并在从Mod ID为任何实体打开箴言集条目时使用该参数。 元组的预期格式是第一个是字符串格式的stat行列表,第二个是可选的bestiary lore/description条目。

处理箴言集信息[edit | edit source]

IMC关键词:mod_has_bestiary_entries

信息类型:Any

用法:

获取发送Mod的Mod ID并将其注册为箴言集信息提供者。Bestiary txt文件应该被存放在mod的assets/<modid>/lang/aoa3/bestiary/目录下。

添加自定义的Advent Gui主题[edit | edit source]

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"

注册狩猎实体[edit | edit source]

IMC关键词:register_hunter_entity

信息类型:String

用法:

从消息中获取一个String参数,并对其进行解析以将实体注册为狩猎实体。

字符串的预期格式为:"<EntityID> lvl:<HunterLevel> xp:<XP>" - E.G. "aoa3:cyclops lvl:10 xp:50.5"

阻止生物掉落生命之石[edit | edit source]

IMC关键词:blacklist_heartstone_entity

信息类型:String

用法:

从消息中获取一个String参数,并将其解析为从掉落生命之石的生物ID中黑名单。

字符串的预期格式为:"<EntityID>" - E.G. "aoa3:cyclops"

阻止生物生成嗜血晶体[edit | edit source]

IMC关键词:blacklist_bloodlust_entity

信息类型:String

用法:

从消息中获取一个String参数,并将其解析为从生成嗜血晶体的生物ID黑名单。

字符串的预期格式为:"<EntityID>" - E.G. "aoa3:cyclops"

类别:语法突出显示错误的页面