mirror of
https://github.com/kwsch/PKHeX
synced 2025-02-25 03:47:09 +00:00
Updates from net46->net7, dropping support for mono in favor of using the latest runtime (along with the performance/API improvements). Releases will be posted as 64bit only for now. Refactors a good amount of internal API methods to be more performant and more customizable for future updates & fixes. Adds functionality for Batch Editor commands to `>`, `<` and <=/>= TID/SID properties renamed to TID16/SID16 for clarity; other properties exposed for Gen7 / display variants. Main window has a new layout to account for DPI scaling (8 point grid) Fixed: Tatsugiri and Paldean Tauros now output Showdown form names as Showdown expects Changed: Gen9 species now interact based on the confirmed National Dex IDs (closes #3724) Fixed: Pokedex set all no longer clears species with unavailable non-base forms (closes #3720) Changed: Hyper Training suggestions now apply for level 50 in SV. (closes #3714) Fixed: B2/W2 hatched egg met locations exclusive to specific versions are now explicitly checked (closes #3691) Added: Properties for ribbon/mark count (closes #3659) Fixed: Traded SV eggs are now checked correctly (closes #3692)
44 lines
1.7 KiB
C#
44 lines
1.7 KiB
C#
using System.Collections.Generic;
|
|
|
|
namespace PKHeX.Core;
|
|
|
|
/// <summary>
|
|
/// String Translation Utility
|
|
/// </summary>
|
|
public static class RibbonStrings
|
|
{
|
|
private static readonly Dictionary<string, string> RibbonNames = new();
|
|
|
|
/// <summary>
|
|
/// Resets the Ribbon Dictionary to use the supplied set of Ribbon (Property) Names.
|
|
/// </summary>
|
|
/// <param name="lines">Array of strings that are tab separated with Property Name, \t, and Display Name.</param>
|
|
public static void ResetDictionary(IEnumerable<string> lines)
|
|
{
|
|
// Don't clear existing keys on reset; only update.
|
|
// A language will have the same keys (hopefully), only with differing values.
|
|
foreach (var line in lines)
|
|
{
|
|
var index = line.IndexOf('\t');
|
|
if (index < 0)
|
|
continue;
|
|
var name = line[..index];
|
|
var text = line[(index + 1)..];
|
|
RibbonNames[name] = text;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Returns the Ribbon Display Name for the corresponding <see cref="PKM"/> ribbon property name.
|
|
/// </summary>
|
|
/// <param name="propertyName">Ribbon property name</param>
|
|
/// <returns>Ribbon display name</returns>
|
|
public static string GetName(string propertyName)
|
|
{
|
|
// Throw an exception with the requested property name as the message, rather than an ambiguous "key not present" message.
|
|
// We should ALWAYS have the key present as the input arguments are not user-defined, rather, they are from PKM property names.
|
|
if (!RibbonNames.TryGetValue(propertyName, out var value))
|
|
throw new KeyNotFoundException(propertyName);
|
|
return value;
|
|
}
|
|
}
|