Files
MindMotion/src/main/java/net/fretux/mindmotion/player/TempoCapability.java
T

58 lines
1.3 KiB
Java

package net.fretux.mindmotion.player;
public class TempoCapability implements ITempo {
private int tempo = 0;
private int baseMaxTempo = 120;
private float bonusMaxTempo = 0f;
private int ventCooldown = 0;
@Override
public int getTempo() {
return tempo;
}
@Override
public void setTempo(int tempo) {
this.tempo = Math.max(0, Math.min(getMaxTempo(), tempo));
}
@Override
public int getMaxTempo() {
return Math.max(0, Math.round(baseMaxTempo + bonusMaxTempo));
}
@Override
public void addTempo(int amount) {
setTempo(this.tempo + amount);
}
@Override
public void reduceTempo(int amount) {
setTempo(this.tempo - amount);
}
@Override
public int getVentCooldown() {
return ventCooldown;
}
@Override
public void setVentCooldown(int ticks) {
ventCooldown = Math.max(0, ticks);
}
public void setBaseMaxTempo(int baseMaxTempo) {
this.baseMaxTempo = baseMaxTempo;
setTempo(this.tempo);
}
public void setBonusMaxTempo(float bonusMaxTempo) {
this.bonusMaxTempo = Math.max(0f, bonusMaxTempo);
setTempo(this.tempo);
}
public float getBonusMaxTempo() {
return bonusMaxTempo;
}
}