mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2024-11-11 10:13:52 +01:00
974bc3c002
Moved the UI binding to a separate file as there is still a circular dependency with 'engine'. But every other file that depends on Settings is no longer part of a larger dependency cycle.
97 lines
4.2 KiB
JavaScript
97 lines
4.2 KiB
JavaScript
import {Engine} from "../engine";
|
|
import {Settings} from "../Settings";
|
|
|
|
function setSettingsLabels() {
|
|
var nsExecTime = document.getElementById("settingsNSExecTimeRangeValLabel");
|
|
var nsLogLimit = document.getElementById("settingsNSLogRangeValLabel");
|
|
var nsPortLimit = document.getElementById("settingsNSPortRangeValLabel");
|
|
var suppressMsgs = document.getElementById("settingsSuppressMessages");
|
|
var suppressFactionInv = document.getElementById("settingsSuppressFactionInvites")
|
|
var suppressTravelConfirmation = document.getElementById("settingsSuppressTravelConfirmation");
|
|
var suppressBuyAugmentationConfirmation = document.getElementById("settingsSuppressBuyAugmentationConfirmation");
|
|
var autosaveInterval = document.getElementById("settingsAutosaveIntervalValLabel");
|
|
var disableHotkeys = document.getElementById("settingsDisableHotkeys");
|
|
|
|
//Initialize values on labels
|
|
nsExecTime.innerHTML = Settings.CodeInstructionRunTime + "ms";
|
|
nsLogLimit.innerHTML = Settings.MaxLogCapacity;
|
|
nsPortLimit.innerHTML = Settings.MaxPortCapacity;
|
|
suppressMsgs.checked = Settings.SuppressMessages;
|
|
suppressFactionInv.checked = Settings.SuppressFactionInvites;
|
|
suppressTravelConfirmation.checked = Settings.SuppressTravelConfirmation;
|
|
suppressBuyAugmentationConfirmation.checked = Settings.SuppressBuyAugmentationConfirmation;
|
|
autosaveInterval.innerHTML = Settings.AutosaveInterval;
|
|
disableHotkeys.checked = Settings.DisableHotkeys;
|
|
|
|
//Set handlers for when input changes
|
|
var nsExecTimeInput = document.getElementById("settingsNSExecTimeRangeVal");
|
|
var nsLogRangeInput = document.getElementById("settingsNSLogRangeVal");
|
|
var nsPortRangeInput = document.getElementById("settingsNSPortRangeVal");
|
|
var nsAutosaveIntervalInput = document.getElementById("settingsAutosaveIntervalVal");
|
|
nsExecTimeInput.value = Settings.CodeInstructionRunTime;
|
|
nsLogRangeInput.value = Settings.MaxLogCapacity;
|
|
nsPortRangeInput.value = Settings.MaxPortCapacity;
|
|
nsAutosaveIntervalInput.value = Settings.AutosaveInterval;
|
|
|
|
nsExecTimeInput.oninput = function() {
|
|
nsExecTime.innerHTML = this.value + 'ms';
|
|
Settings.CodeInstructionRunTime = this.value;
|
|
};
|
|
|
|
nsLogRangeInput.oninput = function() {
|
|
nsLogLimit.innerHTML = this.value;
|
|
Settings.MaxLogCapacity = this.value;
|
|
};
|
|
|
|
nsPortRangeInput.oninput = function() {
|
|
nsPortLimit.innerHTML = this.value;
|
|
Settings.MaxPortCapacity = this.value;
|
|
};
|
|
|
|
nsAutosaveIntervalInput.oninput = function() {
|
|
autosaveInterval.innerHTML = this.value;
|
|
Settings.AutosaveInterval = Number(this.value);
|
|
if (Number(this.value) === 0) {
|
|
Engine.Counters.autoSaveCounter = Infinity;
|
|
} else {
|
|
Engine.Counters.autoSaveCounter = Number(this.value) * 5;
|
|
}
|
|
};
|
|
|
|
suppressMsgs.onclick = function() {
|
|
Settings.SuppressMessages = this.checked;
|
|
};
|
|
|
|
suppressFactionInv.onclick = function() {
|
|
Settings.SuppressFactionInvites = this.checked;
|
|
};
|
|
|
|
suppressTravelConfirmation.onclick = function() {
|
|
Settings.SuppressTravelConfirmation = this.checked;
|
|
};
|
|
|
|
suppressBuyAugmentationConfirmation.onclick = function() {
|
|
Settings.SuppressBuyAugmentationConfirmation = this.checked;
|
|
console.log('sup buy: '+Settings.SuppressBuyAugmentationConfirmation);
|
|
};
|
|
|
|
disableHotkeys.onclick = function() {
|
|
Settings.DisableHotkeys = this.checked;
|
|
}
|
|
|
|
//Theme
|
|
if (Settings.ThemeHighlightColor == null || Settings.ThemeFontColor == null || Settings.ThemeBackgroundColor == null) {
|
|
console.log("ERROR: Cannot find Theme Settings");
|
|
return;
|
|
}
|
|
if (/^#[0-9a-f]{3}(?:[0-9a-f]{3})?$/i.test(Settings.ThemeHighlightColor) &&
|
|
/^#[0-9a-f]{3}(?:[0-9a-f]{3})?$/i.test(Settings.ThemeFontColor) &&
|
|
/^#[0-9a-f]{3}(?:[0-9a-f]{3})?$/i.test(Settings.ThemeBackgroundColor)) {
|
|
document.body.style.setProperty('--my-highlight-color', Settings.ThemeHighlightColor);
|
|
document.body.style.setProperty('--my-font-color', Settings.ThemeFontColor);
|
|
document.body.style.setProperty('--my-background-color', Settings.ThemeBackgroundColor);
|
|
}
|
|
}
|
|
|
|
export { setSettingsLabels };
|