mirror of
https://github.com/ninjamuffin99/Funkin.git
synced 2024-12-29 08:16:58 +00:00
6e23041d8c
fix crash when spamming enter, force logo bump, compensate for missed beats with intro text (ex. when window being dragged)
63 lines
1.1 KiB
Haxe
63 lines
1.1 KiB
Haxe
package;
|
|
|
|
import Conductor.BPMChangeEvent;
|
|
import flixel.FlxG;
|
|
import flixel.FlxSubState;
|
|
|
|
class MusicBeatSubstate extends FlxSubState
|
|
{
|
|
public function new()
|
|
{
|
|
super();
|
|
}
|
|
|
|
private var curStep:Int = 0;
|
|
private var curBeat:Int = 0;
|
|
private var controls(get, never):Controls;
|
|
|
|
inline function get_controls():Controls
|
|
return PlayerSettings.player1.controls;
|
|
|
|
override function update(elapsed:Float)
|
|
{
|
|
//everyStep();
|
|
var oldStep:Int = curStep;
|
|
|
|
updateCurStep();
|
|
curBeat = Math.floor(curStep / 4);
|
|
|
|
if (oldStep != curStep && curStep >= 0)
|
|
stepHit();
|
|
|
|
|
|
super.update(elapsed);
|
|
}
|
|
|
|
private function updateCurStep():Void
|
|
{
|
|
var lastChange:BPMChangeEvent = {
|
|
stepTime: 0,
|
|
songTime: 0,
|
|
bpm: 0
|
|
}
|
|
for (i in 0...Conductor.bpmChangeMap.length)
|
|
{
|
|
if (Conductor.songPosition > Conductor.bpmChangeMap[i].songTime)
|
|
lastChange = Conductor.bpmChangeMap[i];
|
|
}
|
|
|
|
curStep = lastChange.stepTime + Math.floor((Conductor.songPosition - lastChange.songTime) / Conductor.stepCrochet);
|
|
}
|
|
|
|
public function stepHit():Void
|
|
{
|
|
if (curStep % 4 == 0)
|
|
beatHit();
|
|
}
|
|
|
|
public function beatHit():Void
|
|
{
|
|
//do literally nothing dumbass
|
|
}
|
|
}
|