public void SpawnPiece(Type piece, Cell target)
 {
     if (target.IsSolidlyOccupied()) return;
     GameObject parent = GetPieceParent(piece);
     GameObject obj = (GameObject)PrefabUtility.InstantiatePrefab(GamePiece.GetPrefab(selectedPiece));
     obj.transform.position = target.WorldPos();
     obj.transform.parent = parent.transform;
     RoomManager.roomManager.AddPiece(obj, piece);
 }
 public void SpawnPlayer(Cell target)
 {
     if (RoomManager.roomManager.player == null)
     {
         GameObject obj = (GameObject)PrefabUtility.InstantiatePrefab(GamePiece.GetPrefab(typeof(Player)));
         obj.transform.position = target.WorldPos();
         RoomManager.roomManager.AddPiece(obj, typeof(Player));
     }
     else
     {
         RoomManager.roomManager.player.TeleportTo(target);
     }
 }
    public bool StartLerp(Cell source, Cell dest, float speed, Side? s = null)
    {
        bool available = dest.Reserve() && dest != null;
        if (available)
        {
            isMoving = true;
            StartPos = source.WorldPos();
            destination = dest;
            tempSpeed = speed;
            currentLerp = 0f;

            currentRot = transform.eulerAngles;
            targetRot = s;

        }
        return available;
    }