Class TransformingBlockRenderer<T extends net.minecraft.world.level.block.entity.BlockEntity, S extends TransformingBlockRenderer.RenderState>

java.lang.Object
org.moddingx.libx.render.block.TransformingBlockRenderer<T,S>
Type Parameters:
T - The block entity type.
S - The render state type. Extend TransformingBlockRenderer.RenderState and return it from BlockEntityRenderer.createRenderState() to carry additional extracted values.
All Implemented Interfaces:
net.minecraft.client.renderer.blockentity.BlockEntityRenderer<T,S>, net.neoforged.neoforge.client.extensions.IBlockEntityRendererExtension<T>
Direct Known Subclasses:
DirectionalBlockRenderer, RotatedBlockRenderer

public abstract class TransformingBlockRenderer<T extends net.minecraft.world.level.block.entity.BlockEntity, S extends TransformingBlockRenderer.RenderState> extends Object implements net.minecraft.client.renderer.blockentity.BlockEntityRenderer<T,S>
A BlockEntityRenderer that transforms the pose stack in some way before the actual render code. The render helper methods take care of the pose stack being pushed and popped.
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static class 
     
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected abstract void
    doRender(S renderState, com.mojang.blaze3d.vertex.PoseStack poseStack, net.minecraft.client.renderer.SubmitNodeCollector nodeCollector, int light, int overlay)
    Renders the extracted render state.
    void
    extractRenderState(T blockEntity, S renderState, float partialTicks, net.minecraft.world.phys.Vec3 cameraPos, net.minecraft.client.renderer.feature.ModelFeatureRenderer.CrumblingOverlay breakProgress)
     
    final void
    submit(S renderState, com.mojang.blaze3d.vertex.PoseStack poseStack, net.minecraft.client.renderer.SubmitNodeCollector nodeCollector, net.minecraft.client.renderer.state.level.CameraRenderState cameraRenderState)
     
    protected abstract void
    transform(S renderState, com.mojang.blaze3d.vertex.PoseStack poseStack)
    Applies the pre-render transformation to the pose stack.

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface net.minecraft.client.renderer.blockentity.BlockEntityRenderer

    createRenderState, getViewDistance, shouldRender, shouldRenderOffScreen

    Methods inherited from interface net.neoforged.neoforge.client.extensions.IBlockEntityRendererExtension

    getRenderBoundingBox
  • Constructor Details

    • TransformingBlockRenderer

      public TransformingBlockRenderer()
  • Method Details

    • extractRenderState

      @OverridingMethodsMustInvokeSuper public void extractRenderState(@Nonnull T blockEntity, @Nonnull S renderState, float partialTicks, @Nonnull net.minecraft.world.phys.Vec3 cameraPos, @Nullable net.minecraft.client.renderer.feature.ModelFeatureRenderer.CrumblingOverlay breakProgress)
      Specified by:
      extractRenderState in interface net.minecraft.client.renderer.blockentity.BlockEntityRenderer<T extends net.minecraft.world.level.block.entity.BlockEntity, S extends TransformingBlockRenderer.RenderState>
    • submit

      public final void submit(@Nonnull S renderState, @Nonnull com.mojang.blaze3d.vertex.PoseStack poseStack, @Nonnull net.minecraft.client.renderer.SubmitNodeCollector nodeCollector, @Nonnull net.minecraft.client.renderer.state.level.CameraRenderState cameraRenderState)
      Specified by:
      submit in interface net.minecraft.client.renderer.blockentity.BlockEntityRenderer<T extends net.minecraft.world.level.block.entity.BlockEntity, S extends TransformingBlockRenderer.RenderState>
    • transform

      protected abstract void transform(@Nonnull S renderState, @Nonnull com.mojang.blaze3d.vertex.PoseStack poseStack)
      Applies the pre-render transformation to the pose stack.
    • doRender

      protected abstract void doRender(@Nonnull S renderState, @Nonnull com.mojang.blaze3d.vertex.PoseStack poseStack, @Nonnull net.minecraft.client.renderer.SubmitNodeCollector nodeCollector, int light, int overlay)
      Renders the extracted render state.