Skip to content

feat(skins): detectar el modelo de la skin al subirla - #53

Merged
staFF6773 merged 2 commits into
CubicLauncherDevs:developfrom
MopicMP:feat/detectar-modelo-skin
Oct 21, 2026
Merged

staFF6773 merged 2 commits into
CubicLauncherDevs:developfrom
MopicMP:feat/detectar-modelo-skin

Conversation

@MopicMP

@MopicMP MopicMP commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

Descripcion

Al subir una skin, el launcher ahora detecta si es clásica (Steve, brazos de 4 px) o delgada (Alex, brazos de 3 px) mirando la propia imagen. Hasta ahora se guardaba con el modelo que estaba seleccionado, que es el de la skin anterior, y una skin delgada guardada como clásica queda con franjas negras en los brazos (ver capturas). Lo hablamos en #52.

  • src/lib/utils/skinModel.ts: detectSkinModel revisa las zonas que el modelo delgado nunca usa: dos columnas en la cara de atrás de cada brazo y dos en la parte de abajo de la mano. Si el brazo está dibujado y esas zonas están vacías, es delgada; ante la duda, clásica. Funciona con skins HD, y las de 64×32 siempre son clásicas.
  • SkinCapeManager.svelte: al subir una skin (con el botón o arrastrando) se aplica el modelo detectado y aparece una nota bajo los botones. Los botones Clásico y Delgado funcionan igual que antes, y la nota desaparece al elegir a mano. Cambiar el modelo de la skin actual sin subir otra no cambia.
  • Clave nueva userMenu.skinCape.modelDetected en es-ES y en-US.
  • Tests en tests/frontend/ui/skinModel.test.mjs.

Sin dependencias nuevas y sin cambios en Rust.

Tipo de cambio

  • Bug fix (type:bug)
  • Nueva funcionalidad (type:feature)
  • Mejora (type:enhancement)
  • Refactor (type:refactor)
  • Documentacion (type:docs)
  • Tests (type:test)
  • Rendimiento (type:perf)
  • Mantenimiento / CI / deps (type:chore)
  • Breaking change (type:breaking)

Plataforma

  • Linux (platform:linux)
  • Windows (platform:windows)
  • macOS (platform:macos)

Checklist

  • El codigo compila sin errores (bun run build && cargo build)
  • Los tests pasan (bun run test:all): ver "Informacion adicional"
  • Se agregaron tests si es necesario
  • La documentacion fue actualizada si aplica (no aplica)
  • Se probo manualmente en las plataformas afectadas (Windows)

Screenshots / logs (si aplica)

Antes: la skin delgada guardada como clásica, con franjas negras en los brazos.

Skin delgada con el modelo clásico: franjas negras en los brazos

Con este PR: al subirla se detecta Delgado y aparece la nota.

Skin delgada detectada como Delgado al subirla

Informacion adicional

  • bun run lint y bun run check pasan sin errores, y Prettier está aplicado a los archivos tocados.
  • bun run test:frontend: los 7 tests nuevos pasan. En mi máquina (Windows) falla marketRequest.test.mjs ("native market bridge unregisters abort listeners..."), que también falla sin este cambio.
  • bun run test:rust y cargo clippy no los corrí: el PR no toca Rust.
  • cargo fmt --check marca un espacio al final de la línea 26 de src-tauri/src/commands/themes/install.rs, que no es de este PR.

Al subir una skin, el modelo (clásico o delgado) se toma de la propia
imagen y no del que estaba seleccionado antes. Una skin delgada guardada
como clásica muestra franjas negras en los brazos.

Los botones Clásico y Delgado siguen permitiendo cambiarlo antes de
guardar; una nota bajo los botones avisa que el modelo se detectó.
@staFF6773 staFF6773 added type:bug Bug confirmado type:enhancement Mejora de funcionalidad existente platform:linux Linux platform:windows Windows platform:macos macOS area:ui Frontend Svelte/CSS labels Oct 20, 2026
@staFF6773

Copy link
Copy Markdown
Member

Ahorita mismo lo puedo testear, pero cuando pueda y verifique todo, acepto el PR de forma inmediata.

Comment thread src/lib/utils/skinModel.ts
La detección solo responde con pruebas en la imagen: algo dibujado en las
columnas que solo existen en el modelo clásico, o una cara dibujada que
termina antes de ellas. Si esas caras están vacías (brazo sin dibujar,
transparente o imagen incompleta), devuelve null y se conserva el modelo
elegido, sin mostrar la nota.
@staFF6773

Copy link
Copy Markdown
Member

Listo >3

@staFF6773
staFF6773 merged commit 1a64267 into CubicLauncherDevs:develop Oct 21, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:ui Frontend Svelte/CSS platform:linux Linux platform:macos macOS platform:windows Windows type:bug Bug confirmado type:enhancement Mejora de funcionalidad existente

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants