IllusionerRenderer.java
net.minecraft.client.renderer.entity.IllusionerRenderer
信息
- 全限定名:net.minecraft.client.renderer.entity.IllusionerRenderer
- 类型:public class
- 包:net.minecraft.client.renderer.entity
- 源码路径:src/main/java/net/minecraft/client/renderer/entity/IllusionerRenderer.java
- 起始行号:L21
- 继承:IllagerRenderer<Illusioner,IllusionerRenderState>
- 职责:
TODO
字段/常量
ILLUSIONER- 类型:
Identifier - 修饰符:
private static final - 源码定位:
L22 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
public IllusionerRenderer(EntityRendererProvider.Context context) @ L24
- 构造器名:IllusionerRenderer
- 源码定位:L24
- 修饰符:public
参数:
- context: EntityRendererProvider.Context
说明:
TODO
方法
下面的方法块按源码顺序生成。
public Identifier getTextureLocation(IllusionerRenderState state) @ L44
- 方法名:getTextureLocation
- 源码定位:L44
- 返回类型:Identifier
- 修饰符:public
参数:
- state: IllusionerRenderState
说明:
TODO
public IllusionerRenderState createRenderState() @ L48
- 方法名:createRenderState
- 源码定位:L48
- 返回类型:IllusionerRenderState
- 修饰符:public
参数:
- 无
说明:
TODO
public void extractRenderState(Illusioner entity, IllusionerRenderState state, float partialTicks) @ L52
- 方法名:extractRenderState
- 源码定位:L52
- 返回类型:void
- 修饰符:public
参数:
- entity: Illusioner
- state: IllusionerRenderState
- partialTicks: float
说明:
TODO
public void submit(IllusionerRenderState state, PoseStack poseStack, SubmitNodeCollector submitNodeCollector, CameraRenderState camera) @ L59
- 方法名:submit
- 源码定位:L59
- 返回类型:void
- 修饰符:public
参数:
- state: IllusionerRenderState
- poseStack: PoseStack
- submitNodeCollector: SubmitNodeCollector
- camera: CameraRenderState
说明:
TODO
protected boolean isBodyVisible(IllusionerRenderState state) @ L78
- 方法名:isBodyVisible
- 源码定位:L78
- 返回类型:boolean
- 修饰符:protected
参数:
- state: IllusionerRenderState
说明:
TODO
protected AABB getBoundingBoxForCulling(Illusioner entity) @ L82
- 方法名:getBoundingBoxForCulling
- 源码定位:L82
- 返回类型:AABB
- 修饰符:protected
参数:
- entity: Illusioner
说明:
TODO
代码
@OnlyIn(Dist.CLIENT)
public class IllusionerRenderer extends IllagerRenderer<Illusioner, IllusionerRenderState> {
private static final Identifier ILLUSIONER = Identifier.withDefaultNamespace("textures/entity/illager/illusioner.png");
public IllusionerRenderer(EntityRendererProvider.Context context) {
super(context, new IllagerModel<>(context.bakeLayer(ModelLayers.ILLUSIONER)), 0.5F);
this.addLayer(
new ItemInHandLayer<IllusionerRenderState, IllagerModel<IllusionerRenderState>>(this) {
{
Objects.requireNonNull(IllusionerRenderer.this);
}
public void submit(
PoseStack poseStack, SubmitNodeCollector submitNodeCollector, int lightCoords, IllusionerRenderState state, float yRot, float xRot
) {
if (state.isCastingSpell || state.isAggressive) {
super.submit(poseStack, submitNodeCollector, lightCoords, state, yRot, xRot);
}
}
}
);
this.model.getHat().visible = true;
}
public Identifier getTextureLocation(IllusionerRenderState state) {
return ILLUSIONER;
}
public IllusionerRenderState createRenderState() {
return new IllusionerRenderState();
}
public void extractRenderState(Illusioner entity, IllusionerRenderState state, float partialTicks) {
super.extractRenderState(entity, state, partialTicks);
Vec3[] illusionOffsets = entity.getIllusionOffsets(partialTicks);
state.illusionOffsets = Arrays.copyOf(illusionOffsets, illusionOffsets.length);
state.isCastingSpell = entity.isCastingSpell();
}
public void submit(IllusionerRenderState state, PoseStack poseStack, SubmitNodeCollector submitNodeCollector, CameraRenderState camera) {
if (state.isInvisible) {
Vec3[] offsets = state.illusionOffsets;
for (int i = 0; i < offsets.length; i++) {
poseStack.pushPose();
poseStack.translate(
offsets[i].x + Mth.cos(i + state.ageInTicks * 0.5F) * 0.025,
offsets[i].y + Mth.cos(i + state.ageInTicks * 0.75F) * 0.0125,
offsets[i].z + Mth.cos(i + state.ageInTicks * 0.7F) * 0.025
);
super.submit(state, poseStack, submitNodeCollector, camera);
poseStack.popPose();
}
} else {
super.submit(state, poseStack, submitNodeCollector, camera);
}
}
protected boolean isBodyVisible(IllusionerRenderState state) {
return true;
}
protected AABB getBoundingBoxForCulling(Illusioner entity) {
return super.getBoundingBoxForCulling(entity).inflate(3.0, 0.0, 3.0);
}
}引用的其他类
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
继承
- 引用位置:
-
- 引用位置:
参数/构造调用/返回值 - 关联成员:
IllusionerRenderState()
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
字段/方法调用/返回值 - 关联成员:
Identifier.withDefaultNamespace()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
Mth.cos()
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
返回值
- 引用位置: