mirror of
https://github.com/DramaticShape/DramaticShapeVoxelMod.git
synced 2026-08-12 17:50:51 +02:00
44 lines
1.6 KiB
Lua
44 lines
1.6 KiB
Lua
-- Driver: the reported "2D flash when entering a building".
|
|
-- Switches voxel mode on, walks through Red's front door, and records for
|
|
-- EVERY frame of the warp whether a pipeline owned the world pass. Any
|
|
-- frame with the mode on but no pipeline is a frame the player saw flat.
|
|
return function(game)
|
|
local U = dofile("tests/drivers/util.lua")
|
|
local DIR = os.getenv("SHOT_DIR") or "shots"
|
|
local Pipelines = require("src.render.Pipelines")
|
|
|
|
U.teleport(game, "PALLET_TOWN", 5, 6, "up")
|
|
U.wait(30)
|
|
Pipelines.setLevel("voxel", 2)
|
|
Pipelines.setLevel("tiltshift", 0)
|
|
U.wait(30)
|
|
print("[door] outside -- level:", Pipelines.level("voxel"),
|
|
"pipeline:", tostring(Pipelines.worldPipeline()))
|
|
U.shot(game, DIR .. "/door_0_outside.png")
|
|
|
|
local flat, total = 0, 0
|
|
local firstFlatAt = nil
|
|
-- walk onto the doormat and through the warp, sampling every frame
|
|
for i = 1, 90 do
|
|
game.input.state = game.input.state or {}
|
|
U.tap(game, "up")
|
|
U.wait(1)
|
|
total = total + 1
|
|
if Pipelines.level("voxel") > 0 and Pipelines.worldPipeline() == nil then
|
|
flat = flat + 1
|
|
firstFlatAt = firstFlatAt or i
|
|
if flat <= 3 then
|
|
U.shot(game, DIR .. ("/door_flat_frame%d.png"):format(i))
|
|
end
|
|
end
|
|
if i == 45 then U.shot(game, DIR .. "/door_1_mid.png") end
|
|
end
|
|
|
|
U.wait(20)
|
|
print("[door] inside map:", game.overworld.map and game.overworld.map.id)
|
|
print("[door] pipeline:", tostring(Pipelines.worldPipeline()))
|
|
print(("[door] RESULT flat frames %d / %d (first at %s)")
|
|
:format(flat, total, tostring(firstFlatAt)))
|
|
U.shot(game, DIR .. "/door_2_inside.png")
|
|
end
|