EnchantTableRenderer.java
net.minecraft.client.renderer.blockentity.EnchantTableRenderer
信息
- 全限定名:net.minecraft.client.renderer.blockentity.EnchantTableRenderer
- 类型:public class
- 包:net.minecraft.client.renderer.blockentity
- 源码路径:src/main/java/net/minecraft/client/renderer/blockentity/EnchantTableRenderer.java
- 起始行号:L23
- 实现:BlockEntityRenderer<EnchantingTableBlockEntity,EnchantTableRenderState>
- 职责:
TODO
字段/常量
-
BOOK_TEXTURE- 类型:
SpriteId - 修饰符:
public static final - 源码定位:
L24 - 说明:
TODO
- 类型:
-
sprites- 类型:
SpriteGetter - 修饰符:
private final - 源码定位:
L25 - 说明:
TODO
- 类型:
-
bookModel- 类型:
BookModel - 修饰符:
private final - 源码定位:
L26 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
public EnchantTableRenderer(BlockEntityRendererProvider.Context context) @ L28
- 构造器名:EnchantTableRenderer
- 源码定位:L28
- 修饰符:public
参数:
- context: BlockEntityRendererProvider.Context
说明:
TODO
方法
下面的方法块按源码顺序生成。
public EnchantTableRenderState createRenderState() @ L33
- 方法名:createRenderState
- 源码定位:L33
- 返回类型:EnchantTableRenderState
- 修饰符:public
参数:
- 无
说明:
TODO
public void extractRenderState(EnchantingTableBlockEntity blockEntity, EnchantTableRenderState state, float partialTicks, Vec3 cameraPosition, ModelFeatureRenderer.CrumblingOverlay breakProgress) @ L37
- 方法名:extractRenderState
- 源码定位:L37
- 返回类型:void
- 修饰符:public
参数:
- blockEntity: EnchantingTableBlockEntity
- state: EnchantTableRenderState
- partialTicks: float
- cameraPosition: Vec3
- breakProgress: ModelFeatureRenderer.CrumblingOverlay
说明:
TODO
public void submit(EnchantTableRenderState state, PoseStack poseStack, SubmitNodeCollector submitNodeCollector, CameraRenderState camera) @ L61
- 方法名:submit
- 源码定位:L61
- 返回类型:void
- 修饰符:public
参数:
- state: EnchantTableRenderState
- poseStack: PoseStack
- submitNodeCollector: SubmitNodeCollector
- camera: CameraRenderState
说明:
TODO
代码
@OnlyIn(Dist.CLIENT)
public class EnchantTableRenderer implements BlockEntityRenderer<EnchantingTableBlockEntity, EnchantTableRenderState> {
public static final SpriteId BOOK_TEXTURE = Sheets.BLOCK_ENTITIES_MAPPER.defaultNamespaceApply("enchantment/enchanting_table_book");
private final SpriteGetter sprites;
private final BookModel bookModel;
public EnchantTableRenderer(BlockEntityRendererProvider.Context context) {
this.sprites = context.sprites();
this.bookModel = new BookModel(context.bakeLayer(ModelLayers.BOOK));
}
public EnchantTableRenderState createRenderState() {
return new EnchantTableRenderState();
}
public void extractRenderState(
EnchantingTableBlockEntity blockEntity,
EnchantTableRenderState state,
float partialTicks,
Vec3 cameraPosition,
ModelFeatureRenderer.@Nullable CrumblingOverlay breakProgress
) {
BlockEntityRenderer.super.extractRenderState(blockEntity, state, partialTicks, cameraPosition, breakProgress);
state.flip = Mth.lerp(partialTicks, blockEntity.oFlip, blockEntity.flip);
state.open = Mth.lerp(partialTicks, blockEntity.oOpen, blockEntity.open);
state.time = blockEntity.time + partialTicks;
float or = blockEntity.rot - blockEntity.oRot;
while (or >= (float) Math.PI) {
or -= (float) (Math.PI * 2);
}
while (or < (float) -Math.PI) {
or += (float) (Math.PI * 2);
}
state.yRot = blockEntity.oRot + or * partialTicks;
}
public void submit(EnchantTableRenderState state, PoseStack poseStack, SubmitNodeCollector submitNodeCollector, CameraRenderState camera) {
poseStack.pushPose();
poseStack.translate(0.5F, 0.75F, 0.5F);
poseStack.translate(0.0F, 0.1F + Mth.sin(state.time * 0.1F) * 0.01F, 0.0F);
float yRot = state.yRot;
poseStack.mulPose(Axis.YP.rotation(-yRot));
poseStack.mulPose(Axis.ZP.rotationDegrees(80.0F));
float ff1 = Mth.frac(state.flip + 0.25F) * 1.6F - 0.3F;
float ff2 = Mth.frac(state.flip + 0.75F) * 1.6F - 0.3F;
BookModel.State bookState = BookModel.State.forAnimation(state.time, Mth.clamp(ff1, 0.0F, 1.0F), Mth.clamp(ff2, 0.0F, 1.0F), state.open);
submitNodeCollector.submitModel(
this.bookModel, bookState, poseStack, state.lightCoords, OverlayTexture.NO_OVERLAY, -1, BOOK_TEXTURE, this.sprites, 0, state.breakProgress
);
poseStack.popPose();
}
}引用的其他类
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
字段/方法调用/构造调用 - 关联成员:
BookModel(), BookModel.State.forAnimation()
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
实现
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数/构造调用/返回值 - 关联成员:
EnchantTableRenderState()
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
字段
- 引用位置:
-
- 引用位置:
字段
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
Mth.clamp(), Mth.frac(), Mth.lerp(), Mth.sin()
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数
- 引用位置: