TntRenderer.java
net.minecraft.client.renderer.entity.TntRenderer
信息
- 全限定名:net.minecraft.client.renderer.entity.TntRenderer
- 类型:public class
- 包:net.minecraft.client.renderer.entity
- 源码路径:src/main/java/net/minecraft/client/renderer/entity/TntRenderer.java
- 起始行号:L16
- 继承:EntityRenderer<PrimedTnt,TntRenderState>
- 职责:
TODO
字段/常量
-
BLOCK_DISPLAY_CONTEXT- 类型:
BlockDisplayContext - 修饰符:
public static final - 源码定位:
L17 - 说明:
TODO
- 类型:
-
blockModelResolver- 类型:
BlockModelResolver - 修饰符:
private final - 源码定位:
L18 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
public TntRenderer(EntityRendererProvider.Context context) @ L20
- 构造器名:TntRenderer
- 源码定位:L20
- 修饰符:public
参数:
- context: EntityRendererProvider.Context
说明:
TODO
方法
下面的方法块按源码顺序生成。
public void submit(TntRenderState state, PoseStack poseStack, SubmitNodeCollector submitNodeCollector, CameraRenderState camera) @ L26
- 方法名:submit
- 源码定位:L26
- 返回类型:void
- 修饰符:public
参数:
- state: TntRenderState
- poseStack: PoseStack
- submitNodeCollector: SubmitNodeCollector
- camera: CameraRenderState
说明:
TODO
public TntRenderState createRenderState() @ L52
- 方法名:createRenderState
- 源码定位:L52
- 返回类型:TntRenderState
- 修饰符:public
参数:
- 无
说明:
TODO
public void extractRenderState(PrimedTnt entity, TntRenderState state, float partialTicks) @ L56
- 方法名:extractRenderState
- 源码定位:L56
- 返回类型:void
- 修饰符:public
参数:
- entity: PrimedTnt
- state: TntRenderState
- partialTicks: float
说明:
TODO
代码
@OnlyIn(Dist.CLIENT)
public class TntRenderer extends EntityRenderer<PrimedTnt, TntRenderState> {
public static final BlockDisplayContext BLOCK_DISPLAY_CONTEXT = BlockDisplayContext.create();
private final BlockModelResolver blockModelResolver;
public TntRenderer(EntityRendererProvider.Context context) {
super(context);
this.shadowRadius = 0.5F;
this.blockModelResolver = context.getBlockModelResolver();
}
public void submit(TntRenderState state, PoseStack poseStack, SubmitNodeCollector submitNodeCollector, CameraRenderState camera) {
poseStack.pushPose();
poseStack.translate(0.0F, 0.5F, 0.0F);
float fuse = state.fuseRemainingInTicks;
if (state.fuseRemainingInTicks < 10.0F) {
float g = 1.0F - state.fuseRemainingInTicks / 10.0F;
g = Mth.clamp(g, 0.0F, 1.0F);
g *= g;
g *= g;
float s = 1.0F + g * 0.3F;
poseStack.scale(s, s, s);
}
poseStack.mulPose(Axis.YP.rotationDegrees(-90.0F));
poseStack.translate(-0.5F, -0.5F, 0.5F);
poseStack.mulPose(Axis.YP.rotationDegrees(90.0F));
if (!state.blockState.isEmpty()) {
TntMinecartRenderer.submitWhiteSolidBlock(
state.blockState, poseStack, submitNodeCollector, state.lightCoords, (int)fuse / 5 % 2 == 0, state.outlineColor
);
}
poseStack.popPose();
super.submit(state, poseStack, submitNodeCollector, camera);
}
public TntRenderState createRenderState() {
return new TntRenderState();
}
public void extractRenderState(PrimedTnt entity, TntRenderState state, float partialTicks) {
super.extractRenderState(entity, state, partialTicks);
state.fuseRemainingInTicks = entity.getFuse() - partialTicks + 1.0F;
this.blockModelResolver.update(state.blockState, entity.getBlockState(), BLOCK_DISPLAY_CONTEXT);
}
}引用的其他类
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
字段
- 引用位置:
-
- 引用位置:
字段/方法调用 - 关联成员:
BlockDisplayContext.create()
- 引用位置:
-
- 引用位置:
继承
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
TntMinecartRenderer.submitWhiteSolidBlock()
- 引用位置:
-
- 引用位置:
参数/构造调用/返回值 - 关联成员:
TntRenderState()
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
Mth.clamp()
- 引用位置:
-
- 引用位置:
参数
- 引用位置: