Merge pull request #669
Merge branch 'player_marker' of https://github.com/JonnyJD/Minecraft-Overviewer into devel Conflicts: genPOI.py overviewer_core/data/js_src/views.js
This commit is contained in:
34
genPOI.py
34
genPOI.py
@@ -42,6 +42,35 @@ def handleSigns(rset, outputdir, render, rname):
|
|||||||
|
|
||||||
print "Done."
|
print "Done."
|
||||||
|
|
||||||
|
def handlePlayers(rset, render, worldpath):
|
||||||
|
if not hasattr(rset, "_pois"):
|
||||||
|
rset._pois = dict(TileEntities=[], Entities=[])
|
||||||
|
dimension = {'overworld': 0,
|
||||||
|
'nether': -1,
|
||||||
|
'end': 1,
|
||||||
|
'default': 0}[render['dimension']]
|
||||||
|
playerdir = os.path.join(worldpath, "players")
|
||||||
|
rset._pois['Players'] = []
|
||||||
|
for playerfile in os.listdir(playerdir):
|
||||||
|
data = nbt.load(os.path.join(playerdir, playerfile))[1]
|
||||||
|
playername = playerfile.split(".")[0]
|
||||||
|
if data['Dimension'] == dimension:
|
||||||
|
# Position at last logout
|
||||||
|
data['id'] = "Player"
|
||||||
|
data['EntityId'] = playername
|
||||||
|
data['x'] = int(data['Pos'][0])
|
||||||
|
data['y'] = int(data['Pos'][1])
|
||||||
|
data['z'] = int(data['Pos'][2])
|
||||||
|
rset._pois['Players'].append(data)
|
||||||
|
if "SpawnX" in data and dimension == 0:
|
||||||
|
# Spawn position (bed or main spawn)
|
||||||
|
spawn = {"id": "PlayerSpawn",
|
||||||
|
"EntityId": playername,
|
||||||
|
"x": data['SpawnX'],
|
||||||
|
"y": data['SpawnY'],
|
||||||
|
"z": data['SpawnZ']}
|
||||||
|
rset._pois['Players'].append(spawn)
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
helptext = """genPOI
|
helptext = """genPOI
|
||||||
%prog --config=<config file>"""
|
%prog --config=<config file>"""
|
||||||
@@ -110,6 +139,7 @@ def main():
|
|||||||
markers[rname] = [dict(groupName=name, displayName=f['name'], icon=d['icon']),]
|
markers[rname] = [dict(groupName=name, displayName=f['name'], icon=d['icon']),]
|
||||||
|
|
||||||
handleSigns(rset, os.path.join(destdir, rname), render, rname)
|
handleSigns(rset, os.path.join(destdir, rname), render, rname)
|
||||||
|
handlePlayers(rset, render, worldpath)
|
||||||
|
|
||||||
logging.info("Done scanning regions")
|
logging.info("Done scanning regions")
|
||||||
logging.info("Writing out javascript files")
|
logging.info("Writing out javascript files")
|
||||||
@@ -125,6 +155,10 @@ def main():
|
|||||||
result = filter_function(poi)
|
result = filter_function(poi)
|
||||||
if result:
|
if result:
|
||||||
markerSetDict[name]['raw'].append(dict(x=poi['x'], y=poi['y'], z=poi['z'], text=result, createInfoWindow=True))
|
markerSetDict[name]['raw'].append(dict(x=poi['x'], y=poi['y'], z=poi['z'], text=result, createInfoWindow=True))
|
||||||
|
for poi in rset._pois['Players']:
|
||||||
|
result = filter_function(poi)
|
||||||
|
if result:
|
||||||
|
markerSetDict[name]['raw'].append(poi)
|
||||||
#print markerSetDict
|
#print markerSetDict
|
||||||
|
|
||||||
with open(os.path.join(destdir, "markersDB.js"), "w") as output:
|
with open(os.path.join(destdir, "markersDB.js"), "w") as output:
|
||||||
|
|||||||
@@ -87,6 +87,7 @@ directory.
|
|||||||
dump['CONST']['image'] = {
|
dump['CONST']['image'] = {
|
||||||
'defaultMarker': 'signpost.png',
|
'defaultMarker': 'signpost.png',
|
||||||
'signMarker': 'signpost_icon.png',
|
'signMarker': 'signpost_icon.png',
|
||||||
|
'bedMarker': 'bed.png',
|
||||||
'compass': 'compass_upper-left.png',
|
'compass': 'compass_upper-left.png',
|
||||||
'spawnMarker': 'http://google-maps-icons.googlecode.com/files/home.png',
|
'spawnMarker': 'http://google-maps-icons.googlecode.com/files/home.png',
|
||||||
'queryMarker': 'http://google-maps-icons.googlecode.com/files/regroup.png'
|
'queryMarker': 'http://google-maps-icons.googlecode.com/files/regroup.png'
|
||||||
|
|||||||
@@ -437,6 +437,16 @@ overviewer.views.SignControlView = Backbone.View.extend({
|
|||||||
if (!markersDB[groupName].created) {
|
if (!markersDB[groupName].created) {
|
||||||
for (j in markersDB[groupName].raw) {
|
for (j in markersDB[groupName].raw) {
|
||||||
var entity = markersDB[groupName].raw[j];
|
var entity = markersDB[groupName].raw[j];
|
||||||
|
if (entity['id'] == 'Player') {
|
||||||
|
iconURL = "http://overviewer.org/avatar/"
|
||||||
|
+ entity['EntityId'];
|
||||||
|
} else if (entity['id'] == 'PlayerSpawn') {
|
||||||
|
iconURL = overviewerConfig.CONST.image.bedMarker;
|
||||||
|
} else if (entity['id'] == 'Sign') {
|
||||||
|
iconURL = overviewerConfig.CONST.image.signMarker;
|
||||||
|
} else {
|
||||||
|
iconURL = overviewerConfig.CONST.image.defaultMarker;
|
||||||
|
}
|
||||||
var marker = new google.maps.Marker({
|
var marker = new google.maps.Marker({
|
||||||
'position': overviewer.util.fromWorldToLatLng(entity.x,
|
'position': overviewer.util.fromWorldToLatLng(entity.x,
|
||||||
entity.y, entity.z, overviewer.mapView.options.currentTileSet),
|
entity.y, entity.z, overviewer.mapView.options.currentTileSet),
|
||||||
|
|||||||
BIN
overviewer_core/data/web_assets/bed.png
Normal file
BIN
overviewer_core/data/web_assets/bed.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 631 B |
Reference in New Issue
Block a user