minecraft-src/net/minecraft/client/renderer/SpecialBlockModelRenderer.java
2025-07-04 03:15:13 +03:00

34 lines
1.4 KiB
Java

package net.minecraft.client.renderer;
import com.mojang.blaze3d.vertex.PoseStack;
import java.util.Map;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.model.geom.EntityModelSet;
import net.minecraft.client.renderer.special.SpecialModelRenderer;
import net.minecraft.client.renderer.special.SpecialModelRenderers;
import net.minecraft.world.item.ItemDisplayContext;
import net.minecraft.world.level.block.Block;
@Environment(EnvType.CLIENT)
public class SpecialBlockModelRenderer {
public static final SpecialBlockModelRenderer EMPTY = new SpecialBlockModelRenderer(Map.of());
private final Map<Block, SpecialModelRenderer<?>> renderers;
public SpecialBlockModelRenderer(Map<Block, SpecialModelRenderer<?>> renderers) {
this.renderers = renderers;
}
public static SpecialBlockModelRenderer vanilla(EntityModelSet modelSet) {
return new SpecialBlockModelRenderer(SpecialModelRenderers.createBlockRenderers(modelSet));
}
public void renderByBlock(
Block block, ItemDisplayContext displayContext, PoseStack poseStack, MultiBufferSource bufferSource, int packedLight, int packedOverlay
) {
SpecialModelRenderer<?> specialModelRenderer = (SpecialModelRenderer<?>)this.renderers.get(block);
if (specialModelRenderer != null) {
specialModelRenderer.render(null, displayContext, poseStack, bufferSource, packedLight, packedOverlay, false);
}
}
}