47 lines
1.7 KiB
Java
47 lines
1.7 KiB
Java
package electroblob.wizardry.client.particle;
|
|
|
|
import net.minecraft.client.particle.Particle;
|
|
import net.minecraft.client.renderer.BufferBuilder;
|
|
import net.minecraft.entity.Entity;
|
|
import net.minecraft.world.World;
|
|
import net.minecraftforge.fml.relauncher.Side;
|
|
import net.minecraftforge.fml.relauncher.SideOnly;
|
|
|
|
@SideOnly(Side.CLIENT)
|
|
public class ParticleMagicFlame extends Particle {
|
|
|
|
/** The scale of the flame particle */
|
|
private float flameScale;
|
|
|
|
public ParticleMagicFlame(World par1World, double par2, double par4, double par6, double par8, double par10,
|
|
double par12, int maxAge, float scale){
|
|
super(par1World, par2, par4, par6, par8, par10, par12);
|
|
this.motionX = this.motionX * 0.009999999776482582D + par8;
|
|
this.motionY = this.motionY * 0.009999999776482582D + par10;
|
|
this.motionZ = this.motionZ * 0.009999999776482582D + par12;
|
|
this.flameScale = scale;
|
|
this.particleRed = this.particleGreen = this.particleBlue = 1.0F;
|
|
if(maxAge == 0){
|
|
this.particleMaxAge = (int)(2.0D / (Math.random() * 0.8D + 0.2D));
|
|
}else{
|
|
this.particleMaxAge = maxAge;
|
|
}
|
|
// IDEA: Make the particles for ray spells collide properly and not spawn on the other side of stuff.
|
|
this.canCollide = false;
|
|
this.setParticleTextureIndex(48);
|
|
}
|
|
|
|
@Override
|
|
public void renderParticle(BufferBuilder buffer, Entity entity, float partialTicks, float rotationX, float rotationZ,
|
|
float rotationYZ, float rotationXY, float rotationXZ){
|
|
float f6 = ((float)this.particleAge + partialTicks) / (float)this.particleMaxAge;
|
|
this.particleScale = this.flameScale * (1.0F - f6 * f6 * 0.5F);
|
|
super.renderParticle(buffer, entity, partialTicks, rotationX, rotationZ, rotationYZ, rotationXY, rotationXZ);
|
|
}
|
|
|
|
@Override
|
|
public int getBrightnessForRender(float par1){
|
|
return 256;
|
|
}
|
|
}
|