SubmitNodeStorage.java

net.minecraft.client.renderer.SubmitNodeStorage

信息

  • 全限定名:net.minecraft.client.renderer.SubmitNodeStorage
  • 类型:public class
  • 包:net.minecraft.client.renderer
  • 源码路径:src/main/java/net/minecraft/client/renderer/SubmitNodeStorage.java
  • 起始行号:L32
  • 实现:SubmitNodeCollector
  • 职责:

    TODO

字段/常量

  • submitsPerOrder
    • 类型: Int2ObjectAVLTreeMap<SubmitNodeCollection>
    • 修饰符: private final
    • 源码定位: L33
    • 说明:

      TODO

内部类/嵌套类型

  • net.minecraft.client.renderer.SubmitNodeStorage.BlockModelSubmit

    • 类型: record
    • 修饰符: public
    • 源码定位: L181
    • 说明:

      TODO

  • net.minecraft.client.renderer.SubmitNodeStorage.BreakingBlockModelSubmit

    • 类型: record
    • 修饰符: public
    • 源码定位: L193
    • 说明:

      TODO

  • net.minecraft.client.renderer.SubmitNodeStorage.CustomGeometrySubmit

    • 类型: record
    • 修饰符: public
    • 源码定位: L197
    • 说明:

      TODO

  • net.minecraft.client.renderer.SubmitNodeStorage.FlameSubmit

    • 类型: record
    • 修饰符: public
    • 源码定位: L201
    • 说明:

      TODO

  • net.minecraft.client.renderer.SubmitNodeStorage.ItemSubmit

    • 类型: record
    • 修饰符: public
    • 源码定位: L205
    • 说明:

      TODO

  • net.minecraft.client.renderer.SubmitNodeStorage.LeashSubmit

    • 类型: record
    • 修饰符: public
    • 源码定位: L218
    • 说明:

      TODO

  • net.minecraft.client.renderer.SubmitNodeStorage.ModelPartSubmit

    • 类型: record
    • 修饰符: public
    • 源码定位: L222
    • 说明:

      TODO

  • net.minecraft.client.renderer.SubmitNodeStorage.ModelSubmit

    • 类型: record
    • 修饰符: public
    • 源码定位: L237
    • 说明:

      TODO

  • net.minecraft.client.renderer.SubmitNodeStorage.MovingBlockSubmit

    • 类型: record
    • 修饰符: public
    • 源码定位: L251
    • 说明:

      TODO

  • net.minecraft.client.renderer.SubmitNodeStorage.NameTagSubmit

    • 类型: record
    • 修饰符: public
    • 源码定位: L255
    • 说明:

      TODO

  • net.minecraft.client.renderer.SubmitNodeStorage.ShadowSubmit

    • 类型: record
    • 修饰符: public
    • 源码定位: L259
    • 说明:

      TODO

  • net.minecraft.client.renderer.SubmitNodeStorage.TextSubmit

    • 类型: record
    • 修饰符: public
    • 源码定位: L263
    • 说明:

      TODO

  • net.minecraft.client.renderer.SubmitNodeStorage.TranslucentModelSubmit

    • 类型: record
    • 修饰符: public
    • 源码定位: L278
    • 说明:

      TODO

构造器

方法

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

public SubmitNodeCollection order(int order) @ L35

  • 方法名:order
  • 源码定位:L35
  • 返回类型:SubmitNodeCollection
  • 修饰符:public

参数:

  • order: int

说明:

TODO

public void submitShadow(PoseStack poseStack, float radius, List<EntityRenderState.ShadowPiece> pieces) @ L39

  • 方法名:submitShadow
  • 源码定位:L39
  • 返回类型:void
  • 修饰符:public

参数:

  • poseStack: PoseStack
  • radius: float
  • pieces: List<EntityRenderState.ShadowPiece>

说明:

TODO

