コード例 #1
0
ファイル: GridPos.cs プロジェクト: Biang2016/BiangLibrary
        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));
        }
コード例 #2
0
ファイル: Building.cs プロジェクト: Biang2016/UnderseaCity
    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);
    }
コード例 #3
0
ファイル: GridUtils.cs プロジェクト: Biang2016/BiangLibrary
        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);
        }
コード例 #4
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();
 }
コード例 #5
0
ファイル: GridPos.cs プロジェクト: Biang2016/BiangLibrary
        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);
        }
コード例 #6
0
        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;
                    }
                }
            }
        }
コード例 #7
0
 public void Initialize()
 {
     Orientation = GridPosR.GetGridPosByLocalTrans(transform, ConfigManager.GridSize).orientation;
 }