private static void SetRowAnColumnNumber(IslandTile islandTile, int RowNumber, int ColumnNumber) { islandTile.ColumnNumber = ColumnNumber; islandTile.RowNumber = RowNumber; }
private static bool VectorIsInfinite(Vector v) { return(VectorIsInfinite(IslandTile.VToV3(v))); }
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 }; } } }
private static bool IsClockwise(Vector a, Vector b, Vector c) { return(IsClockwise(IslandTile.VToV3(a), IslandTile.VToV3(b), IslandTile.VToV3(c))); }
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); } } }
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); } } }
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); } }
public bool TileGone(IslandTile islandTile) { return(islandTile.SubmergedState == Enum.TileState.Gone.ToString()); }