@kitten-science/kitten-scientists
Version:
Add-on for the wonderful incremental browser game: https://kittensgame.com/web/
100 lines • 3.24 kB
JavaScript
import { isNil } from "@oliversalzburg/js-utils/data/nil.js";
import { consumeEntriesPedantic } from "../tools/Entries.js";
import { Setting } from "./Settings.js";
export var LogFilterItemVariant;
(function (LogFilterItemVariant) {
LogFilterItemVariant["accelerate"] = "ks-activity type_ks-accelerate";
LogFilterItemVariant["adore"] = "ks-activity type_ks-adore";
LogFilterItemVariant["build"] = "ks-activity type_ks-build";
LogFilterItemVariant["craft"] = "ks-activity type_ks-craft";
LogFilterItemVariant["distribute"] = "ks-activity type_ks-distribute";
LogFilterItemVariant["faith"] = "ks-activity type_ks-faith";
LogFilterItemVariant["festival"] = "ks-activity type_ks-festival";
LogFilterItemVariant["hunt"] = "ks-activity type_ks-hunt";
LogFilterItemVariant["misc"] = "ks-activity";
LogFilterItemVariant["praise"] = "ks-activity type_ks-praise";
LogFilterItemVariant["promote"] = "ks-activity type_ks-promote";
LogFilterItemVariant["research"] = "ks-activity type_ks-research";
LogFilterItemVariant["star"] = "ks-activity type_ks-star";
LogFilterItemVariant["timeSkip"] = "ks-activity type_ks-timeSkip";
LogFilterItemVariant["trade"] = "ks-activity type_ks-trade";
LogFilterItemVariant["transcend"] = "ks-activity type_ks-transcend";
LogFilterItemVariant["upgrade"] = "ks-activity type_ks-upgrade";
})(LogFilterItemVariant || (LogFilterItemVariant = {}));
export const FilterItems = [
"accelerate",
"adore",
"build",
"craft",
"distribute",
"faith",
"festival",
"hunt",
"misc",
"praise",
"promote",
"research",
"star",
"timeSkip",
"trade",
"transcend",
"upgrade",
];
export const FilterItemsGame = [
"alicornCorruption",
"alicornRift",
"alicornSacrifice",
"astronomicalEvent",
"blackcoin",
"craft",
"elders",
"faith",
"festival",
"hunt",
"ivoryMeteor",
"meteor",
"tcRefine",
"tcShatter",
"trade",
"unicornRift",
"unicornSacrifice",
"workshopAutomation",
];
export class LogFilterSettingsItem extends Setting {
#variant;
get variant() {
return this.#variant;
}
constructor(variant) {
super(true);
this.#variant = variant;
}
}
export class LogFilterSettings extends Setting {
filters;
filtersGame;
constructor(enabled = false) {
super(enabled);
this.filters = {};
for (const item of FilterItems) {
this.filters[item] = new LogFilterSettingsItem(LogFilterItemVariant[item]);
}
this.filtersGame = {};
for (const item of FilterItemsGame) {
this.filtersGame[item] = new LogFilterSettingsItem(null);
}
}
load(settings) {
if (isNil(settings)) {
return;
}
super.load(settings);
consumeEntriesPedantic(this.filters, settings.filters, (filter, item) => {
filter.enabled = item?.enabled ?? filter.enabled;
});
consumeEntriesPedantic(this.filtersGame, settings.filtersGame, (filter, item) => {
filter.enabled = item?.enabled ?? filter.enabled;
});
}
}
//# sourceMappingURL=LogFilterSettings.js.map