diff --git a/assets/sounds/menu/checkboxChecked.mp3 b/assets/sounds/menu/checkboxChecked.mp3 new file mode 100644 index 00000000..4d81b62c Binary files /dev/null and b/assets/sounds/menu/checkboxChecked.mp3 differ diff --git a/assets/sounds/menu/checkboxChecked.ogg b/assets/sounds/menu/checkboxChecked.ogg new file mode 100644 index 00000000..014efd80 Binary files /dev/null and b/assets/sounds/menu/checkboxChecked.ogg differ diff --git a/assets/sounds/menu/checkboxUnchecked.mp3 b/assets/sounds/menu/checkboxUnchecked.mp3 new file mode 100644 index 00000000..d6108650 Binary files /dev/null and b/assets/sounds/menu/checkboxUnchecked.mp3 differ diff --git a/assets/sounds/menu/checkboxUnchecked.ogg b/assets/sounds/menu/checkboxUnchecked.ogg new file mode 100644 index 00000000..59a78de6 Binary files /dev/null and b/assets/sounds/menu/checkboxUnchecked.ogg differ diff --git a/buildnumber.txt b/buildnumber.txt index b2ae9591..ac037cdb 100644 --- a/buildnumber.txt +++ b/buildnumber.txt @@ -1 +1 @@ -2498 \ No newline at end of file +2508 \ No newline at end of file diff --git a/source/funkin/editors/DebugOptions.hx b/source/funkin/editors/DebugOptions.hx index 29c3ae0e..ad784031 100644 --- a/source/funkin/editors/DebugOptions.hx +++ b/source/funkin/editors/DebugOptions.hx @@ -1,6 +1,9 @@ package funkin.editors; +import funkin.options.type.*; +import funkin.options.OptionsScreen; import funkin.options.TreeMenu; +import funkin.windows.WindowsAPI; class DebugOptions extends TreeMenu { public override function create() { @@ -18,6 +21,28 @@ class DebugOptions extends TreeMenu { bg.antialiasing = true; add(bg); - main = new funkin.options.categories.DebugOptions(); + main = new DebugOptionsScreen(); + } +} + +class DebugOptionsScreen extends OptionsScreen { + public override function new() { + super("Debug Options", "Use this menu to change debug options."); + #if windows + add(new TextOption( + "Show Console", + "Select this to show the debug console, which contains log information about the game.", + function() { + WindowsAPI.allocConsole(); + })); + add(new Checkbox( + "Enable Editor SFXs", + "If checked, will play sound effects when working on editors (ex: will play sfxs when checking checkboxes...)", + "editorSFX")); + add(new Checkbox( + "Resizable Editors", + "If checked, editors will be resizable and extensible like other programs instead of zooming in upon maximization.", + "resizableEditors")); + #end } } \ No newline at end of file diff --git a/source/funkin/editors/EditorPicker.hx b/source/funkin/editors/EditorPicker.hx index 883ac0d5..f128f4bf 100644 --- a/source/funkin/editors/EditorPicker.hx +++ b/source/funkin/editors/EditorPicker.hx @@ -1,7 +1,6 @@ package funkin.editors; import flixel.addons.transition.FlxTransitionableState; -import funkin.options.Options; import flixel.math.FlxPoint; import flixel.effects.FlxFlicker; diff --git a/source/funkin/editors/UIDebugState.hx b/source/funkin/editors/UIDebugState.hx index 08dbcf60..9aba4f09 100644 --- a/source/funkin/editors/UIDebugState.hx +++ b/source/funkin/editors/UIDebugState.hx @@ -5,7 +5,7 @@ import funkin.editors.ui.*; class UIDebugState extends UIState { public override function create() { super.create(); - var bg = new FlxSprite().makeGraphic(0xFF888888); + var bg = new FlxSprite().makeGraphic(1, 1, 0xFF888888); bg.scale.set(FlxG.width, FlxG.height); bg.updateHitbox(); bg.scrollFactor.set(); diff --git a/source/funkin/editors/ui/UICheckbox.hx b/source/funkin/editors/ui/UICheckbox.hx index a2c6d597..894450b5 100644 --- a/source/funkin/editors/ui/UICheckbox.hx +++ b/source/funkin/editors/ui/UICheckbox.hx @@ -18,7 +18,7 @@ class UICheckbox extends UISprite { this.checked = checked; - field = new FunkinText(x, y, text, w); + field = new FunkinText(x, y, w, text, 14, false); check = new FlxSprite().loadGraphicFromSprite(this); check.animation.play("checkmark"); @@ -45,8 +45,8 @@ class UICheckbox extends UISprite { public inline function updatePositions() { check.cameras = field.cameras = cameras; - - field.setPosition(x + 30, y); + + field.setPosition(x + 25, y); check.setPosition(x, y); } @@ -63,6 +63,9 @@ class UICheckbox extends UISprite { // clicked checked = !checked; check.scale.set(1.25, 1.25); + + if (Options.editorSFX) + CoolUtil.playMenuSFX(checked ? CHECKED : UNCHECKED, 0.5); } } diff --git a/source/funkin/game/PlayState.hx b/source/funkin/game/PlayState.hx index 447bcbce..d874f951 100644 --- a/source/funkin/game/PlayState.hx +++ b/source/funkin/game/PlayState.hx @@ -7,7 +7,6 @@ import funkin.scripting.DummyScript; import funkin.menus.StoryMenuState.WeekData; import funkin.ui.FunkinText; import flixel.group.FlxSpriteGroup; -import funkin.options.Options; import funkin.scripting.Script; import flixel.util.FlxDestroyUtil; import funkin.scripting.ScriptPack; diff --git a/source/funkin/game/Stage.hx b/source/funkin/game/Stage.hx index 63f8d07a..822ca199 100644 --- a/source/funkin/game/Stage.hx +++ b/source/funkin/game/Stage.hx @@ -1,6 +1,5 @@ package funkin.game; -import funkin.options.Options; import flixel.FlxState; import haxe.xml.Access; import funkin.interfaces.IBeatReceiver; diff --git a/source/funkin/game/Strum.hx b/source/funkin/game/Strum.hx index 0c95b755..a1c7fcdc 100644 --- a/source/funkin/game/Strum.hx +++ b/source/funkin/game/Strum.hx @@ -1,7 +1,6 @@ package funkin.game; import flixel.math.FlxPoint; -import funkin.options.Options; import funkin.system.Conductor; class Strum extends FlxSprite { diff --git a/source/funkin/import.hx b/source/funkin/import.hx index 093733b3..233ef4f3 100644 --- a/source/funkin/import.hx +++ b/source/funkin/import.hx @@ -6,6 +6,7 @@ import funkin.system.MusicBeatGroup; import funkin.system.FunkinSprite; import funkin.utils.*; import funkin.system.Logs; +import funkin.options.Options; import funkin.game.PlayState; import funkin.scripting.EventManager; diff --git a/source/funkin/menus/MainMenuState.hx b/source/funkin/menus/MainMenuState.hx index 68f2a9ec..5072107a 100644 --- a/source/funkin/menus/MainMenuState.hx +++ b/source/funkin/menus/MainMenuState.hx @@ -2,7 +2,6 @@ package funkin.menus; import haxe.Json; import funkin.ui.FunkinText; -import funkin.options.Options; // import funkin.menus.credits.CreditsMain; import flixel.FlxState; import flixel.addons.transition.FlxTransitionableState; @@ -77,7 +76,7 @@ class MainMenuState extends MusicBeatState FlxG.camera.follow(camFollow, null, 0.06); - var versionShit:FunkinText = new FunkinText(5, FlxG.height - 2, 0, 'Codename Engine v${Application.current.meta.get('version')}\nBeta: Build ${funkin.macros.BuildCounterMacro.getBuildNumber()}\n'); + var versionShit:FunkinText = new FunkinText(5, FlxG.height - 2, 0, 'Codename Engine v${Application.current.meta.get('version')}\nBeta: Build ${funkin.macros.BuildCounterMacro.getBuildNumber()}\n[TAB] Open Mods menu\n'); versionShit.scrollFactor.set(); versionShit.y -= versionShit.height; add(versionShit); diff --git a/source/funkin/mods/ModsFolder.hx b/source/funkin/mods/ModsFolder.hx index b554291e..43bf1218 100644 --- a/source/funkin/mods/ModsFolder.hx +++ b/source/funkin/mods/ModsFolder.hx @@ -1,6 +1,5 @@ package funkin.mods; -import funkin.options.Options; import funkin.menus.TitleState; import funkin.system.Main; import openfl.utils.AssetCache; diff --git a/source/funkin/options/Options.hx b/source/funkin/options/Options.hx index 2907dd14..acace74f 100644 --- a/source/funkin/options/Options.hx +++ b/source/funkin/options/Options.hx @@ -32,6 +32,12 @@ class Options public static var lastLoadedMod:String = null; + /** + * EDITORS SETTINGS + */ + public static var editorSFX:Bool = true; + public static var resizableEditors:Bool = true; + /** * PLAYER 1 CONTROLS */ diff --git a/source/funkin/options/categories/DebugOptions.hx b/source/funkin/options/categories/DebugOptions.hx deleted file mode 100644 index 7f98bddc..00000000 --- a/source/funkin/options/categories/DebugOptions.hx +++ /dev/null @@ -1,17 +0,0 @@ -package funkin.options.categories; - -import funkin.windows.WindowsAPI; - -class DebugOptions extends OptionsScreen { - public override function new() { - super("Debug Options", "Use this menu to change debug options."); - #if windows - add(new TextOption( - "Show Console", - "Select this to show the debug console, which contains log information about the game.", - function() { - WindowsAPI.allocConsole(); - })); - #end - } -} \ No newline at end of file diff --git a/source/funkin/options/keybinds/ChangeKeybindSubState.hx b/source/funkin/options/keybinds/ChangeKeybindSubState.hx index 934078a5..766ee444 100644 --- a/source/funkin/options/keybinds/ChangeKeybindSubState.hx +++ b/source/funkin/options/keybinds/ChangeKeybindSubState.hx @@ -2,7 +2,6 @@ package funkin.options.keybinds; import flixel.effects.FlxFlicker; import funkin.system.Controls; -import funkin.options.Options; import flixel.addons.transition.FlxTransitionableState; import flixel.util.FlxColor; import flixel.input.keyboard.FlxKey; diff --git a/source/funkin/options/keybinds/KeybindSetting.hx b/source/funkin/options/keybinds/KeybindSetting.hx index dedc225b..3cbad799 100644 --- a/source/funkin/options/keybinds/KeybindSetting.hx +++ b/source/funkin/options/keybinds/KeybindSetting.hx @@ -2,7 +2,6 @@ package funkin.options.keybinds; import flixel.effects.FlxFlicker; import funkin.system.Controls; -import funkin.options.Options; import flixel.addons.transition.FlxTransitionableState; import flixel.util.FlxColor; import flixel.input.keyboard.FlxKey; diff --git a/source/funkin/options/keybinds/KeybindsOptions.hx b/source/funkin/options/keybinds/KeybindsOptions.hx index 281dddb3..01ae3eaa 100644 --- a/source/funkin/options/keybinds/KeybindsOptions.hx +++ b/source/funkin/options/keybinds/KeybindsOptions.hx @@ -1,7 +1,6 @@ package funkin.options.keybinds; import funkin.system.Controls; -import funkin.options.Options; import flixel.addons.transition.FlxTransitionableState; import flixel.util.FlxColor; import flixel.input.keyboard.FlxKey; diff --git a/source/funkin/system/Controls.hx b/source/funkin/system/Controls.hx index 04caee4c..5ca81129 100644 --- a/source/funkin/system/Controls.hx +++ b/source/funkin/system/Controls.hx @@ -1,6 +1,5 @@ package funkin.system; -import funkin.options.Options; import flixel.input.FlxInput; import flixel.input.actions.FlxAction; import flixel.input.actions.FlxActionInput; diff --git a/source/funkin/system/Main.hx b/source/funkin/system/Main.hx index bcc35918..d1e105f8 100644 --- a/source/funkin/system/Main.hx +++ b/source/funkin/system/Main.hx @@ -8,7 +8,6 @@ import funkin.windows.WindowsAPI; import funkin.menus.BetaWarningState; import funkin.menus.TitleState; import funkin.game.Highscore; -import funkin.options.Options; import flixel.FlxGame; import flixel.FlxState; import openfl.Assets; diff --git a/source/funkin/updating/UpdateUtil.hx b/source/funkin/updating/UpdateUtil.hx index c7606995..b6c7a9d3 100644 --- a/source/funkin/updating/UpdateUtil.hx +++ b/source/funkin/updating/UpdateUtil.hx @@ -1,6 +1,5 @@ package funkin.updating; -import funkin.options.Options; import sys.FileSystem; import haxe.io.Path; import funkin.github.GitHubRelease; diff --git a/source/funkin/utils/CoolUtil.hx b/source/funkin/utils/CoolUtil.hx index 150dd7d3..a6966533 100644 --- a/source/funkin/utils/CoolUtil.hx +++ b/source/funkin/utils/CoolUtil.hx @@ -193,6 +193,8 @@ class CoolUtil case CONFIRM: 'menu/confirm'; case CANCEL: 'menu/cancel'; case SCROLL: 'menu/scroll'; + case CHECKED: 'menu/checkboxChecked'; + case UNCHECKED: 'menu/checkboxUnchecked'; default: 'menu/scroll'; }), volume); } @@ -413,4 +415,6 @@ enum abstract CoolSfx(Int) from Int { var SCROLL = 0; var CONFIRM = 1; var CANCEL = 2; + var CHECKED = 3; + var UNCHECKED = 4; } \ No newline at end of file