public List <string> GetWarningMessages(string combinations) { var hashes = new List <long>(); var errorMessages = new List <string>(); foreach (var combo in combinations.Split('/')) { var hash = ModInputLibrary.StringToHash(combo); if (hash <= 0) { errorMessages.Add(ModInputLibrary.GetReadableMessage((RegistrationCode)(-hash))); continue; } hashes.Add(hash); } var warningMessages = GetCollisions(hashes.AsReadOnly()) .Select(combination => $"Collides with {combination}").ToList(); warningMessages.AddRange(errorMessages); return(warningMessages); }
private List <long> StringToHashes(string combinations) { var hashes = new List <long>(); foreach (var combo in combinations.Split('/')) { var hash = ModInputLibrary.StringToHash(combo); if (hash <= 0) { _console.WriteLine($"Warning: Invalid part of combo in {FullName}: {combo}, " + ModInputLibrary.GetReadableMessage((RegistrationCode)hash)); continue; } hashes.Add(hash); if (hash < ModInputLibrary.MaxUsefulKey) { _singles.Add((KeyCode)hash); } } return(hashes); }