@@ -6,6 +6,7 @@ import { uiAssets } from '../resources'
6
6
import { timeStringFromMs } from '../utilities'
7
7
import { Column , HeaderRow , NAME_START , PLACEMENT_START , SCOREBOARD_VALUE_TYPE } from './columnData'
8
8
import { getSDK } from '../../sdk'
9
+ import { queue } from '../..'
9
10
10
11
type sortOrder = 'asc' | 'desc'
11
12
@@ -171,6 +172,8 @@ export class ScoreBoard {
171
172
frameBG : string = uiAssets . scoreboard . scoreBoardBackgroudDefault
172
173
textColorMain : Color4 = Color4 . Black ( )
173
174
textColorSecondary : Color4 = Color4 . fromHexString ( '#ff2d55ff' )
175
+ lastQueue = queue . getQueue ( )
176
+ scoreboardUpdateTimer = 0
174
177
175
178
constructor (
176
179
rootTransform : TransformTypeWithOptionals ,
@@ -302,6 +305,21 @@ export class ScoreBoard {
302
305
303
306
//this.loadScores(scoreData, TIME_LEVEL_MOVES)
304
307
void this . getScores ( )
308
+
309
+ //auto update scoreboard on queue length change
310
+
311
+ engine . addSystem ( ( dt : number ) => {
312
+ this . scoreboardUpdateTimer += dt
313
+ if ( this . scoreboardUpdateTimer < 0.25 ) return
314
+ this . scoreboardUpdateTimer = 0
315
+
316
+ const newQueue = queue . getQueue ( )
317
+ if ( newQueue . length !== this . lastQueue . length ) {
318
+ console . log ( 'updating scoreboard' )
319
+ this . lastQueue = newQueue
320
+ void this . getScores ( )
321
+ }
322
+ } )
305
323
}
306
324
307
325
async getScores ( ) {
0 commit comments