/// <summary> /// Rotates the object /// </summary> public virtual void Rotate(bool isClockWise) { this.Size = this.Size.Rotate(isClockWise); this.transform.localEulerAngles += new Vector3(0, 0, isClockWise ? -90 : 90); if (isClockWise) { this.Rotation++; } else { this.Rotation--; } this.OnMove(); }
/// <summary> /// Constructs a list of needed coordinates /// </summary> /// <param name="targetEntity">Target entity</param> /// <param name="index">Index coordinate</param> /// <returns>A list of coordinates that the target entity will take up</returns> private List <GridCoordinate> _getNeededCoordinates(GridCoordinate index, GridEntitySize entitySize) { List <GridCoordinate> result = new List <GridCoordinate>(); int signX = entitySize.ExtrudeX > 0 ? 1 : -1; int signY = entitySize.ExtrudeY > 0 ? 1 : -1; for (int x = 0; x <= Math.Abs(entitySize.ExtrudeX); x++) { for (int y = 0; y <= Math.Abs(entitySize.ExtrudeY); y++) { result.Add(index + new GridCoordinate(x * signX, y * signY)); } } return(result); }