diff --git a/public/images/icon-creator.png b/public/images/icon-creator.png new file mode 100755 index 0000000..80f402e Binary files /dev/null and b/public/images/icon-creator.png differ diff --git a/src/components/JournalView/JournalDispatchers/JournalDispatcherEntry.vue b/src/components/JournalView/JournalDispatchers/JournalDispatcherEntry.vue index 027ee19..bb6e8ab 100644 --- a/src/components/JournalView/JournalDispatchers/JournalDispatcherEntry.vue +++ b/src/components/JournalView/JournalDispatchers/JournalDispatcherEntry.vue @@ -18,7 +18,20 @@ + + {{ entry.dispatcherName }} + + + + @@ -122,6 +135,7 @@ import styleMixin from '../../../mixins/styleMixin'; import { useApiStore } from '../../../store/apiStore'; import StationStatusBadge from '../../Global/StationStatusBadge.vue'; import FlagIcon from '../../Global/FlagIcon.vue'; +import { isCreator } from '../../../utils/userUtils'; export default defineComponent({ props: { @@ -134,7 +148,7 @@ export default defineComponent({ emits: ['toggleShowExtraInfo'], data() { - return { regions, apiStore: useApiStore() }; + return { regions, apiStore: useApiStore(), isCreator }; }, methods: { diff --git a/src/components/JournalView/JournalTimetables/EntryGeneral.vue b/src/components/JournalView/JournalTimetables/EntryGeneral.vue index b8383c9..5517a04 100644 --- a/src/components/JournalView/JournalTimetables/EntryGeneral.vue +++ b/src/components/JournalView/JournalTimetables/EntryGeneral.vue @@ -59,7 +59,17 @@ + {{ timetable.driverName }} + + +
-

+

props.playerName ? apiStore.donatorsData.includes(props.playerName) : false ); +const isPlayerCreator = computed(() => (props.playerName ? isCreator(props.playerName) : false)); + const activeDispatches = computed(() => { if (!props.playerName) return []; if (!apiStore.activeData || !apiStore.activeData.activeSceneries) return []; diff --git a/src/components/SceneryView/SceneryInfo/SceneryInfoDispatcher.vue b/src/components/SceneryView/SceneryInfo/SceneryInfoDispatcher.vue index 4e1f221..adce247 100644 --- a/src/components/SceneryView/SceneryInfo/SceneryInfoDispatcher.vue +++ b/src/components/SceneryView/SceneryInfo/SceneryInfoDispatcher.vue @@ -9,9 +9,16 @@ + + {{ onlineScenery.dispatcherName }} + {{ onlineScenery.dispatcherName }} @@ -51,6 +58,7 @@ import StationStatusBadge from '../../Global/StationStatusBadge.vue'; import { ActiveScenery } from '../../../typings/common'; import { useApiStore } from '../../../store/apiStore'; import FlagIcon from '../../Global/FlagIcon.vue'; +import { isCreator } from '../../../utils/userUtils'; export default defineComponent({ mixins: [styleMixin, dateMixin, routerMixin], @@ -58,7 +66,8 @@ export default defineComponent({ data() { return { - apiStore: useApiStore() + apiStore: useApiStore(), + isCreator }; }, diff --git a/src/components/StationsView/StationTable.vue b/src/components/StationsView/StationTable.vue index decb834..8dc6345 100644 --- a/src/components/StationsView/StationTable.vue +++ b/src/components/StationsView/StationTable.vue @@ -131,7 +131,16 @@ + creator icon +  {{ station.onlineInfo.dispatcherName }} + + + @@ -353,6 +362,7 @@ import { ActiveSorter, HeadIdsType, headIconsIds, headIds } from './typings'; import { filterStations, sortStations } from './utils'; import { getLanguageNameById } from '../../utils/languageUtils'; import FlagIcon from '../Global/FlagIcon.vue'; +import { isCreator } from '../../utils/userUtils'; export default defineComponent({ emits: ['toggleDonationCard'], @@ -363,8 +373,9 @@ export default defineComponent({ data: () => ({ headIconsIds, headIds, + scrollTop: 0, getChangedFilters, - scrollTop: 0 + isCreator }), setup() { @@ -622,8 +633,8 @@ tbody tr { .station-dispatcher-name { img { - max-width: 1.35em; - vertical-align: text-bottom; + max-height: 1.3em; + vertical-align: text-top; } } diff --git a/src/components/Tooltip/CreatorTooltip.vue b/src/components/Tooltip/CreatorTooltip.vue new file mode 100644 index 0000000..93daec6 --- /dev/null +++ b/src/components/Tooltip/CreatorTooltip.vue @@ -0,0 +1,36 @@ + + + + + diff --git a/src/components/Tooltip/DonatorTooltip.vue b/src/components/Tooltip/DonatorTooltip.vue index fdbb7db..dca04f7 100644 --- a/src/components/Tooltip/DonatorTooltip.vue +++ b/src/components/Tooltip/DonatorTooltip.vue @@ -1,7 +1,7 @@ @@ -20,11 +20,6 @@ export default defineComponent({ diff --git a/src/components/Tooltip/Tooltip.vue b/src/components/Tooltip/Tooltip.vue index 743a114..5c8c38a 100644 --- a/src/components/Tooltip/Tooltip.vue +++ b/src/components/Tooltip/Tooltip.vue @@ -8,12 +8,13 @@ import { defineComponent } from 'vue'; import { useTooltipStore } from '../../store/tooltipStore'; import DonatorTooltip from './DonatorTooltip.vue'; +import CreatorTooltip from './CreatorTooltip.vue'; import VehiclePreviewTooltip from './VehiclePreviewTooltip.vue'; import BaseTooltip from './BaseTooltip.vue'; import SpawnsTooltip from './SpawnsTooltip.vue'; import UsersTooltip from './UsersTooltip.vue'; import HtmlTooltip from './HtmlTooltip.vue'; -import TrainInfoTooltip from "./TrainInfoTooltip.vue"; +import TrainInfoTooltip from './TrainInfoTooltip.vue'; const BOX_PADDING_PX = 20; @@ -25,7 +26,8 @@ export default defineComponent({ SpawnsTooltip, UsersTooltip, HtmlTooltip, - TrainInfoTooltip + TrainInfoTooltip, + CreatorTooltip }, data() { diff --git a/src/components/TrainsView/TrainInfo.vue b/src/components/TrainsView/TrainInfo.vue index f3f62e0..68a9585 100644 --- a/src/components/TrainsView/TrainInfo.vue +++ b/src/components/TrainsView/TrainInfo.vue @@ -56,12 +56,21 @@ + creator icon +  {{ train.driverName }} + + + - {{ train.driverName }}  donator diamond icon +  {{ train.driverName }} {{ train.driverName }} @@ -204,6 +213,7 @@ import trainCategoryMixin from '../../mixins/trainCategoryMixin'; import ProgressBar from '../Global/ProgressBar.vue'; import StockList from '../Global/StockList.vue'; import FlagIcon from '../Global/FlagIcon.vue'; +import { isCreator } from '../../utils/userUtils'; export default defineComponent({ mixins: [trainInfoMixin, styleMixin, trainCategoryMixin], @@ -222,7 +232,8 @@ export default defineComponent({ data() { return { store: useMainStore(), - apiStore: useApiStore() + apiStore: useApiStore(), + isCreator }; }, diff --git a/src/locales/en.json b/src/locales/en.json index e08168a..90d0729 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -42,7 +42,8 @@ "action-paypal": "DONATE WITH PAYPAL", "action-buycoffee": "BUY ME A COFFEE!", "dispatcher-message": "Dispatcher supporting the Stacjownik project!", - "driver-message": "Driver supporting the Stacjownik project!" + "driver-message": "Driver supporting the Stacjownik project!", + "creator-message": "Creator of the Stacjownik project" }, "warnings": { "TWR": "Train with high risk cargo", diff --git a/src/locales/pl.json b/src/locales/pl.json index 95c424b..0d9a638 100644 --- a/src/locales/pl.json +++ b/src/locales/pl.json @@ -42,7 +42,8 @@ "action-paypal": "PRZELEJ PAYPALEM", "action-buycoffee": "POSTAW KAWĘ!", "dispatcher-message": "Dyżurny wspierający projekt Stacjownika!", - "driver-message": "Maszynista wspierający projekt Stacjownika!" + "driver-message": "Maszynista wspierający projekt Stacjownika!", + "creator-message": "Twórca projektu Stacjownik" }, "warnings": { "TWR": "Pociąg z towarami niebezpiecznymi wysokiego ryzyka", diff --git a/src/store/tooltipStore.ts b/src/store/tooltipStore.ts index aaca5f7..a389fd8 100644 --- a/src/store/tooltipStore.ts +++ b/src/store/tooltipStore.ts @@ -9,7 +9,8 @@ export const tooltipKeys = [ 'SpawnsTooltip', 'UsersTooltip', 'HtmlTooltip', - 'TrainInfoTooltip' + 'TrainInfoTooltip', + 'CreatorTooltip' ] as const; export type TooltipType = (typeof tooltipKeys)[number]; diff --git a/src/styles/_global.scss b/src/styles/_global.scss index 9103bec..e7dd277 100644 --- a/src/styles/_global.scss +++ b/src/styles/_global.scss @@ -217,6 +217,19 @@ ul { text-shadow: #f050ff 0 0 10px; } + &--creator { + color: var(--clr-primary); + color: transparent; + + background: var(--clr-primary); + background: linear-gradient(90deg, gold 30%, #ffffff 70%); + background-clip: text; + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + + text-shadow: gold 0 0 10px; + } + &--discord { color: var(--clr-donator); color: transparent; diff --git a/src/utils/userUtils.ts b/src/utils/userUtils.ts new file mode 100644 index 0000000..7161eb0 --- /dev/null +++ b/src/utils/userUtils.ts @@ -0,0 +1,3 @@ +export function isCreator(name: string) { + return /(spythere|kowbojyt)/.test(name.toLowerCase()); +}