GuiSkinRenderer.java

net.minecraft.client.gui.render.pip.GuiSkinRenderer

信息

  • 全限定名:net.minecraft.client.gui.render.pip.GuiSkinRenderer
  • 类型:public class
  • 包:net.minecraft.client.gui.render.pip
  • 源码路径:src/main/java/net/minecraft/client/gui/render/pip/GuiSkinRenderer.java
  • 起始行号:L17
  • 继承:PictureInPictureRenderer
  • 职责:

    TODO

字段/常量

内部类/嵌套类型

构造器

public GuiSkinRenderer(MultiBufferSource.BufferSource bufferSource) @ L18

  • 构造器名:GuiSkinRenderer
  • 源码定位:L18
  • 修饰符:public

参数:

  • bufferSource: MultiBufferSource.BufferSource

说明:

TODO

方法

下面的方法块按源码顺序生成。

public Class<GuiSkinRenderState> getRenderStateClass() @ L22

  • 方法名:getRenderStateClass
  • 源码定位:L22
  • 返回类型:Class
  • 修饰符:public

参数:

说明:

TODO

protected void renderToTexture(GuiSkinRenderState skinState, PoseStack modelStack) @ L27

  • 方法名:renderToTexture
  • 源码定位:L27
  • 返回类型:void
  • 修饰符:protected

参数:

  • skinState: GuiSkinRenderState
  • modelStack: PoseStack

说明:

TODO

protected String getTextureLabel() @ L42

  • 方法名:getTextureLabel
  • 源码定位:L42
  • 返回类型:String
  • 修饰符:protected

参数:

说明:

TODO

代码

@OnlyIn(Dist.CLIENT)
public class GuiSkinRenderer extends PictureInPictureRenderer<GuiSkinRenderState> {
    public GuiSkinRenderer(MultiBufferSource.BufferSource bufferSource) {
        super(bufferSource);
    }
 
    @Override
    public Class<GuiSkinRenderState> getRenderStateClass() {
        return GuiSkinRenderState.class;
    }
 
    protected void renderToTexture(GuiSkinRenderState skinState, PoseStack modelStack) {
        Minecraft.getInstance().gameRenderer.getLighting().setupFor(Lighting.Entry.PLAYER_SKIN);
        int guiScale = Minecraft.getInstance().gameRenderer.getGameRenderState().windowRenderState.guiScale;
        Matrix4fStack viewStack = RenderSystem.getModelViewStack();
        viewStack.pushMatrix();
        float scale = skinState.scale() * guiScale;
        viewStack.rotateAround(Axis.XP.rotationDegrees(skinState.rotationX()), 0.0F, scale * -skinState.pivotY(), 0.0F);
        modelStack.mulPose(Axis.YP.rotationDegrees(-skinState.rotationY()));
        modelStack.translate(0.0F, -1.6010001F, 0.0F);
        RenderType skinRenderType = skinState.playerModel().renderType(skinState.texture());
        skinState.playerModel().renderToBuffer(modelStack, this.bufferSource.getBuffer(skinRenderType), 15728880, OverlayTexture.NO_OVERLAY);
        this.bufferSource.endBatch();
        viewStack.popMatrix();
    }
 
    @Override
    protected String getTextureLabel() {
        return "player skin";
    }
}

引用的其他类