Fix SimpleAnimationRunner and RandomAnimationsRunner
This commit is contained in:
@@ -28,8 +28,8 @@ public class RandomAnimationsRunner implements AnimationRunner {
|
||||
private float delay = 0f;
|
||||
private RealDistribution delayDistribution;
|
||||
|
||||
private float speed = 0.05f;
|
||||
private RealDistribution speedDistribution;
|
||||
private float animationSpeed = 0.05f;
|
||||
private RealDistribution animationSpeedDistribution;
|
||||
|
||||
private float rotation = 0f;
|
||||
private RealDistribution rotationDistribution;
|
||||
@@ -74,18 +74,18 @@ public class RandomAnimationsRunner implements AnimationRunner {
|
||||
return this;
|
||||
}
|
||||
|
||||
public RandomAnimationsRunner speed(float speed) {
|
||||
this.speed = speed;
|
||||
public RandomAnimationsRunner animationSpeed(float speed) {
|
||||
this.animationSpeed = speed;
|
||||
return this;
|
||||
}
|
||||
|
||||
public RandomAnimationsRunner uSpeed(float min, float max) {
|
||||
this.speedDistribution = new UniformRealDistribution(min, max);
|
||||
public RandomAnimationsRunner uAnimationSpeed(float min, float max) {
|
||||
this.animationSpeedDistribution = new UniformRealDistribution(min, max);
|
||||
return this;
|
||||
}
|
||||
|
||||
public RandomAnimationsRunner nSpeed(float mean, float sd) {
|
||||
this.speedDistribution = new NormalDistribution(mean, sd);
|
||||
public RandomAnimationsRunner nAnimationSpeed(float mean, float sd) {
|
||||
this.animationSpeedDistribution = new NormalDistribution(mean, sd);
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -131,7 +131,7 @@ public class RandomAnimationsRunner implements AnimationRunner {
|
||||
}
|
||||
|
||||
animation.setScale(scaleDistribution != null ? (float) scaleDistribution.sample() : scale);
|
||||
animation.setAnimationSpeed(speedDistribution != null ? (float) speedDistribution.sample() : speed);
|
||||
animation.setAnimationSpeed(animationSpeedDistribution != null ? (float) animationSpeedDistribution.sample() : animationSpeed);
|
||||
animation.setRotation(rotationDistribution != null ? (float) rotationDistribution.sample() : rotation);
|
||||
|
||||
layer.pushAnimation(new DelayedAnimation(animation, (int) (delayDistribution != null ? delayDistribution.sample() : delay)));
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.bartlomiejpluta.base.api.game.animation;
|
||||
|
||||
import com.bartlomiejpluta.base.api.game.context.Context;
|
||||
import com.bartlomiejpluta.base.api.game.map.layer.base.Layer;
|
||||
import com.bartlomiejpluta.base.api.util.path.Path;
|
||||
import org.joml.Vector2fc;
|
||||
|
||||
public class SimpleAnimationRunner implements AnimationRunner {
|
||||
@@ -10,8 +11,13 @@ public class SimpleAnimationRunner implements AnimationRunner {
|
||||
private Integer repeat = 1;
|
||||
private float scale = 1.0f;
|
||||
private int delay = 0;
|
||||
private float animationSpeed = 0.05f;
|
||||
private float speed = 0.05f;
|
||||
private float rotation = 0f;
|
||||
private Path<Animation> path;
|
||||
private Integer pathRepeat;
|
||||
private boolean finishOnPathEnd;
|
||||
private boolean finishOnPathFail;
|
||||
|
||||
public SimpleAnimationRunner(String animationUid) {
|
||||
this.animationUid = animationUid;
|
||||
@@ -37,8 +43,8 @@ public class SimpleAnimationRunner implements AnimationRunner {
|
||||
return this;
|
||||
}
|
||||
|
||||
public SimpleAnimationRunner speed(float speed) {
|
||||
this.speed = speed;
|
||||
public SimpleAnimationRunner animationSpeed(float speed) {
|
||||
this.animationSpeed = speed;
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -47,10 +53,28 @@ public class SimpleAnimationRunner implements AnimationRunner {
|
||||
return this;
|
||||
}
|
||||
|
||||
public SimpleAnimationRunner path(Path<Animation> path, Integer repeat, boolean finishOnEnd, boolean finishOnFail) {
|
||||
this.path = path;
|
||||
this.pathRepeat = repeat;
|
||||
this.finishOnPathEnd = finishOnEnd;
|
||||
this.finishOnPathFail = finishOnFail;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run(Context context, Layer layer, Vector2fc origin) {
|
||||
var animation = new DelayedAnimation(context.createAnimation(animationUid), delay);
|
||||
animation.setPosition(origin);
|
||||
animation.setScale(scale);
|
||||
animation.setAnimationSpeed(animationSpeed);
|
||||
animation.setSpeed(speed);
|
||||
animation.setRotation(rotation);
|
||||
animation.setRepeat(repeat);
|
||||
|
||||
if (path != null) {
|
||||
animation.followPath(path, pathRepeat, finishOnPathEnd, finishOnPathFail);
|
||||
}
|
||||
|
||||
layer.pushAnimation(animation);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user