翻新木仓口火焰
This commit is contained in:
parent
9a565d00dc
commit
a78bfaf004
3 changed files with 41 additions and 10 deletions
|
@ -1,6 +1,5 @@
|
||||||
package com.atsuishio.superbwarfare.client;
|
package com.atsuishio.superbwarfare.client;
|
||||||
|
|
||||||
import com.atsuishio.superbwarfare.Mod;
|
|
||||||
import com.atsuishio.superbwarfare.event.ClientEventHandler;
|
import com.atsuishio.superbwarfare.event.ClientEventHandler;
|
||||||
import com.atsuishio.superbwarfare.item.gun.data.GunData;
|
import com.atsuishio.superbwarfare.item.gun.data.GunData;
|
||||||
import com.atsuishio.superbwarfare.item.gun.data.value.AttachmentType;
|
import com.atsuishio.superbwarfare.item.gun.data.value.AttachmentType;
|
||||||
|
@ -19,8 +18,6 @@ import net.minecraft.resources.ResourceLocation;
|
||||||
import net.minecraft.util.Mth;
|
import net.minecraft.util.Mth;
|
||||||
import net.minecraft.world.item.ItemDisplayContext;
|
import net.minecraft.world.item.ItemDisplayContext;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import org.joml.Matrix3f;
|
|
||||||
import org.joml.Matrix4f;
|
|
||||||
import software.bernie.geckolib.animation.AnimationProcessor;
|
import software.bernie.geckolib.animation.AnimationProcessor;
|
||||||
import software.bernie.geckolib.cache.object.GeoBone;
|
import software.bernie.geckolib.cache.object.GeoBone;
|
||||||
import software.bernie.geckolib.util.RenderUtil;
|
import software.bernie.geckolib.util.RenderUtil;
|
||||||
|
@ -113,16 +110,16 @@ public class AnimationHelper {
|
||||||
RenderUtil.scaleMatrixForBone(stack, bone);
|
RenderUtil.scaleMatrixForBone(stack, bone);
|
||||||
RenderUtil.translateAwayFromPivotPoint(stack, bone);
|
RenderUtil.translateAwayFromPivotPoint(stack, bone);
|
||||||
PoseStack.Pose pose = stack.last();
|
PoseStack.Pose pose = stack.last();
|
||||||
Matrix3f normal = pose.normal();
|
VertexConsumer vertexConsumer = buffer.getBuffer(ModRenderTypes.MUZZLE_FLASH_TYPE);
|
||||||
VertexConsumer vertexConsumer = buffer.getBuffer(RenderType.eyes(Mod.loc("textures/particle/flare.png")));
|
vertex(vertexConsumer, pose, packedLightIn, 0.0F, 0, 0, 1);
|
||||||
vertex(vertexConsumer, pose, normal, packedLightIn, 0.0F, 0, 0, 1);
|
vertex(vertexConsumer, pose, packedLightIn, 1.0F, 0, 1, 1);
|
||||||
vertex(vertexConsumer, pose, normal, packedLightIn, 1.0F, 0, 1, 1);
|
vertex(vertexConsumer, pose, packedLightIn, 1.0F, 1, 1, 0);
|
||||||
vertex(vertexConsumer, pose, normal, packedLightIn, 1.0F, 1, 1, 0);
|
vertex(vertexConsumer, pose, packedLightIn, 0.0F, 1, 0, 0);
|
||||||
vertex(vertexConsumer, pose, normal, packedLightIn, 0.0F, 1, 0, 0);
|
|
||||||
stack.popPose();
|
stack.popPose();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private static void vertex(VertexConsumer pConsumer, PoseStack.Pose pPose, Matrix3f pNormal, int pLightmapUV, float pX, float pY, int pU, int pV) {
|
|
||||||
|
private static void vertex(VertexConsumer pConsumer, PoseStack.Pose pPose, int pLightmapUV, float pX, float pY, int pU, int pV) {
|
||||||
pConsumer.addVertex(pPose, pX - 0.5F, pY - 0.5F, 0.0F)
|
pConsumer.addVertex(pPose, pX - 0.5F, pY - 0.5F, 0.0F)
|
||||||
.setColor(255, 255, 255, 255)
|
.setColor(255, 255, 255, 255)
|
||||||
.setUv((float) pU, (float) pV)
|
.setUv((float) pU, (float) pV)
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package com.atsuishio.superbwarfare.client;
|
package com.atsuishio.superbwarfare.client;
|
||||||
|
|
||||||
|
import com.atsuishio.superbwarfare.Mod;
|
||||||
import com.mojang.blaze3d.vertex.DefaultVertexFormat;
|
import com.mojang.blaze3d.vertex.DefaultVertexFormat;
|
||||||
import com.mojang.blaze3d.vertex.VertexFormat;
|
import com.mojang.blaze3d.vertex.VertexFormat;
|
||||||
import net.minecraft.Util;
|
import net.minecraft.Util;
|
||||||
|
@ -30,4 +31,37 @@ public class ModRenderTypes extends RenderType {
|
||||||
.setCullState(NO_CULL).setOverlayState(NO_OVERLAY).setWriteMaskState(COLOR_WRITE).createCompositeState(false);
|
.setCullState(NO_CULL).setOverlayState(NO_OVERLAY).setWriteMaskState(COLOR_WRITE).createCompositeState(false);
|
||||||
return RenderType.create("illuminated", DefaultVertexFormat.NEW_ENTITY, VertexFormat.Mode.QUADS, 256, true, false, state);
|
return RenderType.create("illuminated", DefaultVertexFormat.NEW_ENTITY, VertexFormat.Mode.QUADS, 256, true, false, state);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
//DickSheep的恩情还不完
|
||||||
|
|
||||||
|
public static final RenderType MUZZLE_FLASH_TYPE =
|
||||||
|
RenderType.create(
|
||||||
|
"muzzle_flash",
|
||||||
|
DefaultVertexFormat.POSITION_TEX_COLOR, // 注意:格式名改为 POSITION_COLOR_TEX(不是 TEX)
|
||||||
|
VertexFormat.Mode.QUADS,
|
||||||
|
256,
|
||||||
|
false,
|
||||||
|
true,
|
||||||
|
// 使用新的 CompositeState 构造方式
|
||||||
|
RenderType.CompositeState.builder()
|
||||||
|
// 关键修复:使用内置的 POSITION_COLOR_TEX_SHADER(直接调用 ShaderStateShard)
|
||||||
|
.setShaderState(RENDERTYPE_EYES_SHADER)
|
||||||
|
// 启用半透明(确保正确排序)
|
||||||
|
.setTransparencyState(RenderStateShard.TRANSLUCENT_TRANSPARENCY)
|
||||||
|
// 绑定贴图(替换为你的路径)
|
||||||
|
.setTextureState(new RenderStateShard.TextureStateShard(
|
||||||
|
Mod.loc("textures/particle/flare.png"),
|
||||||
|
false, // 不模糊
|
||||||
|
false // 不生成Mipmap
|
||||||
|
))
|
||||||
|
// 禁用光照和覆盖颜色
|
||||||
|
.setLightmapState(RenderStateShard.NO_LIGHTMAP)
|
||||||
|
.setOverlayState(RenderStateShard.NO_OVERLAY)
|
||||||
|
// 深度测试和写入设置
|
||||||
|
// .setDepthTestState(RenderStateShard.NO_DEPTH_TEST)
|
||||||
|
.setWriteMaskState(RenderStateShard.COLOR_WRITE)
|
||||||
|
.createCompositeState(false)
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 218 KiB After Width: | Height: | Size: 174 KiB |
Loading…
Add table
Reference in a new issue