@@ -25,6 +25,8 @@ import flixel.FlxBasic;
25
25
import flixel .FlxCamera ;
26
26
import flixel .FlxG ;
27
27
28
+ using StringTools ;
29
+
28
30
class ModchartState
29
31
{
30
32
// public static var shaders:Array<LuaShader> = null;
@@ -527,6 +529,11 @@ class ModchartState
527
529
return PlayState .instance .notes .members .length ;
528
530
});
529
531
532
+ Lua_helper .add_callback (lua , " setScrollSpeed" , function (mult : Float , time : Float , ? ease : String )
533
+ {
534
+ PlayState .instance .setScrollSpeed (mult , time , getFlxEaseByString (ease ));
535
+ });
536
+
530
537
for (i in 0 ... PlayState .strumLineNotes .length )
531
538
{
532
539
var member = PlayState .strumLineNotes .members [i ];
@@ -547,5 +554,85 @@ class ModchartState
547
554
{
548
555
return new ModchartState (isStoryMode );
549
556
}
557
+
558
+ function getFlxEaseByString (? ease : String = ' ' )
559
+ {
560
+ switch (ease .toLowerCase ().trim ())
561
+ {
562
+ case ' backin' :
563
+ return FlxEase .backIn ;
564
+ case ' backinout' :
565
+ return FlxEase .backInOut ;
566
+ case ' backout' :
567
+ return FlxEase .backOut ;
568
+ case ' bouncein' :
569
+ return FlxEase .bounceIn ;
570
+ case ' bounceinout' :
571
+ return FlxEase .bounceInOut ;
572
+ case ' bounceout' :
573
+ return FlxEase .bounceOut ;
574
+ case ' circin' :
575
+ return FlxEase .circIn ;
576
+ case ' circinout' :
577
+ return FlxEase .circInOut ;
578
+ case ' circout' :
579
+ return FlxEase .circOut ;
580
+ case ' cubein' :
581
+ return FlxEase .cubeIn ;
582
+ case ' cubeinout' :
583
+ return FlxEase .cubeInOut ;
584
+ case ' cubeout' :
585
+ return FlxEase .cubeOut ;
586
+ case ' elasticin' :
587
+ return FlxEase .elasticIn ;
588
+ case ' elasticinout' :
589
+ return FlxEase .elasticInOut ;
590
+ case ' elasticout' :
591
+ return FlxEase .elasticOut ;
592
+ case ' expoin' :
593
+ return FlxEase .expoIn ;
594
+ case ' expoinout' :
595
+ return FlxEase .expoInOut ;
596
+ case ' expoout' :
597
+ return FlxEase .expoOut ;
598
+ case ' quadin' :
599
+ return FlxEase .quadIn ;
600
+ case ' quadinout' :
601
+ return FlxEase .quadInOut ;
602
+ case ' quadout' :
603
+ return FlxEase .quadOut ;
604
+ case ' quartin' :
605
+ return FlxEase .quartIn ;
606
+ case ' quartinout' :
607
+ return FlxEase .quartInOut ;
608
+ case ' quartout' :
609
+ return FlxEase .quartOut ;
610
+ case ' quintin' :
611
+ return FlxEase .quintIn ;
612
+ case ' quintinout' :
613
+ return FlxEase .quintInOut ;
614
+ case ' quintout' :
615
+ return FlxEase .quintOut ;
616
+ case ' sinein' :
617
+ return FlxEase .sineIn ;
618
+ case ' sineinout' :
619
+ return FlxEase .sineInOut ;
620
+ case ' sineout' :
621
+ return FlxEase .sineOut ;
622
+ case ' smoothstepin' :
623
+ return FlxEase .smoothStepIn ;
624
+ case ' smoothstepinout' :
625
+ return FlxEase .smoothStepInOut ;
626
+ case ' smoothstepout' :
627
+ return FlxEase .smoothStepInOut ;
628
+ case ' smootherstepin' :
629
+ return FlxEase .smootherStepIn ;
630
+ case ' smootherstepinout' :
631
+ return FlxEase .smootherStepInOut ;
632
+ case ' smootherstepout' :
633
+ return FlxEase .smootherStepOut ;
634
+ }
635
+ return FlxEase .linear ;
636
+ }
550
637
}
551
638
#end
0 commit comments