Mercurial > wow > wowdb-profiler
comparison Main.lua @ 141:2c2b7d91ca19 1.0.13
Record fishing coordinates based on the direction the character is facing. Minor cleanups.
| author | James D. Callahan III <jcallahan@curse.com> |
|---|---|
| date | Thu, 27 Sep 2012 08:03:44 -0500 |
| parents | f45ff137cf8f |
| children | 15ff29752523 |
comparison
equal
deleted
inserted
replaced
| 140:f45ff137cf8f | 141:2c2b7d91ca19 |
|---|---|
| 21 local LibStub = _G.LibStub | 21 local LibStub = _G.LibStub |
| 22 local WDP = LibStub("AceAddon-3.0"):NewAddon(ADDON_NAME, "AceEvent-3.0", "AceTimer-3.0") | 22 local WDP = LibStub("AceAddon-3.0"):NewAddon(ADDON_NAME, "AceEvent-3.0", "AceTimer-3.0") |
| 23 | 23 |
| 24 local deformat = LibStub("LibDeformat-3.0") | 24 local deformat = LibStub("LibDeformat-3.0") |
| 25 local LPJ = LibStub("LibPetJournal-2.0") | 25 local LPJ = LibStub("LibPetJournal-2.0") |
| 26 local MapData = LibStub("LibMapData-1.0") | |
| 26 | 27 |
| 27 local DatamineTT = _G.CreateFrame("GameTooltip", "WDPDatamineTT", _G.UIParent, "GameTooltipTemplate") | 28 local DatamineTT = _G.CreateFrame("GameTooltip", "WDPDatamineTT", _G.UIParent, "GameTooltipTemplate") |
| 28 DatamineTT:SetOwner(_G.WorldFrame, "ANCHOR_NONE") | 29 DatamineTT:SetOwner(_G.WorldFrame, "ANCHOR_NONE") |
| 29 | 30 |
| 30 | 31 |
| 318 char_db.bg_blacklist = nil | 319 char_db.bg_blacklist = nil |
| 319 end | 320 end |
| 320 end | 321 end |
| 321 | 322 |
| 322 | 323 |
| 323 local function UpdateDBEntryLocation(entry_type, identifier) | 324 local UpdateDBEntryLocation |
| 324 if not identifier then | 325 do |
| 325 return | 326 local pi = math.pi |
| 326 end | 327 |
| 327 local zone_name, area_id, x, y, map_level, difficulty_token = CurrentLocationData() | 328 -- Fishing node coordinate code based on code in GatherMate2 with permission from Kagaro. |
| 328 local entry = DBEntry(entry_type, identifier) | 329 local function FishingCoordinates(x, y, yard_width, yard_height) |
| 329 entry[difficulty_token] = entry[difficulty_token] or {} | 330 local facing = _G.GetPlayerFacing() |
| 330 entry[difficulty_token].locations = entry[difficulty_token].locations or {} | 331 |
| 331 | 332 if not facing then |
| 332 local zone_token = ("%s:%d"):format(zone_name, area_id) | 333 return x, y |
| 333 local zone_data = entry[difficulty_token].locations[zone_token] | 334 end |
| 334 | 335 local rad = facing + pi |
| 335 if not zone_data then | 336 return x + math.sin(rad) * 15 / yard_width, y + math.cos(rad) * 15 / yard_height |
| 336 zone_data = {} | 337 end |
| 337 entry[difficulty_token].locations[zone_token] = zone_data | 338 |
| 338 end | 339 |
| 339 local location_token = ("%s:%s:%s"):format(map_level, x, y) | 340 function UpdateDBEntryLocation(entry_type, identifier) |
| 340 zone_data[location_token] = zone_data[location_token] or true | 341 if not identifier then |
| 341 return zone_data | 342 return |
| 342 end | 343 end |
| 344 local zone_name, area_id, x, y, map_level, difficulty_token = CurrentLocationData() | |
| 345 local entry = DBEntry(entry_type, identifier) | |
| 346 entry[difficulty_token] = entry[difficulty_token] or {} | |
| 347 entry[difficulty_token].locations = entry[difficulty_token].locations or {} | |
| 348 | |
| 349 local zone_token = ("%s:%d"):format(zone_name, area_id) | |
| 350 local zone_data = entry[difficulty_token].locations[zone_token] | |
| 351 | |
| 352 if not zone_data then | |
| 353 zone_data = {} | |
| 354 entry[difficulty_token].locations[zone_token] = zone_data | |
| 355 end | |
| 356 | |
| 357 -- Special case for Fishing. | |
| 358 if current_action.spell_label == "FISHING" then | |
| 359 local yard_width, yard_height = MapData:MapArea(area_id, map_level) | |
| 360 | |
| 361 if yard_width > 0 and yard_height > 0 then | |
| 362 x, y = FishingCoordinates(x, y, yard_width, yard_height) | |
| 363 current_action.x = x | |
| 364 current_action.y = y | |
| 365 end | |
| 366 end | |
| 367 local location_token = ("%d:%d:%d"):format(map_level, x, y) | |
| 368 | |
| 369 zone_data[location_token] = zone_data[location_token] or true | |
| 370 return zone_data | |
| 371 end | |
| 372 end -- do-block | |
| 343 | 373 |
| 344 | 374 |
| 345 local function HandleItemUse(item_link, bag_index, slot_index) | 375 local function HandleItemUse(item_link, bag_index, slot_index) |
| 346 if not item_link then | 376 if not item_link then |
| 347 return | 377 return |
| 755 | 785 |
| 756 if map_level == loc_level and math.abs(x - loc_x) <= COORD_MAX and math.abs(y - loc_y) <= COORD_MAX then | 786 if map_level == loc_level and math.abs(x - loc_x) <= COORD_MAX and math.abs(y - loc_y) <= COORD_MAX then |
| 757 return | 787 return |
| 758 end | 788 end |
| 759 end | 789 end |
| 760 zone_data[("%s:%s:%s"):format(map_level, x, y)] = true | 790 zone_data[("%d:%d:%d"):format(map_level, x, y)] = true |
| 761 end | 791 end |
| 762 end -- do-block | 792 end -- do-block |
| 763 | 793 |
| 764 | 794 |
| 765 ----------------------------------------------------------------------- | 795 ----------------------------------------------------------------------- |
| 1029 end | 1059 end |
| 1030 end -- do-block | 1060 end -- do-block |
| 1031 | 1061 |
| 1032 | 1062 |
| 1033 function WDP:CURSOR_UPDATE(event_name) | 1063 function WDP:CURSOR_UPDATE(event_name) |
| 1034 if current_action.fishing_target or _G.Minimap:IsMouseOver() or not private.SPELL_FLAGS_BY_LABEL[current_action.spell_label] then | 1064 if current_action.fishing_target or _G.Minimap:IsMouseOver() or current_action.spell_label ~= "FISHING" then |
| 1035 return | 1065 return |
| 1036 end | 1066 end |
| 1037 local text = _G["GameTooltipTextLeft1"]:GetText() | 1067 local text = _G["GameTooltipTextLeft1"]:GetText() |
| 1038 | 1068 |
| 1039 if not text or text == "Fishing Bobber" then | 1069 if not text or text == "Fishing Bobber" then |
| 1165 end, | 1195 end, |
| 1166 [AF.OBJECT] = function() | 1196 [AF.OBJECT] = function() |
| 1167 GenericLootUpdate("objects", InstanceDifficultyToken()) | 1197 GenericLootUpdate("objects", InstanceDifficultyToken()) |
| 1168 end, | 1198 end, |
| 1169 [AF.ZONE] = function() | 1199 [AF.ZONE] = function() |
| 1170 local location_token = ("%s:%s:%s"):format(current_loot.map_level, current_loot.x, current_loot.y) | 1200 local location_token = ("%d:%d:%d"):format(current_loot.map_level, current_loot.x, current_loot.y) |
| 1171 | 1201 |
| 1172 -- This will start life as a boolean true. | 1202 -- This will start life as a boolean true. |
| 1173 if _G.type(current_loot.zone_data[location_token]) ~= "table" then | 1203 if _G.type(current_loot.zone_data[location_token]) ~= "table" then |
| 1174 current_loot.zone_data[location_token] = { | 1204 current_loot.zone_data[location_token] = { |
| 1175 drops = {} | 1205 drops = {} |
