Skip to content

LuaSTG Retro v0.0.2

Latest

Choose a tag to compare

@Hoshiruna Hoshiruna released this 07 Aug 11:46
· 17 commits to master since this release

Full Changelog: v0.0.1...v0.0.2

Custom resource pools, asynchronous loading, Lua hot reloading, and SQLite support.

  • Lua API
    • NEW: lstg.ResourceManager.createPool(name:string): ResourcePool
    • NEW: lstg.ResourceManager.getPool(name:string): ResourcePool?
    • NEW: lstg.ResourceManager.destroyPool(pool:ResourcePool)
    • NEW: lstg.ResourceManager.setLookupOrder(pools:ResourcePool[])
    • NEW: lstg.ResourceManager.getLookupOrder(): ResourcePool[]
    • NEW: lstg.ResourceManager.getPools(): ResourcePool[]
    • NEW: Pool loader methods for textures, videos, sprites, animations, particles, audio, fonts, effects, models, and render targets.
    • CHANGED: lstg.Load* and lstg.CreateRenderTarget now take a pool name or ResourcePool as their first argument.
    • CHANGED: Resource lookup follows the order set by lstg.ResourceManager.setLookupOrder.
    • REMOVED: lstg.SetResourceStatus, lstg.GetResourceStatus, lstg.RemoveResource, lstg.CheckRes, and lstg.EnumRes.
  • Async Lua API
    • NEW: lstg.LoadTextureAsync, LoadVideoAsync, LoadImageAsync, and LoadAnimationAsync.
    • NEW: lstg.LoadPSAsync, LoadSoundAsync, and LoadMusicAsync.
    • NEW: lstg.LoadFontAsync, LoadTTFAsync, and LoadTrueTypeFontAsync.
    • NEW: lstg.LoadFXAsync and LoadModelAsync.
    • NEW: Matching ResourcePool methods: loadTextureAsync, loadVideoAsync, createSpriteAsync, createAnimationAsync, loadParticleAsync, loadSoundAsync, loadMusicAsync, loadSpriteFontAsync, loadTTFAsync, loadTrueTypeFontAsync, loadFXAsync, and loadModelAsync.
    • NEW: lstg.FileManager.ReadFileAsync(path:string): AsyncResourceJob.
    • NEW: AsyncResourceJob:status(): string
    • NEW: AsyncResourceJob:isDone(): boolean
    • NEW: AsyncResourceJob:error(): string?
    • NEW: AsyncResourceJob:read(): boolean|string|nil, string?
    • NEW: AsyncResourceJob:cancel(): boolean
  • Lua modules
    • NEW: require("luasql.sqlite3") provides SQLite through LuaSQL.
    • NEW: Lua hot reloading is available from the ImGui debugger.
  • Tools and engine
    • Added a DAT archive builder and updated DAT archive handling.
    • Added resource-pool logging and an ImGui resource status view.
    • Improved asynchronous texture, font, shader, audio, and video handling.
    • Localized several engine log messages.
  • Build
    • Added AMD64 Ninja Debug and Release presets.
    • Added windows-ninja-amd64-release as a CMake workflow preset.
    • Updated GitHub Actions dependencies and CI configuration.
    • Removed the documentation Git submodule.
  • Fixes
    • Fixed inconsistent async resource variable names.

What's Changed