From 623d1c05bf1f014a3cfb5f1c2c1af48f58cbebd6 Mon Sep 17 00:00:00 2001 From: Sebastien Riviere Date: Sun, 10 Aug 2025 18:18:25 +0200 Subject: [PATCH] Improved zone selection --- traque-back/zone_manager.js | 17 +++++- traque-front/app/admin/parameters/page.js | 8 +-- .../components/admin/gameSettings.jsx | 34 ++++++------ .../components/admin/polygonZoneMap.jsx | 52 +++++++++++++------ 4 files changed, 75 insertions(+), 36 deletions(-) diff --git a/traque-back/zone_manager.js b/traque-back/zone_manager.js index ecebf60..26cd2aa 100644 --- a/traque-back/zone_manager.js +++ b/traque-back/zone_manager.js @@ -168,7 +168,9 @@ export default { isRunning: false, zones: [], // A zone has to be connected space that doesn't contain an earth pole currentZone: { id: 0, timeoutId: null, endDate: null }, + zoneType: "polygon", settings: defaultPolygonSettings, + settingsToZones: polygonSettingsToZones, start() { this.isRunning = true; @@ -213,13 +215,26 @@ export default { }, changeSettings(settings) { - const zones = polygonSettingsToZones(settings); + const zones = this.settingsToZones(settings); if (!zones) return false; this.zones = zones; this.settings = settings; this.zoneBroadcast(); return true; }, + + changeZoneType(type) { + if (this.zoneType == type) return; + if (type == "circle") { + this.zoneType = "circle"; + this.settings = defaultCircleSettings; + this.settingsToZones = circleSettingsToZones; + } else if (type == "polygon") { + this.zoneType = "polygon"; + this.settings = defaultPolygonSettings; + this.settingsToZones = polygonSettingsToZones; + } + }, zoneBroadcast() { const zone = { diff --git a/traque-front/app/admin/parameters/page.js b/traque-front/app/admin/parameters/page.js index 8e39b6f..58e8e44 100644 --- a/traque-front/app/admin/parameters/page.js +++ b/traque-front/app/admin/parameters/page.js @@ -1,6 +1,5 @@ "use client"; import GameSettings from "@/components/admin/gameSettings"; -import PenaltySettings from "@/components/admin/penaltySettings"; import { useAdminConnexion } from "@/context/adminConnexionContext"; import dynamic from "next/dynamic"; @@ -13,12 +12,13 @@ export default function AdminPage() { useProtect(); return ( -
+
- - +
+ +
); } \ No newline at end of file diff --git a/traque-front/components/admin/gameSettings.jsx b/traque-front/components/admin/gameSettings.jsx index 8c02dc7..3f0dfe4 100644 --- a/traque-front/components/admin/gameSettings.jsx +++ b/traque-front/components/admin/gameSettings.jsx @@ -24,25 +24,27 @@ export default function GameSettings() { } return ( -
-

Other settings

-
-

Waiting message

-