private void LoadTypeDefinitions() { var assemblyName = typeof(Terraria.BitsByte).Assembly.GetName().Name; TerrariaAssembly = _module.GetAssemblyRef(assemblyName) ?? new AssemblyRefUser(assemblyName); ModTranslationType = new TypeRefUser(_module, typeof(Terraria.ModLoader.ModTranslation).Namespace, nameof(Terraria.ModLoader.ModTranslation), TerrariaAssembly); SetDefaultMethod = new MemberRefUser(_module, nameof(Terraria.ModLoader.ModTranslation.SetDefault), MethodSig.CreateInstance(_module.CorLibTypes.Void, _module.CorLibTypes.String), ModTranslationType); var gameCultureType = new TypeRefUser(_module, typeof(Terraria.Localization.GameCulture).Namespace, nameof(Terraria.Localization.GameCulture), TerrariaAssembly); AddTranslationMethod = new MemberRefUser(_module, nameof(Terraria.ModLoader.ModTranslation.AddTranslation), MethodSig.CreateInstance(_module.CorLibTypes.Void, new ClassSig(gameCultureType), _module.CorLibTypes.String), ModTranslationType); GameCultureField = new MemberRefUser(_module, _lang.ToString(), new FieldSig(new ClassSig(gameCultureType)), gameCultureType); GetTextValueMethod = new MemberRefUser(_module, nameof(Terraria.Localization.Language.GetTextValue), MethodSig.CreateStatic(_module.CorLibTypes.String, _module.CorLibTypes.String), new TypeRefUser(_module, typeof(Terraria.Localization.Language).Namespace, nameof(Terraria.Localization.Language), TerrariaAssembly)); var modType = new TypeRefUser(_module, typeof(Terraria.ModLoader.Mod).Namespace, nameof(Terraria.ModLoader.Mod), TerrariaAssembly); AddGlobalTranslationMethod = new MemberRefUser(_module, nameof(Terraria.ModLoader.Mod.AddTranslation), MethodSig.CreateInstance(_module.CorLibTypes.Void, new ClassSig(ModTranslationType)), modType); CreateGlobalTranslationMethod = new MemberRefUser(_module, nameof(Terraria.ModLoader.Mod.CreateTranslation), MethodSig.CreateInstance(new ClassSig(ModTranslationType), _module.CorLibTypes.String), modType); }