public static GridPos RotateGridPos(GridPos oriGP, GridPosR.Orientation orientation) { switch (orientation) { case GridPosR.Orientation.Up: { return(oriGP); } case GridPosR.Orientation.Right: { return(new GridPos(oriGP.z, -oriGP.x)); } case GridPosR.Orientation.Down: { return(new GridPos(-oriGP.x, -oriGP.z)); } case GridPosR.Orientation.Left: { return(new GridPos(-oriGP.z, oriGP.x)); } } return(new GridPos(0, 0)); }
public void Rotate() { GridPosR.Orientation newOri = GridPosR.RotateOrientationClockwise90(InventoryItem.GridPos_Matrix.orientation); GridPosR newGPR = new GridPosR(InventoryItem.GridPos_Matrix.x, InventoryItem.GridPos_Matrix.z, newOri); InventoryItem.SetGridPosition(newGPR); }
public static GridPosR.OrientationFlag ToFlag(this GridPosR.Orientation ori) { switch (ori) { case GridPosR.Orientation.Up: { return(GridPosR.OrientationFlag.Up); } case GridPosR.Orientation.Down: { return(GridPosR.OrientationFlag.Down); } case GridPosR.Orientation.Left: { return(GridPosR.OrientationFlag.Left); } case GridPosR.Orientation.Right: { return(GridPosR.OrientationFlag.Right); } } return(0); }
private void Rotate() { if (!InventoryItem.ItemContentInfo.Rotatable) { return; } GridPosR.Orientation newOri = GridPosR.RotateOrientationClockwise90(InventoryItem.GridPos_Matrix.orientation); InventoryItem.GridPos_Matrix = new GridPosR(InventoryItem.GridPos_Matrix.x, InventoryItem.GridPos_Matrix.z, newOri); SetVirtualGridPos(InventoryItem.GridPos_World); dragStartLocalPos += new Vector2(InventoryItem.BoundingRect.x_min * UIInventory.GridSize, -InventoryItem.BoundingRect.z_min * UIInventory.GridSize) - RectTransform.anchoredPosition; RefreshView(); }
public static List <GridPos3D> TransformOccupiedPositions_XZ(GridPosR.Orientation orientation, List <GridPos3D> ori_OccupiedPositions) { List <GridPos3D> res = new List <GridPos3D>(); foreach (GridPos3D oriGP in ori_OccupiedPositions) { GridPos temp_rot = GridPos.RotateGridPos(new GridPos(oriGP.x, oriGP.z), orientation); GridPos3D final = new GridPos3D(temp_rot.x, oriGP.y, temp_rot.z); res.Add(final); } return(res); }
public void SetConnection(GridPosR.OrientationFlag adjacentConnection, GridPosR.OrientationFlag diagonalConnection) { foreach (GridPosR.Orientation orientation in Enum.GetValues(typeof(GridPosR.Orientation))) { MainImageBorders[(int)orientation].enabled = !adjacentConnection.HasFlag(orientation.ToFlag()); GridPosR.Orientation next = GridPosR.RotateOrientationClockwise90(orientation); if (!adjacentConnection.HasFlag(orientation.ToFlag()) && !adjacentConnection.HasFlag(next.ToFlag())) { SideImageBorders[((int)orientation) * 2].enabled = false; SideImageBorders[((int)orientation) * 2 + 1].enabled = false; } else if (adjacentConnection.HasFlag(orientation.ToFlag()) && adjacentConnection.HasFlag(next.ToFlag())) { if (diagonalConnection.HasFlag(orientation.ToFlag())) { SideImageBorders[((int)orientation) * 2].enabled = false; SideImageBorders[((int)orientation) * 2 + 1].enabled = false; } else { SideImageBorders[((int)orientation) * 2].enabled = true; SideImageBorders[((int)orientation) * 2 + 1].enabled = true; } } else { if (adjacentConnection.HasFlag(orientation.ToFlag())) { SideImageBorders[((int)orientation) * 2].enabled = true; SideImageBorders[((int)orientation) * 2 + 1].enabled = false; } else { SideImageBorders[((int)orientation) * 2].enabled = false; SideImageBorders[((int)orientation) * 2 + 1].enabled = true; } } } }
public void Initialize() { Orientation = GridPosR.GetGridPosByLocalTrans(transform, ConfigManager.GridSize).orientation; }