public void submitNameTag(PoseStack poseStack, Vec3 nameTagAttachment, int offset, Component name, boolean seeThrough, int lightCoords, double distanceToCameraSq, CameraRenderState camera) @ L44

  • 方法名:submitNameTag
  • 源码定位:L44
  • 返回类型:void
  • 修饰符:public

参数:

  • poseStack: PoseStack
  • nameTagAttachment: Vec3
  • offset: int
  • name: Component
  • seeThrough: boolean
  • lightCoords: int
  • distanceToCameraSq: double
  • camera: CameraRenderState

说明:

TODO

public void submitText(PoseStack poseStack, float x, float y, FormattedCharSequence string, boolean dropShadow, Font.DisplayMode displayMode, int lightCoords, int color, int backgroundColor, int outlineColor) @ L58

  • 方法名:submitText
  • 源码定位:L58
  • 返回类型:void
  • 修饰符:public

参数:

  • poseStack: PoseStack
  • x: float
  • y: float
  • string: FormattedCharSequence
  • dropShadow: boolean
  • displayMode: Font.DisplayMode
  • lightCoords: int
  • color: int
  • backgroundColor: int
  • outlineColor: int

说明:

TODO

public void submitFlame(PoseStack poseStack, EntityRenderState renderState, Quaternionf rotation) @ L74

  • 方法名:submitFlame
  • 源码定位:L74
  • 返回类型:void
  • 修饰符:public

参数:

  • poseStack: PoseStack
  • renderState: EntityRenderState
  • rotation: Quaternionf

说明:

TODO

public void submitLeash(PoseStack poseStack, EntityRenderState.LeashState leashState) @ L79

  • 方法名:submitLeash
  • 源码定位:L79
  • 返回类型:void
  • 修饰符:public

参数:

  • poseStack: PoseStack
  • leashState: EntityRenderState.LeashState

说明:

TODO

public <S> void submitModel(Model<?super S> model, S state, PoseStack poseStack, RenderType renderType, int lightCoords, int overlayCoords, int tintedColor, TextureAtlasSprite sprite, int outlineColor, ModelFeatureRenderer.CrumblingOverlay crumblingOverlay) @ L84

  • 方法名:submitModel
  • 源码定位:L84
  • 返回类型: void
  • 修饰符:public

参数:

  • model: Model<?super S>
  • state: S
  • poseStack: PoseStack
  • renderType: RenderType
  • lightCoords: int
  • overlayCoords: int
  • tintedColor: int
  • sprite: TextureAtlasSprite
  • outlineColor: int
  • crumblingOverlay: ModelFeatureRenderer.CrumblingOverlay

说明:

TODO

public void submitModelPart(ModelPart modelPart, PoseStack poseStack, RenderType renderType, int lightCoords, int overlayCoords, TextureAtlasSprite sprite, boolean sheeted, boolean hasFoil, int tintedColor, ModelFeatureRenderer.CrumblingOverlay crumblingOverlay, int outlineColor) @ L100

  • 方法名:submitModelPart
  • 源码定位:L100
  • 返回类型:void
  • 修饰符:public

参数:

  • modelPart: ModelPart
  • poseStack: PoseStack
  • renderType: RenderType
  • lightCoords: int
  • overlayCoords: int
  • sprite: TextureAtlasSprite
  • sheeted: boolean
  • hasFoil: boolean
  • tintedColor: int
  • crumblingOverlay: ModelFeatureRenderer.CrumblingOverlay
  • outlineColor: int

说明:

TODO

public void submitMovingBlock(PoseStack poseStack, MovingBlockRenderState movingBlockRenderState) @ L120

  • 方法名:submitMovingBlock
  • 源码定位:L120
  • 返回类型:void
  • 修饰符:public

参数:

  • poseStack: PoseStack
  • movingBlockRenderState: MovingBlockRenderState

说明:

TODO

