From 12791794074d74f0258d93bd857d5d64d22d4b60 Mon Sep 17 00:00:00 2001 From: Jon Atkins Date: Fri, 13 Dec 2013 05:49:17 +0000 Subject: [PATCH] plugin draw-resonators: clear resonators when portal is deselected. changed hooks used to handle things in a more logical way --- plugins/draw-resonators.user.js | 37 +++++++++++++++++++++++++-------- 1 file changed, 28 insertions(+), 9 deletions(-) diff --git a/plugins/draw-resonators.user.js b/plugins/draw-resonators.user.js index e3da13b2..755b6d46 100644 --- a/plugins/draw-resonators.user.js +++ b/plugins/draw-resonators.user.js @@ -2,7 +2,7 @@ // @id iitc-plugin-draw-resonators@xelio // @name IITC plugin: Draw resonators // @category Layer -// @version 0.4.1.@@DATETIMEVERSION@@ +// @version 0.5.0.@@DATETIMEVERSION@@ // @namespace https://github.com/jonatkins/ingress-intel-total-conversion // @updateURL @@UPDATEURL@@ // @downloadURL @@DOWNLOADURL@@ @@ -24,14 +24,32 @@ window.plugin.drawResonators = function() {}; window.plugin.drawResonators.levelLayerGroup = null; -window.plugin.drawResonators.handledata = function(data) { -window.plugin.drawResonators.levelLayerGroup.clearLayers(); -window.plugin.drawResonators.drawData(data); +window.plugin.drawResonators.portalSelected = function(data) { + // new portal selected - clear any existing resonators.. + window.plugin.drawResonators.levelLayerGroup.clearLayers(); + + // then, if a portal is selected... + if (data.selectedPortalGuid) { + // draw it's resonators if we have it's details + var details = portalDetail.get(data.selectedPortalGuid); + if (details) { + window.plugin.drawResonators.drawData(details); + } + } } -window.plugin.drawResonators.drawData = function(portal) { -if(window.map.getZoom() < window.RESONATOR_MIN_ZOOM) return; - var portalDetails = portal.portalDetails; +window.plugin.drawResonators.portalDetailsLoaded = function(data) { + // the detailed data for a portal was just loaded - if this is the selected portal, draw them + + if (data.guid == window.selectedPortal) { + window.plugin.drawResonators.levelLayerGroup.clearLayers(); + window.plugin.drawResonators.drawData(data.details); + } +} + +window.plugin.drawResonators.drawData = function(portalDetails) { + if(window.map.getZoom() < window.RESONATOR_MIN_ZOOM) return; + var portalLatLng = [portalDetails.locationE6.latE6/1E6, portalDetails.locationE6.lngE6/1E6]; for(var i in portalDetails.resonatorArray.resonators) { resoData = portalDetails.resonatorArray.resonators[i]; @@ -108,7 +126,8 @@ var setup = function() { window.addLayerGroup('Resonators', window.plugin.drawResonators.levelLayerGroup, true); - window.addHook('portalDetailsUpdated', window.plugin.drawResonators.handledata); + window.addHook('portalSelected', window.plugin.drawResonators.portalSelected); + window.addHook('portalDetailsLoaded', window.plugin.drawResonators.portalDetailsLoaded); window.map.on('zoomend', function() { window.plugin.drawResonators.zoomListener(); @@ -117,4 +136,4 @@ var setup = function() { } // PLUGIN END ////////////////////////////////////////////////////////// -@@PLUGINEND@@ \ No newline at end of file +@@PLUGINEND@@