Ejemplo n.º 1
0
 private static void SetRowAnColumnNumber(IslandTile islandTile, int RowNumber, int ColumnNumber)
 {
     islandTile.ColumnNumber = ColumnNumber;
     islandTile.RowNumber    = RowNumber;
 }
Ejemplo n.º 2
0
 private static bool VectorIsInfinite(Vector v)
 {
     return(VectorIsInfinite(IslandTile.VToV3(v)));
 }
Ejemplo n.º 3
0
        private void SetElevation(Vector2 pointx, Vector2 pointy)
        {
            Vector2 islandCenter = new Vector2((BottomLeft.x + TopRight.x) / 2, (BottomLeft.y + TopRight.y) / 2);
            bool isWater = false;
            Vector2 midPoint = new Vector2(0, 0);

            for (int x = (int)Mathf.Abs(pointx.x); x < (int)Mathf.Abs(pointy.x); x++)
            {
                for (int y = (int)Mathf.Abs(pointx.y); y < pointy.y; y++)
                {
                    isWater = false;

                    foreach(IslandPolygon poly in Polygons){
                        if(Polygon.IsPointInPolygon(new Vector2(x + BottomLeft.x, y + BottomLeft.y), poly.Poly.Points.ToArray()))
                        {
                            isWater = poly.IsWater;
                            midPoint = poly.Poly.MidPoint.Point;
                            break;
                        }
                    }

                    islandTiles[x, y] = new IslandTile()
                    {
                        Elevation = Mathf.Sqrt
                        (
                            Mathf.Pow(Mathf.Abs(islandCenter.x - (midPoint.x + BottomLeft.x)), 2) +
                            Mathf.Pow(Mathf.Abs(islandCenter.y - (midPoint.y + BottomLeft.y)), 2)
                        ),
                        IsWater = isWater
                    };
                }
            }
        }
Ejemplo n.º 4
0
 private static bool IsClockwise(Vector a, Vector b, Vector c)
 {
     return(IsClockwise(IslandTile.VToV3(a),
                        IslandTile.VToV3(b),
                        IslandTile.VToV3(c)));
 }
Ejemplo n.º 5
0
        private void IsMoveValid(List <ICanMoveValidation> CanMoveValidation, Player Player, IslandTile FromMovetile, IslandTile ToMoveTile)
        {
            ValidationResults validationResult;

            foreach (var validation in CanMoveValidation)
            {
                validationResult = validation.IsValid(FromMovetile, ToMoveTile, Player);
                if (!validationResult.IsValid)
                {
                    ValidationResultsList.Add(validationResult);
                }
            }
        }
Ejemplo n.º 6
0
    private void MarkIslandSegment (IslandTile tile, int id)
    {
        if (tile.IsWater || id == tile.islandId) { return; }

        if (tile.islandId == 99 || tile.islandId < id)
        {
            if (tile.islandId < id) 
            { 
                subIslands.Remove(id);
                id = tile.islandId; 
            }

            tile.islandId = id;

            if (!subIslands.ContainsKey(id)) 
            { 
                subIslands[id] = new List<IslandTile>(); 
            }

            subIslands[id].Add(tile);
                
            foreach (Vector v in tile.neighbors)
            {
                IslandTile nt = islandTiles[IslandTile.VToV3(v)];
                MarkIslandSegment(nt, id);
            }
        }
    }
Ejemplo n.º 7
0
    private void GenerateTiles ()
    {
        islandTiles = new Dictionary<Vector3, IslandTile>();

        foreach (Vector v in cellVectors)
        {
            if (VectorIsInfinite(v)) { continue; }
        
            IslandTile t = new IslandTile(v, vGraph, this);
            islandTiles.Add(IslandTile.VToV3(v), t);    
        }
    }
Ejemplo n.º 8
0
 public bool TileGone(IslandTile islandTile)
 {
     return(islandTile.SubmergedState == Enum.TileState.Gone.ToString());
 }