修复火焰和准星
This commit is contained in:
parent
88916eeb8e
commit
dcc749650e
2 changed files with 21 additions and 10 deletions
|
@ -189,7 +189,7 @@ public class AnimationHelper {
|
|||
RenderUtil.translateAwayFromPivotPoint(stack, bone);
|
||||
PoseStack.Pose pose = stack.last();
|
||||
Matrix4f $$7 = pose.pose();
|
||||
VertexConsumer $$9 = buffer.getBuffer(ModRenderTypes.MUZZLE_FLASH_TYPE.apply(Mod.loc("textures/crosshair/" + name + ".png")));
|
||||
VertexConsumer $$9 = buffer.getBuffer(RenderType.entityTranslucentEmissive(Mod.loc("textures/crosshair/" + name + ".png")));
|
||||
vertexRGB($$9, $$7, pose, packedLightIn, 0.0F, 0, 0, 1, r, g, b, a);
|
||||
vertexRGB($$9, $$7, pose, packedLightIn, 1.0F, 0, 1, 1, r, g, b, a);
|
||||
vertexRGB($$9, $$7, pose, packedLightIn, 1.0F, 1, 1, 0, r, g, b, a);
|
||||
|
|
|
@ -1,8 +1,11 @@
|
|||
package com.atsuishio.superbwarfare.client;
|
||||
|
||||
import com.mojang.blaze3d.platform.GlStateManager;
|
||||
import com.mojang.blaze3d.systems.RenderSystem;
|
||||
import com.mojang.blaze3d.vertex.DefaultVertexFormat;
|
||||
import com.mojang.blaze3d.vertex.VertexFormat;
|
||||
import net.minecraft.Util;
|
||||
import net.minecraft.client.renderer.GameRenderer;
|
||||
import net.minecraft.client.renderer.RenderStateShard;
|
||||
import net.minecraft.client.renderer.RenderType;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
|
@ -33,21 +36,29 @@ public class ModRenderTypes extends RenderType {
|
|||
|
||||
//DickSheep的恩情还不完
|
||||
|
||||
public static final TransparencyStateShard TEST_TRANSPARENCY = new TransparencyStateShard("test_transparency", () -> {
|
||||
RenderSystem.enableBlend();
|
||||
RenderSystem.blendFuncSeparate(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE, GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ONE);
|
||||
}, () -> {
|
||||
RenderSystem.disableBlend();
|
||||
RenderSystem.defaultBlendFunc();
|
||||
});
|
||||
|
||||
public static final Function<ResourceLocation, RenderType> MUZZLE_FLASH_TYPE = Util.memoize((location) -> {
|
||||
TextureStateShard shard = new RenderStateShard.TextureStateShard(location, false, false);
|
||||
RenderType.CompositeState state = RenderType.CompositeState.builder()
|
||||
// 关键修复:使用内置的 POSITION_COLOR_TEX_SHADER(直接调用 ShaderStateShard)
|
||||
.setShaderState(RENDERTYPE_EYES_SHADER)
|
||||
// 启用半透明(确保正确排序)
|
||||
.setTransparencyState(RenderStateShard.TRANSLUCENT_TRANSPARENCY)
|
||||
// 绑定贴图
|
||||
TextureStateShard shard = new TextureStateShard(location, false, false);
|
||||
CompositeState state = RenderType.CompositeState.builder()
|
||||
// 关键:使用位置-颜色-贴图着色器
|
||||
.setShaderState(new RenderStateShard.ShaderStateShard(GameRenderer::getPositionTexColorShader))
|
||||
// 启用半透明混合
|
||||
.setTransparencyState(TEST_TRANSPARENCY)
|
||||
// 绑定贴图(替换为你的路径)
|
||||
.setTextureState(shard)
|
||||
// 禁用光照和覆盖颜色
|
||||
.setLightmapState(RenderStateShard.NO_LIGHTMAP)
|
||||
.setOverlayState(RenderStateShard.NO_OVERLAY)
|
||||
.setWriteMaskState(RenderStateShard.COLOR_WRITE)
|
||||
// 深度测试配置
|
||||
.setWriteMaskState(RenderStateShard.COLOR_WRITE) // 允许颜色写入
|
||||
.createCompositeState(false);
|
||||
|
||||
return RenderType.create("muzzle_flash", DefaultVertexFormat.POSITION_TEX_COLOR, VertexFormat.Mode.QUADS, 256, false, true, state);
|
||||
});
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue