4jcraft/targets/minecraft/util/SmoothFloat.cpp
2026-04-01 13:27:58 -05:00

24 lines
685 B
C++

#include "SmoothFloat.h"
SmoothFloat::SmoothFloat() {
targetValue = 0.0f;
remainingValue = 0.0f;
lastAmount = 0.0f;
}
float SmoothFloat::getNewDeltaValue(float deltaValue,
float accelerationAmount) {
targetValue += deltaValue;
deltaValue = (targetValue - remainingValue) * accelerationAmount;
lastAmount = lastAmount + (deltaValue - lastAmount) * 0.5f;
if ((deltaValue > 0 && deltaValue > lastAmount) ||
(deltaValue < 0 && deltaValue < lastAmount)) {
deltaValue = lastAmount;
}
remainingValue += deltaValue;
return deltaValue;
}
float SmoothFloat::getTargetValue() { return targetValue; }