66 lines
1.5 KiB
Lua
66 lines
1.5 KiB
Lua
|
Demo = {}
|
||
|
DemoPlayback = false
|
||
|
DemoRecording = false
|
||
|
DemoAction = nil -- Table of actions
|
||
|
CurrentDemoFrame = nil
|
||
|
|
||
|
function Demo:Draw()
|
||
|
if DemoRecording then
|
||
|
love.graphics.setColor(1,0,0,1)
|
||
|
elseif DemoPlayback then
|
||
|
love.graphics.setColor(0,0,1,1)
|
||
|
end
|
||
|
love.graphics.rectangle("line",0,0,game.width ,game.height)
|
||
|
end
|
||
|
|
||
|
function Demo:PlaybackStart()
|
||
|
DemoPlayback = true
|
||
|
CurrentDemoFrame = 0
|
||
|
dofile("demo/play_demo.lua")
|
||
|
end
|
||
|
|
||
|
function Demo:PlaybackEnd()
|
||
|
DemoPlayback = false
|
||
|
DemoAction = nil
|
||
|
end
|
||
|
|
||
|
function Demo:RecordAction(action)
|
||
|
if DemoRecording
|
||
|
and action ~= nil
|
||
|
then
|
||
|
DemoFile:write("\""..action.."\",")
|
||
|
end
|
||
|
end
|
||
|
|
||
|
function Demo:RecordStart()
|
||
|
-- Make demo stuff
|
||
|
os.execute( "mkdir \"./demo\"" )
|
||
|
DemoFile = io.open("demo/play_demo.lua", "w+")
|
||
|
--DemoFile = io.open("demo/mothbackDemo_"..os.date("%Y-%m-%d_%H-%M-%S")..".lua", "w+")
|
||
|
DemoFile:write("main_Player.pos.x = "..main_Player.pos.x.."\n")
|
||
|
DemoFile:write("main_Player.pos.y = "..main_Player.pos.y.."\n")
|
||
|
DemoFile:write("DemoAction = {\n")
|
||
|
DemoRecording = true
|
||
|
CurrentDemoFrame = 1
|
||
|
end
|
||
|
|
||
|
function Demo:RecordEnd()
|
||
|
DemoFile:write("}\n}")
|
||
|
DemoFile:close()
|
||
|
DemoFile = nil
|
||
|
DemoRecording = false
|
||
|
end
|
||
|
|
||
|
function Demo:Step()
|
||
|
if DemoRecording then
|
||
|
if CurrentDemoFrame == 1 then
|
||
|
DemoFile:write("\t{")
|
||
|
else
|
||
|
DemoFile:write("},\n\t{")
|
||
|
end
|
||
|
elseif DemoPlayback then
|
||
|
if DemoAction[CurrentDemoFrame + 1] == nil then Demo:PlaybackEnd() end
|
||
|
end
|
||
|
CurrentDemoFrame = CurrentDemoFrame + 1
|
||
|
end
|