\" +\n \"
\" + HtmlSanitizer.SanitizeHtml(poi.attributes.name) + \" \" +\n \"
Owner: \" + HtmlSanitizer.SanitizeHtml(poi.attributes.owner) + \"
\";\n }\n else\n {\n return \"
\" + HtmlSanitizer.SanitizeHtml(poi.attributes.name) + \" \" +\n \"
Owner: \" + HtmlSanitizer.SanitizeHtml(poi.attributes.owner) + \"
\";\n }\n }\n\n\n});\n","import AbstractIconOverlay from './AbstractIconOverlay.js';\n\nvar ShopIcon = L.icon({\n iconUrl: 'pics/shop.png',\n iconSize: [32, 32],\n iconAnchor: [16, 16],\n popupAnchor: [0, -16]\n});\n\nvar ShopEmptyIcon = L.icon({\n iconUrl: 'pics/shop_empty.png',\n iconSize: [32, 32],\n iconAnchor: [16, 16],\n popupAnchor: [0, -16]\n});\n\n\nexport default AbstractIconOverlay.extend({\n initialize: function() {\n AbstractIconOverlay.prototype.initialize.call(this, \"shop\");\n },\n\n getMaxDisplayedZoom: function(){\n return 10;\n },\n\n getIcon: function(obj){\n if (obj.attributes.stock > 0)\n return ShopIcon;\n else\n return ShopEmptyIcon;\n },\n\n createPopup: function(obj){\n return \"
\" + obj.attributes.type + \" \" +\n \"
Owner: \" + obj.attributes.owner + \"
\" +\n \"
Input: \" + obj.attributes.in_count + \" x \" + obj.attributes.in_item + \"
\" +\n \"
Output: \" + obj.attributes.out_count + \" x \" + obj.attributes.out_item + \"
\" +\n \"
Stock: \" + obj.attributes.stock + \"
\";\n }\n});\n","import AbstractIconOverlay from './AbstractIconOverlay.js';\nimport { HtmlSanitizer } from '../../lib/HtmlSanitizer.js';\n\nexport default AbstractIconOverlay.extend({\n initialize: function() {\n AbstractIconOverlay.prototype.initialize.call(this, \"label\");\n },\n\n getMaxDisplayedZoom: function(){\n return 5;\n },\n\n getIcon: function(lbl){\n\n var zoom = this.map.getZoom();\n var factor = Math.pow(2, 12-zoom);\n\n var height = 200;\n var width = 200;\n var fontSize = Math.min(lbl.attributes.size, 200) / factor;\n\n var notVisible = (fontSize < 2 || fontSize > 50);\n\n const html = `\n
\n \n ${HtmlSanitizer.SanitizeHtml(lbl.attributes.text)}\n \n \n `;\n\n return L.divIcon({\n html: notVisible ? \"\" : html,\n bgPos: L.point(100,100),\n className: \"mapserver-label-icon\"\n });\n },\n\n createPopup: function(){}\n});\n","import debounce from '../../util/debounce.js';\nimport layerMgr from '../../LayerManager.js';\n\nimport { getMapObjects } from '../../api.js';\n\nexport default L.LayerGroup.extend({\n initialize: function(type) {\n L.LayerGroup.prototype.initialize.call(this);\n this.type = type;\n\n this.onMapMove = debounce(this.onMapMove.bind(this), 50);\n },\n\n\n onMapMove: function(){\n this.reDraw();\n },\n\n createStyle: function(){\n\t //TODO: default style\n },\n\n createGeoJson: function(objects){\n var self = this;\n\n var geoJsonLayer = L.geoJSON([], {\n onEachFeature: function(feature, layer){\n if (feature.properties && feature.properties.popupContent) {\n layer.bindPopup(feature.properties.popupContent);\n }\n },\n style: self.createStyle.bind(self)\n });\n\n objects.forEach(function(obj){\n geoJsonLayer.addData(self.createFeature(obj));\n });\n\n return geoJsonLayer;\n },\n\n getMaxDisplayedZoom: function(){\n return 7;\n },\n\n getMinDisplayedZoom: function(){\n return 13;\n },\n\n reDraw: function(){\n var self = this;\n var zoom = this.map.getZoom();\n\n if (zoom < this.getMaxDisplayedZoom() || zoom > this.getMinDisplayedZoom()) {\n this.clearLayers();\n return;\n }\n\n var mapLayer = layerMgr.getCurrentLayer();\n var min = this._map.getBounds().getSouthWest();\n var max = this._map.getBounds().getNorthEast();\n\n var y1 = parseInt(mapLayer.from);\n var y2 = parseInt(mapLayer.to);\n var x1 = parseInt(min.lng/16);\n var x2 = parseInt(max.lng/16);\n var z1 = parseInt(min.lat/16);\n var z2 = parseInt(max.lat/16);\n\n getMapObjects({\n pos1: { x:x1, y:y1, z:z1 },\n pos2: { x:x2, y:y2, z:z2 },\n type: this.type\n })\n .then(function(objects){\n self.clearLayers();\n\n var geoJsonLayer = self.createGeoJson(objects);\n geoJsonLayer.addTo(self);\n });\n\n },\n\n onAdd: function(map) {\n this.map = map;\n map.on(\"zoomend\", this.onMapMove);\n map.on(\"moveend\", this.onMapMove);\n this.reDraw(true);\n },\n\n onRemove: function(map) {\n this.clearLayers();\n map.off(\"zoomend\", this.onMapMove);\n map.off(\"moveend\", this.onMapMove);\n }\n\n});\n","import AbstractGeoJsonOverlay from './AbstractGeoJsonOverlay.js';\nimport { getMapObjects } from '../../api.js';\n\nvar string_to_pos = function(str){\n if (typeof(str) == \"string\" && str.length > 0 &&\n str[0] == '(' && str[str.length-1] == ')') {\n var a = str.slice(1, -1).split(',');\n a = a.map(parseFloat);\n if (a.length == 3 && a.indexOf(NaN) < 0) {\n return {\n x: a[0],\n y: a[1],\n z: a[2]\n };\n }\n }\n return null;\n};\n\nvar pos_to_string = function(pos){\n if (isNaN(parseFloat(pos.x)) ||\n isNaN(parseFloat(pos.y)) ||\n isNaN(parseFloat(pos.z))) {\n return null;\n }\n return \"(\"+[pos.x, pos.y, pos.z].join(',')+\")\";\n};\n\nexport default AbstractGeoJsonOverlay.extend({\n initialize: function() {\n AbstractGeoJsonOverlay.prototype.initialize.call(this, \"train\");\n this.cache = {\n lines: {}, // { \"A1\":[] }\n lineColors: {}, // { \"A1\": \"red\" }\n lineFeat: []\n };\n this.pendingQueries = [];\n this.lastLayer = L.geoJSON([], {\n onEachFeature: function(feature, layer){\n if (feature.properties && feature.properties.popupContent) {\n layer.bindPopup(feature.properties.popupContent);\n }\n },\n pointToLayer: function (feature, latlng) {\n var geojsonMarkerOptions = {\n radius: 8,\n weight: 1,\n opacity: 1,\n fillOpacity: 0.8\n };\n\n return L.circleMarker(latlng, geojsonMarkerOptions);\n },\n style: function(feature) {\n if (feature.properties && feature.properties.color){\n return { color: feature.properties.color };\n }\n }\n });\n },\n \n createGeoJson: function(objects){\n var self = this;\n\n // which unique lines do objects belong to?\n var lines = [];\n objects.forEach(function(obj){\n if (obj.attributes.line && lines.indexOf(obj.attributes.line) == -1) {\n lines.push(obj.attributes.line);\n }\n });\n\n // query for each line, add to cache\n lines.forEach(function(linename){\n if (!self.cache.lines[linename]){\n // only request if not in cache.\n // if someone changed the train lines, the user has to reload. sorry.\n self.pendingQueries.push(linename);\n getMapObjects({\n type: self.type,\n attributelike: {\n key: \"line\",\n value: linename\n }\n })\n .then(function(objects){\n objects.sort(function(a,b){\n return parseInt(a.attributes.index) - parseInt(b.attributes.index);\n });\n\n self.cache.lines[linename] = objects;\n // already sorted, determine color\n self.cache.lineColors[linename] = \"#ff7800\";\n for (var i = objects.length-1; i >= 0; i--) {\n // find the last element specifying a color\n // as was previous behaviour, but be more efficient\n if (objects[i].attributes.color){\n self.cache.lineColors[linename] = objects[i].attributes.color;\n break;\n }\n }\n\n var feat = {\n coords: [],\n stations: [],\n feature: null\n };\n //Add stations\n objects.forEach(function(entry){\n var rail_pos = string_to_pos(entry.attributes.rail_pos);\n if (entry.attributes.linepath_from_prv) {\n var points = entry.attributes.linepath_from_prv.split(';');\n points.forEach(function(p) {\n var pos = string_to_pos(p);\n if (pos == null) {\n console.warn(\"[Trainlines][linepath_from_prv]\", \"line \"+linename, \"block \"+pos_to_string(entry), \"index \"+entry.attributes.index, \"Invalid point:\", p);\n } else {\n feat.coords.push([pos.x + 0.5, pos.z + 0.5]);\n }\n });\n } else if (rail_pos) {\n feat.coords.push([rail_pos.x + 0.5, rail_pos.z + 0.5]);\n } else {\n feat.coords.push([entry.x + 0.5, entry.z + 0.5]);\n }\n\n if (entry.attributes.station) {\n feat.stations.push({\n \"type\": \"Feature\",\n \"properties\": {\n \"name\": entry.attributes.station,\n \"color\": self.cache.lineColors[linename],\n \"popupContent\": \"
Train-station (Line \" + entry.attributes.line + \") \" +\n entry.attributes.station\n },\n \"geometry\": {\n \"type\": \"Point\",\n \"coordinates\": feat.coords[feat.coords.length-1]\n }\n });\n }\n });\n\n feat.feature = {\n \"type\":\"Feature\",\n \"geometry\": {\n \"type\":\"LineString\",\n \"coordinates\": feat.coords\n },\n \"properties\":{\n \"name\": linename,\n \"color\": self.cache.lineColors[linename],\n \"popupContent\": \"
Train-line (\" + linename + \") \"\n }\n };\n\n self.cache.lineFeat[linename] = feat;\n\n //line-points\n self.lastLayer.addData(feat.feature);\n\n //stations\n feat.stations.forEach(function(stationfeature){\n self.lastLayer.addData(stationfeature);\n });\n });\n }\n });\n\n return self.lastLayer;\n },\n});\n","import AbstractIconOverlay from './AbstractIconOverlay.js';\n\nvar TravelnetIcon = L.icon({\n iconUrl: 'pics/travelnet_inv.png',\n\n iconSize: [64, 64],\n iconAnchor: [32, 32],\n popupAnchor: [0, -32]\n});\n\nexport default AbstractIconOverlay.extend({\n initialize: function() {\n AbstractIconOverlay.prototype.initialize.call(this, \"travelnet\", TravelnetIcon);\n },\n\n createPopup: function(travelnet){\n return \"
\" + travelnet.attributes.station_name + \" \" +\n \"
X: \" + travelnet.x + \"
\" +\n \"
Y: \" + travelnet.y + \"
\" +\n \"
Z: \" + travelnet.z + \"
\" +\n \"
Network: \" + travelnet.attributes.station_network + \"
\" +\n \"
Owner: \" + travelnet.attributes.owner + \"
\";\n }\n});\n","import AbstractIconOverlay from './AbstractIconOverlay.js';\n\nvar BonesIcon = L.icon({\n iconUrl: 'pics/bones_top.png',\n\n iconSize: [16, 16],\n iconAnchor: [8, 8],\n popupAnchor: [0, -16]\n});\n\nexport default AbstractIconOverlay.extend({\n initialize: function() {\n AbstractIconOverlay.prototype.initialize.call(this, \"bones\", BonesIcon);\n },\n\n createPopup: function(bones){\n return \"
\" + bones.attributes.owner + \" \";\n }\n});\n","import AbstractIconOverlay from './AbstractIconOverlay.js';\n\nvar LcdIcon = L.icon({\n iconUrl: 'pics/lcd_lcd.png',\n\n iconSize: [16, 16],\n iconAnchor: [8, 8],\n popupAnchor: [0, -16]\n});\n\nexport default AbstractIconOverlay.extend({\n initialize: function() {\n AbstractIconOverlay.prototype.initialize.call(this, \"digilinelcd\", LcdIcon);\n },\n\n createPopup: function(lcd){\n return \"
\" + lcd.attributes.text + \" \";\n }\n});\n","import AbstractIconOverlay from './AbstractIconOverlay.js';\n\nvar DigitermIcon = L.icon({\n iconUrl: 'pics/digiterms_beige_front.png',\n\n iconSize: [16, 16],\n iconAnchor: [8, 8],\n popupAnchor: [0, -16]\n});\n\nexport default AbstractIconOverlay.extend({\n initialize: function() {\n AbstractIconOverlay.prototype.initialize.call(this, \"digiterm\", DigitermIcon);\n },\n\n createPopup: function(lcd){\n return \"
\" + lcd.attributes.display_text + \" \";\n }\n});\n","import AbstractIconOverlay from './AbstractIconOverlay.js';\n\nvar LuacontrollerIcon = L.icon({\n iconUrl: 'pics/jeija_luacontroller_top.png',\n\n iconSize: [16, 16],\n iconAnchor: [8, 8],\n popupAnchor: [0, -16]\n});\n\nvar LuacontrollerBurntIcon = L.icon({\n iconUrl: 'pics/jeija_luacontroller_burnt_top.png',\n\n iconSize: [16, 16],\n iconAnchor: [8, 8],\n popupAnchor: [0, -16]\n});\n\nexport default AbstractIconOverlay.extend({\n initialize: function() {\n AbstractIconOverlay.prototype.initialize.call(this, \"luacontroller\");\n },\n\n getIcon: function(ctrl){\n if (ctrl.attributes.burnt)\n return LuacontrollerBurntIcon;\n else\n return LuacontrollerIcon;\n },\n\n createPopup: function(ctrl){\n return \"LuaController\" + (ctrl.attributes.burnt ? \"(Burnt)\" : \"\");\n }\n});\n","import AbstractIconOverlay from './AbstractIconOverlay.js';\n\nvar TechnicAnchorIcon = L.icon({\n iconUrl: 'pics/technic_admin_anchor.png',\n\n iconSize: [32, 32],\n iconAnchor: [16, 16],\n popupAnchor: [0, -32]\n});\n\nexport default AbstractIconOverlay.extend({\n initialize: function() {\n AbstractIconOverlay.prototype.initialize.call(this, \"technicanchor\", TechnicAnchorIcon);\n },\n\n createPopup: function(lcd){\n return \"
Owner: \" + lcd.attributes.owner + \"
\" +\n \"
Radius: \" + lcd.attributes.radius + \"
\" +\n \"
Locked: \" + lcd.attributes.locked + \"
\" +\n \"
Enabled: \" + lcd.attributes.enabled + \"
\";\n }\n});\n","import AbstractIconOverlay from './AbstractIconOverlay.js';\n\nvar TechnicQuarryIcon = L.icon({\n iconUrl: 'pics/default_tool_mesepick.png',\n\n iconSize: [16, 16],\n iconAnchor: [8, 8],\n popupAnchor: [0, -16]\n});\n\nexport default AbstractIconOverlay.extend({\n initialize: function() {\n AbstractIconOverlay.prototype.initialize.call(this, \"technicquarry\", TechnicQuarryIcon);\n },\n\n createPopup: function(quarry){\n return \"
Owner: \" + quarry.attributes.owner + \"
\" +\n \"
Dug: \" + quarry.attributes.dug + \"
\" +\n \"
Enabled: \" + quarry.attributes.enabled + \"
\";\n }\n});\n","import AbstractIconOverlay from './AbstractIconOverlay.js';\n\nvar TechnicSwitchIcon = L.icon({\n iconUrl: 'pics/technic_water_mill_top_active.png',\n\n iconSize: [16, 16],\n iconAnchor: [8, 8],\n popupAnchor: [0, -16]\n});\n\nexport default AbstractIconOverlay.extend({\n initialize: function() {\n AbstractIconOverlay.prototype.initialize.call(this, \"technicswitch\", TechnicSwitchIcon);\n },\n\n createPopup: function(sw){\n return \"
Active: \" + sw.attributes.active + \"
\" +\n \"
Channel: \" + sw.attributes.channel + \"
\" +\n \"
Supply: \" + sw.attributes.supply + \"
\" +\n \"
Demand: \" + sw.attributes.demand + \"
\";\n }\n});\n","import AbstractGeoJsonOverlay from './AbstractGeoJsonOverlay.js';\n\nexport default AbstractGeoJsonOverlay.extend({\n initialize: function() {\n AbstractGeoJsonOverlay.prototype.initialize.call(this, \"protector\");\n },\n\n getMaxDisplayedZoom: function(){\n return 11;\n },\n\n createFeature: function(protector){\n return {\n \"type\":\"Feature\",\n \"geometry\": {\n \"type\":\"Polygon\",\n \"coordinates\":[[\n [protector.x-5 + 0.5,protector.z-5 + 0.5],\n [protector.x-5 + 0.5,protector.z+6 + 0.5],\n [protector.x+6 + 0.5,protector.z+6 + 0.5],\n [protector.x+6 + 0.5,protector.z-5 + 0.5],\n [protector.x-5 + 0.5,protector.z-5 + 0.5]\n ]]\n },\n \"properties\":{\n \"name\": protector.attributes.owner,\n \"popupContent\": protector.attributes.owner\n }\n };\n }\n});\n","import AbstractGeoJsonOverlay from './AbstractGeoJsonOverlay.js';\n\nexport default AbstractGeoJsonOverlay.extend({\n initialize: function() {\n AbstractGeoJsonOverlay.prototype.initialize.call(this, \"xpprotector\");\n },\n\n createFeature: function(protector){\n return {\n \"type\":\"Feature\",\n \"geometry\": {\n \"type\":\"Polygon\",\n \"coordinates\":[[\n [protector.x-5 + 0.5,protector.z-5 + 0.5],\n [protector.x-5 + 0.5,protector.z+6 + 0.5],\n [protector.x+6 + 0.5,protector.z+6 + 0.5],\n [protector.x+6 + 0.5,protector.z-5 + 0.5],\n [protector.x-5 + 0.5,protector.z-5 + 0.5]\n ]]\n },\n \"properties\":{\n \"name\": protector.attributes.xpthreshold,\n \"popupContent\": protector.attributes.xpthreshold\n }\n };\n }\n});\n","import AbstractGeoJsonOverlay from './AbstractGeoJsonOverlay.js';\n\nexport default AbstractGeoJsonOverlay.extend({\n initialize: function() {\n AbstractGeoJsonOverlay.prototype.initialize.call(this, \"privprotector\");\n },\n\n createFeature: function(protector){\n return {\n \"type\":\"Feature\",\n \"geometry\": {\n \"type\":\"Polygon\",\n \"coordinates\":[[\n [protector.x-5 + 0.5,protector.z-5 + 0.5],\n [protector.x-5 + 0.5,protector.z+6 + 0.5],\n [protector.x+6 + 0.5,protector.z+6 + 0.5],\n [protector.x+6 + 0.5,protector.z-5 + 0.5],\n [protector.x-5 + 0.5,protector.z-5 + 0.5]\n ]]\n },\n \"properties\":{\n \"name\": protector.attributes.priv,\n \"popupContent\": protector.attributes.priv\n }\n };\n }\n});\n","import AbstractIconOverlay from './AbstractIconOverlay.js';\n\nvar MissionIcon = L.icon({\n iconUrl: 'pics/mission_32px.png',\n\n iconSize: [32, 32],\n iconAnchor: [16, 16],\n popupAnchor: [0, -32]\n});\n\nexport default AbstractIconOverlay.extend({\n initialize: function() {\n AbstractIconOverlay.prototype.initialize.call(this, \"mission\", MissionIcon);\n },\n\n createPopup: function(mission){\n return \"
Owner: \" + mission.attributes.owner + \"
\" +\n \"
Name: \" + mission.attributes.name + \"
\" +\n \"
Successcount: \" + mission.attributes.successcount + \"
\" +\n \"
Failcount: \" + mission.attributes.failcount + \"
\";\n }\n});\n","import wsChannel from '../../WebSocketChannel.js';\nimport layerMgr from '../../LayerManager.js';\n\nlet minecarts = [];\n\n//update minecarts all the time\nwsChannel.addListener(\"minetest-info\", function(info){\n minecarts = info.minecarts || [];\n});\n\n\nexport default L.LayerGroup.extend({\n initialize: function() {\n L.LayerGroup.prototype.initialize.call(this);\n\n this.currentObjects = {}; // name => marker\n\n this.reDraw = this.reDraw.bind(this);\n this.onMinetestUpdate = this.onMinetestUpdate.bind(this);\n },\n\n createMarker: function(cart){\n\n var Icon = L.icon({\n iconUrl: \"pics/minecart_logo.png\",\n\n iconSize: [32, 32],\n iconAnchor: [16, 16],\n popupAnchor: [0, -32]\n });\n\n var marker = L.marker([cart.pos.z + 0.5, cart.pos.x + 0.5], {icon: Icon});\n var html = \"
Minecart \";\n html += \"
Id: \" + cart.id + \"
\";\n\n marker.bindPopup(html);\n\n return marker;\n },\n\n isCartInCurrentLayer: function(cart){\n var mapLayer = layerMgr.getCurrentLayer();\n\n return (cart.pos.y >= (mapLayer.from*16) && cart.pos.y <= (mapLayer.to*16));\n },\n\n\n onMinetestUpdate: function(/*info*/){\n var self = this;\n\n minecarts.forEach(function(cart){\n var isInLayer = self.isCartInCurrentLayer(cart);\n\n if (!isInLayer){\n if (self.currentObjects[cart.id]){\n //cart is displayed and not on the layer anymore\n //Remove the marker and reference\n self.currentObjects[cart.id].remove();\n delete self.currentObjects[cart.id];\n }\n\n return;\n }\n\n if (self.currentObjects[cart.id]){\n //marker exists\n self.currentObjects[cart.id].setLatLng([cart.pos.z + 0.5, cart.pos.x + 0.5]);\n //setPopupContent\n\n } else {\n //marker does not exist\n var marker = self.createMarker(cart);\n marker.addTo(self);\n\n self.currentObjects[cart.id] = marker;\n }\n });\n\n Object.keys(self.currentObjects).forEach(function(existingId){\n var cartIsActive = minecarts.find(function(t){\n return t.id == existingId;\n });\n\n if (!cartIsActive){\n self.currentObjects[existingId].remove();\n delete self.currentObjects[existingId];\n }\n });\n },\n\n reDraw: function(){\n var self = this;\n this.currentObjects = {};\n this.clearLayers();\n\n minecarts.forEach(function(cart){\n if (!self.isCartInCurrentLayer(cart)){\n //not in current layer\n return;\n }\n\n var marker = self.createMarker(cart);\n marker.addTo(self);\n self.currentObjects[cart.id] = marker;\n });\n\n },\n\n onAdd: function(/*map*/) {\n wsChannel.addListener(\"minetest-info\", this.onMinetestUpdate);\n this.reDraw();\n },\n\n onRemove: function(/*map*/) {\n this.clearLayers();\n wsChannel.removeListener(\"minetest-info\", this.onMinetestUpdate);\n }\n});\n","import AbstractIconOverlay from './AbstractIconOverlay.js';\n\nexport default AbstractIconOverlay.extend({\n initialize: function() {\n AbstractIconOverlay.prototype.initialize.call(this, \"atm\");\n },\n\n getMaxDisplayedZoom: function(){\n return 10;\n },\n\n getIcon: function(obj){\n var img = \"pics/atm_front.png\";\n\n if (obj.attributes.type == \"wiretransfer\")\n img = \"pics/atm_front.png\";\n else if (obj.attributes.type == \"atm2\")\n img = \"pics/atm2_front.png\";\n else if (obj.attributes.type == \"atm3\")\n img = \"pics/atm3_front.png\";\n\n return L.icon({\n iconUrl: img,\n iconSize: [16, 16],\n iconAnchor: [8, 8],\n popupAnchor: [0, -8]\n });\n },\n\n createPopup: function(obj){\n var title = \"ATM\";\n\n if (obj.attributes.type == \"wiretransfer\")\n title = \"Wiretransfer\";\n\n return \"
\" + title + \" \";\n }\n});\n","import AbstractIconOverlay from './AbstractIconOverlay.js';\n\nexport default AbstractIconOverlay.extend({\n initialize: function() {\n AbstractIconOverlay.prototype.initialize.call(this, \"locator\");\n },\n\n getMaxDisplayedZoom: function(){\n return 6;\n },\n\n getIcon: function(obj){\n var img = \"pics/locator_beacon_level1.png\";\n\n if (obj.attributes.level == \"2\")\n img = \"pics/locator_beacon_level2.png\";\n else if (obj.attributes.level == \"3\")\n img = \"pics/locator_beacon_level3.png\";\n\n L.icon({\n iconUrl: img,\n iconSize: [32, 32],\n iconAnchor: [16, 16],\n popupAnchor: [0, -16]\n });\n },\n\n createPopup: function(obj){\n return \"
Locator \" +\n \"
Owner: \" + obj.attributes.owner + \" \" +\n \"
Name: \" + obj.attributes.name + \"
\" +\n \"
Level: \" + obj.attributes.level + \"
\";\n }\n});\n","import AbstractGeoJsonOverlay from './AbstractGeoJsonOverlay.js';\nimport { HtmlSanitizer } from '../../lib/HtmlSanitizer.js';\n\nexport default AbstractGeoJsonOverlay.extend({\n initialize: function() {\n AbstractGeoJsonOverlay.prototype.initialize.call(this, \"border\");\n },\n\n getMaxDisplayedZoom: function(){\n return 1;\n },\n\n getMinDisplayedZoom: function(){\n return 9;\n },\n\n createGeoJson: function(objects){\n var geoJsonLayer = L.geoJSON([], {\n onEachFeature: function(feature, layer){\n if (feature.properties && feature.properties.popupContent) {\n layer.bindPopup(feature.properties.popupContent);\n }\n },\n style: function(feature) {\n if (feature.properties && feature.properties.color){\n return {\n color: feature.properties.color,\n fill: feature.properties.color,\n opacity: 0.3\n };\n }\n }\n });\n\n var borders = [];\n var borderColors = {}; // { name: color }\n\n objects.forEach(function(obj){\n if (!obj.attributes.name)\n return;\n\n var border = borders[obj.attributes.name];\n if (!border){\n border = [];\n borders[obj.attributes.name] = border;\n borderColors[obj.attributes.name] = \"#ff7800\";\n }\n\n if (obj.attributes.color){\n borderColors[obj.attributes.name] = obj.attributes.color;\n }\n\n border.push(obj);\n });\n\n //Order by index and display\n Object.keys(borders).forEach(function(bordername){\n borders[bordername].sort(function(a,b){\n return parseInt(a.attributes.index) - parseInt(b.attributes.index);\n });\n\n var coords = [];\n\n //Add stations\n borders[bordername].forEach(function(entry){\n coords.push([entry.x + 0.5, entry.z + 0.5]);\n });\n\n // closing border\n coords.push([\n borders[bordername][0].x + 0.5,\n borders[bordername][0].z + 0.5\n ]);\n\n var feature = {\n \"type\":\"Feature\",\n \"geometry\": {\n \"type\":\"LineString\",\n \"coordinates\":coords\n },\n \"properties\":{\n \"name\": bordername,\n \"color\": borderColors[bordername],\n \"popupContent\": \"
Border (\" + HtmlSanitizer.SanitizeHtml(bordername) + \") \"\n }\n };\n\n //line-points\n geoJsonLayer.addData(feature);\n });\n\n return geoJsonLayer;\n }\n\n});\n","import wsChannel from '../../WebSocketChannel.js';\nimport layerMgr from '../../LayerManager.js';\n\nfunction getTrainImageUrlForType(type){\n switch(type){\n case \"advtrains:subway_wagon\":\n return \"pics/advtrains/advtrains_subway_wagon_inv.png\";\n case \"advtrains:engine_japan\":\n return \"pics/advtrains/advtrains_engine_japan_inv.png\";\n case \"advtrains:wagon_japan\":\n return \"pics/advtrains/advtrains_wagon_japan_inv.png\";\n case \"advtrains:engine_steam\":\n return \"pics/advtrains/advtrains_engine_steam_inv.png\";\n case \"advtrains:detailed_steam_engine\":\n return \"pics/advtrains/advtrains_detailed_engine_steam_inv.png\";\n case \"advtrains:engine_industrial\":\n return \"pics/advtrains/advtrains_engine_industrial_inv.png\";\n case \"advtrains:wagon_wood\":\n return \"pics/advtrains/advtrains_wagon_wood_inv.png\";\n case \"advtrains:wagon_box\":\n return \"pics/advtrains/advtrains_wagon_box_inv.png\";\n case \"advtrains:wagon_default\":\n return \"pics/advtrains/advtrains_wagon_inv.png\";\n\n case \"advtrains:subway_wagon_blue\":\n return \"pics/advtrains/advtrains_subway_wagon_inv_blue.png\";\n case \"advtrains:subway_wagon_red\":\n return \"pics/advtrains/advtrains_subway_wagon_inv_red.png\";\n case \"advtrains:subway_wagon_green\":\n return \"pics/advtrains/advtrains_subway_wagon_inv_green.png\";\n\n default:\n //TODO: fallback image\n return \"pics/advtrains/advtrains_subway_wagon_inv.png\";\n }\n}\n\nlet trains = [];\n\n//update trains all the time\nwsChannel.addListener(\"minetest-info\", function(info){\n trains = info.trains || [];\n});\n\nexport default L.LayerGroup.extend({\n initialize: function() {\n L.LayerGroup.prototype.initialize.call(this);\n\n this.currentObjects = {}; // name => marker\n\n this.onMinetestUpdate = this.onMinetestUpdate.bind(this);\n },\n\n createPopup: function(train){\n var html = \"
Train \";\n\n html += \"
Name: \" + train.text_outside + \"
\";\n html += \"
Line: \" + train.line + \"
\";\n html += \"
Velocity: \"+ Math.floor(train.velocity*10)/10 + \"
\";\n\n if (train.wagons){\n\t html += \"
Composition: \";\n\t train.wagons.forEach(function(w){\n\t var iconUrl = getTrainImageUrlForType(w.type);\n\t html += \"
\";\n\t });\n }\n\n return html;\n },\n\n\n getMaxDisplayedZoom: function(){\n return 10;\n },\n\n createMarker: function(train){\n\n //search for wagon in front (whatever \"front\" is...)\n var type;\n var lowest_pos = 100;\n if (train.wagons){\n \ttrain.wagons.forEach(function(w){\n \t\tif (w.pos_in_train < lowest_pos){\n \t\t\tlowest_pos = w.pos_in_train;\n \t\t\ttype = w.type;\n \t\t}\n \t});\n }\n\n var Icon = L.icon({\n iconUrl: getTrainImageUrlForType(type),\n\n iconSize: [16, 16],\n iconAnchor: [8, 8],\n popupAnchor: [0, -16]\n });\n\n var marker = L.marker([train.pos.z + 0.5, train.pos.x + 0.5], {icon: Icon});\n marker.bindPopup(this.createPopup(train));\n\n return marker;\n },\n\n isTrainInCurrentLayer: function(train){\n var mapLayer = layerMgr.getCurrentLayer();\n\n return (train.pos.y >= (mapLayer.from*16) && train.pos.y <= (mapLayer.to*16));\n },\n\n\n onMinetestUpdate: function(/*info*/){\n\n if (this.map.getZoom() < this.getMaxDisplayedZoom()) {\n this.clearLayers();\n this.currentObjects = {};\n return;\n }\n\n trains.forEach(train => {\n var isInLayer = this.isTrainInCurrentLayer(train);\n\n if (!isInLayer){\n if (this.currentObjects[train.id]){\n //train is displayed and not on the layer anymore\n //Remove the marker and reference\n this.currentObjects[train.id].remove();\n delete this.currentObjects[train.id];\n }\n\n return;\n }\n\n if (this.currentObjects[train.id]){\n //marker exists\n let marker = this.currentObjects[train.id];\n marker.setLatLng([train.pos.z + 0.5, train.pos.x + 0.5]);\n marker.setPopupContent(this.createPopup(train));\n\n } else {\n //marker does not exist\n let marker = this.createMarker(train);\n marker.addTo(this);\n\n this.currentObjects[train.id] = marker;\n }\n });\n\n Object.keys(this.currentObjects).forEach(existingId => {\n var trainIsActive = trains.find(function(t){\n return t.id == existingId;\n });\n\n if (!trainIsActive){\n //train\n this.currentObjects[existingId].remove();\n delete this.currentObjects[existingId];\n }\n });\n },\n\n reDraw: function(){\n this.currentObjects = {};\n this.clearLayers();\n\n if (this.map.getZoom() < this.getMaxDisplayedZoom()) {\n return;\n }\n\n trains.forEach(train => {\n if (!this.isTrainInCurrentLayer(train)){\n //not in current layer\n return;\n }\n\n var marker = this.createMarker(train);\n marker.addTo(this);\n this.currentObjects[train.id] = marker;\n });\n\n },\n\n onAdd: function(map) {\n this.map = map;\n wsChannel.addListener(\"minetest-info\", this.onMinetestUpdate);\n this.reDraw();\n },\n\n onRemove: function(/*map*/) {\n this.clearLayers();\n wsChannel.removeListener(\"minetest-info\", this.onMinetestUpdate);\n }\n});\n","import wsChannel from '../../WebSocketChannel.js';\nimport layerMgr from '../../LayerManager.js';\n\nvar IconOn = L.icon({\n iconUrl: \"pics/advtrains/advtrains_signal_on.png\",\n iconSize: [16, 16],\n iconAnchor: [8, 8],\n popupAnchor: [0, -16]\n});\n\nvar IconOff = L.icon({\n iconUrl: \"pics/advtrains/advtrains_signal_off.png\",\n iconSize: [16, 16],\n iconAnchor: [8, 8],\n popupAnchor: [0, -16]\n});\n\nlet signals = [];\n\n//update signals all the time\nwsChannel.addListener(\"minetest-info\", function(info){\n signals = info.signals || [];\n});\n\nexport default L.LayerGroup.extend({\n initialize: function() {\n L.LayerGroup.prototype.initialize.call(this);\n\n this.currentObjects = {}; // name => marker\n this.onMinetestUpdate = this.onMinetestUpdate.bind(this);\n },\n\n createPopup: function(signal){\n var html = \"
Signal \";\n html += \"
State: \" +\n (signal.green ? \"Green\" : \"Red\") +\n \"
\";\n\n return html;\n },\n\n hashPos: function(x,y,z){\n return x + \"/\" + y + \"/\" + z;\n },\n\n getMaxDisplayedZoom: function(){\n return 10;\n },\n\n createMarker: function(signal){\n\n var Icon = signal.green ? IconOn : IconOff;\n var marker = L.marker([signal.pos.z + 0.5, signal.pos.x + 0.5], {icon: Icon});\n marker.bindPopup(this.createPopup(signal));\n\n return marker;\n },\n\n isSignalInCurrentLayer: function(signal){\n var mapLayer = layerMgr.getCurrentLayer();\n\n return (signal.pos.y >= (mapLayer.from*16) && signal.pos.y <= (mapLayer.to*16));\n },\n\n\n onMinetestUpdate: function(/*info*/){\n\n if (this.map.getZoom() < this.getMaxDisplayedZoom()) {\n this.clearLayers();\n this.currentObjects = {};\n return;\n }\n\n signals.forEach(signal => {\n var isInLayer = this.isSignalInCurrentLayer(signal);\n var signalId = this.hashPos(signal.pos.x, signal.pos.y, signal.pos.z);\n\n if (!isInLayer){\n if (this.currentObjects[signalId]){\n //signal is displayed and not on the layer anymore\n //Remove the marker and reference\n this.currentObjects[signalId].remove();\n delete this.currentObjects[signalId];\n }\n\n return;\n }\n\n if (this.currentObjects[signalId]){\n //marker exists\n let marker = this.currentObjects[signalId];\n marker.setLatLng([signal.pos.z + 0.5, signal.pos.x + 0.5]);\n marker.setPopupContent(this.createPopup(signal));\n marker.setIcon(signal.green ? IconOn : IconOff);\n\n } else {\n //marker does not exist\n let marker = this.createMarker(signal);\n marker.addTo(this);\n\n this.currentObjects[signalId] = marker;\n }\n });\n\n Object.keys(this.currentObjects).forEach(existingId => {\n var signalIsActive = signals.find((t) => {\n\tvar hash = this.hashPos(t.pos.x, t.pos.y, t.pos.z);\n return hash == existingId;\n });\n\n if (!signalIsActive){\n this.currentObjects[existingId].remove();\n delete this.currentObjects[existingId];\n }\n });\n },\n\n reDraw: function(){\n this.currentObjects = {};\n this.clearLayers();\n\n if (this.map.getZoom() < this.getMaxDisplayedZoom()) {\n return;\n }\n\n signals.forEach(signal => {\n if (!this.isSignalInCurrentLayer(signal)){\n //not in current layer\n return;\n }\n\n var marker = this.createMarker(signal);\n marker.addTo(this);\n var hash = this.hashPos(signal.pos.x, signal.pos.y, signal.pos.z);\n this.currentObjects[hash] = marker;\n });\n\n },\n\n onAdd: function(map) {\n this.map = map;\n wsChannel.addListener(\"minetest-info\", this.onMinetestUpdate);\n this.reDraw();\n },\n\n onRemove: function(/*map*/) {\n this.clearLayers();\n wsChannel.removeListener(\"minetest-info\", this.onMinetestUpdate);\n }\n});\n","import AbstractIconOverlay from './AbstractIconOverlay.js';\n\nconst IconWood = L.icon({\n iconUrl: 'pics/default_sign_wood.png',\n iconSize: [16, 16],\n iconAnchor: [8, 8],\n popupAnchor: [0, -8]\n});\n\nconst IconSteel = L.icon({\n iconUrl: 'pics/default_sign_steel.png',\n iconSize: [16, 16],\n iconAnchor: [8, 8],\n popupAnchor: [0, -8]\n});\n\nexport default AbstractIconOverlay.extend({\n initialize: function() {\n AbstractIconOverlay.prototype.initialize.call(this, \"sign\");\n },\n\n getIcon: function(obj) {\n if (obj.attributes.material === \"steel\") {\n return IconSteel;\n } else {\n return IconWood;\n }\n },\n\n createPopup: function(sign) {\n return sign.attributes.display_text;\n }\n});\n","import wsChannel from '../../WebSocketChannel.js';\nimport layerMgr from '../../LayerManager.js';\n\nlet planes = [];\n\nlet icons = {\n \"default\": {\n url: \"pics/airutils_planes/supercub.png\",\n size: 48\n },\n \"hidroplane:hidro\": {\n url: \"pics/airutils_planes/hidro.png\",\n size: 48\n },\n \"supercub:supercub\": {\n url: \"pics/airutils_planes/supercub.png\",\n size: 48\n },\n \"pa28:pa28\": {\n url: \"pics/airutils_planes/pa28.png\",\n size: 64\n },\n \"trike:trike\": {\n url: \"pics/airutils_planes/trike.png\",\n size: 40\n },\n \"ju52:ju52\": {\n url: \"pics/airutils_planes/ju52.png\",\n size: 72\n },\n \"steampunk_blimp:blimp\": {\n url: \"pics/airutils_planes/blimp.png\",\n size: 96\n },\n \"fishing_boat:boat\": {\n url: \"pics/airutils_planes/fishingboat.png\",\n size: 72\n },\n};\n\n// listening for realtime updates\nwsChannel.addListener(\"minetest-info\", function(info) {\n planes = info.airutils_planes || [];\n});\n\nexport default L.LayerGroup.extend({\n initialize: function() {\n L.LayerGroup.prototype.initialize.call(this);\n\n this.currentObjects = {}; // id => marker\n\n this.reDraw = this.reDraw.bind(this);\n this.onMinetestUpdate = this.onMinetestUpdate.bind(this);\n },\n\n createPopup: function(plane) {\n let name = plane.name;\n if (!name) name = plane.entity.substring(plane.entity.indexOf(\":\")+1);\n\n let html = \"
\" + name + \" \";\n html += \"
\";\n html += \"
Owner: \" + plane.owner + \"
\";\n html += \"
Pilot: \" + (plane.driver ? plane.driver : \"-\") + \"
\";\n html += \"
Passengers: \" + (plane.passenger ? plane.passenger : \"-\") + \"
\";\n return html;\n },\n\n createMarker: function(plane) {\n let marker = L.marker([plane.pos.z + 0.5, plane.pos.x + 0.5], {icon: this.getIcon(plane)});\n\n marker.bindPopup(this.createPopup(plane));\n\n return marker;\n },\n\n getIcon: function(plane) {\n let icon = icons[plane.entity];\n if (!icon) icon = icons.default;\n return L.divIcon({\n html: `
\n
\n
`,\n className: '', // don't use leaflet default of a white block\n iconSize: [icon.size, icon.size],\n iconAnchor: [icon.size/2, icon.size/2],\n popupAnchor: [0, -(icon.size/2)]\n });\n },\n\n isInCurrentLayer: function(plane) {\n let mapLayer = layerMgr.getCurrentLayer();\n\n return (\n plane.pos.y >= (mapLayer.from*16) &&\n plane.pos.y <= ((mapLayer.to*16) + 15)\n );\n },\n\n onMinetestUpdate: function(/*info*/) {\n\n planes.forEach(plane => {\n let isInLayer = this.isInCurrentLayer(plane);\n\n if (!isInLayer) {\n if (this.currentObjects[plane.id]) {\n //player is displayed and not on the layer anymore\n //Remove the marker and reference\n this.currentObjects[plane.id].remove();\n delete this.currentObjects[plane.id];\n }\n\n return;\n }\n\n if (this.currentObjects[plane.id]) {\n //marker exists\n let marker = this.currentObjects[plane.id];\n marker.setLatLng([plane.pos.z + 0.5, plane.pos.x + 0.5]);\n marker.setIcon(this.getIcon(plane));\n marker.setPopupContent(this.createPopup(plane));\n } else {\n //marker does not exist\n let marker = this.createMarker(plane);\n marker.addTo(this);\n\n this.currentObjects[plane.id] = marker;\n }\n });\n\n Object.keys(this.currentObjects).forEach(existingId => {\n let planeIsActive = planes.find(function(p) {\n return p.id == existingId;\n });\n\n if (!planeIsActive) {\n //player\n this.currentObjects[existingId].remove();\n delete this.currentObjects[existingId];\n }\n });\n },\n\n reDraw: function() {\n this.currentObjects = {};\n this.clearLayers();\n\n planes.forEach(plane => {\n if (!this.isInCurrentLayer(plane)) {\n //not in current layer\n return;\n }\n\n let marker = this.createMarker(plane);\n marker.addTo(this);\n this.currentObjects[plane.id] = marker;\n });\n\n },\n\n onAdd: function(/*map*/) {\n wsChannel.addListener(\"minetest-info\", this.onMinetestUpdate);\n this.reDraw();\n },\n\n onRemove: function(/*map*/) {\n this.clearLayers();\n wsChannel.removeListener(\"minetest-info\", this.onMinetestUpdate);\n }\n});\n","import AbstractIconOverlay from './AbstractIconOverlay.js';\nimport {HtmlSanitizer} from '../../lib/HtmlSanitizer.js';\n\nvar PhonographIcon = L.icon({\n iconUrl: 'pics/phonograph_node_temp.png',\n\n iconSize: [16, 16],\n iconAnchor: [8, 8],\n popupAnchor: [0, -16]\n});\n\nexport default AbstractIconOverlay.extend({\n initialize: function() {\n AbstractIconOverlay.prototype.initialize.call(this, \"phonograph\", PhonographIcon);\n },\n\n createPopup: function(obj){\n return \"
Phonograph \" +\n \"
Now playing: \" + HtmlSanitizer.SanitizeHtml(obj.attributes.song_title) + \" by \" +\n HtmlSanitizer.SanitizeHtml(obj.attributes.song_artist);\n }\n});\n","import AbstractIconOverlay from './AbstractIconOverlay.js';\nimport {HtmlSanitizer} from '../../lib/HtmlSanitizer.js';\n\nexport default AbstractIconOverlay.extend({\n initialize: function () {\n AbstractIconOverlay.prototype.initialize.call(this, \"um_area_forsale\");\n },\n\n getMaxDisplayedZoom: function () {\n return 8;\n },\n\n getIcon: function () {\n return L.icon({\n iconUrl: \"pics/um_area_forsale_sign_alpha.png\",\n iconSize: [32, 32],\n iconAnchor: [16, 16],\n popupAnchor: [0, -16]\n });\n },\n\n createPopup: function (obj) {\n return \"
Area For Sale \" +\n \"
\" + HtmlSanitizer.SanitizeHtml(obj.attributes.description || \"No Description\") + \" \" +\n \"
Owner: \" + HtmlSanitizer.SanitizeHtml(obj.attributes.owner) + \"
\" +\n \"
Area ID(s): \" + HtmlSanitizer.SanitizeHtml(obj.attributes.id) + \"
\" +\n \"
Price: $\" + HtmlSanitizer.SanitizeHtml(obj.attributes.price) + \"
\";\n }\n});\n","import PlayerOverlay from './overlays/PlayerOverlay.js';\nimport PoiOverlay from './overlays/PoiOverlay.js';\nimport ShopOverlay from './overlays/ShopOverlay.js';\nimport LabelOverlay from './overlays/LabelOverlay.js';\nimport TrainlineOverlay from './overlays/TrainlineOverlay.js';\nimport TravelnetOverlay from './overlays/TravelnetOverlay.js';\nimport BonesOverlay from './overlays/BonesOverlay.js';\nimport LcdOverlay from './overlays/LcdOverlay.js';\nimport DigitermOverlay from './overlays/DigitermOverlay.js';\nimport LuacontrollerOverlay from './overlays/LuacontrollerOverlay.js';\nimport TechnicAnchorOverlay from './overlays/TechnicAnchorOverlay.js';\nimport TechnicQuarryOverlay from './overlays/TechnicQuarryOverlay.js';\nimport TechnicSwitchOverlay from './overlays/TechnicSwitchOverlay.js';\nimport ProtectorOverlay from './overlays/ProtectorOverlay.js';\nimport XPProtectorOverlay from './overlays/XPProtectorOverlay.js';\nimport PrivProtectorOverlay from './overlays/PrivProtectorOverlay.js';\nimport MissionOverlay from './overlays/MissionOverlay.js';\nimport MinecartOverlay from './overlays/MinecartOverlay.js';\nimport ATMOverlay from './overlays/ATMOverlay.js';\nimport LocatorOverlay from './overlays/LocatorOverlay.js';\nimport BorderOverlay from './overlays/BorderOverlay.js';\nimport TrainOverlay from './overlays/TrainOverlay.js';\nimport TrainsignalOverlay from './overlays/TrainsignalOverlay.js';\nimport SignOverlay from './overlays/SignOverlay.js';\nimport AirUtilsPlanesOverlay from \"./overlays/AirUtilsPlanesOverlay.js\";\nimport PhonographOverlay from \"./overlays/PhonographOverlay.js\";\nimport UnifiedMoneyAreaForSaleOverlay from './overlays/UnifiedMoneyAreaForSaleOverlay.js';\n\nexport default function(cfg, map, overlays, wsChannel){\n\n function isDefault(key){\n return cfg.defaultoverlays.indexOf(key) >= 0;\n }\n\n if (cfg.mapobjects.mapserver_player) {\n overlays.Player = new PlayerOverlay();\n if (isDefault(\"mapserver_player\")) {\n map.addLayer(overlays.Player);\n }\n }\n\n if (cfg.mapobjects.mapserver_poi) {\n overlays.POI = new PoiOverlay(wsChannel);\n if (isDefault(\"mapserver_poi\")) {\n map.addLayer(overlays.POI);\n }\n }\n\n if (cfg.mapobjects.smartshop || cfg.mapobjects.fancyvend) {\n overlays.Shop = new ShopOverlay();\n if (isDefault(\"smartshop\") || isDefault(\"fancyvend\")) {\n map.addLayer(overlays.Shop);\n }\n }\n\n if (cfg.mapobjects.mapserver_label) {\n overlays.Label = new LabelOverlay();\n if (isDefault(\"mapserver_label\")) {\n map.addLayer(overlays.Label);\n }\n }\n\n if (cfg.mapobjects.mapserver_trainline) {\n overlays.Trainlines = new TrainlineOverlay();\n if (isDefault(\"mapserver_trainline\")) {\n map.addLayer(overlays.Trainlines);\n }\n }\n\n if (cfg.mapobjects.mapserver_border) {\n overlays.Border = new BorderOverlay();\n if (isDefault(\"mapserver_border\")) {\n map.addLayer(overlays.Border);\n }\n }\n\n if (cfg.mapobjects.travelnet) {\n overlays.Travelnet = new TravelnetOverlay();\n if (isDefault(\"travelnet\")) {\n map.addLayer(overlays.Travelnet);\n }\n }\n\n if (cfg.mapobjects.bones) {\n overlays.Bones = new BonesOverlay();\n if (isDefault(\"bones\")) {\n map.addLayer(overlays.Bones);\n }\n }\n\n if (cfg.mapobjects.digilines) {\n overlays[\"Digilines LCD\"] = new LcdOverlay();\n if (isDefault(\"digilines\")) {\n map.addLayer(overlays[\"Digilines LCD\"]);\n }\n }\n\n if (cfg.mapobjects.digiterms) {\n overlays.Digiterms = new DigitermOverlay();\n if (isDefault(\"digiterms\")) {\n map.addLayer(overlays.Digiterms);\n }\n }\n\n if (cfg.mapobjects.luacontroller) {\n overlays[\"Lua Controller\"] = new LuacontrollerOverlay();\n if (isDefault(\"luacontroller\")) {\n map.addLayer(overlays[\"Lua Controller\"]);\n }\n }\n\n if (cfg.mapobjects.technic_anchor) {\n overlays[\"Technic Anchor\"] = new TechnicAnchorOverlay();\n if (isDefault(\"technic_anchor\")) {\n map.addLayer(overlays[\"Technic Anchor\"]);\n }\n }\n\n if (cfg.mapobjects.technic_quarry) {\n overlays[\"Technic Quarry\"] = new TechnicQuarryOverlay();\n if (isDefault(\"technic_quarry\")) {\n map.addLayer(overlays[\"Technic Quarry\"]);\n }\n }\n\n if (cfg.mapobjects.technic_switch) {\n overlays[\"Technic Switching station\"] = new TechnicSwitchOverlay();\n if (isDefault(\"technic_switch\")) {\n map.addLayer(overlays[\"Technic Switching station\"]);\n }\n }\n\n if (cfg.mapobjects.protector) {\n overlays.Protector = new ProtectorOverlay();\n if (isDefault(\"protector\")) {\n map.addLayer(overlays.Protector);\n }\n }\n\n if (cfg.mapobjects.xpprotector) {\n overlays[\"XP Protector\"] = new XPProtectorOverlay();\n if (isDefault(\"xpprotector\")) {\n map.addLayer(overlays[\"XP Protector\"]);\n }\n }\n\n if (cfg.mapobjects.privprotector) {\n overlays[\"Priv Protector\"] = new PrivProtectorOverlay();\n if (isDefault(\"privprotector\")) {\n map.addLayer(overlays[\"Priv Protector\"]);\n }\n }\n\n if (cfg.mapobjects.mission) {\n overlays.Missions = new MissionOverlay();\n if (isDefault(\"mission\")) {\n map.addLayer(overlays.Missions);\n }\n }\n\n if (cfg.mapobjects.train) {\n overlays.Trains = new TrainOverlay();\n\n if (isDefault(\"train\")) {\n map.addLayer(overlays.Trains);\n }\n }\n\n if (cfg.mapobjects.trainsignal) {\n overlays.Trainsignals = new TrainsignalOverlay();\n\n if (isDefault(\"trainsignal\")) {\n map.addLayer(overlays.Trainsignals);\n }\n }\n\n if (cfg.mapobjects.minecart) {\n overlays.Minecart = new MinecartOverlay();\n if (isDefault(\"minecart\")) {\n map.addLayer(overlays.Minecart);\n }\n }\n\n if (cfg.mapobjects.atm) {\n overlays.ATM = new ATMOverlay();\n if (isDefault(\"atm\")) {\n map.addLayer(overlays.ATM);\n }\n }\n\n if (cfg.mapobjects.locator) {\n overlays.Locator = new LocatorOverlay();\n if (isDefault(\"locator\")) {\n map.addLayer(overlays.Locator);\n }\n }\n\n if (cfg.mapobjects.signs) {\n overlays.Signs = new SignOverlay();\n if (isDefault(\"signs\")) {\n map.addLayer(overlays.Signs);\n }\n }\n\n if (cfg.mapobjects.mapserver_airutils) {\n overlays.Planes = new AirUtilsPlanesOverlay();\n if (isDefault(\"mapserver_airutils\")) {\n map.addLayer(overlays.Planes);\n }\n }\n\n if (cfg.mapobjects.phonograph) {\n overlays.Phonographs = new PhonographOverlay();\n if (isDefault(\"Phonographs\")) {\n map.addLayer(overlays.Phonographs);\n }\n }\n if (cfg.mapobjects.um_area_forsale) {\n overlays[\"Area For Sale\"] = new UnifiedMoneyAreaForSaleOverlay();\n if (isDefault(\"Area For Sale\")) {\n map.addLayer(overlays[\"Area For Sale\"]);\n }\n }\n\n}\n","\nvar customOverlays = {};\n\ntry {\n customOverlays = JSON.parse(localStorage[\"mapserver-customOverlays\"]);\n} catch (e){}\n\nfunction save(){\n localStorage[\"mapserver-customOverlays\"] = JSON.stringify(customOverlays);\n}\n\nfunction onAddLayer(e){\n customOverlays[e.name] = true;\n save();\n}\n\nfunction onRemoveLayer(e){\n customOverlays[e.name] = false;\n save();\n}\n\nexport default function(map, overlays){\n\n Object.keys(customOverlays)\n .filter(name => overlays[name])\n .forEach(name => {\n const layer = overlays[name];\n\n if (customOverlays[name] && !map.hasLayer(layer)){\n //Add\n map.addLayer(layer);\n }\n\n if (!customOverlays[name] && map.hasLayer(layer)){\n //Remove\n map.removeLayer(layer);\n }\n });\n\n map.on('unload', () => {\n map.off('overlayadd', onAddLayer);\n map.off('overlayremove', onRemoveLayer);\n });\n\n map.on('overlayadd', onAddLayer);\n map.on('overlayremove', onRemoveLayer);\n\n}\n","\nexport default L.TileLayer.extend({\n\n initialize: function(wsChannel, layerId, map) {\n L.TileLayer.prototype.initialize.call(this);\n\n var self = this;\n this.layerId = layerId;\n\n wsChannel.addListener(\"rendered-tile\", function(tc){\n if (tc.layerid != self.layerId){\n //ignore other layers\n return;\n }\n\n if (tc.zoom != map.getZoom()){\n //ignore other zoom levels\n return;\n }\n\n var id = self.getImageId(tc.x, tc.y, tc.zoom);\n var el = document.getElementById(id);\n\n if (el){\n //Update src attribute if img found\n el.src = self.getTileSource(tc.x, tc.y, tc.zoom, true);\n }\n });\n },\n\n getTileSource: function(x,y,zoom,cacheBust){\n return \"api/tile/\" + this.layerId + \"/\" + x + \"/\" + y + \"/\" + zoom + (cacheBust ? \"?_=\" + Date.now() : \"\");\n },\n\n getImageId: function(x, y, zoom){\n return \"tile-\" + this.layerId + \"/\" + x + \"/\" + y + \"/\" + zoom;\n },\n\n createTile: function(coords, done){\n var tile = document.createElement('img');\n tile.src = this.getTileSource(coords.x, coords.y, coords.z, true);\n tile.id = this.getImageId(coords.x, coords.y, coords.z);\n\n // trigger callbacks\n tile.onload = () => done(null, tile);\n tile.onerror = e => done(e, tile);\n\n return tile;\n }\n});\n","import wsChannel from '../WebSocketChannel.js';\nimport SimpleCRS from './SimpleCRS.js';\nimport CoordinatesDisplay from './CoordinatesDisplay.js';\nimport WorldInfoDisplay from './WorldInfoDisplay.js';\nimport TopRightControl from './TopRightControl.js';\nimport Overlaysetup from './Overlaysetup.js';\nimport CustomOverlay from './CustomOverlay.js';\nimport RealtimeTileLayer from './RealtimeTileLayer.js';\n\nimport config from '../config.js';\n\n\nexport function createMap(node, layerId, zoom, lat, lon){\n\n const cfg = config.get();\n\n const map = L.map(node, {\n minZoom: 2,\n maxZoom: 12,\n center: [lat, lon],\n zoom: zoom,\n crs: SimpleCRS,\n maxBounds: L.latLngBounds(\n L.latLng(-31000, -31000),\n L.latLng(31000, 31000)\n )\n });\n\n map.attributionControl.addAttribution('
Minetest Mapserver ');\n\n var tileLayer = new RealtimeTileLayer(wsChannel, layerId, map);\n tileLayer.addTo(map);\n\n //All overlays\n var overlays = {};\n Overlaysetup(cfg, map, overlays);\n CustomOverlay(map, overlays);\n\n new CoordinatesDisplay({ position: 'bottomleft' }).addTo(map);\n new WorldInfoDisplay(wsChannel, { position: 'bottomright' }).addTo(map);\n new TopRightControl({ position: 'topright' }).addTo(map);\n\n //layer control\n L.control.layers({}, overlays, { position: \"topright\" }).addTo(map);\n\n return map;\n}\n","import layerManager from '../LayerManager.js';\nimport { createMap } from '../map/MapFactory.js';\n\nfunction setupMap(vnode, id){\n const map = createMap(\n id,\n layerManager.getCurrentLayer().id,\n +vnode.attrs.zoom,\n +vnode.attrs.lat,\n +vnode.attrs.lon\n );\n\n vnode.state.map = map;\n\n function updateHash(){\n const center = map.getCenter();\n const layerId = layerManager.getCurrentLayer().id;\n\n m.route.set(`/map/${layerId}/${map.getZoom()}/` +\n `${Math.floor(center.lng)}/${Math.floor(center.lat)}`);\n }\n\n map.on('zoomend', updateHash);\n map.on('moveend', updateHash);\n\n return map;\n}\n\nexport default {\n\n oninit(){\n this.id = \"map_\" + Math.floor(Math.random() * 10000);\n },\n\n view(){\n return m(\"div\", { class: \"full-screen\", id: this.id });\n },\n\n oncreate(vnode){\n this.map = setupMap(vnode, this.id);\n },\n\n onupdate(vnode){\n if (vnode.attrs.layerId != layerManager.getCurrentLayer().id){\n //layer changed, recreate map\n this.map.remove();\n layerManager.setLayerId(vnode.attrs.layerId);\n this.map = setupMap(vnode, this.id);\n\n } else {\n //position/zoom change\n //this.map.setView([+vnode.attrs.lat, +vnode.attrs.lon], +vnode.attrs.zoom);\n\n }\n return false;\n },\n\n onremove(){\n this.map.remove();\n }\n};\n","import layerMgr from '../LayerManager.js';\n\nexport default {\n view: function(vnode){\n var result = vnode.attrs.result;\n\n function getLayer(obj){\n var layer = layerMgr.getLayerByY(obj.y);\n return layer ? layer.name : \"
\";\n }\n\n function getPos(obj){\n var text = obj.x + \"/\" + obj.y + \"/\" + obj.z;\n\n return m(\"span\", {class:\"badge badge-success\"}, text);\n }\n\n var rows = result.map(function(obj){\n\n var row_classes = \"\";\n var description = obj.type;\n var type = obj.type;\n\n // train-line result\n if (obj.type == \"train\"){\n description = [\n m(\"span\", obj.attributes.station),\n \" \",\n m(\"span\", {class:\"badge badge-info\"}, obj.attributes.line)\n ];\n\n type = m(\"i\", { class: \"fa fa-subway\" });\n }\n\n // travelnet\n if (obj.type == \"travelnet\"){\n description = m(\"span\", obj.attributes.station_name);\n type = m(\"img\", { src: \"pics/travelnet_inv.png\" });\n }\n\n // bones\n if (obj.type == \"bones\"){\n description = m(\"span\", obj.attributes.owner);\n type = m(\"img\", { src: \"pics/bones_top.png\" });\n }\n\n // label\n if (obj.type == \"label\"){\n description = m(\"span\", obj.attributes.text);\n type = m(\"img\", { src: \"pics/mapserver_label.png\" });\n }\n\n // digiterm\n if (obj.type == \"digiterm\"){\n description = m(\"span\", obj.attributes.display_text);\n type = m(\"img\", { src: \"pics/digiterms_beige_front.png\" });\n }\n\n // digiline lcd\n if (obj.type == \"digilinelcd\"){\n description = m(\"span\", obj.attributes.text);\n type = m(\"img\", { src: \"pics/lcd_lcd.png\" });\n }\n\n // locator\n if (obj.type == \"locator\"){\n description = m(\"span\", obj.attributes.name);\n\n var img = \"pics/locator_beacon_level1.png\";\n\n if (obj.attributes.level == \"2\")\n img = \"pics/locator_beacon_level2.png\";\n else if (obj.attributes.level == \"3\")\n img = \"pics/locator_beacon_level3.png\";\n\n type = m(\"img\", { src: img });\n }\n\n // poi marker\n if (obj.type == \"poi\"){\n description = m(\"span\", obj.attributes.name);\n\n var color = obj.attributes.color || \"blue\";\n var icon = obj.attributes.icon || \"home\";\n\n type = m(\"div\", { style: \"position: relative\", class: \"awesome-marker awesome-marker-icon-\" + color }, [\n m(\"i\", { class: \"fa fa-\" + icon })\n ]);\n }\n\n // For Sale Sign\n if (obj.type == \"um_area_forsale\"){\n description = m(\"span\", obj.attributes.description || \"No Description\");\n type = m(\"img\", { src: \"pics/um_area_forsale_sign_alpha.png\" });\n }\n\n //shop\n if (obj.type == \"shop\") {\n if (obj.attributes.stock == 0){\n row_classes += \"table-warning\";\n type = m(\"img\", { src: \"pics/shop_empty.png\" });\n } else {\n type = m(\"img\", { src: \"pics/shop.png\" });\n }\n\n description = m(\"span\", [\n \"Shop, trading \",\n m(\"span\", {class:\"badge badge-primary\"},\n obj.attributes.out_count,\n \"x\",\n m(\"i\", {class:\"fa fa-cart-arrow-down\"})\n ),\n m(\"span\", {class:\"badge badge-info\"}, obj.attributes.out_item),\n \" for \",\n m(\"span\", {class:\"badge badge-primary\"},\n obj.attributes.in_count,\n \"x\",\n m(\"i\", {class:\"fa fa-money-bill\"})\n ),\n m(\"span\", {class:\"badge badge-info\"}, obj.attributes.in_item),\n \" Stock: \",\n m(\"span\", {class:\"badge badge-info\"}, obj.attributes.stock)\n ]);\n }\n\n function onclick(){\n var layer = layerMgr.getLayerByY(obj.y);\n m.route.set(`/map/${layer.id}/${12}/${obj.x}/${obj.z}`);\n }\n\n return m(\"tr\", {\"class\": row_classes}, [\n m(\"td\", type),\n m(\"td\", obj.attributes.owner),\n m(\"td\", getLayer(obj)),\n m(\"td\", getPos(obj)),\n m(\"td\", description),\n m(\"button[type=button]\", {class: \"btn btn-secondary\", onclick: onclick }, [\n \"Goto \",\n m(\"i\", { class: \"fas fa-play\" })\n ])\n ]);\n });\n\n return m(\"table\", {class:\"table table-striped\"}, [\n m(\"thead\", [\n m(\"tr\", [\n m(\"th\", \"Type\"),\n m(\"th\", \"Owner\"),\n m(\"th\", \"Layer\"),\n m(\"th\", \"Position\"),\n m(\"th\", \"Description\"),\n m(\"th\", \"Action\")\n ])\n ]),\n m(\"tbody\", rows)\n ]);\n }\n};\n","import SearchResult from './SearchResult.js';\nimport { getMapObjects } from '../api.js';\n\nconst state = {\n busy: false,\n result: []\n};\n\nfunction searchFor(type, key, valuelike){\n return getMapObjects({\n pos1: { x:-2048, y:-2048, z:-2048 },\n pos2: { x:2048, y:2048, z:2048 },\n type: type,\n attributelike: {\n key: key,\n value: \"%\" + valuelike +\"%\"\n }\n });\n}\n\nfunction search(query){\n state.result = [];\n\n var prom_list = [\n searchFor(\"shop\", \"out_item\", query),\n searchFor(\"poi\", \"name\", query),\n searchFor(\"train\", \"station\", query),\n searchFor(\"travelnet\", \"station_name\", query),\n searchFor(\"bones\", \"owner\", query),\n searchFor(\"locator\", \"name\", query),\n searchFor(\"label\", \"text\", query),\n searchFor(\"digiterm\", \"display_text\", query),\n searchFor(\"digilinelcd\", \"text\", query),\n searchFor(\"um_area_forsale\", \"description\", query)\n ];\n\n Promise.all(prom_list)\n .then(function(results){\n\n var arr = [];\n results.forEach(function(r) {\n arr = arr.concat(r);\n });\n\n state.result = arr;\n state.busy = false;\n });\n\n}\n\nexport default {\n oncreate(vnode){\n search(vnode.attrs.query);\n },\n\n view(vnode){\n if (state.result.length == 0) {\n return m(\"div\", vnode.attrs.query);\n } else {\n return m(SearchResult, { result: state.result });\n }\n }\n};\n","\nimport Map from './components/Map.js';\nimport Search from './components/Search.js';\n\nexport default {\n \"/map/:layerId/:zoom/:lon/:lat\": Map,\n \"/search/:query\": Search\n};\n","\nexport function hashCompat(){\n\n if (window.location.hash) {\n\n const parts = window.location.hash.replace(\"#\", \"\").split(\"/\");\n if (parts.length == 0){\n //invalid\n return;\n }\n\n if (parts[0] == \"map\"){\n //new link\n return;\n }\n\n if (isNaN(+parts[0])){\n //NaN\n return;\n }\n\n if (parts.length == 3){\n // #1799.5/399/10\n window.location.hash = `#!/map/0/${parts[2]}/${parts[0]}/${parts[1]}`;\n }\n\n if (parts.length == 4) {\n // #0/-1799.5/399/10\n // #0/5405.875/11148/12\n window.location.hash = `#!/map/${parts[0]}/${parts[3]}/${parts[1]}/${parts[2]}`;\n }\n }\n}\n","\nimport { getConfig } from './api.js';\nimport routes from './routes.js';\nimport wsChannel from './WebSocketChannel.js';\nimport config from './config.js';\nimport { hashCompat } from './compat.js';\nimport layerManager from './LayerManager.js';\n\n// hash route compat\nhashCompat();\n\ngetConfig()\n.then(cfg => {\n layerManager.setup(cfg.layers);\n config.set(cfg);\n wsChannel.connect();\n m.route(document.getElementById(\"app\"), \"/map/0/12/0/0\", routes);\n})\n.catch(e => {\n document.getElementById(\"app\").innerHTML = e;\n});\n"],"names":["state","LayerManager","config","layerMgr"],"mappings":"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"}