Skip to content
This repository has been archived by the owner on Oct 25, 2022. It is now read-only.

Commit

Permalink
fix(core): Broken resource settings perstistence
Browse files Browse the repository at this point in the history
The settings from workshop and time control would override each other, causing all configuration to be lost.
  • Loading branch information
oliversalzburg committed Oct 5, 2022
1 parent 35eb5ec commit 899e6bb
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 7 deletions.
21 changes: 14 additions & 7 deletions packages/userscript/source/options/TimeControlSettings.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { objectEntries } from "../tools/Entries";
import { isNil, mustExist } from "../tools/Maybe";
import { SpaceBuildings, TimeItemVariant, UnicornItemVariant } from "../types";
import { BonfireItem } from "./BonfireSettings";
import { FaithItem, UnicornItem } from "./ReligionSettings";
Expand Down Expand Up @@ -580,13 +581,19 @@ export class TimeControlSettings extends SettingsSection {
}

for (const [name, item] of objectEntries(settings.resources)) {
subject.resources[name] = {
checkForReset: item.enabled,
stockForReset: item.stock,
consume: 0,
enabled: false,
stock: 0,
};
if (isNil(subject.resources[name])) {
subject.resources[name] = {
checkForReset: item.enabled,
stockForReset: item.stock,
consume: 0,
enabled: false,
stock: 0,
};
continue;
}

mustExist(subject.resources[name]).checkForReset = item.enabled;
mustExist(subject.resources[name]).stockForReset = item.stock;
}
}

Expand Down
18 changes: 18 additions & 0 deletions packages/userscript/source/options/WorkshopSettings.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { objectEntries } from "../tools/Entries";
import { isNil, mustExist } from "../tools/Maybe";
import { GamePage, ResourceCraftable } from "../types";
import { WorkshopManager } from "../WorkshopManager";
import { ResourceSettings } from "./ResourcesSettings";
Expand Down Expand Up @@ -114,6 +115,23 @@ export class WorkshopSettings extends SettingsSectionTrigger {
};
}

for (const [name, item] of objectEntries(settings.resources)) {
if (isNil(subject.resources[name])) {
subject.resources[name] = {
checkForReset: false,
stockForReset: 0,
consume: item.consume,
enabled: item.enabled,
stock: item.stock,
};
continue;
}

mustExist(subject.resources[name]).consume = item.consume;
mustExist(subject.resources[name]).enabled = item.enabled;
mustExist(subject.resources[name]).stock = item.stock;
}

subject.items["toggle-upgrades"] = settings.unlockUpgrades.enabled;
for (const [name, item] of objectEntries(settings.unlockUpgrades.items)) {
subject.items[`toggle-upgrade-${name}` as const] = item.enabled;
Expand Down

0 comments on commit 899e6bb

Please sign in to comment.