viewer: store URL paramters in a 'params' variable

This commit is contained in:
Matthias Schiffer 2024-01-07 19:03:22 +01:00
parent 76df56c9ce
commit 7b3ac8647e
Signed by: neocturne
GPG key ID: 16EF3F64CB201D9C

View file

@ -36,6 +36,7 @@ const signKinds = {
}, },
} }
const params = {};
const signIcons = {}; const signIcons = {};
function signIcon(material, kind) { function signIcon(material, kind) {
@ -323,30 +324,28 @@ window.createMap = function () {
mipmaps = res.mipmaps, mipmaps = res.mipmaps,
spawn = res.spawn; spawn = res.spawn;
let x, z, zoom, light, signs;
const updateParams = function () { const updateParams = function () {
const args = parseHash(); const args = parseHash();
zoom = parseInt(args['zoom']); params.zoom = parseInt(args['zoom']);
x = parseFloat(args['x']); params.x = parseFloat(args['x']);
z = parseFloat(args['z']); params.z = parseFloat(args['z']);
light = parseInt(args['light']); params.light = parseInt(args['light']);
signs = parseInt(args['signs'] ?? '1'); params.signs = parseInt(args['signs'] ?? '1');
if (isNaN(zoom)) if (isNaN(params.zoom))
zoom = 0; params.zoom = 0;
if (isNaN(x)) if (isNaN(params.x))
x = spawn.x; params.x = spawn.x;
if (isNaN(z)) if (isNaN(params.z))
z = spawn.z; params.z = spawn.z;
}; };
updateParams(); updateParams();
const map = L.map('map', { const map = L.map('map', {
center: [-z, x], center: [-params.z, params.x],
zoom: zoom, zoom: params.zoom,
minZoom: -(mipmaps.length-1), minZoom: -(mipmaps.length-1),
maxZoom: 5, maxZoom: 5,
crs: L.CRS.Simple, crs: L.CRS.Simple,
@ -364,9 +363,9 @@ window.createMap = function () {
mapLayer.addTo(map); mapLayer.addTo(map);
if (light) if (params.light)
map.addLayer(lightLayer); map.addLayer(lightLayer);
if (signs) if (params.signs)
map.addLayer(signLayer); map.addLayer(signLayer);
const overlayMaps = { const overlayMaps = {
@ -384,10 +383,10 @@ window.createMap = function () {
}); });
const makeHash = function () { const makeHash = function () {
let ret = '#x='+x+'&z='+z; let ret = '#x='+params.x+'&z='+params.z;
if (zoom != 0) if (params.zoom != 0)
ret += '&zoom='+zoom; ret += '&zoom='+params.zoom;
if (map.hasLayer(lightLayer)) if (map.hasLayer(lightLayer))
ret += '&light=1'; ret += '&light=1';
@ -407,10 +406,11 @@ window.createMap = function () {
return; return;
} }
zoom = map.getZoom(); const center = map.getCenter();
center = map.getCenter();
x = Math.round(center.lng); params.zoom = map.getZoom();
z = Math.round(-center.lat); params.x = Math.round(center.lng);
params.z = Math.round(-center.lat);
updateHash(); updateHash();
} }
@ -428,13 +428,13 @@ window.createMap = function () {
updateParams(); updateParams();
map.setView([-z, x], zoom); map.setView([-params.z, params.x], params.zoom);
if (light) if (params.light)
map.addLayer(lightLayer); map.addLayer(lightLayer);
else else
map.removeLayer(lightLayer); map.removeLayer(lightLayer);
if (signs) if (params.signs)
map.addLayer(signLayer); map.addLayer(signLayer);
else else
map.removeLayer(signLayer); map.removeLayer(signLayer);