From f00edc16fce84822b4eb9468e6c7814fbb85806e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roman=20Jaro=C5=A1?= Date: Mon, 10 Feb 2025 14:56:27 +0100 Subject: [PATCH] Add new feature: Transparent background when moving --- CzechQuests.lua | 3 ++ CzechQuests_Mainline.toc | 2 +- Quests/Data/classic_era/3.lua | 6 ++-- Quests/Data/retail/1.lua | 12 ++++---- Quests/Frames/OptionsFrame.lua | 42 ++++++++++++++++++------- Quests/Frames/TranslationFrame.lua | 49 +++++++++++++++++++++--------- Quests/Quests.lua | 11 +++++++ sync.sh | 2 +- 8 files changed, 90 insertions(+), 37 deletions(-) diff --git a/CzechQuests.lua b/CzechQuests.lua index 7e3e66d..842d717 100644 --- a/CzechQuests.lua +++ b/CzechQuests.lua @@ -41,6 +41,9 @@ local function OnEvent(self, event, addonName, ...) if not CzechQuestsAddon_Store.config.TRANSLATION_FRAME_TEXT_FONT_FAMILY then CzechQuestsAddon_Store.config.TRANSLATION_FRAME_TEXT_FONT_FAMILY = 'frizquadratatt_cz.ttf'; end + if not CzechQuestsAddon_Store.config.TRANSLATION_FRAME_TEXTURE_ALPHA then + CzechQuestsAddon_Store.config.TRANSLATION_FRAME_TEXTURE_ALPHA = 80; + end -- Initialize Options CzechQuestsAddon:InitializeOptions() diff --git a/CzechQuests_Mainline.toc b/CzechQuests_Mainline.toc index 6218f73..fda52fa 100755 --- a/CzechQuests_Mainline.toc +++ b/CzechQuests_Mainline.toc @@ -2,7 +2,7 @@ ## Title: CzechQuests ## Notes: Addon displays texts of quests in Czech language as tooltip ## Author: Roman Jaroš -## Version: 0.2.10 +## Version: 0.2.11 ## SavedVariables: CzechQuestsAddon_Store CzechQuests.lua diff --git a/Quests/Data/classic_era/3.lua b/Quests/Data/classic_era/3.lua index eac89f3..bf1ccd5 100644 --- a/Quests/Data/classic_era/3.lua +++ b/Quests/Data/classic_era/3.lua @@ -2031,7 +2031,7 @@ CzechQuestsAddon.data.quest[4131] = { titleFemale = "", objectiveMale = "Prohledej tábory Woodpaw Gnoll v jižním Feralasu a hledej důkazy o kurýrových věcech nebo o něm samotném.", objectiveFemale = "", - descriptionMale = "Naši 'přátelé' Woodpaw možná nakonec Raschala dostali, ale něco mi říká, že se tak nestalo. Přesto jsou nejlepším místem, kde začít hledat.\n\nKéž bych měl jasnější představu o tom, co dělat, ale jediné, co teď mám, je Prohledejte tábory Woodpaw - jděte. Vím, že gnollové si nechávají předměty, které vyrabují, a bojují o ně; možná narazili na batohy, o kterých se zmiňoval Quint. Při předchozím prohledávání jsem neriskoval čelní souboj, ale s Quintovou vizí na tohle říkám, že se do nich pustím.", + descriptionMale = "Naši 'přátelé' Woodpaw možná nakonec Raschala dostali, ale něco mi říká, že se tak nestalo. Přesto jsou nejlepším místem, kde začít hledat.\n\nKéž bych měl jasnější představu o tom, co dělat, ale jediné, co teď mám, je 'Search the Woodpaw camps - go.' Vím, že gnollové si nechávají předměty, které vyrabují, a bojují o ně; možná narazili na batohy, o kterých se zmiňoval Quint. Při předchozím prohledávání jsem neriskoval čelní souboj, ale s Quintovou vizí na tohle říkám, že se do nich pustím.", descriptionFemale = "", progressMale = "", progressFemale = "", @@ -6351,8 +6351,8 @@ CzechQuestsAddon.data.quest[882] = { titleFemale = "", objectiveMale = "Přines Ishamuhaleův tesák Jornovi do tábora Taurajo.", objectiveFemale = "", - descriptionMale = "Ishamuhale, oštěpař, je nejzuřivějším dravcem Barren. Neloví pro zábavu ani pro potravu. Loví, protože lov je jeho vášní. Zabíjí, protože je to jeho přirozenost.\n\nA ty se o jeho povaze dozvíš, , protože tvá cesta nyní vede po stopách Ishamuhaleho s drápy.\n\nZačni lovit. Zabij jeho oblíbenou kořist, zhevu, a pak její mršinu přines k mrtvému stromu severozápadně od Ratchetu. Ishamuhale ucítí pach mršiny a bude k ní přitahován.\n\nBuď připraven, až přijde.", - descriptionFemale = "Ishamuhale, oštěpař, je nejzuřivějším dravcem Barren. Neloví pro zábavu ani pro potravu. Loví, protože lov je jeho vášní. Zabíjí, protože je to jeho přirozenost.\n\nA ty se o jeho povaze dozvíš, , protože tvá cesta nyní vede po stopách Ishamuhaleho s drápy.\n\nZačni lov. Zabij jeho oblíbenou kořist, zhevu, a pak její mršinu přines k mrtvému stromu severozápadně od Ratchetu. Ishamuhale ucítí pach mršiny a bude k ní přitahován.\n\nBuď připravená, až přijde.", + descriptionMale = "Ishamuhale, Speartooth, je nejzuřivějším sunscale raptorem Barrens. Neloví pro zábavu ani pro potravu. Loví, protože lov je jeho vášní. Zabíjí, protože je to jeho přirozenost.\n\nA ty se o jeho povaze dozvíš, , protože tvá cesta nyní vede po stopách Ishamuhale.\n\nZačni lovit. Zabij jeho oblíbenou kořist, zhevu, a pak její mršinu přines k mrtvému stromu severozápadně od Ratchet. Ishamuhale ucítí pach mršiny a bude k ní přitahován.\n\nBuď připraven, až přijde.", + descriptionFemale = "Ishamuhale, Speartooth, je nejzuřivějším sunscale raptorem Barrens. Neloví pro zábavu ani pro potravu. Loví, protože lov je jeho vášní. Zabíjí, protože je to jeho přirozenost.\n\nA ty se o jeho povaze dozvíš, , protože tvá cesta nyní vede po stopách Ishamuhale.\n\nZačni lov. Zabij jeho oblíbenou kořist, zhevu, a pak její mršinu přines k mrtvému stromu severozápadně od Ratchet. Ishamuhale ucítí pach mršiny a bude k ní přitahován.\n\nBuď připravená, až přijde.", progressMale = ", porazil jsi Ishamuhale?", progressFemale = ", porazila jsi Ishamuhale?", completionMale = "Tento tesák je pouhým symbolem, ale to, co představuje, je hluboké.\n\nSíla Ishamuhale je v tobě, . Kéž ji používáš s rozvahou. To je tvé břemeno.\n\nTo je tvá čest.", diff --git a/Quests/Data/retail/1.lua b/Quests/Data/retail/1.lua index 0aa05d2..d9a9c63 100644 --- a/Quests/Data/retail/1.lua +++ b/Quests/Data/retail/1.lua @@ -4791,8 +4791,8 @@ CzechQuestsAddon.data.quest[83762] = { titleFemale = "", objectiveMale = "Pomoz Lady Jaine Proudmoore zneškodnit manovou bombu v Breathing Pit.", objectiveFemale = "Pomoz Lady Jaina Proudmoore zneškodnit manovou bombu v Breathing Pitu.", - descriptionMale = "Přesně toho jsem se obával. Thalen Songweaverovy poznámky o manové bombě, kterou vymyslel, aby zdevastoval Theramore, byly střeženy v Dalaranu. O tom věděl jen málokdo. Tvrdil jsem, že by měly být zničeny. Ale jiní tvrdili, že pokud takovou bombu znovu vytvoříme, budeme je potřebovat k jejímu zneškodnění. A nyní jsou tyto poznámky problémem i řešením. Naštěstí jsem ty poznámky četl, . Provedu tě zneškodněním manové bomby.", - descriptionFemale = "Přesně toho jsem se obával. Thalen Songweaverovy notes o manové bombě, kterou vymyslel, aby zdevastoval Theramore, byly střeženy v Dalaranu. O tom věděl jen málokdo. Tvrdil jsem, že by měly být zničeny. Ale jiní tvrdili, že pokud takovou bombu znovu vytvoříme, budeme je potřebovat k jejímu zneškodnění. A nyní jsou tyto poznámky problémem i řešením. Naštěstí jsem ty poznámky četl, . Provedu tě zneškodněním manové bomby.", + descriptionMale = "Přesně toho jsem se obávala. Thalen Songweaverovy poznámky o manové bombě, kterou vymyslel, aby zdevastoval Theramore, byly střeženy v Dalaranu. O tom věděl jen málokdo. Tvrdila jsem, že by měly být zničeny. Ale jiní tvrdili, že pokud takovou bombu znovu vytvoříme, budeme je potřebovat k jejímu zneškodnění. A nyní jsou tyto poznámky problémem i řešením. Naštěstí jsem ty poznámky četla, . Provedu tě zneškodněním manové bomby.", + descriptionFemale = "", progressMale = "", progressFemale = "", completionMale = "", @@ -4839,7 +4839,7 @@ CzechQuestsAddon.data.quest[83553] = { titleFemale = "", objectiveMale = "Setkej se s Kalecgosem na Mourning Rise na Isle of Dorn.", objectiveFemale = "", - descriptionMale = "Obávám se, že naše 'vyčištění' Dalaran sahá daleko od břehů Isle of Dorn. Při pokusech najít tě jsem tento ostrov mnohokrát obkroužil. Během svého letu jsem vycítil magii mnoha známých předmětů - předmětů, které se dříve nacházely v Dalaranu. Nebezpečných předmětů. Někdo nebo něco je odneslo, kdo ví kam. Musíme tyto předměty najít, než přijdou k úhoně nevinní kolemjdoucí. Následuj mě.", + descriptionMale = "Obávám se, že naše 'vyčištění' Dalaranu sahá daleko od břehů Isle of Dorn. Při pokusech najít tě jsem tento ostrov mnohokrát obkroužil. Během svého letu jsem vycítil magii mnoha známých předmětů – předmětů, které se dříve nacházely v Dalaranu. Nebezpečných předmětů. Někdo nebo něco je odneslo, kdo ví kam. Musíme tyto předměty najít, než přijdou k úhoně nevinní kolemjdoucí. Následuj mě.", descriptionFemale = "Obávám se, že naše 'vyčištění' Dalaranu sahá daleko od břehů ostrova Isle of Dorn. Při pokusech najít tě jsem tento ostrov mnohokrát obkroužil. Během svého letu jsem vycítil magii mnoha známých předmětů - předmětů, které se dříve nacházely v Dalaranu. Nebezpečných předmětů. Někdo nebo něco je odneslo, kdo ví kam. Musíme tyto předměty najít, než přijdou k úhoně nevinní kolemjdoucí. Následuj mě.", progressMale = "", progressFemale = "", @@ -4851,7 +4851,7 @@ CzechQuestsAddon.data.quest[83764] = { titleFemale = "", objectiveMale = "Najdi nebezpečné artefakty roztroušené v Breathing Pit a znič je.", objectiveFemale = "", - descriptionMale = "Některé z relikvií, které nerubiáni nyní vlastní, byly uloženy v pečlivě navržených trezorech v Dalaranu. Tak nebezpečné a mocné jsou. Když jsou tyto trezory pryč, jediným způsobem, jak můžeme jednat, je zničit je. Zpětně se zdá, že bylo velkou chybou shromáždit tolik mocných artefaktů na jednom místě - i když tím místem byl Dalaran. Nikomu jinému bych tento úkol nesvěřil, . Najdi a znič ty artefakty.", + descriptionMale = "Některé z relikvií, které nerubiáni nyní vlastní, byly uloženy v pečlivě navržených trezorech v Dalaranu. Tak nebezpečné a mocné jsou. Když jsou tyto trezory pryč, jediným způsobem, jak můžeme jednat, je zničit je. Zpětně se zdá, že bylo velkou chybou shromáždit tolik mocných artefaktů na jednom místě – i když tím místem byl Dalaran. Nikomu jinému bych tento úkol nesvěřila, . Najdi a znič ty artefakty.", descriptionFemale = "", progressMale = "", progressFemale = "", @@ -7011,8 +7011,8 @@ CzechQuestsAddon.data.quest[83743] = { titleFemale = "", objectiveMale = "Vydej se do Azj-Kahetu a setkej se s Lady Jaina Proudmoore.", objectiveFemale = "Vydej se do Azj-Kahet a setkej se s lady Jainou Proudmoore.", - descriptionMale = "Několik mágů přišlo, ale... Čekal jsem, že jich na Aethasovu výzvu zareaguje víc. Ale možná to bylo jen zbožné přání. Potřebujeme více pomoci navzdory tomu, co jste s Kalecgosem udělali na Mourning Rise. Kromě Kel'Thuzadova přívěšku byly kořistí koboldů artefakty střední síly. Mezitím se objevily zprávy o mocných magických předmětech, které pronikly do Azj-Kahet, což znamená, že nerubiáni museli nejdřív vydrancovat Dalaran! Musíme tyto artefakty najít dříve, než budou použity proti nám.", - descriptionFemale = "Několik mágů přišlo, ale... Čekala jsem, že jich na Aethasův výzvu zareaguje víc. Ale možná to bylo jen zbožné přání. Potřebujeme více pomoci navzdory tomu, co jste s Kalecgosem udělali na Mourning Rise. Kromě Kel'Thuzadova přívěšku byly kořistí koboldů artefakty střední síly. Mezitím se objevily zprávy o mocných magických předmětech, které pronikly do Azj-Kahet, což znamená, že nerubiáni museli nejdřív vydrancovat Dalaran! Musíme tyto artefakty najít dříve, než budou použity proti nám.", + descriptionMale = "Několik mágů přišlo, ale... Čekala jsem, že jich na Aethasovu výzvu k akci zareaguje víc. Ale možná to bylo jen zbožné přání. Potřebujeme více pomoci navzdory tomu, co jste s Kalecgosem udělali na Mourning Rise. Kromě Kel'Thuzadova přívěsku byly kořistí koboldů artefakty střední síly. Mezitím se objevily zprávy o mocných magických předmětech, které pronikly do Azj-Kahet, což znamená, že nerubiáni museli nejdřív vydrancovat Dalaran! Musíme tyto artefakty najít dříve, než budou použity proti nám.", + descriptionFemale = "Několik mágů přišlo, ale... Čekala jsem, že jich na Aethasovu výzvu zareaguje víc. Ale možná to bylo jen zbožné přání. Potřebujeme více pomoci navzdory tomu, co jsi s Kalecgosem udělala na Mourning Rise. Kromě Kel'Thuzadova pendantu byly kořistí koboldů artefakty střední síly. Mezitím se objevily zprávy o mocných magických předmětech, které pronikly do Azj-Kahet, což znamená, že nerubiáni museli nejdřív vydrancovat Dalaran! Musíme tyto artefakty najít dříve, než budou použity proti nám.", progressMale = "", progressFemale = "", completionMale = "", diff --git a/Quests/Frames/OptionsFrame.lua b/Quests/Frames/OptionsFrame.lua index 5d17ec9..d020139 100755 --- a/Quests/Frames/OptionsFrame.lua +++ b/Quests/Frames/OptionsFrame.lua @@ -14,17 +14,19 @@ function CzechQuestsAddon:InitializeOptions() ) Settings.CreateCheckbox(CzechQuestsAddon.optionsFrame, debugCheckbox) - -- Add DARK mode checkbox - local darkModeCheckbox = Settings.RegisterAddOnSetting( - CzechQuestsAddon.optionsFrame, - "CzechQuestsAddon__DARK_MODE", - "DARK_MODE", - CzechQuestsAddon_Store.config, - type(CzechQuestsAddon_Store.config.DARK_MODE), - "Use dark mode", - CzechQuestsAddon_Store.config.DARK_MODE - ) - Settings.CreateCheckbox(CzechQuestsAddon.optionsFrame, darkModeCheckbox) + if (WOW_PROJECT_ID == WOW_PROJECT_CLASSIC) then + -- Add DARK mode checkbox + local darkModeCheckbox = Settings.RegisterAddOnSetting( + CzechQuestsAddon.optionsFrame, + "CzechQuestsAddon__DARK_MODE", + "DARK_MODE", + CzechQuestsAddon_Store.config, + type(CzechQuestsAddon_Store.config.DARK_MODE), + "Use dark mode", + CzechQuestsAddon_Store.config.DARK_MODE + ) + Settings.CreateCheckbox(CzechQuestsAddon.optionsFrame, darkModeCheckbox) + end -- define FontOptions local function GetFontOptions() @@ -132,6 +134,24 @@ function CzechQuestsAddon:InitializeOptions() textFontSizeSliderOptions:SetLabelFormatter(MinimalSliderWithSteppersMixin.Label.Right); Settings.CreateSlider(CzechQuestsAddon.optionsFrame, textFontSizeSlider, textFontSizeSliderOptions) + -- Add slider for change secondary header font size + local textureAlphaSlider = Settings.RegisterProxySetting( + CzechQuestsAddon.optionsFrame, + "CzechQuestsAddon__TRANSLATION_FRAME_TEXTURE_ALPHA", + type(CzechQuestsAddon_Store.config.TRANSLATION_FRAME_TEXTURE_ALPHA), + "Texture transparency", + CzechQuestsAddon_Store.config.TRANSLATION_FRAME_TEXTURE_ALPHA, + function() + return CzechQuestsAddon_Store.config.TRANSLATION_FRAME_TEXTURE_ALPHA + end, + function(value) + CzechQuestsAddon_Store.config.TRANSLATION_FRAME_TEXTURE_ALPHA = value + end + ) + local textureAlphaSliderOptions = Settings.CreateSliderOptions(10, 100, 10) + textureAlphaSliderOptions:SetLabelFormatter(MinimalSliderWithSteppersMixin.Label.Right); + Settings.CreateSlider(CzechQuestsAddon.optionsFrame, textureAlphaSlider, textureAlphaSliderOptions) + -- Store it into Addon options Settings.RegisterAddOnCategory(CzechQuestsAddon.optionsFrame) end diff --git a/Quests/Frames/TranslationFrame.lua b/Quests/Frames/TranslationFrame.lua index b1f7b39..6d2a929 100755 --- a/Quests/Frames/TranslationFrame.lua +++ b/Quests/Frames/TranslationFrame.lua @@ -9,18 +9,9 @@ function CzechQuestsAddon:CreateTranslationFrame() -- Background Parchment texture frame.texture = frame:CreateTexture(nil, "BACKGROUND", nil, -1); - frame.texture:SetAllPoints(true); + frame.texture:SetAllPoints(true) frame.texture:SetHorizTile(true) - -- Apply correct texture for wow version - if (WOW_PROJECT_ID == WOW_PROJECT_CLASSIC) then - frame.texture:SetTexture("Interface/QUESTFRAME/QuestBG"); - frame.texture:SetTexCoord(0, .58, 0.005, 0.66) - else - frame.texture:SetTexture("Interface/QUESTFRAME/QuestBackgroundParchment"); - CzechQuestsAddon:SetTextureFromSettings(frame) - end - frame.primaryHeader = CzechQuestsAddon:CreateTranslationFont( frame, "CzechQuestTranslationPrimaryHeader", @@ -46,6 +37,9 @@ function CzechQuestsAddon:CreateTranslationFrame() CzechQuestsAddon_Store.config.TRANSLATION_FRAME_TEXT_FONT_SIZE ) + -- Apply correct texture for wow version + CzechQuestsAddon:SetTextureFromSettings(frame) + return frame; end @@ -67,6 +61,14 @@ end function CzechQuestsAddon:SetTextureFromSettings(frame) if (WOW_PROJECT_ID == WOW_PROJECT_CLASSIC) then + -- setup default + frame.texture:SetTexture("Interface/QUESTFRAME/QuestBG"); + frame.texture:SetTexCoord(0, .58, 0.005, 0.66) + frame.primaryHeader:SetTextColor(0, 0, 0, 1) + frame.secondaryHeader:SetTextColor(0, 0, 0, 1) + frame.primaryText:SetTextColor(0, 0, 0, 1) + frame.secondaryText:SetTextColor(0, 0, 0, 1) + if CzechQuestsAddon_Store.config.DARK_MODE then frame:SetBackdropColor(0, 0, 0, 1) frame.texture:SetColorTexture(0, 0, 0, 1) @@ -76,12 +78,26 @@ function CzechQuestsAddon:SetTextureFromSettings(frame) frame.secondaryText:SetTextColor(255, 255, 255, 1) end else - -- TODO add DARK MODE support for retail + -- setup default + frame.texture:SetTexture("Interface/QUESTFRAME/QuestBackgroundParchment"); + frame.texture:SetTexCoord(0, .01, 0, 0.4) + frame.primaryHeader:SetTextColor(0, 0, 0, 1) + frame.secondaryHeader:SetTextColor(0, 0, 0, 1) + frame.primaryText:SetTextColor(0, 0, 0, 1) + frame.secondaryText:SetTextColor(0, 0, 0, 1) + -- Read CVar from settings to setup same parchment as Quest frame - if C_CVar.GetCVar("questTextContrast") == "0" then - frame.texture:SetTexCoord(0, .01, 0, 0.4) -- Parchment (brown) - else - frame.texture:SetTexCoord(0, .01, .4, .8) -- Parchment (white) + if C_CVar.GetCVar("questTextContrast") == "1" then -- Brown + frame.texture:SetTexCoord(0, .01, .4, .8) + elseif C_CVar.GetCVar("questTextContrast") == "2" + or C_CVar.GetCVar("questTextContrast") == "3" then -- Gray + frame.texture:SetColorTexture(255, 255, 255, 1) + elseif C_CVar.GetCVar("questTextContrast") == "4" then -- Black + frame.texture:SetColorTexture(0, 0, 0, 1) + frame.primaryHeader:SetTextColor(255, 255, 255, 1) + frame.secondaryHeader:SetTextColor(255, 255, 255, 1) + frame.primaryText:SetTextColor(255, 255, 255, 1) + frame.secondaryText:SetTextColor(255, 255, 255, 1) end end end @@ -107,4 +123,7 @@ function CzechQuestsAddon:UpdateTranslationFrameFontSettings() CzechQuestsAddon_Store.config.TRANSLATION_FRAME_TEXT_FONT_SIZE, nil ) + CzechQuestsAddon.translationFrame.texture:SetAlpha( + CzechQuestsAddon_Store.config.TRANSLATION_FRAME_TEXTURE_ALPHA / 100 + ) end \ No newline at end of file diff --git a/Quests/Quests.lua b/Quests/Quests.lua index 6643378..e6b33fc 100755 --- a/Quests/Quests.lua +++ b/Quests/Quests.lua @@ -240,6 +240,8 @@ function CzechQuestsAddon:InitializeTranslations() CzechQuestsAddon.translationFrame:RegisterEvent("QUEST_FINISHED") CzechQuestsAddon.translationFrame:RegisterEvent("QUEST_DETAIL") CzechQuestsAddon.translationFrame:RegisterEvent("ITEM_TEXT_READY") + CzechQuestsAddon.translationFrame:RegisterEvent("PLAYER_STARTED_MOVING") + CzechQuestsAddon.translationFrame:RegisterEvent("PLAYER_STOPPED_MOVING") -- Preparation for eventually show translation when hover quest in quest tracker for retail --if (WOW_PROJECT_ID == WOW_PROJECT_MAINLINE) then @@ -268,5 +270,14 @@ function CzechQuestsAddon:InitializeTranslations() if (event == "ITEM_TEXT_READY") then CzechQuestsAddon:ShowQuestItemTranslation() end + + if event == "PLAYER_STARTED_MOVING" then + CzechQuestsAddon.translationFrame.texture:SetAlpha( + CzechQuestsAddon_Store.config.TRANSLATION_FRAME_TEXTURE_ALPHA / 100 + ) + elseif event == "PLAYER_STOPPED_MOVING" then + CzechQuestsAddon.translationFrame.texture:SetAlpha(1) + end + end) end \ No newline at end of file diff --git a/sync.sh b/sync.sh index aa99e82..ebfb728 100644 --- a/sync.sh +++ b/sync.sh @@ -13,7 +13,7 @@ wow_destiny_folder="classic_era" dest_folder="/Applications/World of Warcraft/_${wow_destiny_folder}_/Interface/AddOns/CzechQuests" fswatch -o "$src_folder" | while read -r change; do - rsync -avu --delete "$src_folder" "$dest_folder" --exclude={'.*','*.png','*.sh','*.md','Quests/Data/**'} + rsync -avu --delete "$src_folder" "$dest_folder" --exclude={'.*','*.png','*.sh','*.md','Quests/Data/**','downloader/**'} rsync -au --delete "$src_folder/Quests/Data/$wow_source_folder/" "$dest_folder/Quests/Data/" cp "$src_folder/Quests/Data/other.lua" "$dest_folder/Quests/Data/" done \ No newline at end of file