ArrowGizmo.java
net.minecraft.gizmos.ArrowGizmo
信息
- 全限定名:net.minecraft.gizmos.ArrowGizmo
- 类型:public record
- 包:net.minecraft.gizmos
- 源码路径:src/main/java/net/minecraft/gizmos/ArrowGizmo.java
- 起始行号:L9
- 实现:Gizmo
- 职责:
TODO
字段/常量
DEFAULT_WIDTH- 类型:
float - 修饰符:
public static final - 源码定位:
L10 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
- 无
方法
下面的方法块按源码顺序生成。
public void emit(GizmoPrimitives primitives, float alphaMultiplier) @ L12
- 方法名:emit
- 源码定位:L12
- 返回类型:void
- 修饰符:public
参数:
- primitives: GizmoPrimitives
- alphaMultiplier: float
说明:
TODO
代码
public record ArrowGizmo(Vec3 start, Vec3 end, int color, float width) implements Gizmo {
public static final float DEFAULT_WIDTH = 2.5F;
@Override
public void emit(GizmoPrimitives primitives, float alphaMultiplier) {
int color = ARGB.multiplyAlpha(this.color, alphaMultiplier);
primitives.addLine(this.start, this.end, color, this.width);
Quaternionf rotation = new Quaternionf().rotationTo(new Vector3f(1.0F, 0.0F, 0.0F), this.end.subtract(this.start).toVector3f().normalize());
float len = (float)Mth.clamp(this.end.distanceTo(this.start) * 0.1F, 0.1F, 1.0);
Vector3f[] tips = new Vector3f[]{
rotation.transform(-len, len, 0.0F, new Vector3f()),
rotation.transform(-len, 0.0F, len, new Vector3f()),
rotation.transform(-len, -len, 0.0F, new Vector3f()),
rotation.transform(-len, 0.0F, -len, new Vector3f())
};
for (Vector3f tip : tips) {
primitives.addLine(this.end.add(tip.x, tip.y, tip.z), this.end, color, this.width);
}
}
}引用的其他类
-
- 引用位置:
实现
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
ARGB.multiplyAlpha()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
Mth.clamp()
- 引用位置: