Package com.hbm_m.client.render
Class AbstractPartBasedRenderer<T extends net.minecraft.world.level.block.entity.BlockEntity,M extends net.minecraft.client.resources.model.BakedModel>
java.lang.Object
com.hbm_m.client.render.AbstractPartBasedRenderer<T,M>
- All Implemented Interfaces:
net.minecraft.client.renderer.blockentity.BlockEntityRenderer<T>
- Direct Known Subclasses:
DoorRenderer,MachineAdvancedAssemblerRenderer,MachineAssemblerRenderer,MachineChemicalPlantRenderer,MachineCoolingTowerRenderer,MachineHydraulicFrackiningTowerRenderer,MachinePressRenderer
public abstract class AbstractPartBasedRenderer<T extends net.minecraft.world.level.block.entity.BlockEntity,M extends net.minecraft.client.resources.model.BakedModel>
extends Object
implements net.minecraft.client.renderer.blockentity.BlockEntityRenderer<T>
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionorg.joml.Matrix4fDefensive copy - callers may not mutate the renderer's snapshot field.protected abstract net.minecraft.core.Directionprotected final net.minecraft.client.Minecraftprotected net.minecraft.client.resources.model.BakedModelПолучает модель для рендеринга.protected abstract MgetModelType(net.minecraft.client.resources.model.BakedModel rawModel) protected booleanisInViewFrustum(T blockEntity) voidrender(T blockEntity, float partialTick, com.mojang.blaze3d.vertex.PoseStack poseStack, net.minecraft.client.renderer.MultiBufferSource bufferSource, int packedLight, int packedOverlay) protected abstract voidrenderParts(T blockEntity, M model, LegacyAnimator animator, float partialTick, int packedLight, int packedOverlay, com.mojang.blaze3d.vertex.PoseStack poseStack, net.minecraft.client.renderer.MultiBufferSource bufferSource) protected voidsetupBlockTransform(LegacyAnimator animator, T blockEntity) Поворот/сдвиг блока в локальных координатах передrenderParts(T, M, com.hbm_m.client.render.LegacyAnimator, float, int, int, com.mojang.blaze3d.vertex.PoseStack, net.minecraft.client.renderer.MultiBufferSource).booleanshouldRenderOffScreen(T blockEntity) static net.minecraft.client.resources.model.BakedModelunwrapFabricForwardingModels(net.minecraft.client.resources.model.BakedModel model) Разворачивает цепочкуForwardingBakedModelобёрток (Continuity CtmBakedModel, EmissiveBakedModel и т.п.) до исходной модели.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface net.minecraft.client.renderer.blockentity.BlockEntityRenderer
getViewDistance, shouldRender
-
Constructor Details
-
AbstractPartBasedRenderer
public AbstractPartBasedRenderer()
-
-
Method Details
-
getModel
Получает модель для рендеринга. По умолчанию - из blockstate. Можно переопределить для выбора модели по данным BlockEntity (например, двери с разными скинами). -
getModelType
-
getFacing
-
renderParts
protected abstract void renderParts(T blockEntity, M model, LegacyAnimator animator, float partialTick, int packedLight, int packedOverlay, com.mojang.blaze3d.vertex.PoseStack poseStack, net.minecraft.client.renderer.MultiBufferSource bufferSource) -
setupBlockTransform
Поворот/сдвиг блока в локальных координатах передrenderParts(T, M, com.hbm_m.client.render.LegacyAnimator, float, int, int, com.mojang.blaze3d.vertex.PoseStack, net.minecraft.client.renderer.MultiBufferSource). -
getCurrentModelViewMatrix
public org.joml.Matrix4f getCurrentModelViewMatrix()Defensive copy - callers may not mutate the renderer's snapshot field. -
shouldRenderOffScreen
- Specified by:
shouldRenderOffScreenin interfacenet.minecraft.client.renderer.blockentity.BlockEntityRenderer<T extends net.minecraft.world.level.block.entity.BlockEntity>
-
render
public void render(T blockEntity, float partialTick, com.mojang.blaze3d.vertex.PoseStack poseStack, net.minecraft.client.renderer.MultiBufferSource bufferSource, int packedLight, int packedOverlay) - Specified by:
renderin interfacenet.minecraft.client.renderer.blockentity.BlockEntityRenderer<T extends net.minecraft.world.level.block.entity.BlockEntity>
-
getMinecraft
protected final net.minecraft.client.Minecraft getMinecraft() -
isInViewFrustum
-
unwrapFabricForwardingModels
public static net.minecraft.client.resources.model.BakedModel unwrapFabricForwardingModels(net.minecraft.client.resources.model.BakedModel model) Разворачивает цепочкуForwardingBakedModelобёрток (Continuity CtmBakedModel, EmissiveBakedModel и т.п.) до исходной модели.Continuity через Connector оборачивает все blockstate-модели в
CtmBakedModel(extendsForwardingBakedModel), из-за чего instanceof-проверки вgetModelType(net.minecraft.client.resources.model.BakedModel)возвращают null и блок становится невидимым.
-