From 357815187f11cb7d65325b70ce59e1c78b8be4a8 Mon Sep 17 00:00:00 2001 From: lunarcleint <88809950+lunarcleint@users.noreply.github.com> Date: Mon, 18 Sep 2023 21:21:29 -0700 Subject: [PATCH] Finish update --- .../images/editors/charter/add-strumline.png | Bin 652 -> 5969 bytes .../images/editors/charter/lock-strumline.png | Bin 0 -> 3397 bytes assets/images/editors/new.png | Bin 652 -> 5596 bytes assets/images/editors/ui/context-icons.png | Bin 737 -> 1114 bytes assets/images/editors/warnings/error.png | Bin 0 -> 10845 bytes assets/images/editors/warnings/warning.png | Bin 1921 -> 8772 bytes .../editors/character/CharacterSelection.hx | 9 ++---- source/funkin/editors/charter/Charter.hx | 8 +++--- .../editors/charter/CharterSelection.hx | 27 +++++++++--------- .../editors/charter/CharterStrumline.hx | 14 +++++---- ...traButton.hx => CharterStrumlineButton.hx} | 4 +-- source/funkin/editors/ui/UIContextMenu.hx | 2 ++ source/funkin/editors/ui/UIWarningSubstate.hx | 2 +- source/funkin/options/type/NewOption.hx | 1 + 14 files changed, 34 insertions(+), 33 deletions(-) create mode 100644 assets/images/editors/charter/lock-strumline.png create mode 100644 assets/images/editors/warnings/error.png rename source/funkin/editors/charter/{CharterStrumlineExtraButton.hx => CharterStrumlineButton.hx} (91%) diff --git a/assets/images/editors/charter/add-strumline.png b/assets/images/editors/charter/add-strumline.png index d205c17ef58da963538144b3ad6c0fcf569adb70..d890a9a1e73c9c97781c4795afdd22491848b602 100644 GIT binary patch literal 5969 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 literal 652 zcmeAS@N?(olHy`uVBq!ia0vp^-XP4u1|%)~s$Kyp#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvNA9*$#}XrhE&A8o$cs%*g(Mb@`|LBU9tKM>2B#!p-`q} zo3yX{uK9Q5v+Sw*AQAmVDxZxC=Sr4d6^z_}r?x#Y^xJuBFBy}_xJ61liM}a!?eDf- zw6Tk`Kir|bn!j3VtBa)R`BKi3NXy@6#kXu-vT}{)!R;b$^EW?QJ(=zAhDx5rM(=NL zH~3|H|J$<-{hzOeo{O}c-eoi)*)~J(wZ38`!z5M(!i2-br+1A_B(7UrSt}{t^~AJd zONh+t50$+4q*s6ZuIqBO<*K!b|LPF2*N1|wtS2ty>sQZwCii@e*rI2LUMMb$>zg_C zbkdy;L-oyjP8ge|U4O9tVUVk2&%K8cf6`}8l{>LxzD%wVNzv%Jku!rK^>?<;Qc^d0R8eo^F!h|E9C~Qq*R3 z)8^zZBR?szdpu{mgN?OCk5*l-@mWA>w|Y0_w=2UI2-TGEq61@X?o~p z>BFzyxV$KyCf;M&t#?TfNTyR27yb# PlR=cHtDnm{r-UW|LplaR diff --git a/assets/images/editors/charter/lock-strumline.png b/assets/images/editors/charter/lock-strumline.png new file mode 100644 index 0000000000000000000000000000000000000000..0583bec202b8aafaa978dd7fdc63936a5bf12ecf GIT binary patch literal 3397 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 b00;m8000000Mb*F00000NkvXXu0mjfe^z+s literal 0 HcmV?d00001 diff --git a/assets/images/editors/new.png b/assets/images/editors/new.png index d205c17ef58da963538144b3ad6c0fcf569adb70..945c49e04578324be65fc1c26195b527301076f4 100644 GIT binary patch literal 5596 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 PlR=cHtDnm{r-UW|LplaR diff --git a/assets/images/editors/ui/context-icons.png b/assets/images/editors/ui/context-icons.png index 73b8ff97642017741a10ddc90ca6bce3fa29c9ca..7bf464486da3e6eeb6892501dd015dc75a996578 100644 GIT binary patch literal 1114 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 Hu0mjfybh3V diff --git a/source/funkin/editors/character/CharacterSelection.hx b/source/funkin/editors/character/CharacterSelection.hx index ae5e6635..9d1a60ed 100644 --- a/source/funkin/editors/character/CharacterSelection.hx +++ b/source/funkin/editors/character/CharacterSelection.hx @@ -27,13 +27,8 @@ class CharacterSelection extends EditorTreeMenu ]; list.insert(0, new NewOption("New Character", "New Character", function() { - openSubState(new UIWarningSubstate("New Character", "This feature isnt implemented yet", [ - { - label: "OK", - onClick: function(t) { - - } - } + openSubState(new UIWarningSubstate("New Character: Feature Not Implemented!", "This feature isnt implemented yet. Please wait for more cne updates to have this functional.\n\n\n- Codename Devs", [ + {label: "Ok", color: 0xFFFF0000, onClick: function(t) {}} ])); })); diff --git a/source/funkin/editors/charter/Charter.hx b/source/funkin/editors/charter/Charter.hx index a5207063..49ec899c 100644 --- a/source/funkin/editors/charter/Charter.hx +++ b/source/funkin/editors/charter/Charter.hx @@ -53,8 +53,8 @@ class Charter extends UIState { public var gridBackdropDummy:CharterBackdropDummy; public var strumlineInfoBG:FlxSprite; - public var strumlineAddButton:CharterStrumlineExtraButton; - public var strumlineLockButton:CharterStrumlineExtraButton; + public var strumlineAddButton:CharterStrumlineButton; + public var strumlineLockButton:CharterStrumlineButton; public var hitsound:FlxSound; public var metronome:FlxSound; @@ -378,10 +378,10 @@ class Charter extends UIState { strumlineInfoBG.y = 23; strumlineInfoBG.scrollFactor.set(); - strumlineAddButton = new CharterStrumlineExtraButton("editors/charter/add-strumline", "Create New"); + strumlineAddButton = new CharterStrumlineButton("editors/charter/add-strumline", "Create New"); strumlineAddButton.onClick = createStrumWithUI; - strumlineLockButton = new CharterStrumlineExtraButton("editors/charter/add-strumline", "Lock/Unlock"); + strumlineLockButton = new CharterStrumlineButton("editors/charter/lock-strumline", "Lock/Unlock"); strumlineLockButton.onClick = function () { if (strumLines != null) strumLines.draggable = !strumLines.draggable; }; diff --git a/source/funkin/editors/charter/CharterSelection.hx b/source/funkin/editors/charter/CharterSelection.hx index e7d2277f..d850b4aa 100644 --- a/source/funkin/editors/charter/CharterSelection.hx +++ b/source/funkin/editors/charter/CharterSelection.hx @@ -32,13 +32,8 @@ class CharterSelection extends EditorTreeMenu { }) ]; list.push(new NewOption("New Difficulty", "New Difficulty", function() { - openSubState(new UIWarningSubstate("New Difficulty", "This feature isnt implemented yet", [ - { - label: "OK", - onClick: function(t) { - - } - } + openSubState(new UIWarningSubstate("New Difficulty: Feature Not Implemented!", "This feature isnt implemented yet. Please wait for more cne updates to have this functional.\n\n\n- Codename Devs", [ + {label: "Ok", color: 0xFFFF0000, onClick: function(t) {}} ])); })); optionsTree.add(new OptionsScreen(s.name, "Select a difficulty to continue.", list)); @@ -91,6 +86,15 @@ class CharterSelection extends EditorTreeMenu { } public function saveSong(creation:SongCreationData) { + var songAlreadlyExsits:Bool = [for (s in freeplayList.songs) s.name.toLowerCase()].contains(creation.meta.name.toLowerCase().replace("-", " ")); + + if (songAlreadlyExsits) { + openSubState(new UIWarningSubstate("Creating Song: Error!", "The song you are trying to create alreadly exists, if you would like to override it delete the song first!", [ + {label: "Ok", color: 0xFFFF0000, onClick: function(t) {}} + ])); + return; + } + // Paths var songsDir:String = '${Paths.getAssetsRoot()}/songs/'; var songFolder:String = '$songsDir${creation.meta.name.replace("-", " ")}'; @@ -115,13 +119,8 @@ class CharterSelection extends EditorTreeMenu { }) ]; list.push(new NewOption("New Difficulty", "New Difficulty", function() { - openSubState(new UIWarningSubstate("New Difficulty", "This feature isnt implemented yet", [ - { - label: "OK", - onClick: function(t) { - - } - } + openSubState(new UIWarningSubstate("New Difficulty: Feature Not Implemented!", "This feature isnt implemented yet. Please wait for more cne updates to have this functional.\n\n\n- Codename Devs", [ + {label: "Ok", color: 0xFFFF0000, onClick: function(t) {}} ])); })); optionsTree.add(new OptionsScreen(creation.meta.name, "Select a difficulty to continue.", list)); diff --git a/source/funkin/editors/charter/CharterStrumline.hx b/source/funkin/editors/charter/CharterStrumline.hx index 0319bf7b..78fb0275 100644 --- a/source/funkin/editors/charter/CharterStrumline.hx +++ b/source/funkin/editors/charter/CharterStrumline.hx @@ -13,7 +13,7 @@ class CharterStrumline extends UISprite { public var draggingSprite:UISprite; public var healthIcon:HealthIcon; - public var button:CharterStrumlineButton; + public var button:CharterStrumlineOptions; public var draggable:Bool = false; public var dragging:Bool = false; @@ -47,7 +47,7 @@ class CharterStrumline extends UISprite { draggingSprite.cursor = BUTTON; members.push(draggingSprite); - button = new CharterStrumlineButton(this); + button = new CharterStrumlineOptions(this); members.push(button); } @@ -95,7 +95,7 @@ class CharterStrumline extends UISprite { } } -class CharterStrumlineButton extends UITopMenuButton { +class CharterStrumlineOptions extends UITopMenuButton { var strLine:CharterStrumline; public function new(parent:CharterStrumline) { super(0, 95, null, "Options ↓", []); @@ -132,13 +132,17 @@ class CharterStrumlineButton extends UITopMenuButton { label: "Edit", onSelect: function (_) { Charter.instance.editStrumline(strLine.strumLine); - } + }, + color: 0xFFFFFF00, + icon: 2 }, { label: "Delete", onSelect: function (_) { Charter.instance.deleteStrumlineFromData(strLine.strumLine); - } + }, + color: 0xFFFF0000, + icon: 3 } ]; super.openContextMenu(); diff --git a/source/funkin/editors/charter/CharterStrumlineExtraButton.hx b/source/funkin/editors/charter/CharterStrumlineButton.hx similarity index 91% rename from source/funkin/editors/charter/CharterStrumlineExtraButton.hx rename to source/funkin/editors/charter/CharterStrumlineButton.hx index 471aebe5..2cd156cf 100644 --- a/source/funkin/editors/charter/CharterStrumlineExtraButton.hx +++ b/source/funkin/editors/charter/CharterStrumlineButton.hx @@ -2,7 +2,7 @@ package funkin.editors.charter; import flixel.math.FlxPoint; -class CharterStrumlineExtraButton extends UISprite { +class CharterStrumlineButton extends UISprite { public var button:UISprite; public var text:UIText; @@ -30,7 +30,7 @@ class CharterStrumlineExtraButton extends UISprite { var buttonScale:FlxPoint = FlxPoint.get(0,0); public override function update(elapsed:Float) { - button.follow(this, ((40 * 4) - button.width) / 2, 18); + button.follow(this, ((40 * 4) - button.width) / 2, 24); text.follow(this, 0, 84); super.update(elapsed); diff --git a/source/funkin/editors/ui/UIContextMenu.hx b/source/funkin/editors/ui/UIContextMenu.hx index bf4d08fc..8a60a0ff 100644 --- a/source/funkin/editors/ui/UIContextMenu.hx +++ b/source/funkin/editors/ui/UIContextMenu.hx @@ -115,6 +115,7 @@ typedef UIContextMenuOption = { var ?keybind:Array; var ?keybinds:Array>; var ?keybindText:String; + var ?color:Int; var ?icon:Int; var ?onSelect:UIContextMenuOption->Void; var ?childs:Array; @@ -132,6 +133,7 @@ class UIContextMenuOptionSpr extends UISliceSprite { label = new UIText(20, 2, 0, option.label); this.option = option; this.parent = parent; + this.color = option.color; if (option.icon != null && option.icon > 0) { icon = new FlxSprite(0, 0).loadGraphic(Paths.image('editors/ui/context-icons'), true, 20, 20); diff --git a/source/funkin/editors/ui/UIWarningSubstate.hx b/source/funkin/editors/ui/UIWarningSubstate.hx index a67db6f9..cd1a70de 100644 --- a/source/funkin/editors/ui/UIWarningSubstate.hx +++ b/source/funkin/editors/ui/UIWarningSubstate.hx @@ -72,7 +72,7 @@ class UIWarningSubstate extends MusicBeatSubstate { var xPos = (FlxG.width - (30 + (170 * buttons.length))) / 2; for(k=>b in buttons) { - var button = new UIButton(xPos + 20 + (170 * k), spr.y + spr.bHeight - (42 + 16), b.label, function() { + var button = new UIButton(xPos + 20 + (170 * k), spr.y + spr.bHeight - (36 + 16), b.label, function() { b.onClick(this); close(); }, 160, 30); diff --git a/source/funkin/options/type/NewOption.hx b/source/funkin/options/type/NewOption.hx index bd7d1a14..e5c0f9eb 100644 --- a/source/funkin/options/type/NewOption.hx +++ b/source/funkin/options/type/NewOption.hx @@ -13,6 +13,7 @@ class NewOption extends TextOption { iconSpr = new FlxSprite().loadGraphic(Paths.image("editors/new")); iconSpr.setPosition(90 - iconSpr.width, (__text.height - iconSpr.height) / 2); + iconSpr.offset.set(20, -15); add(iconSpr); } } \ No newline at end of file