mirror of
https://github.com/Dadido3/noita-mapcap.git
synced 2024-11-18 17:17:31 +00:00
Add camera functions to Noita API wrapper
This commit is contained in:
parent
bc504e7399
commit
a30c3b0cbe
@ -47,7 +47,7 @@ end
|
|||||||
---@param val string
|
---@param val string
|
||||||
---@return string
|
---@return string
|
||||||
function lib.MarshalString(val)
|
function lib.MarshalString(val)
|
||||||
return string.format("%q", escapeString(val)) -- TODO: Escape strings correctly.
|
return string.format("%q", escapeString(val))
|
||||||
end
|
end
|
||||||
|
|
||||||
---MarshalNumber returns the JSON representation of a number value.
|
---MarshalNumber returns the JSON representation of a number value.
|
||||||
|
@ -9,6 +9,9 @@
|
|||||||
-- State: Working but incomplete. If something is missing, add it by hand!
|
-- State: Working but incomplete. If something is missing, add it by hand!
|
||||||
-- It would be optimal to generate this API wrapper automatically...
|
-- It would be optimal to generate this API wrapper automatically...
|
||||||
|
|
||||||
|
---@type Vec2
|
||||||
|
local Vec2 = dofile_once("mods/noita-mapcap/files/libraries/vec2.lua")
|
||||||
|
|
||||||
---@type JSONLib
|
---@type JSONLib
|
||||||
local json = dofile_once("mods/noita-mapcap/files/libraries/json.lua")
|
local json = dofile_once("mods/noita-mapcap/files/libraries/json.lua")
|
||||||
|
|
||||||
@ -46,6 +49,8 @@ function ComponentAPI.WrapID(id)
|
|||||||
return setmetatable({ ID = id }, NoitaComponent)
|
return setmetatable({ ID = id }, NoitaComponent)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local CameraAPI = {}
|
||||||
|
|
||||||
-------------------------
|
-------------------------
|
||||||
-- JSON Implementation --
|
-- JSON Implementation --
|
||||||
-------------------------
|
-------------------------
|
||||||
@ -552,6 +557,7 @@ function NoitaComponent:ObjectGetMembers(objectName)
|
|||||||
return ComponentObjectGetMembers(self.ID, objectName)
|
return ComponentObjectGetMembers(self.ID, objectName)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
---
|
||||||
---@return string string
|
---@return string string
|
||||||
function NoitaComponent:GetTypeName()
|
function NoitaComponent:GetTypeName()
|
||||||
return ComponentGetTypeName(self.ID)
|
return ComponentGetTypeName(self.ID)
|
||||||
@ -559,6 +565,45 @@ end
|
|||||||
|
|
||||||
-- TODO: Add missing Noita API methods and functions.
|
-- TODO: Add missing Noita API methods and functions.
|
||||||
|
|
||||||
|
---
|
||||||
|
---@param strength number
|
||||||
|
---@param position Vec2|nil -- Defaults to camera position if not set.
|
||||||
|
function CameraAPI.Screenshake(strength, position)
|
||||||
|
if position == nil then
|
||||||
|
return GameScreenshake(strength)
|
||||||
|
end
|
||||||
|
return GameScreenshake(strength, position.x, position.y)
|
||||||
|
end
|
||||||
|
|
||||||
|
-- TODO: Add missing Noita API methods and functions.
|
||||||
|
|
||||||
|
---Returns the center position of the viewport in world/virtual coordinates.
|
||||||
|
---@return Vec2
|
||||||
|
function CameraAPI.Pos()
|
||||||
|
return Vec2(GameGetCameraPos())
|
||||||
|
end
|
||||||
|
|
||||||
|
---Sets the center position of the viewport in world/virtual coordinates.
|
||||||
|
---@param position Vec2
|
||||||
|
function CameraAPI.SetPos(position)
|
||||||
|
return GameSetCameraPos(position.x, position.y)
|
||||||
|
end
|
||||||
|
|
||||||
|
---
|
||||||
|
---@param isFree boolean
|
||||||
|
function CameraAPI.SetCameraFree(isFree)
|
||||||
|
return GameSetCameraFree(isFree)
|
||||||
|
end
|
||||||
|
|
||||||
|
---Returns the camera boundaries rectangle in world/virtual coordinates.
|
||||||
|
---This may not be 100% pixel perfect with regards to what you see on the screen.
|
||||||
|
---@return Vec2 topLeft
|
||||||
|
---@return Vec2 bottomRight
|
||||||
|
function CameraAPI.Bounds()
|
||||||
|
local x, y, w, h = GameGetCameraBounds()
|
||||||
|
return Vec2(x, y), Vec2(x + w, y + h)
|
||||||
|
end
|
||||||
|
|
||||||
--------------------
|
--------------------
|
||||||
-- Noita API root --
|
-- Noita API root --
|
||||||
--------------------
|
--------------------
|
||||||
@ -567,6 +612,7 @@ end
|
|||||||
local api = {
|
local api = {
|
||||||
Component = ComponentAPI,
|
Component = ComponentAPI,
|
||||||
Entity = EntityAPI,
|
Entity = EntityAPI,
|
||||||
|
Camera = CameraAPI,
|
||||||
MetaTables = {
|
MetaTables = {
|
||||||
Component = NoitaComponent,
|
Component = NoitaComponent,
|
||||||
Entity = NoitaEntity,
|
Entity = NoitaEntity,
|
||||||
|
Loading…
Reference in New Issue
Block a user