mirror of
https://github.com/FunkinCrew/Funkin.git
synced 2025-02-19 13:14:55 -05:00
player char select
This commit is contained in:
parent
181e3f85b8
commit
9ffffe9c8a
1 changed files with 74 additions and 56 deletions
|
@ -2089,68 +2089,86 @@ class ChartEditorState extends UIState // UIState derives from MusicBeatState
|
||||||
healthIconBF.zIndex = 30;
|
healthIconBF.zIndex = 30;
|
||||||
|
|
||||||
FlxMouseEvent.add(healthIconDad, function(_) {
|
FlxMouseEvent.add(healthIconDad, function(_) {
|
||||||
trace("clicked dad");
|
createAndOpenCharSelect(1);
|
||||||
|
|
||||||
var toolbox:CollapsibleDialog = cast haxe.ui.RuntimeComponentBuilder.fromAsset(Paths.ui('chart-editor/toolbox/iconselector'));
|
|
||||||
toolbox.showDialog(false);
|
|
||||||
var scrollView = toolbox.findComponent('charSelectScroll');
|
|
||||||
|
|
||||||
var hbox = new Grid();
|
|
||||||
hbox.columns = 5;
|
|
||||||
hbox.width = 100;
|
|
||||||
scrollView.addComponent(hbox);
|
|
||||||
|
|
||||||
var charIds:Array<String> = CharacterDataParser.listCharacterIds();
|
|
||||||
|
|
||||||
charIds.sort(function(a, b) {
|
|
||||||
var result:Int = 0;
|
|
||||||
|
|
||||||
if (a < b)
|
|
||||||
{
|
|
||||||
result = -1;
|
|
||||||
}
|
|
||||||
else if (a > b)
|
|
||||||
{
|
|
||||||
result = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
return result;
|
|
||||||
});
|
|
||||||
|
|
||||||
for (char in charIds)
|
|
||||||
{
|
|
||||||
var image = new haxe.ui.components.Button();
|
|
||||||
image.width = 70;
|
|
||||||
image.height = 70;
|
|
||||||
|
|
||||||
if (char == currentSongMetadata.playData.characters.opponent) image.selected = true;
|
|
||||||
|
|
||||||
image.icon = CharacterDataParser.getCharPixelIconAsset(char);
|
|
||||||
image.onClick = _ -> {
|
|
||||||
healthIconsDirty = true;
|
|
||||||
currentSongMetadata.playData.characters.opponent = char;
|
|
||||||
toolbox.hideDialog(haxe.ui.containers.dialogs.Dialog.DialogButton.APPLY);
|
|
||||||
|
|
||||||
// var label = toolbox.findComponent('charIconName');
|
|
||||||
// label.text = char;
|
|
||||||
};
|
|
||||||
|
|
||||||
image.onMouseOver = _ -> {
|
|
||||||
var label = toolbox.findComponent('charIconName');
|
|
||||||
label.text = char;
|
|
||||||
};
|
|
||||||
hbox.addComponent(image);
|
|
||||||
}
|
|
||||||
|
|
||||||
toolbox.x = FlxG.mouse.screenX;
|
|
||||||
toolbox.y = FlxG.mouse.screenY;
|
|
||||||
});
|
});
|
||||||
|
|
||||||
FlxMouseEvent.add(healthIconBF, function(_) {
|
FlxMouseEvent.add(healthIconBF, function(_) {
|
||||||
trace("clicked bf");
|
createAndOpenCharSelect(0);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param charType 0 == BF, 1 == Dad
|
||||||
|
*/
|
||||||
|
function createAndOpenCharSelect(charType:Int = 0):Void
|
||||||
|
{
|
||||||
|
var charData = currentSongMetadata.playData.characters;
|
||||||
|
var currentChar:String = switch (charType)
|
||||||
|
{
|
||||||
|
case 0: charData.player;
|
||||||
|
case 1: charData.opponent;
|
||||||
|
default: throw 'Invalid charType: ' + charType;
|
||||||
|
};
|
||||||
|
var toolbox:CollapsibleDialog = cast haxe.ui.RuntimeComponentBuilder.fromAsset(Paths.ui('chart-editor/toolbox/iconselector'));
|
||||||
|
toolbox.showDialog(false);
|
||||||
|
var scrollView = toolbox.findComponent('charSelectScroll');
|
||||||
|
|
||||||
|
var hbox = new Grid();
|
||||||
|
hbox.columns = 5;
|
||||||
|
hbox.width = 100;
|
||||||
|
scrollView.addComponent(hbox);
|
||||||
|
|
||||||
|
var charIds:Array<String> = CharacterDataParser.listCharacterIds();
|
||||||
|
|
||||||
|
charIds.sort(function(a, b) {
|
||||||
|
var result:Int = 0;
|
||||||
|
|
||||||
|
if (a < b)
|
||||||
|
{
|
||||||
|
result = -1;
|
||||||
|
}
|
||||||
|
else if (a > b)
|
||||||
|
{
|
||||||
|
result = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
});
|
||||||
|
|
||||||
|
for (char in charIds)
|
||||||
|
{
|
||||||
|
var image = new haxe.ui.components.Button();
|
||||||
|
image.width = 70;
|
||||||
|
image.height = 70;
|
||||||
|
|
||||||
|
if (char == currentChar) image.selected = true;
|
||||||
|
|
||||||
|
image.icon = CharacterDataParser.getCharPixelIconAsset(char);
|
||||||
|
image.onClick = _ -> {
|
||||||
|
healthIconsDirty = true;
|
||||||
|
switch (charType)
|
||||||
|
{
|
||||||
|
case 0: currentSongMetadata.playData.characters.player = char;
|
||||||
|
case 1: currentSongMetadata.playData.characters.opponent = char;
|
||||||
|
default: throw 'Invalid charType: ' + charType;
|
||||||
|
};
|
||||||
|
toolbox.hideDialog(haxe.ui.containers.dialogs.Dialog.DialogButton.APPLY);
|
||||||
|
|
||||||
|
// var label = toolbox.findComponent('charIconName');
|
||||||
|
// label.text = char;
|
||||||
|
};
|
||||||
|
|
||||||
|
image.onMouseOver = _ -> {
|
||||||
|
var label = toolbox.findComponent('charIconName');
|
||||||
|
label.text = char;
|
||||||
|
};
|
||||||
|
hbox.addComponent(image);
|
||||||
|
}
|
||||||
|
|
||||||
|
toolbox.x = FlxG.mouse.screenX;
|
||||||
|
toolbox.y = FlxG.mouse.screenY;
|
||||||
|
}
|
||||||
|
|
||||||
function buildNotePreview():Void
|
function buildNotePreview():Void
|
||||||
{
|
{
|
||||||
var height:Int = FlxG.height - MENU_BAR_HEIGHT - GRID_TOP_PAD - PLAYBAR_HEIGHT - GRID_TOP_PAD - GRID_TOP_PAD;
|
var height:Int = FlxG.height - MENU_BAR_HEIGHT - GRID_TOP_PAD - PLAYBAR_HEIGHT - GRID_TOP_PAD - GRID_TOP_PAD;
|
||||||
|
|
Loading…
Reference in a new issue