public void submitBlockModel(PoseStack poseStack, RenderType renderType, List<BlockStateModelPart> modelParts, int[] tintLayers, int lightCoords, int overlayCoords, int outlineColor) @ L125

  • 方法名:submitBlockModel
  • 源码定位:L125
  • 返回类型:void
  • 修饰符:public

参数:

  • poseStack: PoseStack
  • renderType: RenderType
  • modelParts: List
  • tintLayers: int[]
  • lightCoords: int
  • overlayCoords: int
  • outlineColor: int

说明:

TODO

public void submitBreakingBlockModel(PoseStack poseStack, BlockStateModel model, long seed, int progress) @ L138

  • 方法名:submitBreakingBlockModel
  • 源码定位:L138
  • 返回类型:void
  • 修饰符:public

参数:

  • poseStack: PoseStack
  • model: BlockStateModel
  • seed: long
  • progress: int

说明:

TODO

public void submitItem(PoseStack poseStack, ItemDisplayContext displayContext, int lightCoords, int overlayCoords, int outlineColor, int[] tintLayers, List<BakedQuad> quads, ItemStackRenderState.FoilType foilType) @ L143

  • 方法名:submitItem
  • 源码定位:L143
  • 返回类型:void
  • 修饰符:public

参数:

  • poseStack: PoseStack
  • displayContext: ItemDisplayContext
  • lightCoords: int
  • overlayCoords: int
  • outlineColor: int
  • tintLayers: int[]
  • quads: List
  • foilType: ItemStackRenderState.FoilType

说明:

TODO

public void submitCustomGeometry(PoseStack poseStack, RenderType renderType, SubmitNodeCollector.CustomGeometryRenderer customGeometryRenderer) @ L157

  • 方法名:submitCustomGeometry
  • 源码定位:L157
  • 返回类型:void
  • 修饰符:public

参数:

  • poseStack: PoseStack
  • renderType: RenderType
  • customGeometryRenderer: SubmitNodeCollector.CustomGeometryRenderer

说明:

TODO

public void submitParticleGroup(SubmitNodeCollector.ParticleGroupRenderer particleGroupRenderer) @ L162

  • 方法名:submitParticleGroup
  • 源码定位:L162
  • 返回类型:void
  • 修饰符:public

参数:

  • particleGroupRenderer: SubmitNodeCollector.ParticleGroupRenderer

说明:

TODO

public void clear() @ L167

  • 方法名:clear
  • 源码定位:L167
  • 返回类型:void
  • 修饰符:public

参数:

说明:

TODO

public void endFrame() @ L171

  • 方法名:endFrame
  • 源码定位:L171
  • 返回类型:void
  • 修饰符:public

参数:

说明:

TODO

public Int2ObjectAVLTreeMap<SubmitNodeCollection> getSubmitsPerOrder() @ L176

  • 方法名:getSubmitsPerOrder
  • 源码定位:L176
  • 返回类型:Int2ObjectAVLTreeMap
  • 修饰符:public

参数:

说明:

TODO

代码

@OnlyIn(Dist.CLIENT)
public class SubmitNodeStorage implements SubmitNodeCollector {
    private final Int2ObjectAVLTreeMap<SubmitNodeCollection> submitsPerOrder = new Int2ObjectAVLTreeMap<>();
 
    public SubmitNodeCollection order(int order) {
        return this.submitsPerOrder.computeIfAbsent(order, ignored -> new SubmitNodeCollection(this));
    }
 
    @Override
    public void submitShadow(PoseStack poseStack, float radius, List<EntityRenderState.ShadowPiece> pieces) {
        this.order(0).submitShadow(poseStack, radius, pieces);
    }
 
    @Override
    public void submitNameTag(
        PoseStack poseStack,
        @Nullable Vec3 nameTagAttachment,
        int offset,
        Component name,
        boolean seeThrough,
        int lightCoords,
        double distanceToCameraSq,
        CameraRenderState camera
    ) {
        this.order(0).submitNameTag(poseStack, nameTagAttachment, offset, name, seeThrough, lightCoords, distanceToCameraSq, camera);
    }
 
