diff --git a/src/client/graphics/GameRenderer.ts b/src/client/graphics/GameRenderer.ts index db2184fc4..cb6d0249c 100644 --- a/src/client/graphics/GameRenderer.ts +++ b/src/client/graphics/GameRenderer.ts @@ -78,30 +78,9 @@ export class GameRenderer { } }) - this.renderSpawnBar() - requestAnimationFrame(() => this.renderGame()); } - // TODO: move to UIRenderer - renderSpawnBar() { - if (!this.game.inSpawnPhase()) { - return - } - - const barHeight = 15; - const barBackgroundWidth = this.canvas.width; - - const ratio = this.game.ticks() / this.game.config().numSpawnPhaseTurns() - - // Draw bar background - this.context.fillStyle = 'rgba(0, 0, 0, 0.5)'; - this.context.fillRect(0, 0, barBackgroundWidth, barHeight); - - this.context.fillStyle = 'rgba(0, 128, 255, 0.7)'; - this.context.fillRect(0, 0, barBackgroundWidth * ratio, barHeight); - } - tick() { this.layers.forEach(l => l.tick()) } diff --git a/src/client/graphics/TransformHandler.ts b/src/client/graphics/TransformHandler.ts index 8562fd1b9..86f9bb406 100644 --- a/src/client/graphics/TransformHandler.ts +++ b/src/client/graphics/TransformHandler.ts @@ -12,6 +12,10 @@ export class TransformHandler { this.eventBus.on(DragEvent, (e) => this.onMove(e)) } + width(): number { + return this.boundingRect.right + } + handleTransform(context: CanvasRenderingContext2D) { // Disable image smoothing for pixelated effect if (this.scale > 3) { diff --git a/src/client/graphics/UIRenderer.ts b/src/client/graphics/UIRenderer.ts index 5c6c9c8a9..a8ff02161 100644 --- a/src/client/graphics/UIRenderer.ts +++ b/src/client/graphics/UIRenderer.ts @@ -26,6 +26,21 @@ export class UIRenderer implements Layer { } render(context: CanvasRenderingContext2D, transformHandler: TransformHandler) { + if (!this.game.inSpawnPhase()) { + return + } + + const barHeight = 15; + const barBackgroundWidth = transformHandler.width(); + + const ratio = this.game.ticks() / this.game.config().numSpawnPhaseTurns() + + // Draw bar background + context.fillStyle = 'rgba(0, 0, 0, 0.5)'; + context.fillRect(0, 0, barBackgroundWidth, barHeight); + + context.fillStyle = 'rgba(0, 128, 255, 0.7)'; + context.fillRect(0, 0, barBackgroundWidth * ratio, barHeight); } shouldTransform(): boolean {