公开 API Public API

基本信息

属性 值
根包 makeo.gadomancy.api
API 类 api/GadomancyApi.java
实现 common/api/DefaultApiHandler.java
内部接口 api/internal/IApiHandler.java(GadomancyApi.setInstance 的实现契约)
注入时机 FML onConstruct 阶段(Gadomancy.java:56)

傀儡 API

GadomancyApi 提供 11 个公开静态方法,其中 8 个围绕傀儡:

方法 签名要点 作用
registerAdditionalGolemType (String name, String modId, AdditionalGolemType) 注册新的傀儡类型,返回是否成功
getAdditionalGolemType (String name) / (EnumGolemType type) 按名称或 Thaumcraft 枚举值查类型
getAdditionalGolemTypes () → List<AdditionalGolemType> 列出全部已注册类型
isAdditionalGolemType (String name) / (EnumGolemType type) 判定是否为附加类型
registerAdditionalGolemCore (String name, AdditionalGolemCore core) 注册新的傀儡核心
getAdditionalGolemCores () → List<AdditionalGolemCore> 列出全部已注册核心
getAdditionalGolemCore (EntityGolemBase golem) 读取傀儡当前装配的核心
getAdditionalGolemCore (ItemStack placer) 读取放置器物品对应的核心
setAdditionalGolemCore (EntityGolemBase golem, AdditionalGolemCore core) 为傀儡装配核心

(GadomancyApi.java:29-75)

AdditionalGolemType 抽象

第三方可继承它添加自己的傀儡类型(api/golems/AdditionalGolemType.java):

成员 说明
构造参数 (EnumGolemType, maxHealth, armor, movementSpeed, fireResist, upgradeAmount, carryLimit, regenDelay, strength)(:32-33)
可覆写 getUnlocalizedName()、registerIcons(IIconRegister)、getIcon(ItemStack, int)、getEntityTexture()、getInvSlotTexture()
可覆写默认值 getRenderPasses()(:51)
只读字段 maxHealth、armor、movementSpeed、fireResist、upgradeAmount、carryLimit、regenDelay、strength(:23-30)

AdditionalGolemCore 抽象

(api/golems/cores/AdditionalGolemCore.java)

成员 说明
setupGolem(EntityGolemBase) 抽象方法,装配核心时调用(:23)
hasGui() 抽象方法,核心是否自带 GUI(:28)
getBaseCore() 返回 byte,默认实现(:33)

傀儡事件

两个 Forge 事件(api/golems/events/):

事件 字段 触发时机
PlacerCreateGolemEvent player、golem(EntityGolemBase)、placer(ItemStack) 用放置器生成傀儡时
GolemDropPlacerEvent player、placer(EntityItem)、golem(EntityGolemBase) 傀儡死亡掉落放置器时

(各文件 :15-21)

灵气 API

AuraEffect 抽象

(api/AuraEffect.java)第三方可继承以添加新的灵气效应:

成员 默认值 说明
getTickInterval() 8 效果触发间隔(tick),:71-73
getRange() 8.0 灵气塔的作用半径,:82
getEffectType() 抽象 区分 BLOCK_EFFECT / ENTITY_EFFECT
getBlockCount(Random) 抽象 随机选取要作用的方块数
doBlockEffect(...) 抽象 对方块施加效果(仅 BLOCK_EFFECT 时触发)
register(Aspect) — 链式注册,返回自身,:88-91

内置两个便捷抽象类:

抽象子类 用途
AuraEffect.EntityAuraEffect 对实体施加效果
AuraEffect.BlockAuraEffect 对方块施加效果

ClickBehavior 抽象

(api/ClickBehavior.java)控制 注入爪 对哪些方块生效:

成员 说明
init(world, block, x, y, z, metadata) 每次查询前初始化上下文
isValidForBlock() 抽象,是否对该方块生效
getComparatorOutput() 比较器输出强度
addInstability(int) 追加不稳定度
getVisCost() 魔力消耗

注册入口:GadomancyApi.registerClawClickBehavior(GadomancyApi.java:77)。

数值

数值名 值
GadomancyApi 公开静态方法数 11
傀儡相关方法数 8
抽象基类数 4(AdditionalGolemType、AdditionalGolemCore、AuraEffect、ClickBehavior)
Forge 事件数 2
AuraEffect 默认触发间隔 8 tick
AuraEffect 默认半径 8.0

相关条目