diff --git a/ElvUI_SLE/locales/english.lua b/ElvUI_SLE/locales/english.lua
index d7bc5a7..7f5e6e7 100755
--- a/ElvUI_SLE/locales/english.lua
+++ b/ElvUI_SLE/locales/english.lua
@@ -1,332 +1,333 @@
--- English localization file for enUS and enGB.
-local AceLocale = LibStub:GetLibrary("AceLocale-3.0");
-local L = AceLocale:NewLocale("ElvUI", "enUS", true);
-
-if not L then return; end
-
---General--
-L["Shadow & Light"] = true
-L["SLE_DESC"] = [=[This is an edit of ElvUI that adds some functionality to the original addon and changes some previously existed options.
-The edit doesn't change original files in any respect so you can freely disable it any time from your addon manager without any risk.]=]
-L["LFR Lockout"] = true
-L["Show/Hide LFR lockout info in the time datatext's tooltip."] = true
-L["PvP Auto Release"] = true
-L["Automatically release body when killed inside a battleground."] = true
-L["Errors in combat"] = true
-L["Show/hide error messages in combat."] = true
-L["Pet autocast corners"] = true
-L["Show/hide triangles in corners of autocastable buttons."] = true
-L["Loot History"] = true
-L["Auto hide"] = true
-L["Automaticaly hide Blizzard loot histroy frame when leaving the instance."] = true
-L["Sets alpha of loot histroy frame."] = true
-L["SLE_LOGIN_MSG"] = [=[You are using |cff1784d1Shadow & Light Edit|r version |cff1784d1%s%s|r for ElvUI.
-If you wish to use the original ElvUI addon, disable this edit's plugin in your Addons manager.
-Have a nice day.]=]
-L["Your version of ElvUI is older than recommended to use with Shadow & Light Edit. Please, download the latest version from tukui.org."] = true
-L["Reset All"] = true
-L["Reset all Shadow & Light options and movers to their defaults"] = true
-L["Reset these options to defaults"] = true
-
---Install--
-L["Shadow & Light Settings"] = true
-L["You can now choose if you what to use one of authors' set of options. This will change the positioning of most elements but also change a bunch of other options within ElvUI's config."] = true
-L["SLE_Install_Text2"] = [=[This step is optional and only to be used if you are wanting to use one of our configurations.
-|cffFF0000Warning:|r Please note that the authors' may or may not use any of the layout/theme you have selected as they may not have utilized the options.]=]
-L["Darth's Config"] = true
-L["Darth's Defaults Set"] = true
-L["Repooc's Config"] = true
-L["Repooc's Defaults Set"] = true
-L["Affinitii's Config"] = true
-L["Affinitii's Defaults Set"] = true
-
---Auras--
-L["Options for customizing auras near the minimap."] = true
-L["Caster Name"] = true
-L["Enabling this will show caster name in the buffs and debuff icons."] = true
-
---Backgroungds--
-L["Backgrounds"] = true
-L["Additional Background Panels"] = true
-L["BG_DESC"] = "Module for creating additional frames that can be used as backgrounds for anything."
-L["Bottom BG"] = true
-L["Left BG"] = true
-L["Right BG"] = true
-L["Actionbar BG"] = true
-L["Show/Hide this frame."] = true
-L["Sets width of the frame"] = true
-L["Sets height of the frame"] = true
-L["Sets X offset of the frame"] = true
-L["Sets Y offset of the frame"] = true
-L["Texture"] = true
-L["Set the texture to use in this frame. Requirements are the same as the chat textures."] = true
-L["Backdrop Template"] = true
-L["Change the template used for this backdrop."] = true
-L["Default"] = true
-L["Hide in Pet Batlle"] = true
-L["Show/Hide this frame during Pet Battles."] = true
-
---Character Frame Options
-L["CFO_DESC"] = "This section will added different options/features to the character sheet. Here you can show item level and durability of your items for a quick glance."
-L["Character Frame Options"] = true
-L['Font'] = true
-L["The font that the item level will use."] = true
-L["Set the font size that the item level will use."] = true
-L["Set the font outline that the item level will use."] = true
-L["The font that the item durability will use."] = true
-L["Set the font size that the item durability will use."] = true
-L["Set the font outline that the item durability will use."] = true
-
---Chat--
-L["Chat Options"] = true
-L["Chat Editbox History"] = true
-L["Amount of messages to save. Set to 0 to disable."] = true
-
---Datatexts--
-L["Bosses killed: "] = true
-L["You didn't select any instance to track."] = true
-L["This LFR isn't available for your level/gear."] = true
-L["SLE_AUTHOR_INFO"] = "Shadow & Light Edit by Darth Predator & Repooc"
-L["SLE_CONTACTS"] = [=[Bug reports, suggestions and other stuff accepted via:
-- Private Massage on TukUI.org to Darth Predator or Repooc
-- AddOn's page/ticket system on curse.com
-- Forums on tukui.org, Addons/Help section
-- AddOn's repo on github.com]=]
-L["DP_1"] = "DT Panel 1"
-L["DP_2"] = "DT Panel 2"
-L["DP_3"] = "DT Panel 3"
-L["DP_4"] = "DT Panel 4"
-L["DP_5"] = "DT Panel 5"
-L["DP_6"] = "DT Panel 6"
-L["Bottom_Panel"] = "Bottom Panel"
-L["Top_Center"] = "Top Panel"
-L["Left Chat"] = true
-L["Right Chat"] = true
-L["Datatext Panels"] = true
-L["Additional Datatext Panels"] = true
-L["DP_DESC"] = [=[Additional Datatext Panels.
-8 panels with 20 datatext points total and a dashboard with 4 status bars.
-You can't disable chat panels.]=]
-L["Dashboard"] = true
-L["Show/Hide dashboard."] = true
-L["Dashboard Panels Width"] = true
-L["Sets size of dashboard panels."] = true
-L["Show/Hide this panel."] = true
-L["Sets size of this panel"] = true
-L['Hide panel background'] = true
-L["Don't show this panel, only datatexts assinged to it"] = true
-L["Some datatexts that Shadow & Light are supplied with have settings that can be modified to alter the displayed information. Please use the dropdown box to select which datatext you would like to configure."] = true
-L["S&L Friends"] = true
-L["Show total friends in the datatext."] = true
-L["Show total guild members in the datatext."] = true
-L["These options are for modifing the Shadow & Light Friends datatext."] = true
-L["S&L Guild"] = true
-L["Show Totals"] = true
-L["Expand RealID"] = true
-L["Display realid with two lines to view broadcasts."] = true
-L["Hide Hints"] = true
-L["Hide the hints in the tooltip."] = true
-L["Autohide Delay:"] = true
-L["Adjust the tooltip autohide delay when mouse is no longer hovering of the datatext."] = true
-L["S&L Datatexts"] = true
-L["Datatext Options"] = true
-L["These options are for modifing the Shadow & Light Guild datatext."] = true
-L["Hide MOTD"] = true
-L["Hide the guild's Message of the Day in the tooltip."] = true
-L["Hide Guild Name"] = true
-L["Hide the guild's name in the tooltip."] = true
-L["Hide In Combat"] = true
-L["Will not show the tooltip while in combat."] = true
-
---Exp/Rep Bar--
-L["Xp-Rep Text"] = true
-L["Full value on Exp Bar"] = true
-L["Changes the way text is shown on exp bar."] = true
-L["Full value on Rep Bar"] = true
-L["Changes the way text is shown on rep bar."] = true
-L["Auto Track Reputation"] = true
-L["Automatically sets reputation tracking to the most recent reputation change."] = true
-
---Equip Manager--
-L['Equipment Manager'] = true
-L["EM_DESC"] = "This module provides different options to automatically change your equipment sets on spec change or entering certain locations."
-L['Spam Throttling'] = true
-L["Removes the spam from chat stating what talents were learned or unlearned during spec change."] = true
-L["Here you can choose what equipment sets to use in different situations."] = true
-L["Equip this set when switching to primary talents."] = true
-L["Equip this set when switching to secondary talents."] =true
-L["Equip this set after entering dungeons or raids."] = true
-L["Equip this set after entering battlegrounds or arens."] = true
-
-
---Farm--
-L['Farm'] = true
-L["FARM_DESC"] = [[Additional actionbars for the Sunsong Ranch containing seeds, tools and portals.
-They will appear only if you are on the Ranch or The Halfhill Market.]]
-L['Only active buttons'] = true
-L['Only show the buttons for the seeds, portals, tools you have in your bags.'] = true
-L["Seed Bars"] = true
-L["Auto Planting"] = true
-L["Automatically plant seeds to the nearest tilled soil if one is not already selected."] = true
-L["Drop Seeds"] = true
-L["Allow seeds to be destroyed from seed bars."] = true
-L["Quest Glow"] = true
-L["Show glowing border on seeds needed for any quest in your log."] = true
-L["Dock Buttons To"] = true
-L["Change the position from where seed bars will grow."] = true
-L["Bottom"] = true
-L["Top"] = true
-L["Farm Seed Bars"] = true
-L["Farm Tool Bar"] = true
-L["Farm Portal Bar"] = true
-L["Tilled Soil"] = true
-L['Right-click to drop the item.'] = true
-
---Import Section
-L["SLE_IMPORTS"] = "|cffFF0000Note:|r Use the filter imports with caution as these will overwrite any custom ones made!\nImporting a class filter will overwrite any modifications you have made to that class filter."
-L["Import Options"] = true
-L["Author Specific Imports"] = true
-L['Select Author'] = true
-L["Please be aware that importing any of the filters will require a reload of the UI for the settings to take effect.\nOnce you click a filter button, your screen will reload automatically."] = true
-L["Import"] = true
-L["This will import non class specific filters from this author."] = true
-L["This will import All Class specific filters from this author."] = true
-L['Import All'] = true
-
---Loot--
-L['Loot Announcer'] = true
-L["LOOT_DESC"] = [[This module will announce loot dropped when you open the loot window.
-This will work only if you are raid leadedr, assist or master looter or if you hold left control key while looting to manually announce the items in chat.]]
-L["Auto Announce"] = true
-L["Automatically announce in selected chat channel."] = true
-L["Loot Quality"] = true
-L["Set the minimum quality of an item to announce."] = true
-L["Announce loot to the selected channel."] = true
-L["Loot Dropped:"] = true
-
---Marks--
-L["Raid Marks"] = true
-L["Show/Hide raid marks."] = true
-L["Show only in instances"] = true
-L["Selecting this option will have the Raid Markers appear only while in a raid or dungeon."] = true
-L["Sets size of buttons"] = true --Also used in UI buttons
-L["Direction"] = true
-L["Change the direction of buttons growth from the skull marker"] = true
-
---Minimap--
-L["Minimap Options"] = true
-L['MINIMAP_DESC'] = "These options effect various aspects of the minimap. Some options may not work if you disable minimap in the General section of ElvUI config."
-L["Minimap Coordinates"] = true
-L['Coords Display'] = true
-L['Change settings for the display of the coordinates that are on the minimap.'] = true
-L["Coords Location"] = true
-L['This will determine where the coords are shown on the minimap.'] = true
-L['Bottom Corners'] = true
-L['Bottom Center'] = true
-L["Minimap Buttons"] = true
-L['Enable/Disable minimap button skinning.'] = true
-L['Anchor Setting'] = true
-L['Anchor mode for displaying the minimap buttons are skinned.'] = true
-L['Horizontal Bar'] = true
-L['Vertical Bar'] = true
-L['The size of the minimap buttons when not anchored to the minimap.'] = true
-L['Show minimap buttons on mouseover.'] = true
-
---Raid Utility--
-L["Raid Utility"] = true
-
---Skins--
-L["This options require ElvUI AddOnSkins pack to work."] = true
-L["Sets font size on DBM bars"] = true
-L["Ground"] = true
-L["Flying"] = true
-L["Flying & Ground"] = true
-L["Swimming"] = true
-
---UI buttons--
-L["UI Buttons"] = true
-L["Additional menu with useful buttons"] = true
-L["Show/Hide UI buttons."] = true
-L["Mouse over"] = true
-L["Show on mouse over."] = true
-L["Buttons position"] = true
-L["Layout for UI buttons."] = true
-L["Click to reload your interface"] = true
-L["Click to toggle config window"] = true
-L["Click to toggle the AddOn Manager frame (stAddOnManager, Ampere or ACP) you have enabled."] = true
-L["Click to toggle the Configuration/Option Window from the Bossmod (DXE, DBM or Bigwigs) you have enabled."] = true
-L["Click to unlock moving ElvUI elements"] = true
-L["ElvUI Config"] = true
-L["Move UI"] = true
-L["Reload UI"] = true
-L["AddOns Manager"] = true
-L["Boss Mod"] = true
-L["Click to toggle iFilger's config UI"] = true
-
---Unitframes--
-L["Additional unit frames options"] = true
-L["Options for customizing unit frames. Please don't change these setting when ElvUI's testing frames for bosses and arena teams are shown. That will make them invisible until retoggling."] = true
-L["Player Frame Indicators"] = true
-L["Combat Icon"] = true
-L["Show/Hide combat icon on player frame."] = true
-L["Combat Position"] = true
-L["Set the point to show combat icon"] = true
-L["Classbar Energy"] = true
-L["Show/hide the text with exact number of energy (Solar/Lunar or Demonic Fury) on your Classbar."] = true
-L["Classbar Offset"] = true
-L["This options will allow you to detach your classbar from player's frame and move it in other location."] = true
-L["Power Text Position"] = true
-L["Position power text on this bar of chosen frame"] = true
-
---Credits--
-L["ELVUI_SLE_CREDITS"] = "We would like to point out the following people for helping us create this addon with testing, coding, and other stuff."
-L["Submodules and Coding:"] = true
-L["ELVUI_SLE_CODERS"] = [=[Elv
-Tukz
-Affinitii
-Azilroka
-Blazeflack
-Boradan
-Camealion
-Omega1970
-Pvtschlag
-Sinaris
-Sortokk
-Swordyy
-]=]
-L["Other Support:"] = true
-L["ELVUI_SLE_MISC"] = [=[BuG - for being french lol
-TheSamaKutra
-The rest of TukUI community
-]=]
-
---Tutorials--
-L["To enable full values of health/power on unitframes in Shadow & Light add \":sl\" to the end of the health/power tag.\nExample: [health:current:sl]."] = true
-
---Movers--
-L["Pet Battle AB"] = true
-
-
---Changelog--
-L["Changelog"] = true
-L["CHANGE_LOG"] = [=[|cff1784d1v1.5|r
-- Some typos fixed
-- Datatext panels can now be transparent
-- Background frames no longer have offset options, now they have own movers
-- Background frames template doesn't require reload and is a profile based option
-- Movers created by S&L now are grouped by own categories just like in ElvUI itself (Note: background frames' movers are available ONLY in those groups)
-- Raid Marks now properly update setting on profile change
-- Raid Marks module now has an option to hide backdrop for it's main panel
-- Added Item Level overlay on item slots
-- Added Item Durability overlay on item slots
-- Added Equipment Manager per spec/zone
-- Added Farm module to make farming easier.
-- Added skinning of minimap buttons
-- Added coordinates to the minimap
-- LFR Lockout tracking in time datatext now has options to choose what daungeons you want to show there
-- Top datapanel info can now be changed by user
-- You will now receive chat message if someone in your group/raid has newer version of S&L
-- Add Affinitii's (Blood Legion) UI Layout
-- Darth's Layout Modified
-- Added loot announce function
+-- English localization file for enUS and enGB.
+local AceLocale = LibStub:GetLibrary("AceLocale-3.0");
+local L = AceLocale:NewLocale("ElvUI", "enUS", true);
+
+if not L then return; end
+
+--General--
+L["Shadow & Light"] = true
+L["SLE_DESC"] = [=[This is an edit of ElvUI that adds some functionality to the original addon and changes some previously existed options.
+The edit doesn't change original files in any respect so you can freely disable it any time from your addon manager without any risk.]=]
+L["LFR Lockout"] = true
+L["Show/Hide LFR lockout info in the time datatext's tooltip."] = true
+L["PvP Auto Release"] = true
+L["Automatically release body when killed inside a battleground."] = true
+L["Errors in combat"] = true
+L["Show/hide error messages in combat."] = true
+L["Pet autocast corners"] = true
+L["Show/hide triangles in corners of autocastable buttons."] = true
+L["Loot History"] = true
+L["Auto hide"] = true
+L["Automaticaly hide Blizzard loot histroy frame when leaving the instance."] = true
+L["Sets alpha of loot histroy frame."] = true
+L["SLE_LOGIN_MSG"] = [=[You are using |cff1784d1Shadow & Light Edit|r version |cff1784d1%s%s|r for ElvUI.
+If you wish to use the original ElvUI addon, disable this edit's plugin in your Addons manager.
+Have a nice day.]=]
+L["Your version of ElvUI is older than recommended to use with Shadow & Light Edit. Please, download the latest version from tukui.org."] = true
+L["Reset All"] = true
+L["Reset all Shadow & Light options and movers to their defaults"] = true
+L["Reset these options to defaults"] = true
+
+--Install--
+L["Shadow & Light Settings"] = true
+L["You can now choose if you what to use one of authors' set of options. This will change the positioning of most elements but also change a bunch of other options within ElvUI's config."] = true
+L["SLE_Install_Text2"] = [=[This step is optional and only to be used if you are wanting to use one of our configurations.
+|cffFF0000Warning:|r Please note that the authors' may or may not use any of the layout/theme you have selected as they may not have utilized the options.]=]
+L["Darth's Config"] = true
+L["Darth's Defaults Set"] = true
+L["Repooc's Config"] = true
+L["Repooc's Defaults Set"] = true
+L["Affinitii's Config"] = true
+L["Affinitii's Defaults Set"] = true
+
+--Auras--
+L["Options for customizing auras near the minimap."] = true
+L["Caster Name"] = true
+L["Enabling this will show caster name in the buffs and debuff icons."] = true
+
+--Backgroungds--
+L["Backgrounds"] = true
+L["Additional Background Panels"] = true
+L["BG_DESC"] = "Module for creating additional frames that can be used as backgrounds for anything."
+L["Bottom BG"] = true
+L["Left BG"] = true
+L["Right BG"] = true
+L["Actionbar BG"] = true
+L["Show/Hide this frame."] = true
+L["Sets width of the frame"] = true
+L["Sets height of the frame"] = true
+L["Sets X offset of the frame"] = true
+L["Sets Y offset of the frame"] = true
+L["Texture"] = true
+L["Set the texture to use in this frame. Requirements are the same as the chat textures."] = true
+L["Backdrop Template"] = true
+L["Change the template used for this backdrop."] = true
+L["Default"] = true
+L["Hide in Pet Batlle"] = true
+L["Show/Hide this frame during Pet Battles."] = true
+
+--Character Frame Options
+L["CFO_DESC"] = "This section will added different options/features to the character sheet. Here you can show item level and durability of your items for a quick glance."
+L["Character Frame Options"] = true
+L['Font'] = true
+L["The font that the item level will use."] = true
+L["Set the font size that the item level will use."] = true
+L["Set the font outline that the item level will use."] = true
+L["The font that the item durability will use."] = true
+L["Set the font size that the item durability will use."] = true
+L["Set the font outline that the item durability will use."] = true
+
+--Chat--
+L["Chat Options"] = true
+L["Chat Editbox History"] = true
+L["Amount of messages to save. Set to 0 to disable."] = true
+
+--Datatexts--
+L["Bosses killed: "] = true
+L["You didn't select any instance to track."] = true
+L["This LFR isn't available for your level/gear."] = true
+L["SLE_AUTHOR_INFO"] = "Shadow & Light Edit by Darth Predator & Repooc"
+L["SLE_CONTACTS"] = [=[Bug reports, suggestions and other stuff accepted via:
+- Private Massage on TukUI.org to Darth Predator or Repooc
+- AddOn's page/ticket system on curse.com
+- Forums on tukui.org, Addons/Help section
+- AddOn's repo on github.com]=]
+L["DP_1"] = "DT Panel 1"
+L["DP_2"] = "DT Panel 2"
+L["DP_3"] = "DT Panel 3"
+L["DP_4"] = "DT Panel 4"
+L["DP_5"] = "DT Panel 5"
+L["DP_6"] = "DT Panel 6"
+L["Bottom_Panel"] = "Bottom Panel"
+L["Top_Center"] = "Top Panel"
+L["Left Chat"] = true
+L["Right Chat"] = true
+L["Datatext Panels"] = true
+L["Additional Datatext Panels"] = true
+L["DP_DESC"] = [=[Additional Datatext Panels.
+8 panels with 20 datatext points total and a dashboard with 4 status bars.
+You can't disable chat panels.]=]
+L["Dashboard"] = true
+L["Show/Hide dashboard."] = true
+L["Dashboard Panels Width"] = true
+L["Sets size of dashboard panels."] = true
+L["Show/Hide this panel."] = true
+L["Sets size of this panel"] = true
+L['Hide panel background'] = true
+L["Don't show this panel, only datatexts assinged to it"] = true
+L["Some datatexts that Shadow & Light are supplied with have settings that can be modified to alter the displayed information. Please use the dropdown box to select which datatext you would like to configure."] = true
+L["S&L Friends"] = true
+L["Show total friends in the datatext."] = true
+L["Show total guild members in the datatext."] = true
+L["These options are for modifing the Shadow & Light Friends datatext."] = true
+L["S&L Guild"] = true
+L["Show Totals"] = true
+L["Expand RealID"] = true
+L["Display realid with two lines to view broadcasts."] = true
+L["Hide Hints"] = true
+L["Hide the hints in the tooltip."] = true
+L["Autohide Delay:"] = true
+L["Adjust the tooltip autohide delay when mouse is no longer hovering of the datatext."] = true
+L["S&L Datatexts"] = true
+L["Datatext Options"] = true
+L["These options are for modifing the Shadow & Light Guild datatext."] = true
+L["Hide MOTD"] = true
+L["Hide the guild's Message of the Day in the tooltip."] = true
+L["Hide Guild Name"] = true
+L["Hide the guild's name in the tooltip."] = true
+L["Hide In Combat"] = true
+L["Will not show the tooltip while in combat."] = true
+
+--Exp/Rep Bar--
+L["Xp-Rep Text"] = true
+L["Full value on Exp Bar"] = true
+L["Changes the way text is shown on exp bar."] = true
+L["Full value on Rep Bar"] = true
+L["Changes the way text is shown on rep bar."] = true
+L["Auto Track Reputation"] = true
+L["Automatically sets reputation tracking to the most recent reputation change."] = true
+
+--Equip Manager--
+L['Equipment Manager'] = true
+L["EM_DESC"] = "This module provides different options to automatically change your equipment sets on spec change or entering certain locations."
+L['Spam Throttling'] = true
+L["Removes the spam from chat stating what talents were learned or unlearned during spec change."] = true
+L["Here you can choose what equipment sets to use in different situations."] = true
+L["Equip this set when switching to primary talents."] = true
+L["Equip this set when switching to secondary talents."] =true
+L["Equip this set after entering dungeons or raids."] = true
+L["Equip this set after entering battlegrounds or arens."] = true
+
+
+--Farm--
+L['Farm'] = true
+L["FARM_DESC"] = [[Additional actionbars for the Sunsong Ranch containing seeds, tools and portals.
+They will appear only if you are on the Ranch or The Halfhill Market.]]
+L['Only active buttons'] = true
+L['Only show the buttons for the seeds, portals, tools you have in your bags.'] = true
+L["Seed Bars"] = true
+L["Auto Planting"] = true
+L["Automatically plant seeds to the nearest tilled soil if one is not already selected."] = true
+L["Drop Seeds"] = true
+L["Allow seeds to be destroyed from seed bars."] = true
+L["Quest Glow"] = true
+L["Show glowing border on seeds needed for any quest in your log."] = true
+L["Dock Buttons To"] = true
+L["Change the position from where seed bars will grow."] = true
+L["Bottom"] = true
+L["Top"] = true
+L["Farm Seed Bars"] = true
+L["Farm Tool Bar"] = true
+L["Farm Portal Bar"] = true
+L["Tilled Soil"] = true
+L['Right-click to drop the item.'] = true
+L["We are sorry, but you can't do this now. Try again after the end of this combat."] = true
+
+--Import Section
+L["SLE_IMPORTS"] = "|cffFF0000Note:|r Use the filter imports with caution as these will overwrite any custom ones made!\nImporting a class filter will overwrite any modifications you have made to that class filter."
+L["Import Options"] = true
+L["Author Specific Imports"] = true
+L['Select Author'] = true
+L["Please be aware that importing any of the filters will require a reload of the UI for the settings to take effect.\nOnce you click a filter button, your screen will reload automatically."] = true
+L["Import"] = true
+L["This will import non class specific filters from this author."] = true
+L["This will import All Class specific filters from this author."] = true
+L['Import All'] = true
+
+--Loot--
+L['Loot Announcer'] = true
+L["LOOT_DESC"] = [[This module will announce loot dropped when you open the loot window.
+This will work only if you are raid leadedr, assist or master looter or if you hold left control key while looting to manually announce the items in chat.]]
+L["Auto Announce"] = true
+L["Automatically announce in selected chat channel."] = true
+L["Loot Quality"] = true
+L["Set the minimum quality of an item to announce."] = true
+L["Announce loot to the selected channel."] = true
+L["Loot Dropped:"] = true
+
+--Marks--
+L["Raid Marks"] = true
+L["Show/Hide raid marks."] = true
+L["Show only in instances"] = true
+L["Selecting this option will have the Raid Markers appear only while in a raid or dungeon."] = true
+L["Sets size of buttons"] = true --Also used in UI buttons
+L["Direction"] = true
+L["Change the direction of buttons growth from the skull marker"] = true
+
+--Minimap--
+L["Minimap Options"] = true
+L['MINIMAP_DESC'] = "These options effect various aspects of the minimap. Some options may not work if you disable minimap in the General section of ElvUI config."
+L["Minimap Coordinates"] = true
+L['Coords Display'] = true
+L['Change settings for the display of the coordinates that are on the minimap.'] = true
+L["Coords Location"] = true
+L['This will determine where the coords are shown on the minimap.'] = true
+L['Bottom Corners'] = true
+L['Bottom Center'] = true
+L["Minimap Buttons"] = true
+L['Enable/Disable minimap button skinning.'] = true
+L['Anchor Setting'] = true
+L['Anchor mode for displaying the minimap buttons are skinned.'] = true
+L['Horizontal Bar'] = true
+L['Vertical Bar'] = true
+L['The size of the minimap buttons when not anchored to the minimap.'] = true
+L['Show minimap buttons on mouseover.'] = true
+
+--Raid Utility--
+L["Raid Utility"] = true
+
+--Skins--
+L["This options require ElvUI AddOnSkins pack to work."] = true
+L["Sets font size on DBM bars"] = true
+L["Ground"] = true
+L["Flying"] = true
+L["Flying & Ground"] = true
+L["Swimming"] = true
+
+--UI buttons--
+L["UI Buttons"] = true
+L["Additional menu with useful buttons"] = true
+L["Show/Hide UI buttons."] = true
+L["Mouse over"] = true
+L["Show on mouse over."] = true
+L["Buttons position"] = true
+L["Layout for UI buttons."] = true
+L["Click to reload your interface"] = true
+L["Click to toggle config window"] = true
+L["Click to toggle the AddOn Manager frame (stAddOnManager, Ampere or ACP) you have enabled."] = true
+L["Click to toggle the Configuration/Option Window from the Bossmod (DXE, DBM or Bigwigs) you have enabled."] = true
+L["Click to unlock moving ElvUI elements"] = true
+L["ElvUI Config"] = true
+L["Move UI"] = true
+L["Reload UI"] = true
+L["AddOns Manager"] = true
+L["Boss Mod"] = true
+L["Click to toggle iFilger's config UI"] = true
+
+--Unitframes--
+L["Additional unit frames options"] = true
+L["Options for customizing unit frames. Please don't change these setting when ElvUI's testing frames for bosses and arena teams are shown. That will make them invisible until retoggling."] = true
+L["Player Frame Indicators"] = true
+L["Combat Icon"] = true
+L["Show/Hide combat icon on player frame."] = true
+L["Combat Position"] = true
+L["Set the point to show combat icon"] = true
+L["Classbar Energy"] = true
+L["Show/hide the text with exact number of energy (Solar/Lunar or Demonic Fury) on your Classbar."] = true
+L["Classbar Offset"] = true
+L["This options will allow you to detach your classbar from player's frame and move it in other location."] = true
+L["Power Text Position"] = true
+L["Position power text on this bar of chosen frame"] = true
+
+--Credits--
+L["ELVUI_SLE_CREDITS"] = "We would like to point out the following people for helping us create this addon with testing, coding, and other stuff."
+L["Submodules and Coding:"] = true
+L["ELVUI_SLE_CODERS"] = [=[Elv
+Tukz
+Affinitii
+Azilroka
+Blazeflack
+Boradan
+Camealion
+Omega1970
+Pvtschlag
+Sinaris
+Sortokk
+Swordyy
+]=]
+L["Other Support:"] = true
+L["ELVUI_SLE_MISC"] = [=[BuG - for being french lol
+TheSamaKutra
+The rest of TukUI community
+]=]
+
+--Tutorials--
+L["To enable full values of health/power on unitframes in Shadow & Light add \":sl\" to the end of the health/power tag.\nExample: [health:current:sl]."] = true
+
+--Movers--
+L["Pet Battle AB"] = true
+
+
+--Changelog--
+L["Changelog"] = true
+L["CHANGE_LOG"] = [=[|cff1784d1v1.5|r
+- Some typos fixed
+- Datatext panels can now be transparent
+- Background frames no longer have offset options, now they have own movers
+- Background frames template doesn't require reload and is a profile based option
+- Movers created by S&L now are grouped by own categories just like in ElvUI itself (Note: background frames' movers are available ONLY in those groups)
+- Raid Marks now properly update setting on profile change
+- Raid Marks module now has an option to hide backdrop for it's main panel
+- Added Item Level overlay on item slots
+- Added Item Durability overlay on item slots
+- Added Equipment Manager per spec/zone
+- Added Farm module to make farming easier.
+- Added skinning of minimap buttons
+- Added coordinates to the minimap
+- LFR Lockout tracking in time datatext now has options to choose what daungeons you want to show there
+- Top datapanel info can now be changed by user
+- You will now receive chat message if someone in your group/raid has newer version of S&L
+- Add Affinitii's (Blood Legion) UI Layout
+- Darth's Layout Modified
+- Added loot announce function
]=]
\ No newline at end of file
diff --git a/ElvUI_SLE/locales/russian.lua b/ElvUI_SLE/locales/russian.lua
index e8d9c48..9a1e510 100755
--- a/ElvUI_SLE/locales/russian.lua
+++ b/ElvUI_SLE/locales/russian.lua
@@ -1,315 +1,316 @@
---Russian localization
-local AceLocale = LibStub:GetLibrary("AceLocale-3.0")
-local L = AceLocale:NewLocale("ElvUI", "ruRU")
-
-if not L then return; end
-
---General--
-L["Shadow & Light"] = "Тень и Свет"
-L["SLE_DESC"] = [=[Это редакция ElvUI добавляет некоторые новые функции к оригинальному аддону и изменяет функционал некоторых старых опций.
-Эта редакция ни в коем виде не изменяет оригинальные файлы, так что вы можете спокойно отключить ее в вашем менеджере аддонов по желанию.]=]
-L["LFR Lockout"] = "Состояние ЛФР"
-L["Show/Hide LFR lockout info in the time datatext's tooltip."] = "Отображать/скрывать информацию о сохранении ЛФР"
-L["PvP Auto Release"] = "Автоматический выход из тела"
-L["Automatically release body when killed inside a battleground."] = "Автоматически выходить из тела на полях боя."
-L["Errors in combat"] = "Отображать ошибки в бою"
-L["Show/hide error messages in combat."] = "Показать/скрыть сообщения об ошибках в бою"
-L["Pet autocast corners"] = "Автокаст питомца"
-L["Show/hide triangles in corners of autocastable buttons."] = "Показать/скрыть треугольники в углах кнопок с автоматически применяемыми заклинаниями питомца."
-L["Loot History"] = "История добычи"
-L["Auto hide"] = "Автоматически скрывать"
-L["Automaticaly hide Blizzard loot histroy frame when leaving the instance."] = "Автоматически скрывать окно истории добычи Blizzard при выходе из подземелья."
-L["Sets alpha of loot histroy frame."] = "Устанавливает прозрачность окна истории добычи"
-L["SLE_LOGIN_MSG"] = [=[Вы используете редакцию ElvUI под названием |cff1784d1"Тень и Свет"|r версия |cff1784d1%s%s|r.
-Если вы хотите использовать оригинальный ElvUI, просто отключите плагин этой редакции в вашем менеджере аддонов.
-Приятной игры.]=]
-L["Your version of ElvUI is older than recommended to use with Shadow & Light Edit. Please, download the latest version from tukui.org."] = "Ваша версия ElvUI старее, чем рекомендованная для использования с редакцией Тень и Свет. Пожалуйста, скачайте последнюю версию с tukui.org."
-L["Reset All"] = "Сбросить все"
-L["Reset all Shadow & Light options and movers to their defaults"] = "Сбросить все настройки и фиксаторы редакции на умолчания"
-L["Reset these options to defaults"] = "Восстановить умолчания для этих опций"
-
---Install--
-L["Shadow & Light Settings"] = "Установки Тени и Света"
-L["You can now choose if you what to use one of authors' set of options. This will change not only the positioning of some elements but also change a bunch of other options."] = "Вы можете выбрать использование одного из набора конфигурации от авторов. Это изменит не только расположение ваших рамок и панелей, но и некоторого количества других опций."
-L["SLE_Install_Text2"] = [=[Этот шаг опционален и должен использоваться только в случае, если Вы хотите использовать одну из наших конфигураций.
-|cffFF0000Внимание:|r Пожалуйста помните, что авторы могут не использовать тему/роль, которую вы выбрали, и потому результат не всегда будет хорошим.]=]
-L["Darth's Config"] = "Опции Darth'а"
-L["Darth's Defaults Set"] = "Установлены настройки Darth'а"
-L["Repooc's Config"] = "Опции Repooc'а"
-L["Repooc's Defaults Set"] = "Установлены настройки Repooc'а"
-L["Affinitii's Config"] = "Опции Affinitii"
-L["Affinitii's Defaults Set"] = "Установлены настройки Affinitii"
-
---Auras--
-L["Options for customizing auras near the minimap."] = "Опции для настройки аур около миникарты"
-L["Caster Name"] = "Имя заклинателя"
-L["Enabling this will show caster name in the buffs and debuff icons."] = "При включении будет отображать в подсказке к ауре имя того, кто наложил ее"
-
---Backgroungds--
-L["Backgrounds"] = "Фоновые фреймы"
-L["Additional Background Panels"] = "Дополнительные фреймы для фонов"
-L["BG_DESC"] = "Модуль для создания дополнительных фреймов, которые могут использоваться в качестве фонов для чего-нибудь."
-L["Bottom BG"] = "Нижний фон"
-L["Left BG"] = "Левый фон"
-L["Right BG"] = "Правый фон"
-L["Actionbar BG"] = "Верхний фон"
-L["Show/Hide this frame."] = "Показать/скрыть этот фрейм."
-L["Sets width of the frame"] = "Устанавливает ширину фрейма"
-L["Sets height of the frame"] = "Устанавливает высоту фрейма"
-L["Sets X offset of the frame"] = "Устанавливает смещение по оси X"
-L["Sets Y offset of the frame"] = "Устанавливает смещение по оси Y"
-L["Texture"] = "Текстура"
-L["Set the texture to use in this frame. Requirements are the same as the chat textures."] = "Устанавливает текстуру этого фрейма. Требования к текстуре такие же, как для текстур чата."
-L["Backdrop Template"] = "Тип фона"
-L["Change the template used for this backdrop."] = "Измените шаблон, используемый при создании этого фона"
-L["Default"] = "Обычный"
-L["Hide in Pet Batlle"] = "Прятать в битвах питомцев"
-L["Show/Hide this frame during Pet Battles."] = "Показать/скрыть этот фрейм в битвах питомцев"
-
---Character Frame Options--
-L["CFO_DESC"] = "Дополнительные опции окна персонажа. Вы можете включить отображение уровня и прочности предметов."
-L["Character Frame Options"] = "Настройки окна персонажа"
-L['Font'] = "Шрифт" --L['Fonts'] is localized in elvui but not Font
-L["The font that the item level will use."] = "Шрифт уровня предметов."
-L["Set the font size that the item level will use."] = "Размер шрифта уровня предметов."
-L["Set the font outline that the item level will use."] = "Граница шрифта уровня предметов."
-L["The font that the item durability will use."] = "Шрифт прочности предметов."
-L["Set the font size that the item durability will use."] = "Размер шрифта прочности предметов."
-L["Set the font outline that the item durability will use."] = "Граница шрифта прочности предметов."
-
---Chat--
-L["Chat Options"] = "Настройки чата"
-L["Chat Editbox History"] = "История чата"
-L["Amount of messages to save. Set to 0 to disable."] = "Количество сообщений, введенных вами, которое будет сохранено между сеансами"
-
---Datatexts--
-L["Bosses killed: "] = "Боссов убито: "
-L["You didn't select any instance to track."] = "Вы не выбрали подземелья для отслеживания"
-L["This LFR isn't available for your level/gear."] = "Это подземелье не доступно для Вашего уровня или экипировки."
-L["SLE_AUTHOR_INFO"] = "Редакция \"Тень и Свет\" от Darth Predator и Repooc"
-L["SLE_CONTACTS"] = [=[При возникновении вопросов, предложений и прочего обращаться:
-- Личное сообщение на форуме TukUI (tukui.org), ник Darth Predator или Repooc
-- Страница/система тикетов на curse.com
-- Форумы tukui.org, раздел Addons/Help
-- Репозиторий проекта на github.com]=]
-L["DP_1"] = "Панель 1"
-L["DP_2"] = "Панель 2"
-L["DP_3"] = "Панель 3"
-L["DP_4"] = "Панель 4"
-L["DP_5"] = "Панель 5"
-L["DP_6"] = "Панель 6"
-L["Bottom_Panel"] = "Нижняя панель"
-L["Top_Center"] = "Верхняя панель"
-L["Left Chat"] = "Левый чат"
-L["Right Chat"] = "Правый чат"
-L["Datatext Panels"] = "Панели инфо-текстов"
-L["Additional Datatext Panels"] = "Дополнительные панели инфо-текстов"
-L["DP_DESC"] = [=[Дополнительные панели под информационные тексты.
-Всего здесь 8 дополнительных панелей и 20 дополнительных слотов под инфо-тексты, а также панель состояния с 4мя индикаторами.
-Панели на чатах отключить нельзя.]=]
-L["Dashboard"] = "Панель состояния"
-L["Show/Hide dashboard."] = "Показать/скрыть панель состояния."
-L["Dashboard Panels Width"] = "Ширина панелей"
-L["Sets size of dashboard panels."] = "Устанавливает размер полос панели состояния."
-L["Show/Hide this panel."] = "Показать/скрыть эту панель."
-L["Sets size of this panel"] = "Установить ширину панели"
-L['Hide panel background'] = "Скрыть фон панели"
-L["Don't show this panel, only datatexts assinged to it"] = "Не показывать саму панель, а только назначенные на нее инфо-тексты"
-
---Exp/Rep Bar--
-L["Xp-Rep Text"] = "Текст Опыта/Репутации"
-L["Full value on Exp Bar"] = "Полное значение опыта"
-L["Changes the way text is shown on exp bar."] = "Изменяет отображение значений опыта на полосе."
-L["Full value on Rep Bar"] = "Полное значение репутации"
-L["Changes the way text is shown on rep bar."] = "Изменяет отображение значений репутации на полосе."
-L["Auto Track Reputation"] = "Автоматически отслеживать репутацию"
-L["Automatically sets reputation tracking to the most recent reputation change."] = "Автоматически изменять отслеживаемую репутацию на последнюю фракцию, чье отношение к Вам изменилось."
-
---Equip Manager--
-L['Equipment Manager'] = "Менеджер экипировки"
-L["EM_DESC"] = "Этот модуль предоставляет различные опции для автоматической смены комплектов экипировки при переключении набора талантов или попадании в определенную локацию."
-L['Spam Throttling'] = "Подавление спама"
-L["Removes the spam from chat stating what talents were learned or unlearned during spec change."] = "Удаляет спам об изученных/забытых заклинаниях при смене талантов."
-L["Here you can choose what equipment sets to use in different situations."] = "Здесь Вы можете выбрать какие комплекты экипировки использовать в различных случаях."
-L["Equip this set when switching to primary talents."] = "Надеть этот набор при переключении на основной набор талантов."
-L["Equip this set when switching to secondary talents."] = "Надеть этот набор при переключении на дополнительный набор талантов."
-L["Equip this set after entering dungeons or raids."] = "Надеть этот набор при попадании в подземелье или рейд."
-L["Equip this set after entering battlegrounds or arens."] = "Надеть этот набор при попадании на поля боя или арены."
-
---Farm--
-L['Farm'] = "Ферма"
-L["FARM_DESC"] = [[Дополнительные панели с семенами, инструментами и порталами для Фермы Солнечной Песни.
-Они будут отображаться только если Вы находитесь на ферме или рынке Полугорья.]]
-L['Only active buttons'] = "Только активные"
-L['Only show the buttons for the seeds, portals, tools you have in your bags.'] = "Отображать только кнопки для тех семян/инструментов/порталов, которые есть у Вас в сумках."
-L["Seed Bars"] = "Панели семян"
-L["Auto Planting"] = "Автоматическая посадка"
-L["Automatically plant seeds to the nearest tilled soil if one is not already selected."] = "Автоматически высаживать указанное растение на ближайшую возделанную змелю, если не выбрана другая."
-L["Drop Seeds"] = "Удалять семена"
-L["Allow seeds to be destroyed from seed bars."] = "Позволить удаление семян при помощи панелей."
-L["Quest Glow"] = "Свечение заданий"
-L["Show glowing border on seeds needed for any quest in your log."] = "Показывать светящуюся границу на семенах, необходимых на какое-либо из взятых заданий из Вашего журнала."
-L["Dock Buttons To"] = "Прикрепить кнопки к"
-L["Change the position from where seed bars will grow."] = "Изменить сторону, с которой будут расти панели семян."
-L["Bottom"] = "Низ"
-L["Top"] = "Верх"
-L["Farm Seed Bars"] = "Панели семян"
-L["Farm Tool Bar"] = "Панель инструментов"
-L["Farm Portal Bar"] = "Панель порталов"
-L["Tilled Soil"] = "Возделанная земля"
-L['Right-click to drop the item.'] = "ПКМ для уничтожения предмета."
-
---Marks--
-L["Raid Marks"] = "Рейдовые Метки"
-L["Show/Hide raid marks."] = "Показать/скрыть фрейм рейдовых меток."
-L["Show only in instances"] = "Только в подземельях"
-L["Selecting this option will have the Raid Markers appear only while in a raid or dungeon."] = "При активации будет отображать полосу меток только в подземельях и рейдах."
-L["Sets size of buttons"] = "Устанавливает размер кнопок" --Also used in UI buttons
-L["Direction"] = "Направление"
-L["Change the direction of buttons growth from the skull marker"] = "Изменяет направление роста кнопок от метки \"череп\"."
-
---Import Section
-L["SLE_IMPORTS"] = "|cffFF0000Важно:|r Используйте импортирование фильтров осторожно, так как они удалят ваши собсвенные фильтры!\nИмпортирование классового фильтра перезапишет любые изменения, которые Вы в него вносили."
-L["Import Options"] = "Импорт Настроек"
-L["Author Specific Imports"] = "Импорт специфических настроек авторов"
-L['Select Author'] = "Выберите автора"
-L["Please be aware that importing any of the filters will require a reload of the UI for the settings to take effect.\nOnce you click a filter button, your screen will reload automatically."] = "Пожалуйста, учтите, что импортирование любого фильтра потребует перезагрузки интерфейса для вступления в силу.\nКак только вы нажмете на кнопку, Ваш интерфейс перезагрузится автоматически."
-L["Import"] = "Импорт"
-L["This will import non class specific filters from this author."] = "Это импортирует не привязанные к классу фильтры этого автора."
-L["This will import All Class specific filters from this author."] = "Это импортирует все классовые фильтры этого автора."
-L['Import All'] = "Импорт всего"
-
---Loot--
-L['Loot Announcer'] = "Оповещение о добыче"
-L["LOOT_DESC"] = [[Этот модуль будет выводить список выпавшей добычи при открытии окна добычи.
-Вывод осуществляется только если Вы лидер, помощник или ответственный за добычу или при зажатии левой клавиши control при осмотре трупа для принудительного вывода.]]
-L["Auto Announce"] = "Авто оповещение"
-L["Automatically announce in selected chat channel."] = "Автоматически выводить список добычи в выбранный канал чата"
-L["Loot Quality"] = "Качество добычи"
-L["Set the minimum quality of an item to announce."] = "Минимальное качество предмета, для вывода в чате."
-L["Announce loot to the selected channel."] = "Канал чата, для вывода сообщений."
-L["Loot Dropped:"] = "Список добычи:"
-
---Minimap--
-L["Minimap Options"] = "Опции миникарты"
-L['MINIMAP_DESC'] = "Эти опции влияют на различные функции миникарты. Некоторые опции погут не работать, если вы отключите миникарты в основных настройках ElvUI."
-L["Minimap Coordinates"] = "Координаты на миникарте"
-L['Coords Display'] = "Отображение координат"
-L['Change settings for the display of the coordinates that are on the minimap.'] = "Укажите условие отображения координат на миникарте."
-L["Coords Location"] = "Позиция координат"
-L['This will determine where the coords are shown on the minimap.'] = "Определяет место, в котором будут отображаться координаты на миникарте"
-L['Bottom Corners'] = "Нижние углы"
-L['Bottom Center'] = "Внизу по центру"
-L["Minimap Buttons"] = "Иконки у миникарты"
-L['Enable/Disable minimap button skinning.'] = "Включить/выключить стилизацию иконок у миникарты."
-L['Anchor Setting'] = "Настрокий расположения"
-L['Anchor mode for displaying the minimap buttons are skinned.'] = "Место расположения иконок аддонов, когда они стилизованы."
-L['Horizontal Bar'] = "Горизонтальная панель"
-L['Vertical Bar'] = "Вертикальная панель"
-L['The size of the minimap buttons when not anchored to the minimap.'] = "Размер иконок, когда они не прикреплены к миникарте."
-L['Show minimap buttons on mouseover.'] = "Отображать иконпри при наведении мыши."
-
-
---Mover groups
-L["S&L: All"] = "S&L: Все"
-L["S&L: Datatexts"] = "S&L: Инфо-тексты"
-L["S&L: Backgrounds"] = "S&L: Фоновые фреймы"
-L["S&L: Misc"] = "S&L: Прочее"
-
---Raid Utility--
-L["Raid Utility"] = "Управление рейдом"
-
---Skins--
-L["This options require ElvUI AddOnSkins pack to work."] = "Эти опции требуют наличие пака ElvUI AddOnSkins для работы"
-L["Sets font size on DBM bars"] = "Устанавливает размер текста на полосах DBM"
-L["Ground"] = "Наземные"
-L["Flying"] = "Летающие"
-L["Flying & Ground"] = "Наземные и Летающие"
-L["Swimming"] = "Водные"
-
---UI buttons--
-L["UI Buttons"] = "Меню интерфейса"
-L["Additional menu with useful buttons"] = "Дополнительное меню с полезными кнопками"
-L["Show/Hide UI buttons."] = "Показать/скрыть меню"
-L["Mouse over"] = "При наведении"
-L["Show on mouse over."] = "Отображать при наведении мыши."
-L["Buttons position"] = "Положение кнопок"
-L["Layout for UI buttons."] = "Режим положения кнопок"
-L["Click to reload your interface"] = "Нажмите для перезагрузки интерфейса"
-L["Click to toggle config window"] = "Нажмите для отображения окна настроек"
-L["Click to toggle the AddOn Manager frame (stAddOnManager, Ampere or ACP) you have enabled."] = "Нажмите для отображения окна менеджера аддонов. Поддерживаются stAddOnManager, ACP, Ampere"
-L["Click to toggle the Configuration/Option Window from the Bossmod (DXE, DBM or Bigwigs) you have enabled."] = "Нажмите для отображения окна настроек включенного босс мода. Поддерживаются DXE, DBM, Bigwigs."
-L["Click to unlock moving ElvUI elements"] = "Нажмите для входа в режим перемещения элементов"
-L["ElvUI Config"] = "Настройка ElvUI"
-L["Move UI"] = "Разблокировать элементы"
-L["Reload UI"] = "Перезагрузить интерфейс"
-L["AddOns Manager"] = "Менеджер аддонов"
-L["Boss Mod"] = "Босс мод"
-L["Click to toggle iFilger's config UI"] = "Нажмите для отображения настроек iFilger"
-
---Unitframes--
-L["Additional unit frames options"] = "Дополнительные опции рамок юнитов"
-L["Options for customizing unit frames. Please don't change these setting when ElvUI's testing frames for bosses and arena teams are shown. That will make them invisible until retoggling."] = "Опции для дополнительной настройки рамок юнитов. Пожалуйста, не изменяйте эти настройки в то же время, кода включен тестовый режим рамок боссов и арены в ElvUI. Это сделает их невидимыми до повторного включения."
-L["Player Frame Indicators"] = "Индикаторы игрока"
-L["Combat Icon"] = "Иконка боя"
-L["Show/Hide combat icon on player frame."] = "Отображать/скрывать иконку в бою."
-L["Combat Position"] = "Позиция иконки боя"
-L["Set the point to show combat icon"] = "Устанавливает позицию индикатора боя."
-L["Classbar Energy"] = "Текст энергии полосы класса"
-L["Show/hide the text with exact number of energy (Solar/Lunar or Demonic Fury) on your Classbar."] = "Показать/скрыть текст с точным значением энергии (Лунной/Солнечной или Демонической Ярости) на полосе класса."
-L["Classbar Offset"] = "Отступ полосы класса"
-L["This options will allow you to detach your classbar from player's frame and move it in other location."] = "Эти опции позволят вам открепить полосу класса от рамки игрока и передвинуть ее в другое место."
-L["Power Text Position"] = "Позиция текста ресурса"
-L["Position power text on this bar of chosen frame"] = "Позиционировать текст ресурса относительно выбранной полосы на каждой рамке"
-
---Credits--
-L["ELVUI_SLE_CREDITS"] = "Мы бы хотели отметить следующих людей, которые помогли нас сделать этот аддон посредством тестирования, кода и прочего."
-L["Submodules and Coding:"] = "Субмодули и кодинг:"
-L["ELVUI_SLE_CODERS"] = [=[Elv
-Tukz
-Affinitii
-Azilroka
-Blazeflack
-Boradan
-Camealion
-Omega1970
-Pvtschlag
-Sinaris
-Sortokk
-Swordyy
-]=]
-L["Other Support:"] = "Прочая поддержка:"
-L["ELVUI_SLE_MISC"] = [=[BuG - за то, что он француз :D
-TheSamaKutra
-Сообщество TukUI
-]=]
-
---Tutorials--
-L["To enable full values of health/power on unitframes in Shadow & Light add \":sl\" to the end of the health/power tag.\nExample: [health:current:sl]."] = "Чтобы включить отображение полного значения здоровья/ресурса при использовании Тени и Света, нужно добавить \":sl\" в конец нужного тэга.\nПример: [health:current:sl]."
-
---Movers--
-L["Pet Battle AB"] = "Панель боев питомцев"
-
---Changelog
-L["Changelog"] = "Изменения"
-L["CHANGE_LOG"] = [=[|cff1784d1v1.5|r
-- Исправлены некоторые опечатки
-- Панели инфо-текстов теперь могут быть прозрачными
-- У фоновых фреймов больше нет опции смещения, теперь у них есть собственные фиксаторы
-- Тип фона для фоновых фреймов теперь опция профиля и не требует перезагрузки интерфейса
-- Фиксаторы, создаваемые S&L теперь группируются по собственным категориям аналогично оригинальному ElvUI (фиксаторы фоновых фреймов доступны ТОЛЬКО в этоих группах)
-- Рейдовые метки теперь корректно обновляют настройки при смене профиля
-- У основной панели рейдовых меток теперь можно скрыть фон
-- Добавлен показ уровня на предметах в окне игрока
-- Добавлен показ прочности на предметах в окне игрока
-- Добавлен менеджер экипировки по специализации/зоне
-- Добавлен модуль фермы для улучшения жизни огородников
-- Добавлена стилизация иконок у миникарты
-- Добавлено отображение текущих координат на миникарте
-- Слежение за убитыми боссами в ЛФР теперь позволяет выбрать какие подземелья Вы хотите отслеживать.
-- Информация на верхней панели инфо-текстов теперь может быть изменена пользователем
-- Вы будете получать текстовое сообщение в чате, если в вашей группе/рейде есть человек с более новой версией
-- Добавлены настройки Affinitii (Blood Legion)
-- Настройки Дарта обновлены
-- Добавлена функция оповещения о добыче
+--Russian localization
+local AceLocale = LibStub:GetLibrary("AceLocale-3.0")
+local L = AceLocale:NewLocale("ElvUI", "ruRU")
+
+if not L then return; end
+
+--General--
+L["Shadow & Light"] = "Тень и Свет"
+L["SLE_DESC"] = [=[Это редакция ElvUI добавляет некоторые новые функции к оригинальному аддону и изменяет функционал некоторых старых опций.
+Эта редакция ни в коем виде не изменяет оригинальные файлы, так что вы можете спокойно отключить ее в вашем менеджере аддонов по желанию.]=]
+L["LFR Lockout"] = "Состояние ЛФР"
+L["Show/Hide LFR lockout info in the time datatext's tooltip."] = "Отображать/скрывать информацию о сохранении ЛФР"
+L["PvP Auto Release"] = "Автоматический выход из тела"
+L["Automatically release body when killed inside a battleground."] = "Автоматически выходить из тела на полях боя."
+L["Errors in combat"] = "Отображать ошибки в бою"
+L["Show/hide error messages in combat."] = "Показать/скрыть сообщения об ошибках в бою"
+L["Pet autocast corners"] = "Автокаст питомца"
+L["Show/hide triangles in corners of autocastable buttons."] = "Показать/скрыть треугольники в углах кнопок с автоматически применяемыми заклинаниями питомца."
+L["Loot History"] = "История добычи"
+L["Auto hide"] = "Автоматически скрывать"
+L["Automaticaly hide Blizzard loot histroy frame when leaving the instance."] = "Автоматически скрывать окно истории добычи Blizzard при выходе из подземелья."
+L["Sets alpha of loot histroy frame."] = "Устанавливает прозрачность окна истории добычи"
+L["SLE_LOGIN_MSG"] = [=[Вы используете редакцию ElvUI под названием |cff1784d1"Тень и Свет"|r версия |cff1784d1%s%s|r.
+Если вы хотите использовать оригинальный ElvUI, просто отключите плагин этой редакции в вашем менеджере аддонов.
+Приятной игры.]=]
+L["Your version of ElvUI is older than recommended to use with Shadow & Light Edit. Please, download the latest version from tukui.org."] = "Ваша версия ElvUI старее, чем рекомендованная для использования с редакцией Тень и Свет. Пожалуйста, скачайте последнюю версию с tukui.org."
+L["Reset All"] = "Сбросить все"
+L["Reset all Shadow & Light options and movers to their defaults"] = "Сбросить все настройки и фиксаторы редакции на умолчания"
+L["Reset these options to defaults"] = "Восстановить умолчания для этих опций"
+
+--Install--
+L["Shadow & Light Settings"] = "Установки Тени и Света"
+L["You can now choose if you what to use one of authors' set of options. This will change not only the positioning of some elements but also change a bunch of other options."] = "Вы можете выбрать использование одного из набора конфигурации от авторов. Это изменит не только расположение ваших рамок и панелей, но и некоторого количества других опций."
+L["SLE_Install_Text2"] = [=[Этот шаг опционален и должен использоваться только в случае, если Вы хотите использовать одну из наших конфигураций.
+|cffFF0000Внимание:|r Пожалуйста помните, что авторы могут не использовать тему/роль, которую вы выбрали, и потому результат не всегда будет хорошим.]=]
+L["Darth's Config"] = "Опции Darth'а"
+L["Darth's Defaults Set"] = "Установлены настройки Darth'а"
+L["Repooc's Config"] = "Опции Repooc'а"
+L["Repooc's Defaults Set"] = "Установлены настройки Repooc'а"
+L["Affinitii's Config"] = "Опции Affinitii"
+L["Affinitii's Defaults Set"] = "Установлены настройки Affinitii"
+
+--Auras--
+L["Options for customizing auras near the minimap."] = "Опции для настройки аур около миникарты"
+L["Caster Name"] = "Имя заклинателя"
+L["Enabling this will show caster name in the buffs and debuff icons."] = "При включении будет отображать в подсказке к ауре имя того, кто наложил ее"
+
+--Backgroungds--
+L["Backgrounds"] = "Фоновые фреймы"
+L["Additional Background Panels"] = "Дополнительные фреймы для фонов"
+L["BG_DESC"] = "Модуль для создания дополнительных фреймов, которые могут использоваться в качестве фонов для чего-нибудь."
+L["Bottom BG"] = "Нижний фон"
+L["Left BG"] = "Левый фон"
+L["Right BG"] = "Правый фон"
+L["Actionbar BG"] = "Верхний фон"
+L["Show/Hide this frame."] = "Показать/скрыть этот фрейм."
+L["Sets width of the frame"] = "Устанавливает ширину фрейма"
+L["Sets height of the frame"] = "Устанавливает высоту фрейма"
+L["Sets X offset of the frame"] = "Устанавливает смещение по оси X"
+L["Sets Y offset of the frame"] = "Устанавливает смещение по оси Y"
+L["Texture"] = "Текстура"
+L["Set the texture to use in this frame. Requirements are the same as the chat textures."] = "Устанавливает текстуру этого фрейма. Требования к текстуре такие же, как для текстур чата."
+L["Backdrop Template"] = "Тип фона"
+L["Change the template used for this backdrop."] = "Измените шаблон, используемый при создании этого фона"
+L["Default"] = "Обычный"
+L["Hide in Pet Batlle"] = "Прятать в битвах питомцев"
+L["Show/Hide this frame during Pet Battles."] = "Показать/скрыть этот фрейм в битвах питомцев"
+
+--Character Frame Options--
+L["CFO_DESC"] = "Дополнительные опции окна персонажа. Вы можете включить отображение уровня и прочности предметов."
+L["Character Frame Options"] = "Настройки окна персонажа"
+L['Font'] = "Шрифт" --L['Fonts'] is localized in elvui but not Font
+L["The font that the item level will use."] = "Шрифт уровня предметов."
+L["Set the font size that the item level will use."] = "Размер шрифта уровня предметов."
+L["Set the font outline that the item level will use."] = "Граница шрифта уровня предметов."
+L["The font that the item durability will use."] = "Шрифт прочности предметов."
+L["Set the font size that the item durability will use."] = "Размер шрифта прочности предметов."
+L["Set the font outline that the item durability will use."] = "Граница шрифта прочности предметов."
+
+--Chat--
+L["Chat Options"] = "Настройки чата"
+L["Chat Editbox History"] = "История чата"
+L["Amount of messages to save. Set to 0 to disable."] = "Количество сообщений, введенных вами, которое будет сохранено между сеансами"
+
+--Datatexts--
+L["Bosses killed: "] = "Боссов убито: "
+L["You didn't select any instance to track."] = "Вы не выбрали подземелья для отслеживания"
+L["This LFR isn't available for your level/gear."] = "Это подземелье не доступно для Вашего уровня или экипировки."
+L["SLE_AUTHOR_INFO"] = "Редакция \"Тень и Свет\" от Darth Predator и Repooc"
+L["SLE_CONTACTS"] = [=[При возникновении вопросов, предложений и прочего обращаться:
+- Личное сообщение на форуме TukUI (tukui.org), ник Darth Predator или Repooc
+- Страница/система тикетов на curse.com
+- Форумы tukui.org, раздел Addons/Help
+- Репозиторий проекта на github.com]=]
+L["DP_1"] = "Панель 1"
+L["DP_2"] = "Панель 2"
+L["DP_3"] = "Панель 3"
+L["DP_4"] = "Панель 4"
+L["DP_5"] = "Панель 5"
+L["DP_6"] = "Панель 6"
+L["Bottom_Panel"] = "Нижняя панель"
+L["Top_Center"] = "Верхняя панель"
+L["Left Chat"] = "Левый чат"
+L["Right Chat"] = "Правый чат"
+L["Datatext Panels"] = "Панели инфо-текстов"
+L["Additional Datatext Panels"] = "Дополнительные панели инфо-текстов"
+L["DP_DESC"] = [=[Дополнительные панели под информационные тексты.
+Всего здесь 8 дополнительных панелей и 20 дополнительных слотов под инфо-тексты, а также панель состояния с 4мя индикаторами.
+Панели на чатах отключить нельзя.]=]
+L["Dashboard"] = "Панель состояния"
+L["Show/Hide dashboard."] = "Показать/скрыть панель состояния."
+L["Dashboard Panels Width"] = "Ширина панелей"
+L["Sets size of dashboard panels."] = "Устанавливает размер полос панели состояния."
+L["Show/Hide this panel."] = "Показать/скрыть эту панель."
+L["Sets size of this panel"] = "Установить ширину панели"
+L['Hide panel background'] = "Скрыть фон панели"
+L["Don't show this panel, only datatexts assinged to it"] = "Не показывать саму панель, а только назначенные на нее инфо-тексты"
+
+--Exp/Rep Bar--
+L["Xp-Rep Text"] = "Текст Опыта/Репутации"
+L["Full value on Exp Bar"] = "Полное значение опыта"
+L["Changes the way text is shown on exp bar."] = "Изменяет отображение значений опыта на полосе."
+L["Full value on Rep Bar"] = "Полное значение репутации"
+L["Changes the way text is shown on rep bar."] = "Изменяет отображение значений репутации на полосе."
+L["Auto Track Reputation"] = "Автоматически отслеживать репутацию"
+L["Automatically sets reputation tracking to the most recent reputation change."] = "Автоматически изменять отслеживаемую репутацию на последнюю фракцию, чье отношение к Вам изменилось."
+
+--Equip Manager--
+L['Equipment Manager'] = "Менеджер экипировки"
+L["EM_DESC"] = "Этот модуль предоставляет различные опции для автоматической смены комплектов экипировки при переключении набора талантов или попадании в определенную локацию."
+L['Spam Throttling'] = "Подавление спама"
+L["Removes the spam from chat stating what talents were learned or unlearned during spec change."] = "Удаляет спам об изученных/забытых заклинаниях при смене талантов."
+L["Here you can choose what equipment sets to use in different situations."] = "Здесь Вы можете выбрать какие комплекты экипировки использовать в различных случаях."
+L["Equip this set when switching to primary talents."] = "Надеть этот набор при переключении на основной набор талантов."
+L["Equip this set when switching to secondary talents."] = "Надеть этот набор при переключении на дополнительный набор талантов."
+L["Equip this set after entering dungeons or raids."] = "Надеть этот набор при попадании в подземелье или рейд."
+L["Equip this set after entering battlegrounds or arens."] = "Надеть этот набор при попадании на поля боя или арены."
+
+--Farm--
+L['Farm'] = "Ферма"
+L["FARM_DESC"] = [[Дополнительные панели с семенами, инструментами и порталами для Фермы Солнечной Песни.
+Они будут отображаться только если Вы находитесь на ферме или рынке Полугорья.]]
+L['Only active buttons'] = "Только активные"
+L['Only show the buttons for the seeds, portals, tools you have in your bags.'] = "Отображать только кнопки для тех семян/инструментов/порталов, которые есть у Вас в сумках."
+L["Seed Bars"] = "Панели семян"
+L["Auto Planting"] = "Автоматическая посадка"
+L["Automatically plant seeds to the nearest tilled soil if one is not already selected."] = "Автоматически высаживать указанное растение на ближайшую возделанную змелю, если не выбрана другая."
+L["Drop Seeds"] = "Удалять семена"
+L["Allow seeds to be destroyed from seed bars."] = "Позволить удаление семян при помощи панелей."
+L["Quest Glow"] = "Свечение заданий"
+L["Show glowing border on seeds needed for any quest in your log."] = "Показывать светящуюся границу на семенах, необходимых на какое-либо из взятых заданий из Вашего журнала."
+L["Dock Buttons To"] = "Прикрепить кнопки к"
+L["Change the position from where seed bars will grow."] = "Изменить сторону, с которой будут расти панели семян."
+L["Bottom"] = "Низ"
+L["Top"] = "Верх"
+L["Farm Seed Bars"] = "Панели семян"
+L["Farm Tool Bar"] = "Панель инструментов"
+L["Farm Portal Bar"] = "Панель порталов"
+L["Tilled Soil"] = "Возделанная земля"
+L['Right-click to drop the item.'] = "ПКМ для уничтожения предмета."
+L["We are sorry, but you can't do this now. Try again after the end of this combat."] = "Извините, но Вы не можете этого сделать сейчас. Попробуйте снова после окончания текущего боя."
+
+--Marks--
+L["Raid Marks"] = "Рейдовые Метки"
+L["Show/Hide raid marks."] = "Показать/скрыть фрейм рейдовых меток."
+L["Show only in instances"] = "Только в подземельях"
+L["Selecting this option will have the Raid Markers appear only while in a raid or dungeon."] = "При активации будет отображать полосу меток только в подземельях и рейдах."
+L["Sets size of buttons"] = "Устанавливает размер кнопок" --Also used in UI buttons
+L["Direction"] = "Направление"
+L["Change the direction of buttons growth from the skull marker"] = "Изменяет направление роста кнопок от метки \"череп\"."
+
+--Import Section
+L["SLE_IMPORTS"] = "|cffFF0000Важно:|r Используйте импортирование фильтров осторожно, так как они удалят ваши собсвенные фильтры!\nИмпортирование классового фильтра перезапишет любые изменения, которые Вы в него вносили."
+L["Import Options"] = "Импорт Настроек"
+L["Author Specific Imports"] = "Импорт специфических настроек авторов"
+L['Select Author'] = "Выберите автора"
+L["Please be aware that importing any of the filters will require a reload of the UI for the settings to take effect.\nOnce you click a filter button, your screen will reload automatically."] = "Пожалуйста, учтите, что импортирование любого фильтра потребует перезагрузки интерфейса для вступления в силу.\nКак только вы нажмете на кнопку, Ваш интерфейс перезагрузится автоматически."
+L["Import"] = "Импорт"
+L["This will import non class specific filters from this author."] = "Это импортирует не привязанные к классу фильтры этого автора."
+L["This will import All Class specific filters from this author."] = "Это импортирует все классовые фильтры этого автора."
+L['Import All'] = "Импорт всего"
+
+--Loot--
+L['Loot Announcer'] = "Оповещение о добыче"
+L["LOOT_DESC"] = [[Этот модуль будет выводить список выпавшей добычи при открытии окна добычи.
+Вывод осуществляется только если Вы лидер, помощник или ответственный за добычу или при зажатии левой клавиши control при осмотре трупа для принудительного вывода.]]
+L["Auto Announce"] = "Авто оповещение"
+L["Automatically announce in selected chat channel."] = "Автоматически выводить список добычи в выбранный канал чата"
+L["Loot Quality"] = "Качество добычи"
+L["Set the minimum quality of an item to announce."] = "Минимальное качество предмета, для вывода в чате."
+L["Announce loot to the selected channel."] = "Канал чата, для вывода сообщений."
+L["Loot Dropped:"] = "Список добычи:"
+
+--Minimap--
+L["Minimap Options"] = "Опции миникарты"
+L['MINIMAP_DESC'] = "Эти опции влияют на различные функции миникарты. Некоторые опции погут не работать, если вы отключите миникарты в основных настройках ElvUI."
+L["Minimap Coordinates"] = "Координаты на миникарте"
+L['Coords Display'] = "Отображение координат"
+L['Change settings for the display of the coordinates that are on the minimap.'] = "Укажите условие отображения координат на миникарте."
+L["Coords Location"] = "Позиция координат"
+L['This will determine where the coords are shown on the minimap.'] = "Определяет место, в котором будут отображаться координаты на миникарте"
+L['Bottom Corners'] = "Нижние углы"
+L['Bottom Center'] = "Внизу по центру"
+L["Minimap Buttons"] = "Иконки у миникарты"
+L['Enable/Disable minimap button skinning.'] = "Включить/выключить стилизацию иконок у миникарты."
+L['Anchor Setting'] = "Настрокий расположения"
+L['Anchor mode for displaying the minimap buttons are skinned.'] = "Место расположения иконок аддонов, когда они стилизованы."
+L['Horizontal Bar'] = "Горизонтальная панель"
+L['Vertical Bar'] = "Вертикальная панель"
+L['The size of the minimap buttons when not anchored to the minimap.'] = "Размер иконок, когда они не прикреплены к миникарте."
+L['Show minimap buttons on mouseover.'] = "Отображать иконпри при наведении мыши."
+
+
+--Mover groups
+L["S&L: All"] = "S&L: Все"
+L["S&L: Datatexts"] = "S&L: Инфо-тексты"
+L["S&L: Backgrounds"] = "S&L: Фоновые фреймы"
+L["S&L: Misc"] = "S&L: Прочее"
+
+--Raid Utility--
+L["Raid Utility"] = "Управление рейдом"
+
+--Skins--
+L["This options require ElvUI AddOnSkins pack to work."] = "Эти опции требуют наличие пака ElvUI AddOnSkins для работы"
+L["Sets font size on DBM bars"] = "Устанавливает размер текста на полосах DBM"
+L["Ground"] = "Наземные"
+L["Flying"] = "Летающие"
+L["Flying & Ground"] = "Наземные и Летающие"
+L["Swimming"] = "Водные"
+
+--UI buttons--
+L["UI Buttons"] = "Меню интерфейса"
+L["Additional menu with useful buttons"] = "Дополнительное меню с полезными кнопками"
+L["Show/Hide UI buttons."] = "Показать/скрыть меню"
+L["Mouse over"] = "При наведении"
+L["Show on mouse over."] = "Отображать при наведении мыши."
+L["Buttons position"] = "Положение кнопок"
+L["Layout for UI buttons."] = "Режим положения кнопок"
+L["Click to reload your interface"] = "Нажмите для перезагрузки интерфейса"
+L["Click to toggle config window"] = "Нажмите для отображения окна настроек"
+L["Click to toggle the AddOn Manager frame (stAddOnManager, Ampere or ACP) you have enabled."] = "Нажмите для отображения окна менеджера аддонов. Поддерживаются stAddOnManager, ACP, Ampere"
+L["Click to toggle the Configuration/Option Window from the Bossmod (DXE, DBM or Bigwigs) you have enabled."] = "Нажмите для отображения окна настроек включенного босс мода. Поддерживаются DXE, DBM, Bigwigs."
+L["Click to unlock moving ElvUI elements"] = "Нажмите для входа в режим перемещения элементов"
+L["ElvUI Config"] = "Настройка ElvUI"
+L["Move UI"] = "Разблокировать элементы"
+L["Reload UI"] = "Перезагрузить интерфейс"
+L["AddOns Manager"] = "Менеджер аддонов"
+L["Boss Mod"] = "Босс мод"
+L["Click to toggle iFilger's config UI"] = "Нажмите для отображения настроек iFilger"
+
+--Unitframes--
+L["Additional unit frames options"] = "Дополнительные опции рамок юнитов"
+L["Options for customizing unit frames. Please don't change these setting when ElvUI's testing frames for bosses and arena teams are shown. That will make them invisible until retoggling."] = "Опции для дополнительной настройки рамок юнитов. Пожалуйста, не изменяйте эти настройки в то же время, кода включен тестовый режим рамок боссов и арены в ElvUI. Это сделает их невидимыми до повторного включения."
+L["Player Frame Indicators"] = "Индикаторы игрока"
+L["Combat Icon"] = "Иконка боя"
+L["Show/Hide combat icon on player frame."] = "Отображать/скрывать иконку в бою."
+L["Combat Position"] = "Позиция иконки боя"
+L["Set the point to show combat icon"] = "Устанавливает позицию индикатора боя."
+L["Classbar Energy"] = "Текст энергии полосы класса"
+L["Show/hide the text with exact number of energy (Solar/Lunar or Demonic Fury) on your Classbar."] = "Показать/скрыть текст с точным значением энергии (Лунной/Солнечной или Демонической Ярости) на полосе класса."
+L["Classbar Offset"] = "Отступ полосы класса"
+L["This options will allow you to detach your classbar from player's frame and move it in other location."] = "Эти опции позволят вам открепить полосу класса от рамки игрока и передвинуть ее в другое место."
+L["Power Text Position"] = "Позиция текста ресурса"
+L["Position power text on this bar of chosen frame"] = "Позиционировать текст ресурса относительно выбранной полосы на каждой рамке"
+
+--Credits--
+L["ELVUI_SLE_CREDITS"] = "Мы бы хотели отметить следующих людей, которые помогли нас сделать этот аддон посредством тестирования, кода и прочего."
+L["Submodules and Coding:"] = "Субмодули и кодинг:"
+L["ELVUI_SLE_CODERS"] = [=[Elv
+Tukz
+Affinitii
+Azilroka
+Blazeflack
+Boradan
+Camealion
+Omega1970
+Pvtschlag
+Sinaris
+Sortokk
+Swordyy
+]=]
+L["Other Support:"] = "Прочая поддержка:"
+L["ELVUI_SLE_MISC"] = [=[BuG - за то, что он француз :D
+TheSamaKutra
+Сообщество TukUI
+]=]
+
+--Tutorials--
+L["To enable full values of health/power on unitframes in Shadow & Light add \":sl\" to the end of the health/power tag.\nExample: [health:current:sl]."] = "Чтобы включить отображение полного значения здоровья/ресурса при использовании Тени и Света, нужно добавить \":sl\" в конец нужного тэга.\nПример: [health:current:sl]."
+
+--Movers--
+L["Pet Battle AB"] = "Панель боев питомцев"
+
+--Changelog
+L["Changelog"] = "Изменения"
+L["CHANGE_LOG"] = [=[|cff1784d1v1.5|r
+- Исправлены некоторые опечатки
+- Панели инфо-текстов теперь могут быть прозрачными
+- У фоновых фреймов больше нет опции смещения, теперь у них есть собственные фиксаторы
+- Тип фона для фоновых фреймов теперь опция профиля и не требует перезагрузки интерфейса
+- Фиксаторы, создаваемые S&L теперь группируются по собственным категориям аналогично оригинальному ElvUI (фиксаторы фоновых фреймов доступны ТОЛЬКО в этоих группах)
+- Рейдовые метки теперь корректно обновляют настройки при смене профиля
+- У основной панели рейдовых меток теперь можно скрыть фон
+- Добавлен показ уровня на предметах в окне игрока
+- Добавлен показ прочности на предметах в окне игрока
+- Добавлен менеджер экипировки по специализации/зоне
+- Добавлен модуль фермы для улучшения жизни огородников
+- Добавлена стилизация иконок у миникарты
+- Добавлено отображение текущих координат на миникарте
+- Слежение за убитыми боссами в ЛФР теперь позволяет выбрать какие подземелья Вы хотите отслеживать.
+- Информация на верхней панели инфо-текстов теперь может быть изменена пользователем
+- Вы будете получать текстовое сообщение в чате, если в вашей группе/рейде есть человек с более новой версией
+- Добавлены настройки Affinitii (Blood Legion)
+- Настройки Дарта обновлены
+- Добавлена функция оповещения о добыче
]=]
\ No newline at end of file
diff --git a/ElvUI_SLE/modules/farm/farm.lua b/ElvUI_SLE/modules/farm/farm.lua
index ee41987..f186a35 100755
--- a/ElvUI_SLE/modules/farm/farm.lua
+++ b/ElvUI_SLE/modules/farm/farm.lua
@@ -1,580 +1,586 @@
-local E, L, V, P, G, _ = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
-local B = LibStub("LibBabble-SubZone-3.0")
-local BL = B:GetLookupTable()
-local F = E:NewModule('Farm', 'AceHook-3.0', 'AceEvent-3.0');
-local SLE = E:GetModule('SLE');
-
-local SeedAnchor, ToolAnchor, PortalAnchor
-local tsort = table.sort
-local farmzones = { BL["Sunsong Ranch"], BL["The Halfhill Market"] }
-local size
-local Zcheck = false
-
-FseedButtons = {}
-FtoolButtons = {}
-FportalButtons = {}
-
-local seeds = {
- --Seeds general
- [79102] = { 1 }, -- Green Cabbage
- [89328] = { 1 }, -- Jade Squash
- [80590] = { 1 }, -- Juicycrunch Carrot
- [80592] = { 1 }, -- Mogu Pumpkin
- [80594] = { 1 }, -- Pink Turnip
- [80593] = { 1 }, -- Red Blossom Leek
- [80591] = { 1 }, -- Scallion
- [89329] = { 1 }, -- Striped Melon
- [80595] = { 1 }, -- White Turnip
- [89326] = { 1 }, -- Witchberry
- --Bags general
- [80809] = { 2 }, -- Green Cabbage
- [89848] = { 2 }, -- Jade Squash
- [84782] = { 2 }, -- Juicycrunch Carrot
- [85153] = { 2 }, -- Mogu Pumpkin
- [85162] = { 2 }, -- Pink Turnip
- [85158] = { 2 }, -- Red Blossom Leek
- [84783] = { 2 }, -- Scallion
- [89849] = { 2 }, -- Striped Melon
- [85163] = { 2 }, -- White Turnip
- [89847] = { 2 }, -- Witchberry
- --Seeds special
- [85216] = { 3 }, -- Enigma
- [85217] = { 3 }, -- Magebulb
- [85219] = { 3 }, -- Ominous
- [89202] = { 3 }, -- Raptorleaf
- [85215] = { 3 }, -- Snakeroot
- [89233] = { 3 }, -- Songbell
- [91806] = { 3 }, -- Unstable Portal
- [89197] = { 3 }, -- Windshear Cactus
- --Bags special
- [95449] = { 4 }, -- Enigma
- [95451] = { 4 }, -- Magebulb
- [95457] = { 4 }, -- Raptorleaf
- [95447] = { 4 }, -- Snakeroot
- [95445] = { 4 }, -- Songbell
- [95454] = { 4 }, -- Windshear Cactus
- --Trees lol
- [85267] = { 5 }, -- Autumn Blossom Sapling
- [85268] = { 5 }, -- Spring Blossom Sapling
- [85269] = { 5 }, -- Winter Blossom Sapling
-}
-
-local addseeds = {
- [95434] = { 80809 }, -- Green Cabbage
- [95437] = { 89848 }, -- Jade Squash
- [95436] = { 84782 }, -- Juicycrunch Carrot
- [95438] = { 85153 }, -- Mogu Pumpkin
- [95439] = { 85162 }, -- Pink Turnip
- [95440] = { 85158 }, -- Red Blossom Leek
- [95441] = { 84783 }, -- Scallion
- [95442] = { 89849 }, -- Striped Melon
- [95443] = { 85163 }, -- White Turnip
- [95444] = { 89847 }, -- Witchberry
-
- [95450] = { 95449 }, -- Enigma
- [95452] = { 95451 }, -- Magebulb
- [95458] = { 95457 }, -- Raptorleaf
- [95448] = { 95447 }, -- Snakeroot
- [95446] = { 95445 }, -- Songbell
- [95456] = { 95454 }, -- Windshear Cactus
-}
-
-local tools = {
- [79104] = { 1 }, -- Rusy Watering Can
- [80513] = { 1 }, -- Vintage Bug Sprayer
- [89880] = { 1 }, -- Dented Shovel
- [89815] = { 1 }, -- Master Plow
-}
-
-local portals = {
- [91850] = { "Horde" }, -- Orgrimmar Portal Shard
- [91861] = { "Horde" }, -- Thunder Bluff Portal Shard
- [91862] = { "Horde" }, -- Undercity Portal Shard
- [91863] = { "Horde" }, -- Silvermoon Portal Shard
-
- [91860] = { "Alliance" }, -- Stormwind Portal Shard
- [91864] = { "Alliance" }, -- Ironforge Portal Shard
- [91865] = { "Alliance" }, -- Darnassus Portal Shard
- [91866] = { "Alliance" }, -- Exodar Portal Shard
-}
-
-local quests = {
---Tillers counsil
-[31945] = {80591, 84783}, -- Gina, Scallion
-[31946] = {80590, 84782}, -- Mung-Mung, Juicycrunch Carrot
-[31947] = {79102, 80809}, -- Farmer Fung, Green Cabbage
-[31949] = {89326, 89847}, -- Nana, Witchberry
-[30527] = {89329, 89849}, -- Haohan, Striped Melon
---Farmer Yoon
-[31943] = {89326, 89847}, -- Witchberry
-[31942] = {89329, 89849}, -- Striped Melon
-[31941] = {89328, 89848}, -- Jade Squash
-[31669] = {79102, 80809}, -- Green Cabbage
-[31670] = {80590, 84782}, -- Juicycrunch Carrot
-[31672] = {80592, 85153}, -- Mogu Pumpkin
-[31673] = {80593, 85158}, -- Red Blossom Leek
-[31674] = {80594, 85162}, -- Pink Turnip
-[31675] = {80595, 85163}, -- White Turnip
-[31671] = {80591, 84783}, -- Scallion
---Work Orders
-[32645] = {89326, 89847}, -- Witchberry (Alliance Only)
-[32653] = {89329, 89849}, -- Striped Melon
---[31941] = {89328, 89848}, -- Jade Squash
-[32649] = {79102, 80809}, -- Green Cabbage
---[31670] = {80590, 84782}, -- Juicycrunch Carrot
-[32658] = {80592, 85153}, -- Mogu Pumpkin
-[32642] = {80593, 85158}, -- Red Blossom Leek (Horde Only)
---[31674] = {80594, 85162}, -- Pink Turnip
-[32647] = {80595, 85163}, -- White Turnip
---[31671] = {80591, 84783}, -- Scallion
-}
-
-local buttoncounts = {}
-
-function F:CanSeed()
- local subzone = GetSubZoneText()
- for _, zone in ipairs(farmzones) do
- if (zone == subzone) then
- return true
- end
- end
- return false
-end
-
-function F:OnFarm()
- return GetSubZoneText() == farmzones[1]
-end
-
-function F:InventoryUpdate(event)
- if InCombatLockdown() then
- F:RegisterEvent("PLAYER_REGEN_ENABLED", "InventoryUpdate")
- return
- else
- F:UnregisterEvent("PLAYER_REGEN_ENABLED")
- end
-
- local SeedChange = false
- for i = 1, 5 do
- for _, button in ipairs(FseedButtons[i]) do
- button.items = GetItemCount(button.itemId, nil, true)
- if i == 2 or i == 4 then
- for id, v in pairs(addseeds) do
- if button.itemId == addseeds[id][1] then
- local nCount = GetItemCount(id, nil, true)
- button.items = button.items + nCount
- end
- end
- end
- if not buttoncounts[button.itemId] then
- buttoncounts[button.itemId] = button.items
- end
- if button.items ~= buttoncounts[button.itemId] then
- SeedChange = true
- buttoncounts[button.itemId] = button.items
- end
- button.text:SetText(button.items)
- button.icon:SetDesaturated(button.items == 0)
- button.icon:SetAlpha(button.items == 0 and .25 or 1)
- end
- end
-
- for _, button in ipairs(FtoolButtons) do
- button.items = GetItemCount(button.itemId)
- if not buttoncounts[button.itemId] then
- buttoncounts[button.itemId] = button.items
- end
- if button.items ~= buttoncounts[button.itemId] then
- SeedChange = true
- buttoncounts[button.itemId] = button.items
- end
- button.icon:SetDesaturated(button.items == 0)
- button.icon:SetAlpha(button.items == 0 and .25 or 1)
- end
-
- for _, button in ipairs(FportalButtons) do
- button.items = GetItemCount(button.itemId)
- if not buttoncounts[button.itemId] then
- buttoncounts[button.itemId] = button.items
- end
- if button.items ~= buttoncounts[button.itemId] then
- SeedChange = true
- buttoncounts[button.itemId] = button.items
- end
- button.text:SetText(button.items)
- button.icon:SetDesaturated(button.items == 0)
- button.icon:SetAlpha(button.items == 0 and .25 or 1)
- end
-
- if event and event ~= "BAG_UPDATE_COOLDOWN" and SeedChange == true then
- F:UpdateLayout()
- end
-end
-
-function F:UpdateBarLayout(bar, anchor, buttons)
- local count = 0
- size = E.db.sle.farm.size
- bar:ClearAllPoints()
- bar:Point("LEFT", anchor, "LEFT", 0, 0)
-
- for i, button in ipairs(buttons) do
- button:ClearAllPoints()
- if not button.items then F:InventoryUpdate() end
- if not E.db.sle.farm.active or button.items > 0 then
- button:Point("TOPLEFT", bar, "TOPLEFT", (count * (size+(E.PixelMode and 2 or 1)))+(E.PixelMode and 1 or 0), -1)
- button:Show()
- button:Size(size, size)
- count = count + 1
- else
- button:Hide()
- end
- end
-
- bar:Width(1)
- bar:Height(size+2)
-
- return count
-end
-
-function F:QuestItems(itemID)
- for i = 1, GetNumQuestLogEntries() do
- for qid, sid in pairs(quests) do
- if qid == select(9,GetQuestLogTitle(i)) then
- if itemID == sid[1] or itemID == sid[2] then
- return true
- end
- end
- end
- end
-
- return false
-end
-
-function F:UpdateButtonCooldown(button)
- if button.cooldown then
- button.cooldown:SetCooldown(GetItemCooldown(button.itemId))
- end
-end
-
-function F:UpdateCooldown()
- if not F:CanSeed() then return end
-
- for i = 1, 5 do
- for _, button in ipairs(FseedButtons[i]) do
- F:UpdateButtonCooldown(button)
- end
- end
- for _, button in ipairs(FtoolButtons) do
- F:UpdateButtonCooldown(button)
- end
- for _, button in ipairs(FportalButtons) do
- F:UpdateButtonCooldown(button)
- end
-end
-
-function F:UpdateSeedBarLayout(seedBar, anchor, buttons, category)
- local count = 0
- local db = E.db.sle.farm
- size = db.size
- local seedor = db.seedor
- local id
- seedBar:ClearAllPoints()
- if category == 1 then
- if seedor == "TOP" or seedor == "BOTTOM" then
- seedBar:Point(seedor.."LEFT", anchor, (E.PixelMode and 0 or -2), seedor == "TOP" and 0 or (E.PixelMode and 2 or 0))
- elseif seedor == "LEFT" or seedor == "RIGHT" then
- seedBar:Point("TOP"..seedor, anchor, E.PixelMode and 2 or (seedor == "LEFT" and 0 or 2), (E.PixelMode and -2 or -2))
- end
-
- else
- if _G[("FarmSeedBar%d"):format(category-1)]:IsShown() then
- if seedor == "TOP" or seedor == "BOTTOM" then
- seedBar:Point("TOPLEFT", _G[("FarmSeedBar%d"):format(category-1)], "TOPRIGHT", (E.PixelMode and 0 or -1), 0)
- elseif seedor == "LEFT" or seedor == "RIGHT" then
- seedBar:Point("TOPLEFT", _G[("FarmSeedBar%d"):format(category-1)], "BOTTOMLEFT", 0, (E.PixelMode and 0 or 1))
- end
- else
- F:UpdateSeedBarLayout(seedBar, anchor, buttons, category-1)
- end
- end
-
-
- for i, button in ipairs(buttons) do
- id = button:GetName():gsub("FarmButton", "")
- id = tonumber(id)
- button:ClearAllPoints()
- if not E.db.sle.farm.active or button.items > 0 then
- if seedor == "TOP" or seedor == "BOTTOM" then
- local mult = seedor == "TOP" and -1 or 1
- button:Point(seedor.."LEFT", seedBar, E.PixelMode and 1 or 2, mult*(count * (size+(E.PixelMode and 2 or 1)))-(E.PixelMode and 1 or 0))
- elseif seedor == "LEFT" or seedor == "RIGHT" then
- local mult = seedor == "RIGHT" and -1 or 1
- button:Point("TOPLEFT", seedBar, "TOPLEFT", mult*(count * (size+(E.PixelMode and 2 or 1)))-(E.PixelMode and 1 or 0), E.PixelMode and 1 or 2)
- end
- button:Show()
- button:Size(size, size)
- count = count + 1
- else
- button:Hide()
- end
- if E.db.sle.farm.quest then
- if F:QuestItems(id) then
- ActionButton_ShowOverlayGlow(button)
- else
- ActionButton_HideOverlayGlow(button)
- end
- else
- ActionButton_HideOverlayGlow(button)
- end
- end
-
- seedBar:Width(size+2)
- seedBar:Height(size+2)
-
- return count
-end
-
-function F:UpdateBar(bar, layoutfunc, zonecheck, anchor, buttons, category)
- bar:Show()
-
- local count = layoutfunc(self, bar, anchor, buttons, category)
- if (E.private.sle.farm.enable and count > 0 and zonecheck(self) and not InCombatLockdown()) then
- bar:Show()
- else
- bar:Hide()
- end
-end
-
-function F:BAG_UPDATE_COOLDOWN()
- F:InventoryUpdate()
- F:UpdateCooldown()
-end
-
-function F:Zone(event)
- if F:CanSeed() then
- F:RegisterEvent("BAG_UPDATE", "InventoryUpdate")
- F:RegisterEvent("BAG_UPDATE_COOLDOWN")
- F:RegisterEvent("UNIT_QUEST_LOG_CHANGED", "UpdateLayout")
-
- F:InventoryUpdate(event)
- F:UpdateLayout()
- Zcheck = true
- else
- F:UnregisterEvent("BAG_UPDATE")
- F:UnregisterEvent("BAG_UPDATE_COOLDOWN")
- F:UnregisterEvent("UNIT_QUEST_LOG_CHANGED")
- if Zcheck then
- F:UpdateLayout()
- Zcheck = false
- end
- end
-end
-
-function F:UpdateLayout(event, unit)
- if not SeedAnchor then return end
- --For updating borders after quest was complited. for some reason events fires before quest disappeares from log
- if event == "UNIT_QUEST_LOG_CHANGED" then
- if unit == "player" then
- E:Delay(1, F.UpdateLayout)
- else
- return
- end
- end
- F:UpdateBar(_G["FarmToolBar"], F.UpdateBarLayout, F.OnFarm, ToolAnchor, FtoolButtons)
- F:UpdateBar(_G["FarmPortalBar"], F.UpdateBarLayout, F.OnFarm, PortalAnchor, FportalButtons)
- for i=1, 5 do
- F:UpdateBar(_G[("FarmSeedBar%d"):format(i)], F.UpdateSeedBarLayout, F.CanSeed, SeedAnchor, FseedButtons[i], i)
- end
- F:ResizeFrames()
-end
-
-local function onClick(self, mousebutton)
- if mousebutton == "LeftButton" then
- self:SetAttribute("type", self.buttonType)
- self:SetAttribute(self.buttonType, self.sortname)
- if self.id and self.id ~= 2 and self.id ~= 4 and E.db.sle.farm.autotarget and UnitName("target") ~= L["Tilled Soil"] then
- F:AutoTarget(self)
- end
- if self.cooldown then
- self.cooldown:SetCooldown(GetItemCooldown(self.itemId))
- end
- elseif mousebutton == "RightButton" and self.allowDrop then
- self:SetAttribute("type", "click")
- local container, slot = SLE:BagSearch(self.itemId)
- if container and slot then
- PickupContainerItem(container, slot)
- DeleteCursorItem()
- F:InventoryUpdate()
- end
- end
-end
-
-local function onEnter(self)
- GameTooltip:SetOwner(self, 'ANCHOR_TOPLEFT', 2, 4)
- GameTooltip:ClearLines()
- GameTooltip:AddDoubleLine(self.sortname)
- if self.allowDrop then
- GameTooltip:AddLine(L['Right-click to drop the item.'])
- end
- GameTooltip:Show()
-end
-
-local function onLeave()
- GameTooltip:Hide()
-end
-
-function F:AutoTarget(button)
- local container, slot = SLE:BagSearch(button.itemId)
- if container and slot then
- button:SetAttribute("type", "macro")
- button:SetAttribute("macrotext", format("/targetexact %s \n/use %s %s", L["Tilled Soil"], container, slot))
- end
-end
-
-function F:CreateFarmButton(index, owner, buttonType, name, texture, allowDrop, id)
- size = E.db.sle.farm.size
- local button = CreateFrame("Button", ("FarmButton%d"):format(index), owner, "SecureActionButtonTemplate")
- button:Size(size, size)
- button:SetTemplate('Default', true)
-
- button.sortname = name
- button.itemId = index
- button.allowDrop = allowDrop
- button.buttonType = buttonType
- button.id = id
-
- button.icon = button:CreateTexture(nil, "OVERLAY")
- button.icon:SetTexture(texture)
- button.icon:SetTexCoord(0.1, 0.9, 0.1, 0.9)
- button.icon:SetInside()
-
- button.text = button:CreateFontString(nil, "OVERLAY")
- button.text:SetFont(E.media.normFont, 12, "OUTLINE")
- button.text:SetPoint("BOTTOMRIGHT", button, 1, 2)
-
- if select(3, GetItemCooldown(button.itemId)) == 1 then
- button.cooldown = CreateFrame("Cooldown", ("FarmButton%dCooldown"):format(index), button)
- button.cooldown:SetAllPoints(button)
- end
-
- button:SetScript("OnEnter", onEnter)
- button:SetScript("OnLeave", onLeave)
- button:SetScript("OnMouseDown", onClick)
-
- return button
-end
-
-function F:ResizeFrames()
- local seedor = E.db.sle.farm.seedor
- if seedor == "TOP" or seedor == "BOTTOM" then
- SeedAnchor:Size((size+(E.PixelMode and 2 or 1))*5-(E.PixelMode and 0 or 1), (size+(E.PixelMode and 2 or 1))*10-(E.PixelMode and 0 or 1))
- elseif seedor == "LEFT" or seedor == "RIGHT" then
- SeedAnchor:Size((size+(E.PixelMode and 2 or 1))*10-(E.PixelMode and 0 or 1), (size+(E.PixelMode and 2 or 1))*5-(E.PixelMode and 0 or 1))
- end
- ToolAnchor:Size((size+(E.PixelMode and 2 or 1))*5-(E.PixelMode and 0 or 1), size+(E.PixelMode and 2 or 1)-(E.PixelMode and 0 or 1))
- PortalAnchor:Size((size+(E.PixelMode and 2 or 1))*5-(E.PixelMode and 0 or 1), size+(E.PixelMode and 2 or 1)-(E.PixelMode and 0 or 1))
-end
-
-function F:FramesPosition()
- SeedAnchor:Point("LEFT", E.UIParent, "LEFT", 24, -160)
- ToolAnchor:Point("BOTTOMLEFT", SeedAnchor, "TOPLEFT", 0, E.PixelMode and 1 or 5)
- PortalAnchor:Point("BOTTOMLEFT", ToolAnchor, "TOPLEFT", 0, E.PixelMode and 1 or 5)
-end
-
-function F:CreateFrames()
- size = E.db.sle.farm.size
- SeedAnchor = CreateFrame("Frame", "SeedAnchor", E.UIParent)
- SeedAnchor:SetFrameStrata("BACKGROUND")
-
- ToolAnchor = CreateFrame("Frame", "ToolAnchor", E.UIParent)
- ToolAnchor:SetFrameStrata("BACKGROUND")
-
- PortalAnchor = CreateFrame("Frame", "PortalAnchor", E.UIParent)
- PortalAnchor:SetFrameStrata("BACKGROUND")
-
- F:ResizeFrames()
- F:FramesPosition()
-
- E:CreateMover(SeedAnchor, "FarmSeedMover", L["Farm Seed Bars"], nil, nil, nil, "ALL,S&L,S&L MISC")
- E:CreateMover(ToolAnchor, "FarmToolMover", L["Farm Tool Bar"], nil, nil, nil, "ALL,S&L,S&L MISC")
- E:CreateMover(PortalAnchor, "FarmPortalMover", L["Farm Portal Bar"], nil, nil, nil, "ALL,S&L,S&L MISC")
-
- for id, v in pairs(seeds) do
- seeds[id] = { v[1], GetItemInfo(id) }
- end
-
- for id, v in pairs(tools) do
- tools[id] = { GetItemInfo(id) }
- end
-
- for id, v in pairs(portals) do
- portals[id] = { v[1], GetItemInfo(id) }
- end
-
- for i = 1, 5 do
- local seedBar = CreateFrame("Frame", ("FarmSeedBar%d"):format(i), UIParent)
- seedBar:SetFrameStrata("BACKGROUND")
-
- seedBar:SetPoint("CENTER", SeedAnchor, "CENTER", 0, 0)
-
- FseedButtons[i] = FseedButtons[i] or {}
-
- for id, v in pairs(seeds) do
- if v[1] == i then
- tinsert(FseedButtons[i], F:CreateFarmButton(id, seedBar, "item", v[2], v[11], E.private.sle.farm.seedtrash, i))
- end
- tsort(FseedButtons[i], function(a, b) return a.sortname < b.sortname end)
- end
- end
-
- local toolBar = CreateFrame("Frame", "FarmToolBar", UIParent)
- toolBar:SetFrameStrata("BACKGROUND")
- toolBar:SetPoint("CENTER", ToolAnchor, "CENTER", 0, 0)
- for id, v in pairs(tools) do
- tinsert(FtoolButtons, F:CreateFarmButton(id, toolBar, "item", v[1], v[10], true, nil))
- end
-
- local portalBar = CreateFrame("Frame", "FarmPortalBar", UIParent)
- portalBar:SetFrameStrata("BACKGROUND")
- portalBar:SetPoint("CENTER", PortalAnchor, "CENTER", 0, 0)
- local playerFaction = UnitFactionGroup('player')
- for id, v in pairs(portals) do
- if v[1] == playerFaction then
- tinsert(FportalButtons, F:CreateFarmButton(id, portalBar, "item", v[2], v[11], false, nil))
- end
- end
-
- F:RegisterEvent("ZONE_CHANGED", "Zone")
- F:RegisterEvent("ZONE_CHANGED_NEW_AREA", "Zone")
- F:RegisterEvent("ZONE_CHANGED_INDOORS", "Zone")
-
- E:Delay(10, F.Zone)
-end
-
-function F:StartFarmBarLoader()
- F:UnregisterEvent("PLAYER_ENTERING_WORLD")
-
- local noItem = false
- -- preload item links to prevent errors
- for id, _ in pairs(seeds) do
- if select(2, GetItemInfo(id)) == nil then noItem = true end
- end
- for id, _ in pairs(tools) do
- if select(2, GetItemInfo(id)) == nil then noItem = true end
- end
- for id, _ in pairs(portals) do
- if select(2, GetItemInfo(id)) == nil then noItem = true end
- end
- if noItem then
- E:Delay(5, F.StartFarmBarLoader)
- else
- F.CreateFrames()
- end
-end
-
-function F:Initialize()
- if not E.private.sle.farm.enable then return end
-
- self:RegisterEvent("PLAYER_ENTERING_WORLD", "StartFarmBarLoader")
-end
-
+local E, L, V, P, G, _ = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
+local B = LibStub("LibBabble-SubZone-3.0")
+local BL = B:GetLookupTable()
+local F = E:NewModule('Farm', 'AceHook-3.0', 'AceEvent-3.0');
+local SLE = E:GetModule('SLE');
+
+local SeedAnchor, ToolAnchor, PortalAnchor
+local tsort = table.sort
+local farmzones = { BL["Sunsong Ranch"], BL["The Halfhill Market"] }
+local size
+local Zcheck = false
+
+FseedButtons = {}
+FtoolButtons = {}
+FportalButtons = {}
+
+local seeds = {
+ --Seeds general
+ [79102] = { 1 }, -- Green Cabbage
+ [89328] = { 1 }, -- Jade Squash
+ [80590] = { 1 }, -- Juicycrunch Carrot
+ [80592] = { 1 }, -- Mogu Pumpkin
+ [80594] = { 1 }, -- Pink Turnip
+ [80593] = { 1 }, -- Red Blossom Leek
+ [80591] = { 1 }, -- Scallion
+ [89329] = { 1 }, -- Striped Melon
+ [80595] = { 1 }, -- White Turnip
+ [89326] = { 1 }, -- Witchberry
+ --Bags general
+ [80809] = { 2 }, -- Green Cabbage
+ [89848] = { 2 }, -- Jade Squash
+ [84782] = { 2 }, -- Juicycrunch Carrot
+ [85153] = { 2 }, -- Mogu Pumpkin
+ [85162] = { 2 }, -- Pink Turnip
+ [85158] = { 2 }, -- Red Blossom Leek
+ [84783] = { 2 }, -- Scallion
+ [89849] = { 2 }, -- Striped Melon
+ [85163] = { 2 }, -- White Turnip
+ [89847] = { 2 }, -- Witchberry
+ --Seeds special
+ [85216] = { 3 }, -- Enigma
+ [85217] = { 3 }, -- Magebulb
+ [85219] = { 3 }, -- Ominous
+ [89202] = { 3 }, -- Raptorleaf
+ [85215] = { 3 }, -- Snakeroot
+ [89233] = { 3 }, -- Songbell
+ [91806] = { 3 }, -- Unstable Portal
+ [89197] = { 3 }, -- Windshear Cactus
+ --Bags special
+ [95449] = { 4 }, -- Enigma
+ [95451] = { 4 }, -- Magebulb
+ [95457] = { 4 }, -- Raptorleaf
+ [95447] = { 4 }, -- Snakeroot
+ [95445] = { 4 }, -- Songbell
+ [95454] = { 4 }, -- Windshear Cactus
+ --Trees lol
+ [85267] = { 5 }, -- Autumn Blossom Sapling
+ [85268] = { 5 }, -- Spring Blossom Sapling
+ [85269] = { 5 }, -- Winter Blossom Sapling
+}
+
+local addseeds = {
+ [95434] = { 80809 }, -- Green Cabbage
+ [95437] = { 89848 }, -- Jade Squash
+ [95436] = { 84782 }, -- Juicycrunch Carrot
+ [95438] = { 85153 }, -- Mogu Pumpkin
+ [95439] = { 85162 }, -- Pink Turnip
+ [95440] = { 85158 }, -- Red Blossom Leek
+ [95441] = { 84783 }, -- Scallion
+ [95442] = { 89849 }, -- Striped Melon
+ [95443] = { 85163 }, -- White Turnip
+ [95444] = { 89847 }, -- Witchberry
+
+ [95450] = { 95449 }, -- Enigma
+ [95452] = { 95451 }, -- Magebulb
+ [95458] = { 95457 }, -- Raptorleaf
+ [95448] = { 95447 }, -- Snakeroot
+ [95446] = { 95445 }, -- Songbell
+ [95456] = { 95454 }, -- Windshear Cactus
+}
+
+local tools = {
+ [79104] = { 1 }, -- Rusy Watering Can
+ [80513] = { 1 }, -- Vintage Bug Sprayer
+ [89880] = { 1 }, -- Dented Shovel
+ [89815] = { 1 }, -- Master Plow
+}
+
+local portals = {
+ [91850] = { "Horde" }, -- Orgrimmar Portal Shard
+ [91861] = { "Horde" }, -- Thunder Bluff Portal Shard
+ [91862] = { "Horde" }, -- Undercity Portal Shard
+ [91863] = { "Horde" }, -- Silvermoon Portal Shard
+
+ [91860] = { "Alliance" }, -- Stormwind Portal Shard
+ [91864] = { "Alliance" }, -- Ironforge Portal Shard
+ [91865] = { "Alliance" }, -- Darnassus Portal Shard
+ [91866] = { "Alliance" }, -- Exodar Portal Shard
+}
+
+local quests = {
+--Tillers counsil
+[31945] = {80591, 84783}, -- Gina, Scallion
+[31946] = {80590, 84782}, -- Mung-Mung, Juicycrunch Carrot
+[31947] = {79102, 80809}, -- Farmer Fung, Green Cabbage
+[31949] = {89326, 89847}, -- Nana, Witchberry
+[30527] = {89329, 89849}, -- Haohan, Striped Melon
+--Farmer Yoon
+[31943] = {89326, 89847}, -- Witchberry
+[31942] = {89329, 89849}, -- Striped Melon
+[31941] = {89328, 89848}, -- Jade Squash
+[31669] = {79102, 80809}, -- Green Cabbage
+[31670] = {80590, 84782}, -- Juicycrunch Carrot
+[31672] = {80592, 85153}, -- Mogu Pumpkin
+[31673] = {80593, 85158}, -- Red Blossom Leek
+[31674] = {80594, 85162}, -- Pink Turnip
+[31675] = {80595, 85163}, -- White Turnip
+[31671] = {80591, 84783}, -- Scallion
+--Work Orders
+[32645] = {89326, 89847}, -- Witchberry (Alliance Only)
+[32653] = {89329, 89849}, -- Striped Melon
+--[31941] = {89328, 89848}, -- Jade Squash
+[32649] = {79102, 80809}, -- Green Cabbage
+--[31670] = {80590, 84782}, -- Juicycrunch Carrot
+[32658] = {80592, 85153}, -- Mogu Pumpkin
+[32642] = {80593, 85158}, -- Red Blossom Leek (Horde Only)
+--[31674] = {80594, 85162}, -- Pink Turnip
+[32647] = {80595, 85163}, -- White Turnip
+--[31671] = {80591, 84783}, -- Scallion
+}
+
+local buttoncounts = {}
+
+function F:CanSeed()
+ local subzone = GetSubZoneText()
+ for _, zone in ipairs(farmzones) do
+ if (zone == subzone) then
+ return true
+ end
+ end
+ return false
+end
+
+function F:OnFarm()
+ return GetSubZoneText() == farmzones[1]
+end
+
+function F:InventoryUpdate(event)
+ if InCombatLockdown() then
+ F:RegisterEvent("PLAYER_REGEN_ENABLED", "InventoryUpdate")
+ return
+ else
+ F:UnregisterEvent("PLAYER_REGEN_ENABLED")
+ end
+
+ local SeedChange = false
+ for i = 1, 5 do
+ for _, button in ipairs(FseedButtons[i]) do
+ button.items = GetItemCount(button.itemId, nil, true)
+ if i == 2 or i == 4 then
+ for id, v in pairs(addseeds) do
+ if button.itemId == addseeds[id][1] then
+ local nCount = GetItemCount(id, nil, true)
+ button.items = button.items + nCount
+ end
+ end
+ end
+ if not buttoncounts[button.itemId] then
+ buttoncounts[button.itemId] = button.items
+ end
+ if button.items ~= buttoncounts[button.itemId] then
+ SeedChange = true
+ buttoncounts[button.itemId] = button.items
+ end
+ button.text:SetText(button.items)
+ button.icon:SetDesaturated(button.items == 0)
+ button.icon:SetAlpha(button.items == 0 and .25 or 1)
+ end
+ end
+
+ for _, button in ipairs(FtoolButtons) do
+ button.items = GetItemCount(button.itemId)
+ if not buttoncounts[button.itemId] then
+ buttoncounts[button.itemId] = button.items
+ end
+ if button.items ~= buttoncounts[button.itemId] then
+ SeedChange = true
+ buttoncounts[button.itemId] = button.items
+ end
+ button.icon:SetDesaturated(button.items == 0)
+ button.icon:SetAlpha(button.items == 0 and .25 or 1)
+ end
+
+ for _, button in ipairs(FportalButtons) do
+ button.items = GetItemCount(button.itemId)
+ if not buttoncounts[button.itemId] then
+ buttoncounts[button.itemId] = button.items
+ end
+ if button.items ~= buttoncounts[button.itemId] then
+ SeedChange = true
+ buttoncounts[button.itemId] = button.items
+ end
+ button.text:SetText(button.items)
+ button.icon:SetDesaturated(button.items == 0)
+ button.icon:SetAlpha(button.items == 0 and .25 or 1)
+ end
+
+ if event and event ~= "BAG_UPDATE_COOLDOWN" and SeedChange == true then
+ F:UpdateLayout()
+ end
+end
+
+function F:UpdateBarLayout(bar, anchor, buttons)
+ local count = 0
+ size = E.db.sle.farm.size
+ bar:ClearAllPoints()
+ bar:Point("LEFT", anchor, "LEFT", 0, 0)
+
+ for i, button in ipairs(buttons) do
+ button:ClearAllPoints()
+ if not button.items then F:InventoryUpdate() end
+ if not E.db.sle.farm.active or button.items > 0 then
+ button:Point("TOPLEFT", bar, "TOPLEFT", (count * (size+(E.PixelMode and 2 or 1)))+(E.PixelMode and 1 or 0), -1)
+ button:Show()
+ button:Size(size, size)
+ count = count + 1
+ else
+ button:Hide()
+ end
+ end
+
+ bar:Width(1)
+ bar:Height(size+2)
+
+ return count
+end
+
+function F:QuestItems(itemID)
+ for i = 1, GetNumQuestLogEntries() do
+ for qid, sid in pairs(quests) do
+ if qid == select(9,GetQuestLogTitle(i)) then
+ if itemID == sid[1] or itemID == sid[2] then
+ return true
+ end
+ end
+ end
+ end
+
+ return false
+end
+
+function F:UpdateButtonCooldown(button)
+ if button.cooldown then
+ button.cooldown:SetCooldown(GetItemCooldown(button.itemId))
+ end
+end
+
+function F:UpdateCooldown()
+ if not F:CanSeed() then return end
+
+ for i = 1, 5 do
+ for _, button in ipairs(FseedButtons[i]) do
+ F:UpdateButtonCooldown(button)
+ end
+ end
+ for _, button in ipairs(FtoolButtons) do
+ F:UpdateButtonCooldown(button)
+ end
+ for _, button in ipairs(FportalButtons) do
+ F:UpdateButtonCooldown(button)
+ end
+end
+
+function F:UpdateSeedBarLayout(seedBar, anchor, buttons, category)
+ local count = 0
+ local db = E.db.sle.farm
+ size = db.size
+ local seedor = db.seedor
+ local id
+ seedBar:ClearAllPoints()
+ if category == 1 then
+ if seedor == "TOP" or seedor == "BOTTOM" then
+ seedBar:Point(seedor.."LEFT", anchor, (E.PixelMode and 0 or -2), seedor == "TOP" and 0 or (E.PixelMode and 2 or 0))
+ elseif seedor == "LEFT" or seedor == "RIGHT" then
+ seedBar:Point("TOP"..seedor, anchor, E.PixelMode and 2 or (seedor == "LEFT" and 0 or 2), (E.PixelMode and -2 or -2))
+ end
+
+ else
+ if _G[("FarmSeedBar%d"):format(category-1)]:IsShown() then
+ if seedor == "TOP" or seedor == "BOTTOM" then
+ seedBar:Point("TOPLEFT", _G[("FarmSeedBar%d"):format(category-1)], "TOPRIGHT", (E.PixelMode and 0 or -1), 0)
+ elseif seedor == "LEFT" or seedor == "RIGHT" then
+ seedBar:Point("TOPLEFT", _G[("FarmSeedBar%d"):format(category-1)], "BOTTOMLEFT", 0, (E.PixelMode and 0 or 1))
+ end
+ else
+ F:UpdateSeedBarLayout(seedBar, anchor, buttons, category-1)
+ end
+ end
+
+
+ for i, button in ipairs(buttons) do
+ id = button:GetName():gsub("FarmButton", "")
+ id = tonumber(id)
+ button:ClearAllPoints()
+ if not E.db.sle.farm.active or button.items > 0 then
+ if seedor == "TOP" or seedor == "BOTTOM" then
+ local mult = seedor == "TOP" and -1 or 1
+ button:Point(seedor.."LEFT", seedBar, E.PixelMode and 1 or 2, mult*(count * (size+(E.PixelMode and 2 or 1)))-(E.PixelMode and 1 or 0))
+ elseif seedor == "LEFT" or seedor == "RIGHT" then
+ local mult = seedor == "RIGHT" and -1 or 1
+ button:Point("TOPLEFT", seedBar, "TOPLEFT", mult*(count * (size+(E.PixelMode and 2 or 1)))-(E.PixelMode and 1 or 0), E.PixelMode and 1 or 2)
+ end
+ button:Show()
+ button:Size(size, size)
+ count = count + 1
+ else
+ button:Hide()
+ end
+ if E.db.sle.farm.quest then
+ if F:QuestItems(id) then
+ ActionButton_ShowOverlayGlow(button)
+ else
+ ActionButton_HideOverlayGlow(button)
+ end
+ else
+ ActionButton_HideOverlayGlow(button)
+ end
+ end
+
+ seedBar:Width(size+2)
+ seedBar:Height(size+2)
+
+ return count
+end
+
+function F:UpdateBar(bar, layoutfunc, zonecheck, anchor, buttons, category)
+ bar:Show()
+
+ local count = layoutfunc(self, bar, anchor, buttons, category)
+ if (E.private.sle.farm.enable and count > 0 and zonecheck(self) and not InCombatLockdown()) then
+ bar:Show()
+ else
+ bar:Hide()
+ end
+end
+
+function F:BAG_UPDATE_COOLDOWN()
+ F:InventoryUpdate()
+ F:UpdateCooldown()
+end
+
+function F:Zone(event)
+ if F:CanSeed() then
+ F:RegisterEvent("BAG_UPDATE", "InventoryUpdate")
+ F:RegisterEvent("BAG_UPDATE_COOLDOWN")
+ F:RegisterEvent("UNIT_QUEST_LOG_CHANGED", "UpdateLayout")
+
+ F:InventoryUpdate(event)
+ F:UpdateLayout()
+ Zcheck = true
+ else
+ F:UnregisterEvent("BAG_UPDATE")
+ F:UnregisterEvent("BAG_UPDATE_COOLDOWN")
+ F:UnregisterEvent("UNIT_QUEST_LOG_CHANGED")
+ if Zcheck then
+ F:UpdateLayout()
+ Zcheck = false
+ end
+ end
+end
+
+function F:UpdateLayout(event, unit)
+ if not SeedAnchor then return end
+ --For updating borders after quest was complited. for some reason events fires before quest disappeares from log
+ if event == "UNIT_QUEST_LOG_CHANGED" then
+ if unit == "player" then
+ E:Delay(1, F.UpdateLayout)
+ else
+ return
+ end
+ end
+ F:UpdateBar(_G["FarmToolBar"], F.UpdateBarLayout, F.OnFarm, ToolAnchor, FtoolButtons)
+ F:UpdateBar(_G["FarmPortalBar"], F.UpdateBarLayout, F.OnFarm, PortalAnchor, FportalButtons)
+ for i=1, 5 do
+ F:UpdateBar(_G[("FarmSeedBar%d"):format(i)], F.UpdateSeedBarLayout, F.CanSeed, SeedAnchor, FseedButtons[i], i)
+ end
+ F:ResizeFrames()
+end
+
+local function onClick(self, mousebutton)
+ if mousebutton == "LeftButton" then
+ if InCombatLockdown() and not self.macro then
+ SLE:Print(L["We are sorry, but you can't do this now. Try again after the end of this combat."])
+ return
+ end
+ self:SetAttribute("type", self.buttonType)
+ self:SetAttribute(self.buttonType, self.sortname)
+ if self.id and self.id ~= 2 and self.id ~= 4 and E.db.sle.farm.autotarget and UnitName("target") ~= L["Tilled Soil"] then
+ F:AutoTarget(self)
+ end
+ if self.cooldown then
+ self.cooldown:SetCooldown(GetItemCooldown(self.itemId))
+ end
+ if not self.macro then self.macro = true end
+ elseif mousebutton == "RightButton" and self.allowDrop then
+ self:SetAttribute("type", "click")
+ local container, slot = SLE:BagSearch(self.itemId)
+ if container and slot then
+ PickupContainerItem(container, slot)
+ DeleteCursorItem()
+ F:InventoryUpdate()
+ end
+ end
+end
+
+local function onEnter(self)
+ GameTooltip:SetOwner(self, 'ANCHOR_TOPLEFT', 2, 4)
+ GameTooltip:ClearLines()
+ GameTooltip:AddDoubleLine(self.sortname)
+ if self.allowDrop then
+ GameTooltip:AddLine(L['Right-click to drop the item.'])
+ end
+ GameTooltip:Show()
+end
+
+local function onLeave()
+ GameTooltip:Hide()
+end
+
+function F:AutoTarget(button)
+ local container, slot = SLE:BagSearch(button.itemId)
+ if container and slot then
+ button:SetAttribute("type", "macro")
+ button:SetAttribute("macrotext", format("/targetexact %s \n/use %s %s", L["Tilled Soil"], container, slot))
+ end
+end
+
+function F:CreateFarmButton(index, owner, buttonType, name, texture, allowDrop, id)
+ size = E.db.sle.farm.size
+ local button = CreateFrame("Button", ("FarmButton%d"):format(index), owner, "SecureActionButtonTemplate")
+ button:Size(size, size)
+ button:SetTemplate('Default', true)
+
+ button.sortname = name
+ button.itemId = index
+ button.allowDrop = allowDrop
+ button.buttonType = buttonType
+ button.id = id
+ button.macro = false
+
+ button.icon = button:CreateTexture(nil, "OVERLAY")
+ button.icon:SetTexture(texture)
+ button.icon:SetTexCoord(0.1, 0.9, 0.1, 0.9)
+ button.icon:SetInside()
+
+ button.text = button:CreateFontString(nil, "OVERLAY")
+ button.text:SetFont(E.media.normFont, 12, "OUTLINE")
+ button.text:SetPoint("BOTTOMRIGHT", button, 1, 2)
+
+ if select(3, GetItemCooldown(button.itemId)) == 1 then
+ button.cooldown = CreateFrame("Cooldown", ("FarmButton%dCooldown"):format(index), button)
+ button.cooldown:SetAllPoints(button)
+ end
+
+ button:SetScript("OnEnter", onEnter)
+ button:SetScript("OnLeave", onLeave)
+ button:SetScript("OnMouseDown", onClick)
+
+ return button
+end
+
+function F:ResizeFrames()
+ local seedor = E.db.sle.farm.seedor
+ if seedor == "TOP" or seedor == "BOTTOM" then
+ SeedAnchor:Size((size+(E.PixelMode and 2 or 1))*5-(E.PixelMode and 0 or 1), (size+(E.PixelMode and 2 or 1))*10-(E.PixelMode and 0 or 1))
+ elseif seedor == "LEFT" or seedor == "RIGHT" then
+ SeedAnchor:Size((size+(E.PixelMode and 2 or 1))*10-(E.PixelMode and 0 or 1), (size+(E.PixelMode and 2 or 1))*5-(E.PixelMode and 0 or 1))
+ end
+ ToolAnchor:Size((size+(E.PixelMode and 2 or 1))*5-(E.PixelMode and 0 or 1), size+(E.PixelMode and 2 or 1)-(E.PixelMode and 0 or 1))
+ PortalAnchor:Size((size+(E.PixelMode and 2 or 1))*5-(E.PixelMode and 0 or 1), size+(E.PixelMode and 2 or 1)-(E.PixelMode and 0 or 1))
+end
+
+function F:FramesPosition()
+ SeedAnchor:Point("LEFT", E.UIParent, "LEFT", 24, -160)
+ ToolAnchor:Point("BOTTOMLEFT", SeedAnchor, "TOPLEFT", 0, E.PixelMode and 1 or 5)
+ PortalAnchor:Point("BOTTOMLEFT", ToolAnchor, "TOPLEFT", 0, E.PixelMode and 1 or 5)
+end
+
+function F:CreateFrames()
+ size = E.db.sle.farm.size
+ SeedAnchor = CreateFrame("Frame", "SeedAnchor", E.UIParent)
+ SeedAnchor:SetFrameStrata("BACKGROUND")
+
+ ToolAnchor = CreateFrame("Frame", "ToolAnchor", E.UIParent)
+ ToolAnchor:SetFrameStrata("BACKGROUND")
+
+ PortalAnchor = CreateFrame("Frame", "PortalAnchor", E.UIParent)
+ PortalAnchor:SetFrameStrata("BACKGROUND")
+
+ F:ResizeFrames()
+ F:FramesPosition()
+
+ E:CreateMover(SeedAnchor, "FarmSeedMover", L["Farm Seed Bars"], nil, nil, nil, "ALL,S&L,S&L MISC")
+ E:CreateMover(ToolAnchor, "FarmToolMover", L["Farm Tool Bar"], nil, nil, nil, "ALL,S&L,S&L MISC")
+ E:CreateMover(PortalAnchor, "FarmPortalMover", L["Farm Portal Bar"], nil, nil, nil, "ALL,S&L,S&L MISC")
+
+ for id, v in pairs(seeds) do
+ seeds[id] = { v[1], GetItemInfo(id) }
+ end
+
+ for id, v in pairs(tools) do
+ tools[id] = { GetItemInfo(id) }
+ end
+
+ for id, v in pairs(portals) do
+ portals[id] = { v[1], GetItemInfo(id) }
+ end
+
+ for i = 1, 5 do
+ local seedBar = CreateFrame("Frame", ("FarmSeedBar%d"):format(i), UIParent)
+ seedBar:SetFrameStrata("BACKGROUND")
+
+ seedBar:SetPoint("CENTER", SeedAnchor, "CENTER", 0, 0)
+
+ FseedButtons[i] = FseedButtons[i] or {}
+
+ for id, v in pairs(seeds) do
+ if v[1] == i then
+ tinsert(FseedButtons[i], F:CreateFarmButton(id, seedBar, "item", v[2], v[11], E.private.sle.farm.seedtrash, i))
+ end
+ tsort(FseedButtons[i], function(a, b) return a.sortname < b.sortname end)
+ end
+ end
+
+ local toolBar = CreateFrame("Frame", "FarmToolBar", UIParent)
+ toolBar:SetFrameStrata("BACKGROUND")
+ toolBar:SetPoint("CENTER", ToolAnchor, "CENTER", 0, 0)
+ for id, v in pairs(tools) do
+ tinsert(FtoolButtons, F:CreateFarmButton(id, toolBar, "item", v[1], v[10], true, nil))
+ end
+
+ local portalBar = CreateFrame("Frame", "FarmPortalBar", UIParent)
+ portalBar:SetFrameStrata("BACKGROUND")
+ portalBar:SetPoint("CENTER", PortalAnchor, "CENTER", 0, 0)
+ local playerFaction = UnitFactionGroup('player')
+ for id, v in pairs(portals) do
+ if v[1] == playerFaction then
+ tinsert(FportalButtons, F:CreateFarmButton(id, portalBar, "item", v[2], v[11], false, nil))
+ end
+ end
+
+ F:RegisterEvent("ZONE_CHANGED", "Zone")
+ F:RegisterEvent("ZONE_CHANGED_NEW_AREA", "Zone")
+ F:RegisterEvent("ZONE_CHANGED_INDOORS", "Zone")
+
+ E:Delay(10, F.Zone)
+end
+
+function F:StartFarmBarLoader()
+ F:UnregisterEvent("PLAYER_ENTERING_WORLD")
+
+ local noItem = false
+ -- preload item links to prevent errors
+ for id, _ in pairs(seeds) do
+ if select(2, GetItemInfo(id)) == nil then noItem = true end
+ end
+ for id, _ in pairs(tools) do
+ if select(2, GetItemInfo(id)) == nil then noItem = true end
+ end
+ for id, _ in pairs(portals) do
+ if select(2, GetItemInfo(id)) == nil then noItem = true end
+ end
+ if noItem then
+ E:Delay(5, F.StartFarmBarLoader)
+ else
+ F.CreateFrames()
+ end
+end
+
+function F:Initialize()
+ if not E.private.sle.farm.enable then return end
+
+ self:RegisterEvent("PLAYER_ENTERING_WORLD", "StartFarmBarLoader")
+end
+
E:RegisterModule(F:GetName())
\ No newline at end of file