NaturesAura/src/main/java/de/ellpeck/naturesaura/particles/ParticleMagic.java

57 lines
1.8 KiB
Java
Raw Normal View History

2018-10-13 20:35:18 +02:00
package de.ellpeck.naturesaura.particles;
import de.ellpeck.naturesaura.NaturesAura;
import net.minecraft.client.Minecraft;
import net.minecraft.client.particle.Particle;
import net.minecraft.client.renderer.texture.TextureMap;
import net.minecraft.util.ResourceLocation;
import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
@SideOnly(Side.CLIENT)
public class ParticleMagic extends Particle {
public static final ResourceLocation TEXTURE = new ResourceLocation(NaturesAura.MOD_ID, "particle/magic_round");
private final float desiredScale;
public ParticleMagic(World world, double posX, double posY, double posZ, double motionX, double motionY, double motionZ, int color, float scale, int maxAge, float gravity, boolean collision) {
super(world, posX, posY, posZ);
this.desiredScale = scale;
this.maxAge = maxAge;
this.canCollide = collision;
this.particleGravity = gravity;
this.motionX = motionX;
this.motionY = motionY;
this.motionZ = motionZ;
this.setColor(((color >> 16) & 255) / 255F, ((color >> 8) & 255) / 255F, (color & 255) / 255F);
TextureMap map = Minecraft.getInstance().getTextureMap();
this.setParticleTexture(map.getAtlasSprite(TEXTURE.toString()));
this.particleAlpha = 0F;
this.particleScale = 0F;
}
@Override
public void tick() {
super.tick();
float lifeRatio = (float) this.age / (float) this.maxAge;
this.particleAlpha = 0.75F - (lifeRatio * 0.75F);
this.particleScale = this.desiredScale - (this.desiredScale * lifeRatio);
}
@Override
public int getFXLayer() {
return 1;
}
@Override
public int getBrightnessForRender(float f) {
return 15 << 20 | 15 << 4;
}
}