From d3a681d55a7f1ff71f6e782c0f1d17dd157b1c51 Mon Sep 17 00:00:00 2001 From: Yoshman29 <81191621+YoshiCrafter29@users.noreply.github.com> Date: Wed, 22 Mar 2023 22:43:52 +0100 Subject: [PATCH] more playback stuff --- assets/sounds/editors/charter/metronome.mp3 | Bin 1937 -> 1989 bytes assets/sounds/editors/charter/metronome.ogg | Bin 4850 -> 4871 bytes buildnumber.txt | 2 +- source/funkin/editors/charter/Charter.hx | 48 ++++++++++++++++++-- 4 files changed, 45 insertions(+), 5 deletions(-) diff --git a/assets/sounds/editors/charter/metronome.mp3 b/assets/sounds/editors/charter/metronome.mp3 index e3e6cb475f49a89d5d8ab14abf41a6bcf13b8e6d..30dbfa8f9205aa128784cd8451d1408202fe36d0 100644 GIT binary patch delta 1087 zcmbQpf0TbhyiXTHFAlI17kGyYOx!3u@c_%jL#nJ@Yi6|WpZM|hBu3Wy|GzIBVPN3e zz}&b+fI)}R`fa)C0*{H49K15MC%t1}50hhHU`S)DVCetw;maH#o1ee_=L7~8Gx`4w z{r~y-|NsAgz{bX=ZvX##a&mGK4Cy~ADk`cRfC?Et{QuGbq!=GQeE*Muq5j9e$6TD& zJS8EStRy=voXh`{`f^JHp5ay?aA9L+v<*-DBzSl-rRe6rGlT& z6)u^Ar^c1@bGJr)>uHoV&3OLh_p9>a*Y@R_m22fsF3(c%&*Zo$usU96LS(7>DV;Ui zOzRe=ty!lV6tycx(ugsNZ|mO1D-8^cReR>>Ijpdj<=V$6Hqqj!TjE>Eml0vR&2|Wj zuC4d}y+T@Z`7frz5HXqB1zA@%&c52GVw4kKP@-I}w3($j^w&Fe9;*$@8N;$=)@;&R zEs(V4uC|wdgTq|U9u2M;O8U1=_j@*Ln*9GaaV2Y5PwJZ!sfRaaMAU!!_581z$n?9% z-u7wr6i!iK6u6VK)b(`LK{XD(1h&Udb8J#s)f8*%!`G}`=yX5Q)1*I*VUits!-K;HFYMYbd{<^3OCJ8@NNfU{9 z8v2R5y;pn&c1KM%ix_SChKO#gXRST*Mgo?|ok z!Q;=_DX_9r^kJ_L3!k-%mUHJL)<+&LCzC8PI(IlK{{NkDfZ5?}8&Q8-zS3JAR$QprtRh%-r08VX`CJi^&bFHb7Z{ aBiEP@FfcBWVPH^TU@!rCg=KOfYcK#4Qv|gD delta 1019 zcmX@gKaqbzyiXXzBpl!XF7Or?n7C1R;sKV4hg4a^@~YymO#JwI5+iH<|KAsmFfedM zFxPGoV9+0yYn+JFbFpEGX(#!vCRXr+1vmB|G?n-savY3FVK9xl(U z%PQOZD(~uVv-h8#RV`YuR=qtv{o~)uE}IVR*)IS8_m|D)8>U5UjDG*LYMt#ho2kiX zHvIqhU1$3p)tg~k|E!%}x;osv|MTzv`@a8|2Zja+{CmCg+uG^Z)*j7FH0F4-%d@@Z zzg9v<_m=~gJ%criU(GP!KAc;>d*3!Q878;F2aii$c?eH7WtwEEYW~?WcWczQ?y14y z_P=VsTJQWifA^F<*ZQAaUK7wV?~>pm#jt&m3Y%W}Pl=c&+87?N+4a<;tE#J)9-OQo zy5M#4gTxCgj@i>r9((dyu&+5;H&*GqBxC!Q^rbbqK6>Yuy$&3aW^@d9e)_wqDc-^-xO?-6nP+AVYz@W7oz*pT#P*n_hdVE$Y0s zK(w_i@=R#zx4P{`rp}^kB6Vkeo^xd$r|O+Mtbr=?(u!PFG9|yd9aNbc-Nsb5f;&cI z*0hBUb6#i(vo)@&`{SC)rL^D%MY-|gGiJ2fvB z)ls)NT?uV^k2inL0-wHJgypDSxAIBfgA!urFbvFMz1@gV!$_NzX1^l_DIU&S4YKYA z?b=Tb{p4h}QpK>B3h1#)_8TtoUmx)-$tzLOf6jkV8UU0pE){)^2 z($^^+Of@aLS4^in$1BQVXNQkxtEZFRKZjBt7HCE;O{TPy*5L9g+16rNTmuLV+pT)@aoNZdrz-KSN0!jOmXAOW-Fr#t( zm)kQc;DuTlyaRYfKFMOu1CGbU_Tal-Y%aq>0z0X*kf e1KMAuz?PJFQxPvBxMz*^Jjk>(9OpOy*R28OVYik5 delta 883 zcmV-(1C0EKCh{d3PiJRS00IC200000003cW00000000QRH2;wrE(~F500031008w9 zWo5BcNDqHuX#fBM0000U=n_;1H8eIc=he2PM!kzClp_Fr1r?DW*FWy(+q&MVV!fyy zb&J!L(57R&`Ew5N@4R0WBS#&(-TqZB&h_CitXBQQ4%OXAo0YzQD#h{1YL>anKb~~w zQ9Csi(6&mdE&oEdrvaDvuUok!uS7-vIY(&#j5>b{76Zu9(1|hSMjB$^;SHj%Q#zb# z2IC9U=}ve>IqY!wc(&RkKfC(QFa|`u;x$nMO%ni|GQFL(s&>aw?qs1{eRGX>3m4H> zJh9ru%aDbB)UnMRj{8l4;aK`{00R>AWz#W;_zKI61>me$J{Q3XJd-&QB7ekW z)to#x>L7e_6Wd73mW+BWXk$|=j8cd5T(F@A%Ct;0i^OM zn?wmR!~ph>_E%oHGT+*>*;jx5bM*fIvo-3oEw|HGSwDEx z5IxhBd_NE6Kcl<2h+qOx>-GBaniybI_8}?&{@G^v)cw3P`59oG5Ej{@pV~>`CY(3T zbO5v1SRxP}DCPI90RY3){V4p5f$b_bt`ClrufY%CInMz0AKFM^!j$7hfLz~ScUK9= J84hsW8UWslup9sY diff --git a/buildnumber.txt b/buildnumber.txt index 3081bd86..196a78e0 100644 --- a/buildnumber.txt +++ b/buildnumber.txt @@ -1 +1 @@ -2667 \ No newline at end of file +2670 \ No newline at end of file diff --git a/source/funkin/editors/charter/Charter.hx b/source/funkin/editors/charter/Charter.hx index 3ab00714..074fd7d3 100644 --- a/source/funkin/editors/charter/Charter.hx +++ b/source/funkin/editors/charter/Charter.hx @@ -34,6 +34,7 @@ class Charter extends UIState { public var topMenuSpr:UITopMenu; public var gridBackdrop:CharterBackdrop; public var gridBackdropDummy:CharterBackdropDummy; + public var conductorFollowerSpr:FlxSprite; public var hitsound:FlxSound; public var metronome:FlxSound; @@ -145,14 +146,17 @@ class Charter extends UIState { }, null, { - label: "Go back a section" + label: "Go back a section", + onSelect: _playback_back }, { - label: "Go forward a section" + label: "Go forward a section", + onSelect: _playback_forward }, null, { - label: "Go back to the start" + label: "Go back to the start", + onSelect: _playback_start }, null, { @@ -185,7 +189,11 @@ class Charter extends UIState { selectionBox.scrollFactor.set(1, 1); selectionBox.incorporeal = true; - selectionBox.cameras = notesGroup.cameras = gridBackdrop.cameras = [charterCamera]; + conductorFollowerSpr = new FlxSprite(0, 0).makeGraphic(1, 1, -1); + conductorFollowerSpr.scale.set(gridBackdrop.strumlinesAmount * 4 * 40, 4); + conductorFollowerSpr.updateHitbox(); + + conductorFollowerSpr.cameras = selectionBox.cameras = notesGroup.cameras = gridBackdrop.cameras = [charterCamera]; topMenuSpr = new UITopMenu(topMenu); @@ -195,6 +203,7 @@ class Charter extends UIState { // adds grid and notes so that they're ALWAYS behind the UI add(gridBackdrop); add(notesGroup); + add(conductorFollowerSpr); add(selectionBox); // add the ui group add(uiGroup); @@ -397,6 +406,8 @@ class Charter extends UIState { public inline function sortNotes() notesGroup.sort((i, c1, c2) -> FlxSort.byValues(i, c1.step, c2.step), FlxSort.ASCENDING); #end + + var __crochet:Float; public override function update(elapsed:Float) { // TODO: do optimization like NoteGroup updateNoteLogic(elapsed); @@ -419,7 +430,24 @@ class Charter extends UIState { if (FlxG.keys.justPressed.SPACE) _playback_play(null); + + __crochet = ((60 / Conductor.bpm) * 1000); + Conductor.songPosition -= __crochet * FlxG.mouse.wheel; + + if (FlxG.keys.justPressed.D) + _playback_forward(null); + if (FlxG.keys.justPressed.A) + _playback_back(null); + if (FlxG.keys.justPressed.HOME) + _playback_start(null); + if (FlxG.keys.justPressed.END) + _playback_end(null); } + + Conductor.songPosition = FlxMath.bound(Conductor.songPosition, 0, FlxG.sound.music.length); + + conductorFollowerSpr.y = curStepFloat * 40; + charterCamera.scroll.set(conductorFollowerSpr.x + conductorFollowerSpr.scale.x - (FlxG.width / 2), conductorFollowerSpr.y - (FlxG.height * 0.25)); } @@ -432,6 +460,18 @@ class Charter extends UIState { if (selection == null) return; selection = deleteNotes(selection); } + function _playback_back(_) { + Conductor.songPosition -= Conductor.beatsPerMesure * __crochet; + } + function _playback_forward(_) { + Conductor.songPosition += Conductor.beatsPerMesure * __crochet; + } + function _playback_start(_) { + Conductor.songPosition = 0; + } + function _playback_end(_) { + Conductor.songPosition = FlxG.sound.music.time; + } #end }