/* * Decompiled with CFR 0.152. * * Could not load the following classes: * org.jspecify.annotations.Nullable */ package net.minecraft.client.renderer.blockentity; import com.mojang.blaze3d.vertex.PoseStack; import java.util.HashMap; import java.util.Map; import net.minecraft.client.model.CopperGolemStatueModel; import net.minecraft.client.model.geom.EntityModelSet; import net.minecraft.client.model.geom.ModelLayers; import net.minecraft.client.renderer.SubmitNodeCollector; import net.minecraft.client.renderer.blockentity.BlockEntityRenderer; import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; import net.minecraft.client.renderer.blockentity.state.CopperGolemStatueRenderState; import net.minecraft.client.renderer.feature.ModelFeatureRenderer; import net.minecraft.client.renderer.rendertype.RenderType; import net.minecraft.client.renderer.rendertype.RenderTypes; import net.minecraft.client.renderer.state.CameraRenderState; import net.minecraft.client.renderer.texture.OverlayTexture; import net.minecraft.core.Direction; import net.minecraft.world.entity.animal.coppergolem.CopperGolemOxidationLevels; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.CopperGolemStatueBlock; import net.minecraft.world.level.block.entity.CopperGolemStatueBlockEntity; import net.minecraft.world.level.block.state.properties.BlockStateProperties; import net.minecraft.world.phys.Vec3; import org.jspecify.annotations.Nullable; public class CopperGolemStatueBlockRenderer implements BlockEntityRenderer { private final Map models = new HashMap(); public CopperGolemStatueBlockRenderer(BlockEntityRendererProvider.Context context) { EntityModelSet modelSet = context.entityModelSet(); this.models.put(CopperGolemStatueBlock.Pose.STANDING, new CopperGolemStatueModel(modelSet.bakeLayer(ModelLayers.COPPER_GOLEM))); this.models.put(CopperGolemStatueBlock.Pose.RUNNING, new CopperGolemStatueModel(modelSet.bakeLayer(ModelLayers.COPPER_GOLEM_RUNNING))); this.models.put(CopperGolemStatueBlock.Pose.SITTING, new CopperGolemStatueModel(modelSet.bakeLayer(ModelLayers.COPPER_GOLEM_SITTING))); this.models.put(CopperGolemStatueBlock.Pose.STAR, new CopperGolemStatueModel(modelSet.bakeLayer(ModelLayers.COPPER_GOLEM_STAR))); } @Override public CopperGolemStatueRenderState createRenderState() { return new CopperGolemStatueRenderState(); } @Override public void extractRenderState(CopperGolemStatueBlockEntity blockEntity, CopperGolemStatueRenderState state, float partialTicks, Vec3 cameraPosition, @Nullable ModelFeatureRenderer.CrumblingOverlay breakProgress) { BlockEntityRenderer.super.extractRenderState(blockEntity, state, partialTicks, cameraPosition, breakProgress); state.direction = blockEntity.getBlockState().getValue(CopperGolemStatueBlock.FACING); state.pose = blockEntity.getBlockState().getValue(BlockStateProperties.COPPER_GOLEM_POSE); } @Override public void submit(CopperGolemStatueRenderState state, PoseStack poseStack, SubmitNodeCollector submitNodeCollector, CameraRenderState camera) { Block block = state.blockState.getBlock(); if (block instanceof CopperGolemStatueBlock) { CopperGolemStatueBlock copperGolemStatueBlock = (CopperGolemStatueBlock)block; poseStack.pushPose(); poseStack.translate(0.5f, 0.0f, 0.5f); CopperGolemStatueModel model = this.models.get(state.pose); Direction direction = state.direction; RenderType renderType = RenderTypes.entityCutoutNoCull(CopperGolemOxidationLevels.getOxidationLevel(copperGolemStatueBlock.getWeatheringState()).texture()); submitNodeCollector.submitModel(model, direction, poseStack, renderType, state.lightCoords, OverlayTexture.NO_OVERLAY, 0, state.breakProgress); poseStack.popPose(); } } }