ESOUI SVN EsoHeadMarkers

[/] [trunk/] [EsoheadMarkers/] [EsoheadCompass.lua] - Rev 5

Compare with Previous | Blame | View Log

local function EHMHarvestCallback( materialId, g_mapPinManager )
        if not (ZO_WorldMap_IsPinGroupShown(EHM.material[materialId].pinType) and EHM.compass) then
                return
        end
        local zone = GetMapName()
        local harvestNodes = EH.savedVars["harvest"].data[zone]
        if not harvestNodes then
                return
        end
        harvestNodes = harvestNodes[materialId]
        if harvestNodes then
                for _, node in pairs(harvestNodes) do
                        g_mapPinManager:CreatePin( EHM.material[materialId].pinType, node[1], node[2] )
                end
        end
end

local function EHMSkyshard( pinManager )
        if not (ZO_WorldMap_IsPinGroupShown("skyshard") and EHM.compass) then
                return
        end
        local zone = GetMapName()
        local skyshards = EHMShards[ zone ]
        if not skyshards then
                return
        end
        
        for _,shard in pairs(skyshards) do
                if not EHMNotFound(zone, shard[1], shard[2]) then
                        pinManager:CreatePin( "skyshard", shard[1], shard[2] )
                end
        end
end

local function EHMChestCallback( g_mapPinManager )
        if not (ZO_WorldMap_IsPinGroupShown("chest") and EHM.compass) then
                return
        end
        local zone = GetMapName()
        local chests = EH.savedVars["chest"].data[zone]
        if not chests then
                return
        end
        for _,chest in pairs(chests) do
                g_mapPinManager:CreatePin( "chest", chest[1], chest[2] )
        end
        
end

local function EHMCompass(str)
        input = tonumber(str)
        if input == 1 then
                d("Compass activated!")
        elseif input == 0 then
                d("Compass deactivated!")
        else
                d("/compass [state]")
                d("state should be 1 for on and 0 for off")
        end
        EHM.compass = (input == 1)
        COMPASS_PINS:RefreshPins()
end

function EHMInitializeCompass()
        
        for id, material in pairs( EHM.material ) do
                if id ~= 5 then --not sure how to handle provision
                        local i = id
                        COMPASS_PINS:AddCustomPin( material.pinType,
                                function(g_mapPinManager)
                                EHMHarvestCallback( i, g_mapPinManager )
                                end,
                                EHM.layouts[material.pinType]
                        )
                end
        end
        
        COMPASS_PINS:AddCustomPin("skyshard", EHMSkyshard, EHM.layouts["skyshard"])
        COMPASS_PINS:AddCustomPin("chest", EHMChestCallback, EHM.layouts["chest"])
        COMPASS_PINS:RefreshPins()
        SLASH_COMMANDS["/compass"] = EHMCompass
end

Compare with Previous | Blame