From c7e94a1a25c4649f966144d9875d57fc5816e81e Mon Sep 17 00:00:00 2001 From: Kevin Date: Wed, 6 Mar 2013 17:20:19 -0800 Subject: [PATCH 1/3] Update player-tracker to spiderfy players when they are close or stacked --- plugins/player-tracker.user.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/plugins/player-tracker.user.js b/plugins/player-tracker.user.js index 0a73ae3d..6c35eeb7 100644 --- a/plugins/player-tracker.user.js +++ b/plugins/player-tracker.user.js @@ -31,6 +31,10 @@ window.plugin.playerTracker.setup = function() { plugin.playerTracker.drawnTraces = new L.LayerGroup(); window.layerChooser.addOverlay(plugin.playerTracker.drawnTraces, 'Player Tracker'); map.addLayer(plugin.playerTracker.drawnTraces); + window.plugin.playerTracker.oms = new OverlappingMarkerSpiderfier(map); + window.plugin.playerTracker.oms.legColors = {'usual': '#FFFF00', 'highlighted': '#FF0000'}; + window.plugin.playerTracker.oms.legWeight = 3.5; + addHook('publicChatDataAvailable', window.plugin.playerTracker.handleData); window.map.on('zoomend', function() { @@ -237,10 +241,11 @@ window.plugin.playerTracker.drawData = function() { // marker itself var icon = playerData.team === 'ALIENS' ? new window.iconEnl() : new window.iconRes(); - var m = L.marker(gllfe(last), {title: title, clickable: false, icon: icon}); + var m = L.marker(gllfe(last), {title: title, icon: icon}); // ensure tooltips are closed, sometimes they linger m.on('mouseout', function() { $(this._icon).tooltip('close'); }); m.addTo(layer); + window.plugin.playerTracker.oms.addMarker(m); // jQueryUI doesn’t automatically notice the new markers window.setupTooltips($(m._icon)); }); @@ -270,6 +275,7 @@ window.plugin.playerTracker.handleData = function(data) { plugin.playerTracker.drawnTraces.eachLayer(function(layer) { if(layer._icon) $(layer._icon).tooltip('destroy'); }); + window.plugin.playerTracker.oms.clearMarkers(); plugin.playerTracker.drawnTraces.clearLayers(); plugin.playerTracker.drawData(); } From e45e69453342f2831dc475cb44901be6f8ed93ec Mon Sep 17 00:00:00 2001 From: Fragger Date: Fri, 15 Mar 2013 07:01:18 -0700 Subject: [PATCH 2/3] Add click listener on player markers to open up closest portal details --- plugins/player-tracker.user.js | 36 +++++++++++++++++++++++++++------- 1 file changed, 29 insertions(+), 7 deletions(-) diff --git a/plugins/player-tracker.user.js b/plugins/player-tracker.user.js index 6c35eeb7..4b842561 100644 --- a/plugins/player-tracker.user.js +++ b/plugins/player-tracker.user.js @@ -1,7 +1,7 @@ // ==UserScript== // @id iitc-plugin-player-tracker@breunigs // @name IITC Plugin: Player tracker -// @version 0.7.2.@@DATETIMEVERSION@@ +// @version 0.8.@@DATETIMEVERSION@@ // @namespace https://github.com/jonatkins/ingress-intel-total-conversion // @updateURL @@UPDATEURL@@ // @downloadURL @@DOWNLOADURL@@ @@ -31,9 +31,12 @@ window.plugin.playerTracker.setup = function() { plugin.playerTracker.drawnTraces = new L.LayerGroup(); window.layerChooser.addOverlay(plugin.playerTracker.drawnTraces, 'Player Tracker'); map.addLayer(plugin.playerTracker.drawnTraces); - window.plugin.playerTracker.oms = new OverlappingMarkerSpiderfier(map); - window.plugin.playerTracker.oms.legColors = {'usual': '#FFFF00', 'highlighted': '#FF0000'}; - window.plugin.playerTracker.oms.legWeight = 3.5; + plugin.playerTracker.oms = new OverlappingMarkerSpiderfier(map); + plugin.playerTracker.oms.legColors = {'usual': '#FFFF00', 'highlighted': '#FF0000'}; + plugin.playerTracker.oms.legWeight = 3.5; + plugin.playerTracker.oms.addListener('click', function(player) { + window.renderPortalDetails(player.options.referenceToPortal); + }); addHook('publicChatDataAvailable', window.plugin.playerTracker.handleData); @@ -91,7 +94,7 @@ window.plugin.playerTracker.processNewData = function(data) { if(json[1] < limit) return true; // find player and portal information - var pguid, lat, lng, name; + var pguid, lat, lng, guid, name; var skipThisMessage = false; $.each(json[2].plext.markup, function(ind, markup) { switch(markup[0]) { @@ -114,16 +117,18 @@ window.plugin.playerTracker.processNewData = function(data) { // X. lat = lat ? lat : markup[1].latE6/1E6; lng = lng ? lng : markup[1].lngE6/1E6; + guid = guid ? guid : markup[1].guid; name = name ? name : markup[1].name; break; } }); // skip unusable events - if(!pguid || !lat || !lng || skipThisMessage) return true; + if(!pguid || !lat || !lng || !guid || skipThisMessage) return true; var newEvent = { latlngs: [[lat, lng]], + guids: [guid], time: json[1], name: name }; @@ -154,6 +159,7 @@ window.plugin.playerTracker.processNewData = function(data) { // this is multiple resos destroyed at the same time. if(evts[cmp].time === json[1]) { evts[cmp].latlngs.push([lat, lng]); + evts[cmp].guids.push(guid); plugin.playerTracker.stored[pguid].events = evts; return true; } @@ -239,9 +245,25 @@ window.plugin.playerTracker.drawData = function() { title += ago(ev.time, now) + minsAgo + ev.name + '\n'; } + // calculate the closest portal to the player + var eventPortal = [] + var closestPortal; + var mostPortals = 0; + $.each(last.guids, function() { + if(eventPortal[this]) { + eventPortal[this]++; + } else { + eventPortal[this] = 1; + } + if(eventPortal[this] > mostPortals) { + mostPortals = eventPortal[this]; + closestPortal = this; + } + }); + // marker itself var icon = playerData.team === 'ALIENS' ? new window.iconEnl() : new window.iconRes(); - var m = L.marker(gllfe(last), {title: title, icon: icon}); + var m = L.marker(gllfe(last), {title: title, icon: icon, referenceToPortal: closestPortal}); // ensure tooltips are closed, sometimes they linger m.on('mouseout', function() { $(this._icon).tooltip('close'); }); m.addTo(layer); From 9e7a3c2f82c4e2fbdc10f19875bf2960da174bec Mon Sep 17 00:00:00 2001 From: Fragger Date: Fri, 15 Mar 2013 07:04:33 -0700 Subject: [PATCH 3/3] Fix a few nits --- plugins/player-tracker.user.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/player-tracker.user.js b/plugins/player-tracker.user.js index 4b842561..4633afc1 100644 --- a/plugins/player-tracker.user.js +++ b/plugins/player-tracker.user.js @@ -267,7 +267,7 @@ window.plugin.playerTracker.drawData = function() { // ensure tooltips are closed, sometimes they linger m.on('mouseout', function() { $(this._icon).tooltip('close'); }); m.addTo(layer); - window.plugin.playerTracker.oms.addMarker(m); + plugin.playerTracker.oms.addMarker(m); // jQueryUI doesn’t automatically notice the new markers window.setupTooltips($(m._icon)); }); @@ -297,7 +297,7 @@ window.plugin.playerTracker.handleData = function(data) { plugin.playerTracker.drawnTraces.eachLayer(function(layer) { if(layer._icon) $(layer._icon).tooltip('destroy'); }); - window.plugin.playerTracker.oms.clearMarkers(); + plugin.playerTracker.oms.clearMarkers(); plugin.playerTracker.drawnTraces.clearLayers(); plugin.playerTracker.drawData(); }