    @Override
    public void submitText(
        PoseStack poseStack,
        float x,
        float y,
        FormattedCharSequence string,
        boolean dropShadow,
        Font.DisplayMode displayMode,
        int lightCoords,
        int color,
        int backgroundColor,
        int outlineColor
    ) {
        this.order(0).submitText(poseStack, x, y, string, dropShadow, displayMode, lightCoords, color, backgroundColor, outlineColor);
    }
 
    @Override
    public void submitFlame(PoseStack poseStack, EntityRenderState renderState, Quaternionf rotation) {
        this.order(0).submitFlame(poseStack, renderState, rotation);
    }
 
    @Override
    public void submitLeash(PoseStack poseStack, EntityRenderState.LeashState leashState) {
        this.order(0).submitLeash(poseStack, leashState);
    }
 
    @Override
    public <S> void submitModel(
        Model<? super S> model,
        S state,
        PoseStack poseStack,
        RenderType renderType,
        int lightCoords,
        int overlayCoords,
        int tintedColor,
        @Nullable TextureAtlasSprite sprite,
        int outlineColor,
        ModelFeatureRenderer.@Nullable CrumblingOverlay crumblingOverlay
    ) {
        this.order(0).submitModel(model, state, poseStack, renderType, lightCoords, overlayCoords, tintedColor, sprite, outlineColor, crumblingOverlay);
    }
 
    @Override
    public void submitModelPart(
        ModelPart modelPart,
        PoseStack poseStack,
        RenderType renderType,
        int lightCoords,
        int overlayCoords,
        @Nullable TextureAtlasSprite sprite,
        boolean sheeted,
        boolean hasFoil,
        int tintedColor,
        ModelFeatureRenderer.@Nullable CrumblingOverlay crumblingOverlay,
        int outlineColor
    ) {
        this.order(0)
            .submitModelPart(
                modelPart, poseStack, renderType, lightCoords, overlayCoords, sprite, sheeted, hasFoil, tintedColor, crumblingOverlay, outlineColor
            );
    }
 
    @Override
    public void submitMovingBlock(PoseStack poseStack, MovingBlockRenderState movingBlockRenderState) {
        this.order(0).submitMovingBlock(poseStack, movingBlockRenderState);
    }
 
    @Override
    public void submitBlockModel(
        PoseStack poseStack,
        RenderType renderType,
        List<BlockStateModelPart> modelParts,
        int[] tintLayers,
        int lightCoords,
        int overlayCoords,
        int outlineColor
    ) {
        this.order(0).submitBlockModel(poseStack, renderType, modelParts, tintLayers, lightCoords, overlayCoords, outlineColor);
    }
 
    @Override
    public void submitBreakingBlockModel(PoseStack poseStack, BlockStateModel model, long seed, int progress) {
        this.order(0).submitBreakingBlockModel(poseStack, model, seed, progress);
    }
 
    @Override
    public void submitItem(
        PoseStack poseStack,
        ItemDisplayContext displayContext,
        int lightCoords,
        int overlayCoords,
        int outlineColor,
        int[] tintLayers,
        List<BakedQuad> quads,
        ItemStackRenderState.FoilType foilType
    ) {
        this.order(0).submitItem(poseStack, displayContext, lightCoords, overlayCoords, outlineColor, tintLayers, quads, foilType);
    }
 
    @Override
    public void submitCustomGeometry(PoseStack poseStack, RenderType renderType, SubmitNodeCollector.CustomGeometryRenderer customGeometryRenderer) {
        this.order(0).submitCustomGeometry(poseStack, renderType, customGeometryRenderer);
    }
 
    @Override
    public void submitParticleGroup(SubmitNodeCollector.ParticleGroupRenderer particleGroupRenderer) {
        this.order(0).submitParticleGroup(particleGroupRenderer);
    }
 
