Compare commits
2 Commits
1d8b2b2b9c
...
8d2c58cb5f
| Author | SHA1 | Date | |
|---|---|---|---|
| 8d2c58cb5f | |||
| 986c2ea9eb |
@@ -22,8 +22,6 @@ export class UIScene extends Phaser.Scene {
|
||||
private villagerPanelVisible = false
|
||||
private buildModeText!: Phaser.GameObjects.Text
|
||||
private farmToolText!: Phaser.GameObjects.Text
|
||||
private coordsText!: Phaser.GameObjects.Text
|
||||
private controlsHintText!: Phaser.GameObjects.Text
|
||||
private popText!: Phaser.GameObjects.Text
|
||||
private stockpileTitleText!: Phaser.GameObjects.Text
|
||||
private contextMenuGroup!: Phaser.GameObjects.Group
|
||||
@@ -75,7 +73,6 @@ export class UIScene extends Phaser.Scene {
|
||||
this.createBuildMenu()
|
||||
this.createBuildModeIndicator()
|
||||
this.createFarmToolIndicator()
|
||||
this.createCoordsDisplay()
|
||||
this.createDebugPanel()
|
||||
|
||||
const gameScene = this.scene.get('Game')
|
||||
@@ -83,7 +80,6 @@ export class UIScene extends Phaser.Scene {
|
||||
gameScene.events.on('farmToolChanged', (t: FarmingTool, l: string) => this.onFarmToolChanged(t, l))
|
||||
gameScene.events.on('toast', (m: string) => this.showToast(m))
|
||||
gameScene.events.on('openBuildMenu', () => this.toggleBuildMenu())
|
||||
gameScene.events.on('cameraMoved', (pos: { tileX: number; tileY: number }) => this.onCameraMoved(pos))
|
||||
|
||||
this.input.keyboard!.addKey(Phaser.Input.Keyboard.KeyCodes.B)
|
||||
.on('down', () => gameScene.events.emit('uiRequestBuildMenu'))
|
||||
@@ -386,24 +382,6 @@ export class UIScene extends Phaser.Scene {
|
||||
this.farmToolText.setText(tool === 'none' ? '' : `[F] Farm: ${label} [RMB cancel]`).setVisible(tool !== 'none')
|
||||
}
|
||||
|
||||
// ─── Coords + controls ────────────────────────────────────────────────────
|
||||
|
||||
/** Creates the tile-coordinate display and controls hint at the bottom-left. */
|
||||
private createCoordsDisplay(): void {
|
||||
this.coordsText = this.add.text(10, this.scale.height - 24, '', { fontSize: '11px', color: '#666666', fontFamily: 'monospace' }).setScrollFactor(0).setDepth(100)
|
||||
this.controlsHintText = this.add.text(10, this.scale.height - 42, '[WASD] Pan [Scroll] Zoom [F] Farm [B] Build [V] Nisse [F3] Debug', {
|
||||
fontSize: '10px', color: '#444444', fontFamily: 'monospace', backgroundColor: '#00000066', padding: { x: 4, y: 2 }
|
||||
}).setScrollFactor(0).setDepth(100)
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates the tile-coordinate display when the camera moves.
|
||||
* @param pos - Tile position of the camera center
|
||||
*/
|
||||
private onCameraMoved(pos: { tileX: number; tileY: number }): void {
|
||||
this.coordsText.setText(`Tile: ${pos.tileX}, ${pos.tileY}`)
|
||||
}
|
||||
|
||||
// ─── Debug Panel (F3) ─────────────────────────────────────────────────────
|
||||
|
||||
/** Creates the debug panel text object (initially hidden). */
|
||||
@@ -589,8 +567,9 @@ export class UIScene extends Phaser.Scene {
|
||||
{ label: '⚙️ Settings', action: () => this.doSettings() },
|
||||
{ label: '🆕 New Game', action: () => this.doNewGame() },
|
||||
]
|
||||
// 32px header + entries × (btnH + 8px gap) + 8px bottom padding
|
||||
const menuH = 32 + entries.length * (btnH + 8) + 8
|
||||
const keysBlock = '[WASD] Pan [Scroll] Zoom\n[F] Farm [B] Build [V] Nisse\n[F3] Debug [ESC] Menu'
|
||||
// 32px header + entries × (btnH + 8px gap) + 8px sep + 46px keys block + 12px bottom padding
|
||||
const menuH = 32 + entries.length * (btnH + 8) + 8 + 46 + 12
|
||||
const mx = this.scale.width / 2 - menuW / 2
|
||||
const my = this.scale.height / 2 - menuH / 2
|
||||
|
||||
@@ -617,6 +596,14 @@ export class UIScene extends Phaser.Scene {
|
||||
}).setOrigin(0, 0.5).setScrollFactor(0).setDepth(402)
|
||||
)
|
||||
})
|
||||
|
||||
// Keyboard shortcuts reference at the bottom of the menu
|
||||
const keysY = my + 32 + entries.length * (btnH + 8) + 8
|
||||
this.escMenuGroup.add(
|
||||
this.add.text(mx + menuW / 2, keysY, keysBlock, {
|
||||
fontSize: '10px', color: '#555555', fontFamily: 'monospace', align: 'center',
|
||||
}).setOrigin(0.5, 0).setScrollFactor(0).setDepth(401)
|
||||
)
|
||||
}
|
||||
|
||||
/** Saves the game and shows a toast confirmation. */
|
||||
@@ -1172,9 +1159,6 @@ export class UIScene extends Phaser.Scene {
|
||||
// Bottom elements
|
||||
this.hintText.setPosition(width / 2, height - 40)
|
||||
this.toastText.setPosition(width / 2, 60)
|
||||
this.coordsText.setPosition(10, height - 24)
|
||||
this.controlsHintText.setPosition(10, height - 42)
|
||||
|
||||
// Close centered panels — their position is calculated on open, so they
|
||||
// would be off-center if left open during a resize
|
||||
if (this.buildMenuVisible) this.closeBuildMenu()
|
||||
|
||||
Reference in New Issue
Block a user