This commit adds the full Lua scripting API and integrates the Script Manager into the application.
It builds on top of the scripting engine introduced in #158, exposing all the API modules that Lua scripts can use and making everything accessible from the UI.
Changes:
- Added all Lua API modules: map, tile, item, brush, image, position, selection, creature, color, app, dialog, noise, algo, geo, json, http.
- Added map overlay system for scripts to draw on the map view.
- Added event system, context menu registration, persistent storage, and transaction support with undo/redo.
- Added support for package scripts (directory with manifest.lua) and script metadata tags.
- Added Scripts menu to the menubar with per-script execution and reload.
- Connected the Script Manager window to the UI.
- Added missing build dependencies and fixed MSVC compilation errors.
Notes:
- Build dependencies were added for HTTP and noise generation support.
- Some code was adjusted to compile correctly on MSVC.
New Features:
• Lua scripting support: embed and run user scripts.
• Automatic discovery and execution of scripts from a designated scripts directory.
• Included a sample "Hello World" script.
Improvements:
• Sandboxed execution and safety restrictions for scripts.
• Graceful initialization with error logging if scripting fails, and clean shutdown on exit.
• Build/system integration updated to ensure Lua and Sol2 are available.