private static int repairPieces(float radius) { Player player = Player.m_localPlayer; if (!player) { return(0); } int count = 0; Collider[] array = Physics.OverlapSphere(player.transform.position, radius, destroyMask); for (int i = 0; i < array.Length; i++) { Piece piece = array[i].GetComponentInParent <Piece>(); if (piece) { if (!piece.IsCreator() && !allowRepairOther.Value) { continue; } if (requireCraftingStation.Value && !Traverse.Create(player).Method("CheckCanRemovePiece", new object[] { piece }).GetValue <bool>()) { continue; } ZNetView component = piece.GetComponent <ZNetView>(); if (component == null) { continue; } WearNTear wnt = piece.GetComponent <WearNTear>(); if (!wnt || !wnt.Repair()) { continue; } count++; } } Player.m_localPlayer.Message(MessageHud.MessageType.Center, string.Format(repairMessage.Value, count)); return(count); }