2026-03-20 08:11:31 +00:00
# Changelog
All notable changes to this project will be documented here.
Format follows [Keep a Changelog ](https://keepachangelog.com/en/1.0.0/ ).
---
## [Unreleased]
2026-03-21 12:12:07 +00:00
### Added
- **F3 Debug View**: toggleable overlay showing FPS, tile type and contents under the cursor, Nisse count by AI state, active jobs by type, and pathfinding visualization (cyan lines in world space)
2026-03-20 12:19:57 +00:00
### Fixed
2026-03-20 18:54:58 +00:00
- Nisse now clear the FOREST/ROCK tile after harvesting, opening paths to deeper resources
2026-03-20 17:07:34 +00:00
- Nisse no longer get stuck idle after depositing items at the stockpile
- Working Nisse now reset to idle on game load (like walking ones), preventing stale AI state
- Stale jobs with empty carry are now cleared after work completes, avoiding a false "haul to stockpile" loop
2026-03-20 12:19:57 +00:00
- UI elements (stockpile panel, controls hint) now reposition correctly after window resize
- Centered overlay panels (build menu, villager panel) close on resize so they reopen at the correct position
- Mouse world coordinates now use `ptr.worldX` /`ptr.worldY` in BuildingSystem and FarmingSystem, fixing misalignment after resize or zoom
2026-03-20 17:07:34 +00:00
### Changed
- Villagers are now called **Nisse** throughout the UI (panel, controls hint, stockpile display, context menu, spawn message)
2026-03-20 08:11:31 +00:00
### Added
2026-03-21 12:01:38 +00:00
- Scroll wheel zooms toward the mouse cursor position (zoom-to-mouse), correctly accounting for Phaser's center-based zoom model
2026-03-20 19:19:53 +00:00
- Middle mouse button held: pan the camera by dragging
2026-03-21 12:01:38 +00:00
- Test environment at `/test.html` with `ZoomTestScene` (Phaser default) and `ZoomMouseScene` (zoom-to-mouse) for camera behaviour analysis; file-logging via Vite middleware to `game-test.log`
### Fixed
- `getCenterWorld()` in `CameraSystem` returned wrong world coordinates at zoom ≠ 1; corrected from `scrollX + width/(2·zoom)` to `scrollX + width/2`
2026-03-20 17:07:34 +00:00
- Right-click context menu: suppresses browser default, shows Build and Nisse actions in the game world
2026-03-20 08:11:31 +00:00
- Initial project setup: Phaser 3 + TypeScript + Vite
- Core scenes: `BootScene` , `GameScene` , `UIScene`
- Systems: `BuildingSystem` , `CameraSystem` , `FarmingSystem` , `PlayerSystem` ,
`ResourceSystem` , `VillagerSystem` , `WorldSystem`
- Utilities: simplex-noise wrapper, pathfinding
- `StateManager` for central game state
- `NetworkAdapter` for multiplayer/sync layer
---