minecraft-src/net/minecraft/client/renderer/blockentity/TrialSpawnerRenderer.java
2025-09-18 12:27:44 +00:00

44 lines
1.7 KiB
Java

package net.minecraft.client.renderer.blockentity;
import com.mojang.blaze3d.vertex.PoseStack;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.entity.EntityRenderDispatcher;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.entity.TrialSpawnerBlockEntity;
import net.minecraft.world.level.block.entity.trialspawner.TrialSpawner;
import net.minecraft.world.level.block.entity.trialspawner.TrialSpawnerStateData;
import net.minecraft.world.phys.Vec3;
@Environment(EnvType.CLIENT)
public class TrialSpawnerRenderer implements BlockEntityRenderer<TrialSpawnerBlockEntity> {
private final EntityRenderDispatcher entityRenderer;
public TrialSpawnerRenderer(BlockEntityRendererProvider.Context context) {
this.entityRenderer = context.getEntityRenderer();
}
public void render(
TrialSpawnerBlockEntity blockEntity,
float partialTick,
PoseStack poseStack,
MultiBufferSource bufferSource,
int packedLight,
int packedOverlay,
Vec3 cameraPos
) {
Level level = blockEntity.getLevel();
if (level != null) {
TrialSpawner trialSpawner = blockEntity.getTrialSpawner();
TrialSpawnerStateData trialSpawnerStateData = trialSpawner.getStateData();
Entity entity = trialSpawnerStateData.getOrCreateDisplayEntity(trialSpawner, level, trialSpawner.getState());
if (entity != null) {
SpawnerRenderer.renderEntityInSpawner(
partialTick, poseStack, bufferSource, packedLight, entity, this.entityRenderer, trialSpawnerStateData.getOSpin(), trialSpawnerStateData.getSpin()
);
}
}
}
}