mirror of
https://github.com/FunkinCrew/Funkin.git
synced 2024-11-27 10:05:41 -05:00
6e23041d8c
fix crash when spamming enter, force logo bump, compensate for missed beats with intro text (ex. when window being dragged)
72 lines
1.4 KiB
Haxe
72 lines
1.4 KiB
Haxe
package;
|
|
|
|
import Conductor.BPMChangeEvent;
|
|
import flixel.FlxG;
|
|
import flixel.addons.transition.FlxTransitionableState;
|
|
import flixel.addons.ui.FlxUIState;
|
|
import flixel.math.FlxRect;
|
|
import flixel.util.FlxTimer;
|
|
|
|
class MusicBeatState extends FlxUIState
|
|
{
|
|
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 create()
|
|
{
|
|
if (transIn != null)
|
|
trace('reg ' + transIn.region);
|
|
|
|
super.create();
|
|
}
|
|
|
|
override function update(elapsed:Float)
|
|
{
|
|
//everyStep();
|
|
var oldStep:Int = curStep;
|
|
|
|
updateCurStep();
|
|
updateBeat();
|
|
|
|
if (oldStep != curStep && curStep >= 0)
|
|
stepHit();
|
|
|
|
super.update(elapsed);
|
|
}
|
|
|
|
private function updateBeat():Void
|
|
{
|
|
curBeat = Math.floor(curStep / 4);
|
|
}
|
|
|
|
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
|
|
}
|
|
}
|