From e99b4422151b36443604799496c5fa9a5c4a88b5 Mon Sep 17 00:00:00 2001 From: arozx Date: Thu, 23 Jan 2025 20:19:29 +0000 Subject: [PATCH] setup tools for autcomplete with lua vscode extension --- sandbox/.luarc.json | 10 ++++++ sandbox/assets/scripts/engine.lua | 60 +++++++++++++++++++++++++++++++ sandbox/assets/scripts/init.lua | 2 +- 3 files changed, 71 insertions(+), 1 deletion(-) create mode 100644 sandbox/.luarc.json create mode 100644 sandbox/assets/scripts/engine.lua diff --git a/sandbox/.luarc.json b/sandbox/.luarc.json new file mode 100644 index 0000000..0c457fa --- /dev/null +++ b/sandbox/.luarc.json @@ -0,0 +1,10 @@ + +{ + "$schema": "https://raw.githubusercontent.com/sumneko/vscode-lua/master/setting/schema.json", + "Lua.runtime.version": "Lua 5.4", + "Lua.workspace.library": [ + "${workspaceFolder}/sandbox/assets/scripts" + ], + "Lua.diagnostics.globals": ["engine", "KeyCode"], + "Lua.workspace.checkThirdParty": false +} \ No newline at end of file diff --git a/sandbox/assets/scripts/engine.lua b/sandbox/assets/scripts/engine.lua new file mode 100644 index 0000000..d819585 --- /dev/null +++ b/sandbox/assets/scripts/engine.lua @@ -0,0 +1,60 @@ +---@meta + +---@class engine +---@field setTerrainHeight fun(height: number) # Sets the base height for terrain generation +---@field generateTerrain fun(seed: number) # Regenerates terrain with given seed +---@field setClearColor fun(r: number, g: number, b: number, a: number) # Sets the renderer clear color +---@field isKeyPressed fun(keycode: number): boolean # Checks if a key is pressed +---@field getMousePosition fun(): number, number # Gets current mouse position +---@field log fun(message: string) # Logs an info message +---@field error fun(message: string) # Logs an error message +---@field loadScript fun(filepath: string): boolean # Loads and executes a Lua script file +engine = {} + +-- Key code constants +---@class KeyCode +---@field ESCAPE number +---@field SPACE number +---@field W number +---@field A number +---@field S number +---@field D number +KeyCode = {} + +-- Function definitions with documentation +---Sets the terrain base height +---@param height number The height value to set +function engine.setTerrainHeight(height) end + +---Generates new terrain with the given seed +---@param seed number The seed for terrain generation +function engine.generateTerrain(seed) end + +---Sets the renderer clear color +---@param r number Red component (0-1) +---@param g number Green component (0-1) +---@param b number Blue component (0-1) +---@param a number Alpha component (0-1) +function engine.setClearColor(r, g, b, a) end + +---Checks if a key is currently pressed +---@param keycode number The key code to check +---@return boolean +function engine.isKeyPressed(keycode) end + +---Gets the current mouse position +---@return number x, number y +function engine.getMousePosition() end + +---Logs an info message to the console +---@param message string The message to log +function engine.log(message) end + +---Logs an error message to the console +---@param message string The error message to log +function engine.error(message) end + +---Loads and executes a Lua script file +---@param filepath string Path to the script file +---@return boolean success Whether the script was loaded successfully +function engine.loadScript(filepath) end \ No newline at end of file diff --git a/sandbox/assets/scripts/init.lua b/sandbox/assets/scripts/init.lua index e4c5063..79024f2 100644 --- a/sandbox/assets/scripts/init.lua +++ b/sandbox/assets/scripts/init.lua @@ -5,4 +5,4 @@ end -- Set default terrain parameters engine.setTerrainHeight(10.0) -engine.log("Lua environment initialized") \ No newline at end of file +engine.log("Lua environment initialized")