EndCrystalRenderer.java
net.minecraft.client.renderer.entity.EndCrystalRenderer
信息
- 全限定名:net.minecraft.client.renderer.entity.EndCrystalRenderer
- 类型:public class
- 包:net.minecraft.client.renderer.entity
- 源码路径:src/main/java/net/minecraft/client/renderer/entity/EndCrystalRenderer.java
- 起始行号:L20
- 继承:EntityRenderer<EndCrystal,EndCrystalRenderState>
- 职责:
TODO
字段/常量
-
END_CRYSTAL_LOCATION- 类型:
Identifier - 修饰符:
private static final - 源码定位:
L21 - 说明:
TODO
- 类型:
-
model- 类型:
EndCrystalModel - 修饰符:
private final - 源码定位:
L22 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
public EndCrystalRenderer(EntityRendererProvider.Context context) @ L24
- 构造器名:EndCrystalRenderer
- 源码定位:L24
- 修饰符:public
参数:
- context: EntityRendererProvider.Context
说明:
TODO
方法
下面的方法块按源码顺序生成。
public void submit(EndCrystalRenderState state, PoseStack poseStack, SubmitNodeCollector submitNodeCollector, CameraRenderState camera) @ L30
- 方法名:submit
- 源码定位:L30
- 返回类型:void
- 修饰符:public
参数:
- state: EndCrystalRenderState
- poseStack: PoseStack
- submitNodeCollector: SubmitNodeCollector
- camera: CameraRenderState
说明:
TODO
public static float getY(float timeInTicks) @ L51
- 方法名:getY
- 源码定位:L51
- 返回类型:float
- 修饰符:public static
参数:
- timeInTicks: float
说明:
TODO
public EndCrystalRenderState createRenderState() @ L57
- 方法名:createRenderState
- 源码定位:L57
- 返回类型:EndCrystalRenderState
- 修饰符:public
参数:
- 无
说明:
TODO
public void extractRenderState(EndCrystal entity, EndCrystalRenderState state, float partialTicks) @ L61
- 方法名:extractRenderState
- 源码定位:L61
- 返回类型:void
- 修饰符:public
参数:
- entity: EndCrystal
- state: EndCrystalRenderState
- partialTicks: float
说明:
TODO
public boolean shouldRender(EndCrystal entity, Frustum culler, double camX, double camY, double camZ) @ L73
- 方法名:shouldRender
- 源码定位:L73
- 返回类型:boolean
- 修饰符:public
参数:
- entity: EndCrystal
- culler: Frustum
- camX: double
- camY: double
- camZ: double
说明:
TODO
代码
@OnlyIn(Dist.CLIENT)
public class EndCrystalRenderer extends EntityRenderer<EndCrystal, EndCrystalRenderState> {
private static final Identifier END_CRYSTAL_LOCATION = Identifier.withDefaultNamespace("textures/entity/end_crystal/end_crystal.png");
private final EndCrystalModel model;
public EndCrystalRenderer(EntityRendererProvider.Context context) {
super(context);
this.shadowRadius = 0.5F;
this.model = new EndCrystalModel(context.bakeLayer(ModelLayers.END_CRYSTAL));
}
public void submit(EndCrystalRenderState state, PoseStack poseStack, SubmitNodeCollector submitNodeCollector, CameraRenderState camera) {
poseStack.pushPose();
poseStack.scale(2.0F, 2.0F, 2.0F);
poseStack.translate(0.0F, -0.5F, 0.0F);
submitNodeCollector.submitModel(
this.model, state, poseStack, END_CRYSTAL_LOCATION, state.lightCoords, OverlayTexture.NO_OVERLAY, state.outlineColor, null
);
poseStack.popPose();
Vec3 beamOffset = state.beamOffset;
if (beamOffset != null) {
float crystalY = getY(state.ageInTicks);
float deltaX = (float)beamOffset.x;
float deltaY = (float)beamOffset.y;
float deltaZ = (float)beamOffset.z;
poseStack.translate(beamOffset);
EnderDragonRenderer.submitCrystalBeams(-deltaX, -deltaY + crystalY, -deltaZ, state.ageInTicks, poseStack, submitNodeCollector, state.lightCoords);
}
super.submit(state, poseStack, submitNodeCollector, camera);
}
public static float getY(float timeInTicks) {
float hh = Mth.sin(timeInTicks * 0.2F) / 2.0F + 0.5F;
hh = (hh * hh + hh) * 0.4F;
return hh - 1.4F;
}
public EndCrystalRenderState createRenderState() {
return new EndCrystalRenderState();
}
public void extractRenderState(EndCrystal entity, EndCrystalRenderState state, float partialTicks) {
super.extractRenderState(entity, state, partialTicks);
state.ageInTicks = entity.time + partialTicks;
state.showsBottom = entity.showsBottom();
BlockPos beamTarget = entity.getBeamTarget();
if (beamTarget != null) {
state.beamOffset = Vec3.atCenterOf(beamTarget).subtract(entity.getPosition(partialTicks));
} else {
state.beamOffset = null;
}
}
public boolean shouldRender(EndCrystal entity, Frustum culler, double camX, double camY, double camZ) {
return super.shouldRender(entity, culler, camX, camY, camZ) || entity.getBeamTarget() != null;
}
}引用的其他类
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
字段/构造调用 - 关联成员:
EndCrystalModel()
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
EnderDragonRenderer.submitCrystalBeams()
- 引用位置:
-
- 引用位置:
继承
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数/构造调用/返回值 - 关联成员:
EndCrystalRenderState()
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
字段/方法调用 - 关联成员:
Identifier.withDefaultNamespace()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
Mth.sin()
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
Vec3.atCenterOf()
- 引用位置: