/** * Copyright (c) 2026 Dominic Masters * * This software is released under the MIT License. * https://opensource.org/licenses/MIT */ #pragma once #include "script/scriptcontext.h" /** * Register camera functions to the given script context. * * @param context The script context to register camera functions to. */ void moduleCamera(scriptcontext_t *context); /** * Script binding for creating a new camera. * * @param L The Lua state. * @return Number of return values on the Lua stack. */ int moduleCameraCreate(lua_State *L); /** * Script binding for pushing the camera matrix onto the matrix stack. * * @param L The Lua state. * @return Number of return values on the Lua stack. */ int moduleCameraPushMatrix(lua_State *L); /** * Script binding for popping the camera matrix from the matrix stack. * * @param L The Lua state. * @return Number of return values on the Lua stack. */ int moduleCameraPopMatrix(lua_State *L); /** * Getter for camera structure fields. * * @param l The Lua state. */ int moduleCameraIndex(lua_State *l); /** * Setter for camera structure fields. * * @param l The Lua state. */ int moduleCameraNewIndex(lua_State *l);