mirror of
https://github.com/Ellpeck/NaturesAura.git
synced 2024-11-22 19:58:34 +01:00
add fade to particles
This commit is contained in:
parent
871201d77c
commit
da498aea97
4 changed files with 35 additions and 23 deletions
|
@ -92,11 +92,6 @@ public class ClientEvents {
|
||||||
mc.profiler.endSection();
|
mc.profiler.endSection();
|
||||||
}
|
}
|
||||||
|
|
||||||
@SubscribeEvent
|
|
||||||
public void onTextureStitch(TextureStitchEvent event) {
|
|
||||||
event.getMap().registerSprite(ParticleMagic.TEXTURE);
|
|
||||||
}
|
|
||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
public void onClientTick(ClientTickEvent event) {
|
public void onClientTick(ClientTickEvent event) {
|
||||||
if (event.phase == Phase.END) {
|
if (event.phase == Phase.END) {
|
||||||
|
|
|
@ -7,7 +7,6 @@ import net.minecraft.client.renderer.ActiveRenderInfo;
|
||||||
import net.minecraft.client.renderer.BufferBuilder;
|
import net.minecraft.client.renderer.BufferBuilder;
|
||||||
import net.minecraft.client.renderer.GlStateManager;
|
import net.minecraft.client.renderer.GlStateManager;
|
||||||
import net.minecraft.client.renderer.Tessellator;
|
import net.minecraft.client.renderer.Tessellator;
|
||||||
import net.minecraft.client.renderer.texture.TextureMap;
|
|
||||||
import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
|
import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraftforge.fml.relauncher.Side;
|
import net.minecraftforge.fml.relauncher.Side;
|
||||||
|
@ -30,14 +29,12 @@ public final class ParticleHandler {
|
||||||
int setting = mc.gameSettings.particleSetting;
|
int setting = mc.gameSettings.particleSetting;
|
||||||
if (setting != 0 &&
|
if (setting != 0 &&
|
||||||
(setting != 1 || mc.world.rand.nextInt(3) != 0) &&
|
(setting != 1 || mc.world.rand.nextInt(3) != 0) &&
|
||||||
(setting != 2 || mc.world.rand.nextInt(10) != 0)) {
|
(setting != 2 || mc.world.rand.nextInt(10) != 0))
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
double setting = ModConfig.client.particleAmount;
|
double setting = ModConfig.client.particleAmount;
|
||||||
if (setting < 1 && mc.world.rand.nextDouble() > setting) {
|
if (setting < 1 && mc.world.rand.nextDouble() > setting)
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
PARTICLES.add(particle.get());
|
PARTICLES.add(particle.get());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -46,9 +43,8 @@ public final class ParticleHandler {
|
||||||
for (int i = PARTICLES.size() - 1; i >= 0; i--) {
|
for (int i = PARTICLES.size() - 1; i >= 0; i--) {
|
||||||
Particle particle = PARTICLES.get(i);
|
Particle particle = PARTICLES.get(i);
|
||||||
particle.onUpdate();
|
particle.onUpdate();
|
||||||
if (!particle.isAlive()) {
|
if (!particle.isAlive())
|
||||||
PARTICLES.remove(i);
|
PARTICLES.remove(i);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -77,15 +73,14 @@ public final class ParticleHandler {
|
||||||
|
|
||||||
GlStateManager.depthMask(false);
|
GlStateManager.depthMask(false);
|
||||||
|
|
||||||
mc.getTextureManager().bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE);
|
mc.getTextureManager().bindTexture(ParticleMagic.TEXTURE);
|
||||||
Tessellator tessy = Tessellator.getInstance();
|
Tessellator tessy = Tessellator.getInstance();
|
||||||
BufferBuilder buffer = tessy.getBuffer();
|
BufferBuilder buffer = tessy.getBuffer();
|
||||||
|
|
||||||
GlStateManager.blendFunc(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE);
|
GlStateManager.blendFunc(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE);
|
||||||
buffer.begin(GL11.GL_QUADS, DefaultVertexFormats.PARTICLE_POSITION_TEX_COLOR_LMAP);
|
buffer.begin(GL11.GL_QUADS, DefaultVertexFormats.PARTICLE_POSITION_TEX_COLOR_LMAP);
|
||||||
for (Particle particle : PARTICLES) {
|
for (Particle particle : PARTICLES)
|
||||||
particle.renderParticle(buffer, player, partialTicks, x, xz, z, yz, xy);
|
particle.renderParticle(buffer, player, partialTicks, x, xz, z, yz, xy);
|
||||||
}
|
|
||||||
|
|
||||||
tessy.draw();
|
tessy.draw();
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
package de.ellpeck.naturesaura.particles;
|
package de.ellpeck.naturesaura.particles;
|
||||||
|
|
||||||
import de.ellpeck.naturesaura.NaturesAura;
|
import de.ellpeck.naturesaura.NaturesAura;
|
||||||
import net.minecraft.client.Minecraft;
|
|
||||||
import net.minecraft.client.particle.Particle;
|
import net.minecraft.client.particle.Particle;
|
||||||
import net.minecraft.client.renderer.texture.TextureMap;
|
import net.minecraft.client.renderer.BufferBuilder;
|
||||||
|
import net.minecraft.entity.Entity;
|
||||||
import net.minecraft.util.ResourceLocation;
|
import net.minecraft.util.ResourceLocation;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraftforge.fml.relauncher.Side;
|
import net.minecraftforge.fml.relauncher.Side;
|
||||||
|
@ -12,7 +12,7 @@ import net.minecraftforge.fml.relauncher.SideOnly;
|
||||||
@SideOnly(Side.CLIENT)
|
@SideOnly(Side.CLIENT)
|
||||||
public class ParticleMagic extends Particle {
|
public class ParticleMagic extends Particle {
|
||||||
|
|
||||||
public static final ResourceLocation TEXTURE = new ResourceLocation(NaturesAura.MOD_ID, "particles/magic_round");
|
public static final ResourceLocation TEXTURE = new ResourceLocation(NaturesAura.MOD_ID, "textures/particles/magic_round.png");
|
||||||
|
|
||||||
private final float desiredScale;
|
private final float desiredScale;
|
||||||
private final boolean fade;
|
private final boolean fade;
|
||||||
|
@ -34,9 +34,6 @@ public class ParticleMagic extends Particle {
|
||||||
float b = ((color & 255) / 255F) * (1F - this.rand.nextFloat() * 0.25F);
|
float b = ((color & 255) / 255F) * (1F - this.rand.nextFloat() * 0.25F);
|
||||||
this.setRBGColorF(r, g, b);
|
this.setRBGColorF(r, g, b);
|
||||||
|
|
||||||
TextureMap map = Minecraft.getMinecraft().getTextureMapBlocks();
|
|
||||||
this.setParticleTexture(map.getAtlasSprite(TEXTURE.toString()));
|
|
||||||
|
|
||||||
this.particleAlpha = 1F;
|
this.particleAlpha = 1F;
|
||||||
this.particleScale = 0F;
|
this.particleScale = 0F;
|
||||||
}
|
}
|
||||||
|
@ -65,8 +62,28 @@ public class ParticleMagic extends Particle {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getFXLayer() {
|
public void renderParticle(BufferBuilder buffer, Entity entityIn, float partialTicks, float rotationX, float rotationZ, float rotationYZ, float rotationXY, float rotationXZ) {
|
||||||
return 1;
|
double x = this.prevPosX + (this.posX - this.prevPosX) * partialTicks - interpPosX;
|
||||||
|
double y = this.prevPosY + (this.posY - this.prevPosY) * partialTicks - interpPosY;
|
||||||
|
double z = this.prevPosZ + (this.posZ - this.prevPosZ) * partialTicks - interpPosZ;
|
||||||
|
float sc = 0.1F * this.particleScale;
|
||||||
|
|
||||||
|
int brightness = this.getBrightnessForRender(partialTicks);
|
||||||
|
int sky = brightness >> 16 & 0xFFFF;
|
||||||
|
int block = brightness & 0xFFFF;
|
||||||
|
|
||||||
|
buffer.pos(x + (-rotationX * sc - rotationXY * sc), y + -rotationZ * sc, z + (-rotationYZ * sc - rotationXZ * sc))
|
||||||
|
.tex(0, 1).color(this.particleRed, this.particleGreen, this.particleBlue, this.particleAlpha)
|
||||||
|
.lightmap(sky, block).endVertex();
|
||||||
|
buffer.pos(x + (-rotationX * sc + rotationXY * sc), y + (rotationZ * sc), z + (-rotationYZ * sc + rotationXZ * sc))
|
||||||
|
.tex(1, 1).color(this.particleRed, this.particleGreen, this.particleBlue, this.particleAlpha)
|
||||||
|
.lightmap(sky, block).endVertex();
|
||||||
|
buffer.pos(x + (rotationX * sc + rotationXY * sc), y + (rotationZ * sc), z + (rotationYZ * sc + rotationXZ * sc))
|
||||||
|
.tex(1, 0).color(this.particleRed, this.particleGreen, this.particleBlue, this.particleAlpha)
|
||||||
|
.lightmap(sky, block).endVertex();
|
||||||
|
buffer.pos(x + (rotationX * sc - rotationXY * sc), y + (-rotationZ * sc), z + (rotationYZ * sc - rotationXZ * sc))
|
||||||
|
.tex(0, 0).color(this.particleRed, this.particleGreen, this.particleBlue, this.particleAlpha)
|
||||||
|
.lightmap(sky, block).endVertex();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
"texture": {
|
||||||
|
"blur": true
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue