diff --git a/3D blobici/Assets/Scripts/MapGen/MapGenManager.cs b/3D blobici/Assets/Scripts/MapGen/MapGenManager.cs
index 14ed977..37bf3d3 100644
--- a/3D blobici/Assets/Scripts/MapGen/MapGenManager.cs
+++ b/3D blobici/Assets/Scripts/MapGen/MapGenManager.cs
@@ -87,9 +87,9 @@ public class MapGenManager : MonoBehaviour
}
}
- /* ============================================================ */
- /* CORRIDORS */
- /* ============================================================ */
+ ///
+ /// Builds corridors and doors between rooms.
+ ///
private void BuildCorridors()
{
// Jediné dva směry, které musíme zkontrolovat z každé místnosti (right/up)
@@ -109,9 +109,9 @@ public class MapGenManager : MonoBehaviour
foreach (Vector2Int dir in directions)
{
Vector2Int nKey = cell + dir;
- if (!gridToRoom.TryGetValue(nKey, out GameObject roomB)) continue; // žádná sousední místnost
+ if (!gridToRoom.TryGetValue(nKey, out GameObject roomB)) continue;
- // Geometrie pro daný směr
+ // Handle geometry
Vector3 axis; float lenStraight, lenDoor; Quaternion rot;
if (dir == Vector2Int.right)
{
@@ -128,18 +128,18 @@ public class MapGenManager : MonoBehaviour
rot = Quaternion.identity;
}
- // Pozice stěn (počítáme od středu místnosti k jejímu okraji)
+ // Wall calculation
float halfA = Vector3.Scale(GetPrefabXZ(roomA), axis).magnitude * 0.5f;
float halfB = Vector3.Scale(GetPrefabXZ(roomB), axis).magnitude * 0.5f;
Vector3 wallA = roomA.transform.position + axis * halfA;
Vector3 wallB = roomB.transform.position - axis * halfB;
- // DVEŘE – pivot dveří do středu úsečky mezi okraji stěn
+ // Doors
Vector3 doorPos = (wallA + wallB) * 0.5f;
GameObject doorGO = Instantiate(DoorCorridor, doorPos, rot, transform);
DoorAnimation anim = doorGO.GetComponent();
- // REGISTRACE do obou místností
+ // Register the corridor to both rooms
RoomHandler rhA = roomA.GetComponent();
RoomHandler rhB = roomB.GetComponent();
if (dir == Vector2Int.right)
@@ -171,19 +171,19 @@ public class MapGenManager : MonoBehaviour
private void PlaceStraightSegments(
Vector3 startEdge,
Vector3 wallEdge,
- Vector3 direction, // normalizovaný (+/- axis)
+ Vector3 direction,
Quaternion rot,
- float len) // délka STANDARDNÍHO rovného segmentu
+ float len)
{
- const float EPS = 0.01f; // ≈1 cm tolerance
+ const float EPS = 0.01f;
float dist = Vector3.Distance(startEdge, wallEdge);
- if (dist < EPS) return; // nic netřeba
+ if (dist < EPS) return;
int fullCount = Mathf.FloorToInt(dist / len);
- float remainder = dist - fullCount * len; // 0 .. len
+ float remainder = dist - fullCount * len;
- // -------- 1) CELÉ segmenty --------
- Vector3 firstPivot = startEdge + direction * (len * 0.5f); // hrana sedí na startEdge
+ // Full segments
+ Vector3 firstPivot = startEdge + direction * (len * 0.5f);
for (int i = 0; i < fullCount; i++)
{
Vector3 pos = firstPivot + direction * (i * len);
@@ -191,16 +191,14 @@ public class MapGenManager : MonoBehaviour
Instantiate(prefab, pos, rot, transform);
}
- // -------- 2) POSLEDNÍ ZKRÁCENÝ segment (pokud je třeba) --------
- if (remainder > EPS) // zbylo něco > 1 cm
+ // Short segment to fill the gap
+ if (remainder > EPS)
{
- // pivot tak, aby přední hrana nepřesáhla wallEdge
Vector3 remPivot = wallEdge - direction * (remainder * 0.5f);
GameObject last = Instantiate(CorridorStraightUnlit, remPivot, rot, transform);
- // zmenšíme délku po místní ose Z (prefab je "dlouhý" po Z)
Vector3 sc = last.transform.localScale;
- sc.z *= remainder / len; // poměr 0 .. 1
+ sc.z *= remainder / len;
last.transform.localScale = sc;
}
}