LuaHotLoader is a Lua library for hot-loading files, including modules. Works with LuaFileSystem or LÖVE 0.10+.
local hotLoader = require("hotLoader")
local duckPath = "duck.jpg"
-- Program loop.
local lastTime = os.clock()
while true do
local currentTime = os.clock()
-- Allow the library to reload module and resource files that have been updated.
hotLoader.update(currentTime-lastTime)
-- Show if debug mode is enabled.
local settings = hotLoader.require("appSettings")
if settings.enableDebug then
print("DEBUG")
end
-- Show size of duck image.
local duckData = hotLoader.load(duckPath)
print("Duck is "..(#duckData).." bytes")
lastTime = currentTime
end
local hotLoader = require("hotLoader")
local player = {
x = 100, y = 50,
imagePath = "player.png",
}
function love.load()
-- Tell the library to load .png files using love.graphics.newImage().
hotLoader.setLoader("png", love.graphics.newImage)
-- Note: The library automatically adds common loaders in LÖVE, including
-- for .png files. You can call hotLoader.removeAllLoaders() to undo this.
end
function love.update(dt)
-- Allow the library to reload module and resource files that have been updated.
hotLoader.update(dt)
end
function love.draw()
-- Show if debug mode is enabled.
local settings = hotLoader.require("gameSettings")
if settings.enableDebug then
love.graphics.print("DEBUG", 5, 5)
end
-- Draw player image.
local playerImage = hotLoader.load(player.imagePath)
love.graphics.draw(playerImage, player.x, player.y)
end
Got a question? If the documentation doesn't have the answer, look if someone has asked the question in the issue tracker, or create a new issue.