From 3d250845361a5e2ce58f600ad52a11cd8084e5cc Mon Sep 17 00:00:00 2001 From: David Vogel Date: Sat, 23 Jul 2022 01:13:51 +0200 Subject: [PATCH] Add debug functions to Noita API wrapper --- files/libraries/noita-api/debug.lua | 78 +++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 files/libraries/noita-api/debug.lua diff --git a/files/libraries/noita-api/debug.lua b/files/libraries/noita-api/debug.lua new file mode 100644 index 0000000..c2e12ae --- /dev/null +++ b/files/libraries/noita-api/debug.lua @@ -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