✨ fix depth sorting for world objects by tileY
Fixes #31. All trees, rocks, seedlings and buildings now use tileY+5 as depth instead of a fixed value, so objects further down the screen always render in front of objects above them regardless of spawn order. Build ghost moved to depth 1000/1001. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -179,18 +179,19 @@ export class GameScene extends Phaser.Scene {
|
||||
const name = `bobj_${building.id}`
|
||||
if (this.children.getByName(name)) continue
|
||||
|
||||
const worldDepth = building.tileY + 5
|
||||
if (building.kind === 'chest') {
|
||||
const g = this.add.graphics().setName(name).setDepth(8)
|
||||
const g = this.add.graphics().setName(name).setDepth(worldDepth)
|
||||
g.fillStyle(0x8B4513); g.fillRect(wx - 10, wy - 7, 20, 14)
|
||||
g.fillStyle(0xCD853F); g.fillRect(wx - 9, wy - 6, 18, 6)
|
||||
g.lineStyle(1, 0x5C3317); g.strokeRect(wx - 10, wy - 7, 20, 14)
|
||||
} else if (building.kind === 'bed') {
|
||||
this.add.image(wx, wy, 'bed_obj').setName(name).setDepth(8)
|
||||
this.add.image(wx, wy, 'bed_obj').setName(name).setDepth(worldDepth)
|
||||
} else if (building.kind === 'stockpile_zone') {
|
||||
this.add.image(wx, wy, 'stockpile_obj').setName(name).setDepth(4).setAlpha(0.8)
|
||||
} else if (building.kind === 'forester_hut') {
|
||||
// Draw a simple log-cabin silhouette for the forester hut
|
||||
const g = this.add.graphics().setName(name).setDepth(8)
|
||||
const g = this.add.graphics().setName(name).setDepth(worldDepth)
|
||||
// Body
|
||||
g.fillStyle(0x6B3F16); g.fillRect(wx - 12, wy - 9, 24, 18)
|
||||
// Roof
|
||||
|
||||
Reference in New Issue
Block a user