SubmitNodeCollection.java

net.minecraft.client.renderer.SubmitNodeCollection

信息

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

    TODO

字段/常量

  • shadowSubmits

    • 类型: List<SubmitNodeStorage.ShadowSubmit>
    • 修饰符: private final
    • 源码定位: L34
    • 说明:

      TODO

  • flameSubmits

    • 类型: List<SubmitNodeStorage.FlameSubmit>
    • 修饰符: private final
    • 源码定位: L35
    • 说明:

      TODO

  • nameTagSubmits

    • 类型: NameTagFeatureRenderer.Storage
    • 修饰符: private final
    • 源码定位: L36
    • 说明:

      TODO

  • textSubmits

    • 类型: List<SubmitNodeStorage.TextSubmit>
    • 修饰符: private final
    • 源码定位: L37
    • 说明:

      TODO

  • leashSubmits

    • 类型: List<SubmitNodeStorage.LeashSubmit>
    • 修饰符: private final
    • 源码定位: L38
    • 说明:

      TODO

  • movingBlockSubmits

    • 类型: List<SubmitNodeStorage.MovingBlockSubmit>
    • 修饰符: private final
    • 源码定位: L39
    • 说明:

      TODO

  • blockModelSubmits

    • 类型: List<SubmitNodeStorage.BlockModelSubmit>
    • 修饰符: private final
    • 源码定位: L40
    • 说明:

      TODO

  • breakingBlockModelSubmits

    • 类型: List<SubmitNodeStorage.BreakingBlockModelSubmit>
    • 修饰符: private final
    • 源码定位: L41
    • 说明:

      TODO

  • itemSubmits

    • 类型: List<SubmitNodeStorage.ItemSubmit>
    • 修饰符: private final
    • 源码定位: L42
    • 说明:

      TODO

  • particleGroupRenderers

    • 类型: List<SubmitNodeCollector.ParticleGroupRenderer>
    • 修饰符: private final
    • 源码定位: L43
    • 说明:

      TODO

  • modelSubmits

    • 类型: ModelFeatureRenderer.Storage
    • 修饰符: private final
    • 源码定位: L44
    • 说明:

      TODO

  • modelPartSubmits

    • 类型: ModelPartFeatureRenderer.Storage
    • 修饰符: private final
    • 源码定位: L45
    • 说明:

      TODO

  • customGeometrySubmits

    • 类型: CustomFeatureRenderer.Storage
    • 修饰符: private final
    • 源码定位: L46
    • 说明:

      TODO

  • submitNodeStorage

    • 类型: SubmitNodeStorage
    • 修饰符: private final
    • 源码定位: L47
    • 说明:

      TODO

  • wasUsed

    • 类型: boolean
    • 修饰符: private
    • 源码定位: L48
    • 说明:

      TODO

内部类/嵌套类型

构造器

public SubmitNodeCollection(SubmitNodeStorage submitNodeStorage) @ L50

  • 构造器名:SubmitNodeCollection
  • 源码定位:L50
  • 修饰符:public

参数:

  • submitNodeStorage: SubmitNodeStorage

说明:

TODO

方法

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

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

  • 方法名:submitShadow
  • 源码定位:L54
  • 返回类型: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) @ L61

  • 方法名:submitNameTag
  • 源码定位:L61
  • 返回类型: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) @ L76

  • 方法名:submitText
  • 源码定位:L76
  • 返回类型: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) @ L98

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

参数:

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

说明:

TODO

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

  • 方法名:submitLeash
  • 源码定位:L104
  • 返回类型: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) @ L110

  • 方法名:submitModel
  • 源码定位:L110
  • 返回类型: 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) @ L130

  • 方法名:submitModelPart
  • 源码定位:L130
  • 返回类型: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) @ L154

  • 方法名:submitMovingBlock
  • 源码定位:L154
  • 返回类型: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) @ L160

  • 方法名:submitBlockModel
  • 源码定位:L160
  • 返回类型: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) @ L175

  • 方法名:submitBreakingBlockModel
  • 源码定位:L175
  • 返回类型: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) @ L181

  • 方法名:submitItem
  • 源码定位:L181
  • 返回类型: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) @ L199

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

参数:

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

说明:

TODO

public void submitParticleGroup(SubmitNodeCollector.ParticleGroupRenderer particleGroupRenderer) @ L205

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

