GuiBookModelRenderer.java
net.minecraft.client.gui.render.pip.GuiBookModelRenderer
信息
- 全限定名:net.minecraft.client.gui.render.pip.GuiBookModelRenderer
- 类型:public class
- 包:net.minecraft.client.gui.render.pip
- 源码路径:src/main/java/net/minecraft/client/gui/render/pip/GuiBookModelRenderer.java
- 起始行号:L18
- 继承:PictureInPictureRenderer
- 职责:
TODO
字段/常量
- 无
内部类/嵌套类型
- 无
构造器
public GuiBookModelRenderer(MultiBufferSource.BufferSource bufferSource) @ L19
- 构造器名:GuiBookModelRenderer
- 源码定位:L19
- 修饰符:public
参数:
- bufferSource: MultiBufferSource.BufferSource
说明:
TODO
方法
下面的方法块按源码顺序生成。
public Class<GuiBookModelRenderState> getRenderStateClass() @ L23
- 方法名:getRenderStateClass
- 源码定位:L23
- 返回类型:Class
- 修饰符:public
参数:
- 无
说明:
TODO
protected void renderToTexture(GuiBookModelRenderState bookModelState, PoseStack poseStack) @ L28
- 方法名:renderToTexture
- 源码定位:L28
- 返回类型:void
- 修饰符:protected
参数:
- bookModelState: GuiBookModelRenderState
- poseStack: PoseStack
说明:
TODO
protected float getTranslateY(int height, int guiScale) @ L46
- 方法名:getTranslateY
- 源码定位:L46
- 返回类型:float
- 修饰符:protected
参数:
- height: int
- guiScale: int
说明:
TODO
protected String getTextureLabel() @ L51
- 方法名:getTextureLabel
- 源码定位:L51
- 返回类型:String
- 修饰符:protected
参数:
- 无
说明:
TODO
代码
@OnlyIn(Dist.CLIENT)
public class GuiBookModelRenderer extends PictureInPictureRenderer<GuiBookModelRenderState> {
public GuiBookModelRenderer(MultiBufferSource.BufferSource bufferSource) {
super(bufferSource);
}
@Override
public Class<GuiBookModelRenderState> getRenderStateClass() {
return GuiBookModelRenderState.class;
}
protected void renderToTexture(GuiBookModelRenderState bookModelState, PoseStack poseStack) {
Minecraft.getInstance().gameRenderer.getLighting().setupFor(Lighting.Entry.ENTITY_IN_UI);
poseStack.mulPose(Axis.YP.rotationDegrees(180.0F));
poseStack.mulPose(Axis.XP.rotationDegrees(25.0F));
float open = bookModelState.open();
poseStack.translate((1.0F - open) * 0.2F, (1.0F - open) * 0.1F, (1.0F - open) * 0.25F);
poseStack.mulPose(Axis.YP.rotationDegrees(-(1.0F - open) * 90.0F - 90.0F));
poseStack.mulPose(Axis.XP.rotationDegrees(180.0F));
float flip = bookModelState.flip();
float pageFlip1 = Mth.clamp(Mth.frac(flip + 0.25F) * 1.6F - 0.3F, 0.0F, 1.0F);
float pageFlip2 = Mth.clamp(Mth.frac(flip + 0.75F) * 1.6F - 0.3F, 0.0F, 1.0F);
BookModel bookModel = bookModelState.bookModel();
bookModel.setupAnim(BookModel.State.forAnimation(0.0F, pageFlip1, pageFlip2, open));
Identifier texture = bookModelState.texture();
VertexConsumer buffer = this.bufferSource.getBuffer(bookModel.renderType(texture));
bookModel.renderToBuffer(poseStack, buffer, 15728880, OverlayTexture.NO_OVERLAY);
}
@Override
protected float getTranslateY(int height, int guiScale) {
return 17 * guiScale;
}
@Override
protected String getTextureLabel() {
return "book model";
}
}引用的其他类
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
Minecraft.getInstance()
- 引用位置:
-
- 引用位置:
继承
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
BookModel.State.forAnimation()
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数/返回值
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
Mth.clamp(), Mth.frac()
- 引用位置: