コード例 #1
0
 protected void ReleaseRenderProxy()
 {
     if (!((UnityEngine.Object) this.RenderProxy != (UnityEngine.Object)null))
     {
         return;
     }
     this.RenderProxy.UnRegisterPrimaryShape();
     this.RenderProxy = (GameShapeProxyBase)null;
 }
コード例 #2
0
 public bool LinkupRenderProxy(GameShapeProxyBase newProxy)
 {
     if ((newProxy != null) && (this.RenderProxy == null))
     {
         this.SetRenderProxy(newProxy);
         newProxy.RegisterPrimaryShape(this);
         return(true);
     }
     Debug.LogError(string.Concat(new object[] { "Error newProxy ", newProxy != null, " RenderProxy ", this.RenderProxy != null }));
     return(false);
 }
コード例 #3
0
    public void UpdateCameraPositionForShape(GameShapeProxyBase following)
    {
        if (!((Object)following != (Object)null) || following.GetPrimaryShape() == null)
        {
            return;
        }
        Vector3 zero = Vector3.zero;

        if (!this.GetCameraPositionForBoardSlot(following.GetPrimaryShape().GetAnchorSlot(), ref zero))
        {
            return;
        }
        this.SetViewingCameraPositionXY(zero);
    }
コード例 #4
0
 protected void SetRenderProxy(GameShapeProxyBase inProxy)
 {
     this.RenderProxy = inProxy;
 }
コード例 #5
0
    private void DoStuffForCameraMove(BoardPosition NOTUSED_newCameraPos, Vector3 newCameraWorldPos)
    {
        int num1 = 11;
        int num2 = this.ActiveBoard.BoardXSize - 2 * num1;
        int num3 = this.ActiveBoard.BoardYSize - 2 * num1;
        int num4 = num2 / 2;
        int num5 = num3 / 2;

        if ((double)newCameraWorldPos.x < (double)this.WorldXCameraRange.Min)
        {
            float num6 = (float)num4 * this.GetBoardSlotWorldSizeX();
            this.WorldXCameraRange.ShiftRange(-num6);
            this.WorldXBoardRange.ShiftRange(-num6);
            for (int index = 0; index < this.BoardXWorldXArray.Length; ++index)
            {
                if ((double)this.BoardXWorldXArray[index] > (double)this.WorldXBoardRange.Max)
                {
                    this.BoardXWorldXArray[index] -= this.BoardXSpanInWorldX;
                }
            }
            int shapesOnBoardCount = this.ActiveBoard.GetShapesOnBoardCount();
            for (int index = 0; index < shapesOnBoardCount; ++index)
            {
                GameShapeProxyBase renderProxy      = this.ActiveBoard.ShapeList[index].GetRenderProxy();
                Vector3            orTargetPosition = renderProxy.GetPositionOrTargetPosition();
                if ((double)orTargetPosition.x > (double)this.WorldXBoardRange.Max)
                {
                    Vector3 newWorldPosition = orTargetPosition;
                    newWorldPosition.x -= this.BoardXSpanInWorldX;
                    renderProxy.SetNewWorldPositionForBoardRepositionShift(newWorldPosition);
                }
            }
        }
        else if ((double)newCameraWorldPos.x > (double)this.WorldXCameraRange.Max)
        {
            float shiftAmount = (float)num4 * this.GetBoardSlotWorldSizeX();
            this.WorldXCameraRange.ShiftRange(shiftAmount);
            this.WorldXBoardRange.ShiftRange(shiftAmount);
            for (int index = 0; index < this.BoardXWorldXArray.Length; ++index)
            {
                if ((double)this.BoardXWorldXArray[index] < (double)this.WorldXBoardRange.Min)
                {
                    this.BoardXWorldXArray[index] += this.BoardXSpanInWorldX;
                }
            }
            int shapesOnBoardCount = this.ActiveBoard.GetShapesOnBoardCount();
            for (int index = 0; index < shapesOnBoardCount; ++index)
            {
                GameShapeProxyBase renderProxy      = this.ActiveBoard.ShapeList[index].GetRenderProxy();
                Vector3            orTargetPosition = renderProxy.GetPositionOrTargetPosition();
                if ((double)orTargetPosition.x < (double)this.WorldXBoardRange.Min)
                {
                    Vector3 newWorldPosition = orTargetPosition;
                    newWorldPosition.x += this.BoardXSpanInWorldX;
                    renderProxy.SetNewWorldPositionForBoardRepositionShift(newWorldPosition);
                }
            }
        }
        if ((double)newCameraWorldPos.y < (double)this.WorldYCameraRange.Min)
        {
            float num6 = (float)num5 * this.GetBoardSlotWorldSizeY();
            this.WorldYCameraRange.ShiftRange(-num6);
            this.WorldYBoardRange.ShiftRange(-num6);
            for (int index = 0; index < this.BoardYWorldYArray.Length; ++index)
            {
                if ((double)this.BoardYWorldYArray[index] > (double)this.WorldYBoardRange.Max)
                {
                    this.BoardYWorldYArray[index] -= this.BoardYSpanInWorldY;
                }
            }
            int shapesOnBoardCount = this.ActiveBoard.GetShapesOnBoardCount();
            for (int index = 0; index < shapesOnBoardCount; ++index)
            {
                GameShapeProxyBase renderProxy      = this.ActiveBoard.ShapeList[index].GetRenderProxy();
                Vector3            orTargetPosition = renderProxy.GetPositionOrTargetPosition();
                if ((double)orTargetPosition.y > (double)this.WorldYBoardRange.Max)
                {
                    Vector3 newWorldPosition = orTargetPosition;
                    newWorldPosition.y -= this.BoardYSpanInWorldY;
                    renderProxy.SetNewWorldPositionForBoardRepositionShift(newWorldPosition);
                }
            }
        }
        else
        {
            if ((double)newCameraWorldPos.y <= (double)this.WorldYCameraRange.Max)
            {
                return;
            }
            float shiftAmount = (float)num5 * this.GetBoardSlotWorldSizeY();
            this.WorldYCameraRange.ShiftRange(shiftAmount);
            this.WorldYBoardRange.ShiftRange(shiftAmount);
            for (int index = 0; index < this.BoardYWorldYArray.Length; ++index)
            {
                if ((double)this.BoardYWorldYArray[index] < (double)this.WorldYBoardRange.Min)
                {
                    this.BoardYWorldYArray[index] += this.BoardYSpanInWorldY;
                }
            }
            int shapesOnBoardCount = this.ActiveBoard.GetShapesOnBoardCount();
            for (int index = 0; index < shapesOnBoardCount; ++index)
            {
                GameShapeProxyBase renderProxy      = this.ActiveBoard.ShapeList[index].GetRenderProxy();
                Vector3            orTargetPosition = renderProxy.GetPositionOrTargetPosition();
                if ((double)orTargetPosition.y < (double)this.WorldYBoardRange.Min)
                {
                    Vector3 newWorldPosition = orTargetPosition;
                    newWorldPosition.y += this.BoardYSpanInWorldY;
                    renderProxy.SetNewWorldPositionForBoardRepositionShift(newWorldPosition);
                }
            }
        }
    }