vslice bpm changes
This commit is contained in:
+19
-4
@@ -3,7 +3,7 @@ package funkin.backend.chart;
|
||||
import funkin.backend.chart.ChartData.ChartMetaData;
|
||||
|
||||
// These new structures are kinda a mess to port, i love and hate them at the same time; why the hell are every difficulty in the same file??? - Nex
|
||||
class BaseGameParser {
|
||||
class VSliceParser {
|
||||
public static function parseChart(data:Dynamic, metaData:Dynamic, events:Dynamic, result:ChartData) {
|
||||
// base fnf chart parsing
|
||||
var data:Array<SwagNote> = data;
|
||||
@@ -38,14 +38,14 @@ class BaseGameParser {
|
||||
});
|
||||
}
|
||||
|
||||
var firstTimeChange = metadata.timeChanges[0];
|
||||
result.meta.bpm = firstTimeChange.bpm;
|
||||
var timeChanges = metadata.timeChanges;
|
||||
result.meta.bpm = timeChanges[0].bpm;
|
||||
result.meta.needsVoices = true;
|
||||
|
||||
for (note in data)
|
||||
{
|
||||
var daNoteType:Null<Int> = null;
|
||||
if (note.k != null)
|
||||
if (note.k != null) // TODO: check if kind is alt maybe - Nex
|
||||
daNoteType = Chart.addNoteType(result, note.k);
|
||||
|
||||
var daNoteData:Int = Std.int(note.d % 8);
|
||||
@@ -59,6 +59,21 @@ class BaseGameParser {
|
||||
});
|
||||
}
|
||||
|
||||
var curBPM = result.meta.bpm;
|
||||
for (i in 1...timeChanges.length) // starting from 1 on purpose - Nex
|
||||
{
|
||||
var curChange = timeChanges[i];
|
||||
if (curBPM != curChange.bpm)
|
||||
{
|
||||
curBPM = curChange.bpm;
|
||||
result.events.push({
|
||||
time: curChange.t,
|
||||
name: "BPM Change",
|
||||
params: [curBPM]
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
for (event in events)
|
||||
{
|
||||
switch (event.e)
|
||||
@@ -3,7 +3,7 @@ package funkin.editors.charter;
|
||||
import flixel.group.FlxGroup;
|
||||
import flixel.text.FlxText.FlxTextFormat;
|
||||
import flixel.text.FlxText.FlxTextFormatMarkerPair;
|
||||
import funkin.backend.chart.BaseGameParser;
|
||||
import funkin.backend.chart.VSliceParser;
|
||||
import funkin.backend.chart.ChartData;
|
||||
import funkin.backend.utils.ZipUtil;
|
||||
import haxe.Json;
|
||||
@@ -415,10 +415,10 @@ class SongCreationScreen extends UISubstateWindow {
|
||||
displayName: vslicemeta.songName,
|
||||
icon: Flags.DEFAULT_HEALTH_ICON,
|
||||
color: "#FFFFFF",
|
||||
parsedColor: 0xFFFFFF,
|
||||
//parsedColor: 0xFFFFFF,
|
||||
opponentModeAllowed: true,
|
||||
coopAllowed: true,
|
||||
difficulties: difficulties,
|
||||
difficulties: difficulties
|
||||
};
|
||||
|
||||
if (onSave != null) onSave({
|
||||
@@ -445,7 +445,7 @@ class SongCreationScreen extends UISubstateWindow {
|
||||
codenameChart: true,
|
||||
fromMods: Paths.assetsTree.existsSpecific(chartPath, "TEXT", MODS)
|
||||
};
|
||||
BaseGameParser.parseChart(vsliceChartData, vslicemeta, vslicechart.events, base);
|
||||
VSliceParser.parseChart(vsliceChartData, vslicemeta, vslicechart.events, base);
|
||||
CoolUtil.safeSaveFile('$songFolder/charts/$diff.json', Json.stringify(base, Flags.JSON_PRETTY_PRINT));
|
||||
}
|
||||
#end
|
||||
|
||||
Reference in New Issue
Block a user