Fix more PascalCase inconsistencies

This commit is contained in:
2025-10-01 12:07:54 +04:00
parent f6475f83f6
commit 550b2ac220
12 changed files with 55 additions and 19 deletions

View File

@@ -110,9 +110,9 @@ Guidance for Claude Code (claude.ai/code) when working with this repository.
- `src/autoloads/SaveManager.gd` - **Save system with security features** - `src/autoloads/SaveManager.gd` - **Save system with security features**
- `src/autoloads/SettingsManager.gd` - Settings management with input validation and security - `src/autoloads/SettingsManager.gd` - Settings management with input validation and security
- `src/autoloads/DebugManager.gd` - Debug system integration - `src/autoloads/DebugManager.gd` - Debug system integration
- `scenes/game/game.gd` - Main game scene with modular gameplay system - `scenes/game/Game.gd` - Main game scene with modular gameplay system
- `scenes/game/gameplays/Match3Gameplay.gd` - Match-3 implementation with input validation - `scenes/game/gameplays/Match3Gameplay.gd` - Match-3 implementation with input validation
- `scenes/game/gameplays/tile.gd` - Instance-based tile behavior without global state - `scenes/game/gameplays/Tile.gd` - Instance-based tile behavior without global state
- `scenes/ui/DebugMenuBase.gd` - Unified debug menu base class - `scenes/ui/DebugMenuBase.gd` - Unified debug menu base class
- `scenes/ui/SettingsMenu.gd` - Settings UI with input validation - `scenes/ui/SettingsMenu.gd` - Settings UI with input validation
- `scenes/game/gameplays/` - Individual gameplay mode implementations - `scenes/game/gameplays/` - Individual gameplay mode implementations

View File

@@ -31,7 +31,7 @@ for child in children_to_remove:
**Files Improved:** **Files Improved:**
- `scenes/game/gameplays/Match3Gameplay.gd` - `scenes/game/gameplays/Match3Gameplay.gd`
- `scenes/game/gameplays/tile.gd` - `scenes/game/gameplays/Tile.gd`
### 2. Error Handling & Recovery ### 2. Error Handling & Recovery
@@ -112,7 +112,7 @@ static func set_active_gem_pool(gem_indices: Array) -> void:
``` ```
**Files Improved:** **Files Improved:**
- `scenes/game/gameplays/tile.gd` - `scenes/game/gameplays/Tile.gd`
- `scenes/game/gameplays/Match3Gameplay.gd` - `scenes/game/gameplays/Match3Gameplay.gd`
## 🟡 Code Quality Improvements ## 🟡 Code Quality Improvements

View File

@@ -90,7 +90,7 @@ game.tscn (Gameplay Container)
``` ```
### Game Flow ### Game Flow
1. **Main Scene** (`scenes/main/main.tscn` + `Main.gd`) 1. **Main Scene** (`scenes/main/Main.tscn` + `Main.gd`)
- Application entry point - Application entry point
- Manages splash screen - Manages splash screen
- Transitions to main menu - Transitions to main menu
@@ -112,7 +112,7 @@ game.tscn (Gameplay Container)
- Audio volume controls - Audio volume controls
- Connected to SettingsManager and AudioManager - Connected to SettingsManager and AudioManager
5. **Game Scene** (`scenes/game/game.tscn` + `game.gd`) 5. **Game Scene** (`scenes/game/Game.tscn` + `Game.gd`)
- Main gameplay container with modular gameplay system - Main gameplay container with modular gameplay system
- Dynamic loading of gameplay modes into GameplayContainer - Dynamic loading of gameplay modes into GameplayContainer
- Global score management and display - Global score management and display
@@ -145,7 +145,7 @@ scenes/ui/
The game now uses a modular gameplay architecture where different game modes can be dynamically loaded into the main game scene. The game now uses a modular gameplay architecture where different game modes can be dynamically loaded into the main game scene.
### Gameplay Architecture ### Gameplay Architecture
- **Main Game Scene** (`scenes/game/game.gd`) - Container and coordinator - **Main Game Scene** (`scenes/game/Game.gd`) - Container and coordinator
- **Gameplay Directory** (`scenes/game/gameplays/`) - Individual gameplay implementations - **Gameplay Directory** (`scenes/game/gameplays/`) - Individual gameplay implementations
- **Dynamic Loading** - Gameplay scenes loaded at runtime based on mode selection - **Dynamic Loading** - Gameplay scenes loaded at runtime based on mode selection
- **Signal-based Communication** - Gameplays communicate with main scene via signals - **Signal-based Communication** - Gameplays communicate with main scene via signals
@@ -168,7 +168,7 @@ The game now uses a modular gameplay architecture where different game modes can
- Smooth tile position animations with Tween - Smooth tile position animations with Tween
- Cursor-based navigation with visual highlighting and bounds checking - Cursor-based navigation with visual highlighting and bounds checking
2. **Tile System** (`scenes/game/gameplays/tile.gd` + `Tile.tscn`) 2. **Tile System** (`scenes/game/gameplays/Tile.gd` + `Tile.tscn`)
- Tile behavior with instance-based architecture (no global state) - Tile behavior with instance-based architecture (no global state)
- Gem type management with validation and bounds checking - Gem type management with validation and bounds checking
- Visual representation with scaling and color - Visual representation with scaling and color

View File

