46 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
| package net.minecraft.client.renderer.item;
 | |
| 
 | |
| import com.google.common.base.Suppliers;
 | |
| import java.util.List;
 | |
| import java.util.function.Supplier;
 | |
| import net.fabricmc.api.EnvType;
 | |
| import net.fabricmc.api.Environment;
 | |
| import net.minecraft.client.multiplayer.ClientLevel;
 | |
| import net.minecraft.client.renderer.Sheets;
 | |
| import net.minecraft.client.renderer.block.model.BakedQuad;
 | |
| import net.minecraft.world.entity.LivingEntity;
 | |
| import net.minecraft.world.item.ItemDisplayContext;
 | |
| import net.minecraft.world.item.ItemStack;
 | |
| import org.jetbrains.annotations.Nullable;
 | |
| import org.joml.Vector3f;
 | |
| 
 | |
| @Environment(EnvType.CLIENT)
 | |
| public class MissingItemModel implements ItemModel {
 | |
| 	private final List<BakedQuad> quads;
 | |
| 	private final Supplier<Vector3f[]> extents;
 | |
| 	private final ModelRenderProperties properties;
 | |
| 
 | |
| 	public MissingItemModel(List<BakedQuad> quads, ModelRenderProperties properties) {
 | |
| 		this.quads = quads;
 | |
| 		this.properties = properties;
 | |
| 		this.extents = Suppliers.memoize(() -> BlockModelWrapper.computeExtents(this.quads));
 | |
| 	}
 | |
| 
 | |
| 	@Override
 | |
| 	public void update(
 | |
| 		ItemStackRenderState renderState,
 | |
| 		ItemStack stack,
 | |
| 		ItemModelResolver itemModelResolver,
 | |
| 		ItemDisplayContext displayContext,
 | |
| 		@Nullable ClientLevel level,
 | |
| 		@Nullable LivingEntity entity,
 | |
| 		int seed
 | |
| 	) {
 | |
| 		renderState.appendModelIdentityElement(this);
 | |
| 		ItemStackRenderState.LayerRenderState layerRenderState = renderState.newLayer();
 | |
| 		layerRenderState.setRenderType(Sheets.cutoutBlockSheet());
 | |
| 		this.properties.applyToLayer(layerRenderState, displayContext);
 | |
| 		layerRenderState.setExtents(this.extents);
 | |
| 		layerRenderState.prepareQuadList().addAll(this.quads);
 | |
| 	}
 | |
| }
 |