Esempio n. 1
0
 public void occupyTileWithProp(GameObject propToPut, UserController.Direction dir)
 {
     if (wallOnTile == null)
     {
         var propRotation = getObjRotation(transform, dir);
         propOnTile = Instantiate(propToPut, transform.position + propToPut.transform.position, propToPut.transform.rotation);
         propOnTile.transform.parent = transform;
         propOnTile.transform.RotateAround(transform.position, Vector3.up, propRotation.eulerAngles.y);
     }
 }
Esempio n. 2
0
    private bool adjacentsAreEmpty(int wallSize, UserController.Direction dir)
    {
        TileView nextTile = this.getNextTile(dir);

        for (int i = 1; i < wallSize; i++)
        {
            if (nextTile == null || nextTile.getWallOnTile() != null)
            {
                return(false);
            }
            nextTile = nextTile.getNextTile(dir);
        }
        return(true);
    }
Esempio n. 3
0
 //TODO: Create wall model with wallSize
 public void occupyTileWithWall(GameObject wallToPut, int wallSize, UserController.Direction dir)
 {
     if (isWallPlacementValid(wallSize, dir))
     {
         var wallRotation = getObjRotation(transform, dir);
         wallOnTile = Instantiate(wallToPut, transform.position + wallToPut.transform.position, wallToPut.transform.rotation);
         wallOnTile.transform.parent = transform;
         wallOnTile.transform.RotateAround(transform.position, Vector3.up, wallRotation.eulerAngles.y);
         TileView nextTile = getNextTile(dir);
         for (int i = 1; i < wallSize; i++)
         {
             nextTile.setWallOnTile(wallOnTile);
             nextTile = nextTile.getNextTile(dir);
         }
     }
 }
Esempio n. 4
0
    private Quaternion getObjRotation(Transform baseTransform, UserController.Direction dir)
    {
        switch (dir)
        {
        case UserController.Direction.LEFT:
            return(baseTransform.rotation);

        case UserController.Direction.RIGHT:
            return(baseTransform.rotation * Quaternion.Euler(0, 180, 0));

        case UserController.Direction.TOP:
            return(baseTransform.rotation * Quaternion.Euler(0, 90, 0));

        case UserController.Direction.BOTTOM:
            return(baseTransform.rotation * Quaternion.Euler(0, 270, 0));

        default:
            throw new System.Exception("Invalid Direction");
        }
    }
Esempio n. 5
0
    public TileView getNextTile(UserController.Direction dir)
    {
        switch (dir)
        {
        case UserController.Direction.LEFT:
            return(getAdjacentTileByIndex(3));

        case UserController.Direction.RIGHT:
            return(getAdjacentTileByIndex(0));

        case UserController.Direction.TOP:
            return(getAdjacentTileByIndex(2));

        case UserController.Direction.BOTTOM:
            return(getAdjacentTileByIndex(1));

        default:
            throw new System.Exception("Invalid Direction");
        }
    }
Esempio n. 6
0
 public bool isWallPlacementValid(int wallSize, UserController.Direction dir)
 {
     return(wallOnTile == null && adjacentsAreEmpty(wallSize, dir));
 }
Esempio n. 7
0
    public void previewTileWithObj(GameObject instantiatedObj, Transform initialTransform, UserController.Direction dir)
    {
        var wallRotation = getObjRotation(transform, dir);

        instantiatedObj.transform.position = initialTransform.position + transform.position;
        instantiatedObj.transform.rotation = initialTransform.rotation;
        instantiatedObj.transform.RotateAround(transform.position, Vector3.up, wallRotation.eulerAngles.y);
    }