Files
discord-decomp/_bundle/AverageWindow.js
T
2026-11-01 12:12:55 +02:00

87 lines
2.3 KiB
JavaScript

// Metro module 5430 (f5431).
import _classCallCheck from "./_classCallCheck_5425";
import _createClass from "./_createClass_5426";
let c3313_1;
let MultiTypeAverageWindow;
let env3313 = {};
const AverageWindow = function AverageWindow(a0, a1) {
_classCallCheck(this, AverageWindow);
this.nextIndex = 0;
const r8 = Array;
const r9 = Math;
let currentCount = 1;
this.inputValues = new r8(r9.max(1, a0));
this.currentAverage = a1 == null ? 0 : a1;
if (a1 === void 0) {
currentCount = 0;
}
this.currentCount = currentCount;
this.nextIndex = this.currentCount;
this.inputValues[0] = a1;
};
c3313_1 = _createClass(AverageWindow, [{
key: "currentValue",
get: function get() {
return this.currentAverage;
}
}, {
key: "addValue",
value: function addValue(a0) {
const nextIndex = this.getNextIndex();
let r9 = this.inputValues[nextIndex];
const currentCount = r9 === void 0 ? this.currentCount + 1 : this.currentCount;
this.inputValues[nextIndex] = a0;
const r15 = Math;
const r18 = this.currentAverage * (this.currentCount / currentCount);
if (r9 == null) {
r9 = 0;
}
this.currentAverage = r15.max(0, r18 + (a0 - r9) / currentCount);
this.currentCount = currentCount;
}
}, {
key: "getNextIndex",
value: function getNextIndex() {
const nextIndex = this.nextIndex;
this.nextIndex = (this.nextIndex + 1) % this.inputValues.length;
return nextIndex;
}
}]);
MultiTypeAverageWindow = function MultiTypeAverageWindow(a0, a1) {
_classCallCheck(this, MultiTypeAverageWindow);
this.averageWindows = new Map();
this.windowSize = a0;
this.defaultValue = a1;
};
const r34 = _createClass(MultiTypeAverageWindow, [{
key: "addValue",
value: function addValue(a0, a1) {
let r10 = this.averageWindows.get(a1);
if (!r10) {
const r13 = new c3313_1(this.windowSize);
this.averageWindows.set(a1, r13);
r10 = r13;
}
r10.addValue(a0);
}
}, {
key: "getCurrentValue",
value: function getCurrentValue(a0) {
let r8 = this.averageWindows.get(a0)?.currentValue;
if (r8 == null) {
r8 = this.defaultValue;
}
if (r8 == null) {
r8 = 0;
}
return r8;
}
}, {
key: "reset",
value: function reset() {
this.averageWindows.clear();
}
}]);
export { c3313_1 as AverageWindow };
export { r34 as MultiTypeAverageWindow };