public void Initialize(DormitoryCell cell, DormitoryCell otherCell, DormitoryDirection direction) { this.cell = cell; this.otherCell = otherCell; this.direction = direction; cell.SetEdge(direction, this); transform.parent = cell.transform; transform.localPosition = Vector3.zero; transform.localRotation = direction.ToRotation(); }
public void CreateWall(DormitoryCell cellA, DormitoryCell cellB, DormitoryDirection direction) { DormitoryWall wall = Instantiate(wallPrefab) as DormitoryWall; wall.Initialize(cellA, cellB, direction); if (cellB != null) { wall = Instantiate(wallPrefab) as DormitoryWall; wall.Initialize(cellB, cellA, direction.GetOpposite()); } }
public void CreateExternalDoor(DormitoryCell cellA, DormitoryCell cellB, DormitoryDirection direction, bool mirrored) { DormitoryExternalDoor door = Instantiate(extDoorPrefab) as DormitoryExternalDoor; door.Initialize(cellA, cellB, direction); if (cellB != null) { door = Instantiate(extDoorPrefab) as DormitoryExternalDoor; door.Initialize(cellB, cellA, direction.GetOpposite()); } if (mirrored) { door.transform.localPosition = new Vector3(0f, 0f, -1f); door.transform.localRotation = direction.GetOpposite().ToRotation(); } }
public DormitoryCellEdge GetEdge(DormitoryDirection direction) { return(edges[(int)direction]); }
public void SetEdge(DormitoryDirection direction, DormitoryCellEdge edge) { edges[(int)direction] = edge; }
public static Quaternion ToRotation(this DormitoryDirection direction) { return(rotations[(int)direction]); }
public static DormitoryDirection GetOpposite(this DormitoryDirection direction) { return(opposites[(int)direction]); }
public static IntVector2 ToIntVector2(this DormitoryDirection direction) { return(vectors[(int)direction]); }