参数:

  • particleGroupRenderer: SubmitNodeCollector.ParticleGroupRenderer

说明:

TODO

public List<SubmitNodeStorage.ShadowSubmit> getShadowSubmits() @ L211

  • 方法名:getShadowSubmits
  • 源码定位:L211
  • 返回类型:List<SubmitNodeStorage.ShadowSubmit>
  • 修饰符:public

参数:

说明:

TODO

public List<SubmitNodeStorage.FlameSubmit> getFlameSubmits() @ L215

  • 方法名:getFlameSubmits
  • 源码定位:L215
  • 返回类型:List<SubmitNodeStorage.FlameSubmit>
  • 修饰符:public

参数:

说明:

TODO

public NameTagFeatureRenderer.Storage getNameTagSubmits() @ L219

  • 方法名:getNameTagSubmits
  • 源码定位:L219
  • 返回类型:NameTagFeatureRenderer.Storage
  • 修饰符:public

参数:

说明:

TODO

public List<SubmitNodeStorage.TextSubmit> getTextSubmits() @ L223

  • 方法名:getTextSubmits
  • 源码定位:L223
  • 返回类型:List<SubmitNodeStorage.TextSubmit>
  • 修饰符:public

参数:

说明:

TODO

public List<SubmitNodeStorage.LeashSubmit> getLeashSubmits() @ L227

  • 方法名:getLeashSubmits
  • 源码定位:L227
  • 返回类型:List<SubmitNodeStorage.LeashSubmit>
  • 修饰符:public

参数:

说明:

TODO

public List<SubmitNodeStorage.MovingBlockSubmit> getMovingBlockSubmits() @ L231

  • 方法名:getMovingBlockSubmits
  • 源码定位:L231
  • 返回类型:List<SubmitNodeStorage.MovingBlockSubmit>
  • 修饰符:public

参数:

说明:

TODO

public List<SubmitNodeStorage.BlockModelSubmit> getBlockModelSubmits() @ L235

  • 方法名:getBlockModelSubmits
  • 源码定位:L235
  • 返回类型:List<SubmitNodeStorage.BlockModelSubmit>
  • 修饰符:public

参数:

说明:

TODO

public List<SubmitNodeStorage.BreakingBlockModelSubmit> getBreakingBlockModelSubmits() @ L239

  • 方法名:getBreakingBlockModelSubmits
  • 源码定位:L239
  • 返回类型:List<SubmitNodeStorage.BreakingBlockModelSubmit>
  • 修饰符:public

参数:

说明:

TODO

public ModelPartFeatureRenderer.Storage getModelPartSubmits() @ L243

  • 方法名:getModelPartSubmits
  • 源码定位:L243
  • 返回类型:ModelPartFeatureRenderer.Storage
  • 修饰符:public

参数:

说明:

TODO

public List<SubmitNodeStorage.ItemSubmit> getItemSubmits() @ L247

  • 方法名:getItemSubmits
  • 源码定位:L247
  • 返回类型:List<SubmitNodeStorage.ItemSubmit>
  • 修饰符:public

参数:

说明:

TODO

public List<SubmitNodeCollector.ParticleGroupRenderer> getParticleGroupRenderers() @ L251

  • 方法名:getParticleGroupRenderers
  • 源码定位:L251
  • 返回类型:List<SubmitNodeCollector.ParticleGroupRenderer>
  • 修饰符:public

参数:

说明:

TODO

public ModelFeatureRenderer.Storage getModelSubmits() @ L255

  • 方法名:getModelSubmits
  • 源码定位:L255
  • 返回类型:ModelFeatureRenderer.Storage
  • 修饰符:public

参数:

说明:

TODO

public CustomFeatureRenderer.Storage getCustomGeometrySubmits() @ L259

  • 方法名:getCustomGeometrySubmits
  • 源码定位:L259
  • 返回类型:CustomFeatureRenderer.Storage
  • 修饰符:public

参数:

说明:

TODO

public boolean wasUsed() @ L263

  • 方法名:wasUsed
  • 源码定位:L263
  • 返回类型:boolean
  • 修饰符:public

参数:

说明:

TODO

public void clear() @ L267

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

参数:

说明:

TODO

public void endFrame() @ L283

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

参数:

说明:

TODO

代码

