17 Commits

Author SHA1 Message Date
6fe693c2fc Merge pull request 'advanced_mapping' (#1) from advanced_mapping into master
Reviewed-on: #1
2025-12-29 01:12:12 +00:00
c8cc35772f feat: Implement advanced tile mapping system with abstract deck
- Created TileDefinitions.js with centralized tile definitions
- Implemented abstract deck system (8 rooms 4x4, 4 rooms 4x6, 12 corridors, 10 L-shapes, 8 T-junctions)
- Added connection validation (type compatibility, exit direction, walkability alignment)
- Implemented corridor orientation filtering (EW/NS matching)
- Added exhaustive L/T variant selection with random choice
- Updated corridor definitions with EW and NS orientations
- Fixed ASSETS.tiles references throughout main.js
- Known issue: L/T offset alignment needs further debugging
2025-12-29 02:09:34 +01:00
83dc2b0234 Feat: Implement Event System, Exploration Phase, and Collision Detection v0.6-exploration 2025-12-28 22:38:45 +01:00
b6ca14dfa2 Feat: Hybrid Architecture Phase 1
- Implemented Game Server (game-server.js) with Socket.io
- Added JSON Schemas for Campaigns and Missions
- Updated Docker configurations for multi-service setup
- Refactored main.js to allow local network connections
- Removed legacy code (main_old.js)
- Updated dependencies
2025-12-28 20:44:40 +01:00
57f6312a5a Fix: Allow clicking through open doors
- Filter invisible doors from raycast intersection tests
- Open doors no longer block mouse clicks on tiles behind them
- Players can now select and move to tiles visible through open doorways
- Fixes issue where opened doors acted as invisible collision barriers for UI interaction
v0.1-engine
2025-12-28 20:18:17 +01:00
5852a972f4 Fix: Correct door alignment for East and West walls
- Fixed wallOffset calculation for E/W walls
- Both E and W walls need inverted offset due to rotation=π/2
- Local X axis points to -Z for both walls when rotated 90°
- Door gaps and door meshes now perfectly aligned on all walls (N/S/E/W)
- Resolves misalignment issue where E/W doors didn't match their wall gaps
2025-12-28 20:12:32 +01:00
8025d66fc4 Refactor: Unify door positioning logic
- Created getDoorWorldPosition() function that calculates both mesh position and wall offset
- Eliminated duplicate positioning logic between wall gaps and door meshes
- Removed inconsistent sign inversions that caused misalignment
- Both wall gaps and door meshes now use the same coordinate system
- Fixes issue where doors and gaps were positioned differently on S and W walls
2025-12-28 20:02:13 +01:00
ea3813213a Pre-refactor: Door alignment fix - safety checkpoint 2025-12-28 20:00:33 +01:00
0e5b885236 Feat: Interactive doors with physical wall cutouts
- Implemented door selection and interaction model (walk-to + click).
- Added modal for opening doors.
- Refactored wall rendering to create physical holes (CSG-like wall segments).
- Aligned door meshes to perfectly fit wall cutouts.
- Managed door visibility states to prevent Z-fighting on open doors.
2025-12-23 13:50:05 +01:00
3c599093cf Fix: Texture stretching in large rooms
- Used texture cloning for floor tiles to ensure independent repeat settings for each room.
- Calculated texture repetition based on room dimensions relative to the base 4x4 tile size, preventing distortion in non-square rooms.
v0.5
2025-12-23 13:13:37 +01:00
12fb18b1de Fix: Remove camera view corruption
- Removed line in animateMovement that mutated CAMERA_VIEWS static constants.
- This prevents the camera offset from skewing as the player moves away from the origin, ensuring the isometric view angle remains consistent throughout the entire dungeon.
2025-12-23 13:07:32 +01:00
e47b2eeba0 Fix: Deterministic camera transitions
- Refactored setCameraView to use precise lookAt and position calculation instead of accumulating quaternion errors.
- Forces camera UP vector (0,1,0) to prevent roll drift during isometric rotation.
2025-12-23 12:56:09 +01:00
21e85915e9 Feat: Weighted dungeon generation, Minimap, and robust movement logic
- Implemented weighted room generation with size limits.
- Added HUD with Minimap (God Mode view).
- Fixed texture stretching and wall rendering for variable room sizes.
- Implemented 'detectRoomChange' for robust entity room transition.
2025-12-23 12:53:09 +01:00
7cc92da012 Mejoras en vistas isométricas y sistema de opacidad de paredes
- Sistema de opacidad dinámica de paredes según vista actual
- Vistas con transición animada suave (600ms)
- Centrado automático en el jugador al cambiar vista
- Quaternions precalculados para evitar degradación de vistas
- Validación de puertas que apuntan a salas existentes
- Limpieza de puertas inválidas en generador de mazmorras
- Paredes opacas/transparentes según orientación de cámara

Pendiente: Resolver z-fighting de puertas en ciertas vistas
2025-12-21 00:43:36 +01:00
92fdfed49c Fix: Vistas isométricas con quaternions fijos para evitar degradación
- Precálculo de quaternions para cada vista (N, S, E, W)
- Eliminado uso de lookAt() en cambios de vista
- Uso de Vector3 nativos de Three.js
- Sistema completamente determinista sin acumulación de errores
2025-12-21 00:25:30 +01:00
38960df5d9 Generador procedural de mazmorras con fog of war y sistema de vistas isométricas
- Generador procedural que crea hasta 10 salas aleatorias conectadas por puertas
- Sistema de fog of war: solo se muestran salas visitadas
- Puertas automáticas entre salas con detección de transición
- 0-2 esqueletos aleatorios por sala
- Sistema de vistas NSEW con UI de compás
- 4 vistas isométricas fijas (Norte, Sur, Este, Oeste)
- Zoom y paneo habilitados, rotación deshabilitada
- Paredes con opacidad diferenciada (N/W opacas, S/E semi-transparentes)
- Validación de movimiento: solo celdas transitables
- Centrado automático de cámara al mover personaje
2025-12-21 00:19:59 +01:00
8da82f4150 Guardando estado actual 2025-12-20 22:57:59 +01:00