Separated playermarkers to a component.
This commit is contained in:
parent
7464e5b809
commit
6eface57ae
4 changed files with 43 additions and 32 deletions
|
|
@ -87,6 +87,8 @@ web:
|
||||||
- type: chatbox
|
- type: chatbox
|
||||||
showplayerfaces: true
|
showplayerfaces: true
|
||||||
messagettl: 5
|
messagettl: 5
|
||||||
|
- type: playermarkers
|
||||||
|
showplayerfaces: true
|
||||||
|
|
||||||
defaultworld: world
|
defaultworld: world
|
||||||
worlds:
|
worlds:
|
||||||
|
|
|
||||||
|
|
@ -29,6 +29,7 @@
|
||||||
<script type="text/javascript" src="js/chat.js"></script>
|
<script type="text/javascript" src="js/chat.js"></script>
|
||||||
<script type="text/javascript" src="js/chatballoon.js"></script>
|
<script type="text/javascript" src="js/chatballoon.js"></script>
|
||||||
<script type="text/javascript" src="js/chatbox.js"></script>
|
<script type="text/javascript" src="js/chatbox.js"></script>
|
||||||
|
<script type="text/javascript" src="js/playermarkers.js"></script>
|
||||||
<script type="text/javascript" src="config.js"></script>
|
<script type="text/javascript" src="config.js"></script>
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
|
|
|
||||||
|
|
@ -435,30 +435,6 @@ DynMap.prototype = {
|
||||||
|
|
||||||
$(me).trigger('playeradded', [ player ]);
|
$(me).trigger('playeradded', [ player ]);
|
||||||
|
|
||||||
var location = player.location;
|
|
||||||
// Create the player-marker.
|
|
||||||
var markerPosition = me.map.getProjection().fromWorldToLatLng(location.x, location.y, location.z);
|
|
||||||
player.marker = new CustomMarker(markerPosition, me.map, function(div) {
|
|
||||||
var playerImage;
|
|
||||||
$(div)
|
|
||||||
.addClass('Marker')
|
|
||||||
.addClass('playerMarker')
|
|
||||||
.append(playerImage = $('<img/>')
|
|
||||||
.attr({ src: 'images/player.png' }))
|
|
||||||
.append($('<span/>')
|
|
||||||
.addClass('playerName')
|
|
||||||
.text(player.name));
|
|
||||||
|
|
||||||
if (me.options.showplayerfacesonmap) {
|
|
||||||
getMinecraftHead(player.name, 32, function(head) {
|
|
||||||
$(head)
|
|
||||||
.addClass('playericon')
|
|
||||||
.prependTo(div);
|
|
||||||
playerImage.remove();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// Create the player-menu-item.
|
// Create the player-menu-item.
|
||||||
var playerIconContainer;
|
var playerIconContainer;
|
||||||
var menuitem = player.menuitem = $('<li/>')
|
var menuitem = player.menuitem = $('<li/>')
|
||||||
|
|
@ -499,11 +475,6 @@ DynMap.prototype = {
|
||||||
|
|
||||||
$(me).trigger('playerupdated', [ player ]);
|
$(me).trigger('playerupdated', [ player ]);
|
||||||
|
|
||||||
// Update the marker.
|
|
||||||
var markerPosition = me.map.getProjection().fromWorldToLatLng(location.x, location.y, location.z);
|
|
||||||
player.marker.toggle(me.world === location.world);
|
|
||||||
player.marker.setPosition(markerPosition);
|
|
||||||
|
|
||||||
// Update menuitem.
|
// Update menuitem.
|
||||||
player.menuitem.toggleClass('otherworld', me.world !== location.world);
|
player.menuitem.toggleClass('otherworld', me.world !== location.world);
|
||||||
|
|
||||||
|
|
@ -519,9 +490,6 @@ DynMap.prototype = {
|
||||||
|
|
||||||
$(me).trigger('playerremoved', [ player ]);
|
$(me).trigger('playerremoved', [ player ]);
|
||||||
|
|
||||||
// Remove the marker.
|
|
||||||
player.marker.remove();
|
|
||||||
|
|
||||||
// Remove menu item.
|
// Remove menu item.
|
||||||
player.menuitem.remove();
|
player.menuitem.remove();
|
||||||
},
|
},
|
||||||
|
|
|
||||||
40
web/js/playermarkers.js
Normal file
40
web/js/playermarkers.js
Normal file
|
|
@ -0,0 +1,40 @@
|
||||||
|
componentconstructors['playermarkers'] = function(dynmap, configuration) {
|
||||||
|
return {
|
||||||
|
initialize: function() {
|
||||||
|
$(dynmap).bind('playeradded', function(event, player) {
|
||||||
|
// Create the player-marker.
|
||||||
|
var markerPosition = dynmap.map.getProjection().fromWorldToLatLng(player.location.x, player.location.y, player.location.z);
|
||||||
|
player.marker = new CustomMarker(markerPosition, dynmap.map, function(div) {
|
||||||
|
var playerImage;
|
||||||
|
$(div)
|
||||||
|
.addClass('Marker')
|
||||||
|
.addClass('playerMarker')
|
||||||
|
.append(playerImage = $('<img/>')
|
||||||
|
.attr({ src: 'images/player.png' }))
|
||||||
|
.append($('<span/>')
|
||||||
|
.addClass('playerName')
|
||||||
|
.text(player.name));
|
||||||
|
|
||||||
|
if (configuration.showplayerfaces) {
|
||||||
|
getMinecraftHead(player.name, 32, function(head) {
|
||||||
|
$(head)
|
||||||
|
.addClass('playericon')
|
||||||
|
.prependTo(div);
|
||||||
|
playerImage.remove();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
$(dynmap).bind('playerremoved', function(event, player) {
|
||||||
|
// Remove the marker.
|
||||||
|
player.marker.remove();
|
||||||
|
});
|
||||||
|
$(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);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
};
|
||||||
Loading…
Add table
Add a link
Reference in a new issue