public static void FixTileWallCollision(this BlockFaceEdge blockFace) { if (blockFace.TileNumber == 0) { return; } TileWallCollisionFix tileWallCollisionFix; var add = false; if (!TileWallCollisionFixes.TryGetValue(blockFace.TileNumber, out tileWallCollisionFix)) { tileWallCollisionFix = new TileWallCollisionFix(); add = true; } if (blockFace.Wall) { if (blockFace.BulletWall) { tileWallCollisionFix.CollisionCount++; } else { tileWallCollisionFix.NoBulletCollision++; } if (tileWallCollisionFix.NoCollisionCount > 0 && !MismatchTiles.Contains(blockFace.TileNumber)) { MismatchTiles.Add(blockFace.TileNumber); } } else { tileWallCollisionFix.NoCollisionCount++; if (tileWallCollisionFix.CollisionCount > 0 && !MismatchTiles.Contains(blockFace.TileNumber)) { MismatchTiles.Add(blockFace.TileNumber); } } tileWallCollisionFix.TileNumber = blockFace.TileNumber; tileWallCollisionFix.BlockFaces.Add(blockFace); if (add) { TileWallCollisionFixes.Add(blockFace.TileNumber, tileWallCollisionFix); } }
public static void FixTileWallCollision(this BlockFaceEdge blockFace) { if (blockFace.TileNumber == 0) return; TileWallCollisionFix tileWallCollisionFix; var add = false; if (!TileWallCollisionFixes.TryGetValue(blockFace.TileNumber, out tileWallCollisionFix)) { tileWallCollisionFix = new TileWallCollisionFix(); add = true; } if (blockFace.Wall) { if (blockFace.BulletWall) tileWallCollisionFix.CollisionCount++; else tileWallCollisionFix.NoBulletCollision++; if (tileWallCollisionFix.NoCollisionCount > 0 && !MismatchTiles.Contains(blockFace.TileNumber)) MismatchTiles.Add(blockFace.TileNumber); } else { tileWallCollisionFix.NoCollisionCount++; if (tileWallCollisionFix.CollisionCount > 0 && !MismatchTiles.Contains(blockFace.TileNumber)) MismatchTiles.Add(blockFace.TileNumber); } tileWallCollisionFix.TileNumber = blockFace.TileNumber; tileWallCollisionFix.BlockFaces.Add(blockFace); if (add) TileWallCollisionFixes.Add(blockFace.TileNumber, tileWallCollisionFix); }