diff --git a/src/components/TabSystem/TabSystem.vue b/src/components/TabSystem/TabSystem.vue index 7aea14d71..83806bd16 100644 --- a/src/components/TabSystem/TabSystem.vue +++ b/src/components/TabSystem/TabSystem.vue @@ -13,12 +13,13 @@ import { FileTab } from './FileTab' import { Settings } from '@/libs/settings/Settings' import { TabManager } from './TabManager' import { computed, ComputedRef, Ref, ref, ShallowRef, shallowRef } from 'vue' -import { ProjectManager } from '@/libs/project/ProjectManager' +import { ProjectManager, useCurrentProject } from '@/libs/project/ProjectManager' import { BedrockProject } from '@/libs/project/BedrockProject' import { useTabActions } from '@/libs/actions/tab/TabActionManager' import { ActionManager } from '@/libs/actions/ActionManager' import { useTranslate } from '@/libs/locales/Locales' import { Tab } from './Tab' +import { IPackType } from 'mc-project-core' const props = defineProps({ instance: { @@ -137,6 +138,30 @@ function dragEnd(event: DragEvent) { TabSystem.draggingTab.value = null dragLevel = 0 } + +const currentProject = useCurrentProject() + +const currentProjectPackDefinitions: Ref = computed(() => { + if (!currentProject.value) return [] + if (!(currentProject.value instanceof BedrockProject)) return [] + + return currentProject.value.packDefinitions.filter((pack: IPackType) => { + if (!currentProject.value) return false + if (!currentProject.value.config) return false + + return Object.keys(currentProject.value.config.packs).includes(pack.id) + }) +}) + +function useTabColor(path: string | null) { + return computed(() => { + if(!currentProject.value) return 'text' + + const packId = currentProject.value.getPackFromPath(path) + + return currentProjectPackDefinitions.value.find(pack => pack.id === packId)?.color ?? 'text' + }) +}