From d8fbd959484733bcf238ea420310552e7a7c47d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=F0=9F=92=9C=20Rodney=2C=20An=20Imaginative=20Furball=20?= =?UTF-8?q?=F0=9F=92=99?= Date: Tue, 12 Aug 2025 18:26:51 -0400 Subject: [PATCH 1/2] Update CharterEvent.hx --- source/funkin/editors/charter/CharterEvent.hx | 140 ++++++++++++++---- 1 file changed, 115 insertions(+), 25 deletions(-) diff --git a/source/funkin/editors/charter/CharterEvent.hx b/source/funkin/editors/charter/CharterEvent.hx index 05b2a7e9b..c9c2faa3f 100644 --- a/source/funkin/editors/charter/CharterEvent.hx +++ b/source/funkin/editors/charter/CharterEvent.hx @@ -222,23 +222,113 @@ class CharterEvent extends UISliceSprite implements ICharterSelectable { } switch(event.name) { - case "Time Signature Change": - if(event.params != null && (event.params[0] >= 0 || event.params[1] >= 0)) { + case "Camera Movement": + // camera movement, use health icon + if(event.params != null) { + if (inMenu) { + var icon = getIconFromStrumline(event.params[0]); + if (icon != null) return icon; + } else { + var group = new EventIconGroup(); + var icon = getIconFromStrumline(event.params[0]); + if (icon != null) { + icon.x -= 8; + icon.y -= 8; + group.add(icon); + } + if (event.params[1] && event.params[3] != 'CLASSIC') + generateEventIconDurationArrow(group, event.params[2]); + return group; + } + } + + case "Camera Position": + if(event.params != null) { + if (!inMenu) { + var group = new EventIconGroup(); + group.add(generateDefaultIcon(event.name)); + if (event.params[2] && event.params[4] != 'CLASSIC') + generateEventIconDurationArrow(group, event.params[3]); + return group; + } + } + + case "Add Camera Zoom": + if(event.params != null) { + if (!inMenu) { + var group = new EventIconGroup(); + group.add(generateDefaultIcon(event.name)); + group.members[0].y -= 2; + generateEventIconNumbers(group, event.params[0]); + return group; + } + } + + case "Camera Bop": + if(event.params != null) { + if (!inMenu) { + var group = new EventIconGroup(); + group.add(generateDefaultIcon(event.name)); + group.members[0].y -= 2; + generateEventIconNumbers(group, event.params[0]); + return group; + } + } + + case "Camera Zoom": + if(event.params != null) { + if (!inMenu) { + var group = new EventIconGroup(); + group.add(generateDefaultIcon(event.name)); + if (event.params[0] && event.params[4] != 'CLASSIC') + generateEventIconDurationArrow(group, event.params[3]); + group.members[0].y -= 2; + generateEventIconNumbers(group, event.params[1]); + return group; + } + } + + case "Camera Modulo Change": + if(event.params != null) { + if (!inMenu) { + var group = new EventIconGroup(); + group.add(generateDefaultIcon(event.name)); + group.add({ // top + var num = new EventNumber(14, -1, event.params[0], EventNumber.ALIGN_CENTER); + num.active = false; + num; + }); + group.add({ // bottom + var num = new EventNumber(14, 10, event.params[1], EventNumber.ALIGN_CENTER); + num.active = false; + num; + }); + return group; + } + } + + case "Camera Flash": + if(event.params != null) { + if (!inMenu) { + var group = new EventIconGroup(); + group.add(generateDefaultIcon(event.name)); + generateEventIconDurationArrow(group, event.params[2]); + return group; + } + } + + case "BPM Change": + if(event.params != null && event.params[0] != null) { var group = new EventIconGroup(); group.add(generateDefaultIcon(event.name)); - group.add({ // top - var num = new EventNumber(9, -1, event.params[0], EventNumber.ALIGN_CENTER); - num.active = false; - num; - }); - group.add({ // bottom - var num = new EventNumber(9, 10, event.params[1], EventNumber.ALIGN_CENTER); - num.active = false; - num; - }); + if (!inMenu) { + group.members[0].y -= 2; + generateEventIconNumbers(group, event.params[0], 3); + } if (Conductor.invalidEvents.contains(event)) generateEventIconWarning(group); return group; } + case "Continuous BPM Change": if(event.params != null && event.params[1] != null) { var group = new EventIconGroup(); @@ -253,14 +343,21 @@ class CharterEvent extends UISliceSprite implements ICharterSelectable { } else { return generateDefaultIcon("BPM Change Start"); } - case "BPM Change": - if(event.params != null && event.params[0] != null) { + + case "Time Signature Change": + if(event.params != null && (event.params[0] >= 0 || event.params[1] >= 0)) { var group = new EventIconGroup(); group.add(generateDefaultIcon(event.name)); - if (!inMenu) { - group.members[0].y -= 2; - generateEventIconNumbers(group, event.params[0], 3); - } + group.add({ // top + var num = new EventNumber(9, -1, event.params[0], EventNumber.ALIGN_CENTER); + num.active = false; + num; + }); + group.add({ // bottom + var num = new EventNumber(9, 10, event.params[1], EventNumber.ALIGN_CENTER); + num.active = false; + num; + }); if (Conductor.invalidEvents.contains(event)) generateEventIconWarning(group); return group; } @@ -274,13 +371,6 @@ class CharterEvent extends UISliceSprite implements ICharterSelectable { generateEventIconNumbers(group, event.params[1]); return group; } - - case "Camera Movement": - // camera movement, use health icon - if(event.params != null) { - var icon = getIconFromStrumline(event.params[0]); - if(icon != null) return icon; - } } return generateDefaultIcon(event.name); } From 3220db1393326df72dc40328e09bfce32a89895f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=F0=9F=92=9C=20Rodney=2C=20An=20Imaginative=20Furball=20?= =?UTF-8?q?=F0=9F=92=99?= Date: Tue, 12 Aug 2025 18:32:56 -0400 Subject: [PATCH 2/2] :P --- source/funkin/backend/chart/EventsData.hx | 2 +- source/funkin/editors/charter/CharterEvent.hx | 4 ++-- source/funkin/game/PlayState.hx | 5 +++-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/source/funkin/backend/chart/EventsData.hx b/source/funkin/backend/chart/EventsData.hx index 7c4f9aece..6f8ace79b 100644 --- a/source/funkin/backend/chart/EventsData.hx +++ b/source/funkin/backend/chart/EventsData.hx @@ -66,7 +66,7 @@ class EventsData { {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']), + type: TDropDown(['SET', 'linear', 'back', 'bounce', 'circ', 'cube', 'elastic', 'expo', 'quad', 'quart', 'quint', 'sine', 'smoothStep', 'smootherStep']), defValue: "linear" }, { diff --git a/source/funkin/editors/charter/CharterEvent.hx b/source/funkin/editors/charter/CharterEvent.hx index c9c2faa3f..782110b45 100644 --- a/source/funkin/editors/charter/CharterEvent.hx +++ b/source/funkin/editors/charter/CharterEvent.hx @@ -231,7 +231,7 @@ class CharterEvent extends UISliceSprite implements ICharterSelectable { } else { var group = new EventIconGroup(); var icon = getIconFromStrumline(event.params[0]); - if (icon != null) { + if (icon != null) { // had to do this, otherwise the icon is offsetd down right for some reason :sob: icon.x -= 8; icon.y -= 8; group.add(icon); @@ -280,7 +280,7 @@ class CharterEvent extends UISliceSprite implements ICharterSelectable { if (!inMenu) { var group = new EventIconGroup(); group.add(generateDefaultIcon(event.name)); - if (event.params[0] && event.params[4] != 'CLASSIC') + if (event.params[0] && event.params[4] != 'SET') generateEventIconDurationArrow(group, event.params[3]); group.members[0].y -= 2; generateEventIconNumbers(group, event.params[1]); diff --git a/source/funkin/game/PlayState.hx b/source/funkin/game/PlayState.hx index 04be79819..d8525f85b 100644 --- a/source/funkin/game/PlayState.hx +++ b/source/funkin/game/PlayState.hx @@ -1590,10 +1590,11 @@ class PlayState extends MusicBeatState if (event.params[7] == true) finalZoom *= cam.zoom; if (event.params[0] == false) { - cam.zoom = finalZoom; + if (event.params[4] != "SET") + cam.zoom = finalZoom; if (cam == camHUD) defaultHudZoom = finalZoom; else defaultCamZoom = finalZoom; - } else + } else if (event.params[4] != null && event.params[4] != "SET") eventsTween.set(name, FlxTween.tween(cam, {zoom: finalZoom}, (Conductor.stepCrochet / 1000) * event.params[3], {ease: CoolUtil.flxeaseFromString(event.params[4], event.params[5]), onUpdate: function(_) { if (cam == camHUD) defaultHudZoom = cam.zoom; else defaultCamZoom = cam.zoom;