feat: Implement the main game scene with core logic, manager initialization, multiplayer setup, and UI integration.

This commit is contained in:
Yogi Wiguna
2026-03-25 17:15:13 +08:00
parent 621fc6fcda
commit adb3d53ca1
3 changed files with 9 additions and 7 deletions
+3 -1
View File
@@ -1754,7 +1754,9 @@ func randomize_game_grid():
# This ensures StaticTektonManager calculation (which checks Floor 0) succeeds.
for x in range(enhanced_gridmap.columns):
for z in range(enhanced_gridmap.rows):
if enhanced_gridmap.get_cell_item(Vector3i(x, 0, z)) == -1:
var f0_item = enhanced_gridmap.get_cell_item(Vector3i(x, 0, z))
# If empty OR it's a tile/powerup (7-20) accidentally stuck on the ground layer, replace with Base Floor (0)
if f0_item == -1 or (f0_item >= 7 and f0_item <= 20):
enhanced_gridmap.set_cell_item(Vector3i(x, 0, z), 0)
# Custom spawn ratio for Free Mode: 80% common tiles, 20% empty tiles (start of game)
+1 -1
View File
@@ -60,7 +60,7 @@ func _attempt_throw():
if enhanced_gridmap and "cell_size" in enhanced_gridmap:
target_world_pos = Vector3(
target.x * enhanced_gridmap.cell_size.x + enhanced_gridmap.cell_size.x / 2,
0,
enhanced_gridmap.cell_size.y,
target.y * enhanced_gridmap.cell_size.z + enhanced_gridmap.cell_size.z / 2
)
+5 -5
View File
@@ -451,11 +451,11 @@ func spawn_tiles_around(count: int = 4):
else:
item_id = rng.randi_range(11, 14)
if item_id != -1:
var main = get_tree().get_root().get_node_or_null("Main")
if main and can_rpc():
main.rpc("sync_grid_item", pos.x, 1, pos.y, item_id)
spawned += 1
if item_id != -1:
var main = get_tree().get_root().get_node_or_null("Main")
if main and can_rpc():
main.rpc("sync_grid_item", pos.x, 1, pos.y, item_id)
spawned += 1
@rpc("call_local", "reliable")
func play_animation_rpc(anim_name: String):