Merge pull request #123 from Spythere/development

Development
This commit is contained in:
Spythere
2025-02-05 14:32:24 +01:00
committed by GitHub
4 changed files with 169 additions and 168 deletions
@@ -23,7 +23,7 @@
<div class="g-separator"></div> <div class="g-separator"></div>
<div class="stock-specs"> <div class="timetable-specs">
<span class="badge specs-badge" v-if="timetable.authorName"> <span class="badge specs-badge" v-if="timetable.authorName">
<span>{{ $t('journal.dispatcher-name') }}</span> <span>{{ $t('journal.dispatcher-name') }}</span>
<span>{{ timetable.authorName }}</span> <span>{{ timetable.authorName }}</span>
@@ -254,6 +254,7 @@ export default defineComponent({
} }
} }
.timetable-specs,
.stock-specs { .stock-specs {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
@@ -300,7 +301,7 @@ hr {
} }
@include smallScreen() { @include smallScreen() {
.stock-specs { .timetable-specs {
justify-content: center; justify-content: center;
} }
+8 -10
View File
@@ -187,17 +187,12 @@ import { defineComponent } from 'vue';
import { useMainStore } from '../../store/mainStore'; import { useMainStore } from '../../store/mainStore';
import { useApiStore } from '../../store/apiStore'; import { useApiStore } from '../../store/apiStore';
import { Train } from '../../typings/common'; import { Train } from '../../typings/common';
import speedLimits from '../../data/speedLimits.json';
import styleMixin from '../../mixins/styleMixin'; import styleMixin from '../../mixins/styleMixin';
import trainInfoMixin from '../../mixins/trainInfoMixin'; import trainInfoMixin from '../../mixins/trainInfoMixin';
import trainCategoryMixin from '../../mixins/trainCategoryMixin'; import trainCategoryMixin from '../../mixins/trainCategoryMixin';
import ProgressBar from '../Global/ProgressBar.vue'; import ProgressBar from '../Global/ProgressBar.vue';
import StockList from '../Global/StockList.vue'; import StockList from '../Global/StockList.vue';
import { speedLimits } from '../../data/speedLimits';
export type SpeedLimitLocoType = keyof typeof speedLimits;
const isCompatibleLoco = (locoType: string): locoType is SpeedLimitLocoType =>
locoType in speedLimits;
export default defineComponent({ export default defineComponent({
mixins: [trainInfoMixin, styleMixin, trainCategoryMixin], mixins: [trainInfoMixin, styleMixin, trainCategoryMixin],
@@ -239,19 +234,22 @@ export default defineComponent({
const headLoco = this.train.stockList[0].slice(0, this.train.stockList[0].indexOf('-')); const headLoco = this.train.stockList[0].slice(0, this.train.stockList[0].indexOf('-'));
if (!isCompatibleLoco(headLoco)) return vehicleMaxSpeed; if (speedLimits[headLoco] === undefined) return vehicleMaxSpeed;
if (this.train.stockList.length == 1) return speedLimits[headLoco]['none']; if (this.train.stockList.length == 1) return speedLimits[headLoco]['none'];
const speedTable = speedLimits[headLoco][isPassenger ? 'passenger' : 'cargo']; const speedTable: Record<string, number> =
speedLimits[headLoco][isPassenger ? 'passenger' : 'cargo'];
if (!speedTable) return vehicleMaxSpeed; if (!speedTable) return vehicleMaxSpeed;
let massKey = Object.keys(speedTable).findLast( const massKey = Object.keys(speedTable).findLast(
(massKey) => this.train.mass >= Number(massKey) (massKey) => this.train.mass >= Number(massKey)
); );
return massKey ? ((speedTable as any)[massKey] as number) : vehicleMaxSpeed; const massMaxSpeed = massKey ? speedTable[massKey] : Infinity;
return Math.min(massMaxSpeed, vehicleMaxSpeed);
}, },
journalRouteLocation() { journalRouteLocation() {
return { return {
-156
View File
@@ -1,156 +0,0 @@
{
"EU07": {
"passenger": {
"650000": 125
},
"cargo": {
"2000000": 70
},
"none": 110
},
"4E": {
"passenger": {
"650000": 125
},
"cargo": {
"2000000": 70
},
"none": 110
},
"EU07E": {
"passenger": {
"650000": 125
},
"cargo": {
"2000000": 70
},
"none": 110
},
"EP07": {
"passenger": {
"650000": 125
},
"cargo": null,
"none": 110
},
"EP08": {
"passenger": {
"650000": 140
},
"cargo": null,
"none": 110
},
"EP09": {
"passenger": {
"650000": 160
},
"cargo": null,
"none": 160
},
"ET22": {
"passenger": {
"650000": 125
},
"cargo": {
"1200000": 100,
"3100000": 70
},
"none": 125
},
"201E": {
"passenger": {
"650000": 125
},
"cargo": {
"1200000": 100,
"3100000": 70
},
"none": 125
},
"ET41": {
"passenger": {
"700000": 125
},
"cargo": {
"4000000": 70,
"3500000": 80,
"2500000": 90,
"2000000": 100
},
"none": 110
},
"SM42": {
"passenger": {
"95000": 90,
"200000": 80,
"300000": 70,
"450000": 60,
"750000": 50,
"1130000": 40,
"1720000": 30,
"2400000": 20
},
"cargo": {
"95000": 90,
"200000": 80,
"300000": 70,
"450000": 60,
"750000": 50,
"1130000": 40,
"1720000": 30,
"2400000": 20
},
"none": 90
},
"M62": {
"passenger": {
"500000": 100,
"800000": 80,
"1200000": 60,
"2000000": 40,
"3000000": 20
},
"cargo": {
"500000": 100,
"800000": 80,
"1200000": 60,
"2000000": 40,
"3000000": 20
},
"none": 100
},
"ST44": {
"passenger": {
"500000": 100,
"800000": 80,
"1200000": 60,
"2000000": 40,
"3000000": 20
},
"cargo": {
"500000": 100,
"800000": 80,
"1200000": 60,
"2000000": 40,
"3000000": 20
},
"none": 100
},
"CTLR4C": {
"passenger": {
"500000": 100,
"800000": 80,
"1200000": 60,
"2000000": 40,
"3000000": 20
},
"cargo": {
"500000": 100,
"800000": 80,
"1200000": 60,
"2000000": 40,
"3000000": 20
},
"none": 100
}
}
+158
View File
@@ -0,0 +1,158 @@
export const speedLimits: Record<string, any> = {
EU07: {
passenger: {
'650000': 125
},
cargo: {
'2000000': 70
},
none: 110
},
'4E': {
passenger: {
'650000': 125
},
cargo: {
'2000000': 70
},
none: 110
},
EU07E: {
passenger: {
'650000': 125
},
cargo: {
'2000000': 70
},
none: 110
},
EP07: {
passenger: {
'650000': 125
},
cargo: null,
none: 110
},
EP08: {
passenger: {
'650000': 140
},
cargo: null,
none: 110
},
EP09: {
passenger: {
'650000': 160
},
cargo: null,
none: 160
},
ET22: {
passenger: {
'650000': 125
},
cargo: {
'1200000': 100,
'1800000': 90,
'2500000': 80,
'3100000': 70
},
none: 100
},
'201E': {
passenger: {
'650000': 125
},
cargo: {
'1200000': 100,
'3100000': 70
},
none: 125
},
ET41: {
passenger: {
'700000': 125
},
cargo: {
'4000000': 70,
'3500000': 80,
'2500000': 90,
'2000000': 100
},
none: 110
},
SM42: {
passenger: {
'95000': 90,
'200000': 80,
'300000': 70,
'450000': 60,
'750000': 50,
'1130000': 40,
'1720000': 30,
'2400000': 20
},
cargo: {
'95000': 90,
'200000': 80,
'300000': 70,
'450000': 60,
'750000': 50,
'1130000': 40,
'1720000': 30,
'2400000': 20
},
none: 90
},
M62: {
passenger: {
'500000': 100,
'800000': 80,
'1200000': 60,
'2000000': 40,
'3000000': 20
},
cargo: {
'500000': 100,
'800000': 80,
'1200000': 60,
'2000000': 40,
'3000000': 20
},
none: 100
},
ST44: {
passenger: {
'500000': 100,
'800000': 80,
'1200000': 60,
'2000000': 40,
'3000000': 20
},
cargo: {
'500000': 100,
'800000': 80,
'1200000': 60,
'2000000': 40,
'3000000': 20
},
none: 100
},
CTLR4C: {
passenger: {
'500000': 100,
'800000': 80,
'1200000': 60,
'2000000': 40,
'3000000': 20
},
cargo: {
'500000': 100,
'800000': 80,
'1200000': 60,
'2000000': 40,
'3000000': 20
},
none: 100
}
};