---@meta _ --!nolint FunctionUnused --- --- Example: --- ```lua --- local r = GetFloat("radius", 5.2) --- ``` ---@param name string Parameter name ---@param defaultValue number Default value ---@param defaultValue1? number Default value ---@param defaultValue2? number Default value ---@param defaultValue3? number Default value ---@return number value Parameter value ---@return number value1 Parameter value ---@return number value2 Parameter value ---@return number value3 Parameter value function GetFloat(name: string, defaultValue: number, defaultValue1: number?, defaultValue2: number?, defaultValue3: number?): (number, number, number, number) return 0, 0, 0, 0 end --- --- Example: --- ```lua --- --Retrieve playsound parameter, or false if omitted --- local parameterPlaySound = GetBoolParam("playsound", false) --- ``` ---@param name string Parameter name ---@param defaultValue boolean Default value ---@return boolean value Parameter value function GetBool(name: string, defaultValue: boolean): boolean return false end --- --- Example: --- ```lua --- local steps = GetInt("steps", 5) --- ``` ---@param name string Parameter name ---@param defaultValue number Default value ---@param defaultValue1? number Default value ---@param defaultValue2? number Default value ---@param defaultValue3? number Default value ---@param defaultValue4? number Default value ---@param defaultValue5? number Default value ---@param defaultValue6? number Default value ---@param defaultValue7? number Default value ---@return number value Parameter value ---@return number value1 Parameter value ---@return number value2 Parameter value ---@return number value3 Parameter value ---@return number value4 Parameter value ---@return number value5 Parameter value ---@return number value6 Parameter value ---@return number value7 Parameter value function GetInt(name: string, defaultValue: number, defaultValue1: number?, defaultValue2: number?, defaultValue3: number?, defaultValue4: number?, defaultValue5: number?, defaultValue6: number?, defaultValue7: number?): (number, number, number, number, number, number, number, number) return 0, 0, 0, 0, 0, 0, 0, 0 end --- --- Example: --- ```lua --- local file = GetString("file", "MOD/test.vox") --- ``` ---@param name string Parameter name ---@param defaultValue? string Default value ---@param hint? string hint ---@return string value Parameter value function GetString(name: string, defaultValue: string?, hint: string?): string return "" end --- --- Example: --- ```lua --- color_r, color_g, color_b = GetColor("color", 0.39, 0.39, 0.39) --- ``` ---@param name string Parameter name ---@param defaultValue number Default value ---@param defaultValue1? number Default value ---@param defaultValue2? number Default value ---@param defaultValue3? number Default value ---@return number r Parameter value ---@return number g Parameter value ---@return number b Parameter value ---@return number a Parameter value function GetColor(name: string, defaultValue: number, defaultValue1: number?, defaultValue2: number?, defaultValue3: number?): (number, number, number, number) return 0, 0, 0, 0 end --- --- Example: --- ```lua --- function init() --- local r = Randomize(5) --- end --- ``` ---@param seed number Random seed. If omitted, will use the current time to determine one. function Randomize(seed: number) end --- --- Example: --- ```lua --- function init() --- local r = RandomFloat(-1.0, 1.0) --- end --- ``` ---@param lower number Lower bound ---@param upper number Upper bound ---@return number value Returns random floating point number between lower and upper bound function RandomFloat(lower: number, upper: number): number return 0 end --- --- Example: --- ```lua --- function init() --- local r = RandomInt(1, 3) --Returns 1, 2, or 3 --- end --- ``` ---@param lower number Lower bound ---@param upper number Upper bound ---@return number value Returns random integer from lower to (and including) upper bound. function RandomInt(lower: number, upper: number): number return 0 end --- --- Example: --- ```lua --- function init() --- local brick = CreateMaterial("masonry", 0.6, 0.5, 0.3, 0, 0.1, 0, 0) --- end --- ``` ---@param type string Material type ---@param r number Red color ---@param g number Green color ---@param b number Blue color ---@param a? number Alpha ---@param reflect? number reflectivity ---@param shiny? number Shininess ---@param metal? number Metallic ---@param emissive? number Emissive ---@return number material Material handle function CreateMaterial(type: string, r: number, g: number, b: number, a: number?, reflect: number?, shiny: number?, metal: number?, emissive: number?): number return 0 end --- Create a brush that can be used as material. An objec tin the vox file --- can be specified using colon (:) delimiter. --- If a brush uses local coordinates, the brush offset will be relative the --- current drawn Box or Sphere. Global coordinates will be relative the current --- Vox origo. --- --- --- Example: --- ```lua --- function init() --- Vox(0,0,0) --- --- brickWall = CreateBrush("MOD/brickwall.vox") --- Material(brickWall) --- Box(0, 0, 0, 10, 10, 10) --- --- swedishFlag = CreateBrush("MOD/flags.vox:sweden") --- Material(swedishFlag) --- Box(0, 0, 0, 20, 15, 1) --- end --- ``` ---@param path string Vox file path and optional object ---@param _local? boolean Use local coordinates for all operations. Default false. function CreateBrush(path: string, _local: boolean?) end --- Apply a flip transformation on the brush --- --- Example: --- ```lua --- function init() --- local brush = CreateBrush("brush/white.vox") --- FlipBrush(brush, "x") --- Material(brush) --- Box(0, 0, 0, 20, 15, 5) --- end --- ``` ---@param brush number Brush handle ---@param axes string Any combination of x, y and z function FlipBrush(brush: number, axes: string) end --- Apply a rotation transformation on the brush --- --- Example: --- ```lua --- function init() --- local brush = CreateBrush("brush/white.vox") --- local brick = CreateMaterial("masonry", 0.6, 0.5, 0.3, 0, 0.1, 0, 0) --- --Draw box with brush rotated 90 degrees around y axis --- RotateBrush(brush, "y", 90) --- Material(brick) --- Vox(0,0,0) --- Box(0, 0, 0, 10, 10, 10) --- end --- ``` ---@param brush number Brush handle ---@param axis string "x", "y" or "z" ---@param angle number Rotation angle in degrees function RotateBrush(brush: number, axis: string, angle: number) end --- Apply a translation on the brush --- --- Example: --- ```lua --- function init() --- local brush = CreateBrush("brush/white.vox") --- local brick = CreateMaterial("masonry", 0.6, 0.5, 0.3, 0, 0.1, 0, 0) --- Material(brick) --- Vox(0,0,0) --- Box(0, 0, 0, 10, 10, 10) --- TranslateBrush(brush, 5, 0, 0) --- Box(0, 0, 0, 10, 10, 10) --- end --- ``` ---@param brush number Brush handle ---@param x number Offset along x axis ---@param y number Offset along y axis ---@param z number Offset along z axis function TranslateBrush(brush: number, x: number, y: number, z: number) end --- Return brush size in voxels --- --- Example: --- ```lua --- function init() --- local brush = CreateBrush("brush/white.vox") --- local brick = CreateMaterial("masonry", 0.6, 0.5, 0.3, 0, 0.1, 0, 0) --- Material(brick) --- Vox(0,0,0) --- Box(0, 0, 0, 10, 10, 10) --- --- local xs, ys, zs = GetBrushSize(brush) --- end --- --- ``` ---@param brush number Brush handle ---@return number x Size along x axis ---@return number y Size along y axis ---@return number z Size along z axis function GetBrushSize(brush: number): (number, number, number) return 0, 0, 0 end --- Set current material or brush. Pass in zero to remove content. --- --- Example: --- ```lua --- function init() --- local brush = CreateBrush("brush/white.vox") --- local brick = CreateMaterial("masonry", 0.6, 0.5, 0.3, 0, 0.1, 0, 0) --- Material(brick) --- Vox(0,0,0) --- Box(0, 0, 0, 10, 10, 10) --- --- --Make box hollow --- Material(0) --- Box(2, 2, 2, 8, 8, 8) --- end --- ``` ---@param material number Material or brush handle function Material(material: number) end --- Load PNG image from file --- --- Example: --- ```lua --- function init() --- LoadImage("MOD/image.png") --- end --- ``` ---@param path string Path to PNG image ---@param grassMapPath? string Path to PNG image function LoadImage(path: string, grassMapPath: string?) end --- Return image size --- --- Example: --- ```lua --- function init() --- LoadImage("MOD/image.png") --- local w, h = GetImageSize() --- end --- ``` ---@return number width Image width ---@return number height Image height function GetImageSize(): (number, number) return 0, 0 end --- Return color value for image pixel --- --- Example: --- ```lua --- function init() --- LoadImage("MOD/image.png") --- local r,g,b,a = GetImagePixel(50, 50) --- end --- ``` ---@param x number X coordinate ---@param y number Y coordinate ---@return number r Red ---@return number g Greeen ---@return number b Blue ---@return number a Alpha function GetImagePixel(x: number, y: number): (number, number, number, number) return 0, 0, 0, 0 end --- Create new shape --- --- Example: --- ```lua --- function init() --- --Create vox shape --- Vox(0,0,0) --- --- --We can now fill it with content --- local brush = CreateBrush("brush/white.vox") --- local brick = CreateMaterial("masonry", 0.6, 0.5, 0.3, 0, 0.1, 0, 0) --- Material(brick) --- Box(0, 0, 0, 10, 10, 10) --- end --- ``` ---@param x? number X position ---@param y? number Y position ---@param z? number Z position ---@param rx? number Rotation around X in degrees ---@param ry? number Rotation around Y in degrees ---@param rz? number Rotation around Z in degrees function Vox(x: number?, y: number?, z: number?, rx: number?, ry: number?, rz: number?) end --- Draw solid box into the current vox shape using the current material --- --- Example: --- ```lua --- function init() --- Vox(0,0,0) --- local brush = CreateBrush("brush/white.vox") --- local brick = CreateMaterial("masonry", 0.6, 0.5, 0.3, 0, 0.1, 0, 0) --- Material(brick) --- Box(0, 0, 0, 10, 10, 10) --- end --- --- ``` ---@param x0 number X start ---@param y0 number Y start ---@param z0 number Z start ---@param x1 number X end ---@param y1 number Y end ---@param z1 number Z end function Box(x0: number, y0: number, z0: number, x1: number, y1: number, z1: number) end --- Draw solid sphere into current vox shape using the current material --- --- Example: --- ```lua --- function init() --- Vox(0,0,0) --- local brush = CreateBrush("brush/white.vox") --- local brick = CreateMaterial("masonry", 0.6, 0.5, 0.3, 0, 0.1, 0, 0) --- Material(brick) --- Sphere(0, 0, 0, 15) --- end --- ``` ---@param x number X center ---@param y number Y center ---@param z number Z center ---@param r number Radius function Sphere(x: number, y: number, z: number, r: number) end --- Draw a line from start point to end point --- --- Example: --- ```lua --- function init() --- Vox(0,0,0) --- local brush = CreateBrush("brush/white.vox") --- local brick = CreateMaterial("masonry", 0.6, 0.5, 0.3, 0, 0.1, 0, 0) --- Material(brick) --- Line(0, 0, 0, 15) --- end --- ``` ---@param xStart number X start ---@param yStart number Y start ---@param zStart number Z start ---@param xEnd number X end ---@param yEnd number Y end ---@param zEnd number Z end ---@param thicknessStart number ---@param thicknessEnd number function Line(xStart: number, yStart: number, zStart: number, xEnd: number, yEnd: number, zEnd: number, thicknessStart: number, thicknessEnd: number) end --- Sets the single voxel in the specified posistion --- --- Example: --- ```lua --- function init() --- Vox(0,0,0) --- local brush = CreateBrush("brush/white.vox") --- local brick = CreateMaterial("masonry", 0.6, 0.5, 0.3, 0, 0.1, 0, 0) --- Material(brick) --- Set(0, 0, 0) --- end --- ``` ---@param x number ---@param y number ---@param z number function Set(x: number, y: number, z: number) end --- Returns the voxel's material id at the specified position --- --- Example: --- ```lua --- function init() --- Vox(0,0,0) --- local brush = CreateBrush("brush/white.vox") --- local brick = CreateMaterial("masonry", 0.6, 0.5, 0.3, 0, 0.1, 0, 0) --- Material(brick) --- Set(0, 0, 0) --- Material(Get(0, 0, 0)) --- end --- ``` ---@param x number ---@param y number ---@param z number ---@return number material function Get(x: number, y: number, z: number): number return 0 end --- Special function to create heightmap based on loaded image into current vox shape --- Red channel = height --- Green channel = grass amount --- Blue channel = special --- --- Example: --- ```lua --- function init() --- Vox(0,0,0) --- local brush = CreateBrush("brush/white.vox") --- local brick = CreateMaterial("masonry", 0.6, 0.5, 0.3, 0, 0.1, 0, 0) --- Material(brick) --- LoadImage("MOD/heightmap.png") --- Heightmap(0, 0, 100, 100, 255) --- end --- ``` ---@param x0 number X start ---@param y0 number Y start ---@param x1 number X end ---@param y1 number Y end ---@param height? number Height scale ---@param isNotHollow? boolean Unused parameter, for legacy support ---@param cropBorder? boolean Use special handling of borders in heightmap. Reduces amount of voxels and their size function Heightmap(x0: number, y0: number, x1: number, y1: number, height: number?, isNotHollow: boolean?, cropBorder: boolean?) end --- Display message on screen. The last 20 lines are displayed. --- The function will also recognize tables and convert them to strings automatically. --- --- Example: --- ```lua --- function init() --- DebugPrint("time") --- --- local anyTable = { --- "teardown", --- { --- name = "Alex", --- age = 25, --- child = { name = "Lena" } --- }, --- nil, --- version = "1.6.0", --- true, --- } --- DebugPrint(anyTable) --- end --- ``` ---@param message string Message to display ---@param lineWrapping? boolean True if you need to wrap Table lines. Works only with tables. function DebugPrint(message: string, lineWrapping: boolean?) end