vanilla-wow-addons – Rev 1
?pathlinks?
--[[--------------------------------------------------------------------------------
ItemSyncCore Search Framework
Author: Derkyle
Website: http://www.manaflux.com
-----------------------------------------------------------------------------------]]
--lets setup the parse string
local ISync_sParse_type = "";
---------------------------------------------------
-- ISync:SF_SetSelectedID
---------------------------------------------------
function ISync:SF_SetSelectedID(frame, id, names)
UIDropDownMenu_SetSelectedID(frame, id);
if( not frame ) then
frame = this;
end
UIDropDownMenu_SetText(names[id].name, frame);
end
---------------------------------------------------
-- ISync:SF_Load()
---------------------------------------------------
function ISync:SF_Load()
--location
UIDropDownMenu_Initialize(ISync_Location_DropDown, ISync.Location_DD_Initialize);
ISync:SF_SetSelectedID(ISync_Location_DropDown, 1, ISYNC_DD_LOCATION);
UIDropDownMenu_JustifyText("LEFT", ISync_Location_DropDown)
--rarity
UIDropDownMenu_Initialize(ISync_Rarity_DropDown, ISync.Rarity_DD_Initialize);
ISync:SF_SetSelectedID(ISync_Rarity_DropDown, 1, ISYNC_DD_RARITY);
UIDropDownMenu_JustifyText("LEFT", ISync_Rarity_DropDown)
--weapon
UIDropDownMenu_Initialize(ISync_Weapons_DropDown, ISync.Weapons_DD_Initialize);
ISync:SF_SetSelectedID(ISync_Weapons_DropDown, 1, ISYNC_DD_WEAPONS);
UIDropDownMenu_JustifyText("LEFT", ISync_Weapons_DropDown)
--tradeskills
UIDropDownMenu_Initialize(ISync_Tradeskills_DropDown, ISync.Tradeskills_DD_Initialize);
ISync:SF_SetSelectedID(ISync_Tradeskills_DropDown, 1, ISYNC_DD_TRADESKILLS);
UIDropDownMenu_JustifyText("LEFT", ISync_Tradeskills_DropDown)
--armor
UIDropDownMenu_Initialize(ISync_Armor_DropDown, ISync.Armor_DD_Initialize);
ISync:SF_SetSelectedID(ISync_Armor_DropDown, 1, ISYNC_DD_ARMOR);
UIDropDownMenu_JustifyText("LEFT", ISync_Armor_DropDown)
--shield
UIDropDownMenu_Initialize(ISync_Shield_DropDown, ISync.Shield_DD_Initialize);
ISync:SF_SetSelectedID(ISync_Shield_DropDown, 1, ISYNC_DD_SHIELD);
UIDropDownMenu_JustifyText("LEFT", ISync_Shield_DropDown)
--Level
UIDropDownMenu_Initialize(ISync_Level_DropDown, ISync.Level_DD_Initialize);
ISync:SF_SetSelectedID(ISync_Level_DropDown, 1, ISYNC_DD_LEVEL);
UIDropDownMenu_JustifyText("LEFT", ISync_Level_DropDown)
--Setup the parser string
ISync_sParse_type = "^";
for i = 1, ISYNC_DB_MAX, 1 do
if(i ~= ISYNC_DB_MAX) then
ISync_sParse_type = ISync_sParse_type.."(.-)°";
else
ISync_sParse_type = ISync_sParse_type.."(.-)$";
end
end
end
---------------------------------------------------
-- ISync:Location_DD_Initialize()
---------------------------------------------------
function ISync:Location_DD_Initialize()
local info;
for i = 1, getn(ISYNC_DD_LOCATION), 1 do
info = { };
info.text = ISYNC_DD_LOCATION[i].name;
info.func = ISync.Location_DD_OnClick;
UIDropDownMenu_AddButton(info);
end
info = nil;
end
function ISync:Rarity_DD_Initialize()
local info;
for i = 1, getn(ISYNC_DD_RARITY), 1 do
info = { };
info.text = ISYNC_DD_RARITY[i].name;
info.func = ISync.Rarity_DD_OnClick;
UIDropDownMenu_AddButton(info);
end
info = nil;
end
function ISync:Weapons_DD_Initialize()
local info;
for i = 1, getn(ISYNC_DD_WEAPONS), 1 do
info = { };
info.text = ISYNC_DD_WEAPONS[i].name;
info.func = ISync.Weapons_DD_OnClick;
UIDropDownMenu_AddButton(info);
end
info = nil;
end
function ISync:Tradeskills_DD_Initialize()
local info;
for i = 1, getn(ISYNC_DD_TRADESKILLS), 1 do
info = { };
info.text = ISYNC_DD_TRADESKILLS[i].name;
info.func = ISync.Tradeskills_DD_OnClick;
UIDropDownMenu_AddButton(info);
end
info = nil;
end
function ISync:Armor_DD_Initialize()
local info;
for i = 1, getn(ISYNC_DD_ARMOR), 1 do
info = { };
info.text = ISYNC_DD_ARMOR[i].name;
info.func = ISync.Armor_DD_OnClick;
UIDropDownMenu_AddButton(info);
end
info = nil;
end
function ISync:Shield_DD_Initialize()
local info;
for i = 1, getn(ISYNC_DD_SHIELD), 1 do
info = { };
info.text = ISYNC_DD_SHIELD[i].name;
info.func = ISync.Shield_DD_OnClick;
UIDropDownMenu_AddButton(info);
end
info = nil;
end
function ISync:Level_DD_Initialize()
local info;
for i = 1, getn(ISYNC_DD_LEVEL), 1 do
info = { };
info.text = ISYNC_DD_LEVEL[i].name;
info.func = ISync.Level_DD_OnClick;
UIDropDownMenu_AddButton(info);
end
info = nil;
end
---------------------------------------------------
-- ISync:Location_DD_OnClick()
---------------------------------------------------
function ISync:Location_DD_OnClick()
UIDropDownMenu_SetSelectedID(ISync_Location_DropDown, this:GetID());
end
function ISync:Rarity_DD_OnClick()
UIDropDownMenu_SetSelectedID(ISync_Rarity_DropDown, this:GetID());
end
function ISync:Weapons_DD_OnClick()
UIDropDownMenu_SetSelectedID(ISync_Weapons_DropDown, this:GetID());
end
function ISync:Tradeskills_DD_OnClick()
UIDropDownMenu_SetSelectedID(ISync_Tradeskills_DropDown, this:GetID());
end
function ISync:Armor_DD_OnClick()
UIDropDownMenu_SetSelectedID(ISync_Armor_DropDown, this:GetID());
end
function ISync:Shield_DD_OnClick()
UIDropDownMenu_SetSelectedID(ISync_Shield_DropDown, this:GetID());
end
function ISync:Level_DD_OnClick()
UIDropDownMenu_SetSelectedID(ISync_Level_DropDown, this:GetID());
end
---------------------------------------------------
-- ISync:SF_MatchSearch()
---------------------------------------------------
function ISync:SF_MatchSearch(sID, sName, sQuality)
local sRarity = 0;
local sRarity_string = nil;
local sWL = 0;
local sWT = 0;
local sTS = 0;
local sAT = 0;
local sST = 0;
local sLvl1 = 0;
local sLvl2 = 0;
local storeLVL;
local sParseLink;
--check for stuff first
if(not sID) then return nil; end
if(not tonumber(sID)) then return nil; end
sID = tonumber(sID);
if(not ISyncDB) then return nil; end --the database should have been created
if(not ISyncDB[ISYNC_REALM_NUM][sID]) then return nil; end --don't even bother
ISYNC_SHOWSEARCH_CHK = 1; --set search activated
--------------------------------------------
--check rarity
if( ISYNC_DD_RARITY[UIDropDownMenu_GetSelectedID(ISync_Rarity_DropDown)].sortType ) then
local sortType = ISYNC_DD_RARITY[UIDropDownMenu_GetSelectedID(ISync_Rarity_DropDown)].sortType;
if( sortType == "NONE" ) then
sRarity = 0;
sRarity_string = nil; --just to make sure
else
sRarity = 1;
sRarity_string = sortType;
end
end
--------------------------------------------
--check weapon location
if( ISYNC_DD_LOCATION[UIDropDownMenu_GetSelectedID(ISync_Location_DropDown)].sortType ) then
local sortType = ISYNC_DD_LOCATION[UIDropDownMenu_GetSelectedID(ISync_Location_DropDown)].sortType;
if( sortType == "NONE" ) then
sWL = 0;
else
sWL = ISYNC_WeaponLocation[sortType];
end
end
--------------------------------------------
--------------------------------------------
--check weapon type
if( ISYNC_DD_WEAPONS[UIDropDownMenu_GetSelectedID(ISync_Weapons_DropDown)].sortType ) then
local sortType = ISYNC_DD_WEAPONS[UIDropDownMenu_GetSelectedID(ISync_Weapons_DropDown)].sortType;
if( sortType == "NONE" ) then
sWT = 0;
else
sWT = ISYNC_WeaponTypes[sortType];
end
end
--------------------------------------------
--------------------------------------------
--check tradeskill
if( ISYNC_DD_TRADESKILLS[UIDropDownMenu_GetSelectedID(ISync_Tradeskills_DropDown)].sortType ) then
local sortType = ISYNC_DD_TRADESKILLS[UIDropDownMenu_GetSelectedID(ISync_Tradeskills_DropDown)].sortType;
if( sortType == "NONE" ) then
sTS = 0;
else
sTS = ISYNC_TradeSkills[sortType];
end
end
--------------------------------------------
--------------------------------------------
--check armor type
if( ISYNC_DD_ARMOR[UIDropDownMenu_GetSelectedID(ISync_Armor_DropDown)].sortType ) then
local sortType = ISYNC_DD_ARMOR[UIDropDownMenu_GetSelectedID(ISync_Armor_DropDown)].sortType;
if( sortType == "NONE" ) then
sAT = 0;
else
sAT = ISYNC_ArmorTypes[sortType];
end
end
--------------------------------------------
--------------------------------------------
--check shield type
if( ISYNC_DD_SHIELD[UIDropDownMenu_GetSelectedID(ISync_Shield_DropDown)].sortType ) then
local sortType = ISYNC_DD_SHIELD[UIDropDownMenu_GetSelectedID(ISync_Shield_DropDown)].sortType;
if( sortType == "NONE" ) then
sST = 0;
else
sST = ISYNC_ShieldTypes[sortType];
end
end
--------------------------------------------
--------------------------------------------
--check level
if( ISYNC_DD_LEVEL[UIDropDownMenu_GetSelectedID(ISync_Level_DropDown)].sortType ) then
local sortType = ISYNC_DD_LEVEL[UIDropDownMenu_GetSelectedID(ISync_Level_DropDown)].sortType;
if( sortType == "NONE" ) then
sLvl1 = 0;
sLvl2 = 0;
else
if(sortType == 0) then
sLvl1 = 1;
sLvl2 = 5;
elseif(sortType == 1) then
sLvl1 = 5;
sLvl2 = 10;
elseif(sortType == 2) then
sLvl1 = 10;
sLvl2 = 15;
elseif(sortType == 3) then
sLvl1 = 15;
sLvl2 = 20;
elseif(sortType == 4) then
sLvl1 = 20;
sLvl2 = 25;
elseif(sortType == 5) then
sLvl1 = 25;
sLvl2 = 30;
elseif(sortType == 6) then
sLvl1 = 30;
sLvl2 = 35;
elseif(sortType == 7) then
sLvl1 = 35;
sLvl2 = 40;
elseif(sortType == 8) then
sLvl1 = 40;
sLvl2 = 45;
elseif(sortType == 9) then
sLvl1 = 45;
sLvl2 = 50;
elseif(sortType == 10) then
sLvl1 = 50;
sLvl2 = 55;
elseif(sortType == 11) then
sLvl1 = 55;
sLvl2 = 60;
end
end
end
--------------------------------------------
--Check Text
--------------------------------------
--------------------------------------
if(ISync_TextEditBox:GetText() and ISync_TextEditBox:GetText() ~= "") then
ISync_QuickSearch:SetText("");
if not string.find( string.lower(sName), string.lower( ISync_TextEditBox:GetText() ) ) then
return nil;
end
elseif(ISync_QuickSearch:GetText() and ISync_QuickSearch:GetText() ~= "") then
ISync_TextEditBox:SetText("");
if not string.find( string.lower(sName), string.lower( ISync_QuickSearch:GetText() ) ) then
return nil;
end
end
--------------------------------------
--------------------------------------
--Check Rarity
--------------------------------------
--------------------------------------
if(sRarity > 0 and sRarity_string ~= nil) then
if ( tonumber(sQuality) ~= tonumber(sRarity_string)) then
return nil;
end
end
--------------------------------------
--------------------------------------
local sStorePattern = ISyncDB[ISYNC_REALM_NUM][sID];
--Check Weapon Location
--------------------------------------
--------------------------------------
if(sWL > 0) then
sParseLink = nil; --reset
sParseLink = string.gsub(sStorePattern, ISync_sParse_type, "%3");
if (tonumber(sParseLink) and tonumber(sParseLink) ~= tonumber(sWL)) then
return nil;
end
end
--------------------------------------
--------------------------------------
--Check Weapon Type
--------------------------------------
--------------------------------------
if(sWT > 0) then
--get id
sParseLink = nil; --reset
sParseLink = string.gsub(sStorePattern, ISync_sParse_type, "%4");
if ( tonumber(sParseLink) and tonumber(sParseLink) ~= tonumber(sWT)) then
return nil;
end
end
--------------------------------------
--------------------------------------
--Check Tradeskill
--------------------------------------
--------------------------------------
if(sTS > 0) then
--get id
sParseLink = nil; --reset
sParseLink = string.gsub(sStorePattern, ISync_sParse_type, "%5");
if ( tonumber(sParseLink) and tonumber(sParseLink) ~= tonumber(sTS)) then
return nil;
end
end
--------------------------------------
--------------------------------------
--Check Armor Type
--------------------------------------
--------------------------------------
if(sAT > 0) then
--get id
sParseLink = nil; --reset
sParseLink = string.gsub(sStorePattern, ISync_sParse_type, "%6");
if ( tonumber(sParseLink) and tonumber(sParseLink) ~= tonumber(sAT)) then
return nil;
end
end
--------------------------------------
--------------------------------------
--Check Shield Type
--------------------------------------
--------------------------------------
if(sST > 0) then
--get id
sParseLink = nil; --reset
sParseLink = string.gsub(sStorePattern, ISync_sParse_type, "%7");
if ( tonumber(sParseLink) and tonumber(sParseLink)~= tonumber(sST)) then
return nil;
end
end
--------------------------------------
--------------------------------------
--Check Level
--------------------------------------
--------------------------------------
if(sLvl1 > 0 and sLvl2 > 0) then
--get id
sParseLink = nil; --reset
sParseLink = string.gsub(sStorePattern, ISync_sParse_type, "%8");
if (tonumber(sParseLink) and tonumber(sParseLink) >= sLvl1 and tonumber(sParseLink) <= sLvl2) then
--do nothing
else
return nil;
end
end
--------------------------------------
--------------------------------------
--if EVERYTHING checks out then return yes
--return yes
return 1;
end
---------------------------------------------------
-- ISync:SF_Close()
---------------------------------------------------
function ISync:SF_Close()
HideUIPanel(ISync_SearchFrame);
ISYNC_SHOWSEARCH_CHK = 0; --reset and refresh
--reset all to NONE
ISync:SF_SetSelectedID(ISync_Location_DropDown, 1, ISYNC_DD_LOCATION);
ISync:SF_SetSelectedID(ISync_Rarity_DropDown, 1, ISYNC_DD_RARITY);
ISync:SF_SetSelectedID(ISync_Weapons_DropDown, 1, ISYNC_DD_WEAPONS);
ISync:SF_SetSelectedID(ISync_Tradeskills_DropDown, 1, ISYNC_DD_TRADESKILLS);
ISync:SF_SetSelectedID(ISync_Armor_DropDown, 1, ISYNC_DD_ARMOR);
ISync:SF_SetSelectedID(ISync_Shield_DropDown, 1, ISYNC_DD_SHIELD);
ISync:SF_SetSelectedID(ISync_Level_DropDown, 1, ISYNC_DD_LEVEL);
ISync_TextEditBox:SetText("");
end
---------------------------------------------------
-- ISync:SF_Reset()
---------------------------------------------------
function ISync:SF_Reset()
--reset all to NONE
ISync:SF_SetSelectedID(ISync_Location_DropDown, 1, ISYNC_DD_LOCATION);
ISync:SF_SetSelectedID(ISync_Rarity_DropDown, 1, ISYNC_DD_RARITY);
ISync:SF_SetSelectedID(ISync_Weapons_DropDown, 1, ISYNC_DD_WEAPONS);
ISync:SF_SetSelectedID(ISync_Tradeskills_DropDown, 1, ISYNC_DD_TRADESKILLS);
ISync:SF_SetSelectedID(ISync_Armor_DropDown, 1, ISYNC_DD_ARMOR);
ISync:SF_SetSelectedID(ISync_Shield_DropDown, 1, ISYNC_DD_SHIELD);
ISync:SF_SetSelectedID(ISync_Level_DropDown, 1, ISYNC_DD_LEVEL);
ISync_TextEditBox:SetText("");
end
Generated by GNU Enscript 1.6.5.90.