Fix more PascalCase inconsistencies
This commit is contained in:
@@ -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/SettingsManager.gd` - Settings management with input validation and security
|
||||
- `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/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/SettingsMenu.gd` - Settings UI with input validation
|
||||
- `scenes/game/gameplays/` - Individual gameplay mode implementations
|
||||
|
||||
@@ -31,7 +31,7 @@ for child in children_to_remove:
|
||||
|
||||
**Files Improved:**
|
||||
- `scenes/game/gameplays/Match3Gameplay.gd`
|
||||
- `scenes/game/gameplays/tile.gd`
|
||||
- `scenes/game/gameplays/Tile.gd`
|
||||
|
||||
### 2. Error Handling & Recovery
|
||||
|
||||
@@ -112,7 +112,7 @@ static func set_active_gem_pool(gem_indices: Array) -> void:
|
||||
```
|
||||
|
||||
**Files Improved:**
|
||||
- `scenes/game/gameplays/tile.gd`
|
||||
- `scenes/game/gameplays/Tile.gd`
|
||||
- `scenes/game/gameplays/Match3Gameplay.gd`
|
||||
|
||||
## 🟡 Code Quality Improvements
|
||||
|
||||
@@ -90,7 +90,7 @@ game.tscn (Gameplay Container)
|
||||
```
|
||||
|
||||
### Game Flow
|
||||
1. **Main Scene** (`scenes/main/main.tscn` + `Main.gd`)
|
||||
1. **Main Scene** (`scenes/main/Main.tscn` + `Main.gd`)
|
||||
- Application entry point
|
||||
- Manages splash screen
|
||||
- Transitions to main menu
|
||||
@@ -112,7 +112,7 @@ game.tscn (Gameplay Container)
|
||||
- Audio volume controls
|
||||
- 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
|
||||
- Dynamic loading of gameplay modes into GameplayContainer
|
||||
- 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.
|
||||
|
||||
### 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
|
||||
- **Dynamic Loading** - Gameplay scenes loaded at runtime based on mode selection
|
||||
- **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
|
||||
- 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)
|
||||
- Gem type management with validation and bounds checking
|
||||
- Visual representation with scaling and color
|
||||
|
||||
@@ -11,7 +11,7 @@ config_version=5
|
||||
[application]
|
||||
|
||||
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/icon="res://icon.svg"
|
||||
boot_splash/handheld/orientation=0
|
||||
@@ -222,6 +222,6 @@ locale/translations=PackedStringArray("res://localization/MainStrings.en.transla
|
||||
[rendering]
|
||||
|
||||
textures/canvas_textures/default_texture_filter=0
|
||||
textures/vram_compression/import_etc2_astc=true
|
||||
renderer/rendering_method="gl_compatibility"
|
||||
renderer/rendering_method.mobile="gl_compatibility"
|
||||
textures/vram_compression/import_etc2_astc=true
|
||||
|
||||
@@ -470,7 +470,7 @@ func regenerate_grid():
|
||||
# More robust tile detection
|
||||
if child.has_method("get_script") and child.get_script():
|
||||
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)
|
||||
removed_count += 1
|
||||
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():
|
||||
if child.has_method("get_script") and child.get_script():
|
||||
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)
|
||||
|
||||
DebugManager.log_debug(
|
||||
|
||||
@@ -94,7 +94,7 @@ static func restore_grid_from_layout(
|
||||
for child in match3_node.get_children():
|
||||
if child.has_method("get_script") and child.get_script():
|
||||
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)
|
||||
|
||||
# Remove all found tile children
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[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"]
|
||||
script = ExtResource("1_tile_script")
|
||||
|
||||
@@ -6,8 +6,9 @@
|
||||
|
||||
extends Node
|
||||
|
||||
const GAME_SCENE_PATH := "res://scenes/game/game.tscn"
|
||||
const MAIN_SCENE_PATH := "res://scenes/main/main.tscn"
|
||||
const GAME_SCENE_PATH := "res://scenes/game/Game.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 is_changing_scene: bool = false
|
||||
@@ -97,6 +98,41 @@ func save_game() -> void:
|
||||
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:
|
||||
"""Exit to main menu with race condition protection"""
|
||||
# Prevent concurrent scene changes
|
||||
|
||||
@@ -148,8 +148,8 @@ func test_critical_scenes():
|
||||
|
||||
# Define critical scenes that must work
|
||||
var critical_scenes = [
|
||||
"res://scenes/main/main.tscn",
|
||||
"res://scenes/game/game.tscn",
|
||||
"res://scenes/main/Main.tscn",
|
||||
"res://scenes/game/Game.tscn",
|
||||
"res://scenes/ui/MainMenu.tscn",
|
||||
"res://scenes/game/gameplays/Match3Gameplay.tscn"
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user