@kitten-science/kitten-scientists
Version:
Add-on for the wonderful incremental browser game: https://kittensgame.com/web/
65 lines • 3.41 kB
JavaScript
import { CyclesList } from "./components/CyclesList.js";
import { Dialog } from "./components/Dialog.js";
import { SettingsList } from "./components/SettingsList.js";
import { SettingsPanel } from "./components/SettingsPanel.js";
import { SettingTriggerListItem } from "./components/SettingTriggerListItem.js";
import styles from "./TimeSkipHeatSettingsUi.module.css";
export class TimeSkipHeatSettingsUi extends SettingsPanel {
constructor(parent, settings, locale, sectionSetting, sectionParentSetting) {
const label = parent.host.engine.i18n("option.time.activeHeatTransfer");
super(parent, settings, new SettingTriggerListItem(parent, settings, locale, label, {
onCheck: (_isBatchProcess) => {
parent.host.engine.imessage("status.auto.enable", [label]);
},
onSetTrigger: async () => {
const value = await Dialog.prompt(parent, parent.host.engine.i18n("ui.trigger.activeHeatTransfer.prompt"), parent.host.engine.i18n("ui.trigger.activeHeatTransfer.promptTitle", [
parent.host.renderPercentage(settings.trigger, locale.selected, true),
]), parent.host.renderPercentage(settings.trigger), parent.host.engine.i18n("ui.trigger.activeHeatTransfer.promptExplainer"));
if (value === undefined || value === "" || value.startsWith("-")) {
return;
}
settings.trigger = parent.host.parsePercentage(value);
},
onUnCheck: (_isBatchProcess) => {
parent.host.engine.imessage("status.auto.disable", [label]);
settings.activeHeatTransferStatus.enabled = false;
},
}), {
onRefreshRequest: () => {
this.settingItem.triggerButton.inactive = !settings.enabled;
this.settingItem.triggerButton.ineffective =
sectionParentSetting.enabled &&
sectionSetting.enabled &&
settings.enabled &&
settings.trigger === -1;
this.expando.ineffective =
sectionParentSetting.enabled &&
sectionSetting.enabled &&
settings.enabled &&
!Object.values(settings.cycles).some(cycle => cycle.enabled);
if (settings.activeHeatTransferStatus.enabled) {
this.head.elementLabel.attr("data-ks-active-from", "◎");
this.head.elementLabel.attr("data-ks-active-to", "◎");
this.head.elementLabel.addClass(styles.active);
}
else {
this.head.elementLabel.removeClass(styles.active);
}
},
});
this.addChildContent(new SettingsList(this, {
hasDisableAll: false,
hasEnableAll: false,
}).addChildren([
new CyclesList(this, this.setting.cycles, {
onCheckCycle: (label) => {
this.host.engine.imessage("time.heatTransfer.cycle.enable", [label]);
},
onUnCheckCycle: (label) => {
this.host.engine.imessage("time.heatTransfer.cycle.disable", [label]);
},
}),
]));
}
}
//# sourceMappingURL=TimeSkipHeatSettingsUi.js.map