Skip to content
On this page
通用

KattonContextApi

top.katton.apicommon/src/main/kotlin/top/katton/api/KattonContextApi.kt
决定返回的 [ExecutionContext] 使用哪个位置。

BonePositionMode

BonePositionMode通用枚举类
kotlin
enum class BonePositionMode

决定返回的 [ExecutionContext] 使用哪个位置。

BonePositionMode.BONE

BonePositionMode.BONE通用
kotlin
BONE,

骨骼的世界空间位置(实体位置 + 骨骼偏移,并按实体 yaw 旋转)。

BonePositionMode.ENTITY

BonePositionMode.ENTITY通用
kotlin
ENTITY

实体的世界空间位置(忽略骨骼)。

BoneOrientationMode

BoneOrientationMode通用枚举类
kotlin
enum class BoneOrientationMode

决定返回的 [ExecutionContext] 使用哪个朝向。

BoneOrientationMode.BONE

BoneOrientationMode.BONE通用
kotlin
BONE,

骨骼局部旋转 + 实体旋转(近似世界空间朝向)。

BoneOrientationMode.ENTITY

BoneOrientationMode.ENTITY通用
kotlin
ENTITY,

实体自身的 yaw/pitch。

BoneOrientationMode.WORLD

BoneOrientationMode.WORLD通用
kotlin
WORLD

默认方向 [Vec2.ZERO],不应用旋转。

computeBoneWorldPos

computeBoneWorldPos通用函数
kotlin
fun Entity.computeBoneWorldPos(bone: ModelPart, partialTick: Float = 1.0f): Vec3

计算给定 [entity] 上 [ModelPart] 骨骼的世界空间位置。

骨骼偏移以像素为单位(1/16 方块),会按实体 yaw 旋转并加到实体的插值位置上。

请在动画应用之后调用([net.minecraft.client.animation.KeyframeAnimation.apply]), 这样 [ModelPart.x]/[ModelPart.y]/[ModelPart.z] 才能反映动画姿态。

createBoneExecution

createBoneExecution通用函数
kotlin
fun Entity.createBoneExecution(modelPart: ModelPart, positionMode: BonePositionMode = BonePositionMode.BONE, orientationMode: BoneOrientationMode = BoneOrientationMode.WORLD): ExecutionContext

Creates an [ExecutionContext] positioned at a [ModelPart] bone on an [entity].

Combines [BonePositionMode] and [BoneOrientationMode] to set the context's pos and rotation. Use the returned [ExecutionContext] to execute commands at the bone's world position, or read pos / rotation directly for custom effects.

On a dedicated client (multiplayer), the server reference may be unavailable; in that case the returned context has position/rotation set but no command execution capability.

参数

参数说明
modelPart直接的 [ModelPart] 引用,例如 model.rightArmmodel.head
positionMode[BonePositionMode.BONE] 或 [BonePositionMode.ENTITY]。
orientationMode[BoneOrientationMode.BONE]、[BoneOrientationMode.ENTITY] 或 [BoneOrientationMode.WORLD]。