49 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
| package net.minecraft.client.renderer.blockentity;
 | |
| 
 | |
| import com.mojang.blaze3d.vertex.PoseStack;
 | |
| import com.mojang.math.Axis;
 | |
| import net.fabricmc.api.EnvType;
 | |
| import net.fabricmc.api.Environment;
 | |
| import net.minecraft.client.renderer.MultiBufferSource;
 | |
| import net.minecraft.client.renderer.entity.ItemRenderer;
 | |
| import net.minecraft.core.Direction;
 | |
| import net.minecraft.core.NonNullList;
 | |
| import net.minecraft.world.item.ItemDisplayContext;
 | |
| import net.minecraft.world.item.ItemStack;
 | |
| import net.minecraft.world.level.block.CampfireBlock;
 | |
| import net.minecraft.world.level.block.entity.CampfireBlockEntity;
 | |
| import net.minecraft.world.phys.Vec3;
 | |
| 
 | |
| @Environment(EnvType.CLIENT)
 | |
| public class CampfireRenderer implements BlockEntityRenderer<CampfireBlockEntity> {
 | |
| 	private static final float SIZE = 0.375F;
 | |
| 	private final ItemRenderer itemRenderer;
 | |
| 
 | |
| 	public CampfireRenderer(BlockEntityRendererProvider.Context context) {
 | |
| 		this.itemRenderer = context.getItemRenderer();
 | |
| 	}
 | |
| 
 | |
| 	public void render(
 | |
| 		CampfireBlockEntity blockEntity, float partialTick, PoseStack poseStack, MultiBufferSource bufferSource, int packedLight, int packedOverlay, Vec3 cameraPos
 | |
| 	) {
 | |
| 		Direction direction = blockEntity.getBlockState().getValue(CampfireBlock.FACING);
 | |
| 		NonNullList<ItemStack> nonNullList = blockEntity.getItems();
 | |
| 		int i = (int)blockEntity.getBlockPos().asLong();
 | |
| 
 | |
| 		for (int j = 0; j < nonNullList.size(); j++) {
 | |
| 			ItemStack itemStack = nonNullList.get(j);
 | |
| 			if (itemStack != ItemStack.EMPTY) {
 | |
| 				poseStack.pushPose();
 | |
| 				poseStack.translate(0.5F, 0.44921875F, 0.5F);
 | |
| 				Direction direction2 = Direction.from2DDataValue((j + direction.get2DDataValue()) % 4);
 | |
| 				float f = -direction2.toYRot();
 | |
| 				poseStack.mulPose(Axis.YP.rotationDegrees(f));
 | |
| 				poseStack.mulPose(Axis.XP.rotationDegrees(90.0F));
 | |
| 				poseStack.translate(-0.3125F, -0.3125F, 0.0F);
 | |
| 				poseStack.scale(0.375F, 0.375F, 0.375F);
 | |
| 				this.itemRenderer.renderStatic(itemStack, ItemDisplayContext.FIXED, packedLight, packedOverlay, poseStack, bufferSource, blockEntity.getLevel(), i + j);
 | |
| 				poseStack.popPose();
 | |
| 			}
 | |
| 		}
 | |
| 	}
 | |
| }
 |