public void SetDefaults(string ItemName)
{
var type = Type.GetType("Terraria.Item");
// 元のメソッドを呼び出す
type.GetMethod("_SetDefaults").Invoke(this, new object[] { ItemName });
// アイテム名を取得
var iname = (string)type.GetField("name").GetValue(this);
// 既にアイテム名がセットされていれば何もしない
if (iname != "") return;
// 日本語アイテム名から英語アイテム名を呼び出し、再度自分を呼び出す
Dictionary<int, string> dic;
Dictionary<int, string> dic_en;
if (Ja.language.TryGetValue("items", out dic) && Ja.language.TryGetValue("items_en", out dic_en))
{
foreach (var pair in dic)
{
if (ItemName == pair.Value)
{
var str_en = "";
if (dic_en.TryGetValue(pair.Key, out str_en))
{
SetDefaults(str_en);
return;
}
}
}
}
}