Hide player positions when on disabled worlds, add sendposition flat
to ClientComponent to avoid leaking position data, even when markers are off, fix problem with stale player marker positions during/right after map changes
This commit is contained in:
parent
18896eeac0
commit
2d0b2ef63d
4 changed files with 49 additions and 7 deletions
|
|
@ -7,6 +7,7 @@ var maptypes = {};
|
|||
componentconstructors['testcomponent'] = function(dynmap, configuration) {
|
||||
console.log('initialize');
|
||||
$(dynmap).bind('worldchanged', function() { console.log('worldchanged'); });
|
||||
$(dynmap).bind('mapchanging', function() { console.log('mapchanging'); });
|
||||
$(dynmap).bind('mapchanged', function() { console.log('mapchanged'); });
|
||||
$(dynmap).bind('zoomchanged', function() { console.log('zoomchanged'); });
|
||||
$(dynmap).bind('worldupdating', function() { console.log('worldupdating'); });
|
||||
|
|
@ -327,6 +328,7 @@ DynMap.prototype = {
|
|||
if (me.maptype === map) {
|
||||
return;
|
||||
}
|
||||
$(me).trigger('mapchanging');
|
||||
if (me.maptype) {
|
||||
$('.compass').removeClass('compass_' + me.maptype.name);
|
||||
}
|
||||
|
|
@ -443,7 +445,7 @@ DynMap.prototype = {
|
|||
me.map.setMapTypeId('none');
|
||||
window.setTimeout(function() {
|
||||
me.map.setMapTypeId(mtid);
|
||||
}, 1);
|
||||
}, 0.1);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -58,8 +58,8 @@ componentconstructors['playermarkers'] = function(dynmap, configuration) {
|
|||
$(dynmap).bind('playerupdated', function(event, player) {
|
||||
// Update the marker.
|
||||
var markerPosition = dynmap.map.getProjection().fromWorldToLatLng(player.location.x, player.location.y, player.location.z);
|
||||
player.marker.toggle(dynmap.world === player.location.world);
|
||||
player.marker.setPosition(markerPosition);
|
||||
player.marker.toggle(dynmap.world === player.location.world);
|
||||
// Update health
|
||||
if (configuration.showplayerhealth) {
|
||||
if (player.health !== undefined && player.armor !== undefined) {
|
||||
|
|
@ -71,4 +71,23 @@ componentconstructors['playermarkers'] = function(dynmap, configuration) {
|
|||
}
|
||||
}
|
||||
});
|
||||
// Remove marker on start of map change
|
||||
$(dynmap).bind('mapchanging', function(event) {
|
||||
var name;
|
||||
for(name in dynmap.players) {
|
||||
var player = dynmap.players[name];
|
||||
// Turn off marker - let update turn it back on
|
||||
player.marker.toggle(false);
|
||||
}
|
||||
});
|
||||
// Remove marker on map change - let update place it again
|
||||
$(dynmap).bind('mapchanged', function(event) {
|
||||
var name;
|
||||
for(name in dynmap.players) {
|
||||
var player = dynmap.players[name];
|
||||
var markerPosition = dynmap.map.getProjection().fromWorldToLatLng(player.location.x, player.location.y, player.location.z);
|
||||
player.marker.setPosition(markerPosition);
|
||||
player.marker.toggle(dynmap.world === player.location.world);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue