59 lines
1.9 KiB
Java
59 lines
1.9 KiB
Java
package electroblob.wizardry.client.particle;
|
|
|
|
import org.lwjgl.opengl.GL11;
|
|
|
|
import electroblob.wizardry.Wizardry;
|
|
import net.minecraft.client.renderer.GlStateManager;
|
|
import net.minecraft.client.renderer.OpenGlHelper;
|
|
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 ParticleSpark extends ParticleCustomTexture {
|
|
|
|
private static final ResourceLocation TEXTURE = new ResourceLocation(Wizardry.MODID, "textures/particle/lightning_particles.png");
|
|
|
|
public ParticleSpark(World world, double x, double y, double z, double vx, double vy, double vz){
|
|
// Max age is always 3.
|
|
super(world, x, y, z, vx, vy, vz, 3);
|
|
}
|
|
|
|
@Override
|
|
public void init(){
|
|
// Multiplied by 4 because the index works slightly differently for spark particles.
|
|
this.setParticleTextureIndex(rand.nextInt(8)*4);
|
|
this.particleScale *= 1.4f;
|
|
this.fullBrightness = true;
|
|
this.canCollide = false;
|
|
}
|
|
|
|
@Override
|
|
public void onUpdate(){
|
|
super.onUpdate();
|
|
// Well this is handy! Looks like vanilla uses the texture index like this too.
|
|
this.nextTextureIndexX();
|
|
}
|
|
|
|
@Override public ResourceLocation getTexture(){ return TEXTURE; }
|
|
@Override protected int getXFrames(){ return 4; }
|
|
@Override protected int getYFrames(){ return 8; }
|
|
|
|
@Override
|
|
public void applyGLStateChanges(){
|
|
GlStateManager.enableBlend();
|
|
GlStateManager.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
|
|
// TESTME: Are these two actually necessary?
|
|
GlStateManager.disableLighting();
|
|
OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240, 240);
|
|
}
|
|
|
|
@Override
|
|
public void undoGLStateChanges(){
|
|
GlStateManager.disableBlend();
|
|
GlStateManager.enableLighting();
|
|
}
|
|
|
|
}
|