Skip to content

Offline: add Blockbench mod workshop alpha#85

Draft
andresaavelasquez-ctrl wants to merge 1 commit into
AgenteMaxo:mainfrom
andresaavelasquez-ctrl:feature/offline-mod-workshop-blockbench
Draft

Offline: add Blockbench mod workshop alpha#85
andresaavelasquez-ctrl wants to merge 1 commit into
AgenteMaxo:mainfrom
andresaavelasquez-ctrl:feature/offline-mod-workshop-blockbench

Conversation

@andresaavelasquez-ctrl

Copy link
Copy Markdown
Contributor

Resumen

Añade un Taller de Mods local y experimental para el botón UN JUGADOR, junto con un exportador de Blockbench. El modo multijugador sigue siendo el modo principal y no carga, transmite ni aplica mods.

Aislamiento del multijugador

  • El runtime comprueba window.MODO_LOCAL === true antes de montar cualquier objeto.
  • Pulsar MULTIJUGADOR desactiva y limpia el runtime local antes de iniciar la conexión.
  • No hay cambios en server/, WebSocket, protocolo, autoridad ni persistencia del MMO.
  • Los mods se guardan únicamente en IndexedDB del navegador.

Funciones del Alpha

  • Botón MODS · TALLER ALPHA junto al acceso de un jugador.
  • Importación de .brmod, .bbmodel, .glb y .gltf con recursos embebidos.
  • Biblioteca local: activar, desactivar, eliminar y probar en la siguiente partida.
  • Previsualizador Three.js con giro y zoom.
  • Props, decoraciones y luminarias como instancias visuales en el servidor local de la pestaña.
  • Plugin de Blockbench incluido en tools/blockbench/ y descargable desde el Taller.
  • Esquema de manifiesto y documentación del formato.

Seguridad y límites

  • .brmod es JSON declarativo; no admite ni ejecuta JavaScript de terceros.
  • Rechaza rutas ascendentes y recursos GLTF externos.
  • 12 MiB por archivo, 24 MiB por paquete, 64 mods, 16 instancias por mapa.
  • En esta fase no se activan colisiones, IA, scripts, reemplazo del jugador ni comportamiento de ítems/entidades.

Pruebas

node --check game/js/mods/mod-system.js
node --check game/js/mods/mod-runtime.js
node --check game/js/mods/mod-workshop.js
node --check tools/blockbench/backrooms_no_clip_exporter.js
node --test game/js/mods/mod-system.test.js game/js/mods/mod-runtime.test.js
./validate_offline_mods.sh

La batería incluida cubre validación de paquetes, rutas peligrosas, separación de tipos ejecutables, cabecera GLB 2.0 y determinismo del posicionamiento.

Prueba manual sugerida

  1. Abrir la portada y entrar a MODS · TALLER ALPHA.
  2. Instalar el ejemplo integrado.
  3. Pulsar PROBAR EN PRÓXIMA PARTIDA.
  4. Iniciar UN JUGADOR y verificar la caja cerca del inicio.
  5. Volver al título, entrar a MULTIJUGADOR y confirmar que no aparece ningún objeto local.

Limitaciones conocidas

  • El soporte de Blockbench está centrado en modelos estáticos de cubos.
  • GLB/GLTF soporta geometría estática y materiales PBR básicos; las animaciones solo quedan declaradas.
  • structure, character, entity e item se importan, pero todavía no alteran la simulación.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant