/// <summary> /// Set random direction item /// </summary> public void SetRandomDirection() { int randomIndex = Random.Range(0, System.Enum.GetValues(typeof(CoordinateDirection)).Length); // int randomIndex=1; //test chooseDirection = (CoordinateDirection)randomIndex; BuildDirection(); GetComponent <DrawLines>().SetDirectionForHeadLines(chooseDirection); }
public Destroyer(Vector2 position, DirectionType direction, CoordinateDirection coordinate) { Position = position; _direction = direction; _coordinate = coordinate; Texture = direction == DirectionType.Horizontal ? TextureController.GetTexture(GemType.HorizontalLine.SelectedSpritePath()) : TextureController.GetTexture(GemType.VerticalLine.SelectedSpritePath()); }
/// <summary> /// Set direction init for two lines /// </summary> /// <param name="directionWasChoose">Direction was choose.</param> public void SetDirectionForHeadLines(CoordinateDirection directionWasChoose) { directionChosen = directionWasChoose; switch (directionWasChoose) { case CoordinateDirection.North_South: headLineOneDir = Vector2.up; headLineTwoDir = Vector2.down; break; case CoordinateDirection.East_West: headLineOneDir = Vector2.right; headLineTwoDir = Vector2.left; break; case CoordinateDirection.North_East: headLineOneDir = Vector2.up; headLineTwoDir = Vector2.right; break; case CoordinateDirection.East_South: headLineOneDir = Vector2.right; headLineTwoDir = Vector2.down; break; case CoordinateDirection.South_West: headLineOneDir = Vector2.down; headLineTwoDir = Vector2.left; break; case CoordinateDirection.West_North: headLineOneDir = Vector2.left; headLineTwoDir = Vector2.up; break; } }
/// <summary> /// Checks the range of the coordinate and returns the error message if not OK. /// </summary> /// <param name = "pCoordinateType">Type of the coordinate.</param> /// <param name = "pCoordinateDirection">The coordinate direction.</param> /// <param name = "pValue">The value.</param> /// <returns>Empty string if witin range and a message otherwise</returns> public static string CheckCoordinate(CoordinateType pCoordinateType, CoordinateDirection pCoordinateDirection, string pValue) { double value; switch (pCoordinateType) { // Latitude-longitude. case CoordinateType.Degrees: if (double.TryParse(pValue, out value)) switch (pCoordinateDirection) { case CoordinateDirection.NorthSouth: if (value >= -90.0 && value <= 90.0) return string.Empty; return CoordinateTypeUtils.GetCoodinateOutOfRangeMessage(pCoordinateType, pCoordinateDirection, "-90.0", "90.0"); case CoordinateDirection.WestEast: if (value >= -180.0 && value <= 180.0) return string.Empty; return CoordinateTypeUtils.GetCoodinateOutOfRangeMessage(pCoordinateType, pCoordinateDirection, "-180.0", "180.0"); default: return string.Empty; } return CoordinateTypeUtils.GetCoodinateUnknownFormatMessage(pCoordinateType, pCoordinateDirection); case CoordinateType.Degreeminutesecond: try { value = GetCoordinateDegreesFromDegreeMinuteSecond(pValue); switch (pCoordinateDirection) { case CoordinateDirection.NorthSouth: if (value >= -90.0 && value <= 90.0) return string.Empty; return CoordinateTypeUtils.GetCoodinateOutOfRangeMessage(pCoordinateType, pCoordinateDirection, DecimalDegreestoDegreeMinuteSecond( -90.0, pCoordinateDirection), DecimalDegreestoDegreeMinuteSecond( 90.0, pCoordinateDirection)); case CoordinateDirection.WestEast: if (value >= -180.0 && value <= 180.0) return string.Empty; return CoordinateTypeUtils.GetCoodinateOutOfRangeMessage(pCoordinateType, pCoordinateDirection, DecimalDegreestoDegreeMinuteSecond( -180.0, pCoordinateDirection), DecimalDegreestoDegreeMinuteSecond( 180.0, pCoordinateDirection)); default: return string.Empty; } } catch (ArgumentException) { return CoordinateTypeUtils.GetCoodinateUnknownFormatMessage(pCoordinateType, pCoordinateDirection); } // Rijksdriehoek. case CoordinateType.Rd: if (double.TryParse(pValue, out value)) switch (pCoordinateDirection) { case CoordinateDirection.NorthSouth: if (value >= 289000.0 && value <= 629000.0) return string.Empty; return CoordinateTypeUtils.GetCoodinateOutOfRangeMessage(pCoordinateType, pCoordinateDirection, "289000.0", "629000.0"); case CoordinateDirection.WestEast: if (value >= -7000.0 && value <= 300000.0) return string.Empty; return CoordinateTypeUtils.GetCoodinateOutOfRangeMessage(pCoordinateType, pCoordinateDirection, "-7000.0", "300000.0"); default: return string.Empty; } return CoordinateTypeUtils.GetCoodinateUnknownFormatMessage(pCoordinateType, pCoordinateDirection); default: return string.Empty; } }
/// <summary> /// Convert decimal degrees (DD) to degree, minute, second (DMS) notation. /// </summary> /// <param name = "pCoordinate">The Coordinate.</param> /// <param name = "pCoordinateDirection">The direction.</param> /// <returns></returns> public static string DecimalDegreestoDegreeMinuteSecond(double pCoordinate, CoordinateDirection pCoordinateDirection) { // Set flag if number is negative var neg = pCoordinate < 0d; // Work with a positive number pCoordinate = Math.Abs(pCoordinate); // Get d/m/s components var d = Math.Floor(pCoordinate); pCoordinate -= d; pCoordinate *= 60; var m = Math.Floor(pCoordinate); pCoordinate -= m; pCoordinate *= 60; var s = Math.Round(pCoordinate); // Create padding character char pad; char.TryParse("0", out pad); // Create d/m/s strings var dd = d.ToString(); var mm = m.ToString().PadLeft(2, pad); var ss = s.ToString().PadLeft(2, pad); // Append d/m/s var dms = string.Format("{0}°{1}'{2}\"", dd, mm, ss); // Append compass heading switch (pCoordinateDirection) { case CoordinateDirection.WestEast: dms += neg ? "W" : "E"; break; case CoordinateDirection.NorthSouth: dms += neg ? "S" : "N"; break; } // Return formated string return dms; }
public Coordinate(float v, CoordinateDirection d) { this.value = v; this.direction = d; }
/// <summary> /// Set new direction for item whenever player clicked on it /// </summary> /// <param name="coordinateDir">Coordinate dir.</param> public void SetDirectionByInputValue(CoordinateDirection coordinateDir) { chooseDirection = coordinateDir; BuildDirection(); GetComponent <DrawLines>().SetDirectionForHeadLines(chooseDirection); }