beatsPerMeasure

This commit is contained in:
lunarcleint
2023-11-19 15:00:31 -07:00
parent f286434eb3
commit a033e92476
11 changed files with 40 additions and 40 deletions
@@ -41,14 +41,14 @@ class BaseGameParser {
result.meta.needsVoices = data.needsVoices.getDefault(true);
var camFocusedBF:Bool = false;
var beatsPerMesure:Float = data.beatsPerMesure.getDefault(4);
var beatsPerMeasure:Float = data.beatsPerMeasure.getDefault(4);
var curBPM:Float = data.bpm;
var curTime:Float = 0;
var curCrochet:Float = ((60 / curBPM) * 1000);
if (data.notes != null) for(section in data.notes) {
if (section == null) {
curTime += curCrochet * beatsPerMesure;
curTime += curCrochet * beatsPerMeasure;
continue; // Yoshi Engine charts crash fix
}
@@ -96,7 +96,7 @@ class BaseGameParser {
});
}
curTime += curCrochet * beatsPerMesure;
curTime += curCrochet * beatsPerMeasure;
}
}
}
@@ -118,7 +118,7 @@ typedef SwagSong =
// ADDITIONAL STUFF THAT MAY NOT BE PRESENT IN CHART
var ?maxHealth:Float;
var ?beatsPerMesure:Float;
var ?beatsPerMeasure:Float;
var ?stepsPerBeat:Float;
}
+1 -1
View File
@@ -42,7 +42,7 @@ class Chart {
bpm: 100
};
data.setFieldDefault("name", songName);
data.setFieldDefault("beatsPerMesure", 4);
data.setFieldDefault("beatsPerMeasure", 4);
data.setFieldDefault("stepsPerBeat", 4);
data.setFieldDefault("needsVoices", true);
data.setFieldDefault("icon", "face");
+1 -1
View File
@@ -18,7 +18,7 @@ typedef ChartMetaData = {
public var name:String;
public var ?bpm:Float;
public var ?displayName:String;
public var ?beatsPerMesure:Float;
public var ?beatsPerMeasure:Float;
public var ?stepsPerBeat:Float;
public var ?needsVoices:Bool;
public var ?icon:String;
+6 -6
View File
@@ -47,7 +47,7 @@ class Conductor
/**
* Number of beats per mesure (top number in time signature). Defaults to 4.
*/
public static var beatsPerMesure:Float = 4;
public static var beatsPerMeasure:Float = 4;
/**
* Number of steps per beat (bottom number in time signature). Defaults to 4.
@@ -120,7 +120,7 @@ class Conductor
public static function setupSong(SONG:ChartData) {
reset();
mapBPMChanges(SONG);
changeBPM(SONG.meta.bpm, cast SONG.meta.beatsPerMesure.getDefault(4), cast SONG.meta.stepsPerBeat.getDefault(4));
changeBPM(SONG.meta.bpm, cast SONG.meta.beatsPerMeasure.getDefault(4), cast SONG.meta.stepsPerBeat.getDefault(4));
}
/**
* Maps BPM changes from a song.
@@ -209,7 +209,7 @@ class Conductor
curStepFloat = __lastChange.stepTime + ((Conductor.songPosition - __lastChange.songTime) / Conductor.stepCrochet);
curBeatFloat = curStepFloat / stepsPerBeat;
curMeasureFloat = curBeatFloat / beatsPerMesure;
curMeasureFloat = curBeatFloat / beatsPerMeasure;
var oldStep = curStep;
var oldBeat = curBeat;
@@ -265,14 +265,14 @@ class Conductor
}
}
public static function changeBPM(newBpm:Float, beatsPerMesure:Float = 4, stepsPerBeat:Float = 4)
public static function changeBPM(newBpm:Float, beatsPerMeasure:Float = 4, stepsPerBeat:Float = 4)
{
bpm = newBpm;
crochet = ((60 / bpm) * 1000);
stepCrochet = crochet / stepsPerBeat;
Conductor.beatsPerMesure = beatsPerMesure;
Conductor.beatsPerMeasure = beatsPerMeasure;
Conductor.stepsPerBeat = stepsPerBeat;
onBPMChange.dispatch(bpm);
@@ -307,7 +307,7 @@ class Conductor
}
public static inline function getMeasureLength()
return stepsPerBeat * beatsPerMesure;
return stepsPerBeat * beatsPerMeasure;
public static inline function getMeasuresLength() {
if (FlxG.sound.music == null) return 0.0;
@@ -13,7 +13,7 @@ class ConductorInfo extends FramerateCategory {
_text += '\n - ${Conductor.curStep} steps';
_text += '\n - ${Conductor.curMeasure} measures';
_text += '\nCurrent BPM: ${Conductor.bpm}';
_text += '\nTime Signature: ${Conductor.beatsPerMesure}/${Conductor.stepsPerBeat}';
_text += '\nTime Signature: ${Conductor.beatsPerMeasure}/${Conductor.stepsPerBeat}';
this.text.text = _text;
super.__enterFrame(t);
+3 -3
View File
@@ -268,16 +268,16 @@ class CoolUtil
]);
var timeSignParsed:Array<Null<Float>> = musicInfo["TimeSignature"] == null ? [] : [for(s in musicInfo["TimeSignature"].split("/")) Std.parseFloat(s)];
var beatsPerMesure:Float = 4;
var beatsPerMeasure:Float = 4;
var stepsPerBeat:Float = 4;
if (timeSignParsed.length == 2 && !timeSignParsed.contains(null)) {
beatsPerMesure = timeSignParsed[0] == null || timeSignParsed[0] <= 0 ? 4 : cast timeSignParsed[0];
beatsPerMeasure = timeSignParsed[0] == null || timeSignParsed[0] <= 0 ? 4 : cast timeSignParsed[0];
stepsPerBeat = timeSignParsed[1] == null || timeSignParsed[1] <= 0 ? 4 : cast timeSignParsed[1];
}
var parsedBPM:Null<Float> = Std.parseFloat(musicInfo["BPM"]);
Conductor.changeBPM(parsedBPM == null ? DefaultBPM : parsedBPM, beatsPerMesure, stepsPerBeat);
Conductor.changeBPM(parsedBPM == null ? DefaultBPM : parsedBPM, beatsPerMeasure, stepsPerBeat);
} else
Conductor.changeBPM(DefaultBPM);
}
+4 -4
View File
@@ -1063,7 +1063,7 @@ class Charter extends UIState {
+ '\nBeat: ${curBeat}'
+ '\nMeasure: ${curMeasure}'
+ '\nBPM: ${Conductor.bpm}'
+ '\nTime Signature: ${Conductor.beatsPerMesure}/${Conductor.stepsPerBeat}';
+ '\nTime Signature: ${Conductor.beatsPerMeasure}/${Conductor.stepsPerBeat}';
if (charterCamera.zoom != (charterCamera.zoom = lerp(charterCamera.zoom, __camZoom, 0.125)))
updateDisplaySprites();
@@ -1337,11 +1337,11 @@ class Charter extends UIState {
}
function _playback_back(_) {
if (FlxG.sound.music.playing) return;
Conductor.songPosition -= (Conductor.beatsPerMesure * __crochet);
Conductor.songPosition -= (Conductor.beatsPerMeasure * __crochet);
}
function _playback_forward(_) {
if (FlxG.sound.music.playing) return;
Conductor.songPosition += (Conductor.beatsPerMesure * __crochet);
Conductor.songPosition += (Conductor.beatsPerMeasure * __crochet);
}
function _song_start(_) {
if (FlxG.sound.music.playing) return;
@@ -1462,7 +1462,7 @@ class Charter extends UIState {
buildEvents();
Conductor.mapBPMChanges(PlayState.SONG);
Conductor.changeBPM(PlayState.SONG.meta.bpm, cast PlayState.SONG.meta.beatsPerMesure.getDefault(4), cast PlayState.SONG.meta.stepsPerBeat.getDefault(4));
Conductor.changeBPM(PlayState.SONG.meta.bpm, cast PlayState.SONG.meta.beatsPerMeasure.getDefault(4), cast PlayState.SONG.meta.stepsPerBeat.getDefault(4));
refreshBPMSensitive();
}
@@ -198,7 +198,7 @@ class CharterBackdrop extends FlxTypedGroup<Dynamic> {
spr.cameras = this.cameras;
}
sectionSeparator.spacing.y = (10 * Conductor.beatsPerMesure * Conductor.stepsPerBeat) - 1;
sectionSeparator.spacing.y = (10 * Conductor.beatsPerMeasure * Conductor.stepsPerBeat) - 1;
beatSeparator.spacing.y = (20 * Conductor.stepsPerBeat) - 1;
topLimit.scale.set(4 * 40, Math.ceil(FlxG.height / cameras[0].zoom));
@@ -281,7 +281,7 @@ class EventBackdrop extends FlxBackdrop {
public override function draw() {
super.draw();
eventSecSeparator.spacing.y = (10 * Conductor.beatsPerMesure * Conductor.stepsPerBeat) - 1;
eventSecSeparator.spacing.y = (10 * Conductor.beatsPerMeasure * Conductor.stepsPerBeat) - 1;
eventBeatSeparator.spacing.y = (20 * Conductor.stepsPerBeat) - 1;
eventSecSeparator.cameras = cameras;
@@ -12,7 +12,7 @@ class MetaDataScreen extends UISubstateWindow {
public var songNameTextBox:UITextBox;
public var bpmStepper:UINumericStepper;
public var beatsPerMesureStepper:UINumericStepper;
public var beatsPerMeasureStepper:UINumericStepper;
public var stepsPerBeatStepper :UINumericStepper;
public var needsVoicesCheckbox:UICheckbox;
@@ -53,13 +53,13 @@ class MetaDataScreen extends UISubstateWindow {
add(bpmStepper);
addLabelOn(bpmStepper, "BPM");
beatsPerMesureStepper = new UINumericStepper(bpmStepper.x + 60 + 26, bpmStepper.y, metadata.beatsPerMesure, 1, 0, 1, null, 54);
add(beatsPerMesureStepper);
addLabelOn(beatsPerMesureStepper, "Time Signature");
beatsPerMeasureStepper = new UINumericStepper(bpmStepper.x + 60 + 26, bpmStepper.y, metadata.beatsPerMeasure, 1, 0, 1, null, 54);
add(beatsPerMeasureStepper);
addLabelOn(beatsPerMeasureStepper, "Time Signature");
add(new UIText(beatsPerMesureStepper.x + 30, beatsPerMesureStepper.y + 3, 0, "/", 22));
add(new UIText(beatsPerMeasureStepper.x + 30, beatsPerMeasureStepper.y + 3, 0, "/", 22));
stepsPerBeatStepper = new UINumericStepper(beatsPerMesureStepper.x + 30 + 24, beatsPerMesureStepper.y, metadata.stepsPerBeat, 1, 0, 1, null, 54);
stepsPerBeatStepper = new UINumericStepper(beatsPerMeasureStepper.x + 30 + 24, beatsPerMeasureStepper.y, metadata.stepsPerBeat, 1, 0, 1, null, 54);
add(stepsPerBeatStepper);
needsVoicesCheckbox = new UICheckbox(stepsPerBeatStepper.x + 80 + 26, stepsPerBeatStepper.y, "Voices", metadata.needsVoices);
@@ -135,13 +135,13 @@ class MetaDataScreen extends UISubstateWindow {
}
public function saveMeta() {
for (stepper in [bpmStepper, beatsPerMesureStepper, stepsPerBeatStepper])
for (stepper in [bpmStepper, beatsPerMeasureStepper, stepsPerBeatStepper])
@:privateAccess stepper.__onChange(stepper.label.text);
PlayState.SONG.meta = {
name: songNameTextBox.label.text,
bpm: bpmStepper.value,
beatsPerMesure: Std.int(beatsPerMesureStepper.value),
beatsPerMeasure: Std.int(beatsPerMeasureStepper.value),
stepsPerBeat: Std.int(stepsPerBeatStepper.value),
needsVoices: needsVoicesCheckbox.checked,
displayName: displayNameTextBox.label.text,
@@ -17,7 +17,7 @@ class SongCreationScreen extends UISubstateWindow {
public var songNameTextBox:UITextBox;
public var bpmStepper:UINumericStepper;
public var beatsPerMesureStepper:UINumericStepper;
public var beatsPerMeasureStepper:UINumericStepper;
public var stepsPerBeatStepper :UINumericStepper;
public var needsVoicesCheckbox:UICheckbox;
public var instExplorer:UIFileExplorer;
@@ -72,13 +72,13 @@ class SongCreationScreen extends UISubstateWindow {
songDataGroup.add(bpmStepper);
addLabelOn(bpmStepper, "BPM");
beatsPerMesureStepper = new UINumericStepper(bpmStepper.x + 60 + 26, bpmStepper.y, 4, 1, 0, 1, null, 54);
songDataGroup.add(beatsPerMesureStepper);
addLabelOn(beatsPerMesureStepper, "Time Signature");
beatsPerMeasureStepper = new UINumericStepper(bpmStepper.x + 60 + 26, bpmStepper.y, 4, 1, 0, 1, null, 54);
songDataGroup.add(beatsPerMeasureStepper);
addLabelOn(beatsPerMeasureStepper, "Time Signature");
songDataGroup.add(new UIText(beatsPerMesureStepper.x + 30, beatsPerMesureStepper.y + 3, 0, "/", 22));
songDataGroup.add(new UIText(beatsPerMeasureStepper.x + 30, beatsPerMeasureStepper.y + 3, 0, "/", 22));
stepsPerBeatStepper = new UINumericStepper(beatsPerMesureStepper.x + 30 + 24, beatsPerMesureStepper.y, 4, 1, 0, 1, null, 54);
stepsPerBeatStepper = new UINumericStepper(beatsPerMeasureStepper.x + 30 + 24, beatsPerMeasureStepper.y, 4, 1, 0, 1, null, 54);
songDataGroup.add(stepsPerBeatStepper);
var voicesUIText:UIText = null;
@@ -250,13 +250,13 @@ class SongCreationScreen extends UISubstateWindow {
}
function saveSongInfo() {
for (stepper in [bpmStepper, beatsPerMesureStepper, stepsPerBeatStepper])
for (stepper in [bpmStepper, beatsPerMeasureStepper, stepsPerBeatStepper])
@:privateAccess stepper.__onChange(stepper.label.text);
var meta:ChartMetaData = {
name: songNameTextBox.label.text,
bpm: bpmStepper.value,
beatsPerMesure: Std.int(beatsPerMesureStepper.value),
beatsPerMeasure: Std.int(beatsPerMeasureStepper.value),
stepsPerBeat: Std.int(stepsPerBeatStepper.value),
needsVoices: needsVoicesCheckbox.checked,
displayName: displayNameTextBox.label.text,
+2 -2
View File
@@ -943,9 +943,9 @@ class PlayState extends MusicBeatState
return FlxSort.byValues(FlxSort.DESCENDING, p1.time, p2.time);
});
camZoomingInterval = cast songData.meta.beatsPerMesure.getDefault(4);
camZoomingInterval = cast songData.meta.beatsPerMeasure.getDefault(4);
Conductor.changeBPM(songData.meta.bpm, cast songData.meta.beatsPerMesure.getDefault(4), cast songData.meta.stepsPerBeat.getDefault(4));
Conductor.changeBPM(songData.meta.bpm, cast songData.meta.beatsPerMeasure.getDefault(4), cast songData.meta.stepsPerBeat.getDefault(4));
curSong = songData.meta.name.toLowerCase();