Initial Commit
This commit is contained in:
57
lua/ge/extensions/blurPause.lua
Normal file
57
lua/ge/extensions/blurPause.lua
Normal 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
|
||||
10
lua/ge/extensions/core/input/actions/blurPause.json
Normal file
10
lua/ge/extensions/core/input/actions/blurPause.json
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"blurPause": {
|
||||
"cat": "general",
|
||||
"order": 1,
|
||||
"ctx": "tlua",
|
||||
"onDown": "blurPause.togglePause()",
|
||||
"title": "Pause (Blur)",
|
||||
"desc": "Pauses the simulation into replay"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user