[TASK] Fixed rendering modifier lines and areas. Rendering block previews no longer crashes (renders black).
This commit is contained in:
@@ -2,6 +2,7 @@ package nl.requios.effortlessbuilding.render;
|
||||
|
||||
import com.mojang.blaze3d.systems.RenderSystem;
|
||||
import com.mojang.blaze3d.vertex.VertexFormat;
|
||||
import net.minecraft.Util;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.renderer.RenderStateShard;
|
||||
import net.minecraft.client.renderer.RenderType;
|
||||
@@ -29,8 +30,12 @@ public class BuildRenderTypes extends RenderType {
|
||||
//LINES
|
||||
renderState = CompositeState.builder()
|
||||
.setLineState(LINE)
|
||||
.setShaderState(RenderStateShard.RENDERTYPE_LINES_SHADER)
|
||||
.setLayeringState(VIEW_OFFSET_Z_LAYERING)
|
||||
.setTransparencyState(TRANSLUCENT_TRANSPARENCY)
|
||||
.setTextureState(RenderStateShard.NO_TEXTURE)
|
||||
.setDepthTestState(RenderStateShard.NO_DEPTH_TEST)
|
||||
.setLightmapState(RenderStateShard.NO_LIGHTMAP)
|
||||
.setWriteMaskState(COLOR_DEPTH_WRITE)
|
||||
.setCullState(RenderStateShard.NO_CULL)
|
||||
.createCompositeState(false);
|
||||
@@ -40,8 +45,12 @@ public class BuildRenderTypes extends RenderType {
|
||||
//PLANES
|
||||
renderState = CompositeState.builder()
|
||||
.setLineState(LINE)
|
||||
.setShaderState(RenderStateShard.RENDERTYPE_LINES_SHADER)
|
||||
.setLayeringState(VIEW_OFFSET_Z_LAYERING)
|
||||
.setTransparencyState(TRANSLUCENT_TRANSPARENCY)
|
||||
.setTextureState(RenderStateShard.NO_TEXTURE)
|
||||
.setDepthTestState(RenderStateShard.NO_DEPTH_TEST)
|
||||
.setLightmapState(RenderStateShard.NO_LIGHTMAP)
|
||||
.setWriteMaskState(COLOR_WRITE)
|
||||
.setCullState(RenderStateShard.NO_CULL)
|
||||
.createCompositeState(false);
|
||||
@@ -79,12 +88,13 @@ public class BuildRenderTypes extends RenderType {
|
||||
}, ShaderHandler::releaseShader);
|
||||
|
||||
RenderType.CompositeState renderState = RenderType.CompositeState.builder()
|
||||
.setShaderState(RenderStateShard.RENDERTYPE_TRANSLUCENT_SHADER)
|
||||
.setTextureState(new RenderStateShard.TextureStateShard(ShaderHandler.shaderMaskTextureLocation, false, false))
|
||||
.setTexturingState(MY_TEXTURING)
|
||||
.setTransparencyState(TRANSLUCENT_TRANSPARENCY)
|
||||
//TODO 1.17
|
||||
// .setDiffuseLightingState(DIFFUSE_LIGHTING_DISABLED)
|
||||
// .setAlphaState(DEFAULT_ALPHA)
|
||||
// .setDiffuseLightingState(DIFFUSE_LIGHTING_DISABLED)
|
||||
// .setAlphaState(DEFAULT_ALPHA)
|
||||
.setCullState(new RenderStateShard.CullStateShard(true))
|
||||
.setLightmapState(new RenderStateShard.LightmapStateShard(false))
|
||||
.setOverlayState(new RenderStateShard.OverlayStateShard(false))
|
||||
|
||||
@@ -21,7 +21,7 @@ public class ModifierRenderer {
|
||||
protected static final Color colorZ = new Color(52, 247, 255);
|
||||
protected static final Color colorRadial = new Color(52, 247, 255);
|
||||
protected static final int lineAlpha = 200;
|
||||
protected static final int planeAlpha = 75;
|
||||
protected static final int planeAlpha = 50;
|
||||
protected static final Vec3 epsilon = new Vec3(0.001, 0.001, 0.001); //prevents z-fighting
|
||||
|
||||
public static void render(PoseStack matrixStack, MultiBufferSource.BufferSource renderTypeBuffer, ModifierSettingsManager.ModifierSettings modifierSettings) {
|
||||
|
||||
@@ -21,6 +21,7 @@ import net.minecraft.world.phys.Vec3;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.client.event.RenderGameOverlayEvent;
|
||||
import net.minecraftforge.client.event.RenderWorldLastEvent;
|
||||
import net.minecraftforge.client.model.data.EmptyModelData;
|
||||
import net.minecraftforge.eventbus.api.EventPriority;
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
import net.minecraftforge.fml.common.Mod;
|
||||
@@ -53,8 +54,6 @@ public class RenderHandler {
|
||||
PoseStack matrixStack = event.getMatrixStack();
|
||||
BufferBuilder bufferBuilder = Tesselator.getInstance().getBuilder();
|
||||
MultiBufferSource.BufferSource renderTypeBuffer = MultiBufferSource.immediate(bufferBuilder);
|
||||
if (renderTypeBuffer == null)
|
||||
return;
|
||||
|
||||
Player player = Minecraft.getInstance().player;
|
||||
ModeSettingsManager.ModeSettings modeSettings = ModeSettingsManager.getModeSettings(player);
|
||||
@@ -193,8 +192,8 @@ public class RenderHandler {
|
||||
|
||||
try {
|
||||
BakedModel model = dispatcher.getBlockModel(blockState);
|
||||
dispatcher.getModelRenderer().renderModel(matrixStack.last(), buffer,
|
||||
blockState, model, 1f, 1f, 1f, 0, OverlayTexture.NO_OVERLAY);
|
||||
dispatcher.getModelRenderer().renderModel(matrixStack.last(), buffer, blockState, model,
|
||||
1f, 1f, 1f, 0, OverlayTexture.NO_OVERLAY, EmptyModelData.INSTANCE);
|
||||
// blockRendererDispatcher.getBlockModelRenderer().renderModel(world, blockRendererDispatcher.getModelForState(blockState),
|
||||
// blockState, logicPos, matrixStack, renderTypeBuffer.getBuffer(renderType), true, new Random(), blockState.getPositionRandom(logicPos), i);
|
||||
} catch (NullPointerException e) {
|
||||
|
||||
Reference in New Issue
Block a user