mirror of
https://github.com/bryanthaboi/gen1recomp.git
synced 2026-08-19 04:06:10 +02:00
skins and skin studio
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
-- Driver: shoots the launcher's Touch Controls editor with the built-in pad
|
||||
-- and with the bundled skin picked, so the Skin row (#1386) can be eyeballed.
|
||||
-- The editor is a top-level love.draw branch in main.lua, not a stack state,
|
||||
-- so this stands in for that branch and captures the frame itself.
|
||||
-- SHOT_DIR=/tmp/skin POKEPORT_DRIVER=tests/drivers/touch_skin_editor_shot.lua love .
|
||||
return function(game)
|
||||
local U = dofile("tests/drivers/util.lua")
|
||||
local Editor = require("src.ui.TouchControlsEditor")
|
||||
local TouchControls = require("src.core.TouchControls")
|
||||
|
||||
local dir = os.getenv("SHOT_DIR") or "/tmp/skin"
|
||||
os.execute('mkdir -p "' .. dir .. '" 2>/dev/null')
|
||||
love.window.setMode(432, 768, { resizable = true, highdpi = true })
|
||||
U.wait(2)
|
||||
|
||||
local pending = nil
|
||||
love.draw = function()
|
||||
Editor.draw()
|
||||
if pending then
|
||||
local path = pending
|
||||
pending = nil
|
||||
love.graphics.captureScreenshot(function(imagedata)
|
||||
local f = io.open(path, "wb")
|
||||
if f then f:write(imagedata:encode("png"):getString()) f:close() end
|
||||
end)
|
||||
end
|
||||
end
|
||||
|
||||
local function shot(name)
|
||||
pending = dir .. "/" .. name
|
||||
for _ = 1, 60 do
|
||||
if not pending then break end
|
||||
coroutine.yield()
|
||||
end
|
||||
U.wait(3)
|
||||
local f = io.open(dir .. "/" .. name, "rb")
|
||||
if f then f:close() U.log("shot", name) else U.log("FAIL shot", name) end
|
||||
end
|
||||
|
||||
Editor.load({ onClose = function() end })
|
||||
U.wait(5)
|
||||
U.log("skins:", #Editor.skins, "label:", Editor.skinLabel())
|
||||
shot("editor_pad.png")
|
||||
|
||||
Editor.cycleSkin(1)
|
||||
U.wait(5)
|
||||
U.log("picked:", tostring(TouchControls.skinId), Editor.skinLabel())
|
||||
shot("editor_skin.png")
|
||||
|
||||
Editor.exportSkin()
|
||||
U.wait(5)
|
||||
U.log("export:", tostring(Editor.exportMsg))
|
||||
U.log("skins after export:", #Editor.skins)
|
||||
shot("editor_export.png")
|
||||
|
||||
U.log("done")
|
||||
love.event.quit()
|
||||
while true do coroutine.yield() end
|
||||
end
|
||||
Reference in New Issue
Block a user