@OnlyIn(Dist.CLIENT)
public class SubmitNodeCollection implements OrderedSubmitNodeCollector {
    private final List<SubmitNodeStorage.ShadowSubmit> shadowSubmits = new ArrayList<>();
    private final List<SubmitNodeStorage.FlameSubmit> flameSubmits = new ArrayList<>();
    private final NameTagFeatureRenderer.Storage nameTagSubmits = new NameTagFeatureRenderer.Storage();
    private final List<SubmitNodeStorage.TextSubmit> textSubmits = new ArrayList<>();
    private final List<SubmitNodeStorage.LeashSubmit> leashSubmits = new ArrayList<>();
    private final List<SubmitNodeStorage.MovingBlockSubmit> movingBlockSubmits = new ArrayList<>();
    private final List<SubmitNodeStorage.BlockModelSubmit> blockModelSubmits = new ArrayList<>();
    private final List<SubmitNodeStorage.BreakingBlockModelSubmit> breakingBlockModelSubmits = new ArrayList<>();
    private final List<SubmitNodeStorage.ItemSubmit> itemSubmits = new ArrayList<>();
    private final List<SubmitNodeCollector.ParticleGroupRenderer> particleGroupRenderers = new ArrayList<>();
    private final ModelFeatureRenderer.Storage modelSubmits = new ModelFeatureRenderer.Storage();
    private final ModelPartFeatureRenderer.Storage modelPartSubmits = new ModelPartFeatureRenderer.Storage();
    private final CustomFeatureRenderer.Storage customGeometrySubmits = new CustomFeatureRenderer.Storage();
    private final SubmitNodeStorage submitNodeStorage;
    private boolean wasUsed = false;
 
    public SubmitNodeCollection(SubmitNodeStorage submitNodeStorage) {
        this.submitNodeStorage = submitNodeStorage;
    }
 
    @Override
    public void submitShadow(PoseStack poseStack, float radius, List<EntityRenderState.ShadowPiece> pieces) {
        this.wasUsed = true;
        PoseStack.Pose pose = poseStack.last();
        this.shadowSubmits.add(new SubmitNodeStorage.ShadowSubmit(new Matrix4f(pose.pose()), radius, pieces));
    }
 
