-
+
- {{ $t('train-stats.title') }}
+ {{ $t('station-stats.title') }}
-
- -
-
- {{ $t('station-stats.u-factor') }}
- (?):
-
-
- {{ uFactor.toFixed(2) }}
-
-
- -
- {{ $t('station-stats.avg-timetable-count') }}
- {{ avgTimetableCount.toFixed(2) }}
-
- -
- {{ $t('station-stats.single-track-count') }}
- {{ trackCount.oneWay }} ({{ trackCount.oneWayElectric }} ⚡)
-
- -
- {{ $t('station-stats.double-track-count') }}
- {{ trackCount.twoWay }}
- ({{ trackCount.twoWayElectric }} ⚡)
-
- -
- {{ $t('station-stats.cross-sceneries') }}
- {{ trackCount.crossTrack }} ({{ trackCount.crossTrackElectric }} ⚡)
-
- -
- {{ $t('station-stats.open-spawns') }} {{ spawnCount.passenger }} - PAS /
- {{ spawnCount.freight }} - TOW / {{ spawnCount.loco }} - LUZ /
- {{ spawnCount.all }} - ALL
-
-
+
+
+
+
+ {{ $t('station-stats.u-factor') }}
+ (?):
+
+
+
+
+ {{ uFactor >= 0 ? uFactor.toFixed(2) : '---' }}
+
+
+
+
+
+ {{ $t('station-stats.avg-timetable-count') }}
+
+ {{ avgTimetableCount >= 0 ? avgTimetableCount.toFixed(2) : '---' }}
+
+
+
+
+
+
+
+
+ {{ $t('station-stats.single-track-count') }}
+
+ {{ trackCount.oneWay }} ({{ trackCount.oneWayElectric }} ⚡)
+
+
+
+
+ {{ $t('station-stats.double-track-count') }}
+
+ {{ trackCount.twoWay }} ({{ trackCount.twoWayElectric }} ⚡)
+
+
+
+
+ {{ $t('station-stats.cross-sceneries') }}
+
+ {{ trackCount.crossTrack }} ({{ trackCount.crossTrackElectric }} ⚡)
+
+
+
+
+
+
+
+
+ {{ $t('station-stats.open-spawns-all') }}
+
+ {{ spawnCount.all }}
+
+
+
+
+ {{ $t('station-stats.open-spawns-pas') }}
+
+ {{ spawnCount.passenger }}
+
+
+
+
+ {{ $t('station-stats.open-spawns-freight') }}
+
+ {{ spawnCount.freight }}
+
+
+
+
+ {{ $t('station-stats.open-spawns-loco') }}
+
+ {{ spawnCount.loco }}
+
+
+
+
+
+
{{ $t('station-stats.no-stats') }}
(showDropdown = false)">
@@ -86,9 +134,9 @@ export default defineComponent({
},
calculateFactorStyle() {
- if (this.uFactor == 0) return '';
+ if (this.uFactor <= 0) return '';
- const norm = this.uFactor == 0 ? 1 : Math.max(Math.min(this.uFactor / 2, 1), 0);
+ const norm = Math.max(Math.min(this.uFactor / 2, 1), 0);
const lerp = 120 * norm;
return `color: hsl(${lerp}, 100%, 60%)`;
@@ -105,7 +153,7 @@ export default defineComponent({
(train) => train.region == this.mainStore.region.id
);
- return activeDispatchers.length != 0 ? activeTrains.length / activeDispatchers.length : 0;
+ return activeDispatchers.length != 0 ? activeTrains.length / activeDispatchers.length : -1;
},
avgTimetableCount() {
@@ -118,7 +166,7 @@ export default defineComponent({
return acc;
}, 0);
- if (regionSceneries.length == 0) return 0;
+ if (regionSceneries.length == 0) return -1;
return timetableCountSum / regionSceneries.length;
},
@@ -135,6 +183,8 @@ export default defineComponent({
(acc, st) => {
const { routes } = st.generalInfo!;
+ acc.all++;
+
if (
routes.single.filter((r) => !r.isInternal).length > 0 &&
routes.double.filter((r) => !r.isInternal).length > 0
@@ -163,7 +213,8 @@ export default defineComponent({
twoWay: 0,
twoWayElectric: 0,
crossTrack: 0,
- crossTrackElectric: 0
+ crossTrackElectric: 0,
+ all: 0
}
);
},
@@ -194,12 +245,14 @@ export default defineComponent({
@use '../../styles/badge';
@use '../../styles/responsive';
-h1 img {
+h1.stats-title img {
vertical-align: text-bottom;
}
-h3 {
- margin: 0.5em 0;
+.badges-container {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 0.5em;
}
.u-factor {
@@ -220,19 +273,9 @@ h3 {
}
}
-ul.stats-list {
- list-style: disc;
- padding-left: 1em;
- margin-top: 1em;
-
- & > li {
- margin: 0.25em 0;
- }
-}
-
-@include responsive.smallScreen{
- .filter-button span {
- display: none;
+@include responsive.smallScreen {
+ h1.stats-title {
+ text-align: center;
}
}
diff --git a/src/locales/en.json b/src/locales/en.json
index 6ee0c7e..0824002 100644
--- a/src/locales/en.json
+++ b/src/locales/en.json
@@ -331,13 +331,19 @@
"active-filters": "Attention! You got active filters!"
},
"station-stats": {
+ "title": "ONLINE SCENERIES STATS",
+ "stats-button": "STATISTICS",
"u-factor": "U-factor",
"u-factor-tooltip": "(?) Current server traffic factor (driver count divided by dispatcher count)",
- "avg-timetable-count": "Average count of scenery timetables:",
+ "avg-timetable-count": "TT average:",
"single-track-count": "Single track routes:",
"double-track-count": "Double track routes:",
- "cross-sceneries": "Cross-track sceneries (1-track <-> 2-track)",
- "open-spawns": "Open spawns:"
+ "cross-sceneries": "Cross-track sceneries",
+ "open-spawns-all": "Spawns (ALL):",
+ "open-spawns-pas": "Spawns (PAS):",
+ "open-spawns-freight": "Spawns (TOW):",
+ "open-spawns-loco": "Spawns (LOK):",
+ "no-stats": "No statistics available for the current region!"
},
"trains": {
"no-trains": "No trains to show here!",
@@ -393,7 +399,7 @@
},
"train-stats": {
"stats-button": "STATISTICS",
- "title": "STATISTICS ONLINE",
+ "title": "ONLINE TRAINS STATS",
"timetable-count": "ACTIVE TIMETABLES",
"avg-speed": "AVG SPEED",
"avg-timetable": "AVG TIMETABLE",
diff --git a/src/locales/pl.json b/src/locales/pl.json
index 0168d5d..7ba777f 100644
--- a/src/locales/pl.json
+++ b/src/locales/pl.json
@@ -327,13 +327,19 @@
"active-filters": "Uwaga! Masz obecnie aktywne filtry!"
},
"station-stats": {
+ "title": "STATYSTYKI AKTYWNYCH SCENERII",
+ "stats-button": "STATYSTYKI",
"u-factor": "Współczynnik Ugla",
"u-factor-tooltip": "(?) Współczynnik ruchu na serwerze (liczba maszynistów online dzielona na liczbę dyżurnych ruchu)",
- "avg-timetable-count": "Średnia liczba rozkładów jazdy na sceneriach:",
+ "avg-timetable-count": "Średnia RJ:",
"single-track-count": "Szlaki jednotorowe:",
"double-track-count": "Szlaki dwutorowe:",
- "cross-sceneries": "Scenerie przejściowe (1-tor <-> 2-tor):",
- "open-spawns": "Otwarte spawny:"
+ "cross-sceneries": "Scenerie przejściowe:",
+ "open-spawns-all": "Spawny (ALL):",
+ "open-spawns-pas": "Spawny (PAS):",
+ "open-spawns-freight": "Spawny (TOW):",
+ "open-spawns-loco": "Spawny (LOK):",
+ "no-stats": "Brak statystyk online dla wybranego serwera!"
},
"trains": {
"no-trains": "Brak pociągów do wyświetlenia!",
@@ -380,7 +386,7 @@
},
"train-stats": {
"stats-button": "STATYSTYKI",
- "title": "STATYSTYKI ONLINE",
+ "title": "STATYSTYKI AKTYWNYCH POCIĄGÓW",
"timetable-count": "AKTYWNE RJ",
"avg-speed": "ŚREDNIA PRĘDKOŚĆ",
"avg-timetable": "ŚREDNI RJ",