diff --git a/Core/GDCore/Extensions/Builtin/TimeExtension.cpp b/Core/GDCore/Extensions/Builtin/TimeExtension.cpp index 0e4437c72558..3ee4168fc711 100644 --- a/Core/GDCore/Extensions/Builtin/TimeExtension.cpp +++ b/Core/GDCore/Extensions/Builtin/TimeExtension.cpp @@ -151,6 +151,28 @@ void GD_CORE_API BuiltinExtensionsImplementer::ImplementsTimeExtension( .AddParameter("expression", _("Scale (1: Default, 2: 2x faster, 0.5: 2x slower...)")); + extension + .AddAction("SetMaximumFPS", + _("Maximum FPS"), + _("Change the maximum frames per second at runtime."), + _("Set maximum FPS to _PARAM1_"), + _("Rendering"), + "res/actions/fps_max24.png", + "res/actions/fps_max.png") + .AddCodeOnlyParameter("currentScene", "") + .AddParameter("expression", _("Maximum FPS")); + + extension + .AddAction("SetMinimumFPS", + _("Minimum FPS"), + _("Change the minimum frames per second at runtime."), + _("Set minimum FPS to _PARAM1_"), + _("Rendering"), + "res/actions/fps_min24.png", + "res/actions/fps_min.png") + .AddCodeOnlyParameter("currentScene", "") + .AddParameter("expression", _("Minimum FPS")); + extension .AddAction("Wait", _("Wait X seconds"), diff --git a/GDJS/GDJS/Extensions/Builtin/TimeExtension.cpp b/GDJS/GDJS/Extensions/Builtin/TimeExtension.cpp index 553647109a68..24621dd684b6 100644 --- a/GDJS/GDJS/Extensions/Builtin/TimeExtension.cpp +++ b/GDJS/GDJS/Extensions/Builtin/TimeExtension.cpp @@ -34,6 +34,10 @@ TimeExtension::TimeExtension() { "gdjs.evtTools.runtimeScene.getTimeScale"); GetAllActions()["ChangeTimeScale"].SetFunctionName( "gdjs.evtTools.runtimeScene.setTimeScale"); + GetAllActions()["SetMaximumFPS"].SetFunctionName( + "gdjs.evtTools.runtimeScene.setMaximumFPS"); + GetAllActions()["SetMinimumFPS"].SetFunctionName( + "gdjs.evtTools.runtimeScene.setMinimumFPS"); GetAllExpressions()["TimeDelta"].SetFunctionName( "gdjs.evtTools.runtimeScene.getElapsedTimeInSeconds"); diff --git a/GDJS/Runtime/events-tools/runtimescenetools.ts b/GDJS/Runtime/events-tools/runtimescenetools.ts index ed75c8c5d3eb..f6329efd03c1 100644 --- a/GDJS/Runtime/events-tools/runtimescenetools.ts +++ b/GDJS/Runtime/events-tools/runtimescenetools.ts @@ -52,6 +52,20 @@ namespace gdjs { return runtimeScene.getScene().getTimeManager().setTimeScale(timeScale); }; + export const setMaximumFPS = function ( + runtimeScene: gdjs.RuntimeScene, + fps: float + ) { + runtimeScene.getGame()._maxFPS = fps; + }; + + export const setMinimumFPS = function ( + runtimeScene: gdjs.RuntimeScene, + fps: float + ) { + runtimeScene.getGame()._minFPS = fps; + }; + export const getTimeScale = function (runtimeScene: gdjs.RuntimeScene) { return runtimeScene.getScene().getTimeManager().getTimeScale(); };