1. 动画状态机(Animation State Machine)
WIP
1.1. 动画状态机定义文件
WIP
1.2. Armature 定义文件
WIP
1.3. 使用
public class CommonProxy {
public void loadAnimationStateMachine(ResourceLocation location, ImmutableMap<String, ITimeValue> params) {
return null;
}
}
public class ClientProxy {
@Override
public void loadAnimationStateMachine(ResourceLocation location, ImmutableMap<String, ITimeValue> params) {
return ModelLoaderRegistry.loadASM(location, params);
}
}
有鉴于 Capability 的使用,动画状态机可用于:
- 方块(借助
TileEntity
) - 物品(借助
ItemStack
和Item.initCapabilities
) - 实体(借助
Entity
和AnimationModelBase
)
具体的使用方式和其他基于 Capability 的接口大同小异。有鉴于这个功能只在物理客户端上有意义,使用它时也有一些小细节要注意。
1.3.1. 应用于 TileEntity
WIP
1.3.2. 应用于物品
WIP
public final class ItemWithAnimatingModel extends Item {
public ICapabilityProvider initCapabilities(ItemStack item, NBTTagCompound data) {
return new DefaultItemAnimationCapabilityProvider(proxy.loadAnimationStateMachine(...));
}
}
1.3.3. 应用于实体
WIP