ESOUI SVN EsoHeadMarkers

[/] [trunk/] [EsoheadMarkers/] [EsoheadFilters.lua] - Blame information for rev 5

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 5 Shinni-694
local oldGetString = GetString
2 Shinni-694
local oldVars = WORLD_MAP_FILTERS.SetSavedVars
3 Shinni-694
local oldPVEPinSet
4 Shinni-694
local oldPVPPinSet
5 Shinni-694
local EsoheadMarkersFilters = { ["mining"] = "Ore",
6 Shinni-694
                                                                                        ["clothing"] = "Clothing Material",
7 Shinni-694
                                                                                        ["rune"] = "Runestone",
8 Shinni-694
                                                                                        ["alchemy"] = "Alchemy Ingredient",
9 Shinni-694
                                                                                        ["wood"] = "Wood",
10 Shinni-694
                                                                                        ["chest"] = "Chest",
11 Shinni-694
                                                                                        ["skyshard"] = "Uncollected Skyshards",
12 Shinni-694
                                                                                        ["found_skyshard"] = "Collected Skyshards",
13 Shinni-694
                                                                                        ["r"] = "Red",
14 Shinni-694
                                                                                        ["g"] = "Green",
15 Shinni-694
                                                                                        ["b"] = "Blue",
16 Shinni-694
                                                                                        ["w"] = "White"}
17 Shinni-694
local order = {"skyshard","found_skyshard","chest","mining","clothing","rune","alchemy","wood"}
18 Shinni-694
 
19 Shinni-694
-- the filter checkboxes display the localization string, retrieved by this function
20 Shinni-694
-- since there is no API to the filters, I had to hack a bit, to display my own strings :)
21 Shinni-694
function GetString( stringVariablePrefix, contextId )
22 Shinni-694
    if stringVariablePrefix == "SI_MAPFILTER" and EsoheadMarkersFilters[contextId] then
23 Shinni-694
        return EsoheadMarkersFilters[contextId]
24 Shinni-694
    else
25 Shinni-694
        return oldGetString( stringVariablePrefix, contextId )
26 Shinni-694
    end
27 Shinni-694
end
28 Shinni-694
 
29 Shinni-694
-- setsavedVars initializes the filter controlls for pve and pvp map type
30 Shinni-694
-- after this function is called WORLD_MAP_FILTERS.pvePanel are initialized and can be manipulated
31 Shinni-694
WORLD_MAP_FILTERS.SetSavedVars = function( self, savedVars )
32 Shinni-694
    oldVars( self, savedVars)
33 Shinni-694
 
34 Shinni-694
    oldPVEPinSet = self.pvePanel.SetPinFilter
35 Shinni-694
    oldPVPPinSet = self.pvpPanel.SetPinFilter
36 Shinni-694
    a = true
37 Shinni-694
    for _, pinType in ipairs(order) do
38 Shinni-694
        local pin = pinType
39 Shinni-694
        if #pin > 2 then
40 Shinni-694
                self.pvePanel.AddPinFilterCheckBox( self.pvePanel, pin, function() EHM.MapPins:RefreshPins( pin ) end)
41 Shinni-694
 
42 Shinni-694
                if pin ~= "skyshard" and pin ~= "found_skyshard" then
43 Shinni-694
                        self.pvePanel.AddPinFilterComboBox( self.pvePanel, pin.."color", function() EHM.MapPins:RefreshPins( pin ) end, "SI_MAPFILTER", "r", "g", "b", "w" )
44 Shinni-694
                end
45 Shinni-694
 
46 Shinni-694
                self.pvpPanel.AddPinFilterCheckBox( self.pvpPanel, pin, function() EHM.MapPins:RefreshPins( pin ) end)
47 Shinni-694
        end
48 Shinni-694
    end
49 Shinni-694
 
50 Shinni-694
--[[
51 Shinni-694
    self.pvePanel.SetPinFilter = function( self, mapPinGroup, checked )
52 Shinni-694
                oldPVEPinSet( self, mapPinGroup, checked )
53 Shinni-694
        MapPins:enablePins( mapPinGroup, checked )
54 Shinni-694
    end
55 Shinni-694
 
56 Shinni-694
    self.pvpPanel.SetPinFilter = function( self, mapPinGroup, checked )
57 Shinni-694
        oldPVPPinSet( self, mapPinGroup, checked )
58 Shinni-694
        MapPins:enablePins( mapPinGroup, checked )
59 Shinni-694
    end
60 Shinni-694
]]--
61 Shinni-694
 
62 Shinni-694
end
63 Shinni-694
 
64 Shinni-694
function EHMInitializeFilters()
65 Shinni-694
        for pinType, _ in pairs(EsoheadMarkersFilters) do
66 Shinni-694
                local pin = pinType
67 Shinni-694
                if #pin > 2 then
68 Shinni-694
                        if not WORLD_MAP_FILTERS.pvePanel:GetPinFilter(pin.."color") then
69 Shinni-694
                                WORLD_MAP_FILTERS.pvePanel:SetPinFilter(pin.."color", "w")
70 Shinni-694
                        end
71 Shinni-694
                end
72 Shinni-694
        end
73 Shinni-694
end
74 Shinni-694
 
75 Shinni-694
local oldData = ZO_MapPin.SetData
76 Shinni-694
ZO_MapPin.SetData = function( self, pinTypeId, pinTag)
77 Shinni-694
        local back, value
78 Shinni-694
        for pinType, _ in pairs(EsoheadMarkersFilters) do
79 Shinni-694
                if pinTypeId == _G[pinType] then
80 Shinni-694
                        value = ZO_WorldMap_GetFilterValue(pinType.."color")
81 Shinni-694
                        back = GetControl(self.m_Control, "Background")
82 Shinni-694
                        if value == "r" then
83 Shinni-694
                                back:SetColor(1,0.1,0.1,1)
84 Shinni-694
                        elseif value == "g" then
85 Shinni-694
                                back:SetColor(0.1,1,0.1,1)
86 Shinni-694
                        elseif value == "b" then
87 Shinni-694
                                back:SetColor(0.2,0.2,1,1)
88 Shinni-694
                        else
89 Shinni-694
                                back:SetColor(1,1,1,1)
90 Shinni-694
                        end
91 Shinni-694
                end
92 Shinni-694
        end
93 Shinni-694
        oldData(self, pinTypeId, pinTag)
94 Shinni-694
end