From b80307cb40e02911f4f8f72a6dc2007c8baf03d0 Mon Sep 17 00:00:00 2001 From: Xelio Date: Tue, 10 Sep 2013 23:20:14 +0800 Subject: [PATCH 1/5] Plugin Draw Resonators: Add styler: highlight my resonators --- plugins/draw-resonators.user.js | 55 +++++++++++++++++++++++++++++++-- 1 file changed, 53 insertions(+), 2 deletions(-) diff --git a/plugins/draw-resonators.user.js b/plugins/draw-resonators.user.js index 0bf73ff7..049a6991 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.2.1.@@DATETIMEVERSION@@ +// @version 0.3.0.@@DATETIMEVERSION@@ // @namespace https://github.com/jonatkins/ingress-intel-total-conversion // @updateURL @@UPDATEURL@@ // @downloadURL @@DOWNLOADURL@@ @@ -242,8 +242,17 @@ window.plugin.drawResonators.Render.prototype.getStyler = function() { return this.stylers[stylerName]; } +// Change if styler need change, and redraw all resonators using new styler window.plugin.drawResonators.Render.prototype.changeStyler = function(name) { - // TODO: check whether styler has change, and update style of all resonators + if (name === this.useStyler) return; + for(stylerName in this.stylers) { + if(stylerName === name) { + this.useStyler = stylerName; + this.clearAllResonators(); + this.drawAllResonators(); + return; + } + } } window.plugin.drawResonators.Render.prototype.isResonatorsShow = function() { @@ -263,6 +272,7 @@ window.plugin.drawResonators.Render.prototype.isResonatorsShowBeforeZoom = funct window.plugin.drawResonators.Styler = function(options) { options = options || {}; this.name = options['name'] || 'default'; + this.otherOptions = options['otherOptions']; this.getResonatorStyle = options['resonatorStyleFunc'] || this.defaultResonatorStyle; this.getConnectorStyle = options['connectorStyleFunc'] || this.defaultConnectorStyle; } @@ -467,6 +477,44 @@ window.plugin.drawResonators.ListDialogEntry.prototype.getSelectId = function() +window.plugin.drawResonators.setupStyler = function() { + var thisPlugin = window.plugin.drawResonators; + + var myReso = { + name: 'Highlight my resonators', + otherOptions: { + highlightedReso : {color: '#fff', weight: 2, radius: 4, opacity: 1, clickable: false}, + normalReso : {color: '#aaa', weight: 1, radius: 3, opacity: 1, clickable: false}, + selectedReso : {color: '#eee', weight: 1.1, radius: 4, opacity: 1, clickable: false}, + highlightedConn : {opacity: 0.7, weight: 3, color: '#FFA000', dashArray: '0,10,999', color: '#FFA000', fill: false, clickable: false}, + normalConn : {opacity: 0.25, weight: 2, color: '#FFA000', dashArray: '0,10' + (new Array(25).join(',8,4')), fill: false, clickable: false}, + selectedConn : {opacity: 0.7, weight: 3, color: '#FFA000', dashArray: '0,10' + (new Array(25).join(',8,4')), fill: false, clickable: false} + }, + resonatorStyleFunc: function(resoDetail, selected) { + var mine = resoDetail.ownerGuid === PLAYER.guid; + var resoSharedStyle = mine + ? this.otherOptions.highlightedReso + : (selected ? this.otherOptions.selectedReso : this.otherOptions.normalReso); + + var resoStyle = $.extend({ + fillColor: COLORS_LVL[resoDetail.level], + fillOpacity: resoDetail.energyTotal/RESO_NRG[resoDetail.level] * (mine ? 1 : 0.75) + }, resoSharedStyle); + return resoStyle; + }, + connectorStyleFunc: function(resoDetail, selected) { + var mine = resoDetail.ownerGuid === PLAYER.guid; + var connStyle = mine + ? this.otherOptions.highlightedConn + : (selected ? this.otherOptions.selectedConn : this.otherOptions.normalConn); + return connStyle; + } + }; + + thisPlugin.render.addStyler(new thisPlugin.Styler(myReso)); +} + + var setup = function() { var thisPlugin = window.plugin.drawResonators; @@ -487,6 +535,9 @@ var setup = function() { thisPlugin.options.addCallback('enableZoomLevel', thisPlugin.render.handleEnableZoomLevelChange); + // Initialize styler + thisPlugin.setupStyler(); + // Initialize dialog thisPlugin.dialog = new thisPlugin.Dialog(); From 2fdec66f84a33bad549d978f7fde1fb475b9831a Mon Sep 17 00:00:00 2001 From: Xelio Date: Tue, 10 Sep 2013 23:49:58 +0800 Subject: [PATCH 2/5] Plugin Draw Resonators: Add styler option to setting dialog, fix a few bugs in setting dialog --- plugins/draw-resonators.user.js | 35 ++++++++++++++++++++++++--------- 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/plugins/draw-resonators.user.js b/plugins/draw-resonators.user.js index 049a6991..2fd6b385 100644 --- a/plugins/draw-resonators.user.js +++ b/plugins/draw-resonators.user.js @@ -58,6 +58,8 @@ window.plugin.drawResonators.Render = function(options) { this.handleResonatorEntitiesAfterZoom = this.handleResonatorEntitiesAfterZoom.bind(this); this.handleEnableZoomLevelChange = this.handleEnableZoomLevelChange.bind(this); this.portalSelectionChange = this.portalSelectionChange.bind(this); + this.changeStyler = this.changeStyler.bind(this); + this.getStylersList = this.getStylersList.bind(this); }; window.plugin.drawResonators.Render.prototype.registerHook = function() { @@ -238,7 +240,7 @@ window.plugin.drawResonators.Render.prototype.getStylersList = function() { } window.plugin.drawResonators.Render.prototype.getStyler = function() { - var stylerName = this.useStyler in this.stylers ? this.useStyler : 'default'; + var stylerName = this.useStyler in this.stylers ? this.useStyler : 'Default'; return this.stylers[stylerName]; } @@ -271,7 +273,7 @@ window.plugin.drawResonators.Render.prototype.isResonatorsShowBeforeZoom = funct window.plugin.drawResonators.Styler = function(options) { options = options || {}; - this.name = options['name'] || 'default'; + this.name = options['name'] || 'Default'; this.otherOptions = options['otherOptions']; this.getResonatorStyle = options['resonatorStyleFunc'] || this.defaultResonatorStyle; this.getConnectorStyle = options['connectorStyleFunc'] || this.defaultConnectorStyle; @@ -401,8 +403,8 @@ window.plugin.drawResonators.Dialog.prototype.addLink = function() { $('#toolbox').append('Resonators '); } -window.plugin.drawResonators.Dialog.prototype.addEntry = function(dialogEntry) { - this._dialogEntries[dialogEntry.name] = dialogEntry; +window.plugin.drawResonators.Dialog.prototype.addEntry = function(name, dialogEntry) { + this._dialogEntries[name] = dialogEntry; } @@ -422,7 +424,9 @@ window.plugin.drawResonators.Dialog.prototype.show = function() { window.plugin.drawResonators.Dialog.prototype.getDialogHTML = function() { var html = '
' for(var name in this._dialogEntries) { - html += this._dialogEntries[name].getHTML(); + html += '
' + + this._dialogEntries[name].getHTML() + + '
'; } html += '
'; return html; @@ -451,12 +455,13 @@ window.plugin.drawResonators.ListDialogEntry.prototype.getHTML = function() { + '' + '