@@ -11,7 +11,7 @@ config_version=5
[application] [application]
config/name="Skelly" config/name="Skelly"
run/main_scene="res://scenes/main/main.tscn" run/main_scene="res://scenes/main/Main.tscn"
config/features=PackedStringArray("4.4", "Mobile") config/features=PackedStringArray("4.4", "Mobile")
config/icon="res://icon.svg" config/icon="res://icon.svg"
boot_splash/handheld/orientation=0 boot_splash/handheld/orientation=0
@@ -222,6 +222,6 @@ locale/translations=PackedStringArray("res://localization/MainStrings.en.transla
[rendering] [rendering]
textures/canvas_textures/default_texture_filter=0 textures/canvas_textures/default_texture_filter=0
textures/vram_compression/import_etc2_astc=true
renderer/rendering_method="gl_compatibility" renderer/rendering_method="gl_compatibility"
renderer/rendering_method.mobile="gl_compatibility" renderer/rendering_method.mobile="gl_compatibility"
textures/vram_compression/import_etc2_astc=true

View File

@@ -470,7 +470,7 @@ func regenerate_grid():
# More robust tile detection # More robust tile detection
if child.has_method("get_script") and child.get_script(): if child.has_method("get_script") and child.get_script():
var script_path = child.get_script().resource_path var script_path = child.get_script().resource_path
if script_path == "res://scenes/game/gameplays/tile.gd": if script_path == "res://scenes/game/gameplays/Tile.gd":
children_to_remove.append(child) children_to_remove.append(child)
removed_count += 1 removed_count += 1
elif "grid_position" in child: # Fallback detection elif "grid_position" in child: # Fallback detection
@@ -1084,7 +1084,7 @@ func _restore_grid_from_layout(grid_layout: Array, active_gems: Array[int]) -> v
for child in get_children(): for child in get_children():
if child.has_method("get_script") and child.get_script(): if child.has_method("get_script") and child.get_script():
var script_path = child.get_script().resource_path var script_path = child.get_script().resource_path
if script_path == "res://scenes/game/gameplays/tile.gd": if script_path == "res://scenes/game/gameplays/Tile.gd":
all_tile_children.append(child) all_tile_children.append(child)
DebugManager.log_debug( DebugManager.log_debug(

View File

@@ -94,7 +94,7 @@ static func restore_grid_from_layout(
for child in match3_node.get_children(): for child in match3_node.get_children():
if child.has_method("get_script") and child.get_script(): if child.has_method("get_script") and child.get_script():
var script_path = child.get_script().resource_path var script_path = child.get_script().resource_path
if script_path == "res://scenes/game/gameplays/tile.gd": if script_path == "res://scenes/game/gameplays/Tile.gd":
all_tile_children.append(child) all_tile_children.append(child)
# Remove all found tile children # Remove all found tile children

View File

@@ -1,6 +1,6 @@
[gd_scene load_steps=2 format=3 uid="uid://bnk1gqom3oi6q"] [gd_scene load_steps=2 format=3 uid="uid://bnk1gqom3oi6q"]
[ext_resource type="Script" path="res://scenes/game/gameplays/tile.gd" id="1_tile_script"] [ext_resource type="Script" path="res://scenes/game/gameplays/Tile.gd" id="1_tile_script"]
[node name="Tile" type="Node2D"] [node name="Tile" type="Node2D"]
script = ExtResource("1_tile_script") script = ExtResource("1_tile_script")

View File

@@ -6,8 +6,9 @@
extends Node extends Node
const GAME_SCENE_PATH := "res://scenes/game/game.tscn" const GAME_SCENE_PATH := "res://scenes/game/Game.tscn"
const MAIN_SCENE_PATH := "res://scenes/main/main.tscn" const MAIN_SCENE_PATH := "res://scenes/main/Main.tscn"
const CREDITS_SCENE_PATH := "res://scenes/ui/Credits.tscn"
var pending_gameplay_mode: String = "match3" var pending_gameplay_mode: String = "match3"
var is_changing_scene: bool = false var is_changing_scene: bool = false
@@ -97,6 +98,41 @@ func save_game() -> void:
DebugManager.log_info("Game saved with score: %d" % current_score, "GameManager") DebugManager.log_info("Game saved with score: %d" % current_score, "GameManager")
func show_credits() -> void:
"""Show credits scene with race condition protection"""
# Prevent concurrent scene changes
if is_changing_scene:
DebugManager.log_warn(
"Scene change already in progress, ignoring show credits request", "GameManager"
)
return
is_changing_scene = true
DebugManager.log_info("Attempting to show credits scene", "GameManager")
var packed_scene := load(CREDITS_SCENE_PATH)
if not packed_scene or not packed_scene is PackedScene:
DebugManager.log_error(
"Failed to load Credits scene at: %s" % CREDITS_SCENE_PATH, "GameManager"
)
is_changing_scene = false
return
var result = get_tree().change_scene_to_packed(packed_scene)
if result != OK:
DebugManager.log_error(
"Failed to change to credits scene (Error code: %d)" % result, "GameManager"
)
is_changing_scene = false
return
DebugManager.log_info("Successfully loaded credits scene", "GameManager")
# Wait for scene to be ready, then mark scene change as complete
await get_tree().process_frame
is_changing_scene = false
func exit_to_main_menu() -> void: func exit_to_main_menu() -> void:
"""Exit to main menu with race condition protection""" """Exit to main menu with race condition protection"""
# Prevent concurrent scene changes # Prevent concurrent scene changes

View File

@@ -148,8 +148,8 @@ func test_critical_scenes():
# Define critical scenes that must work # Define critical scenes that must work
var critical_scenes = [ var critical_scenes = [
"res://scenes/main/main.tscn", "res://scenes/main/Main.tscn",
"res://scenes/game/game.tscn", "res://scenes/game/Game.tscn",
"res://scenes/ui/MainMenu.tscn", "res://scenes/ui/MainMenu.tscn",
"res://scenes/game/gameplays/Match3Gameplay.tscn" "res://scenes/game/gameplays/Match3Gameplay.tscn"
] ]