#wip(ecma): Continuación de montaje del mapa.

This commit is contained in:
KyMAN 2024-04-02 19:52:14 +02:00
parent 142b9942f6
commit ac06dfbfca
6 changed files with 113 additions and 33 deletions

View File

@ -59,38 +59,7 @@ Mapeate.Mapas.Selector = function(mapeate, entradas){
if(error) if(error)
return; return;
let clave = elemento.getAttribute("data-i18n"); mapeate.mapas.construir(elemento.getAttribute("data-i18n"));
const mapa_datos = mapeate.mapas.coger(clave);
error = (
clave === undefined ? 1 << 0 :
clave === null ? 1 << 1 :
typeof clave != "string" ? 1 << 2 :
!clave ? 1 << 3 :
!(clave = clave.trim()) ? 1 << 4 :
mapa_datos === undefined ? 1 << 5 :
mapa_datos === null ? 1 << 6 :
0) << 1;
console.log(["B", error]);
if(error)
return;
const mapa = {
nombre : clave,
...mapa_datos,
datos : mapeate.mapas.cache(mapa_datos.url)
};
if(!mapa.datos)
mapeate.leer_archivo(mapa_datos.url, datos => {
mapeate.mapas.cache(mapa_datos.url, datos);
mapa.datos = datos;
console.log(mapa);
});
else
console.log(mapa);
}; };

View File

@ -110,6 +110,60 @@ Mapeate.Mapas = function(mapeate, entradas){
this.cache = (clave, datos) => datos === undefined ? cache[clave] : (cache[clave] = datos); this.cache = (clave, datos) => datos === undefined ? cache[clave] : (cache[clave] = datos);
this.construir = clave => {
error = (
clave === undefined ? 1 << 0 :
clave === null ? 1 << 1 :
typeof clave != "string" ? 1 << 2 :
!clave ? 1 << 3 :
!(clave = clave.trim()) ? 1 << 4 :
mapas[clave] === undefined ? 1 << 5 :
mapas[clave] === null ? 1 << 6 :
0) << 1;
console.log(["B", error]);
if(error)
return;
const mapa = {
nombre : clave,
...mapas[clave],
datos : cache[mapas[clave].url]
};
if(!mapa.datos)
mapeate.leer_archivo(mapas[clave].url, datos => {
cache[mapas[clave].url] = datos;
mapa.datos = datos;
construir(mapa);
});
else
construir(mapa);
};
const construir = datos => {
const juego = mapeate.si_mismo.querySelector(".mapa"),
mapa = juego.querySelector(".mapa"),
svg = mapa.querySelector("svg"),
claves = ["left", "top", "width", "height"];
juego.innerHTML = (`
<div class="` + datos.nombre + `">` + datos.datos + `</div>
`);
mapeate.porcentuar(
svg.offsetWidth, svg.offsetHeight, mapa.offsetWidth, mapa.offsetHeight
).forEach((valor, i) => svg.style[claves[i]] = valor + "px");
mapeate.si_mismo.querySelector(".menu-mapas").setAttribute("data-visible", false);
mapeate.si_mismo.querySelector(".juego").setAttribute("data-visible", true);
};
constructor(); constructor();
}; };

View File

@ -683,6 +683,47 @@ Mapeate = function(entradas){
this.establecer_si_mismo = elemento => (!si_mismo.constructor || si_mismo.constructor.name == "HTMLDocument") && (si_mismo = self.si_mismo = elemento); this.establecer_si_mismo = elemento => (!si_mismo.constructor || si_mismo.constructor.name == "HTMLDocument") && (si_mismo = self.si_mismo = elemento);
this.porcentuar = (elemento, cubrir) => {
const ancho = elemento.offsetWidth,
alto = elemento.offsetHeight,
padre = {
ancho : elemento.parentNode.offsetWidth,
alto : elemento.parentNode.offsetHeight
},
padre_ratio = padre.alto / padre.ancho,
ratio = alto / ancho,
claves = ["top", "left", "width", "height"],
valores = [0, 0, padre.ancho, padre.alto];
if(
(cubrir && padre_ratio > ratio) ||
(!cubrir && padre_ratio < ratio)
){
valores[0] = ratio * padre.ancho / 2
}
valores.forEach((valor, i) => elemento.style[claves[i]] = valor + "px");
};
this.procentuar = (x1, y1, x2, y2, cubrir) => {
const r1 = x1 / y1,
r2 = x2 / y2;
if((cubrir && r1 > r2) || (!cubrir && r1 < r2)){
const x = x1 * y2 / y1;
return [(x2 - x) / 2, 0, x, y2];
};
const y = y1 * x2 / x1;
return [0, (y2 - y) / 2, x2, y];
};
constructor(); constructor();
}; };

View File

@ -245,4 +245,14 @@
} }
} }
.juego{
&,.mapa,.mapa>div{
position : absolute;
top : 0em;
left : 0em;
width : 100%;
height : 100%;
}
}
} }

View File

@ -205,5 +205,11 @@
.mapeate .licencias img { .mapeate .licencias img {
width: auto; width: auto;
height: 1em; } height: 1em; }
.mapeate .juego, .mapeate .juego .mapa, .mapeate .juego .mapa > div {
position: absolute;
top: 0em;
left: 0em;
width: 100%;
height: 100%; }
/*# sourceMappingURL=Mapeate.css.map */ /*# sourceMappingURL=Mapeate.css.map */

View File

@ -1,6 +1,6 @@
{ {
"version": 3, "version": 3,
"mappings": "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", "mappings": "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",
"sources": ["Mapeate.base.scss","Mapeate.configuracion.scss"], "sources": ["Mapeate.base.scss","Mapeate.configuracion.scss"],
"names": [], "names": [],
"file": "Mapeate.css" "file": "Mapeate.css"