Merge branch 'Time-Signature-Changes' into new-conductor

# Conflicts:
#	.gitignore
#	source/funkin/backend/FunkinSprite.hx
#	source/funkin/backend/chart/ChartData.hx
#	source/funkin/backend/chart/EventsData.hx
#	source/funkin/backend/system/Conductor.hx
#	source/funkin/backend/utils/CoolUtil.hx
#	source/funkin/editors/charter/Charter.hx
#	source/funkin/editors/charter/CharterEvent.hx
#	source/funkin/editors/charter/CharterEventScreen.hx
#	source/funkin/editors/charter/CharterMetaDataScreen.hx
#	source/funkin/editors/charter/SongCreationScreen.hx
#	source/funkin/game/PlayState.hx
This commit is contained in:
Ralty
2025-07-16 19:27:05 +07:00
32 changed files with 1288 additions and 311 deletions
+3 -2
View File
@@ -173,13 +173,14 @@ class Character extends FunkinSprite implements IBeatReceiver implements IOffset
}
/**
* Whenever the character should dance on beat or not. Set to false for `gf`, since the dance animation is automatically handled by PlayState.
* Whenever the character should dance on beat or not.
*/
public var danceOnBeat:Bool = true;
public override function beatHit(curBeat:Int) {
scripts.call("beatHit", [curBeat]);
if (danceOnBeat && (curBeat + beatOffset) % beatInterval == 0 && !__lockAnimThisFrame)
if (skipNegativeBeats && curBeat < 0) return;
if (danceOnBeat && (curBeat + beatOffset) % (beatInterval * CoolUtil.maxInt(Math.floor(4 / Conductor.stepsPerBeat), 1)) == 0 && !__lockAnimThisFrame)
tryDance();
}
+21
View File
@@ -1064,7 +1064,13 @@ class PlayState extends MusicBeatState
executeEvent(e);
break;
}
];
if (!foundSigs) {
camZoomingInterval = 4;
camZoomingEvery = BEAT;
}
events.sort(function(p1, p2) {
return FlxSort.byValues(FlxSort.DESCENDING, p1.time, p2.time);
});
@@ -1319,6 +1325,15 @@ class PlayState extends MusicBeatState
if (canAccessDebugMenus && chartingMode && controls.DEV_ACCESS)
FlxG.switchState(new funkin.editors.charter.Charter(SONG.meta.name, difficulty, false));
if (Options.camZoomOnBeat && camZooming && FlxG.camera.zoom < maxCamZoom) {
var beat = Conductor.getBeats(camZoomingEvery, camZoomingInterval, camZoomingOffset);
if (camZoomingLastBeat != beat) {
camZoomingLastBeat = beat;
FlxG.camera.zoom += 0.015 * camZoomingStrength;
camHUD.zoom += 0.03 * camZoomingStrength;
}
}
if (doIconBop)
for (icon in iconArray)
if (icon.updateBump != null)
@@ -1540,6 +1555,12 @@ class PlayState extends MusicBeatState
case "Camera Modulo Change":
camZoomingInterval = event.params[0];
camZoomingStrength = event.params[1];
if (event.params[2] != null) camZoomingEvery = switch (event.params[2].toUpperCase()) {
case "STEP": STEP;
case "MEASURE": MEASURE;
default: BEAT;
}
if (event.params[3] != null) camZoomingOffset = event.params[3];
case "Camera Flash":
var camera:FlxCamera = event.params[3] == "camHUD" ? camHUD : camGame;