    @Override
    public void submitNameTag(
        PoseStack poseStack,
        @Nullable Vec3 nameTagAttachment,
        int offset,
        Component name,
        boolean seeThrough,
        int lightCoords,
        double distanceToCameraSq,
        CameraRenderState camera
    ) {
        this.wasUsed = true;
        this.nameTagSubmits.add(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.wasUsed = true;
        this.textSubmits
            .add(
                new SubmitNodeStorage.TextSubmit(
                    new Matrix4f(poseStack.last().pose()), x, y, string, dropShadow, displayMode, lightCoords, color, backgroundColor, outlineColor
                )
            );
    }
 
    @Override
    public void submitFlame(PoseStack poseStack, EntityRenderState renderState, Quaternionf rotation) {
        this.wasUsed = true;
        this.flameSubmits.add(new SubmitNodeStorage.FlameSubmit(poseStack.last().copy(), renderState, rotation));
    }
 
    @Override
    public void submitLeash(PoseStack poseStack, EntityRenderState.LeashState leashState) {
        this.wasUsed = true;
        this.leashSubmits.add(new SubmitNodeStorage.LeashSubmit(new Matrix4f(poseStack.last().pose()), 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.wasUsed = true;
        SubmitNodeStorage.ModelSubmit<S> modelSubmit = new SubmitNodeStorage.ModelSubmit<>(
            poseStack.last().copy(), model, state, lightCoords, overlayCoords, tintedColor, sprite, outlineColor, crumblingOverlay
        );
        this.modelSubmits.add(renderType, modelSubmit);
    }
 
    @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.wasUsed = true;
        this.modelPartSubmits
            .add(
                renderType,
                new SubmitNodeStorage.ModelPartSubmit(
                    poseStack.last().copy(), modelPart, lightCoords, overlayCoords, sprite, sheeted, hasFoil, tintedColor, crumblingOverlay, outlineColor
                )
            );
    }
 
    @Override
    public void submitMovingBlock(PoseStack poseStack, MovingBlockRenderState movingBlockRenderState) {
        this.wasUsed = true;
        this.movingBlockSubmits.add(new SubmitNodeStorage.MovingBlockSubmit(new Matrix4f(poseStack.last().pose()), movingBlockRenderState));
    }
 
    @Override
    public void submitBlockModel(
        PoseStack poseStack,
        RenderType renderType,
        List<BlockStateModelPart> modelParts,
        int[] tintLayers,
        int lightCoords,
        int overlayCoords,
        int outlineColor
    ) {
        this.wasUsed = true;
        this.blockModelSubmits
            .add(new SubmitNodeStorage.BlockModelSubmit(poseStack.last().copy(), renderType, modelParts, tintLayers, lightCoords, overlayCoords, outlineColor));
    }
 
    @Override
    public void submitBreakingBlockModel(PoseStack poseStack, BlockStateModel model, long seed, int progress) {
        this.wasUsed = true;
        this.breakingBlockModelSubmits.add(new SubmitNodeStorage.BreakingBlockModelSubmit(poseStack.last().copy(), 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.wasUsed = true;
        this.itemSubmits
            .add(
                new SubmitNodeStorage.ItemSubmit(poseStack.last().copy(), displayContext, lightCoords, overlayCoords, outlineColor, tintLayers, quads, foilType)
            );
    }
 
    @Override
    public void submitCustomGeometry(PoseStack poseStack, RenderType renderType, SubmitNodeCollector.CustomGeometryRenderer customGeometryRenderer) {
        this.wasUsed = true;
        this.customGeometrySubmits.add(poseStack, renderType, customGeometryRenderer);
    }
 
    @Override
    public void submitParticleGroup(SubmitNodeCollector.ParticleGroupRenderer particleGroupRenderer) {
        this.wasUsed = true;
        this.particleGroupRenderers.add(particleGroupRenderer);
    }
 
    public List<SubmitNodeStorage.ShadowSubmit> getShadowSubmits() {
        return this.shadowSubmits;
    }
 
    public List<SubmitNodeStorage.FlameSubmit> getFlameSubmits() {
        return this.flameSubmits;
    }
 
    public NameTagFeatureRenderer.Storage getNameTagSubmits() {
        return this.nameTagSubmits;
    }
 
    public List<SubmitNodeStorage.TextSubmit> getTextSubmits() {
        return this.textSubmits;
    }
 
    public List<SubmitNodeStorage.LeashSubmit> getLeashSubmits() {
        return this.leashSubmits;
    }
 
    public List<SubmitNodeStorage.MovingBlockSubmit> getMovingBlockSubmits() {
        return this.movingBlockSubmits;
    }
 
    public List<SubmitNodeStorage.BlockModelSubmit> getBlockModelSubmits() {
        return this.blockModelSubmits;
    }
 
    public List<SubmitNodeStorage.BreakingBlockModelSubmit> getBreakingBlockModelSubmits() {
        return this.breakingBlockModelSubmits;
    }
 
    public ModelPartFeatureRenderer.Storage getModelPartSubmits() {
        return this.modelPartSubmits;
    }
 
    public List<SubmitNodeStorage.ItemSubmit> getItemSubmits() {
        return this.itemSubmits;
    }
 
    public List<SubmitNodeCollector.ParticleGroupRenderer> getParticleGroupRenderers() {
        return this.particleGroupRenderers;
    }
 
    public ModelFeatureRenderer.Storage getModelSubmits() {
        return this.modelSubmits;
    }
 
    public CustomFeatureRenderer.Storage getCustomGeometrySubmits() {
        return this.customGeometrySubmits;
    }
 
    public boolean wasUsed() {
        return this.wasUsed;
    }
 
    public void clear() {
        this.shadowSubmits.clear();
        this.flameSubmits.clear();
        this.nameTagSubmits.clear();
        this.textSubmits.clear();
        this.leashSubmits.clear();
        this.movingBlockSubmits.clear();
        this.blockModelSubmits.clear();
        this.breakingBlockModelSubmits.clear();
        this.itemSubmits.clear();
        this.particleGroupRenderers.clear();
        this.modelSubmits.clear();
        this.customGeometrySubmits.clear();
        this.modelPartSubmits.clear();
    }
 
    public void endFrame() {
        this.modelSubmits.endFrame();
        this.modelPartSubmits.endFrame();
        this.customGeometrySubmits.endFrame();
        this.wasUsed = false;
    }
}

引用的其他类