50 lines
1.1 KiB
JavaScript
50 lines
1.1 KiB
JavaScript
'use strict';
|
|
|
|
var PlayerIcon = L.icon({
|
|
iconUrl: 'pics/sam.png',
|
|
|
|
iconSize: [16, 32],
|
|
iconAnchor: [8, 16],
|
|
popupAnchor: [0, -16]
|
|
});
|
|
|
|
var PlayerOverlay = L.LayerGroup.extend({
|
|
initialize: function(wsChannel, layerMgr) {
|
|
L.LayerGroup.prototype.initialize.call(this);
|
|
|
|
this.layerMgr = layerMgr;
|
|
this.wsChannel = wsChannel;
|
|
|
|
this.currentObjects = []; //{obj:{}, marker: {}}
|
|
|
|
this.reDraw = this.reDraw.bind(this);
|
|
this.onMapMove = debounce(this.onMapMove.bind(this), 50);
|
|
this.onMinetestUpdate = this.onMinetestUpdate.bind(this);
|
|
},
|
|
|
|
onMinetestUpdate: function(info){
|
|
//TODO incremental update
|
|
},
|
|
|
|
reDraw: function(){
|
|
//TODO full update
|
|
var self = this;
|
|
this.clearLayers();
|
|
|
|
var mapLayer = this.layerMgr.getCurrentLayer()
|
|
//TODO
|
|
},
|
|
|
|
onAdd: function(map) {
|
|
this.layerMgr.addListener(this.reDraw);
|
|
this.wsChannel.addListener("minetest-info", this.onMinetestUpdate);
|
|
this.reDraw();
|
|
},
|
|
|
|
onRemove: function(map) {
|
|
this.clearLayers();
|
|
this.layerMgr.removeListener(this.reDraw);
|
|
this.wsChannel.removeListener("minetest-info", this.onMinetestUpdate);
|
|
}
|
|
});
|