mirror of
https://github.com/Creators-of-Create/Create.git
synced 2024-12-27 23:47:38 +01:00
Break up the monotony, suffer a little longer
- Soul particles last longer and loop - Randomly mirror the particles
This commit is contained in:
parent
5a7a35b3cc
commit
45fe9ba61c
3 changed files with 19 additions and 8 deletions
|
@ -13,10 +13,18 @@ import net.minecraft.util.math.vector.Vector3f;
|
|||
|
||||
public class CustomRotationParticle extends SimpleAnimatedParticle {
|
||||
|
||||
protected boolean mirror;
|
||||
protected int loopTicks;
|
||||
|
||||
public CustomRotationParticle(ClientWorld worldIn, double x, double y, double z, IAnimatedSprite spriteSet, float yAccel) {
|
||||
super(worldIn, x, y, z, spriteSet, yAccel);
|
||||
}
|
||||
|
||||
public void selectSpriteLoopingWithAge(IAnimatedSprite sprite) {
|
||||
int loopFrame = age % loopTicks;
|
||||
this.setSprite(sprite.get(loopFrame, loopTicks));
|
||||
}
|
||||
|
||||
public Quaternion getCustomRotation(ActiveRenderInfo camera, float partialTicks) {
|
||||
Quaternion quaternion = new Quaternion(camera.getRotation());
|
||||
if (this.particleAngle != 0.0F) {
|
||||
|
@ -44,8 +52,8 @@ public class CustomRotationParticle extends SimpleAnimatedParticle {
|
|||
vertex.add(originX, originY, originZ);
|
||||
}
|
||||
|
||||
float minU = this.getMinU();
|
||||
float maxU = this.getMaxU();
|
||||
float minU = mirror ? this.getMaxU() : this.getMinU();
|
||||
float maxU = mirror ? this.getMinU() : this.getMaxU();
|
||||
float minV = this.getMinV();
|
||||
float maxV = this.getMaxV();
|
||||
int brightness = this.getBrightnessForRender(partialTicks);
|
||||
|
|
|
@ -20,8 +20,9 @@ public class SoulBaseParticle extends CustomRotationParticle {
|
|||
this.animatedSprite = spriteSet;
|
||||
this.particleScale = 0.5f;
|
||||
this.setSize(this.particleScale,this.particleScale);
|
||||
this.maxAge = (int)(16.0F / (this.rand.nextFloat() * 0.36F + 0.64F));
|
||||
this.selectSpriteWithAge(animatedSprite);
|
||||
this.loopTicks = 16 + (int) (this.rand.nextFloat() * 2f - 1f);
|
||||
this.maxAge = (int)(64.0F / (this.rand.nextFloat() * 0.36F + 0.64F));
|
||||
this.selectSpriteLoopingWithAge(animatedSprite);
|
||||
this.field_21507 = true; // disable movement
|
||||
}
|
||||
|
||||
|
@ -30,7 +31,7 @@ public class SoulBaseParticle extends CustomRotationParticle {
|
|||
if (this.age++ >= this.maxAge) {
|
||||
this.setExpired();
|
||||
} else {
|
||||
this.selectSpriteWithAge(animatedSprite);
|
||||
this.selectSpriteLoopingWithAge(animatedSprite);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -19,9 +19,11 @@ public class SoulParticle extends CustomRotationParticle {
|
|||
this.animatedSprite = spriteSet;
|
||||
this.particleScale = 0.5f;
|
||||
this.setSize(this.particleScale,this.particleScale);
|
||||
this.maxAge = (int)(16.0F / (this.rand.nextFloat() * 0.36F + 0.64F));
|
||||
this.selectSpriteWithAge(animatedSprite);
|
||||
this.loopTicks = 16 + (int) (this.rand.nextFloat() * 4f - 2f);
|
||||
this.maxAge = (int)(64.0F / (this.rand.nextFloat() * 0.36F + 0.64F));
|
||||
this.selectSpriteLoopingWithAge(animatedSprite);
|
||||
this.field_21507 = true; // disable movement
|
||||
this.mirror = this.rand.nextBoolean();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -29,7 +31,7 @@ public class SoulParticle extends CustomRotationParticle {
|
|||
if (this.age++ >= this.maxAge) {
|
||||
this.setExpired();
|
||||
} else {
|
||||
this.selectSpriteWithAge(animatedSprite);
|
||||
this.selectSpriteLoopingWithAge(animatedSprite);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue