public void renderParticles(EntityPlayer dumbplayer, float partialTicks) {
float f = ActiveRenderInfo.getRotationX();
float f1 = ActiveRenderInfo.getRotationZ();
float f2 = ActiveRenderInfo.getRotationYZ();
float f3 = ActiveRenderInfo.getRotationXY();
float f4 = ActiveRenderInfo.getRotationXZ();
EntityPlayer player = Minecraft.getMinecraft().player;
if (player != null){
Particle.interpPosX = player.lastTickPosX + (player.posX - player.lastTickPosX) * partialTicks;
Particle.interpPosY = player.lastTickPosY + (player.posY - player.lastTickPosY) * partialTicks;
Particle.interpPosZ = player.lastTickPosZ + (player.posZ - player.lastTickPosZ) * partialTicks;
Particle.cameraViewDir = player.getLook(partialTicks);
GlStateManager.enableAlpha();
GlStateManager.enableBlend();
GlStateManager.alphaFunc(516, 0.003921569F);
GlStateManager.disableCull();
GlStateManager.depthMask(false);
Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE);
Tessellator tess = Tessellator.getInstance();
VertexBuffer buffer = tess.getBuffer();
GlStateManager.blendFunc(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA);
buffer.begin(GL11.GL_QUADS, DefaultVertexFormats.PARTICLE_POSITION_TEX_COLOR_LMAP);
for (int i = 0; i < particles.size(); i ++){
if (particles.get(i) instanceof IParticle){
if (!((IParticle)particles.get(i)).isAdditive()){
particles.get(i).renderParticle(buffer, player, partialTicks, f, f4, f1, f2, f3);
}
}
}
tess.draw();
GlStateManager.blendFunc(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE);
buffer.begin(GL11.GL_QUADS, DefaultVertexFormats.PARTICLE_POSITION_TEX_COLOR_LMAP);
for (int i = 0; i < particles.size(); i ++){
if (particles.get(i) != null){
if (((IParticle)particles.get(i)).isAdditive()){
particles.get(i).renderParticle(buffer, player, partialTicks, f, f4, f1, f2, f3);
}
}
}
tess.draw();
GlStateManager.disableDepth();
GlStateManager.blendFunc(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA);
buffer.begin(GL11.GL_QUADS, DefaultVertexFormats.PARTICLE_POSITION_TEX_COLOR_LMAP);
for (int i = 0; i < particles.size(); i ++){
if (particles.get(i) instanceof IParticle){
if (!((IParticle)particles.get(i)).isAdditive() && ((IParticle)particles.get(i)).renderThroughBlocks()){
particles.get(i).renderParticle(buffer, player, partialTicks, f, f4, f1, f2, f3);
}
}
}
tess.draw();
GlStateManager.blendFunc(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE);
buffer.begin(GL11.GL_QUADS, DefaultVertexFormats.PARTICLE_POSITION_TEX_COLOR_LMAP);
for (int i = 0; i < particles.size(); i ++){
if (particles.get(i) != null){
if (((IParticle)particles.get(i)).isAdditive() && ((IParticle)particles.get(i)).renderThroughBlocks()){
particles.get(i).renderParticle(buffer, player, partialTicks, f, f4, f1, f2, f3);
}
}
}
tess.draw();
GlStateManager.enableDepth();
GlStateManager.enableCull();
GlStateManager.depthMask(true);
GlStateManager.blendFunc(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA);
GlStateManager.disableBlend();
GlStateManager.alphaFunc(516, 0.1F);
}
}
ParticleRenderer.java 文件源码
java
阅读 23
收藏 0
点赞 0
评论 0
项目:Melodium
作者:
评论列表
文章目录