75 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			75 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
| package net.minecraft.client.renderer.chunk;
 | |
| 
 | |
| import com.mojang.blaze3d.pipeline.RenderPipeline;
 | |
| import com.mojang.blaze3d.pipeline.RenderTarget;
 | |
| import com.mojang.blaze3d.textures.GpuTextureView;
 | |
| import java.util.Locale;
 | |
| import net.fabricmc.api.EnvType;
 | |
| import net.fabricmc.api.Environment;
 | |
| import net.minecraft.client.Minecraft;
 | |
| import net.minecraft.client.renderer.RenderPipelines;
 | |
| import net.minecraft.client.renderer.texture.AbstractTexture;
 | |
| import net.minecraft.client.renderer.texture.TextureAtlas;
 | |
| import net.minecraft.client.renderer.texture.TextureManager;
 | |
| 
 | |
| @Environment(EnvType.CLIENT)
 | |
| public enum ChunkSectionLayer {
 | |
| 	SOLID(RenderPipelines.SOLID, 4194304, true, false),
 | |
| 	CUTOUT_MIPPED(RenderPipelines.CUTOUT_MIPPED, 4194304, true, false),
 | |
| 	CUTOUT(RenderPipelines.CUTOUT, 786432, false, false),
 | |
| 	TRANSLUCENT(RenderPipelines.TRANSLUCENT, 786432, true, true),
 | |
| 	TRIPWIRE(RenderPipelines.TRIPWIRE, 1536, true, true);
 | |
| 
 | |
| 	private final RenderPipeline pipeline;
 | |
| 	private final int bufferSize;
 | |
| 	private final boolean useMipmaps;
 | |
| 	private final boolean sortOnUpload;
 | |
| 	private final String label;
 | |
| 
 | |
| 	private ChunkSectionLayer(final RenderPipeline pipeline, final int bufferSize, final boolean useMipmaps, final boolean sortOnUpload) {
 | |
| 		this.pipeline = pipeline;
 | |
| 		this.bufferSize = bufferSize;
 | |
| 		this.useMipmaps = useMipmaps;
 | |
| 		this.sortOnUpload = sortOnUpload;
 | |
| 		this.label = this.toString().toLowerCase(Locale.ROOT);
 | |
| 	}
 | |
| 
 | |
| 	public RenderPipeline pipeline() {
 | |
| 		return this.pipeline;
 | |
| 	}
 | |
| 
 | |
| 	public int bufferSize() {
 | |
| 		return this.bufferSize;
 | |
| 	}
 | |
| 
 | |
| 	public String label() {
 | |
| 		return this.label;
 | |
| 	}
 | |
| 
 | |
| 	public boolean sortOnUpload() {
 | |
| 		return this.sortOnUpload;
 | |
| 	}
 | |
| 
 | |
| 	public GpuTextureView textureView() {
 | |
| 		TextureManager textureManager = Minecraft.getInstance().getTextureManager();
 | |
| 		AbstractTexture abstractTexture = textureManager.getTexture(TextureAtlas.LOCATION_BLOCKS);
 | |
| 		abstractTexture.setUseMipmaps(this.useMipmaps);
 | |
| 		return abstractTexture.getTextureView();
 | |
| 	}
 | |
| 
 | |
| 	public RenderTarget outputTarget() {
 | |
| 		Minecraft minecraft = Minecraft.getInstance();
 | |
| 		switch (this) {
 | |
| 			case TRANSLUCENT: {
 | |
| 				RenderTarget renderTarget = minecraft.levelRenderer.getTranslucentTarget();
 | |
| 				return renderTarget != null ? renderTarget : minecraft.getMainRenderTarget();
 | |
| 			}
 | |
| 			case TRIPWIRE: {
 | |
| 				RenderTarget renderTarget = minecraft.levelRenderer.getWeatherTarget();
 | |
| 				return renderTarget != null ? renderTarget : minecraft.getMainRenderTarget();
 | |
| 			}
 | |
| 			default:
 | |
| 				return minecraft.getMainRenderTarget();
 | |
| 		}
 | |
| 	}
 | |
| }
 |