Plugin Draw Resonators: Only run the redraw logic on zooming in when the level of portal is shown on map.

This commit is contained in:
Xelio 2013-09-03 21:27:21 +08:00
parent 745e78170b
commit 12fd84decb

View File

@ -2,7 +2,7 @@
// @id iitc-plugin-draw-resonators@xelio // @id iitc-plugin-draw-resonators@xelio
// @name IITC plugin: Draw resonators // @name IITC plugin: Draw resonators
// @category Layer // @category Layer
// @version 0.1.0.@@DATETIMEVERSION@@ // @version 0.1.1.@@DATETIMEVERSION@@
// @namespace https://github.com/jonatkins/ingress-intel-total-conversion // @namespace https://github.com/jonatkins/ingress-intel-total-conversion
// @updateURL @@UPDATEURL@@ // @updateURL @@UPDATEURL@@
// @downloadURL @@DOWNLOADURL@@ // @downloadURL @@DOWNLOADURL@@
@ -109,9 +109,7 @@ window.plugin.drawResonators.Render.prototype.createResonatorEntities = function
this.resonatorLayerGroup.addLayer(resonatorsWithConnector); this.resonatorLayerGroup.addLayer(resonatorsWithConnector);
// bring portal in front of resonator connector // bring portal in front of resonator connector
if(portal.options.guid in window.portals) { portal.bringToFront();
window.portals[portal.options.guid].bringToFront();
}
} }
window.plugin.drawResonators.Render.prototype.createResoMarker = function(resoData, resoLatLng, portalSelected) { window.plugin.drawResonators.Render.prototype.createResoMarker = function(resoData, resoLatLng, portalSelected) {
@ -147,11 +145,11 @@ window.plugin.drawResonators.Render.prototype.getResonatorLatLng = function(dist
} }
window.plugin.drawResonators.Render.prototype.deleteResonatorEntities = function(portalGuid) { window.plugin.drawResonators.Render.prototype.deleteResonatorEntities = function(portalGuid) {
if (portalGuid in this.resonators) { if (!(portalGuid in this.resonators)) return;
var r = this.resonators[portalGuid]; var r = this.resonators[portalGuid];
this.resonatorLayerGroup.removeLayer(r); this.resonatorLayerGroup.removeLayer(r);
delete this.resonators[portalGuid]; delete this.resonators[portalGuid];
}
} }
// Save zoom level before zoom, use to determine redraw of resonator // Save zoom level before zoom, use to determine redraw of resonator
@ -165,16 +163,25 @@ window.plugin.drawResonators.Render.prototype.handleResonatorEntitiesAfterZoom =
this.resonators = {}; this.resonators = {};
} else { } else {
// Redraw all resonators if they were deleted // Redraw all resonators if they were deleted
if(!this.isResonatorsShowBeforeZoom()) { if(this.isResonatorsShowBeforeZoom()) return;
for(var guid in window.portals) {
this.createResonatorEntities(window.portals[guid]); var render = this;
}
// loop through level of portals, only redraw if the level is shown on map
for(var level in window.portalsLayers) {
var portalsLayer = window.portalsLayers[level];
if(!map.hasLayer(portalsLayer)) continue;
portalsLayer.eachLayer(function(portal) {
render.createResonatorEntities(portal);
});
} }
} }
} }
window.plugin.drawResonators.Render.prototype.toggleSelectedStyle = function(portalGuid) { window.plugin.drawResonators.Render.prototype.toggleSelectedStyle = function(portalGuid) {
if (portalGuid in this.resonators) { if (!(portalGuid in this.resonators)) return;
var render = this; var render = this;
var portalSelected = selectedPortal === portalGuid; var portalSelected = selectedPortal === portalGuid;
var r = this.resonators[portalGuid]; var r = this.resonators[portalGuid];
@ -189,7 +196,6 @@ window.plugin.drawResonators.Render.prototype.toggleSelectedStyle = function(por
entity.setStyle(style); entity.setStyle(style);
}); });
}
} }
window.plugin.drawResonators.Render.prototype.addStyler = function(styler) { window.plugin.drawResonators.Render.prototype.addStyler = function(styler) {
@ -300,7 +306,7 @@ window.plugin.drawResonators.Options.prototype.getOption = function(name) {
} }
window.plugin.drawResonators.Options.prototype.changeOption = function(name, value) { window.plugin.drawResonators.Options.prototype.changeOption = function(name, value) {
if(!name in this._options) return false; if(!(name in this._options)) return false;
this._options[name] = value; this._options[name] = value;
this.storeLocal(name, this._options[name]); this.storeLocal(name, this._options[name]);
@ -312,10 +318,10 @@ window.plugin.drawResonators.Options.prototype.getStorageKey = function(name) {
window.plugin.drawResonators.Options.prototype.loadLocal = function(key, defaultValue) { window.plugin.drawResonators.Options.prototype.loadLocal = function(key, defaultValue) {
var objectJSON = localStorage[key]; var objectJSON = localStorage[key];
if(!objectJSON) { if(objectJSON) {
return defaultValue;
} else {
return JSON.parse(objectJSON); return JSON.parse(objectJSON);
} else {
return defaultValue;
} }
} }