plugin draw-resonators: clear resonators when portal is deselected. changed hooks used to handle things in a more logical way

This commit is contained in:
Jon Atkins 2013-12-13 05:49:17 +00:00
parent 3806b5143d
commit 1279179407

View File

@ -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.portalSelected = function(data) {
// new portal selected - clear any existing resonators..
window.plugin.drawResonators.levelLayerGroup.clearLayers();
window.plugin.drawResonators.drawData(data);
// 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) {
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 portalDetails = portal.portalDetails;
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();