From 9035e966f1445e61b01f1dd032f9decc55a6a379 Mon Sep 17 00:00:00 2001 From: vita10gy Date: Sat, 23 Feb 2013 16:01:38 -0600 Subject: [PATCH 01/11] Portal Weakness Colors --- plugins/README.md | 2 +- plugins/show-portal-weakness.user.js | 44 ++++++++++++++++------------ 2 files changed, 27 insertions(+), 19 deletions(-) diff --git a/plugins/README.md b/plugins/README.md index 25d781fd..db11bac2 100644 --- a/plugins/README.md +++ b/plugins/README.md @@ -12,7 +12,7 @@ Available Plugins - [**Compute AP Stats**](https://raw.github.com/breunigs/ingress-intel-total-conversion/gh-pages/plugins/compute-ap-stats.user.js) Shows the potential AP an agent could obtain by destroying and rebuilding all the portals in the current zoom area. - [**Draw Tools**](https://raw.github.com/breunigs/ingress-intel-total-conversion/gh-pages/plugins/draw-tools.user.js) allows to draw circles and lines on the map to aid you with planning your next big field. [View screenshot](http://breunigs.github.com/ingress-intel-total-conversion/screenshots/plugin_draw_tools.png) - [**Guess Player Level**](https://raw.github.com/breunigs/ingress-intel-total-conversion/gh-pages/plugins/guess-player-levels.user.js) looks for the highest placed resonator per player in the current view to guess the player level. -- [**Highlight Weakened Portals**](https://raw.github.com/breunigs/ingress-intel-total-conversion/gh-pages/plugins/show-portal-weakness.user.js) fill portals with red to indicate portal's state of disrepair. The brighter the color the more attention needed (recharge, shields, resonators). A dashed portal means a resonator is missing. +- [**Highlight Weakened Portals**](https://raw.github.com/breunigs/ingress-intel-total-conversion/gh-pages/plugins/show-portal-weakness.user.js) fill portals with red to indicate portal's state of disrepair. The brighter the color the more attention needed (recharge, shields, resonators). A dashed portal means a resonator is missing. Red, needs energy and shields. Orange, only needs energy (either recharge or resonators). Yellow, only needs shields. - [**Player Tracker**](https://raw.github.com/breunigs/ingress-intel-total-conversion/gh-pages/plugins/player-tracker.user.js) Draws trails for user actions in the last hour. At the last known location there’s a tooltip that shows the data in a table. [View screenshot](http://breunigs.github.com/ingress-intel-total-conversion/screenshots/plugin_player_tracker.png). - [**Render Limit Increase**](https://raw.github.com/breunigs/ingress-intel-total-conversion/gh-pages/plugins/render-limit-increase.user.js) increases render limits. Good for high density areas (e.g. London, UK) and faster PCs. - [**Resonator Display Zoom Level Decrease**](https://raw.github.com/breunigs/ingress-intel-total-conversion/gh-pages/plugins/resonator-display-zoom-level-decrease.user.js) Resonator start displaying earlier. diff --git a/plugins/show-portal-weakness.user.js b/plugins/show-portal-weakness.user.js index 332605d8..d52ac658 100644 --- a/plugins/show-portal-weakness.user.js +++ b/plugins/show-portal-weakness.user.js @@ -1,11 +1,11 @@ // ==UserScript== // @id iitc-plugin-show-portal-weakness@vita10gy // @name iitc: show portal weakness -// @version 0.2 +// @version 0.3 // @namespace https://github.com/breunigs/ingress-intel-total-conversion // @updateURL https://raw.github.com/breunigs/ingress-intel-total-conversion/gh-pages/plugins/show-portal-weakness.user.js // @downloadURL https://raw.github.com/breunigs/ingress-intel-total-conversion/gh-pages/plugins/show-portal-weakness.user.js -// @description Uses the fill color of the portals to denote if the portal is weak (Needs recharging, missing a resonator, needs shields) +// @description Uses the fill color of the portals to denote if the portal is weak (Needs recharging, missing a resonator, needs shields) Red, needs energy and shields. Orange, only needs energy (either recharge or resonators). Yellow, only needs shields. // @include http://www.ingress.com/intel* // @match http://www.ingress.com/intel* // ==/UserScript== @@ -24,26 +24,26 @@ window.plugin.portalWeakness.portalAdded = function(data) { var d = data.portal.options.details; var portal_weakness = 0; - if(getTeam(d) != 0) - { - if(window.getTotalPortalEnergy(d)> 0 && window.getCurrentPortalEnergy(d) < window.getTotalPortalEnergy(d)) - { + if(getTeam(d) != 0) { + var only_shields = true; + var missing_shields = 0; + if(window.getTotalPortalEnergy(d)> 0 && window.getCurrentPortalEnergy(d) < window.getTotalPortalEnergy(d)) { portal_weakness = 1 - (window.getCurrentPortalEnergy(d)/window.getTotalPortalEnergy(d)); + only_shields = false; } //Ding the portal for every missing sheild. - $.each(d.portalV2.linkedModArray, function(ind, mod) - { - if(mod == null) - { - portal_weakness += .03; + $.each(d.portalV2.linkedModArray, function(ind, mod) { + if(mod == null) { + missing_shields++; + portal_weakness += .08; } }); //Ding the portal for every missing resonator. var resCount = 0; - $.each(d.resonatorArray.resonators, function(ind, reso) - { + $.each(d.resonatorArray.resonators, function(ind, reso) { if(reso == null) { portal_weakness += .125; + only_shields = false; } else { resCount++; @@ -57,11 +57,19 @@ window.plugin.portalWeakness.portalAdded = function(data) { portal_weakness = 1; } - if(portal_weakness>0) - { - var color = 'red'; - var fill_opacity = Math.round((portal_weakness*.8 + .2)*100)/100; - var params = {fillColor: color, fillOpacity: fill_opacity, radius: data.portal.options.radius+1}; + if(portal_weakness>0) { + var fill_opacity = portal_weakness*.7 + .3; + var color = 'orange'; + if(only_shields) { + color = 'yellow'; + //If only shields are missing, make portal yellow, but fill more than usual since pale yellow is basically invisible + fill_opacity = missing_shields*.15 + .1; + } + else if(missing_shields>0) { + color = 'red'; + } + fill_opacity = Math.round(fill_opacity*100)/100; + var params = {fillColor: color, fillOpacity: fill_opacity}; if(resCount<8) { // Hole per missing resonator From 335e84e7ce849ec25fcb125e2aaec1ac0d51941b Mon Sep 17 00:00:00 2001 From: vita10gy Date: Sat, 23 Feb 2013 17:27:54 -0600 Subject: [PATCH 02/11] Fixing Nits --- plugins/show-portal-weakness.user.js | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/plugins/show-portal-weakness.user.js b/plugins/show-portal-weakness.user.js index d52ac658..fa83fcec 100644 --- a/plugins/show-portal-weakness.user.js +++ b/plugins/show-portal-weakness.user.js @@ -24,7 +24,7 @@ window.plugin.portalWeakness.portalAdded = function(data) { var d = data.portal.options.details; var portal_weakness = 0; - if(getTeam(d) != 0) { + if(getTeam(d) !== 0) { var only_shields = true; var missing_shields = 0; if(window.getTotalPortalEnergy(d)> 0 && window.getCurrentPortalEnergy(d) < window.getTotalPortalEnergy(d)) { @@ -33,7 +33,7 @@ window.plugin.portalWeakness.portalAdded = function(data) { } //Ding the portal for every missing sheild. $.each(d.portalV2.linkedModArray, function(ind, mod) { - if(mod == null) { + if(mod === null) { missing_shields++; portal_weakness += .08; } @@ -41,36 +41,34 @@ window.plugin.portalWeakness.portalAdded = function(data) { //Ding the portal for every missing resonator. var resCount = 0; $.each(d.resonatorArray.resonators, function(ind, reso) { - if(reso == null) { + if(reso === null) { portal_weakness += .125; only_shields = false; - } - else { + } else { resCount++; } }); - if(portal_weakness<0) { + if(portal_weakness < 0) { portal_weakness = 0; } - if(portal_weakness>1) + if(portal_weakness > 1) { portal_weakness = 1; } - if(portal_weakness>0) { + if(portal_weakness > 0) { var fill_opacity = portal_weakness*.7 + .3; var color = 'orange'; if(only_shields) { color = 'yellow'; //If only shields are missing, make portal yellow, but fill more than usual since pale yellow is basically invisible fill_opacity = missing_shields*.15 + .1; - } - else if(missing_shields>0) { + } else if(missing_shields > 0) { color = 'red'; } fill_opacity = Math.round(fill_opacity*100)/100; var params = {fillColor: color, fillOpacity: fill_opacity}; - if(resCount<8) + if(resCount < 8) { // Hole per missing resonator var dash = new Array(8-resCount + 1).join("1,4,") + "100,0" From 48ee7ce2af2e5470997bc52bbbfc83ddac28bae8 Mon Sep 17 00:00:00 2001 From: vita10gy Date: Sat, 23 Feb 2013 17:36:55 -0600 Subject: [PATCH 03/11] Missed one --- plugins/show-portal-weakness.user.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/show-portal-weakness.user.js b/plugins/show-portal-weakness.user.js index fa83fcec..4314a97a 100644 --- a/plugins/show-portal-weakness.user.js +++ b/plugins/show-portal-weakness.user.js @@ -27,7 +27,7 @@ window.plugin.portalWeakness.portalAdded = function(data) { if(getTeam(d) !== 0) { var only_shields = true; var missing_shields = 0; - if(window.getTotalPortalEnergy(d)> 0 && window.getCurrentPortalEnergy(d) < window.getTotalPortalEnergy(d)) { + if(window.getTotalPortalEnergy(d) > 0 && window.getCurrentPortalEnergy(d) < window.getTotalPortalEnergy(d)) { portal_weakness = 1 - (window.getCurrentPortalEnergy(d)/window.getTotalPortalEnergy(d)); only_shields = false; } From ad234ce84d28eab83b3c5103006c7e05254b0b6f Mon Sep 17 00:00:00 2001 From: vita10gy Date: Sat, 23 Feb 2013 18:44:57 -0600 Subject: [PATCH 04/11] More Nits --- plugins/show-portal-weakness.user.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/plugins/show-portal-weakness.user.js b/plugins/show-portal-weakness.user.js index 4314a97a..aef05e06 100644 --- a/plugins/show-portal-weakness.user.js +++ b/plugins/show-portal-weakness.user.js @@ -26,7 +26,7 @@ window.plugin.portalWeakness.portalAdded = function(data) { var portal_weakness = 0; if(getTeam(d) !== 0) { var only_shields = true; - var missing_shields = 0; + var missing_shields = 0; if(window.getTotalPortalEnergy(d) > 0 && window.getCurrentPortalEnergy(d) < window.getTotalPortalEnergy(d)) { portal_weakness = 1 - (window.getCurrentPortalEnergy(d)/window.getTotalPortalEnergy(d)); only_shields = false; @@ -61,7 +61,8 @@ window.plugin.portalWeakness.portalAdded = function(data) { var color = 'orange'; if(only_shields) { color = 'yellow'; - //If only shields are missing, make portal yellow, but fill more than usual since pale yellow is basically invisible + //If only shields are missing, make portal yellow + //but fill more than usual since pale yellow is basically invisible fill_opacity = missing_shields*.15 + .1; } else if(missing_shields > 0) { color = 'red'; From af5bb02db7d077b96554472dbfcd3205d447a60d Mon Sep 17 00:00:00 2001 From: vita10gy Date: Sun, 24 Feb 2013 16:08:12 -0600 Subject: [PATCH 05/11] Nits --- plugins/show-portal-weakness.user.js | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/plugins/show-portal-weakness.user.js b/plugins/show-portal-weakness.user.js index aef05e06..3e272dde 100644 --- a/plugins/show-portal-weakness.user.js +++ b/plugins/show-portal-weakness.user.js @@ -51,8 +51,7 @@ window.plugin.portalWeakness.portalAdded = function(data) { if(portal_weakness < 0) { portal_weakness = 0; } - if(portal_weakness > 1) - { + if(portal_weakness > 1) { portal_weakness = 1; } @@ -62,15 +61,14 @@ window.plugin.portalWeakness.portalAdded = function(data) { if(only_shields) { color = 'yellow'; //If only shields are missing, make portal yellow - //but fill more than usual since pale yellow is basically invisible + // but fill more than usual since pale yellow is basically invisible fill_opacity = missing_shields*.15 + .1; } else if(missing_shields > 0) { color = 'red'; } fill_opacity = Math.round(fill_opacity*100)/100; var params = {fillColor: color, fillOpacity: fill_opacity}; - if(resCount < 8) - { + if(resCount < 8) { // Hole per missing resonator var dash = new Array(8-resCount + 1).join("1,4,") + "100,0" params["dashArray"] = dash; From 4ecec63a0d6644e67e713cf59660f76533268f68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Cheng=20=28=E9=84=AD=E9=83=81=E9=82=A6=29?= Date: Sun, 24 Feb 2013 22:56:16 +0800 Subject: [PATCH 06/11] Show full portal capture time on tooltips --- USERGUIDE.md | 2 +- code/portal_detail_display.js | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/USERGUIDE.md b/USERGUIDE.md index c345ab4b..643147c1 100644 --- a/USERGUIDE.md +++ b/USERGUIDE.md @@ -117,7 +117,7 @@ Starting from the top, the sidebar shows this information: “Random Details” are displayed in four columns. The outer ones show the data while the inner ones are the titles. - owner: who deployed the first resonator after it has been neutral/unclaimed. -- since: when was the first resonator deployed after it has been neutral/unclaimed. +- since: when was the first resonator deployed after it has been neutral/unclaimed. The reasonators decay every 24hrs from capture. Move the cursor over it to show the full date time. - range: shows how far links made from this portal can be. Click on the value to zoom out to link range. The red circle shows how far links may reach. - energy: shows current and maximum energy if fully charged. The tooltip contains the exact numbers. - links: shows incoming and outgoing links. The tooltip explains the icons. diff --git a/code/portal_detail_display.js b/code/portal_detail_display.js index ffd653c9..f930d5ca 100644 --- a/code/portal_detail_display.js +++ b/code/portal_detail_display.js @@ -26,7 +26,10 @@ window.renderPortalDetails = function(guid) { : null; var playerText = player ? ['owner', player] : null; - var time = d.captured ? unixTimeToString(d.captured.capturedTime) : null; + var time = d.captured + ? '' + + unixTimeToString(d.captured.capturedTime) + '' + : null; var sinceText = time ? ['since', time] : null; var linkedFields = ['fields', d.portalV2.linkedFields.length]; From 1e4c372bdd75b16e3bd0df93c7c285f85161838f Mon Sep 17 00:00:00 2001 From: Cameron Moon Date: Mon, 25 Feb 2013 15:34:32 +1100 Subject: [PATCH 07/11] Changed all instances of Enlightenment to Enlightened --- README.md | 2 +- USERGUIDE.md | 2 +- code/game_status.js | 2 +- plugins/guess-player-levels.user.js | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 2dde6289..68662e92 100644 --- a/README.md +++ b/README.md @@ -63,7 +63,7 @@ Contributing Please do! -(Obviously, Resistance folks must send in complete patches while Enlightenment gals and guys may just open feature request ☺). If you want to hack the source, please [read HACKING.md for details](https://github.com/breunigs/ingress-intel-total-conversion/blob/gh-pages/HACKING.md) . +(Obviously, Resistance folks must send in complete patches while Enlightened gals and guys may just open feature request ☺). If you want to hack the source, please [read HACKING.md for details](https://github.com/breunigs/ingress-intel-total-conversion/blob/gh-pages/HACKING.md) . **So far, these people have contributed:** diff --git a/USERGUIDE.md b/USERGUIDE.md index c345ab4b..c495edef 100644 --- a/USERGUIDE.md +++ b/USERGUIDE.md @@ -33,7 +33,7 @@ The chat is split up into several categories. It usually only shows messages for **The chat categories are:** - full: shows all automated messages *(23:57 \ destroyed an L3 Resonator on Two Spikes)* - compact: shows only the latest automated message per user -- public: shows user generated public messages (both Enlightenment and Resistance can read it) +- public: shows user generated public messages (both Enlightened and Resistance can read it) - faction: shows messages for own faction (e.g. only Resistance can read Resistance messages) **Posting messages:** diff --git a/code/game_status.js b/code/game_status.js index fe29b868..907d76e3 100644 --- a/code/game_status.js +++ b/code/game_status.js @@ -15,7 +15,7 @@ window.updateGameScore = function(data) { var es = ' '+Math.round(ep)+'%'; $('#gamestat').html(rs+es).one('click', function() { window.updateGameScore() }); // help cursor via “#gamestat span” - $('#gamestat').attr('title', 'Resistance:\t'+r+' MindUnits\nEnlightenment:\t'+e+' MindUnits'); + $('#gamestat').attr('title', 'Resistance:\t'+r+' MindUnits\nEnlightened:\t'+e+' MindUnits'); window.setTimeout('window.updateGameScore', REFRESH_GAME_SCORE*1000); } diff --git a/plugins/guess-player-levels.user.js b/plugins/guess-player-levels.user.js index e8249042..6d987894 100644 --- a/plugins/guess-player-levels.user.js +++ b/plugins/guess-player-levels.user.js @@ -88,7 +88,7 @@ window.plugin.guessPlayerLevels.guess = function() { }); var s = 'the players have at least the following level:\n\n'; - s += 'Resistance:\t   \tEnlightenment:\t\n'; + s += 'Resistance:\t   \tEnlightened:\t\n'; var namesR = plugin.guessPlayerLevels.sort(playersRes); var namesE = plugin.guessPlayerLevels.sort(playersEnl); From 9782883b5cb7a5c6f1c0d8d0b49d55fac295950d Mon Sep 17 00:00:00 2001 From: Stefan Breunig Date: Mon, 25 Feb 2013 08:15:24 +0100 Subject: [PATCH 08/11] maybe fix #295 --- code/boot.js | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/code/boot.js b/code/boot.js index 70542bab..4f231010 100644 --- a/code/boot.js +++ b/code/boot.js @@ -58,10 +58,6 @@ window.setupMap = function() { {zoomControl: !(localStorage['iitc.zoom.buttons'] === 'false')} )); - try { - map.addLayer(views[readCookie('ingress.intelmap.type')]); - } catch(e) { map.addLayer(views[0]); } - var addLayers = {}; portalsLayers = []; @@ -91,6 +87,14 @@ window.setupMap = function() { }, addLayers); map.addControl(window.layerChooser); + + // set the map AFTER adding the layer chooser, or Chrome reorders the + // layers. This likely leads to broken layer selection because the + // views/cookie order does not match the layer chooser order. + try { + map.addLayer(views[readCookie('ingress.intelmap.type')]); + } catch(e) { map.addLayer(views[0]); } + map.attributionControl.setPrefix(''); // listen for changes and store them in cookies map.on('moveend', window.storeMapPosition); From 67d4fbbe0311d8355926e5d40f19f4c06436fb03 Mon Sep 17 00:00:00 2001 From: Stefan Breunig Date: Mon, 25 Feb 2013 08:17:10 +0100 Subject: [PATCH 09/11] =?UTF-8?q?don=E2=80=99t=20render=20resources=20outs?= =?UTF-8?q?ide=20the=20view=20port=20when=20the=20render=20limit=20is=20ab?= =?UTF-8?q?out=20to=20be=20hit?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- code/utils_misc.js | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/code/utils_misc.js b/code/utils_misc.js index 48704d0c..e208fcc0 100644 --- a/code/utils_misc.js +++ b/code/utils_misc.js @@ -117,6 +117,7 @@ window.getPaddedBounds = function() { window._storedPaddedBounds = null; }); } + if(renderLimitReached(0.7)) return window.map.getBounds(); if(window._storedPaddedBounds) return window._storedPaddedBounds; var p = window.map.getBounds().pad(VIEWPORT_PAD_RATIO); @@ -124,10 +125,16 @@ window.getPaddedBounds = function() { return p; } -window.renderLimitReached = function() { - if(Object.keys(portals).length >= MAX_DRAWN_PORTALS) return true; - if(Object.keys(links).length >= MAX_DRAWN_LINKS) return true; - if(Object.keys(fields).length >= MAX_DRAWN_FIELDS) return true; +// returns true if the render limit has been reached. The default ratio +// is 1, which means it will tell you if there are more items drawn than +// acceptable. A value of 0.9 will tell you if 90% of the amount of +// acceptable entities have been drawn. You can use this to heuristi- +// cally detect if the render limit will be hit. +window.renderLimitReached = function(ratio) { + ratio = ratio || 1; + if(Object.keys(portals).length*ratio >= MAX_DRAWN_PORTALS) return true; + if(Object.keys(links).length*ratio >= MAX_DRAWN_LINKS) return true; + if(Object.keys(fields).length*ratio >= MAX_DRAWN_FIELDS) return true; return false; } From 1fdad5cfdf6c6bc70beb3a4f202e8984fc08f472 Mon Sep 17 00:00:00 2001 From: Florian Sundermann Date: Mon, 25 Feb 2013 08:50:41 +0100 Subject: [PATCH 10/11] Revert "added a renderlimit for the plugin" This reverts commit a94bf4475ba5366c1c605ffa6e97226839a58552. --- code/hooks.js | 7 ++----- code/utils_misc.js | 4 +--- plugins/max-links.user.js | 24 ++++-------------------- 3 files changed, 7 insertions(+), 28 deletions(-) diff --git a/code/hooks.js b/code/hooks.js index 8bef1098..92840b7c 100644 --- a/code/hooks.js +++ b/code/hooks.js @@ -43,16 +43,13 @@ // redrawn. It is called early on in the // code/map_data.js#renderPortal as long as there was an // old portal for the guid. -// checkRenderLimit: callback is passed the argument of -// {reached : false} to indicate that the renderlimit is reached -// set reached to true. + window._hooks = {} window.VALID_HOOKS = ['portalAdded', 'portalDetailsUpdated', - 'publicChatDataAvailable', 'portalDataLoaded', 'beforePortalReRender', - 'checkRenderLimit']; + 'publicChatDataAvailable', 'portalDataLoaded', 'beforePortalReRender']; window.runHooks = function(event, data) { if(VALID_HOOKS.indexOf(event) === -1) throw('Unknown event type: ' + event); diff --git a/code/utils_misc.js b/code/utils_misc.js index 6638955f..48704d0c 100644 --- a/code/utils_misc.js +++ b/code/utils_misc.js @@ -128,9 +128,7 @@ window.renderLimitReached = function() { if(Object.keys(portals).length >= MAX_DRAWN_PORTALS) return true; if(Object.keys(links).length >= MAX_DRAWN_LINKS) return true; if(Object.keys(fields).length >= MAX_DRAWN_FIELDS) return true; - var param = { 'reached': false }; - window.runHooks('checkRenderLimit', param); - return param.reached; + return false; } window.getMinPortalLevel = function() { diff --git a/plugins/max-links.user.js b/plugins/max-links.user.js index 5a7d2476..b1cd801f 100644 --- a/plugins/max-links.user.js +++ b/plugins/max-links.user.js @@ -20,10 +20,9 @@ function wrapper() { // use own namespace for plugin window.plugin.maxLinks = function() {}; - - window.plugin.maxLinks.MAX_DRAWN_LINKS = 400; + var MAX_LINK_COLOR = '#FF0000'; - + var Triangle = function (a, b, c) { this.a = a; this.b = b; @@ -204,8 +203,7 @@ function wrapper() { window.plugin.maxLinks.layer = null; - var updating = false; - var renderLimitReached = false; + var updating = false; window.plugin.maxLinks.updateLayer = function() { if (updating || window.plugin.maxLinks.layer === null || !window.map.hasLayer(window.plugin.maxLinks.layer)) return; @@ -232,28 +230,14 @@ function wrapper() { }); var triangles = window.plugin.maxLinks.triangulate(locations); - var drawnLinks = 0; - renderLimitReached = false; $.each(triangles, function(idx, triangle) { - if (drawnLinks <= window.plugin.maxLinks.MAX_DRAWN_LINKS) { - triangle.draw(window.plugin.maxLinks.layer, minX, minY); - drawnLinks += 3; - } else { - renderLimitReached = true; - } + triangle.draw(window.plugin.maxLinks.layer, minX, minY) }); updating = false; - window.renderUpdateStatus(); } var setup = function() { window.plugin.maxLinks.layer = L.layerGroup([]); - - window.addHook('checkRenderLimit', function(e) { - if (window.map.hasLayer(window.plugin.maxLinks.layer) && renderLimitReached) - e.reached = true; - }); - window.map.on('layeradd', function(e) { if (e.layer === window.plugin.maxLinks.layer) window.plugin.maxLinks.updateLayer(); From de39c45a3417dbd828c181e44f862edfe8b72386 Mon Sep 17 00:00:00 2001 From: Florian Sundermann Date: Mon, 25 Feb 2013 08:56:39 +0100 Subject: [PATCH 11/11] added a renderlimit --- plugins/max-links.user.js | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/plugins/max-links.user.js b/plugins/max-links.user.js index b1cd801f..9815f350 100644 --- a/plugins/max-links.user.js +++ b/plugins/max-links.user.js @@ -20,7 +20,7 @@ function wrapper() { // use own namespace for plugin window.plugin.maxLinks = function() {}; - + window.plugin.maxLinks.MAX_DRAWN_LINKS = 400; var MAX_LINK_COLOR = '#FF0000'; var Triangle = function (a, b, c) { @@ -203,7 +203,8 @@ function wrapper() { window.plugin.maxLinks.layer = null; - var updating = false; + var updating = false; + var renderLimitReached = false; window.plugin.maxLinks.updateLayer = function() { if (updating || window.plugin.maxLinks.layer === null || !window.map.hasLayer(window.plugin.maxLinks.layer)) return; @@ -230,14 +231,26 @@ function wrapper() { }); var triangles = window.plugin.maxLinks.triangulate(locations); + var drawnLinks = 0; + renderLimitReached = false; $.each(triangles, function(idx, triangle) { - triangle.draw(window.plugin.maxLinks.layer, minX, minY) + if (drawnLinks <= window.plugin.maxLinks.MAX_DRAWN_LINKS) { + triangle.draw(window.plugin.maxLinks.layer, minX, minY) + drawnLinks += 3; + } else { + renderLimitReached = true; + } }); updating = false; + window.renderUpdateStatus(); } var setup = function() { window.plugin.maxLinks.layer = L.layerGroup([]); + window.addHook('checkRenderLimit', function(e) { + if (window.map.hasLayer(window.plugin.maxLinks.layer) && renderLimitReached) + e.reached = true; + }); window.map.on('layeradd', function(e) { if (e.layer === window.plugin.maxLinks.layer) window.plugin.maxLinks.updateLayer();