4jcraft/Minecraft.World/Util/SmoothFloat.cpp
2026-03-13 17:06:56 -05:00

25 lines
717 B
C++

#include "../Platform/stdafx.h"
#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; }