公开 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 |