mirror of
https://github.com/FunkinCrew/Funkin.git
synced 2025-07-29 15:30:10 -04:00
Album metadata
This commit is contained in:
parent
e83b88d320
commit
3e543cb54d
3 changed files with 54 additions and 0 deletions
source/funkin/ui/debug/charting
handlers
toolboxes
util
|
@ -648,6 +648,14 @@ class ChartEditorDialogHandler
|
|||
var startingValueNoteStyle = ChartEditorDropdowns.populateDropdownWithNoteStyles(inputNoteStyle, newSongMetadata.playData.noteStyle);
|
||||
inputNoteStyle.value = startingValueNoteStyle;
|
||||
|
||||
var inputAlbum:Null<DropDown> = dialog.findComponent('inputAlbum', DropDown);
|
||||
if (inputAlbum == null) throw 'Could not locate inputAlbum DropDown in Song Metadata dialog';
|
||||
inputAlbum.onChange = function(event:UIEvent) {
|
||||
if (event.data != null && event.data.id != null) newSongMetadata.playData.album = event.data.id;
|
||||
};
|
||||
var startingValueAlbum = ChartEditorDropdowns.populateDropdownWithAlbums(inputAlbum, newSongMetadata.playData.album);
|
||||
inputAlbum.value = startingValueAlbum;
|
||||
|
||||
var inputCharacterPlayer:Null<DropDown> = dialog.findComponent('inputCharacterPlayer', DropDown);
|
||||
if (inputCharacterPlayer == null) throw 'ChartEditorToolboxHandler.buildToolboxMetadataLayout() - Could not find inputCharacterPlayer component.';
|
||||
inputCharacterPlayer.onChange = function(event:UIEvent) {
|
||||
|
@ -1181,6 +1189,11 @@ class ChartEditorDialogHandler
|
|||
if (dialogNoteStyle == null) throw 'Could not locate dialogNoteStyle DropDown in Add Variation dialog';
|
||||
dialogNoteStyle.value = state.currentSongMetadata.playData.noteStyle;
|
||||
|
||||
var dialogAlbum:Null<DropDown> = dialog.findComponent('dialogAlbum', DropDown);
|
||||
if (dialogAlbum == null) throw 'Could not locate dialogAlbum DropDown in Add Variation dialog';
|
||||
var startingValueAlbum = ChartEditorDropdowns.populateDropdownWithAlbums(dialogAlbum, state.currentSongMetadata.playData.album);
|
||||
dialogAlbum.value = startingValueAlbum;
|
||||
|
||||
var dialogCharacterPlayer:Null<DropDown> = dialog.findComponent('dialogCharacterPlayer', DropDown);
|
||||
if (dialogCharacterPlayer == null) throw 'Could not locate dialogCharacterPlayer DropDown in Add Variation dialog';
|
||||
dialogCharacterPlayer.value = ChartEditorDropdowns.populateDropdownWithCharacters(dialogCharacterPlayer, CharacterType.BF,
|
||||
|
|
|
@ -32,6 +32,7 @@ class ChartEditorMetadataToolbox extends ChartEditorBaseToolbox
|
|||
var inputSongCharter:TextField;
|
||||
var inputStage:DropDown;
|
||||
var inputNoteStyle:DropDown;
|
||||
var inputAlbum:DropDown;
|
||||
var buttonCharacterPlayer:Button;
|
||||
var buttonCharacterGirlfriend:Button;
|
||||
var buttonCharacterOpponent:Button;
|
||||
|
@ -122,6 +123,17 @@ class ChartEditorMetadataToolbox extends ChartEditorBaseToolbox
|
|||
var startingValueNoteStyle = ChartEditorDropdowns.populateDropdownWithNoteStyles(inputNoteStyle, chartEditorState.currentSongMetadata.playData.noteStyle);
|
||||
inputNoteStyle.value = startingValueNoteStyle;
|
||||
|
||||
inputAlbum.onChange = function(event:UIEvent) {
|
||||
var valid:Bool = event.data != null && event.data.id != null;
|
||||
|
||||
if (valid)
|
||||
{
|
||||
chartEditorState.currentSongMetadata.playData.album = event.data.id;
|
||||
}
|
||||
};
|
||||
var startingValueAlbum = ChartEditorDropdowns.populateDropdownWithAlbums(inputAlbum, chartEditorState.currentSongMetadata.playData.album);
|
||||
inputAlbum.value = startingValueAlbum;
|
||||
|
||||
inputBPM.onChange = function(event:UIEvent) {
|
||||
if (event.value == null || event.value <= 0) return;
|
||||
|
||||
|
|
|
@ -8,6 +8,8 @@ import funkin.data.stage.StageRegistry;
|
|||
import funkin.play.character.CharacterData;
|
||||
import haxe.ui.components.DropDown;
|
||||
import funkin.play.stage.Stage;
|
||||
import funkin.ui.freeplay.Album;
|
||||
import funkin.data.freeplay.album.AlbumRegistry;
|
||||
import funkin.play.character.BaseCharacter.CharacterType;
|
||||
import funkin.data.event.SongEventRegistry;
|
||||
import funkin.play.character.CharacterData.CharacterDataParser;
|
||||
|
@ -244,6 +246,33 @@ class ChartEditorDropdowns
|
|||
|
||||
return returnValue;
|
||||
}
|
||||
|
||||
/**
|
||||
* Populate a dropdown with a list of albums.
|
||||
*/
|
||||
public static function populateDropdownWithAlbums(dropDown:DropDown, startingAlbumId:Null<String>):DropDownEntry
|
||||
{
|
||||
dropDown.dataSource.clear();
|
||||
|
||||
var albumIds:Array<String> = AlbumRegistry.instance.listEntryIds();
|
||||
|
||||
var returnValue:DropDownEntry = {id: "", text: "placeholder"};
|
||||
|
||||
for (albumId in albumIds)
|
||||
{
|
||||
var album:Null<Album> = AlbumRegistry.instance.fetchEntry(albumId);
|
||||
if (album == null) continue;
|
||||
|
||||
var value = {id: album.id, text: album.getAlbumName()};
|
||||
if (startingAlbumId == albumId) returnValue = value;
|
||||
|
||||
dropDown.dataSource.add(value);
|
||||
}
|
||||
|
||||
dropDown.dataSource.sort('text', ASCENDING);
|
||||
|
||||
return returnValue;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue