Initial Commit

This commit is contained in:
2025-06-01 01:22:46 +02:00
commit b5d9b65db0
4 changed files with 760 additions and 0 deletions

View File

@@ -0,0 +1,57 @@
-- Copyright (C) 2025 snoutie
-- Authors: snoutie (copyright@achtarmig.org)
-- This program is free software: you can redistribute it and/or modify
-- it under the terms of the GNU Affero General Public License as published
-- by the Free Software Foundation, either version 3 of the License, or
-- (at your option) any later version.
-- This program is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- GNU Affero General Public License for more details.
-- You should have received a copy of the GNU Affero General Public License
-- along with this program. If not, see <https://www.gnu.org/licenses/>.
local M = {}
M.file = ""
M.isPaused = false
M.fps = 0.0
local function getFileStream()
if not be then return end
return be:getFileStream()
end
function M.togglePause()
if not M.isPaused then
core_replay.toggleRecording(true, false);
simTimeAuthority.pause(false);
M.file = core_replay.getLoadedFile()
extensions.core_jobsystem.create(
function(job)
job.sleep(M.fps * 2.5); --This should give enough time to sample 1 frame
simTimeAuthority.pause(true);
core_replay.toggleRecording(true, false);
local stream = getFileStream()
if not stream then return end
stream:setPaused(true);
stream:stepFrames(1);
end)
M.isPaused = true
else
core_replay.stop();
simTimeAuthority.pause(false);
FS:removeFile(M.file)
M.isPaused = false
end
end
function M.onUpdate(dt)
M.fps = dt
end
return M

View File

@@ -0,0 +1,10 @@
{
"blurPause": {
"cat": "general",
"order": 1,
"ctx": "tlua",
"onDown": "blurPause.togglePause()",
"title": "Pause (Blur)",
"desc": "Pauses the simulation into replay"
}
}