1
0
Fork 0
mirror of https://github.com/ninjamuffin99/Funkin.git synced 2025-11-26 06:09:02 +00:00

String works now

This commit is contained in:
lemz 2024-06-23 15:25:53 +02:00 committed by EliteMasterEric
parent 44d9785317
commit 492af8add4
2 changed files with 49 additions and 27 deletions

View file

@ -104,7 +104,7 @@ typedef NoteKindParamData =
*/ */
?precision:Null<Int>, ?precision:Null<Int>,
defaultValue:Dynamic ?defaultValue:Dynamic
} }
/** /**
@ -115,5 +115,5 @@ typedef NoteKindParam =
name:String, name:String,
description:String, description:String,
type:NoteKindParamType, type:NoteKindParamType,
data:NoteKindParamData ?data:NoteKindParamData
} }

View file

@ -10,6 +10,7 @@ import haxe.ui.events.UIEvent;
import funkin.ui.debug.charting.util.ChartEditorDropdowns; import funkin.ui.debug.charting.util.ChartEditorDropdowns;
import funkin.play.notes.notekind.NoteKindManager; import funkin.play.notes.notekind.NoteKindManager;
import funkin.play.notes.notekind.NoteKind.NoteKindParam; import funkin.play.notes.notekind.NoteKind.NoteKindParam;
import funkin.play.notes.notekind.NoteKind.NoteKindParamType;
import funkin.data.song.SongData.NoteParamData; import funkin.data.song.SongData.NoteParamData;
/** /**
@ -83,9 +84,7 @@ class ChartEditorNoteDataToolbox extends ChartEditorBaseToolbox
{ {
// Edit the note data of any selected notes. // Edit the note data of any selected notes.
note.kind = chartEditorState.noteKindToPlace; note.kind = chartEditorState.noteKindToPlace;
trace(note.params);
note.params = ChartEditorState.cloneNoteParams(chartEditorState.noteParamsToPlace); note.params = ChartEditorState.cloneNoteParams(chartEditorState.noteParamsToPlace);
trace(note.params);
// update note sprites // update note sprites
for (noteSprite in chartEditorState.renderedNotes.members) for (noteSprite in chartEditorState.renderedNotes.members)
@ -185,48 +184,71 @@ class ChartEditorNoteDataToolbox extends ChartEditorBaseToolbox
paramLabel.verticalAlign = "center"; paramLabel.verticalAlign = "center";
paramLabel.horizontalAlign = "right"; paramLabel.horizontalAlign = "right";
var paramStepper:NumberStepper = new NumberStepper(); var paramComponent:Component = null;
paramStepper.value = (setParamsToPlace ? chartEditorState.noteParamsToPlace[i].value : param.data.defaultValue);
paramStepper.percentWidth = 100;
paramStepper.step = param.data.step ?? 1;
// this check should be unnecessary but for some reason final paramType:String = param.type;
// even when these are null it will set it to 0 switch (paramType)
if (param.data.min != null)
{ {
paramStepper.min = param.data.min; case NoteKindParamType.INT | NoteKindParamType.FLOAT:
} var paramStepper:NumberStepper = new NumberStepper();
if (param.data.max != null) paramStepper.value = (setParamsToPlace ? chartEditorState.noteParamsToPlace[i].value : param.data?.defaultValue) ?? 0.0;
{ paramStepper.percentWidth = 100;
paramStepper.max = param.data.max; paramStepper.step = param.data?.step ?? 1;
}
if (param.data.precision != null) // this check should be unnecessary but for some reason
{ // even when these are null it will set it to 0
paramStepper.precision = param.data.precision; if (param.data?.min != null)
{
paramStepper.min = param.data.min;
}
if (param.data?.max != null)
{
paramStepper.max = param.data.max;
}
if (param.data?.precision != null)
{
paramStepper.precision = param.data.precision;
}
paramComponent = paramStepper;
case NoteKindParamType.STRING:
var paramTextField:TextField = new TextField();
paramTextField.value = (setParamsToPlace ? chartEditorState.noteParamsToPlace[i].value : param.data?.defaultValue) ?? '';
paramTextField.percentWidth = 100;
paramComponent = paramTextField;
} }
paramStepper.onChange = function(event:UIEvent) { if (paramComponent == null)
chartEditorState.noteParamsToPlace[i].value = paramStepper.value; {
continue;
}
paramComponent.onChange = function(event:UIEvent) {
chartEditorState.noteParamsToPlace[i].value = paramComponent.value;
for (note in chartEditorState.currentNoteSelection) for (note in chartEditorState.currentNoteSelection)
{ {
if (note.params.length != noteKindParams.length)
{
break;
}
if (note.params[i].name == param.name) if (note.params[i].name == param.name)
{ {
note.params[i].value = paramStepper.value; note.params[i].value = paramComponent.value;
trace(note.params[i]);
} }
} }
} }
addNoteKindParam(paramLabel, paramStepper); addNoteKindParam(paramLabel, paramComponent);
} }
if (!setParamsToPlace) if (!setParamsToPlace)
{ {
var noteParamData:Array<NoteParamData> = []; var noteParamData:Array<NoteParamData> = [];
for (param in noteKindParams) for (i in 0...noteKindParams.length)
{ {
noteParamData.push(new NoteParamData(param.name, param.data.defaultValue)); noteParamData.push(new NoteParamData(noteKindParams[i].name, toolboxNotesParams[i].component.value));
} }
chartEditorState.noteParamsToPlace = noteParamData; chartEditorState.noteParamsToPlace = noteParamData;
} }