From cb4a95678c1d90ec67a6f779b2cd71709c6beb79 Mon Sep 17 00:00:00 2001 From: TheZoroForce240 <86524550+TheZoroForce240@users.noreply.github.com> Date: Sun, 2 Feb 2025 09:48:11 +0000 Subject: [PATCH] Negative and decimal support for event numbers (and some other changes) --- .../event-icons/components/arrow-down.png | Bin 6292 -> 122 bytes .../event-icons/components/eventNums.png | Bin 168 -> 216 bytes .../event-icons/components/warning.png | Bin 7951 -> 125 bytes source/funkin/editors/charter/CharterEvent.hx | 56 +++++++++++------- 4 files changed, 36 insertions(+), 20 deletions(-) diff --git a/assets/images/editors/charter/event-icons/components/arrow-down.png b/assets/images/editors/charter/event-icons/components/arrow-down.png index b5e3ce87f66d9765527b40e8750cf14da1c5bcaf..749279c56fe110b1ddd2e5da07052ee783167a4e 100644 GIT binary patch delta 104 zcmbPYST#W+iHVtkfkEkm2p^E*3GfMV1=2w9|Ns9NFJ45QK0gu2VJr#q3ubV5b|VeQ zk@0kK45^4qPAEx8nBUNMWVu1e+LQ^=Oi9L83=9>g*-d2M+8zfP;pyt_f1 BA-n(p literal 6292 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 R^$O$-GuAiPE86cC{(m8k8dLxP diff --git a/assets/images/editors/charter/event-icons/components/eventNums.png b/assets/images/editors/charter/event-icons/components/eventNums.png index 53e7437d22595840590e6f15b29ef6976451dff5..3dd37e472fb7eacc0d67c53913e8558da0a06e51 100644 GIT binary patch literal 216 zcmeAS@N?(olHy`uVBq!ia0vp^9ze{_!VDxM&x)M|Qv3lvA+A6=G&J=8|NlS+kaXyq zPy%Ezmjw9*1Lv#ZmOuL_ za755^L4wAFH6hzvD}F4?47~haT7BN` zRQzopr0DAsZ)Bpeg literal 168 zcmeAS@N?(olHy`uVBq!ia0vp^HbBhI1SA-&XJsY=DW;MjzhDMN#wmZ-0eOj@E{-7; zjH2FK8JP`vrZCUl9scctzJQ;ofqssJN9l{B1q}OgYVX~<@FV95Tl*WeW#0-fyXP%1 z4Bmc)Cv|4nf9_8UKPH-6|9SD>p<2XK-b9B(EhXfDd_ Q_kx_@>FVdQ&MBb@0CY(_LjV8( diff --git a/assets/images/editors/charter/event-icons/components/warning.png b/assets/images/editors/charter/event-icons/components/warning.png index 3558e0a35fd630d2df4465e4af4d6460c861001f..d55cf52f2c198e41816277648df12bedf3b732f8 100644 GIT binary patch delta 107 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 diff --git a/source/funkin/editors/charter/CharterEvent.hx b/source/funkin/editors/charter/CharterEvent.hx index 0e2dc002..939082a6 100644 --- a/source/funkin/editors/charter/CharterEvent.hx +++ b/source/funkin/editors/charter/CharterEvent.hx @@ -217,7 +217,7 @@ class CharterEvent extends UISliceSprite implements ICharterSelectable { var group = generateEventIconWithDuration(event.params[1], "BPM Change Start"); group.members[0].y -= 2; - generateEventIconNumbers(group, Std.int(event.params[0]), 15); + generateEventIconNumbers(group, event.params[0], 15); if (Conductor.invalidEvents.contains(event)) generateEventIconWarning(group); return group; } else { @@ -235,7 +235,7 @@ class CharterEvent extends UISliceSprite implements ICharterSelectable { var group = new EventIconGroup(); group.add(generateDefaultIcon(event.name)); group.members[0].y -= 2; - generateEventIconNumbers(group, Std.int(event.params[0]), 15); + generateEventIconNumbers(group, event.params[0], 15); if (Conductor.invalidEvents.contains(event)) generateEventIconWarning(group); return group; } @@ -250,16 +250,12 @@ class CharterEvent extends UISliceSprite implements ICharterSelectable { return generateDefaultIcon(event.name); } - private static function generateEventIconNumbers(group:EventIconGroup, number:Int, y:Float) { - var numString = Std.string(number); - var offset = (16 - (numString.length*5))/2; - for (num in 0...numString.length) { - group.add({ - var num = new EventNumber(offset + num*5, y, Std.parseInt(numString.charAt(num)), EventNumber.ALIGN_CENTER); - num.active = false; - num; - }); - } + private static function generateEventIconNumbers(group:EventIconGroup, number:Float, y:Float) { + group.add({ + var num = new EventNumber(3, y, number, EventNumber.ALIGN_CENTER, 5); + num.active = false; + num; + }); } private static function generateEventIconWithDuration(duration:Float, startIcon:String, endIcon:String = "") { @@ -414,19 +410,39 @@ class EventNumber extends FlxSprite { public static inline final ALIGN_CENTER:Int = 1; public var digits:Array = []; + public static inline final FRAME_POINT:Int = 10; + public static inline final FRAME_NEGATIVE:Int = 11; public var align:Int = ALIGN_NORMAL; + public var spacing:Float = 6; - public function new(x:Float, y:Float, number:Int, ?align:Int = ALIGN_NORMAL) { + public function new(x:Float, y:Float, number:Float, ?align:Int = ALIGN_NORMAL, spacing:Float = 6, precision:Int = 3) { super(x, y); this.digits = []; this.align = align; + this.spacing = spacing; + + + if (number == 0) { this.digits.insert(0, 0); } else { - while (number > 0) { - this.digits.insert(0, number % 10); - number = Std.int(number / 10); + + var decimals:Float = FlxMath.roundDecimal(Math.abs(number % 1), precision); + if (decimals > 0) this.digits.insert(0, FRAME_POINT); + while(decimals > 0) { + this.digits.push(Math.floor(decimals * 10)); + decimals = FlxMath.roundDecimal((decimals * 10) % 1, precision); + } + + var ints = Std.int(Math.abs(number)); + while (ints > 0) { + this.digits.insert(0, ints % 10); + ints = Std.int(ints / 10); + } + + if (number < 0) { + this.digits.insert(0, FRAME_NEGATIVE); } } @@ -440,20 +456,20 @@ class EventNumber extends FlxSprite { override function draw() { var baseX = x; var offsetX = 0.0; - if(align == ALIGN_CENTER) offsetX = -(digits.length - 1) * frameWidth * Math.abs(scale.x) / 2; + if(align == ALIGN_CENTER) offsetX = -(digits.length - 1) * spacing * Math.abs(scale.x) / 2; x = baseX + offsetX; for (i in 0...digits.length) { frame = frames.frames[digits[i]]; super.draw(); - x += frameWidth * Math.abs(scale.x); + x += spacing * Math.abs(scale.x); } x = baseX; } public var numWidth(get, never):Float; private function get_numWidth():Float { - return Math.abs(scale.x) * frameWidth * digits.length; + return Math.abs(scale.x) * spacing * digits.length; } public var numHeight(get, never):Float; private function get_numHeight():Float { @@ -465,7 +481,7 @@ class EventNumber extends FlxSprite { var numHeight = this.numHeight; width = numWidth; height = numHeight; - offset.set(-0.5 * (numWidth - frameWidth * digits.length), -0.5 * (numHeight - frameHeight)); + offset.set(-0.5 * (numWidth - spacing * digits.length), -0.5 * (numHeight - frameHeight)); centerOrigin(); } } \ No newline at end of file