Scarab
A thin, game-agnostic 2D engine host built on the sunlight tile-map engine
Loading...
Searching...
No Matches
Scarab::Engine::Lua Namespace Reference

Classes

class  LuaAppApi
 Application-level Lua primitives - concerns that belong to the running app/game itself, not to any one engine subsystem (camera, sound, sprites, ...). More...
 
class  LuaCameraApi
 Camera/viewport/zoom Lua primitives, thin wrappers over ITileMap. More...
 
class  LuaCollisionApi
 Collision rule/handler registration Lua primitives. More...
 
class  LuaCollisionListener
 Collision listener that decodes packed SpriteHandles from collider data and dispatches to a registered Lua handler. Only processes collisions where BOTH sides are Lua-owned - anything with at least one legacy (non-Lua) side is the legacy collision listener's job instead (it's the one that understands the legacy sprite type well enough to decide response for a mixed collision without a listener-ordering race). More...
 
class  LuaCryptoApi
 Content encryption - protects a game's own .zip bundle content so only that game's own privately-built scarab executable can read it back. See the root README.md's own "Content encryption" section and tools/README.md for the full design/workflow. More...
 
class  LuaEngineUtil
 Shared helpers used by every Lua primitive API module - and, for s_LuaMutex specifically, by LuaEngine itself too (the orchestrator, not one of the primitive API modules - see s_LuaMutex's own comment for why it lives here rather than on LuaEngine). More...
 
class  LuaFileSystemApi
 Phase 12 prototype (bundled/archived distribution, game-engine repo) - overrides Lua's own built-in dofile() with a version that reads through SunLight::FileSystem::FileSystemFactory instead of it's standard fopen()-based one, matching every other subsystem already routed the same way (textures/sound/tilemaps/ load_json). This is the last piece: every resource this engine ever reads now goes through one mount, whether that mount is a real loose directory (today) or a real archive (later) - nothing above this needed to change to notice the difference, load_json/dofile call sites included. More...
 
class  LuaInputApi
 Input polling Lua primitives, thin wrapper over IInputHandler. More...
 
class  LuaJsonApi
 Generic, game-agnostic JSON <-> Lua bridge. Converts any JSON document into an equivalent Lua table, with no knowledge of any particular config schema. More...
 
class  LuaPackApi
 Packaging-tool support for content encryption - see the root README.md's own "Content encryption" section and tools/README.md. Backs tools/pack.lua, the Lua script that actually walks a game's source tree and produces an encrypted .zip bundle (calling crypto_encrypt_data - see LuaCryptoApi - on each file's bytes before adding it here). More...
 
class  LuaRendererApi
 Renderer lifecycle Lua primitives: create the process's one renderer from a script, inspect it, ask it to stop. More...
 
class  LuaScriptingApi
 ScriptProcessor queue-control Lua primitives - sequencing only (waits, labels, wave-spawn/stage-load dispatch); song playback commands live in LuaSoundApi instead, even the queued ones, since they're topically about sound, not queue mechanics. More...
 
class  LuaSoundApi
 Sound Lua primitives. sound_* wrap SoundManager's immediate playback state directly; the *_song/sp_*_song forms (direct and queued respectively) instead go through the ScriptProcessor/EngineHost, since "which song is the tracked BGM" is state EngineHost::OnCommand owns, not SoundManager. More...
 
class  LuaSpriteApi
 Sprite handle pool + rendering Lua primitives. More...
 
class  LuaTextApi
 Text/font Lua primitives - a thin wrapper over IDrawSurface::SetFont/DrawText/MeasureText/GetWindowWidth/ GetWindowHeight. All game-side HUD logic (what to draw, when, positioning, score/lives formatting) lives in Lua on top of these; this class knows nothing about what the text being drawn actually means. More...
 
class  LuaTilemapApi
 Tile map management Lua primitives, thin wrapper over the full ITileMap surface. More...
 
class  LuaTimerApi
 Background-thread periodic/delayed callback Lua primitives (set_timer/reset_timer), backed by SunLight::Concurrent::Timer. See LuaEngineUtil::s_LuaMutex's own comment for the thread-safety invariant every timer callback depends on. More...
 
class  LuaViewApi
 View-addressed camera/zoom/viewport Lua primitives. More...
 
struct  stNamedConstant
 A named integer constant, used to register enum values as Lua globals. More...
 
struct  stNamedRealConstant
 A named real-valued constant, used to register non-integer values (eg. the zoom step and factor limits) as Lua globals - see stNamedConstant for the integer form, which is what nearly every constant group is. More...
 

Typedefs

typedef std ::map< int, SunLight ::Concurrent ::Timer * > TimerMap
 Shared type for LuaEngine's m_Timers member and LuaTimerApi's casts of the timerMapPtr global - both need the exact same type, not just structurally identical ones.
 

Typedef Documentation

◆ TimerMap

typedef std :: map<int, SunLight :: Concurrent :: Timer*> Scarab::Engine::Lua::TimerMap

Shared type for LuaEngine's m_Timers member and LuaTimerApi's casts of the timerMapPtr global - both need the exact same type, not just structurally identical ones.