comparison WorldPlan.lua @ 13:06c9a30d48da

WorldQuests: - Filter interface controls reverted: Left-click to single out a category value, right-click to exclude. Hold shift to set multiple inclusion rules.
author Nenue
date Mon, 24 Oct 2016 04:37:07 -0400
parents a2b623043970
children 54adb0d4938b
comparison
equal deleted inserted replaced
12:3396a1171081 13:06c9a30d48da
199 local QuestsByReward = {} 199 local QuestsByReward = {}
200 local QuestsByTag = {} 200 local QuestsByTag = {}
201 local QuestsByID = {} 201 local QuestsByID = {}
202 local QuestPositions = {} 202 local QuestPositions = {}
203 local FilterInclusions = {rewardType = {}, worldQuestType = {}, factionID = {}} 203 local FilterInclusions = {rewardType = {}, worldQuestType = {}, factionID = {}}
204 local FilterExclusions = {rewardType = {}, worldQuestType = {}, factionID = {}}
205 local NotificationTypes = {} 204 local NotificationTypes = {}
206 local ZoneInfo = {} 205 local ZoneInfo = {}
207 local SummaryHeaders = {} 206 local SummaryHeaders = {}
208 207
209 local FreePins = {} 208 local FreePins = {}
710 tagAtlas = WORLD_QUEST_ICONS_BY_PROFESSION[id] 709 tagAtlas = WORLD_QUEST_ICONS_BY_PROFESSION[id]
711 end 710 end
712 elseif worldQuestType == LE_QUEST_TAG_TYPE_DUNGEON then 711 elseif worldQuestType == LE_QUEST_TAG_TYPE_DUNGEON then
713 tagAtlas = "worldquest-icon-dungeon" 712 tagAtlas = "worldquest-icon-dungeon"
714 end 713 end
714
715 pin.tagID = tagID 715 pin.tagID = tagID
716 pin.tagName = tagName 716 pin.tagName = tagName
717 pin.worldQuestType = worldQuestType 717 pin.worldQuestType = worldQuestType
718 pin.isElite = isElite 718 pin.isElite = isElite
719 pin.tradeskillLineIndex = tradeskillLineIndex 719 pin.tradeskillLineIndex = tradeskillLineIndex
952 local rType = self.rewardType 952 local rType = self.rewardType
953 self.filtered = nil 953 self.filtered = nil
954 self.whiteListed = nil 954 self.whiteListed = nil
955 self.used = true 955 self.used = true
956 956
957
958 local whiteListed, blackListed 957 local whiteListed, blackListed
959 for filterKey, includes in pairs(FilterInclusions) do 958 for filterKey, includes in pairs(FilterInclusions) do
960 local controlValue = self[filterKey] 959 local controlValue = self[filterKey]
961 if FilterInclusions[filterKey][controlValue] then 960 if controlValue then
962 self.filtered = nil 961 if includes[controlValue] == nil then
963 self.whiteListed = true 962 includes[controlValue] = true
964 break 963 elseif includes[controlValue] == false then
965 end 964 self.filtered = true
966 if FilterExclusions[filterKey][controlValue] then 965 break
967 self.filtered = true 966 end
968 end 967 end
969 end 968 end
970 969
971 if not TQ_IsActive(self.questID) then 970 if not TQ_IsActive(self.questID) then
972 self.used = nil 971 self.used = nil
1210 end 1209 end
1211 print('anchor to', self.relativeFrame:GetName()) 1210 print('anchor to', self.relativeFrame:GetName())
1212 1211
1213 local r, g, b, a = 1,1,1,1 1212 local r, g, b, a = 1,1,1,1
1214 if self.filterKey then 1213 if self.filterKey then
1214 if FilterInclusions[self.filterKey][self.filterValue] == nil then
1215 FilterInclusions[self.filterKey][self.filterValue] = true
1216 end
1217
1218
1215 if FilterInclusions[self.filterKey][self.filterValue] == true then 1219 if FilterInclusions[self.filterKey][self.filterValue] == true then
1216 r, g, b = 0, 1, 0 1220 r, g, b = 0, 1, 0
1217 elseif FilterExclusions[self.filterKey][self.filterValue] then 1221 elseif FilterInclusions[self.filterKey][self.filterValue] == false then
1218 r, g, b = 1, 0, 0 1222 r, g, b = 1, 0, 0
1219 end 1223 end
1220 end 1224 end
1221 self.iconBorder:SetVertexColor(r, g, b, a) 1225 self.iconBorder:SetVertexColor(r, g, b, a)
1222 self:UpdateSize() 1226 self:UpdateSize()
1246 local filterKey = self.filterKey 1250 local filterKey = self.filterKey
1247 local filterValue = self.filterValue 1251 local filterValue = self.filterValue
1248 1252
1249 1253
1250 local operation = opPrefix 1254 local operation = opPrefix
1251 local setExclude = (button == 'RightButton') 1255 local setInclude = (button == 'LeftButton')
1252 local filterTable = setExclude and FilterExclusions or FilterInclusions
1253 local opposingTable = setExclude and FilterInclusions or FilterExclusions
1254 1256
1255 1257
1256 if not filterKey then 1258 if not filterKey then
1257 -- resetting 1259 -- resetting
1258 for k,v in pairs(FilterInclusions) do 1260 for k,v in pairs(FilterInclusions) do
1259 wipe(v) 1261 wipe(v)
1260 end 1262 end
1261 for k,v in pairs(FilterExclusions) do
1262 wipe(v)
1263 end
1264 else 1263 else
1265 1264 FilterInclusions[filterKey][filterValue] = setInclude
1266 if filterTable[filterKey][filterValue] then 1265 if (not IsShiftKeyDown()) then
1267 filterTable[filterKey][filterValue] = nil 1266 for k, info in ipairs(WorldPlan.FilterOptions) do
1268 else
1269 filterTable[filterKey][filterValue] = true
1270 opposingTable[filterKey][filterValue] = nil
1271 end
1272
1273 local overrideFilters = IsControlKeyDown()
1274 local overrideOpposing = IsShiftKeyDown()
1275
1276 for k, info in ipairs(POI_FILTER_OPTIONS) do
1277 if (info.filterKey == filterKey) and (info.filterValue ~= filterValue) then 1267 if (info.filterKey == filterKey) and (info.filterValue ~= filterValue) then
1278 if overrideFilters then 1268 FilterInclusions[info.filterKey][info.filterValue] = (not setInclude)
1279 filterTable[info.filterKey][info.filterValue] = nil
1280 opposingTable[info.filterKey][info.filterValue] = true
1281 elseif overrideOpposing then
1282 filterTable[info.filterKey][info.filterValue] = nil
1283 opposingTable[info.filterKey][info.filterValue] = nil
1284 end
1285 end 1269 end
1286 end 1270 end
1287 1271 end
1288 1272 end
1289 end
1290
1291 print('|cFF00FF88Filter Update:', filterKey, filterValue, operation) 1273 print('|cFF00FF88Filter Update:', filterKey, filterValue, operation)
1292
1293 WorldPlan:RefreshAll() 1274 WorldPlan:RefreshAll()
1294 end 1275 end
1295 1276
1296 --%debug% 1277 --%debug%
1297 local SetTimedCallbackForAllPins = function(seconds, callback) 1278 local SetTimedCallbackForAllPins = function(seconds, callback)