115 lines
3.8 KiB
Lua
115 lines
3.8 KiB
Lua
---@meta engine
|
|
---
|
|
--- LSP type stubs for the Zig engine API.
|
|
--- This file is NEVER executed — it only exists so lua-language-server
|
|
--- can provide autocomplete, type checking, and inline docs.
|
|
---
|
|
--- Usage in your scripts:
|
|
--- ---@param self RectNode (or NodeBase for base nodes)
|
|
|
|
-- ─── Color type ──────────────────────────────────────────────────────────────
|
|
|
|
---@class Color
|
|
---@field r number Red 0-255
|
|
---@field g number Green 0-255
|
|
---@field b number Blue 0-255
|
|
---@field a number Alpha 0-255
|
|
|
|
-- ─── Node self types ─────────────────────────────────────────────────────────
|
|
|
|
---@class NodeBase
|
|
---@field x number World X position (read/write)
|
|
---@field y number World Y position (read/write)
|
|
|
|
--- Extends NodeBase with rectangle geometry.
|
|
--- The engine draws the rect each frame; modify fields to change it.
|
|
---@class RectNode : NodeBase
|
|
---@field width number Rectangle width
|
|
---@field height number Rectangle height
|
|
---@field color Color Fill color (r/g/b/a subtable)
|
|
|
|
-- ─── Drawing ─────────────────────────────────────────────────────────────────
|
|
|
|
---@param x number
|
|
---@param y number
|
|
---@param w number
|
|
---@param h number
|
|
---@param r number Red 0-255
|
|
---@param g number Green 0-255
|
|
---@param b number Blue 0-255
|
|
---@param a? number Alpha 0-255 (default 255)
|
|
function draw_rect(x, y, w, h, r, g, b, a) end
|
|
|
|
---@param x number
|
|
---@param y number
|
|
---@param radius number
|
|
---@param r number
|
|
---@param g number
|
|
---@param b number
|
|
---@param a? number
|
|
function draw_circle(x, y, radius, r, g, b, a) end
|
|
|
|
---@param text string
|
|
---@param x number
|
|
---@param y number
|
|
---@param size number Font size in pixels
|
|
---@param r number
|
|
---@param g number
|
|
---@param b number
|
|
---@param a? number
|
|
function draw_text(text, x, y, size, r, g, b, a) end
|
|
|
|
---@param x1 number
|
|
---@param y1 number
|
|
---@param x2 number
|
|
---@param y2 number
|
|
---@param r number
|
|
---@param g number
|
|
---@param b number
|
|
---@param a? number
|
|
function draw_line(x1, y1, x2, y2, r, g, b, a) end
|
|
|
|
-- ─── Input ───────────────────────────────────────────────────────────────────
|
|
|
|
--- Returns true while key is held.
|
|
---@param key integer Use Key.X constants
|
|
---@return boolean
|
|
function key_down(key) end
|
|
|
|
--- Returns true only on the first frame the key is pressed.
|
|
---@param key integer
|
|
---@return boolean
|
|
function key_pressed(key) end
|
|
|
|
--- Returns true while mouse button is held. 0=left 1=right 2=middle
|
|
---@param button integer
|
|
---@return boolean
|
|
function mouse_down(button) end
|
|
|
|
---@return number
|
|
function mouse_x() end
|
|
|
|
---@return number
|
|
function mouse_y() end
|
|
|
|
-- ─── Key constants ───────────────────────────────────────────────────────────
|
|
|
|
---@class KeyTable
|
|
---@field LEFT integer
|
|
---@field RIGHT integer
|
|
---@field UP integer
|
|
---@field DOWN integer
|
|
---@field SPACE integer
|
|
---@field W integer
|
|
---@field A integer
|
|
---@field S integer
|
|
---@field D integer
|
|
|
|
---@type KeyTable
|
|
Key = {}
|
|
|
|
-- ─── Utility ─────────────────────────────────────────────────────────────────
|
|
|
|
---@param message string
|
|
function log(message) end
|