feat: Implement the main game scene, initializing core managers, a new message bar system, and a pre-game countdown.

This commit is contained in:
2026-03-03 05:01:59 +08:00
parent e6dceaf173
commit 09d08093e2
4 changed files with 242 additions and 6 deletions
+20 -4
View File
@@ -1575,12 +1575,12 @@ func request_randomize_item(grid_position: Vector2i):
func sync_grid_item(x: int, y: int, z: int, item: int):
var enhanced_gridmap = $EnhancedGridMap
if enhanced_gridmap:
# WALL-SAFETY CHECK: Block tiles (7-20) from being placed on walls (4)
# WALL-SAFETY CHECK: Block tiles (7-20) from being placed on walls (4) or void (-1)
if y == 1 and item >= 7 and item <= 20:
var f0 = enhanced_gridmap.get_cell_item(Vector3i(x, 0, z))
if f0 == 4:
if f0 == 4 or f0 == -1:
# Log and block illegal placement
print("[Main] Blocked illegal tile (%d) placement on wall at (%d, %d)" % [item, x, z])
print("[Main] Blocked illegal tile (%d) placement on wall/void at (%d, %d)" % [item, x, z])
return
enhanced_gridmap.set_cell_item(Vector3i(x, y, z), item)
@@ -1909,7 +1909,7 @@ func _show_game_over_panel():
var rank_colors = [
Color(1.0, 0.84, 0.0), # Gold
Color(0.75, 0.75, 0.75), # Silver
Color(0.8, 0.5, 0.2) # Bronze
Color(0.8, 0.5, 0.2) # Bronze
]
var rank_emojis = ["🥇", "🥈", "🥉"]
@@ -2217,6 +2217,22 @@ func _on_resume_pressed():
pause_menu.visible = false
get_tree().paused = false
func _on_how_to_play_pressed():
var pause_menu = get_node_or_null("PauseMenu")
var help_panel = get_node_or_null("HowToPlayPanel")
if pause_menu:
pause_menu.visible = false
if help_panel:
help_panel.visible = true
func _on_how_to_play_back_pressed():
var pause_menu = get_node_or_null("PauseMenu")
var help_panel = get_node_or_null("HowToPlayPanel")
if help_panel:
help_panel.visible = false
if pause_menu:
pause_menu.visible = true
func _on_settings_pressed():
var pause_menu = get_node_or_null("PauseMenu")
var settings_panel = get_node_or_null("SettingsPanel")