From e8332c688f748dd5529f9edfcf2a5c531dbe3a35 Mon Sep 17 00:00:00 2001 From: Frakits Date: Thu, 24 Jul 2025 13:51:58 +0300 Subject: [PATCH] readd the beta warning state as a template state (WarningState.hx) --- source/funkin/backend/system/Flags.hx | 2 +- source/funkin/backend/system/MainState.hx | 3 +- source/funkin/editors/ModConfigWarning.hx | 3 ++ source/funkin/menus/WarningState.hx | 61 +++++++++++++++++++++++ 4 files changed, 67 insertions(+), 2 deletions(-) create mode 100644 source/funkin/menus/WarningState.hx diff --git a/source/funkin/backend/system/Flags.hx b/source/funkin/backend/system/Flags.hx index 94e21604..1388030f 100644 --- a/source/funkin/backend/system/Flags.hx +++ b/source/funkin/backend/system/Flags.hx @@ -182,7 +182,7 @@ class Flags { public static var JSON_PRETTY_PRINT:String = "\t"; public static var DISABLE_EDITORS:Bool = false; - public static var DISABLE_BETA_WARNING_SCREEN:Bool = false; + public static var DISABLE_WARNING_SCREEN:Bool = true; public static var DISABLE_TRANSITIONS:Bool = false; @:also(funkin.backend.MusicBeatTransition.script) diff --git a/source/funkin/backend/system/MainState.hx b/source/funkin/backend/system/MainState.hx index 64876449..962b552c 100644 --- a/source/funkin/backend/system/MainState.hx +++ b/source/funkin/backend/system/MainState.hx @@ -135,6 +135,7 @@ class MainState extends FlxState { } } - FlxG.switchState(new TitleState()); + if (!Flags.DISABLE_WARNING_SCREEN) FlxG.switchState(new funkin.menu.WarningState()); + else FlxG.switchState(new TitleState()); } } \ No newline at end of file diff --git a/source/funkin/editors/ModConfigWarning.hx b/source/funkin/editors/ModConfigWarning.hx index a7a9037e..4351f5be 100644 --- a/source/funkin/editors/ModConfigWarning.hx +++ b/source/funkin/editors/ModConfigWarning.hx @@ -27,6 +27,9 @@ MOD_DOWNLOAD_LINK="YOUR MOD PAGE LINK HERE" [Flags] DISABLE_BETA_WARNING_SCREEN=true +DISABLE_WARNING_SCREEN=true +# Set this to false if you want to bring back the warning state (prior to 1.0.0) +# NOTE: Beta warning state has been renamed from BetaWarningState.hx to WarningState.hx [Discord] MOD_DISCORD_CLIENT_ID="" diff --git a/source/funkin/menus/WarningState.hx b/source/funkin/menus/WarningState.hx new file mode 100644 index 00000000..6cc90629 --- /dev/null +++ b/source/funkin/menus/WarningState.hx @@ -0,0 +1,61 @@ +package funkin.menus; + +import flixel.util.FlxColor; +import flixel.text.FlxText; +import funkin.backend.FunkinText; + +class WarningState extends MusicBeatState { + var titleAlphabet:Alphabet; + var disclaimer:FunkinText; + + var transitioning:Bool = false; + + public override function create() { + + titleAlphabet = new Alphabet(0, 0, "WARNING", true); + titleAlphabet.screenCenter(X); + add(titleAlphabet); + + disclaimer = new FunkinText(16, titleAlphabet.y + titleAlphabet.height + 10, FlxG.width - 32, "", 32); + disclaimer.alignment = CENTER; + disclaimer.text = "This is a warning state! Make a script #./data/states/WarningState.hx# to edit this text! \n\n Note: you can use * or # to highlight your text in red or yellow, or you can just make your own markup using postCreate"; + + super.create(); + + disclaimer.applyMarkup(disclaimer.text, + [ + new FlxTextFormatMarkerPair(new FlxTextFormat(0xFFFF4444), "*"), + new FlxTextFormatMarkerPair(new FlxTextFormat(0xFFFFFF44), "#") + ] + ); + add(disclaimer); + + var off = Std.int((FlxG.height - (disclaimer.y + disclaimer.height)) / 2); + disclaimer.y += off; + titleAlphabet.y += off; + + DiscordUtil.call("onMenuLoaded", ["Beta Warning"]); + } + + public override function update(elapsed:Float) { + super.update(elapsed); + + if (controls.ACCEPT && transitioning) { + FlxG.camera.stopFX(); FlxG.camera.visible = false; + goToTitle(); + } + + if (controls.ACCEPT && !transitioning) { + transitioning = true; + CoolUtil.playMenuSFX(CONFIRM); + FlxG.camera.flash(FlxColor.WHITE, 1, function() { + FlxG.camera.fade(FlxColor.BLACK, 2.5, false, goToTitle); + }); + } + } + + private function goToTitle() { + MusicBeatState.skipTransIn = MusicBeatState.skipTransOut = true; + FlxG.switchState(new TitleState()); + } +} \ No newline at end of file