Improve maze start/end placement with dead-end detection

Refactored PlaceStartAndEnd to intelligently place start and end points at dead ends using random selection and distance-based fallbacks. Added EnforceSingleConnection to ensure start/end points have exactly one connection, compatible with U-turn prefabs. Improved MazeReworkSpawner with object hierarchy grouping (Floors, Categories) and made RefreshSingleCell public. Updated maze config and cleaned up scene hierarchy.
This commit is contained in:
2026-07-04 06:51:32 +07:00
parent 6b4a5a8e12
commit 531e28409a
6 changed files with 279 additions and 339 deletions

View File

@@ -12,13 +12,10 @@
<component name="ChangeListManager">
<list default="true" id="d308d1cb-09fc-4331-ba20-00f7b43d1576" name="Changes" comment="">
<change beforePath="$PROJECT_DIR$/.idea/.idea.BABA_YAGA/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/.idea.BABA_YAGA/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Materials/Red 4.mat" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Materials/Red 4.mat" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Prefabs/Environment/Room/Stair.prefab" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Prefabs/Environment/Room/Stair.prefab" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Prefabs/Environment/Hall/End.prefab" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Prefabs/Environment/Hall/End.prefab" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Presets/MazeRework.asset" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Presets/MazeRework.asset" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scenes/Main Scene.unity" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scenes/Main Scene.unity" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/Baba_yaga/GameSetup/MazeRework/MazeReworkGenerator.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/Baba_yaga/GameSetup/MazeRework/MazeReworkGenerator.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/Baba_yaga/GameSetup/MazeRework/MazeReworkManager.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/Baba_yaga/GameSetup/MazeRework/MazeReworkManager.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/Baba_yaga/GameSetup/MazeRework/MazeReworkSpawner.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/Baba_yaga/GameSetup/MazeRework/MazeReworkSpawner.cs" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />