Add debug functions to Noita API wrapper

This commit is contained in:
David Vogel 2022-07-23 01:13:51 +02:00
parent aa99e101b4
commit 3d25084536

View File

@ -0,0 +1,78 @@
-- Copyright (c) 2022 David Vogel
--
-- This software is released under the MIT License.
-- https://opensource.org/licenses/MIT
-- Noita modding API, but a bit more beautiful.
-- Current modding API version: 7
-- State: Working but incomplete. If something is missing, add it by hand!
-- It would be optimal to generate this API wrapper automatically...
---@type Vec2
local Vec2 = dofile_once("mods/noita-mapcap/files/libraries/vec2.lua")
-------------
-- Classes --
-------------
---@class NoitaDebugAPI
local DebugAPI = {}
------------------------
-- Noita API wrappers --
------------------------
---Returns the mouse cursor position in world coordinates.
---@return Vec2
function DebugAPI.GetMouseWorld()
return Vec2(DEBUG_GetMouseWorld())
end
---Draws a mark in the world at the given position.
---@param pos Vec2 -- In world coordinates.
---@param message string|nil -- Defaults to "".
---@param r number|nil -- Color's red amount in the range [0, 1]. Defaults to 1.
---@param g number|nil -- Color's green amount in the range [0, 1]. Defaults to 0.
---@param b number|nil -- Color's blue amount in the range [0, 1]. Defaults to 0.
function DebugAPI.Mark(pos, message, r, g, b)
message, r, g, b = message or "", r or 1, g or 0, b or 0
return DEBUG_MARK(pos.x, pos.y, message, r, g, b)
end
---Returns true if this is a beta version of the game.
---
---Can return nil it seems.
---@return boolean|nil
function DebugAPI.IsBetaBuild()
return GameIsBetaBuild()
end
---Returns true if this is the dev version of the game (`noita_dev.exe`).
---@return boolean
function DebugAPI.IsDevBuild()
return DebugGetIsDevBuild()
end
---Trailer mode disables drawing of most UI elements.
---Similar, if not exactly the same, to F12 in the dev build.
---
---No idea how to disable it, beside pressing F12 in dev build.
function DebugAPI.EnableTrailerMode()
return DebugEnableTrailerMode()
end
---
---@return boolean
function DebugAPI.IsTrailerModeEnabled()
return GameGetIsTrailerModeEnabled()
end
---
---@param pos Vec2 -- In world coordinates.
---@return string
function DebugAPI.BiomeMapGetFilename(pos)
return DebugBiomeMapGetFilename(pos)
end
return DebugAPI