diff --git a/Dockerfile b/Dockerfile index e5e01590e..3fb9420a8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -77,7 +77,7 @@ ENV GIT_COMMIT="$GIT_COMMIT" RUN <<'EOF' tee /usr/local/bin/start.sh #!/bin/sh if [ "$DOMAIN" = openfront.dev ] && [ "$SUBDOMAIN" != main ]; then - exec timeout 25h /usr/bin/supervisord -c /etc/supervisor/conf.d/supervisord.conf + exec timeout 720h /usr/bin/supervisord -c /etc/supervisor/conf.d/supervisord.conf else exec /usr/bin/supervisord -c /etc/supervisor/conf.d/supervisord.conf fi diff --git a/index.html b/index.html index b196749fd..c5c1a622e 100644 --- a/index.html +++ b/index.html @@ -343,7 +343,9 @@ + + diff --git a/resources/lang/en.json b/resources/lang/en.json index 5135cc399..887fb7cd6 100644 --- a/resources/lang/en.json +++ b/resources/lang/en.json @@ -703,6 +703,10 @@ "coordinate_grid_desc": "Toggle the alphanumeric grid overlay", "attacking_troops_overlay_label": "Attacking Troops Overlay", "attacking_troops_overlay_desc": "Show attacker vs defender troop counts on active front lines.", + "territory_border_mode_label": "Territory Borders", + "territory_border_mode_desc": "Select border rendering style (visual only)", + "renderer_label": "Renderer", + "renderer_desc": "Choose territory rendering backend. Auto uses WebGPU, then WebGL, then Classic.", "performance_overlay_label": "Performance Overlay", "performance_overlay_desc": "Toggle the performance overlay. When enabled, the performance overlay will be displayed. Press shift-D during game to toggle.", "easter_writing_speed_label": "Writing Speed Multiplier", diff --git a/src/client/InputHandler.ts b/src/client/InputHandler.ts index 1c12cf61b..b24671d96 100644 --- a/src/client/InputHandler.ts +++ b/src/client/InputHandler.ts @@ -193,6 +193,10 @@ export class TickMetricsEvent implements GameEvent { ) {} } +export class WebGPUComputeMetricsEvent implements GameEvent { + constructor(public readonly computeMs: number) {} +} + export class InputHandler { private lastPointerX: number = 0; private lastPointerY: number = 0; diff --git a/src/client/UserSettingModal.ts b/src/client/UserSettingModal.ts index 60d434dbf..fafb8e0e2 100644 --- a/src/client/UserSettingModal.ts +++ b/src/client/UserSettingModal.ts @@ -300,6 +300,24 @@ export class UserSettingModal extends BaseModal { this.requestUpdate(); } + private changeTerritoryBorderMode( + e: CustomEvent<{ value: number | string }>, + ) { + const rawValue = e.detail?.value; + const value = + typeof rawValue === "number" ? rawValue : parseInt(String(rawValue), 10); + if (!Number.isFinite(value)) return; + + this.userSettings.setInt("settings.territoryBorderMode", Math.round(value)); + this.requestUpdate(); + } + + private changeTerritoryRenderer(e: CustomEvent<{ value: number | string }>) { + const value = String(e.detail?.value ?? "auto"); + this.userSettings.setTerritoryRenderer(value); + this.requestUpdate(); + } + private toggleTerritoryPatterns() { this.userSettings.toggleTerritoryPatterns(); @@ -752,6 +770,35 @@ export class UserSettingModal extends BaseModal { > + + + +
@@ -51,7 +57,7 @@ export class SettingSelect extends LitElement {
+ ${TERRITORY_RENDERER_OPTIONS.map( + (option) => + html``, + )} + +
+ ${note ? html`
${note}
` : null} +
+ + `; + } +} diff --git a/src/client/graphics/layers/SettingsModal.ts b/src/client/graphics/layers/SettingsModal.ts index 5f747c6ba..658368279 100644 --- a/src/client/graphics/layers/SettingsModal.ts +++ b/src/client/graphics/layers/SettingsModal.ts @@ -174,6 +174,11 @@ export class SettingsModal extends LitElement implements Layer { this.requestUpdate(); } + private onToggleWebgpuDebugOverlayButtonClick() { + this.userSettings.toggleWebgpuDebug(); + this.requestUpdate(); + } + private onExitButtonClick() { // redirect to the home page window.location.href = "/"; @@ -526,6 +531,29 @@ export class SettingsModal extends LitElement implements Layer { + +