diff --git a/Facepunch.Steamworks/Generated/SteamEnums.cs b/Facepunch.Steamworks/Generated/SteamEnums.cs index 329672c..f87174e 100644 --- a/Facepunch.Steamworks/Generated/SteamEnums.cs +++ b/Facepunch.Steamworks/Generated/SteamEnums.cs @@ -756,7 +756,7 @@ public enum GamepadTextInputLineMode : int // // ETextFilteringContext // - internal enum TextFilteringContext : int + public enum TextFilteringContext : int { Unknown = 0, GameContent = 1, diff --git a/Facepunch.Steamworks/SteamUtils.cs b/Facepunch.Steamworks/SteamUtils.cs index 9d3eea0..8ca3f83 100644 --- a/Facepunch.Steamworks/SteamUtils.cs +++ b/Facepunch.Steamworks/SteamUtils.cs @@ -261,5 +261,21 @@ internal static bool IsCallComplete( SteamAPICall_t call, out bool failed ) /// Returns whether this steam client is a Steam China specific client, vs the global client /// public static bool IsSteamChinaLauncher => Internal.IsSteamChinaLauncher(); + + /// + /// Initializes text filtering, loading dictionaries for the language the game is running in. + /// Users can customize the text filter behavior in their Steam Account preferences + /// + public static bool InitFilterText() => Internal.InitFilterText( 0 ); + + /// + /// Filters the provided input message and places the filtered result into pchOutFilteredText, + /// using legally required filtering and additional filtering based on the context and user settings. + /// + public string FilterText( TextFilteringContext context, SteamId sourceSteamID, string inputMessage ) + { + Internal.FilterText( context, sourceSteamID, inputMessage, out var filteredString ); + return filteredString; + } } } \ No newline at end of file diff --git a/Generator/Cleanup.cs b/Generator/Cleanup.cs index 77239ff..036699e 100644 --- a/Generator/Cleanup.cs +++ b/Generator/Cleanup.cs @@ -144,6 +144,7 @@ internal static string Expose( string name ) if ( name == "NetDebugOutput" ) return "public"; if ( name == "ItemPreviewType" ) return "public"; if ( name == "OverlayToStoreFlag" ) return "public"; + if ( name == "TextFilteringContext " ) return "public"; return "internal"; }