NEW EVENTS GUYS
|
After Width: | Height: | Size: 214 B |
|
Before Width: | Height: | Size: 209 B After Width: | Height: | Size: 221 B |
|
After Width: | Height: | Size: 218 B |
|
After Width: | Height: | Size: 221 B |
|
After Width: | Height: | Size: 198 B |
|
After Width: | Height: | Size: 217 B |
@@ -10,12 +10,45 @@ import funkin.backend.assets.Paths;
|
||||
using StringTools;
|
||||
|
||||
class EventsData {
|
||||
public static var defaultEventsList:Array<String> = ["HScript Call", "Camera Movement", "BPM Change", "Alt Animation Toggle"];
|
||||
public static var defaultEventsList:Array<String> = ["HScript Call", "Camera Movement", "Add Camera Zoom", "Camera Modulo Change", "Camera Flash", "BPM Change", "Scroll Speed Change", "Alt Animation Toggle", "Play Animation"];
|
||||
public static var defaultEventsParams:Map<String, Array<EventParamInfo>> = [
|
||||
"HScript Call" => [{name: "Function Name", type: TString, defValue: "myFunc"}, {name: "Function Parameters (String split with commas)", type: TString, defValue: ""}],
|
||||
"HScript Call" => [
|
||||
{name: "Function Name", type: TString, defValue: "myFunc"},
|
||||
{name: "Function Parameters (String split with commas)", type: TString, defValue: ""}
|
||||
],
|
||||
"Camera Movement" => [{name: "Camera Target", type: TStrumLine, defValue: 0}],
|
||||
"Add Camera Zoom" => [
|
||||
{name: "Amount", type: TFloat(-10, 10, 0.01, 2), defValue: 0.05},
|
||||
{name: "Camera", type: TDropDown(['camGame', 'camHUD']), defValue: "camGame"}
|
||||
],
|
||||
"Camera Modulo Change" => [
|
||||
{name: "Modulo Interval (Beats)", type: TInt(1, 9999999, 1), defValue: 4},
|
||||
{name: "Bump Strength", type: TFloat(0.1, 10, 0.01, 2), defValue: 1}
|
||||
],
|
||||
"Camera Flash" => [
|
||||
{name: "Reversed?", type: TBool, defValue: false},
|
||||
{name: "Color", type: TColorWheel, defValue: "#FFFFFF"},
|
||||
{name: "Time (Steps)", type: TFloat(0.25, 9999, 0.25, 2), defValue: 4},
|
||||
{name: "Camera", type: TDropDown(['camGame', 'camHUD']), defValue: "camHUD"}
|
||||
],
|
||||
"BPM Change" => [{name: "Target BPM", type: TFloat(1), defValue: 100}],
|
||||
"Scroll Speed Change" => [
|
||||
{name: "Tween Speed?", type: TBool, defValue: true},
|
||||
{name: "New Speed", type: TFloat(0.01, 99, 0.01, 2), defValue: 1.},
|
||||
{name: "Tween Time (Steps)", type: TFloat(0.25, 9999, 0.25, 2), defValue: 4},
|
||||
{
|
||||
name: "Tween Ease (ex: circ, quad, cube)",
|
||||
type: TDropDown(['linear', 'back', 'bounce', 'circ', 'cube', 'elastic', 'expo', 'quad', 'quart', 'quint', 'sine', 'smoothStep', 'smootherStep']),
|
||||
defValue: "linear"
|
||||
},
|
||||
{
|
||||
name: "Tween Type (ex: InOut)",
|
||||
type: TDropDown(['In', 'Out', 'InOut']),
|
||||
defValue: "In"
|
||||
}
|
||||
],
|
||||
"Alt Animation Toggle" => [{name: "Strumline", type: TStrumLine, defValue: 0}, {name: "Enable", type: TBool, defValue: true}],
|
||||
"Play Animation" => [{name: "Character", type: TStrumLine, defValue: 0}, {name: "Animation", type: TString, defValue: "animation"}],
|
||||
];
|
||||
|
||||
public static var eventsList:Array<String> = defaultEventsList.copy();
|
||||
@@ -89,7 +122,7 @@ typedef EventParamInfo = {
|
||||
enum EventParamType {
|
||||
TBool;
|
||||
TInt(?min:Int, ?max:Int, ?step:Float);
|
||||
TFloat(?min:Int, ?max:Int, ?step:Float, ?precision:Int);
|
||||
TFloat(?min:Float, ?max:Float, ?step:Float, ?precision:Int);
|
||||
TString;
|
||||
TStrumLine;
|
||||
TColorWheel;
|
||||
|
||||
@@ -598,6 +598,9 @@ class CoolUtil
|
||||
frontEnd.list.remove(music);
|
||||
frontEnd.music = music;
|
||||
}
|
||||
|
||||
public static inline function flxeaseFromString(mainEase:String, suffix:String)
|
||||
return Reflect.field(FlxEase, mainEase + (mainEase == "linear" ? "" : suffix));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1234,7 +1234,9 @@ class PlayState extends MusicBeatState
|
||||
scripts.event("postDraw", e);
|
||||
}
|
||||
|
||||
public function executeEvent(event:ChartEvent) {
|
||||
public var scrollSpeedTween:FlxTween = null;
|
||||
|
||||
public function executeEvent(event:ChartEvent) @:privateAccess {
|
||||
if (event == null) return;
|
||||
if (event.params == null) return;
|
||||
|
||||
@@ -1248,14 +1250,38 @@ class PlayState extends MusicBeatState
|
||||
case "Camera Movement":
|
||||
if (event.params[0] is Int)
|
||||
curCameraTarget = event.params[0];
|
||||
case "Add Camera Zoom":
|
||||
var camera:FlxCamera = event.params[1] == "camHUD" ? camHUD : camGame;
|
||||
camera.zoom += event.params[0];
|
||||
case "Camera Modulo Change":
|
||||
camZoomingInterval = event.params[0];
|
||||
camZoomingStrength = event.params[1];
|
||||
case "Camera Flash":
|
||||
var camera:FlxCamera = event.params[3] == "camHUD" ? camHUD : camGame;
|
||||
|
||||
if (event.params[0]) // reversed
|
||||
camera.fade(event.params[1], (Conductor.stepCrochet / 1000) * event.params[2], false, () -> {camera._fxFadeAlpha = 0;}, true);
|
||||
else // Not Reversed
|
||||
camera.flash(event.params[1], (Conductor.stepCrochet / 1000) * event.params[2], null, true);
|
||||
case "BPM Change": // automatically handled by conductor
|
||||
case "Scroll Speed Change":
|
||||
if (scrollSpeedTween != null) scrollSpeedTween.cancel();
|
||||
|
||||
if (event.params[0] == false)
|
||||
scrollSpeed = event.params[1];
|
||||
else
|
||||
scrollSpeedTween = FlxTween.tween(this, {scrollSpeed: event.params[1]}, (Conductor.stepCrochet / 1000) * event.params[2], {ease: CoolUtil.flxeaseFromString(event.params[3], event.params[4])});
|
||||
case "Alt Animation Toggle":
|
||||
if (event.params[0] is Int && event.params[1] is Bool) {
|
||||
var strLine = strumLines.members[event.params[0]];
|
||||
if (strLine != null)
|
||||
strLine.altAnim = cast event.params[1];
|
||||
}
|
||||
case "Unknown":
|
||||
case "Play Animation":
|
||||
if (strumLines.members[event.params[0]] != null && strumLines.members[event.params[0]].characters != null)
|
||||
for (char in strumLines.members[event.params[0]].characters)
|
||||
if (char != null) char.playAnim(event.params[1], event.params[2], null);
|
||||
case "Unknown": // nothing
|
||||
}
|
||||
}
|
||||
|
||||
|
||||