private void InternalDoLogicForShapeSlotResult(GameShape shape, ref int numExposed, ref int numOuterFacesInDirections, Dictionary <GameShape, bool> occludermap) { if (shape != null) { if (shape == this) { return; } numOuterFacesInDirections = numOuterFacesInDirections + 1; bool flag; if (occludermap.TryGetValue(shape, out flag)) { if (flag) { return; } numExposed = numExposed + 1; } else { GameShapeProxy gameShapeProxy = shape.GetRenderProxy() as GameShapeProxy; if ((UnityEngine.Object)gameShapeProxy != (UnityEngine.Object)null && gameShapeProxy.IsOccluding(false, true)) { return; } numExposed = numExposed + 1; } } else { numExposed = numExposed + 1; numOuterFacesInDirections = numOuterFacesInDirections + 1; } }
private void InternalDoLogicForShapeSlotResult(GameShape shape, ref int numExposed, ref int numOuterFacesInDirections) { if (shape != null) { if (shape == this) { return; } numOuterFacesInDirections = numOuterFacesInDirections + 1; GameShapeProxy gameShapeProxy = shape.GetRenderProxy() as GameShapeProxy; if ((UnityEngine.Object)gameShapeProxy != (UnityEngine.Object)null && gameShapeProxy.IsOccluding(false, true)) { return; } numExposed = numExposed + 1; } else { numExposed = numExposed + 1; numOuterFacesInDirections = numOuterFacesInDirections + 1; } }
public void DoStuffForCameraMoveBigRandomOffsetXY(BoardPosition newCameraBoardPos) { int num1 = 11; int num2 = this.ActiveBoard.BoardXSize - 2 * num1; int num3 = this.ActiveBoard.BoardYSize - 2 * num1; int persideslotrange1 = num2 / 2; int persideslotrange2 = num3 / 2; BoardPosition outPosition; if (!this.ActiveBoard.CreateSafeBoardPosition(newCameraBoardPos, out outPosition)) { return; } Vector3 positionWithWeird1 = this.GetWorldCenterPositionForBoardPositionWithWeird(outPosition); int num4 = (this.ActiveBoard.BoardXSize - 1) / 2; int num5 = this.ActiveBoard.BoardXSize - 1 - num4; for (int index = 1; index <= num4; ++index) { int num6 = outPosition.X - index; BoardPosition pos = outPosition; pos.X = num6; this.ActiveBoard.CreateSafeBoardPosition(ref pos); this.BoardXWorldXArray[pos.X] = positionWithWeird1.x - (float)index * this.GetBoardSlotWorldSizeX(); } for (int index = 1; index <= num5; ++index) { int num6 = outPosition.X + index; BoardPosition pos = outPosition; pos.X = num6; this.ActiveBoard.CreateSafeBoardPosition(ref pos); this.BoardXWorldXArray[pos.X] = positionWithWeird1.x + (float)index * this.GetBoardSlotWorldSizeX(); } this.WorldXBoardRange.Min = positionWithWeird1.x - (float)num4 * this.GetBoardSlotWorldSizeX(); this.WorldXBoardRange.Max = positionWithWeird1.x + (float)num5 * this.GetBoardSlotWorldSizeX(); this.UpdateWorldXCameraRange(outPosition, persideslotrange1); int num7 = (this.ActiveBoard.BoardYSize - 1) / 2; int num8 = this.ActiveBoard.BoardYSize - 1 - num7; for (int index = 1; index <= num7; ++index) { int num6 = outPosition.Y - index; BoardPosition pos = outPosition; pos.Y = num6; this.ActiveBoard.CreateSafeBoardPosition(ref pos); this.BoardYWorldYArray[pos.Y] = positionWithWeird1.y - (float)index * this.GetBoardSlotWorldSizeY(); } for (int index = 1; index <= num8; ++index) { int num6 = outPosition.Y + index; BoardPosition pos = outPosition; pos.Y = num6; this.ActiveBoard.CreateSafeBoardPosition(ref pos); this.BoardYWorldYArray[pos.Y] = positionWithWeird1.y + (float)index * this.GetBoardSlotWorldSizeY(); } this.WorldYBoardRange.Min = positionWithWeird1.y - (float)num7 * this.GetBoardSlotWorldSizeY(); this.WorldYBoardRange.Max = positionWithWeird1.y + (float)num8 * this.GetBoardSlotWorldSizeY(); this.UpdateWorldYCameraRange(outPosition, persideslotrange2); int shapesOnBoardCount = this.ActiveBoard.GetShapesOnBoardCount(); for (int index = 0; index < shapesOnBoardCount; ++index) { GameShape gameShape = this.ActiveBoard.ShapeList[index]; Vector3 positionWithWeird2 = this.GetWorldCenterPositionForBoardPositionWithWeird(gameShape.GetAnchorBoardPosition()); gameShape.GetRenderProxy().SetNewWorldPositionForBoardRepositionShift(positionWithWeird2); } }