From 435cfb3b3fbee5eef2d5f1129b5f6a321fdf362f Mon Sep 17 00:00:00 2001 From: Spythere Date: Wed, 15 Jan 2025 16:23:26 +0100 Subject: [PATCH] chore: added offline players indicators in the scenery view --- .../SceneryInfo/SceneryInfoUserList.vue | 28 +++++++++++++++++-- src/locales/en.json | 4 ++- src/locales/pl.json | 4 ++- src/store/mainStore.ts | 14 +++++----- 4 files changed, 38 insertions(+), 12 deletions(-) diff --git a/src/components/SceneryView/SceneryInfo/SceneryInfoUserList.vue b/src/components/SceneryView/SceneryInfo/SceneryInfoUserList.vue index c67f1b5..866abeb 100644 --- a/src/components/SceneryView/SceneryInfo/SceneryInfoUserList.vue +++ b/src/components/SceneryView/SceneryInfo/SceneryInfoUserList.vue @@ -19,8 +19,25 @@ :data-status="status" > - {{ train.trainNo }} - {{ train.driverName }} + {{ train.trainNo }} + + {{ train.driverName }} + + + + @@ -66,8 +83,13 @@ export default defineComponent({ this.station?.generalInfo?.checkpoints.includes(stop.stopNameRAW) ); + const sceneryName = + train.currentStationName.indexOf('.sc') != -1 + ? train.currentStationName.split(' ').slice(0, -1).join(' ') + : train.currentStationName; + const status = stop - ? getTrainStopStatus(stop, train.currentStationName, this.onlineScenery!.name) + ? getTrainStopStatus(stop, sceneryName, this.onlineScenery!.name) : 'no-timetable'; return { diff --git a/src/locales/en.json b/src/locales/en.json index 6db9416..bdb3c22 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -48,7 +48,9 @@ "no-result": "No results for current search!", "migration-warning": "Stacjownik services will be unavailable 2/06/2022 between 1-3am (CEST time) due to the migration of API hostings!", "migration-confirm": "Roger that!", - "offline": "App is in the offline mode!" + "offline": "App is in the offline mode!", + "tooltip-driver-offline": "Driver is offline", + "tooltip-scenery-offline": "Offline ride through the scenery" }, "footer": { "discord": "Stacjownik Discord server" diff --git a/src/locales/pl.json b/src/locales/pl.json index ef7c914..3c40037 100644 --- a/src/locales/pl.json +++ b/src/locales/pl.json @@ -45,7 +45,9 @@ "loading": "Pobieranie danych...", "error": "Wystąpił problem z załadowaniem danych!", "no-result": "Brak wyników o podanych kryteriach!", - "offline": "Aplikacja w trybie offline!" + "offline": "Aplikacja w trybie offline!", + "tooltip-driver-offline": "Maszynista offline", + "tooltip-scenery-offline": "Jazda offline przez scenerię" }, "footer": { "discord": "Serwer Discord Stacjownika" diff --git a/src/store/mainStore.ts b/src/store/mainStore.ts index 3e75f2d..deb899c 100644 --- a/src/store/mainStore.ts +++ b/src/store/mainStore.ts @@ -43,7 +43,7 @@ export const useMainStore = defineStore('mainStore', { sceneriesTrains.clear(); return (apiStore.activeData?.trains ?? []) - .filter((train) => train.timetable || train.online) + .filter((train) => train.timetable || train.lastSeen >= Date.now() - 60000) .map((train) => { const stock = train.stockString.split(';'); const locoType = stock ? stock[0] : train.stockString; @@ -112,13 +112,15 @@ export const useMainStore = defineStore('mainStore', { : undefined } as Train; + const stationNameKey = train.currentStationName.indexOf('.sc') != -1 ? train.currentStationName.split(' ').slice(0, -1).join(' ') : train.currentStationName; + // Sceneries trains map - if (sceneriesTrains.has(train.currentStationName)) { - sceneriesTrains.set(train.currentStationName, [ - ...sceneriesTrains.get(train.currentStationName)!, + if (sceneriesTrains.has(stationNameKey)) { + sceneriesTrains.set(stationNameKey, [ + ...sceneriesTrains.get(stationNameKey)!, trainObj ]); - } else sceneriesTrains.set(train.currentStationName, [trainObj]); + } else sceneriesTrains.set(stationNameKey, [trainObj]); // Checkpoints trains map if (trainObj.timetableData) { @@ -216,7 +218,6 @@ export const useMainStore = defineStore('mainStore', { return acc; }, [] as ActiveScenery[]); - const referenceTimestamp = Date.now(); const onlineActiveSceneries = apiStore.activeData?.activeSceneries.reduce((list, scenery) => { @@ -229,7 +230,6 @@ export const useMainStore = defineStore('mainStore', { : scenery.dispatcherStatus > 5 ? scenery.dispatcherStatus : null; - list.push({ name: scenery.stationName,