    public void clear() {
        this.submitsPerOrder.values().forEach(SubmitNodeCollection::clear);
    }
 
    public void endFrame() {
        this.submitsPerOrder.values().removeIf(collection -> !collection.wasUsed());
        this.submitsPerOrder.values().forEach(SubmitNodeCollection::endFrame);
    }
 
    public Int2ObjectAVLTreeMap<SubmitNodeCollection> getSubmitsPerOrder() {
        return this.submitsPerOrder;
    }
 
    @OnlyIn(Dist.CLIENT)
    public record BlockModelSubmit(
        PoseStack.Pose pose,
        RenderType renderType,
        List<BlockStateModelPart> modelParts,
        int[] tintLayers,
        int lightCoords,
        int overlayCoords,
        int outlineColor
    ) {
    }
 
    @OnlyIn(Dist.CLIENT)
    public record BreakingBlockModelSubmit(PoseStack.Pose pose, BlockStateModel model, long seed, int progress) {
    }
 
    @OnlyIn(Dist.CLIENT)
    public record CustomGeometrySubmit(PoseStack.Pose pose, SubmitNodeCollector.CustomGeometryRenderer customGeometryRenderer) {
    }
 
    @OnlyIn(Dist.CLIENT)
    public record FlameSubmit(PoseStack.Pose pose, EntityRenderState entityRenderState, Quaternionf rotation) {
    }
 
    @OnlyIn(Dist.CLIENT)
    public record ItemSubmit(
        PoseStack.Pose pose,
        ItemDisplayContext displayContext,
        int lightCoords,
        int overlayCoords,
        int outlineColor,
        int[] tintLayers,
        List<BakedQuad> quads,
        ItemStackRenderState.FoilType foilType
    ) {
    }
 
    @OnlyIn(Dist.CLIENT)
    public record LeashSubmit(Matrix4f pose, EntityRenderState.LeashState leashState) {
    }
 
    @OnlyIn(Dist.CLIENT)
    public record ModelPartSubmit(
        PoseStack.Pose pose,
        ModelPart modelPart,
        int lightCoords,
        int overlayCoords,
        @Nullable TextureAtlasSprite sprite,
        boolean sheeted,
        boolean hasFoil,
        int tintedColor,
        ModelFeatureRenderer.@Nullable CrumblingOverlay crumblingOverlay,
        int outlineColor
    ) {
    }
 
    @OnlyIn(Dist.CLIENT)
    public record ModelSubmit<S>(
        PoseStack.Pose pose,
        Model<? super S> model,
        S state,
        int lightCoords,
        int overlayCoords,
        int tintedColor,
        @Nullable TextureAtlasSprite sprite,
        int outlineColor,
        ModelFeatureRenderer.@Nullable CrumblingOverlay crumblingOverlay
    ) {
    }
 
    @OnlyIn(Dist.CLIENT)
    public record MovingBlockSubmit(Matrix4fc pose, MovingBlockRenderState movingBlockRenderState) {
    }
 
    @OnlyIn(Dist.CLIENT)
    public record NameTagSubmit(Matrix4fc pose, float x, float y, Component text, int lightCoords, int color, int backgroundColor, double distanceToCameraSq) {
    }
 
    @OnlyIn(Dist.CLIENT)
    public record ShadowSubmit(Matrix4fc pose, float radius, List<EntityRenderState.ShadowPiece> pieces) {
    }
 
    @OnlyIn(Dist.CLIENT)
    public record TextSubmit(
        Matrix4fc pose,
        float x,
        float y,
        FormattedCharSequence string,
        boolean dropShadow,
        Font.DisplayMode displayMode,
        int lightCoords,
        int color,
        int backgroundColor,
        int outlineColor
    ) {
    }
 
    @OnlyIn(Dist.CLIENT)
    public record TranslucentModelSubmit<S>(SubmitNodeStorage.ModelSubmit<S> modelSubmit, RenderType renderType, Vector3f position) {
    }
}

引用的其他类