diff --git a/assets/languages/en/Options.xml b/assets/languages/en/Options.xml index 68862bac..d1958961 100644 --- a/assets/languages/en/Options.xml +++ b/assets/languages/en/Options.xml @@ -48,6 +48,7 @@ Engine Switch Mod + FPS Counter Volume diff --git a/assets/languages/es/Options.xml b/assets/languages/es/Options.xml index 5033ffe5..bd25ee90 100644 --- a/assets/languages/es/Options.xml +++ b/assets/languages/es/Options.xml @@ -46,8 +46,9 @@ Cambiar Mod + Contador de FPS - + Volumen Arriba Abajo diff --git a/assets/languages/it/Options.xml b/assets/languages/it/Options.xml index 6498fc61..ed24a8ee 100644 --- a/assets/languages/it/Options.xml +++ b/assets/languages/it/Options.xml @@ -46,6 +46,7 @@ Cambia Mod + Contatore FPS Su diff --git a/assets/languages/pl/Options.xml b/assets/languages/pl/Options.xml index d5fb2d34..f14687f3 100644 --- a/assets/languages/pl/Options.xml +++ b/assets/languages/pl/Options.xml @@ -44,8 +44,9 @@ Silnik Zmień Moda + Licznik FPS - + Głośność Głóśniej Ciszej diff --git a/assets/languages/pt/Options.xml b/assets/languages/pt/Options.xml index c0a2e08b..c9f02aac 100644 --- a/assets/languages/pt/Options.xml +++ b/assets/languages/pt/Options.xml @@ -48,6 +48,7 @@ Codename Engine Trocar Mod + Contador de FPS Volume diff --git a/source/funkin/backend/scripting/GlobalScript.hx b/source/funkin/backend/scripting/GlobalScript.hx index cb589371..ec381ea2 100644 --- a/source/funkin/backend/scripting/GlobalScript.hx +++ b/source/funkin/backend/scripting/GlobalScript.hx @@ -55,9 +55,6 @@ class GlobalScript { reloading = false; MusicBeatState.ALLOW_DEV_RELOAD = _lastAllow_Reload; } - - if (PlayerSettings.solo.controls.DEV_CONSOLE) - NativeAPI.allocConsole(); }); FlxG.signals.preDraw.add(function() { call("preDraw"); diff --git a/source/funkin/backend/system/Controls.hx b/source/funkin/backend/system/Controls.hx index a7a540c2..c4c80d53 100644 --- a/source/funkin/backend/system/Controls.hx +++ b/source/funkin/backend/system/Controls.hx @@ -25,6 +25,7 @@ enum Control CHANGE_MODE; //CHEAT; SWITCHMOD; + FPS_COUNTER; // Debugs DEV_ACCESS; @@ -161,6 +162,11 @@ class Controls extends FlxActionSet @:pressed("switchmod") public var SWITCHMOD_HOLD(get, set): Bool; @:justReleased("switchmod") public var SWITCHMOD_R(get, set): Bool; + @:gamepad([]) + @:justPressed("fps-counter") public var FPS_COUNTER(get, set): Bool; + @:pressed("fps-counter") public var FPS_COUNTER_HOLD(get, set): Bool; + @:justReleased("fps-counter") public var FPS_COUNTER_R(get, set): Bool; + @:devModeOnly @:gamepad([]) @:justPressed("dev-access") public var DEV_ACCESS(get, set): Bool; diff --git a/source/funkin/backend/system/Main.hx b/source/funkin/backend/system/Main.hx index da44cf1d..ebffd227 100644 --- a/source/funkin/backend/system/Main.hx +++ b/source/funkin/backend/system/Main.hx @@ -1,7 +1,5 @@ package funkin.backend.system; -import sys.io.File; -import sys.FileSystem; import flixel.addons.transition.FlxTransitionSprite.GraphicTransTileDiamond; import flixel.addons.transition.FlxTransitionableState; import flixel.addons.transition.TransitionData; @@ -9,17 +7,21 @@ import flixel.graphics.FlxGraphic; import flixel.math.FlxPoint; import flixel.math.FlxRect; import flixel.system.ui.FlxSoundTray; +import funkin.backend.assets.AssetSource; import funkin.backend.assets.AssetsLibraryList; import funkin.backend.assets.ModsFolder; -import funkin.backend.assets.AssetSource; +import funkin.backend.system.framerate.Framerate; import funkin.backend.system.framerate.SystemInfo; import funkin.backend.system.modules.*; import funkin.editors.SaveWarning; +import funkin.options.PlayerSettings; import openfl.Assets; import openfl.Lib; import openfl.display.Sprite; import openfl.text.TextFormat; import openfl.utils.AssetLibrary; +import sys.FileSystem; +import sys.io.File; #if ALLOW_MULTITHREADING import sys.thread.Thread; @@ -40,7 +42,7 @@ class Main extends Sprite public static var scaleMode:FunkinRatioScaleMode; #if !mobile - public static var framerateSprite:funkin.backend.system.framerate.Framerate; + public static var framerateSprite:Framerate; #end var gameWidth:Int = 1280; // Width of the game in pixels (might be less / more in actual pixels). @@ -79,7 +81,7 @@ class Main extends Sprite addChild(game = new FunkinGame(gameWidth, gameHeight, MainState, Options.framerate, Options.framerate, skipSplash, startFullscreen)); #if (!mobile && !web) - addChild(framerateSprite = new funkin.backend.system.framerate.Framerate()); + addChild(framerateSprite = new Framerate()); SystemInfo.init(); #end } @@ -156,6 +158,7 @@ class Main extends Sprite FlxG.signals.focusGained.add(onFocus); FlxG.signals.preStateSwitch.add(onStateSwitch); FlxG.signals.postStateSwitch.add(onStateSwitchPost); + FlxG.signals.postUpdate.add(onUpdate); FlxG.mouse.useSystemCursor = true; #if DARK_MODE_WINDOW @@ -210,6 +213,14 @@ class Main extends Sprite scaleMode.resetSize(); } + public static function onUpdate() { + if (PlayerSettings.solo.controls.DEV_CONSOLE) + NativeAPI.allocConsole(); + + if (PlayerSettings.solo.controls.FPS_COUNTER) + Framerate.debugMode = (Framerate.debugMode + 1) % 3; + } + private static function onStateSwitchPost() { // manual asset clearing since base openfl one does'nt clear lime one // does'nt clear bitmaps since flixel fork does it auto diff --git a/source/funkin/backend/system/framerate/Framerate.hx b/source/funkin/backend/system/framerate/Framerate.hx index 2acc7601..c33b416c 100644 --- a/source/funkin/backend/system/framerate/Framerate.hx +++ b/source/funkin/backend/system/framerate/Framerate.hx @@ -53,13 +53,6 @@ class Framerate extends Sprite { x = 10; y = 2; - FlxG.stage.addEventListener(KeyboardEvent.KEY_UP, function(e:KeyboardEvent) { - switch(e.keyCode) { - case #if web Keyboard.NUMBER_3 #else Keyboard.F3 #end: // 3 on web or F3 on windows, linux and other things that runs code - debugMode = (debugMode + 1) % 3; - } - }); - if (__bitmap == null) __bitmap = new BitmapData(1, 1, 0xFF000000); diff --git a/source/funkin/options/Options.hx b/source/funkin/options/Options.hx index ac5c87ac..ffd2925c 100644 --- a/source/funkin/options/Options.hx +++ b/source/funkin/options/Options.hx @@ -126,6 +126,7 @@ class Options public static var P1_VOLUME_UP:Array = [PLUS]; public static var P1_VOLUME_DOWN:Array = [MINUS]; public static var P1_VOLUME_MUTE:Array = [ZERO]; + public static var P1_FPS_COUNTER:Array = [#if web NUMBER_3 #else F3 #end]; // 3 on web or F3 on windows, linux and other things that runs code // Debugs public static var P1_DEV_ACCESS:Array = [SEVEN]; @@ -158,6 +159,7 @@ class Options public static var P2_VOLUME_UP:Array = [NUMPADPLUS]; public static var P2_VOLUME_DOWN:Array = [NUMPADMINUS]; public static var P2_VOLUME_MUTE:Array = [NUMPADZERO]; + public static var P2_FPS_COUNTER:Array = []; // Debugs public static var P2_DEV_ACCESS:Array = []; @@ -190,6 +192,7 @@ class Options public static var SOLO_VOLUME_UP(get, null):Array; public static var SOLO_VOLUME_DOWN(get, null):Array; public static var SOLO_VOLUME_MUTE(get, null):Array; + public static var SOLO_FPS_COUNTER(get, null):Array; // Debugs public static var SOLO_DEV_ACCESS(get, null):Array; diff --git a/source/funkin/options/keybinds/KeybindsOptions.hx b/source/funkin/options/keybinds/KeybindsOptions.hx index 0ae12058..ad068447 100644 --- a/source/funkin/options/keybinds/KeybindsOptions.hx +++ b/source/funkin/options/keybinds/KeybindsOptions.hx @@ -127,6 +127,10 @@ class KeybindsOptions extends MusicBeatSubstate { name: translate("engine.switchMod"), control: 'SWITCHMOD' }, + { + name: translate("engine.fpsCounter"), + control: 'FPS_COUNTER' + }, ] }, {