Details | Compare with Previous | View Log
Line No. | Rev | Author | Line |
---|---|---|---|
1 | 5 | Shinni-694 | local function EHMDebug(str) |
2 | Shinni-694 | input = tonumber(str) |
|
3 | Shinni-694 | if input == 1 then |
|
4 | Shinni-694 | d("Debugmode activated!") |
|
5 | Shinni-694 | d("Click on a Skyshard to set it as (un-)collected.") |
|
6 | Shinni-694 | elseif input == 0 then |
|
7 | Shinni-694 | d("Debugmode deactivated!") |
|
8 | Shinni-694 | else |
|
9 | Shinni-694 | d("/debugskyshard [state]") |
|
10 | Shinni-694 | d("state should be 1 for on and 0 for off") |
|
11 | Shinni-694 | end |
|
12 | Shinni-694 | EHM.debug = (input == 1) |
|
13 | Shinni-694 | end |
|
14 | Shinni-694 | ||
15 | Shinni-694 | local function EHMUncollect( zone, x, y) |
|
16 | Shinni-694 | local foundShards = EHM.foundShards.zones[ zone ] |
|
17 | Shinni-694 | local minFound |
|
18 | Shinni-694 | local minDist = math.huge |
|
19 | Shinni-694 | ||
20 | Shinni-694 | if not foundShards then |
|
21 | Shinni-694 | return true |
|
22 | Shinni-694 | end |
|
23 | Shinni-694 | ||
24 | Shinni-694 | --get closest already collected shard |
|
25 | Shinni-694 | for id, shard in pairs( foundShards ) do |
|
26 | Shinni-694 | if zo_abs(shard[1] - x) + zo_abs(shard[2] - y) < minDist then |
|
27 | Shinni-694 | minFound = id |
|
28 | Shinni-694 | minDist = zo_abs(shard[1] - x) + zo_abs(shard[2] - y) |
|
29 | Shinni-694 | end |
|
30 | Shinni-694 | end |
|
31 | Shinni-694 | ||
32 | Shinni-694 | if not minFound then |
|
33 | Shinni-694 | return |
|
34 | Shinni-694 | end |
|
35 | Shinni-694 | foundShards[minFound] = nil |
|
36 | Shinni-694 | end |
|
37 | Shinni-694 | ||
38 | Shinni-694 | function EHMInitializeDebug() |
|
39 | Shinni-694 | ZO_MapPin.PIN_CLICK_HANDLERS[1][_G["skyshard"]] = { |
|
40 | Shinni-694 | { |
|
41 | Shinni-694 | callback = function(pin) |
|
42 | Shinni-694 | if not EHM.debug then |
|
43 | Shinni-694 | return |
|
44 | Shinni-694 | end |
|
45 | Shinni-694 | d("Marked Skyshard on:") |
|
46 | Shinni-694 | d(GetMapName() .. " x:" .. tostring(pin.normalizedX) .. " y:" .. tostring(pin.normalizedY)) |
|
47 | Shinni-694 | d("as discovered") |
|
48 | Shinni-694 | EHMFindShard(GetMapName(), pin.normalizedX, pin.normalizedY) |
|
49 | Shinni-694 | EHM.MapPins:RefreshPins() |
|
50 | Shinni-694 | end |
|
51 | Shinni-694 | } |
|
52 | Shinni-694 | } |
|
53 | Shinni-694 | ||
54 | Shinni-694 | ZO_MapPin.PIN_CLICK_HANDLERS[1][_G["found_skyshard"]] = { |
|
55 | Shinni-694 | { |
|
56 | Shinni-694 | callback = function(pin) |
|
57 | Shinni-694 | if not EHM.debug then |
|
58 | Shinni-694 | return |
|
59 | Shinni-694 | end |
|
60 | Shinni-694 | local zone = GetMapName() |
|
61 | Shinni-694 | d("Marked Skyshard on:") |
|
62 | Shinni-694 | d(zone .. " x:" .. tostring(pin.normalizedX) .. " y:" .. tostring(pin.normalizedY)) |
|
63 | Shinni-694 | d("as uncollected") |
|
64 | Shinni-694 | ||
65 | Shinni-694 | while (not EHMNotFound( zone, pin.normalizedX, pin.normalizedY) ) do |
|
66 | Shinni-694 | EHMUncollect(zone, pin.normalizedX, pin.normalizedY) |
|
67 | Shinni-694 | end |
|
68 | Shinni-694 | EHM.MapPins:RefreshPins() |
|
69 | Shinni-694 | end |
|
70 | Shinni-694 | } |
|
71 | Shinni-694 | } |
|
72 | Shinni-694 | EHM.debug = false |
|
73 | Shinni-694 | SLASH_COMMANDS["/debugskyshard"] = EHMDebug |
|
74 | Shinni-694 | end |