Starsector API
Loading...
Searching...
No Matches
RollingAverageTracker.java
Go to the documentation of this file.
1
package
com.fs.starfarer.api.util;
2
3
public
class
RollingAverageTracker
{
4
5
private
IntervalUtil
timer;
6
private
final
float
f;
7
private
float
elaspedFractionOverride = -1;
8
private
float
curr = 0, avg = 0;
9
10
11
public
RollingAverageTracker
(
float
minInterval,
float
maxInterval,
float
factor) {
12
this.f = factor;
13
timer =
new
IntervalUtil
(minInterval, maxInterval);
14
}
15
16
public
void
advance
(
float
amount
) {
17
timer.
advance
(
amount
);
18
if
(timer.intervalElapsed()) {
19
updateAverage
();
20
}
21
}
22
23
public
void
updateAverage
() {
24
if
(avg <= 0) {
25
avg = curr;
26
}
else
{
27
avg = avg * (1f - f) + curr * f;
28
}
29
curr = 0;
30
}
31
32
public
float
getCurr
() {
33
return
curr;
34
}
35
36
public
float
getAverage
() {
37
float
e
= timer.
getElapsed
() / timer.
getIntervalDuration
();
38
if
(elaspedFractionOverride >= 0) {
39
e
= elaspedFractionOverride;
40
}
41
return
avg * (1f - f *
e
) + curr * f *
e
;
42
// return curr;
43
}
44
45
public
void
add
(
float
val
) {
46
curr +=
val
;
47
}
48
public
void
sub
(
float
val
) {
49
curr -=
val
;
50
if
(curr < 0) curr = 0;
51
}
52
53
public
void
setElaspedFractionOverride
(
float
elaspedFractionOverride) {
54
this.elaspedFractionOverride = elaspedFractionOverride;
55
}
56
57
58
}
com.fs.starfarer.api.util.IntervalUtil
Definition
IntervalUtil.java:5
com.fs.starfarer.api.util.IntervalUtil.getIntervalDuration
float getIntervalDuration()
Definition
IntervalUtil.java:78
com.fs.starfarer.api.util.IntervalUtil.advance
void advance(float amount)
Definition
IntervalUtil.java:59
com.fs.starfarer.api.util.IntervalUtil.getElapsed
float getElapsed()
Definition
IntervalUtil.java:45
com.fs.starfarer.api.util.RollingAverageTracker
Definition
RollingAverageTracker.java:3
com.fs.starfarer.api.util.RollingAverageTracker.getCurr
float getCurr()
Definition
RollingAverageTracker.java:32
com.fs.starfarer.api.util.RollingAverageTracker.add
void add(float val)
Definition
RollingAverageTracker.java:45
com.fs.starfarer.api.util.RollingAverageTracker.RollingAverageTracker
RollingAverageTracker(float minInterval, float maxInterval, float factor)
Definition
RollingAverageTracker.java:11
com.fs.starfarer.api.util.RollingAverageTracker.setElaspedFractionOverride
void setElaspedFractionOverride(float elaspedFractionOverride)
Definition
RollingAverageTracker.java:53
com.fs.starfarer.api.util.RollingAverageTracker.advance
void advance(float amount)
Definition
RollingAverageTracker.java:16
com.fs.starfarer.api.util.RollingAverageTracker.getAverage
float getAverage()
Definition
RollingAverageTracker.java:36
com.fs.starfarer.api.util.RollingAverageTracker.updateAverage
void updateAverage()
Definition
RollingAverageTracker.java:23
com.fs.starfarer.api.util.RollingAverageTracker.sub
void sub(float val)
Definition
RollingAverageTracker.java:48
com.fs.starfarer.api.util.TimeoutTracker
Definition
TimeoutTracker.java:8
src
com
fs
starfarer
api
util
RollingAverageTracker.java
Generated by
1.9.8