diff --git a/package/Resources/Binaries/ClientUpdater.dll b/package/Resources/Binaries/ClientUpdater.dll index 711f09fac..5baa99a60 100644 Binary files a/package/Resources/Binaries/ClientUpdater.dll and b/package/Resources/Binaries/ClientUpdater.dll differ diff --git a/package/Resources/Binaries/ClientUpdater.pdb b/package/Resources/Binaries/ClientUpdater.pdb index a4a20bdda..353d25365 100644 Binary files a/package/Resources/Binaries/ClientUpdater.pdb and b/package/Resources/Binaries/ClientUpdater.pdb differ diff --git a/package/Resources/Binaries/Cyotek.Drawing.BitmapFont.dll b/package/Resources/Binaries/Cyotek.Drawing.BitmapFont.dll new file mode 100644 index 000000000..63d202477 Binary files /dev/null and b/package/Resources/Binaries/Cyotek.Drawing.BitmapFont.dll differ diff --git a/package/Resources/Binaries/FontStashSharp.Base.dll b/package/Resources/Binaries/FontStashSharp.Base.dll new file mode 100644 index 000000000..ed11441f7 Binary files /dev/null and b/package/Resources/Binaries/FontStashSharp.Base.dll differ diff --git a/package/Resources/Binaries/FontStashSharp.Rasterizers.StbTrueTypeSharp.dll b/package/Resources/Binaries/FontStashSharp.Rasterizers.StbTrueTypeSharp.dll new file mode 100644 index 000000000..e7a38015c Binary files /dev/null and b/package/Resources/Binaries/FontStashSharp.Rasterizers.StbTrueTypeSharp.dll differ diff --git a/package/Resources/Binaries/FontStashSharp.TextShapers.HarfBuzz.dll b/package/Resources/Binaries/FontStashSharp.TextShapers.HarfBuzz.dll new file mode 100644 index 000000000..3a24a6b6e Binary files /dev/null and b/package/Resources/Binaries/FontStashSharp.TextShapers.HarfBuzz.dll differ diff --git a/package/Resources/Binaries/HarfBuzzSharp.dll b/package/Resources/Binaries/HarfBuzzSharp.dll new file mode 100644 index 000000000..3c930dbab Binary files /dev/null and b/package/Resources/Binaries/HarfBuzzSharp.dll differ diff --git a/package/Resources/Binaries/Microsoft.Bcl.HashCode.dll b/package/Resources/Binaries/Microsoft.Bcl.HashCode.dll new file mode 100644 index 000000000..7028cb752 Binary files /dev/null and b/package/Resources/Binaries/Microsoft.Bcl.HashCode.dll differ diff --git a/package/Resources/Binaries/OpenGL/ClientCore.dll b/package/Resources/Binaries/OpenGL/ClientCore.dll index 83f3c70e6..7733ffc5d 100644 Binary files a/package/Resources/Binaries/OpenGL/ClientCore.dll and b/package/Resources/Binaries/OpenGL/ClientCore.dll differ diff --git a/package/Resources/Binaries/OpenGL/ClientCore.pdb b/package/Resources/Binaries/OpenGL/ClientCore.pdb index 1bb44cb73..a6fbed034 100644 Binary files a/package/Resources/Binaries/OpenGL/ClientCore.pdb and b/package/Resources/Binaries/OpenGL/ClientCore.pdb differ diff --git a/package/Resources/Binaries/OpenGL/ClientGUI.dll b/package/Resources/Binaries/OpenGL/ClientGUI.dll index 71858d98d..0db8c5dc7 100644 Binary files a/package/Resources/Binaries/OpenGL/ClientGUI.dll and b/package/Resources/Binaries/OpenGL/ClientGUI.dll differ diff --git a/package/Resources/Binaries/OpenGL/ClientGUI.pdb b/package/Resources/Binaries/OpenGL/ClientGUI.pdb index 1739a2acc..de54d66fd 100644 Binary files a/package/Resources/Binaries/OpenGL/ClientGUI.pdb and b/package/Resources/Binaries/OpenGL/ClientGUI.pdb differ diff --git a/package/Resources/Binaries/OpenGL/FontStashSharp.MonoGame.dll b/package/Resources/Binaries/OpenGL/FontStashSharp.MonoGame.dll new file mode 100644 index 000000000..d075ee17f Binary files /dev/null and b/package/Resources/Binaries/OpenGL/FontStashSharp.MonoGame.dll differ diff --git a/package/Resources/Binaries/OpenGL/Rampastring.XNAUI.WindowsGL.dll b/package/Resources/Binaries/OpenGL/Rampastring.XNAUI.WindowsGL.dll index 70d7f4fda..46e9fb330 100644 Binary files a/package/Resources/Binaries/OpenGL/Rampastring.XNAUI.WindowsGL.dll and b/package/Resources/Binaries/OpenGL/Rampastring.XNAUI.WindowsGL.dll differ diff --git a/package/Resources/Binaries/OpenGL/Rampastring.XNAUI.WindowsGL.pdb b/package/Resources/Binaries/OpenGL/Rampastring.XNAUI.WindowsGL.pdb index 2321b52a1..a804f5723 100644 Binary files a/package/Resources/Binaries/OpenGL/Rampastring.XNAUI.WindowsGL.pdb and b/package/Resources/Binaries/OpenGL/Rampastring.XNAUI.WindowsGL.pdb differ diff --git a/package/Resources/Binaries/OpenGL/Rampastring.XNAUI.WindowsGL.xml b/package/Resources/Binaries/OpenGL/Rampastring.XNAUI.WindowsGL.xml index 0fe6301d4..37ef56ada 100644 --- a/package/Resources/Binaries/OpenGL/Rampastring.XNAUI.WindowsGL.xml +++ b/package/Resources/Binaries/OpenGL/Rampastring.XNAUI.WindowsGL.xml @@ -171,11 +171,6 @@ Plays this sound if it's enabled. - - - Disposes the sound effect. - - Updates the priority of the sound. Returns true if the sound effect is @@ -184,6 +179,228 @@ Tells how much time has passed since the previous frame. True if the sound effect is still playing, otherwise false. + + + Sets the root directory for the ContentManager with XNA vs MonoGame differences. + + The ContentManager instance. + The new root directory path. + + + + Extension methods for . + + + + + Returns a substring of this string starting at and containing at most + UTF-16 code units, ensuring the result does not end with an orphaned high surrogate. + + The string to slice. + The zero-based start index of the substring. + Maximum number of UTF-16 code units to include in the result. Must be non-negative. + The safe substring. + + + + Manages font loading and rendering for the UI system. + Supports both SpriteFont and TrueType fonts with automatic fallback. + + + + For TrueType fonts, FontManager creates a separate FontSystem for each font index. + Each FontSystem has a primary font (specified via Path) and optional per-font fallback + chain (via Fallback=N pointing to another font index). When a character is not found in + the primary font, it falls back through the chain in order. + + + The Fonts.ini file format supports: + + [TextShaping] - Optional HarfBuzz text shaping configuration + [Fonts] - Font index definitions with Size, Type, optional Path, and optional Fallback + + + + + + + When set before runs, skips the Fonts.ini search and + loads only legacy SpriteFontN.xnb assets. Lets clients offer an opt-out from + TrueType rendering. + + + + + Gets the current text shaping settings. + + + + + Gets the current font rendering settings. + + + + + Checks if text shaping is currently enabled. + + + + + Creates a new FontSystem with current text shaping settings. + + + + + Loads fonts from the first Fonts.ini found in asset search paths. + + + + Loading happens in two phases: + + + Phase 1: Load configuration from the first Fonts.ini: + - [TextShaping] settings + - [Fonts] definitions (type, path, size, fallback) + + + Phase 2: Create font indexes: + - For TrueType fonts: Create a FontSystem with primary font first, then follow the per-font fallback chain + - For SpriteFonts: Load the .xnb file + + + + When non-null, overrides any FontResolutionFactor from [FontRendering] + in Fonts.ini. Used by to keep TTF + glyphs sharp when the render target is upscaled. + + + + + Loads fonts from a specific Fonts.ini file. + + + + + Creates FontIndex entries from a Fonts.ini file. + For each TrueType font, creates a separate FontSystem with the primary font first, + then follows the per-font fallback chain to add additional fonts. + + + + + Creates a TrueType font index with its own FontSystem. + The FontSystem contains the primary font first, then fonts from + the fallback chain (each [FontN] can point to another via Fallback=X). + + + + + Loads a SpriteFont and adds it to the font list. + + + + + Loads legacy SpriteFonts (SpriteFont0, SpriteFont1, etc.) from a search path. + This method appends new fonts to the existing font list instead of replacing it. + + + + + Configuration for FontStashSharp glyph rasterization. + + + + + Horizontal blur kernel size used by FontStashSharp when rasterizing glyphs. + Maps to FontSystemSettings.KernelWidth. Must be non-negative. + + + + + Vertical blur kernel size used by FontStashSharp when rasterizing glyphs. + Maps to FontSystemSettings.KernelHeight. Must be non-negative. + + + + + Multiplier applied to the rasterization size of each glyph. + Values > 1 produce sharper output when text is drawn at scales above 1.0 + at the cost of a larger atlas footprint. + + + + + Width of each FontStashSharp atlas page, in pixels. + + + + + Height of each FontStashSharp atlas page, in pixels. + + + + + How rasterized glyph pixels are produced. + matches a premultiplied-alpha SpriteBatch, + matches AlphaBlend, and + produces hard 1-bit edges for pixel-art fonts. + + + + + Configuration for HarfBuzz text shaping. + Text shaping is required for complex scripts (Arabic, Hebrew, Hindi, etc.) + and proper rendering of emoji sequences and ligatures. + + + + + Enable HarfBuzz text shaping for complex scripts. + When enabled, text will be properly shaped for languages that require it. + + + + + Enable bidirectional text support for mixed LTR/RTL text. + Only applies when Enabled is true. + + + + + Size of the shaped text cache. + Higher values use more memory but reduce shaping overhead for repeated text. + Default: 100 + + + + + Returns the value V to plug into (controlHeight - V) / 2 for + vertical centering. NOT a geometric height: this is top + bottom of the + cap glyph 'H' from the draw origin (i.e. minY + maxY from FontStashSharp's + TextBounds), chosen so the cap-glyph midpoint lands at controlHeight / 2 + independent of descenders. The geometric glyph height would be maxY - minY. + + + + + For TTF fonts, this always returns true because FontStashSharp can dynamically + generate glyphs for any character. If a glyph is not available in the font file, + a replacement glyph (like � or ?) will be rendered instead. + + + + + Returns a sanitized string safe for rendering. It replaces unpaired surrogates + with U+FFFD so FontStashSharp's UTF-16 -> UTF-32 conversion does not throw. + + + + + Replaces unpaired UTF-16 surrogates with U+FFFD. Returns the original + string reference unchanged when the input is already valid (the common case), + to avoid allocations on the rendering hot path. + + The exception that is thrown when the fails to find a matching @@ -369,17 +586,13 @@ Allows the user to close the game form by Alt-F4. - + - Provides static methods for drawing. + Reloads fonts with a new resolution factor matching the given scale ratio, + so TTF glyphs are rasterized at native display quality rather than being + scaled up from the render resolution. - - - Clears all potentially existing loaded fonts and then loads fonts from asset loader directories. - - A XNA/MonoGame ContentManager instance. - Allows direct access to the list of loaded fonts. @@ -387,16 +600,15 @@ - Returns a version of the given string where all characters that don't - appear in the given font have been replaced with question marks. + Returns a version of the given string that the font renderer can safely display without crashing. The string. The index of the font. - Returns a that has had its width limited to a specific number. - Characters that'd cross over the width have been cut. + Returns a string that has had its width limited to a specific number. + Characters that would cross over the width have been cut. The string to limit. The index of the font to use. @@ -664,6 +876,12 @@ The control, of the highest generation, that the mouse cursor is currently positioned on. + + + If specified, the control blocks other controls on the screen + from being interacted with. Defaults to null. + + Sets the rendering (back buffer) resolution of the game. @@ -1125,18 +1343,39 @@ Raised when the mouse cursor enters the control's area. + + + Raised during the tunneling phase when the left mouse button is pressed down. + Fires on ancestors from outermost to innermost before bubbles. + If handled, the bubbling phase is suppressed. + + Raised once when the left mouse button is pressed down while the cursor is inside the control's area. + + + Raised during the tunneling phase when the right mouse button is pressed down. + Fires on ancestors from outermost to innermost before bubbles. + If handled, the bubbling phase is suppressed. + + Raised once when the right mouse button is pressed down while the cursor is inside the control's area. + + + Raised during the tunneling phase when the middle mouse button is pressed down. + Fires on ancestors from outermost to innermost before bubbles. + If handled, the bubbling phase is suppressed. + + Raised once when the middle mouse button is pressed down while the @@ -1158,6 +1397,20 @@ Raised each frame when the mouse cursor is inside the control's area. + + + Raised during the tunneling phase when the scroll wheel is used to scroll vertically. + Fires on ancestors from outermost to innermost before bubbles. + If handled, the bubbling phase is suppressed. + + + + + Raised during the tunneling phase when the scroll wheel is used to scroll horizontally. + Fires on ancestors from outermost to innermost before bubbles. + If handled, the bubbling phase is suppressed. + + Raised when the scroll wheel is used to scroll vertically @@ -1170,6 +1423,13 @@ while the cursor is inside the control. + + + Raised during the tunneling phase when the left mouse button is clicked. + Fires on ancestors from outermost to innermost before bubbles. + If handled, the bubbling phase is suppressed. + + Raised when the left mouse button is clicked (pressed and released) @@ -1182,12 +1442,26 @@ time-frame while the cursor is inside the control's area. + + + Raised during the tunneling phase when the right mouse button is clicked. + Fires on ancestors from outermost to innermost before bubbles. + If handled, the bubbling phase is suppressed. + + Raised when the right mouse button is clicked (pressed and released) while the cursor is inside the control's area. + + + Raised during the tunneling phase when the middle mouse button is clicked. + Fires on ancestors from outermost to innermost before bubbles. + If handled, the bubbling phase is suppressed. + + Raised when the middle mouse button is clicked (pressed and released) @@ -1727,45 +2001,87 @@ Called when the mouse cursor leaves the control's client rectangle. + + + Called during the tunneling phase when the left mouse button is pressed down. + Fires on ancestors from outermost to innermost before . + Set to true to suppress the bubbling phase. + + Called once when the left mouse button is pressed down while the cursor is on the control. + + + Called during the tunneling phase when the right mouse button is pressed down. + Fires on ancestors from outermost to innermost before . + Set to true to suppress the bubbling phase. + + Called once when the right mouse button is pressed down while the cursor is on the control. + + + Called during the tunneling phase when the middle mouse button is pressed down. + Fires on ancestors from outermost to innermost before . + Set to true to suppress the bubbling phase. + + Called once when the middle mouse button is pressed down while the cursor is on the control. + + + Called during the tunneling phase when the left mouse button is clicked. + Fires on ancestors from outermost to innermost before . + Set to true to suppress the bubbling phase. + + - Called when the left mouse button has been + Called when the left mouse button has been clicked on the control's client rectangle. - Called when the left mouse button has been + Called when the left mouse button has been clicked twice on the control's client rectangle. + + + Called during the tunneling phase when the right mouse button is clicked. + Fires on ancestors from outermost to innermost before . + Set to true to suppress the bubbling phase. + + - Called when the right mouse button has been + Called when the right mouse button has been clicked on the control's client rectangle. + + + Called during the tunneling phase when the middle mouse button is clicked. + Fires on ancestors from outermost to innermost before . + Set to true to suppress the bubbling phase. + + - Called when the middle mouse button has been + Called when the middle mouse button has been clicked on the control's client rectangle. @@ -1780,9 +2096,23 @@ client rectangle. + + + Called during the tunneling phase when the scroll wheel has been scrolled vertically. + Fires on ancestors from outermost to innermost before . + Set to true to suppress the bubbling phase. + + + + + Called during the tunneling phase when the scroll wheel has been scrolled horizontally. + Fires on ancestors from outermost to innermost before . + Set to true to suppress the bubbling phase. + + - Called when the scroll wheel has been scrolled on the + Called when the scroll wheel has been scrolled on the control's client rectangle. @@ -1859,6 +2189,41 @@ If set, the drop-down is opened upwards rather than downwards. + + + When the selected item's text is too wide for the closed control, it is always + cut off at the last fully fitting character so it does not visually overrun the + control's bounds. If this property is enabled, an ellipsis ("...") is appended + to indicate that the text has been truncated. + + + + + The width of the open dropdown list. Computed in as the + maximum of and the widest item's content width, so + wide items remain fully visible when the list is expanded. + + + + + Stores the control width used when the dropdown is closed so it can be restored + after the expanded list has temporarily widened the control. Null when no closed + width has been captured yet, so a legitimate of 0 + is preserved instead of being treated as "not captured". + + + + + Ensures the framework-visible control width matches the actual visible dropdown + width while the list is open, and restores the original width when the list closes. + + + + + Current visible width of the control, accounting for whether the dropdown list + is open and may be wider than the closed-state . + + Adds an item into the drop-down. @@ -1898,6 +2263,18 @@ Returns the index of the item that the cursor currently points to. + + + Invalidates the cached display text. + + + + + Gets the display text for the selected item, fitted to the control's bounds so + it does not visually overrun the control. Appends an ellipsis to indicate + truncation when is enabled. + + Draws the drop-down. diff --git a/package/Resources/Binaries/OpenMcdf.dll b/package/Resources/Binaries/OpenMcdf.dll index 0fb14ffc5..ecab31496 100644 Binary files a/package/Resources/Binaries/OpenMcdf.dll and b/package/Resources/Binaries/OpenMcdf.dll differ diff --git a/package/Resources/Binaries/Rampastring.Tools.dll b/package/Resources/Binaries/Rampastring.Tools.dll index 3a0e01313..c2d6b3d23 100644 Binary files a/package/Resources/Binaries/Rampastring.Tools.dll and b/package/Resources/Binaries/Rampastring.Tools.dll differ diff --git a/package/Resources/Binaries/Rampastring.Tools.pdb b/package/Resources/Binaries/Rampastring.Tools.pdb index 39c5cf9f7..884787b6f 100644 Binary files a/package/Resources/Binaries/Rampastring.Tools.pdb and b/package/Resources/Binaries/Rampastring.Tools.pdb differ diff --git a/package/Resources/Binaries/Rampastring.Tools.xml b/package/Resources/Binaries/Rampastring.Tools.xml index ac4f89e73..0cc4b8e30 100644 --- a/package/Resources/Binaries/Rampastring.Tools.xml +++ b/package/Resources/Binaries/Rampastring.Tools.xml @@ -267,6 +267,14 @@ The first INI file. The second INI file. + + + Gets or sets a value that determines whether reading from or writing to a file + named "desktop.ini" (in any directory) is forbidden. When set to , + any such attempt throws an . + Defaults to . + + Creates a new INI file instance. diff --git a/package/Resources/Binaries/StbImageSharp.dll b/package/Resources/Binaries/StbImageSharp.dll new file mode 100644 index 000000000..deae52a33 Binary files /dev/null and b/package/Resources/Binaries/StbImageSharp.dll differ diff --git a/package/Resources/Binaries/StbTrueTypeSharp.dll b/package/Resources/Binaries/StbTrueTypeSharp.dll new file mode 100644 index 000000000..41fe0c797 Binary files /dev/null and b/package/Resources/Binaries/StbTrueTypeSharp.dll differ diff --git a/package/Resources/Binaries/OpenGL/Ude.NetStandard.dll b/package/Resources/Binaries/Ude.NetStandard.dll similarity index 100% rename from package/Resources/Binaries/OpenGL/Ude.NetStandard.dll rename to package/Resources/Binaries/Ude.NetStandard.dll diff --git a/package/Resources/Binaries/Updater/Rampastring.Tools.dll b/package/Resources/Binaries/Updater/Rampastring.Tools.dll index a0c6c1ee1..744302ef3 100644 Binary files a/package/Resources/Binaries/Updater/Rampastring.Tools.dll and b/package/Resources/Binaries/Updater/Rampastring.Tools.dll differ diff --git a/package/Resources/Binaries/Updater/Rampastring.Tools.pdb b/package/Resources/Binaries/Updater/Rampastring.Tools.pdb index 4c24d43cc..622bc4a37 100644 Binary files a/package/Resources/Binaries/Updater/Rampastring.Tools.pdb and b/package/Resources/Binaries/Updater/Rampastring.Tools.pdb differ diff --git a/package/Resources/Binaries/Updater/Rampastring.Tools.xml b/package/Resources/Binaries/Updater/Rampastring.Tools.xml index ac4f89e73..0cc4b8e30 100644 --- a/package/Resources/Binaries/Updater/Rampastring.Tools.xml +++ b/package/Resources/Binaries/Updater/Rampastring.Tools.xml @@ -267,6 +267,14 @@ The first INI file. The second INI file. + + + Gets or sets a value that determines whether reading from or writing to a file + named "desktop.ini" (in any directory) is forbidden. When set to , + any such attempt throws an . + Defaults to . + + Creates a new INI file instance. diff --git a/package/Resources/Binaries/Updater/SecondStageUpdater.exe b/package/Resources/Binaries/Updater/SecondStageUpdater.exe index 91ec9ff3d..5dd7a64ff 100755 Binary files a/package/Resources/Binaries/Updater/SecondStageUpdater.exe and b/package/Resources/Binaries/Updater/SecondStageUpdater.exe differ diff --git a/package/Resources/Binaries/Updater/SecondStageUpdater.pdb b/package/Resources/Binaries/Updater/SecondStageUpdater.pdb index 0d9c06ad2..20be1483b 100644 Binary files a/package/Resources/Binaries/Updater/SecondStageUpdater.pdb and b/package/Resources/Binaries/Updater/SecondStageUpdater.pdb differ diff --git a/package/Resources/Binaries/Windows/ClientCore.dll b/package/Resources/Binaries/Windows/ClientCore.dll index 08c5ba105..d8a0daabc 100644 Binary files a/package/Resources/Binaries/Windows/ClientCore.dll and b/package/Resources/Binaries/Windows/ClientCore.dll differ diff --git a/package/Resources/Binaries/Windows/ClientCore.pdb b/package/Resources/Binaries/Windows/ClientCore.pdb index eaff79f8c..545a451b5 100644 Binary files a/package/Resources/Binaries/Windows/ClientCore.pdb and b/package/Resources/Binaries/Windows/ClientCore.pdb differ diff --git a/package/Resources/Binaries/Windows/ClientGUI.dll b/package/Resources/Binaries/Windows/ClientGUI.dll index f09d02c98..ce190ec70 100644 Binary files a/package/Resources/Binaries/Windows/ClientGUI.dll and b/package/Resources/Binaries/Windows/ClientGUI.dll differ diff --git a/package/Resources/Binaries/Windows/ClientGUI.pdb b/package/Resources/Binaries/Windows/ClientGUI.pdb index 5f61fc7ac..c9c903d0e 100644 Binary files a/package/Resources/Binaries/Windows/ClientGUI.pdb and b/package/Resources/Binaries/Windows/ClientGUI.pdb differ diff --git a/package/Resources/Binaries/Windows/FontStashSharp.MonoGame.dll b/package/Resources/Binaries/Windows/FontStashSharp.MonoGame.dll new file mode 100644 index 000000000..d075ee17f Binary files /dev/null and b/package/Resources/Binaries/Windows/FontStashSharp.MonoGame.dll differ diff --git a/package/Resources/Binaries/Windows/Rampastring.XNAUI.WindowsDX.dll b/package/Resources/Binaries/Windows/Rampastring.XNAUI.WindowsDX.dll index 86e040619..4ea00ac99 100644 Binary files a/package/Resources/Binaries/Windows/Rampastring.XNAUI.WindowsDX.dll and b/package/Resources/Binaries/Windows/Rampastring.XNAUI.WindowsDX.dll differ diff --git a/package/Resources/Binaries/Windows/Rampastring.XNAUI.WindowsDX.pdb b/package/Resources/Binaries/Windows/Rampastring.XNAUI.WindowsDX.pdb index d4a30c61d..3b0eab3bd 100644 Binary files a/package/Resources/Binaries/Windows/Rampastring.XNAUI.WindowsDX.pdb and b/package/Resources/Binaries/Windows/Rampastring.XNAUI.WindowsDX.pdb differ diff --git a/package/Resources/Binaries/Windows/Rampastring.XNAUI.WindowsDX.xml b/package/Resources/Binaries/Windows/Rampastring.XNAUI.WindowsDX.xml index 71c93fbd0..69e7dcc33 100644 --- a/package/Resources/Binaries/Windows/Rampastring.XNAUI.WindowsDX.xml +++ b/package/Resources/Binaries/Windows/Rampastring.XNAUI.WindowsDX.xml @@ -171,11 +171,6 @@ Plays this sound if it's enabled. - - - Disposes the sound effect. - - Updates the priority of the sound. Returns true if the sound effect is @@ -184,6 +179,228 @@ Tells how much time has passed since the previous frame. True if the sound effect is still playing, otherwise false. + + + Sets the root directory for the ContentManager with XNA vs MonoGame differences. + + The ContentManager instance. + The new root directory path. + + + + Extension methods for . + + + + + Returns a substring of this string starting at and containing at most + UTF-16 code units, ensuring the result does not end with an orphaned high surrogate. + + The string to slice. + The zero-based start index of the substring. + Maximum number of UTF-16 code units to include in the result. Must be non-negative. + The safe substring. + + + + Manages font loading and rendering for the UI system. + Supports both SpriteFont and TrueType fonts with automatic fallback. + + + + For TrueType fonts, FontManager creates a separate FontSystem for each font index. + Each FontSystem has a primary font (specified via Path) and optional per-font fallback + chain (via Fallback=N pointing to another font index). When a character is not found in + the primary font, it falls back through the chain in order. + + + The Fonts.ini file format supports: + + [TextShaping] - Optional HarfBuzz text shaping configuration + [Fonts] - Font index definitions with Size, Type, optional Path, and optional Fallback + + + + + + + When set before runs, skips the Fonts.ini search and + loads only legacy SpriteFontN.xnb assets. Lets clients offer an opt-out from + TrueType rendering. + + + + + Gets the current text shaping settings. + + + + + Gets the current font rendering settings. + + + + + Checks if text shaping is currently enabled. + + + + + Creates a new FontSystem with current text shaping settings. + + + + + Loads fonts from the first Fonts.ini found in asset search paths. + + + + Loading happens in two phases: + + + Phase 1: Load configuration from the first Fonts.ini: + - [TextShaping] settings + - [Fonts] definitions (type, path, size, fallback) + + + Phase 2: Create font indexes: + - For TrueType fonts: Create a FontSystem with primary font first, then follow the per-font fallback chain + - For SpriteFonts: Load the .xnb file + + + + When non-null, overrides any FontResolutionFactor from [FontRendering] + in Fonts.ini. Used by to keep TTF + glyphs sharp when the render target is upscaled. + + + + + Loads fonts from a specific Fonts.ini file. + + + + + Creates FontIndex entries from a Fonts.ini file. + For each TrueType font, creates a separate FontSystem with the primary font first, + then follows the per-font fallback chain to add additional fonts. + + + + + Creates a TrueType font index with its own FontSystem. + The FontSystem contains the primary font first, then fonts from + the fallback chain (each [FontN] can point to another via Fallback=X). + + + + + Loads a SpriteFont and adds it to the font list. + + + + + Loads legacy SpriteFonts (SpriteFont0, SpriteFont1, etc.) from a search path. + This method appends new fonts to the existing font list instead of replacing it. + + + + + Configuration for FontStashSharp glyph rasterization. + + + + + Horizontal blur kernel size used by FontStashSharp when rasterizing glyphs. + Maps to FontSystemSettings.KernelWidth. Must be non-negative. + + + + + Vertical blur kernel size used by FontStashSharp when rasterizing glyphs. + Maps to FontSystemSettings.KernelHeight. Must be non-negative. + + + + + Multiplier applied to the rasterization size of each glyph. + Values > 1 produce sharper output when text is drawn at scales above 1.0 + at the cost of a larger atlas footprint. + + + + + Width of each FontStashSharp atlas page, in pixels. + + + + + Height of each FontStashSharp atlas page, in pixels. + + + + + How rasterized glyph pixels are produced. + matches a premultiplied-alpha SpriteBatch, + matches AlphaBlend, and + produces hard 1-bit edges for pixel-art fonts. + + + + + Configuration for HarfBuzz text shaping. + Text shaping is required for complex scripts (Arabic, Hebrew, Hindi, etc.) + and proper rendering of emoji sequences and ligatures. + + + + + Enable HarfBuzz text shaping for complex scripts. + When enabled, text will be properly shaped for languages that require it. + + + + + Enable bidirectional text support for mixed LTR/RTL text. + Only applies when Enabled is true. + + + + + Size of the shaped text cache. + Higher values use more memory but reduce shaping overhead for repeated text. + Default: 100 + + + + + Returns the value V to plug into (controlHeight - V) / 2 for + vertical centering. NOT a geometric height: this is top + bottom of the + cap glyph 'H' from the draw origin (i.e. minY + maxY from FontStashSharp's + TextBounds), chosen so the cap-glyph midpoint lands at controlHeight / 2 + independent of descenders. The geometric glyph height would be maxY - minY. + + + + + For TTF fonts, this always returns true because FontStashSharp can dynamically + generate glyphs for any character. If a glyph is not available in the font file, + a replacement glyph (like � or ?) will be rendered instead. + + + + + Returns a sanitized string safe for rendering. It replaces unpaired surrogates + with U+FFFD so FontStashSharp's UTF-16 -> UTF-32 conversion does not throw. + + + + + Replaces unpaired UTF-16 surrogates with U+FFFD. Returns the original + string reference unchanged when the input is already valid (the common case), + to avoid allocations on the rendering hot path. + + The exception that is thrown when the fails to find a matching @@ -369,17 +586,13 @@ Allows the user to close the game form by Alt-F4. - + - Provides static methods for drawing. + Reloads fonts with a new resolution factor matching the given scale ratio, + so TTF glyphs are rasterized at native display quality rather than being + scaled up from the render resolution. - - - Clears all potentially existing loaded fonts and then loads fonts from asset loader directories. - - A XNA/MonoGame ContentManager instance. - Allows direct access to the list of loaded fonts. @@ -387,16 +600,15 @@ - Returns a version of the given string where all characters that don't - appear in the given font have been replaced with question marks. + Returns a version of the given string that the font renderer can safely display without crashing. The string. The index of the font. - Returns a that has had its width limited to a specific number. - Characters that'd cross over the width have been cut. + Returns a string that has had its width limited to a specific number. + Characters that would cross over the width have been cut. The string to limit. The index of the font to use. @@ -664,6 +876,12 @@ The control, of the highest generation, that the mouse cursor is currently positioned on. + + + If specified, the control blocks other controls on the screen + from being interacted with. Defaults to null. + + Sets the rendering (back buffer) resolution of the game. @@ -1125,18 +1343,39 @@ Raised when the mouse cursor enters the control's area. + + + Raised during the tunneling phase when the left mouse button is pressed down. + Fires on ancestors from outermost to innermost before bubbles. + If handled, the bubbling phase is suppressed. + + Raised once when the left mouse button is pressed down while the cursor is inside the control's area. + + + Raised during the tunneling phase when the right mouse button is pressed down. + Fires on ancestors from outermost to innermost before bubbles. + If handled, the bubbling phase is suppressed. + + Raised once when the right mouse button is pressed down while the cursor is inside the control's area. + + + Raised during the tunneling phase when the middle mouse button is pressed down. + Fires on ancestors from outermost to innermost before bubbles. + If handled, the bubbling phase is suppressed. + + Raised once when the middle mouse button is pressed down while the @@ -1158,6 +1397,20 @@ Raised each frame when the mouse cursor is inside the control's area. + + + Raised during the tunneling phase when the scroll wheel is used to scroll vertically. + Fires on ancestors from outermost to innermost before bubbles. + If handled, the bubbling phase is suppressed. + + + + + Raised during the tunneling phase when the scroll wheel is used to scroll horizontally. + Fires on ancestors from outermost to innermost before bubbles. + If handled, the bubbling phase is suppressed. + + Raised when the scroll wheel is used to scroll vertically @@ -1170,6 +1423,13 @@ while the cursor is inside the control. + + + Raised during the tunneling phase when the left mouse button is clicked. + Fires on ancestors from outermost to innermost before bubbles. + If handled, the bubbling phase is suppressed. + + Raised when the left mouse button is clicked (pressed and released) @@ -1182,12 +1442,26 @@ time-frame while the cursor is inside the control's area. + + + Raised during the tunneling phase when the right mouse button is clicked. + Fires on ancestors from outermost to innermost before bubbles. + If handled, the bubbling phase is suppressed. + + Raised when the right mouse button is clicked (pressed and released) while the cursor is inside the control's area. + + + Raised during the tunneling phase when the middle mouse button is clicked. + Fires on ancestors from outermost to innermost before bubbles. + If handled, the bubbling phase is suppressed. + + Raised when the middle mouse button is clicked (pressed and released) @@ -1727,45 +2001,87 @@ Called when the mouse cursor leaves the control's client rectangle. + + + Called during the tunneling phase when the left mouse button is pressed down. + Fires on ancestors from outermost to innermost before . + Set to true to suppress the bubbling phase. + + Called once when the left mouse button is pressed down while the cursor is on the control. + + + Called during the tunneling phase when the right mouse button is pressed down. + Fires on ancestors from outermost to innermost before . + Set to true to suppress the bubbling phase. + + Called once when the right mouse button is pressed down while the cursor is on the control. + + + Called during the tunneling phase when the middle mouse button is pressed down. + Fires on ancestors from outermost to innermost before . + Set to true to suppress the bubbling phase. + + Called once when the middle mouse button is pressed down while the cursor is on the control. + + + Called during the tunneling phase when the left mouse button is clicked. + Fires on ancestors from outermost to innermost before . + Set to true to suppress the bubbling phase. + + - Called when the left mouse button has been + Called when the left mouse button has been clicked on the control's client rectangle. - Called when the left mouse button has been + Called when the left mouse button has been clicked twice on the control's client rectangle. + + + Called during the tunneling phase when the right mouse button is clicked. + Fires on ancestors from outermost to innermost before . + Set to true to suppress the bubbling phase. + + - Called when the right mouse button has been + Called when the right mouse button has been clicked on the control's client rectangle. + + + Called during the tunneling phase when the middle mouse button is clicked. + Fires on ancestors from outermost to innermost before . + Set to true to suppress the bubbling phase. + + - Called when the middle mouse button has been + Called when the middle mouse button has been clicked on the control's client rectangle. @@ -1780,9 +2096,23 @@ client rectangle. + + + Called during the tunneling phase when the scroll wheel has been scrolled vertically. + Fires on ancestors from outermost to innermost before . + Set to true to suppress the bubbling phase. + + + + + Called during the tunneling phase when the scroll wheel has been scrolled horizontally. + Fires on ancestors from outermost to innermost before . + Set to true to suppress the bubbling phase. + + - Called when the scroll wheel has been scrolled on the + Called when the scroll wheel has been scrolled on the control's client rectangle. @@ -1859,6 +2189,41 @@ If set, the drop-down is opened upwards rather than downwards. + + + When the selected item's text is too wide for the closed control, it is always + cut off at the last fully fitting character so it does not visually overrun the + control's bounds. If this property is enabled, an ellipsis ("...") is appended + to indicate that the text has been truncated. + + + + + The width of the open dropdown list. Computed in as the + maximum of and the widest item's content width, so + wide items remain fully visible when the list is expanded. + + + + + Stores the control width used when the dropdown is closed so it can be restored + after the expanded list has temporarily widened the control. Null when no closed + width has been captured yet, so a legitimate of 0 + is preserved instead of being treated as "not captured". + + + + + Ensures the framework-visible control width matches the actual visible dropdown + width while the list is open, and restores the original width when the list closes. + + + + + Current visible width of the control, accounting for whether the dropdown list + is open and may be wider than the closed-state . + + Adds an item into the drop-down. @@ -1898,6 +2263,18 @@ Returns the index of the item that the cursor currently points to. + + + Invalidates the cached display text. + + + + + Gets the display text for the selected item, fitted to the control's bounds so + it does not visually overrun the control. Appends an ellipsis to indicate + truncation when is enabled. + + Draws the drop-down. diff --git a/package/Resources/Binaries/Windows/Ude.NetStandard.dll b/package/Resources/Binaries/Windows/Ude.NetStandard.dll deleted file mode 100644 index 7e7192df0..000000000 Binary files a/package/Resources/Binaries/Windows/Ude.NetStandard.dll and /dev/null differ diff --git a/package/Resources/Binaries/XNA/ClientCore.dll b/package/Resources/Binaries/XNA/ClientCore.dll index 9f3384885..b175617bc 100644 Binary files a/package/Resources/Binaries/XNA/ClientCore.dll and b/package/Resources/Binaries/XNA/ClientCore.dll differ diff --git a/package/Resources/Binaries/XNA/ClientCore.pdb b/package/Resources/Binaries/XNA/ClientCore.pdb index 223f7e81f..a9a85bc17 100644 Binary files a/package/Resources/Binaries/XNA/ClientCore.pdb and b/package/Resources/Binaries/XNA/ClientCore.pdb differ diff --git a/package/Resources/Binaries/XNA/ClientGUI.dll b/package/Resources/Binaries/XNA/ClientGUI.dll index 031fdc17d..9bf401686 100644 Binary files a/package/Resources/Binaries/XNA/ClientGUI.dll and b/package/Resources/Binaries/XNA/ClientGUI.dll differ diff --git a/package/Resources/Binaries/XNA/ClientGUI.pdb b/package/Resources/Binaries/XNA/ClientGUI.pdb index 43cb7d96d..afe5b5128 100644 Binary files a/package/Resources/Binaries/XNA/ClientGUI.pdb and b/package/Resources/Binaries/XNA/ClientGUI.pdb differ diff --git a/package/Resources/Binaries/XNA/FontStashSharp.XNA.dll b/package/Resources/Binaries/XNA/FontStashSharp.XNA.dll new file mode 100644 index 000000000..03b34df63 Binary files /dev/null and b/package/Resources/Binaries/XNA/FontStashSharp.XNA.dll differ diff --git a/package/Resources/Binaries/XNA/Rampastring.XNAUI.WindowsXNA.dll b/package/Resources/Binaries/XNA/Rampastring.XNAUI.WindowsXNA.dll index a85cb451d..01b1576d4 100644 Binary files a/package/Resources/Binaries/XNA/Rampastring.XNAUI.WindowsXNA.dll and b/package/Resources/Binaries/XNA/Rampastring.XNAUI.WindowsXNA.dll differ diff --git a/package/Resources/Binaries/XNA/Rampastring.XNAUI.WindowsXNA.pdb b/package/Resources/Binaries/XNA/Rampastring.XNAUI.WindowsXNA.pdb index 36bdac436..cf4ca836e 100644 Binary files a/package/Resources/Binaries/XNA/Rampastring.XNAUI.WindowsXNA.pdb and b/package/Resources/Binaries/XNA/Rampastring.XNAUI.WindowsXNA.pdb differ diff --git a/package/Resources/Binaries/XNA/Rampastring.XNAUI.WindowsXNA.xml b/package/Resources/Binaries/XNA/Rampastring.XNAUI.WindowsXNA.xml index f4949e4c8..7b6ecd13b 100644 --- a/package/Resources/Binaries/XNA/Rampastring.XNAUI.WindowsXNA.xml +++ b/package/Resources/Binaries/XNA/Rampastring.XNAUI.WindowsXNA.xml @@ -171,11 +171,6 @@ Plays this sound if it's enabled. - - - Disposes the sound effect. - - Updates the priority of the sound. Returns true if the sound effect is @@ -184,6 +179,228 @@ Tells how much time has passed since the previous frame. True if the sound effect is still playing, otherwise false. + + + Sets the root directory for the ContentManager with XNA vs MonoGame differences. + + The ContentManager instance. + The new root directory path. + + + + Extension methods for . + + + + + Returns a substring of this string starting at and containing at most + UTF-16 code units, ensuring the result does not end with an orphaned high surrogate. + + The string to slice. + The zero-based start index of the substring. + Maximum number of UTF-16 code units to include in the result. Must be non-negative. + The safe substring. + + + + Manages font loading and rendering for the UI system. + Supports both SpriteFont and TrueType fonts with automatic fallback. + + + + For TrueType fonts, FontManager creates a separate FontSystem for each font index. + Each FontSystem has a primary font (specified via Path) and optional per-font fallback + chain (via Fallback=N pointing to another font index). When a character is not found in + the primary font, it falls back through the chain in order. + + + The Fonts.ini file format supports: + + [TextShaping] - Optional HarfBuzz text shaping configuration + [Fonts] - Font index definitions with Size, Type, optional Path, and optional Fallback + + + + + + + When set before runs, skips the Fonts.ini search and + loads only legacy SpriteFontN.xnb assets. Lets clients offer an opt-out from + TrueType rendering. + + + + + Gets the current text shaping settings. + + + + + Gets the current font rendering settings. + + + + + Checks if text shaping is currently enabled. + + + + + Creates a new FontSystem with current text shaping settings. + + + + + Loads fonts from the first Fonts.ini found in asset search paths. + + + + Loading happens in two phases: + + + Phase 1: Load configuration from the first Fonts.ini: + - [TextShaping] settings + - [Fonts] definitions (type, path, size, fallback) + + + Phase 2: Create font indexes: + - For TrueType fonts: Create a FontSystem with primary font first, then follow the per-font fallback chain + - For SpriteFonts: Load the .xnb file + + + + When non-null, overrides any FontResolutionFactor from [FontRendering] + in Fonts.ini. Used by to keep TTF + glyphs sharp when the render target is upscaled. + + + + + Loads fonts from a specific Fonts.ini file. + + + + + Creates FontIndex entries from a Fonts.ini file. + For each TrueType font, creates a separate FontSystem with the primary font first, + then follows the per-font fallback chain to add additional fonts. + + + + + Creates a TrueType font index with its own FontSystem. + The FontSystem contains the primary font first, then fonts from + the fallback chain (each [FontN] can point to another via Fallback=X). + + + + + Loads a SpriteFont and adds it to the font list. + + + + + Loads legacy SpriteFonts (SpriteFont0, SpriteFont1, etc.) from a search path. + This method appends new fonts to the existing font list instead of replacing it. + + + + + Configuration for FontStashSharp glyph rasterization. + + + + + Horizontal blur kernel size used by FontStashSharp when rasterizing glyphs. + Maps to FontSystemSettings.KernelWidth. Must be non-negative. + + + + + Vertical blur kernel size used by FontStashSharp when rasterizing glyphs. + Maps to FontSystemSettings.KernelHeight. Must be non-negative. + + + + + Multiplier applied to the rasterization size of each glyph. + Values > 1 produce sharper output when text is drawn at scales above 1.0 + at the cost of a larger atlas footprint. + + + + + Width of each FontStashSharp atlas page, in pixels. + + + + + Height of each FontStashSharp atlas page, in pixels. + + + + + How rasterized glyph pixels are produced. + matches a premultiplied-alpha SpriteBatch, + matches AlphaBlend, and + produces hard 1-bit edges for pixel-art fonts. + + + + + Configuration for HarfBuzz text shaping. + Text shaping is required for complex scripts (Arabic, Hebrew, Hindi, etc.) + and proper rendering of emoji sequences and ligatures. + + + + + Enable HarfBuzz text shaping for complex scripts. + When enabled, text will be properly shaped for languages that require it. + + + + + Enable bidirectional text support for mixed LTR/RTL text. + Only applies when Enabled is true. + + + + + Size of the shaped text cache. + Higher values use more memory but reduce shaping overhead for repeated text. + Default: 100 + + + + + Returns the value V to plug into (controlHeight - V) / 2 for + vertical centering. NOT a geometric height: this is top + bottom of the + cap glyph 'H' from the draw origin (i.e. minY + maxY from FontStashSharp's + TextBounds), chosen so the cap-glyph midpoint lands at controlHeight / 2 + independent of descenders. The geometric glyph height would be maxY - minY. + + + + + For TTF fonts, this always returns true because FontStashSharp can dynamically + generate glyphs for any character. If a glyph is not available in the font file, + a replacement glyph (like � or ?) will be rendered instead. + + + + + Returns a sanitized string safe for rendering. It replaces unpaired surrogates + with U+FFFD so FontStashSharp's UTF-16 -> UTF-32 conversion does not throw. + + + + + Replaces unpaired UTF-16 surrogates with U+FFFD. Returns the original + string reference unchanged when the input is already valid (the common case), + to avoid allocations on the rendering hot path. + + The exception that is thrown when the fails to find a matching @@ -388,17 +605,13 @@ Allows the user to close the game form by Alt-F4. - + - Provides static methods for drawing. + Reloads fonts with a new resolution factor matching the given scale ratio, + so TTF glyphs are rasterized at native display quality rather than being + scaled up from the render resolution. - - - Clears all potentially existing loaded fonts and then loads fonts from asset loader directories. - - A XNA/MonoGame ContentManager instance. - Allows direct access to the list of loaded fonts. @@ -406,16 +619,15 @@ - Returns a version of the given string where all characters that don't - appear in the given font have been replaced with question marks. + Returns a version of the given string that the font renderer can safely display without crashing. The string. The index of the font. - Returns a that has had its width limited to a specific number. - Characters that'd cross over the width have been cut. + Returns a string that has had its width limited to a specific number. + Characters that would cross over the width have been cut. The string to limit. The index of the font to use. @@ -683,6 +895,12 @@ The control, of the highest generation, that the mouse cursor is currently positioned on. + + + If specified, the control blocks other controls on the screen + from being interacted with. Defaults to null. + + Sets the rendering (back buffer) resolution of the game. @@ -1144,18 +1362,39 @@ Raised when the mouse cursor enters the control's area. + + + Raised during the tunneling phase when the left mouse button is pressed down. + Fires on ancestors from outermost to innermost before bubbles. + If handled, the bubbling phase is suppressed. + + Raised once when the left mouse button is pressed down while the cursor is inside the control's area. + + + Raised during the tunneling phase when the right mouse button is pressed down. + Fires on ancestors from outermost to innermost before bubbles. + If handled, the bubbling phase is suppressed. + + Raised once when the right mouse button is pressed down while the cursor is inside the control's area. + + + Raised during the tunneling phase when the middle mouse button is pressed down. + Fires on ancestors from outermost to innermost before bubbles. + If handled, the bubbling phase is suppressed. + + Raised once when the middle mouse button is pressed down while the @@ -1177,6 +1416,20 @@ Raised each frame when the mouse cursor is inside the control's area. + + + Raised during the tunneling phase when the scroll wheel is used to scroll vertically. + Fires on ancestors from outermost to innermost before bubbles. + If handled, the bubbling phase is suppressed. + + + + + Raised during the tunneling phase when the scroll wheel is used to scroll horizontally. + Fires on ancestors from outermost to innermost before bubbles. + If handled, the bubbling phase is suppressed. + + Raised when the scroll wheel is used to scroll vertically @@ -1189,6 +1442,13 @@ while the cursor is inside the control. + + + Raised during the tunneling phase when the left mouse button is clicked. + Fires on ancestors from outermost to innermost before bubbles. + If handled, the bubbling phase is suppressed. + + Raised when the left mouse button is clicked (pressed and released) @@ -1201,12 +1461,26 @@ time-frame while the cursor is inside the control's area. + + + Raised during the tunneling phase when the right mouse button is clicked. + Fires on ancestors from outermost to innermost before bubbles. + If handled, the bubbling phase is suppressed. + + Raised when the right mouse button is clicked (pressed and released) while the cursor is inside the control's area. + + + Raised during the tunneling phase when the middle mouse button is clicked. + Fires on ancestors from outermost to innermost before bubbles. + If handled, the bubbling phase is suppressed. + + Raised when the middle mouse button is clicked (pressed and released) @@ -1746,45 +2020,87 @@ Called when the mouse cursor leaves the control's client rectangle. + + + Called during the tunneling phase when the left mouse button is pressed down. + Fires on ancestors from outermost to innermost before . + Set to true to suppress the bubbling phase. + + Called once when the left mouse button is pressed down while the cursor is on the control. + + + Called during the tunneling phase when the right mouse button is pressed down. + Fires on ancestors from outermost to innermost before . + Set to true to suppress the bubbling phase. + + Called once when the right mouse button is pressed down while the cursor is on the control. + + + Called during the tunneling phase when the middle mouse button is pressed down. + Fires on ancestors from outermost to innermost before . + Set to true to suppress the bubbling phase. + + Called once when the middle mouse button is pressed down while the cursor is on the control. + + + Called during the tunneling phase when the left mouse button is clicked. + Fires on ancestors from outermost to innermost before . + Set to true to suppress the bubbling phase. + + - Called when the left mouse button has been + Called when the left mouse button has been clicked on the control's client rectangle. - Called when the left mouse button has been + Called when the left mouse button has been clicked twice on the control's client rectangle. + + + Called during the tunneling phase when the right mouse button is clicked. + Fires on ancestors from outermost to innermost before . + Set to true to suppress the bubbling phase. + + - Called when the right mouse button has been + Called when the right mouse button has been clicked on the control's client rectangle. + + + Called during the tunneling phase when the middle mouse button is clicked. + Fires on ancestors from outermost to innermost before . + Set to true to suppress the bubbling phase. + + - Called when the middle mouse button has been + Called when the middle mouse button has been clicked on the control's client rectangle. @@ -1799,9 +2115,23 @@ client rectangle. + + + Called during the tunneling phase when the scroll wheel has been scrolled vertically. + Fires on ancestors from outermost to innermost before . + Set to true to suppress the bubbling phase. + + + + + Called during the tunneling phase when the scroll wheel has been scrolled horizontally. + Fires on ancestors from outermost to innermost before . + Set to true to suppress the bubbling phase. + + - Called when the scroll wheel has been scrolled on the + Called when the scroll wheel has been scrolled on the control's client rectangle. @@ -1878,6 +2208,41 @@ If set, the drop-down is opened upwards rather than downwards. + + + When the selected item's text is too wide for the closed control, it is always + cut off at the last fully fitting character so it does not visually overrun the + control's bounds. If this property is enabled, an ellipsis ("...") is appended + to indicate that the text has been truncated. + + + + + The width of the open dropdown list. Computed in as the + maximum of and the widest item's content width, so + wide items remain fully visible when the list is expanded. + + + + + Stores the control width used when the dropdown is closed so it can be restored + after the expanded list has temporarily widened the control. Null when no closed + width has been captured yet, so a legitimate of 0 + is preserved instead of being treated as "not captured". + + + + + Ensures the framework-visible control width matches the actual visible dropdown + width while the list is open, and restores the original width when the list closes. + + + + + Current visible width of the control, accounting for whether the dropdown list + is open and may be wider than the closed-state . + + Adds an item into the drop-down. @@ -1917,6 +2282,18 @@ Returns the index of the item that the cursor currently points to. + + + Invalidates the cached display text. + + + + + Gets the display text for the selected item, fitted to the control's bounds so + it does not visually overrun the control. Appends an ellipsis to indicate + truncation when is enabled. + + Draws the drop-down. diff --git a/package/Resources/Binaries/XNA/Ude.NetStandard.dll b/package/Resources/Binaries/XNA/Ude.NetStandard.dll deleted file mode 100644 index 7e7192df0..000000000 Binary files a/package/Resources/Binaries/XNA/Ude.NetStandard.dll and /dev/null differ diff --git a/package/Resources/Binaries/XNA/libHarfBuzzSharp.dll b/package/Resources/Binaries/XNA/libHarfBuzzSharp.dll new file mode 100644 index 000000000..68b23abb4 Binary files /dev/null and b/package/Resources/Binaries/XNA/libHarfBuzzSharp.dll differ diff --git a/package/Resources/Binaries/arm64/libHarfBuzzSharp.dll b/package/Resources/Binaries/arm64/libHarfBuzzSharp.dll new file mode 100644 index 000000000..2d68b66cb Binary files /dev/null and b/package/Resources/Binaries/arm64/libHarfBuzzSharp.dll differ diff --git a/package/Resources/Binaries/libHarfBuzzSharp.dylib b/package/Resources/Binaries/libHarfBuzzSharp.dylib new file mode 100644 index 000000000..9939da542 Binary files /dev/null and b/package/Resources/Binaries/libHarfBuzzSharp.dylib differ diff --git a/package/Resources/Binaries/x64/libHarfBuzzSharp.dll b/package/Resources/Binaries/x64/libHarfBuzzSharp.dll new file mode 100644 index 000000000..6e84cf2ac Binary files /dev/null and b/package/Resources/Binaries/x64/libHarfBuzzSharp.dll differ diff --git a/package/Resources/Binaries/steam_api64.dll b/package/Resources/Binaries/x64/steam_api64.dll similarity index 100% rename from package/Resources/Binaries/steam_api64.dll rename to package/Resources/Binaries/x64/steam_api64.dll diff --git a/package/Resources/Binaries/x86/libHarfBuzzSharp.dll b/package/Resources/Binaries/x86/libHarfBuzzSharp.dll new file mode 100644 index 000000000..68b23abb4 Binary files /dev/null and b/package/Resources/Binaries/x86/libHarfBuzzSharp.dll differ diff --git a/package/Resources/BinariesNET8/ClientUpdater.dll b/package/Resources/BinariesNET8/ClientUpdater.dll index da2a094e7..97bc5de1f 100644 Binary files a/package/Resources/BinariesNET8/ClientUpdater.dll and b/package/Resources/BinariesNET8/ClientUpdater.dll differ diff --git a/package/Resources/BinariesNET8/ClientUpdater.pdb b/package/Resources/BinariesNET8/ClientUpdater.pdb index 25f086d98..bc838547f 100644 Binary files a/package/Resources/BinariesNET8/ClientUpdater.pdb and b/package/Resources/BinariesNET8/ClientUpdater.pdb differ diff --git a/package/Resources/BinariesNET8/Cyotek.Drawing.BitmapFont.dll b/package/Resources/BinariesNET8/Cyotek.Drawing.BitmapFont.dll new file mode 100644 index 000000000..93422cd87 Binary files /dev/null and b/package/Resources/BinariesNET8/Cyotek.Drawing.BitmapFont.dll differ diff --git a/package/Resources/BinariesNET8/FontStashSharp.Base.dll b/package/Resources/BinariesNET8/FontStashSharp.Base.dll new file mode 100644 index 000000000..3ab22f122 Binary files /dev/null and b/package/Resources/BinariesNET8/FontStashSharp.Base.dll differ diff --git a/package/Resources/BinariesNET8/FontStashSharp.Rasterizers.StbTrueTypeSharp.dll b/package/Resources/BinariesNET8/FontStashSharp.Rasterizers.StbTrueTypeSharp.dll new file mode 100644 index 000000000..6b46f4490 Binary files /dev/null and b/package/Resources/BinariesNET8/FontStashSharp.Rasterizers.StbTrueTypeSharp.dll differ diff --git a/package/Resources/BinariesNET8/FontStashSharp.TextShapers.HarfBuzz.dll b/package/Resources/BinariesNET8/FontStashSharp.TextShapers.HarfBuzz.dll new file mode 100644 index 000000000..7c5203c65 Binary files /dev/null and b/package/Resources/BinariesNET8/FontStashSharp.TextShapers.HarfBuzz.dll differ diff --git a/package/Resources/BinariesNET8/HarfBuzzSharp.dll b/package/Resources/BinariesNET8/HarfBuzzSharp.dll new file mode 100644 index 000000000..209726648 Binary files /dev/null and b/package/Resources/BinariesNET8/HarfBuzzSharp.dll differ diff --git a/package/Resources/BinariesNET8/OpenGL/ClientCore.dll b/package/Resources/BinariesNET8/OpenGL/ClientCore.dll index 98532c7dd..65e68e0fb 100644 Binary files a/package/Resources/BinariesNET8/OpenGL/ClientCore.dll and b/package/Resources/BinariesNET8/OpenGL/ClientCore.dll differ diff --git a/package/Resources/BinariesNET8/OpenGL/ClientCore.pdb b/package/Resources/BinariesNET8/OpenGL/ClientCore.pdb index 7f2a9bcd6..1c4d67e1e 100644 Binary files a/package/Resources/BinariesNET8/OpenGL/ClientCore.pdb and b/package/Resources/BinariesNET8/OpenGL/ClientCore.pdb differ diff --git a/package/Resources/BinariesNET8/OpenGL/ClientGUI.dll b/package/Resources/BinariesNET8/OpenGL/ClientGUI.dll index e5edda0be..6d430ef4e 100644 Binary files a/package/Resources/BinariesNET8/OpenGL/ClientGUI.dll and b/package/Resources/BinariesNET8/OpenGL/ClientGUI.dll differ diff --git a/package/Resources/BinariesNET8/OpenGL/ClientGUI.pdb b/package/Resources/BinariesNET8/OpenGL/ClientGUI.pdb index 28ce5e7e5..1352e0bb3 100644 Binary files a/package/Resources/BinariesNET8/OpenGL/ClientGUI.pdb and b/package/Resources/BinariesNET8/OpenGL/ClientGUI.pdb differ diff --git a/package/Resources/BinariesNET8/OpenGL/FontStashSharp.MonoGame.dll b/package/Resources/BinariesNET8/OpenGL/FontStashSharp.MonoGame.dll new file mode 100644 index 000000000..d075ee17f Binary files /dev/null and b/package/Resources/BinariesNET8/OpenGL/FontStashSharp.MonoGame.dll differ diff --git a/package/Resources/BinariesNET8/OpenGL/Rampastring.XNAUI.WindowsGL.dll b/package/Resources/BinariesNET8/OpenGL/Rampastring.XNAUI.WindowsGL.dll index aa0ccd545..13ce6bae8 100644 Binary files a/package/Resources/BinariesNET8/OpenGL/Rampastring.XNAUI.WindowsGL.dll and b/package/Resources/BinariesNET8/OpenGL/Rampastring.XNAUI.WindowsGL.dll differ diff --git a/package/Resources/BinariesNET8/OpenGL/Rampastring.XNAUI.WindowsGL.pdb b/package/Resources/BinariesNET8/OpenGL/Rampastring.XNAUI.WindowsGL.pdb index 4908d5fc1..48ea95426 100644 Binary files a/package/Resources/BinariesNET8/OpenGL/Rampastring.XNAUI.WindowsGL.pdb and b/package/Resources/BinariesNET8/OpenGL/Rampastring.XNAUI.WindowsGL.pdb differ diff --git a/package/Resources/BinariesNET8/OpenGL/Rampastring.XNAUI.WindowsGL.xml b/package/Resources/BinariesNET8/OpenGL/Rampastring.XNAUI.WindowsGL.xml index 0fe6301d4..37ef56ada 100644 --- a/package/Resources/BinariesNET8/OpenGL/Rampastring.XNAUI.WindowsGL.xml +++ b/package/Resources/BinariesNET8/OpenGL/Rampastring.XNAUI.WindowsGL.xml @@ -171,11 +171,6 @@ Plays this sound if it's enabled. - - - Disposes the sound effect. - - Updates the priority of the sound. Returns true if the sound effect is @@ -184,6 +179,228 @@ Tells how much time has passed since the previous frame. True if the sound effect is still playing, otherwise false. + + + Sets the root directory for the ContentManager with XNA vs MonoGame differences. + + The ContentManager instance. + The new root directory path. + + + + Extension methods for . + + + + + Returns a substring of this string starting at and containing at most + UTF-16 code units, ensuring the result does not end with an orphaned high surrogate. + + The string to slice. + The zero-based start index of the substring. + Maximum number of UTF-16 code units to include in the result. Must be non-negative. + The safe substring. + + + + Manages font loading and rendering for the UI system. + Supports both SpriteFont and TrueType fonts with automatic fallback. + + + + For TrueType fonts, FontManager creates a separate FontSystem for each font index. + Each FontSystem has a primary font (specified via Path) and optional per-font fallback + chain (via Fallback=N pointing to another font index). When a character is not found in + the primary font, it falls back through the chain in order. + + + The Fonts.ini file format supports: + + [TextShaping] - Optional HarfBuzz text shaping configuration + [Fonts] - Font index definitions with Size, Type, optional Path, and optional Fallback + + + + + + + When set before runs, skips the Fonts.ini search and + loads only legacy SpriteFontN.xnb assets. Lets clients offer an opt-out from + TrueType rendering. + + + + + Gets the current text shaping settings. + + + + + Gets the current font rendering settings. + + + + + Checks if text shaping is currently enabled. + + + + + Creates a new FontSystem with current text shaping settings. + + + + + Loads fonts from the first Fonts.ini found in asset search paths. + + + + Loading happens in two phases: + + + Phase 1: Load configuration from the first Fonts.ini: + - [TextShaping] settings + - [Fonts] definitions (type, path, size, fallback) + + + Phase 2: Create font indexes: + - For TrueType fonts: Create a FontSystem with primary font first, then follow the per-font fallback chain + - For SpriteFonts: Load the .xnb file + + + + When non-null, overrides any FontResolutionFactor from [FontRendering] + in Fonts.ini. Used by to keep TTF + glyphs sharp when the render target is upscaled. + + + + + Loads fonts from a specific Fonts.ini file. + + + + + Creates FontIndex entries from a Fonts.ini file. + For each TrueType font, creates a separate FontSystem with the primary font first, + then follows the per-font fallback chain to add additional fonts. + + + + + Creates a TrueType font index with its own FontSystem. + The FontSystem contains the primary font first, then fonts from + the fallback chain (each [FontN] can point to another via Fallback=X). + + + + + Loads a SpriteFont and adds it to the font list. + + + + + Loads legacy SpriteFonts (SpriteFont0, SpriteFont1, etc.) from a search path. + This method appends new fonts to the existing font list instead of replacing it. + + + + + Configuration for FontStashSharp glyph rasterization. + + + + + Horizontal blur kernel size used by FontStashSharp when rasterizing glyphs. + Maps to FontSystemSettings.KernelWidth. Must be non-negative. + + + + + Vertical blur kernel size used by FontStashSharp when rasterizing glyphs. + Maps to FontSystemSettings.KernelHeight. Must be non-negative. + + + + + Multiplier applied to the rasterization size of each glyph. + Values > 1 produce sharper output when text is drawn at scales above 1.0 + at the cost of a larger atlas footprint. + + + + + Width of each FontStashSharp atlas page, in pixels. + + + + + Height of each FontStashSharp atlas page, in pixels. + + + + + How rasterized glyph pixels are produced. + matches a premultiplied-alpha SpriteBatch, + matches AlphaBlend, and + produces hard 1-bit edges for pixel-art fonts. + + + + + Configuration for HarfBuzz text shaping. + Text shaping is required for complex scripts (Arabic, Hebrew, Hindi, etc.) + and proper rendering of emoji sequences and ligatures. + + + + + Enable HarfBuzz text shaping for complex scripts. + When enabled, text will be properly shaped for languages that require it. + + + + + Enable bidirectional text support for mixed LTR/RTL text. + Only applies when Enabled is true. + + + + + Size of the shaped text cache. + Higher values use more memory but reduce shaping overhead for repeated text. + Default: 100 + + + + + Returns the value V to plug into (controlHeight - V) / 2 for + vertical centering. NOT a geometric height: this is top + bottom of the + cap glyph 'H' from the draw origin (i.e. minY + maxY from FontStashSharp's + TextBounds), chosen so the cap-glyph midpoint lands at controlHeight / 2 + independent of descenders. The geometric glyph height would be maxY - minY. + + + + + For TTF fonts, this always returns true because FontStashSharp can dynamically + generate glyphs for any character. If a glyph is not available in the font file, + a replacement glyph (like � or ?) will be rendered instead. + + + + + Returns a sanitized string safe for rendering. It replaces unpaired surrogates + with U+FFFD so FontStashSharp's UTF-16 -> UTF-32 conversion does not throw. + + + + + Replaces unpaired UTF-16 surrogates with U+FFFD. Returns the original + string reference unchanged when the input is already valid (the common case), + to avoid allocations on the rendering hot path. + + The exception that is thrown when the fails to find a matching @@ -369,17 +586,13 @@ Allows the user to close the game form by Alt-F4. - + - Provides static methods for drawing. + Reloads fonts with a new resolution factor matching the given scale ratio, + so TTF glyphs are rasterized at native display quality rather than being + scaled up from the render resolution. - - - Clears all potentially existing loaded fonts and then loads fonts from asset loader directories. - - A XNA/MonoGame ContentManager instance. - Allows direct access to the list of loaded fonts. @@ -387,16 +600,15 @@ - Returns a version of the given string where all characters that don't - appear in the given font have been replaced with question marks. + Returns a version of the given string that the font renderer can safely display without crashing. The string. The index of the font. - Returns a that has had its width limited to a specific number. - Characters that'd cross over the width have been cut. + Returns a string that has had its width limited to a specific number. + Characters that would cross over the width have been cut. The string to limit. The index of the font to use. @@ -664,6 +876,12 @@ The control, of the highest generation, that the mouse cursor is currently positioned on. + + + If specified, the control blocks other controls on the screen + from being interacted with. Defaults to null. + + Sets the rendering (back buffer) resolution of the game. @@ -1125,18 +1343,39 @@ Raised when the mouse cursor enters the control's area. + + + Raised during the tunneling phase when the left mouse button is pressed down. + Fires on ancestors from outermost to innermost before bubbles. + If handled, the bubbling phase is suppressed. + + Raised once when the left mouse button is pressed down while the cursor is inside the control's area. + + + Raised during the tunneling phase when the right mouse button is pressed down. + Fires on ancestors from outermost to innermost before bubbles. + If handled, the bubbling phase is suppressed. + + Raised once when the right mouse button is pressed down while the cursor is inside the control's area. + + + Raised during the tunneling phase when the middle mouse button is pressed down. + Fires on ancestors from outermost to innermost before bubbles. + If handled, the bubbling phase is suppressed. + + Raised once when the middle mouse button is pressed down while the @@ -1158,6 +1397,20 @@ Raised each frame when the mouse cursor is inside the control's area. + + + Raised during the tunneling phase when the scroll wheel is used to scroll vertically. + Fires on ancestors from outermost to innermost before bubbles. + If handled, the bubbling phase is suppressed. + + + + + Raised during the tunneling phase when the scroll wheel is used to scroll horizontally. + Fires on ancestors from outermost to innermost before bubbles. + If handled, the bubbling phase is suppressed. + + Raised when the scroll wheel is used to scroll vertically @@ -1170,6 +1423,13 @@ while the cursor is inside the control. + + + Raised during the tunneling phase when the left mouse button is clicked. + Fires on ancestors from outermost to innermost before bubbles. + If handled, the bubbling phase is suppressed. + + Raised when the left mouse button is clicked (pressed and released) @@ -1182,12 +1442,26 @@ time-frame while the cursor is inside the control's area. + + + Raised during the tunneling phase when the right mouse button is clicked. + Fires on ancestors from outermost to innermost before bubbles. + If handled, the bubbling phase is suppressed. + + Raised when the right mouse button is clicked (pressed and released) while the cursor is inside the control's area. + + + Raised during the tunneling phase when the middle mouse button is clicked. + Fires on ancestors from outermost to innermost before bubbles. + If handled, the bubbling phase is suppressed. + + Raised when the middle mouse button is clicked (pressed and released) @@ -1727,45 +2001,87 @@ Called when the mouse cursor leaves the control's client rectangle. + + + Called during the tunneling phase when the left mouse button is pressed down. + Fires on ancestors from outermost to innermost before . + Set to true to suppress the bubbling phase. + + Called once when the left mouse button is pressed down while the cursor is on the control. + + + Called during the tunneling phase when the right mouse button is pressed down. + Fires on ancestors from outermost to innermost before . + Set to true to suppress the bubbling phase. + + Called once when the right mouse button is pressed down while the cursor is on the control. + + + Called during the tunneling phase when the middle mouse button is pressed down. + Fires on ancestors from outermost to innermost before . + Set to true to suppress the bubbling phase. + + Called once when the middle mouse button is pressed down while the cursor is on the control. + + + Called during the tunneling phase when the left mouse button is clicked. + Fires on ancestors from outermost to innermost before . + Set to true to suppress the bubbling phase. + + - Called when the left mouse button has been + Called when the left mouse button has been clicked on the control's client rectangle. - Called when the left mouse button has been + Called when the left mouse button has been clicked twice on the control's client rectangle. + + + Called during the tunneling phase when the right mouse button is clicked. + Fires on ancestors from outermost to innermost before . + Set to true to suppress the bubbling phase. + + - Called when the right mouse button has been + Called when the right mouse button has been clicked on the control's client rectangle. + + + Called during the tunneling phase when the middle mouse button is clicked. + Fires on ancestors from outermost to innermost before . + Set to true to suppress the bubbling phase. + + - Called when the middle mouse button has been + Called when the middle mouse button has been clicked on the control's client rectangle. @@ -1780,9 +2096,23 @@ client rectangle. + + + Called during the tunneling phase when the scroll wheel has been scrolled vertically. + Fires on ancestors from outermost to innermost before . + Set to true to suppress the bubbling phase. + + + + + Called during the tunneling phase when the scroll wheel has been scrolled horizontally. + Fires on ancestors from outermost to innermost before . + Set to true to suppress the bubbling phase. + + - Called when the scroll wheel has been scrolled on the + Called when the scroll wheel has been scrolled on the control's client rectangle. @@ -1859,6 +2189,41 @@ If set, the drop-down is opened upwards rather than downwards. + + + When the selected item's text is too wide for the closed control, it is always + cut off at the last fully fitting character so it does not visually overrun the + control's bounds. If this property is enabled, an ellipsis ("...") is appended + to indicate that the text has been truncated. + + + + + The width of the open dropdown list. Computed in as the + maximum of and the widest item's content width, so + wide items remain fully visible when the list is expanded. + + + + + Stores the control width used when the dropdown is closed so it can be restored + after the expanded list has temporarily widened the control. Null when no closed + width has been captured yet, so a legitimate of 0 + is preserved instead of being treated as "not captured". + + + + + Ensures the framework-visible control width matches the actual visible dropdown + width while the list is open, and restores the original width when the list closes. + + + + + Current visible width of the control, accounting for whether the dropdown list + is open and may be wider than the closed-state . + + Adds an item into the drop-down. @@ -1898,6 +2263,18 @@ Returns the index of the item that the cursor currently points to. + + + Invalidates the cached display text. + + + + + Gets the display text for the selected item, fitted to the control's bounds so + it does not visually overrun the control. Appends an ellipsis to indicate + truncation when is enabled. + + Draws the drop-down. diff --git a/package/Resources/BinariesNET8/OpenGL/clientogl.deps.json b/package/Resources/BinariesNET8/OpenGL/clientogl.deps.json index c84f25967..48dfb2e1f 100644 --- a/package/Resources/BinariesNET8/OpenGL/clientogl.deps.json +++ b/package/Resources/BinariesNET8/OpenGL/clientogl.deps.json @@ -6,14 +6,14 @@ "compilationOptions": {}, "targets": { ".NETCoreApp,Version=v8.0": { - "clientogl/2.12.18": { + "clientogl/2.13.0": { "dependencies": { "ClientGUI": "1.0.0", "ClientUpdater": "1.0.0", "DiscordRichPresence": "1.2.1.24", "Facepunch.Steamworks": "2.4.1", "Microsoft.Extensions.Hosting": "8.0.0", - "OpenMcdf": "2.4.1", + "OpenMcdf": "3.1.4", "SixLabors.ImageSharp": "2.1.11", "System.Management": "8.0.0", "lzo.net": "0.0.6", @@ -23,6 +23,14 @@ "clientogl.dll": {} } }, + "Cyotek.Drawing.BitmapFont/2.0.4": { + "runtime": { + "lib/net5.0/Cyotek.Drawing.BitmapFont.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "2.0.4.0" + } + } + }, "DiscordRichPresence/1.2.1.24": { "dependencies": { "Newtonsoft.Json": "13.0.1" @@ -42,6 +50,92 @@ } } }, + "FontStashSharp.Base/1.2.3": { + "runtime": { + "lib/netstandard2.0/FontStashSharp.Base.dll": { + "assemblyVersion": "1.2.3.0", + "fileVersion": "1.2.3.0" + } + } + }, + "FontStashSharp.MonoGame/1.5.5": { + "dependencies": { + "Cyotek.Drawing.BitmapFont": "2.0.4", + "FontStashSharp.Base": "1.2.3", + "FontStashSharp.Rasterizers.StbTrueTypeSharp": "1.2.3", + "StbImageSharp": "2.30.15" + }, + "runtime": { + "lib/netstandard2.0/FontStashSharp.MonoGame.dll": { + "assemblyVersion": "1.5.5.0", + "fileVersion": "1.5.5.0" + } + } + }, + "FontStashSharp.Rasterizers.StbTrueTypeSharp/1.2.3": { + "dependencies": { + "FontStashSharp.Base": "1.2.3", + "StbTrueTypeSharp": "1.26.12" + }, + "runtime": { + "lib/netstandard2.0/FontStashSharp.Rasterizers.StbTrueTypeSharp.dll": { + "assemblyVersion": "1.2.3.0", + "fileVersion": "1.2.3.0" + } + } + }, + "FontStashSharp.TextShapers.HarfBuzz/1.2.3": { + "dependencies": { + "FontStashSharp.Base": "1.2.3", + "HarfBuzzSharp": "8.3.1.2" + }, + "runtime": { + "lib/netstandard2.0/FontStashSharp.TextShapers.HarfBuzz.dll": { + "assemblyVersion": "1.2.3.0", + "fileVersion": "1.2.3.0" + } + } + }, + "HarfBuzzSharp/8.3.1.2": { + "dependencies": { + "HarfBuzzSharp.NativeAssets.Win32": "8.3.1.2", + "HarfBuzzSharp.NativeAssets.macOS": "8.3.1.2" + }, + "runtime": { + "lib/net8.0/HarfBuzzSharp.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "8.3.1.2" + } + } + }, + "HarfBuzzSharp.NativeAssets.macOS/8.3.1.2": { + "runtimeTargets": { + "runtimes/osx/native/libHarfBuzzSharp.dylib": { + "rid": "osx", + "assetType": "native", + "fileVersion": "0.0.0.0" + } + } + }, + "HarfBuzzSharp.NativeAssets.Win32/8.3.1.2": { + "runtimeTargets": { + "runtimes/win-arm64/native/libHarfBuzzSharp.dll": { + "rid": "win-arm64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x64/native/libHarfBuzzSharp.dll": { + "rid": "win-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x86/native/libHarfBuzzSharp.dll": { + "rid": "win-x86", + "assetType": "native", + "fileVersion": "0.0.0.0" + } + } + }, "lzo.net/0.0.6": { "runtime": { "lib/netstandard2.0/lzo.net.dll": { @@ -489,11 +583,11 @@ } } }, - "OpenMcdf/2.4.1": { + "OpenMcdf/3.1.4": { "runtime": { - "lib/netstandard2.0/OpenMcdf.dll": { - "assemblyVersion": "2.4.1.0", - "fileVersion": "2.4.1.0" + "lib/net8.0/OpenMcdf.dll": { + "assemblyVersion": "3.1.4.0", + "fileVersion": "3.1.4.0" } } }, @@ -505,6 +599,22 @@ } } }, + "StbImageSharp/2.30.15": { + "runtime": { + "lib/netstandard2.0/StbImageSharp.dll": { + "assemblyVersion": "2.30.15.0", + "fileVersion": "2.30.15.0" + } + } + }, + "StbTrueTypeSharp/1.26.12": { + "runtime": { + "lib/netstandard2.0/StbTrueTypeSharp.dll": { + "assemblyVersion": "1.26.12.0", + "fileVersion": "1.26.12.0" + } + } + }, "System.Management/8.0.0": { "runtime": { "lib/net8.0/System.Management.dll": { @@ -547,8 +657,8 @@ }, "runtime": { "ClientCore.dll": { - "assemblyVersion": "2.12.18.0", - "fileVersion": "2.12.18.0" + "assemblyVersion": "2.13.0.0", + "fileVersion": "2.13.0.0" } } }, @@ -559,8 +669,8 @@ }, "runtime": { "ClientGUI.dll": { - "assemblyVersion": "2.12.18.0", - "fileVersion": "2.12.18.0" + "assemblyVersion": "2.13.0.0", + "fileVersion": "2.13.0.0" } } }, @@ -571,8 +681,8 @@ }, "runtime": { "ClientUpdater.dll": { - "assemblyVersion": "2.12.18.0", - "fileVersion": "2.12.18.0" + "assemblyVersion": "2.13.0.0", + "fileVersion": "2.13.0.0" } } }, @@ -586,6 +696,8 @@ }, "Rampastring.XNAUI.WindowsGL/1.0.0": { "dependencies": { + "FontStashSharp.MonoGame": "1.5.5", + "FontStashSharp.TextShapers.HarfBuzz": "1.2.3", "MonoGame.Framework.DesktopGL": "3.8.1.303", "Rampastring.Tools": "1.0.0", "SixLabors.ImageSharp": "2.1.11", @@ -608,11 +720,18 @@ } }, "libraries": { - "clientogl/2.12.18": { + "clientogl/2.13.0": { "type": "project", "serviceable": false, "sha512": "" }, + "Cyotek.Drawing.BitmapFont/2.0.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-iA6WehGVdMUuNbfsQQDq/Bt+mMd/OqHjiMUtKFLIQd/0pyYh4ehT7FEjTxN9/4OXNKQZsp9bAJgltP2nnswUJg==", + "path": "cyotek.drawing.bitmapfont/2.0.4", + "hashPath": "cyotek.drawing.bitmapfont.2.0.4.nupkg.sha512" + }, "DiscordRichPresence/1.2.1.24": { "type": "package", "serviceable": true, @@ -627,6 +746,55 @@ "path": "facepunch.steamworks/2.4.1", "hashPath": "facepunch.steamworks.2.4.1.nupkg.sha512" }, + "FontStashSharp.Base/1.2.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kw8ovakGHz8jCah+H5M7qI8aOvtESF0jQRpcpubXUMsSid86dRO6DoDPlh+Tk/XAW5a3XgzGDgsHfeZTfZTr+Q==", + "path": "fontstashsharp.base/1.2.3", + "hashPath": "fontstashsharp.base.1.2.3.nupkg.sha512" + }, + "FontStashSharp.MonoGame/1.5.5": { + "type": "package", + "serviceable": true, + "sha512": "sha512-UTHcfF2qLr06SWl69BCfDw/cguzGPPzICRuJ8xmh/vKHYya9OgrJXglhKU8GRsUmEpv/hc6gwXd4wICgF8c9Qg==", + "path": "fontstashsharp.monogame/1.5.5", + "hashPath": "fontstashsharp.monogame.1.5.5.nupkg.sha512" + }, + "FontStashSharp.Rasterizers.StbTrueTypeSharp/1.2.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-xjzgWeiaODbW7DR/kI05V7C3CVtDvtB+4TrgX4EKNpRGzxb42vsvXKWrXORQWU2LCLnPPqdBNNSgtRujnpK2ww==", + "path": "fontstashsharp.rasterizers.stbtruetypesharp/1.2.3", + "hashPath": "fontstashsharp.rasterizers.stbtruetypesharp.1.2.3.nupkg.sha512" + }, + "FontStashSharp.TextShapers.HarfBuzz/1.2.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-XNqav6B77iq1JaN+O+vy7bGE2jEhM5ySMMnNZyFBGDPtd5Fi1PWew6DmVqzvqHDksVdAuGzXWmYd82ODIwQb5A==", + "path": "fontstashsharp.textshapers.harfbuzz/1.2.3", + "hashPath": "fontstashsharp.textshapers.harfbuzz.1.2.3.nupkg.sha512" + }, + "HarfBuzzSharp/8.3.1.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-fqZTo17dEIn/u/YZ1A6avsmF8BYoLSvDsHm+uDp38wortckHWZhJ5pMwJW97xTeOZ9/oxqwUQfRMkf6ni9s5Gw==", + "path": "harfbuzzsharp/8.3.1.2", + "hashPath": "harfbuzzsharp.8.3.1.2.nupkg.sha512" + }, + "HarfBuzzSharp.NativeAssets.macOS/8.3.1.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-+0NtlZSQA540z6VpVoajXldvAOuj5D+BWceh70U3YApxcpUKD/5hjdbdzvyhRaTSTCSZNjRxeaWpBpgJ1U1YcQ==", + "path": "harfbuzzsharp.nativeassets.macos/8.3.1.2", + "hashPath": "harfbuzzsharp.nativeassets.macos.8.3.1.2.nupkg.sha512" + }, + "HarfBuzzSharp.NativeAssets.Win32/8.3.1.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-qmYJsYtOPVeLg7NQoKO5fq1oc5mRKzdgxBXWICx0R03epZ1RIsuzgWRFhVNN0br3c+J+9rIQhy0SXdBwVv0ebA==", + "path": "harfbuzzsharp.nativeassets.win32/8.3.1.2", + "hashPath": "harfbuzzsharp.nativeassets.win32.8.3.1.2.nupkg.sha512" + }, "lzo.net/0.0.6": { "type": "package", "serviceable": true, @@ -851,12 +1019,12 @@ "path": "newtonsoft.json.bson/1.0.2", "hashPath": "newtonsoft.json.bson.1.0.2.nupkg.sha512" }, - "OpenMcdf/2.4.1": { + "OpenMcdf/3.1.4": { "type": "package", "serviceable": true, - "sha512": "sha512-0XVhI+P6pe80xYntIeF6H4F7AIL4ZolMTI5vkm3QUt9XTnRJht6CNYk1eSfI8YInRble6cw91ypF5llPXzKD/A==", - "path": "openmcdf/2.4.1", - "hashPath": "openmcdf.2.4.1.nupkg.sha512" + "sha512": "sha512-ncchtCh9YKqutHTlUCrr1llXA65ijGOCjXBM0mL1+WaGouApWDEACWbBHGzuYcAvB+rgW6IgO4AKgmZ2v1moNA==", + "path": "openmcdf/3.1.4", + "hashPath": "openmcdf.3.1.4.nupkg.sha512" }, "SixLabors.ImageSharp/2.1.11": { "type": "package", @@ -865,6 +1033,20 @@ "path": "sixlabors.imagesharp/2.1.11", "hashPath": "sixlabors.imagesharp.2.1.11.nupkg.sha512" }, + "StbImageSharp/2.30.15": { + "type": "package", + "serviceable": true, + "sha512": "sha512-7QqbupVhz2kcFUPTgMw4iHR9rYDHGundzzee19Mwmd1typ2Lnv8EVJcLJxlkeBM2+4ex0NwsMtdbGSJctp1XCQ==", + "path": "stbimagesharp/2.30.15", + "hashPath": "stbimagesharp.2.30.15.nupkg.sha512" + }, + "StbTrueTypeSharp/1.26.12": { + "type": "package", + "serviceable": true, + "sha512": "sha512-hCc6/OsfcPa5VsLECcEU2m78WOshBrKwK42nAodSm9Z5wH68f7n66SoiRLCdGCkDaqbWz2TlX4zYHIjogj1HJA==", + "path": "stbtruetypesharp/1.26.12", + "hashPath": "stbtruetypesharp.1.26.12.nupkg.sha512" + }, "System.Management/8.0.0": { "type": "package", "serviceable": true, diff --git a/package/Resources/BinariesNET8/OpenGL/clientogl.dll b/package/Resources/BinariesNET8/OpenGL/clientogl.dll index 3273b4528..fa292c2d3 100644 Binary files a/package/Resources/BinariesNET8/OpenGL/clientogl.dll and b/package/Resources/BinariesNET8/OpenGL/clientogl.dll differ diff --git a/package/Resources/BinariesNET8/OpenGL/clientogl.pdb b/package/Resources/BinariesNET8/OpenGL/clientogl.pdb index 76ebcd37c..09ce80555 100644 Binary files a/package/Resources/BinariesNET8/OpenGL/clientogl.pdb and b/package/Resources/BinariesNET8/OpenGL/clientogl.pdb differ diff --git a/package/Resources/BinariesNET8/OpenGL/runtimes/win-arm64/native/libHarfBuzzSharp.dll b/package/Resources/BinariesNET8/OpenGL/runtimes/win-arm64/native/libHarfBuzzSharp.dll new file mode 100644 index 000000000..2d68b66cb Binary files /dev/null and b/package/Resources/BinariesNET8/OpenGL/runtimes/win-arm64/native/libHarfBuzzSharp.dll differ diff --git a/package/Resources/BinariesNET8/OpenGL/runtimes/win-x64/native/libHarfBuzzSharp.dll b/package/Resources/BinariesNET8/OpenGL/runtimes/win-x64/native/libHarfBuzzSharp.dll new file mode 100644 index 000000000..6e84cf2ac Binary files /dev/null and b/package/Resources/BinariesNET8/OpenGL/runtimes/win-x64/native/libHarfBuzzSharp.dll differ diff --git a/package/Resources/BinariesNET8/steam_api64.dll b/package/Resources/BinariesNET8/OpenGL/runtimes/win-x64/native/steam_api64.dll similarity index 100% rename from package/Resources/BinariesNET8/steam_api64.dll rename to package/Resources/BinariesNET8/OpenGL/runtimes/win-x64/native/steam_api64.dll diff --git a/package/Resources/BinariesNET8/OpenGL/runtimes/win-x86/native/libHarfBuzzSharp.dll b/package/Resources/BinariesNET8/OpenGL/runtimes/win-x86/native/libHarfBuzzSharp.dll new file mode 100644 index 000000000..68b23abb4 Binary files /dev/null and b/package/Resources/BinariesNET8/OpenGL/runtimes/win-x86/native/libHarfBuzzSharp.dll differ diff --git a/package/Resources/BinariesNET8/OpenMcdf.dll b/package/Resources/BinariesNET8/OpenMcdf.dll index afcb5c5de..6a50eadae 100644 Binary files a/package/Resources/BinariesNET8/OpenMcdf.dll and b/package/Resources/BinariesNET8/OpenMcdf.dll differ diff --git a/package/Resources/BinariesNET8/Rampastring.Tools.dll b/package/Resources/BinariesNET8/Rampastring.Tools.dll index 0c7a9bc9b..a0cc5a9d2 100644 Binary files a/package/Resources/BinariesNET8/Rampastring.Tools.dll and b/package/Resources/BinariesNET8/Rampastring.Tools.dll differ diff --git a/package/Resources/BinariesNET8/Rampastring.Tools.pdb b/package/Resources/BinariesNET8/Rampastring.Tools.pdb index 9faf9d29b..f19993e66 100644 Binary files a/package/Resources/BinariesNET8/Rampastring.Tools.pdb and b/package/Resources/BinariesNET8/Rampastring.Tools.pdb differ diff --git a/package/Resources/BinariesNET8/Rampastring.Tools.xml b/package/Resources/BinariesNET8/Rampastring.Tools.xml index ac4f89e73..0cc4b8e30 100644 --- a/package/Resources/BinariesNET8/Rampastring.Tools.xml +++ b/package/Resources/BinariesNET8/Rampastring.Tools.xml @@ -267,6 +267,14 @@ The first INI file. The second INI file. + + + Gets or sets a value that determines whether reading from or writing to a file + named "desktop.ini" (in any directory) is forbidden. When set to , + any such attempt throws an . + Defaults to . + + Creates a new INI file instance. diff --git a/package/Resources/BinariesNET8/StbImageSharp.dll b/package/Resources/BinariesNET8/StbImageSharp.dll new file mode 100644 index 000000000..312aef348 Binary files /dev/null and b/package/Resources/BinariesNET8/StbImageSharp.dll differ diff --git a/package/Resources/BinariesNET8/StbTrueTypeSharp.dll b/package/Resources/BinariesNET8/StbTrueTypeSharp.dll new file mode 100644 index 000000000..af60f3208 Binary files /dev/null and b/package/Resources/BinariesNET8/StbTrueTypeSharp.dll differ diff --git a/package/Resources/BinariesNET8/OpenGL/Ude.NetStandard.dll b/package/Resources/BinariesNET8/Ude.NetStandard.dll similarity index 100% rename from package/Resources/BinariesNET8/OpenGL/Ude.NetStandard.dll rename to package/Resources/BinariesNET8/Ude.NetStandard.dll diff --git a/package/Resources/BinariesNET8/UniversalGL/ClientCore.dll b/package/Resources/BinariesNET8/UniversalGL/ClientCore.dll index 410011fa7..aa9f7b381 100644 Binary files a/package/Resources/BinariesNET8/UniversalGL/ClientCore.dll and b/package/Resources/BinariesNET8/UniversalGL/ClientCore.dll differ diff --git a/package/Resources/BinariesNET8/UniversalGL/ClientCore.pdb b/package/Resources/BinariesNET8/UniversalGL/ClientCore.pdb index 445a49c22..7a737aa32 100644 Binary files a/package/Resources/BinariesNET8/UniversalGL/ClientCore.pdb and b/package/Resources/BinariesNET8/UniversalGL/ClientCore.pdb differ diff --git a/package/Resources/BinariesNET8/UniversalGL/ClientGUI.dll b/package/Resources/BinariesNET8/UniversalGL/ClientGUI.dll index 0dd1f112f..62bf24880 100644 Binary files a/package/Resources/BinariesNET8/UniversalGL/ClientGUI.dll and b/package/Resources/BinariesNET8/UniversalGL/ClientGUI.dll differ diff --git a/package/Resources/BinariesNET8/UniversalGL/ClientGUI.pdb b/package/Resources/BinariesNET8/UniversalGL/ClientGUI.pdb index 9f13a56c7..f5e762a02 100644 Binary files a/package/Resources/BinariesNET8/UniversalGL/ClientGUI.pdb and b/package/Resources/BinariesNET8/UniversalGL/ClientGUI.pdb differ diff --git a/package/Resources/BinariesNET8/UniversalGL/FontStashSharp.MonoGame.dll b/package/Resources/BinariesNET8/UniversalGL/FontStashSharp.MonoGame.dll new file mode 100644 index 000000000..d075ee17f Binary files /dev/null and b/package/Resources/BinariesNET8/UniversalGL/FontStashSharp.MonoGame.dll differ diff --git a/package/Resources/BinariesNET8/UniversalGL/Rampastring.XNAUI.UniversalGL.dll b/package/Resources/BinariesNET8/UniversalGL/Rampastring.XNAUI.UniversalGL.dll index 19be7da7f..ba893bdb1 100644 Binary files a/package/Resources/BinariesNET8/UniversalGL/Rampastring.XNAUI.UniversalGL.dll and b/package/Resources/BinariesNET8/UniversalGL/Rampastring.XNAUI.UniversalGL.dll differ diff --git a/package/Resources/BinariesNET8/UniversalGL/Rampastring.XNAUI.UniversalGL.pdb b/package/Resources/BinariesNET8/UniversalGL/Rampastring.XNAUI.UniversalGL.pdb index a311770f1..3b6b2221e 100644 Binary files a/package/Resources/BinariesNET8/UniversalGL/Rampastring.XNAUI.UniversalGL.pdb and b/package/Resources/BinariesNET8/UniversalGL/Rampastring.XNAUI.UniversalGL.pdb differ diff --git a/package/Resources/BinariesNET8/UniversalGL/Rampastring.XNAUI.UniversalGL.xml b/package/Resources/BinariesNET8/UniversalGL/Rampastring.XNAUI.UniversalGL.xml index c6bfec978..117b75c21 100644 --- a/package/Resources/BinariesNET8/UniversalGL/Rampastring.XNAUI.UniversalGL.xml +++ b/package/Resources/BinariesNET8/UniversalGL/Rampastring.XNAUI.UniversalGL.xml @@ -171,11 +171,6 @@ Plays this sound if it's enabled. - - - Disposes the sound effect. - - Updates the priority of the sound. Returns true if the sound effect is @@ -184,6 +179,228 @@ Tells how much time has passed since the previous frame. True if the sound effect is still playing, otherwise false. + + + Sets the root directory for the ContentManager with XNA vs MonoGame differences. + + The ContentManager instance. + The new root directory path. + + + + Extension methods for . + + + + + Returns a substring of this string starting at and containing at most + UTF-16 code units, ensuring the result does not end with an orphaned high surrogate. + + The string to slice. + The zero-based start index of the substring. + Maximum number of UTF-16 code units to include in the result. Must be non-negative. + The safe substring. + + + + Manages font loading and rendering for the UI system. + Supports both SpriteFont and TrueType fonts with automatic fallback. + + + + For TrueType fonts, FontManager creates a separate FontSystem for each font index. + Each FontSystem has a primary font (specified via Path) and optional per-font fallback + chain (via Fallback=N pointing to another font index). When a character is not found in + the primary font, it falls back through the chain in order. + + + The Fonts.ini file format supports: + + [TextShaping] - Optional HarfBuzz text shaping configuration + [Fonts] - Font index definitions with Size, Type, optional Path, and optional Fallback + + + + + + + When set before runs, skips the Fonts.ini search and + loads only legacy SpriteFontN.xnb assets. Lets clients offer an opt-out from + TrueType rendering. + + + + + Gets the current text shaping settings. + + + + + Gets the current font rendering settings. + + + + + Checks if text shaping is currently enabled. + + + + + Creates a new FontSystem with current text shaping settings. + + + + + Loads fonts from the first Fonts.ini found in asset search paths. + + + + Loading happens in two phases: + + + Phase 1: Load configuration from the first Fonts.ini: + - [TextShaping] settings + - [Fonts] definitions (type, path, size, fallback) + + + Phase 2: Create font indexes: + - For TrueType fonts: Create a FontSystem with primary font first, then follow the per-font fallback chain + - For SpriteFonts: Load the .xnb file + + + + When non-null, overrides any FontResolutionFactor from [FontRendering] + in Fonts.ini. Used by to keep TTF + glyphs sharp when the render target is upscaled. + + + + + Loads fonts from a specific Fonts.ini file. + + + + + Creates FontIndex entries from a Fonts.ini file. + For each TrueType font, creates a separate FontSystem with the primary font first, + then follows the per-font fallback chain to add additional fonts. + + + + + Creates a TrueType font index with its own FontSystem. + The FontSystem contains the primary font first, then fonts from + the fallback chain (each [FontN] can point to another via Fallback=X). + + + + + Loads a SpriteFont and adds it to the font list. + + + + + Loads legacy SpriteFonts (SpriteFont0, SpriteFont1, etc.) from a search path. + This method appends new fonts to the existing font list instead of replacing it. + + + + + Configuration for FontStashSharp glyph rasterization. + + + + + Horizontal blur kernel size used by FontStashSharp when rasterizing glyphs. + Maps to FontSystemSettings.KernelWidth. Must be non-negative. + + + + + Vertical blur kernel size used by FontStashSharp when rasterizing glyphs. + Maps to FontSystemSettings.KernelHeight. Must be non-negative. + + + + + Multiplier applied to the rasterization size of each glyph. + Values > 1 produce sharper output when text is drawn at scales above 1.0 + at the cost of a larger atlas footprint. + + + + + Width of each FontStashSharp atlas page, in pixels. + + + + + Height of each FontStashSharp atlas page, in pixels. + + + + + How rasterized glyph pixels are produced. + matches a premultiplied-alpha SpriteBatch, + matches AlphaBlend, and + produces hard 1-bit edges for pixel-art fonts. + + + + + Configuration for HarfBuzz text shaping. + Text shaping is required for complex scripts (Arabic, Hebrew, Hindi, etc.) + and proper rendering of emoji sequences and ligatures. + + + + + Enable HarfBuzz text shaping for complex scripts. + When enabled, text will be properly shaped for languages that require it. + + + + + Enable bidirectional text support for mixed LTR/RTL text. + Only applies when Enabled is true. + + + + + Size of the shaped text cache. + Higher values use more memory but reduce shaping overhead for repeated text. + Default: 100 + + + + + Returns the value V to plug into (controlHeight - V) / 2 for + vertical centering. NOT a geometric height: this is top + bottom of the + cap glyph 'H' from the draw origin (i.e. minY + maxY from FontStashSharp's + TextBounds), chosen so the cap-glyph midpoint lands at controlHeight / 2 + independent of descenders. The geometric glyph height would be maxY - minY. + + + + + For TTF fonts, this always returns true because FontStashSharp can dynamically + generate glyphs for any character. If a glyph is not available in the font file, + a replacement glyph (like � or ?) will be rendered instead. + + + + + Returns a sanitized string safe for rendering. It replaces unpaired surrogates + with U+FFFD so FontStashSharp's UTF-16 -> UTF-32 conversion does not throw. + + + + + Replaces unpaired UTF-16 surrogates with U+FFFD. Returns the original + string reference unchanged when the input is already valid (the common case), + to avoid allocations on the rendering hot path. + + The exception that is thrown when the fails to find a matching @@ -302,17 +519,13 @@ A boolean that determines whether borderless windowed mode should be enabled. - + - Provides static methods for drawing. + Reloads fonts with a new resolution factor matching the given scale ratio, + so TTF glyphs are rasterized at native display quality rather than being + scaled up from the render resolution. - - - Clears all potentially existing loaded fonts and then loads fonts from asset loader directories. - - A XNA/MonoGame ContentManager instance. - Allows direct access to the list of loaded fonts. @@ -320,16 +533,15 @@ - Returns a version of the given string where all characters that don't - appear in the given font have been replaced with question marks. + Returns a version of the given string that the font renderer can safely display without crashing. The string. The index of the font. - Returns a that has had its width limited to a specific number. - Characters that'd cross over the width have been cut. + Returns a string that has had its width limited to a specific number. + Characters that would cross over the width have been cut. The string to limit. The index of the font to use. @@ -591,6 +803,12 @@ The control, of the highest generation, that the mouse cursor is currently positioned on. + + + If specified, the control blocks other controls on the screen + from being interacted with. Defaults to null. + + Sets the rendering (back buffer) resolution of the game. @@ -1006,18 +1224,39 @@ Raised when the mouse cursor enters the control's area. + + + Raised during the tunneling phase when the left mouse button is pressed down. + Fires on ancestors from outermost to innermost before bubbles. + If handled, the bubbling phase is suppressed. + + Raised once when the left mouse button is pressed down while the cursor is inside the control's area. + + + Raised during the tunneling phase when the right mouse button is pressed down. + Fires on ancestors from outermost to innermost before bubbles. + If handled, the bubbling phase is suppressed. + + Raised once when the right mouse button is pressed down while the cursor is inside the control's area. + + + Raised during the tunneling phase when the middle mouse button is pressed down. + Fires on ancestors from outermost to innermost before bubbles. + If handled, the bubbling phase is suppressed. + + Raised once when the middle mouse button is pressed down while the @@ -1039,6 +1278,20 @@ Raised each frame when the mouse cursor is inside the control's area. + + + Raised during the tunneling phase when the scroll wheel is used to scroll vertically. + Fires on ancestors from outermost to innermost before bubbles. + If handled, the bubbling phase is suppressed. + + + + + Raised during the tunneling phase when the scroll wheel is used to scroll horizontally. + Fires on ancestors from outermost to innermost before bubbles. + If handled, the bubbling phase is suppressed. + + Raised when the scroll wheel is used to scroll vertically @@ -1051,6 +1304,13 @@ while the cursor is inside the control. + + + Raised during the tunneling phase when the left mouse button is clicked. + Fires on ancestors from outermost to innermost before bubbles. + If handled, the bubbling phase is suppressed. + + Raised when the left mouse button is clicked (pressed and released) @@ -1063,12 +1323,26 @@ time-frame while the cursor is inside the control's area. + + + Raised during the tunneling phase when the right mouse button is clicked. + Fires on ancestors from outermost to innermost before bubbles. + If handled, the bubbling phase is suppressed. + + Raised when the right mouse button is clicked (pressed and released) while the cursor is inside the control's area. + + + Raised during the tunneling phase when the middle mouse button is clicked. + Fires on ancestors from outermost to innermost before bubbles. + If handled, the bubbling phase is suppressed. + + Raised when the middle mouse button is clicked (pressed and released) @@ -1608,45 +1882,87 @@ Called when the mouse cursor leaves the control's client rectangle. + + + Called during the tunneling phase when the left mouse button is pressed down. + Fires on ancestors from outermost to innermost before . + Set to true to suppress the bubbling phase. + + Called once when the left mouse button is pressed down while the cursor is on the control. + + + Called during the tunneling phase when the right mouse button is pressed down. + Fires on ancestors from outermost to innermost before . + Set to true to suppress the bubbling phase. + + Called once when the right mouse button is pressed down while the cursor is on the control. + + + Called during the tunneling phase when the middle mouse button is pressed down. + Fires on ancestors from outermost to innermost before . + Set to true to suppress the bubbling phase. + + Called once when the middle mouse button is pressed down while the cursor is on the control. + + + Called during the tunneling phase when the left mouse button is clicked. + Fires on ancestors from outermost to innermost before . + Set to true to suppress the bubbling phase. + + - Called when the left mouse button has been + Called when the left mouse button has been clicked on the control's client rectangle. - Called when the left mouse button has been + Called when the left mouse button has been clicked twice on the control's client rectangle. + + + Called during the tunneling phase when the right mouse button is clicked. + Fires on ancestors from outermost to innermost before . + Set to true to suppress the bubbling phase. + + - Called when the right mouse button has been + Called when the right mouse button has been clicked on the control's client rectangle. + + + Called during the tunneling phase when the middle mouse button is clicked. + Fires on ancestors from outermost to innermost before . + Set to true to suppress the bubbling phase. + + - Called when the middle mouse button has been + Called when the middle mouse button has been clicked on the control's client rectangle. @@ -1661,9 +1977,23 @@ client rectangle. + + + Called during the tunneling phase when the scroll wheel has been scrolled vertically. + Fires on ancestors from outermost to innermost before . + Set to true to suppress the bubbling phase. + + + + + Called during the tunneling phase when the scroll wheel has been scrolled horizontally. + Fires on ancestors from outermost to innermost before . + Set to true to suppress the bubbling phase. + + - Called when the scroll wheel has been scrolled on the + Called when the scroll wheel has been scrolled on the control's client rectangle. @@ -1740,6 +2070,41 @@ If set, the drop-down is opened upwards rather than downwards. + + + When the selected item's text is too wide for the closed control, it is always + cut off at the last fully fitting character so it does not visually overrun the + control's bounds. If this property is enabled, an ellipsis ("...") is appended + to indicate that the text has been truncated. + + + + + The width of the open dropdown list. Computed in as the + maximum of and the widest item's content width, so + wide items remain fully visible when the list is expanded. + + + + + Stores the control width used when the dropdown is closed so it can be restored + after the expanded list has temporarily widened the control. Null when no closed + width has been captured yet, so a legitimate of 0 + is preserved instead of being treated as "not captured". + + + + + Ensures the framework-visible control width matches the actual visible dropdown + width while the list is open, and restores the original width when the list closes. + + + + + Current visible width of the control, accounting for whether the dropdown list + is open and may be wider than the closed-state . + + Adds an item into the drop-down. @@ -1779,6 +2144,18 @@ Returns the index of the item that the cursor currently points to. + + + Invalidates the cached display text. + + + + + Gets the display text for the selected item, fitted to the control's bounds so + it does not visually overrun the control. Appends an ellipsis to indicate + truncation when is enabled. + + Draws the drop-down. diff --git a/package/Resources/BinariesNET8/UniversalGL/Ude.NetStandard.dll b/package/Resources/BinariesNET8/UniversalGL/Ude.NetStandard.dll deleted file mode 100644 index 2cb9b2f50..000000000 Binary files a/package/Resources/BinariesNET8/UniversalGL/Ude.NetStandard.dll and /dev/null differ diff --git a/package/Resources/BinariesNET8/UniversalGL/clientogl.deps.json b/package/Resources/BinariesNET8/UniversalGL/clientogl.deps.json index 19b65818d..2476dc4d0 100644 --- a/package/Resources/BinariesNET8/UniversalGL/clientogl.deps.json +++ b/package/Resources/BinariesNET8/UniversalGL/clientogl.deps.json @@ -6,14 +6,14 @@ "compilationOptions": {}, "targets": { ".NETCoreApp,Version=v8.0": { - "clientogl/2.12.18": { + "clientogl/2.13.0": { "dependencies": { "ClientGUI": "1.0.0", "ClientUpdater": "1.0.0", "DiscordRichPresence": "1.2.1.24", "Facepunch.Steamworks": "2.4.1", "Microsoft.Extensions.Hosting": "8.0.0", - "OpenMcdf": "2.4.1", + "OpenMcdf": "3.1.4", "SixLabors.ImageSharp": "2.1.11", "System.DirectoryServices": "8.0.0", "System.Management": "8.0.0", @@ -24,6 +24,14 @@ "clientogl.dll": {} } }, + "Cyotek.Drawing.BitmapFont/2.0.4": { + "runtime": { + "lib/net5.0/Cyotek.Drawing.BitmapFont.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "2.0.4.0" + } + } + }, "DiscordRichPresence/1.2.1.24": { "dependencies": { "Newtonsoft.Json": "13.0.1" @@ -43,6 +51,92 @@ } } }, + "FontStashSharp.Base/1.2.3": { + "runtime": { + "lib/netstandard2.0/FontStashSharp.Base.dll": { + "assemblyVersion": "1.2.3.0", + "fileVersion": "1.2.3.0" + } + } + }, + "FontStashSharp.MonoGame/1.5.5": { + "dependencies": { + "Cyotek.Drawing.BitmapFont": "2.0.4", + "FontStashSharp.Base": "1.2.3", + "FontStashSharp.Rasterizers.StbTrueTypeSharp": "1.2.3", + "StbImageSharp": "2.30.15" + }, + "runtime": { + "lib/netstandard2.0/FontStashSharp.MonoGame.dll": { + "assemblyVersion": "1.5.5.0", + "fileVersion": "1.5.5.0" + } + } + }, + "FontStashSharp.Rasterizers.StbTrueTypeSharp/1.2.3": { + "dependencies": { + "FontStashSharp.Base": "1.2.3", + "StbTrueTypeSharp": "1.26.12" + }, + "runtime": { + "lib/netstandard2.0/FontStashSharp.Rasterizers.StbTrueTypeSharp.dll": { + "assemblyVersion": "1.2.3.0", + "fileVersion": "1.2.3.0" + } + } + }, + "FontStashSharp.TextShapers.HarfBuzz/1.2.3": { + "dependencies": { + "FontStashSharp.Base": "1.2.3", + "HarfBuzzSharp": "8.3.1.2" + }, + "runtime": { + "lib/netstandard2.0/FontStashSharp.TextShapers.HarfBuzz.dll": { + "assemblyVersion": "1.2.3.0", + "fileVersion": "1.2.3.0" + } + } + }, + "HarfBuzzSharp/8.3.1.2": { + "dependencies": { + "HarfBuzzSharp.NativeAssets.Win32": "8.3.1.2", + "HarfBuzzSharp.NativeAssets.macOS": "8.3.1.2" + }, + "runtime": { + "lib/net8.0/HarfBuzzSharp.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "8.3.1.2" + } + } + }, + "HarfBuzzSharp.NativeAssets.macOS/8.3.1.2": { + "runtimeTargets": { + "runtimes/osx/native/libHarfBuzzSharp.dylib": { + "rid": "osx", + "assetType": "native", + "fileVersion": "0.0.0.0" + } + } + }, + "HarfBuzzSharp.NativeAssets.Win32/8.3.1.2": { + "runtimeTargets": { + "runtimes/win-arm64/native/libHarfBuzzSharp.dll": { + "rid": "win-arm64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x64/native/libHarfBuzzSharp.dll": { + "rid": "win-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x86/native/libHarfBuzzSharp.dll": { + "rid": "win-x86", + "assetType": "native", + "fileVersion": "0.0.0.0" + } + } + }, "lzo.net/0.0.6": { "runtime": { "lib/netstandard2.0/lzo.net.dll": { @@ -491,11 +585,11 @@ } } }, - "OpenMcdf/2.4.1": { + "OpenMcdf/3.1.4": { "runtime": { - "lib/netstandard2.0/OpenMcdf.dll": { - "assemblyVersion": "2.4.1.0", - "fileVersion": "2.4.1.0" + "lib/net8.0/OpenMcdf.dll": { + "assemblyVersion": "3.1.4.0", + "fileVersion": "3.1.4.0" } } }, @@ -507,6 +601,22 @@ } } }, + "StbImageSharp/2.30.15": { + "runtime": { + "lib/netstandard2.0/StbImageSharp.dll": { + "assemblyVersion": "2.30.15.0", + "fileVersion": "2.30.15.0" + } + } + }, + "StbTrueTypeSharp/1.26.12": { + "runtime": { + "lib/netstandard2.0/StbTrueTypeSharp.dll": { + "assemblyVersion": "1.26.12.0", + "fileVersion": "1.26.12.0" + } + } + }, "System.CodeDom/8.0.0": { "runtime": { "lib/net8.0/System.CodeDom.dll": { @@ -598,8 +708,8 @@ }, "runtime": { "ClientCore.dll": { - "assemblyVersion": "2.12.18.0", - "fileVersion": "2.12.18.0" + "assemblyVersion": "2.13.0.0", + "fileVersion": "2.13.0.0" } } }, @@ -610,8 +720,8 @@ }, "runtime": { "ClientGUI.dll": { - "assemblyVersion": "2.12.18.0", - "fileVersion": "2.12.18.0" + "assemblyVersion": "2.13.0.0", + "fileVersion": "2.13.0.0" } } }, @@ -622,8 +732,8 @@ }, "runtime": { "ClientUpdater.dll": { - "assemblyVersion": "2.12.18.0", - "fileVersion": "2.12.18.0" + "assemblyVersion": "2.13.0.0", + "fileVersion": "2.13.0.0" } } }, @@ -637,6 +747,8 @@ }, "Rampastring.XNAUI.UniversalGL/1.0.0": { "dependencies": { + "FontStashSharp.MonoGame": "1.5.5", + "FontStashSharp.TextShapers.HarfBuzz": "1.2.3", "MonoGame.Framework.DesktopGL": "3.8.1.303", "Rampastring.Tools": "1.0.0", "SixLabors.ImageSharp": "2.1.11", @@ -659,11 +771,18 @@ } }, "libraries": { - "clientogl/2.12.18": { + "clientogl/2.13.0": { "type": "project", "serviceable": false, "sha512": "" }, + "Cyotek.Drawing.BitmapFont/2.0.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-iA6WehGVdMUuNbfsQQDq/Bt+mMd/OqHjiMUtKFLIQd/0pyYh4ehT7FEjTxN9/4OXNKQZsp9bAJgltP2nnswUJg==", + "path": "cyotek.drawing.bitmapfont/2.0.4", + "hashPath": "cyotek.drawing.bitmapfont.2.0.4.nupkg.sha512" + }, "DiscordRichPresence/1.2.1.24": { "type": "package", "serviceable": true, @@ -678,6 +797,55 @@ "path": "facepunch.steamworks/2.4.1", "hashPath": "facepunch.steamworks.2.4.1.nupkg.sha512" }, + "FontStashSharp.Base/1.2.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kw8ovakGHz8jCah+H5M7qI8aOvtESF0jQRpcpubXUMsSid86dRO6DoDPlh+Tk/XAW5a3XgzGDgsHfeZTfZTr+Q==", + "path": "fontstashsharp.base/1.2.3", + "hashPath": "fontstashsharp.base.1.2.3.nupkg.sha512" + }, + "FontStashSharp.MonoGame/1.5.5": { + "type": "package", + "serviceable": true, + "sha512": "sha512-UTHcfF2qLr06SWl69BCfDw/cguzGPPzICRuJ8xmh/vKHYya9OgrJXglhKU8GRsUmEpv/hc6gwXd4wICgF8c9Qg==", + "path": "fontstashsharp.monogame/1.5.5", + "hashPath": "fontstashsharp.monogame.1.5.5.nupkg.sha512" + }, + "FontStashSharp.Rasterizers.StbTrueTypeSharp/1.2.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-xjzgWeiaODbW7DR/kI05V7C3CVtDvtB+4TrgX4EKNpRGzxb42vsvXKWrXORQWU2LCLnPPqdBNNSgtRujnpK2ww==", + "path": "fontstashsharp.rasterizers.stbtruetypesharp/1.2.3", + "hashPath": "fontstashsharp.rasterizers.stbtruetypesharp.1.2.3.nupkg.sha512" + }, + "FontStashSharp.TextShapers.HarfBuzz/1.2.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-XNqav6B77iq1JaN+O+vy7bGE2jEhM5ySMMnNZyFBGDPtd5Fi1PWew6DmVqzvqHDksVdAuGzXWmYd82ODIwQb5A==", + "path": "fontstashsharp.textshapers.harfbuzz/1.2.3", + "hashPath": "fontstashsharp.textshapers.harfbuzz.1.2.3.nupkg.sha512" + }, + "HarfBuzzSharp/8.3.1.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-fqZTo17dEIn/u/YZ1A6avsmF8BYoLSvDsHm+uDp38wortckHWZhJ5pMwJW97xTeOZ9/oxqwUQfRMkf6ni9s5Gw==", + "path": "harfbuzzsharp/8.3.1.2", + "hashPath": "harfbuzzsharp.8.3.1.2.nupkg.sha512" + }, + "HarfBuzzSharp.NativeAssets.macOS/8.3.1.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-+0NtlZSQA540z6VpVoajXldvAOuj5D+BWceh70U3YApxcpUKD/5hjdbdzvyhRaTSTCSZNjRxeaWpBpgJ1U1YcQ==", + "path": "harfbuzzsharp.nativeassets.macos/8.3.1.2", + "hashPath": "harfbuzzsharp.nativeassets.macos.8.3.1.2.nupkg.sha512" + }, + "HarfBuzzSharp.NativeAssets.Win32/8.3.1.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-qmYJsYtOPVeLg7NQoKO5fq1oc5mRKzdgxBXWICx0R03epZ1RIsuzgWRFhVNN0br3c+J+9rIQhy0SXdBwVv0ebA==", + "path": "harfbuzzsharp.nativeassets.win32/8.3.1.2", + "hashPath": "harfbuzzsharp.nativeassets.win32.8.3.1.2.nupkg.sha512" + }, "lzo.net/0.0.6": { "type": "package", "serviceable": true, @@ -902,12 +1070,12 @@ "path": "newtonsoft.json.bson/1.0.2", "hashPath": "newtonsoft.json.bson.1.0.2.nupkg.sha512" }, - "OpenMcdf/2.4.1": { + "OpenMcdf/3.1.4": { "type": "package", "serviceable": true, - "sha512": "sha512-0XVhI+P6pe80xYntIeF6H4F7AIL4ZolMTI5vkm3QUt9XTnRJht6CNYk1eSfI8YInRble6cw91ypF5llPXzKD/A==", - "path": "openmcdf/2.4.1", - "hashPath": "openmcdf.2.4.1.nupkg.sha512" + "sha512": "sha512-ncchtCh9YKqutHTlUCrr1llXA65ijGOCjXBM0mL1+WaGouApWDEACWbBHGzuYcAvB+rgW6IgO4AKgmZ2v1moNA==", + "path": "openmcdf/3.1.4", + "hashPath": "openmcdf.3.1.4.nupkg.sha512" }, "SixLabors.ImageSharp/2.1.11": { "type": "package", @@ -916,6 +1084,20 @@ "path": "sixlabors.imagesharp/2.1.11", "hashPath": "sixlabors.imagesharp.2.1.11.nupkg.sha512" }, + "StbImageSharp/2.30.15": { + "type": "package", + "serviceable": true, + "sha512": "sha512-7QqbupVhz2kcFUPTgMw4iHR9rYDHGundzzee19Mwmd1typ2Lnv8EVJcLJxlkeBM2+4ex0NwsMtdbGSJctp1XCQ==", + "path": "stbimagesharp/2.30.15", + "hashPath": "stbimagesharp.2.30.15.nupkg.sha512" + }, + "StbTrueTypeSharp/1.26.12": { + "type": "package", + "serviceable": true, + "sha512": "sha512-hCc6/OsfcPa5VsLECcEU2m78WOshBrKwK42nAodSm9Z5wH68f7n66SoiRLCdGCkDaqbWz2TlX4zYHIjogj1HJA==", + "path": "stbtruetypesharp/1.26.12", + "hashPath": "stbtruetypesharp.1.26.12.nupkg.sha512" + }, "System.CodeDom/8.0.0": { "type": "package", "serviceable": true, diff --git a/package/Resources/BinariesNET8/UniversalGL/clientogl.dll b/package/Resources/BinariesNET8/UniversalGL/clientogl.dll index bbe160a31..83dc614d2 100755 Binary files a/package/Resources/BinariesNET8/UniversalGL/clientogl.dll and b/package/Resources/BinariesNET8/UniversalGL/clientogl.dll differ diff --git a/package/Resources/BinariesNET8/UniversalGL/clientogl.pdb b/package/Resources/BinariesNET8/UniversalGL/clientogl.pdb index 54e6dd143..312be6166 100644 Binary files a/package/Resources/BinariesNET8/UniversalGL/clientogl.pdb and b/package/Resources/BinariesNET8/UniversalGL/clientogl.pdb differ diff --git a/package/Resources/BinariesNET8/UniversalGL/runtimes/osx/native/libHarfBuzzSharp.dylib b/package/Resources/BinariesNET8/UniversalGL/runtimes/osx/native/libHarfBuzzSharp.dylib new file mode 100644 index 000000000..9939da542 Binary files /dev/null and b/package/Resources/BinariesNET8/UniversalGL/runtimes/osx/native/libHarfBuzzSharp.dylib differ diff --git a/package/Resources/BinariesNET8/UniversalGL/runtimes/win-arm64/native/libHarfBuzzSharp.dll b/package/Resources/BinariesNET8/UniversalGL/runtimes/win-arm64/native/libHarfBuzzSharp.dll new file mode 100644 index 000000000..2d68b66cb Binary files /dev/null and b/package/Resources/BinariesNET8/UniversalGL/runtimes/win-arm64/native/libHarfBuzzSharp.dll differ diff --git a/package/Resources/BinariesNET8/UniversalGL/runtimes/win-x64/native/libHarfBuzzSharp.dll b/package/Resources/BinariesNET8/UniversalGL/runtimes/win-x64/native/libHarfBuzzSharp.dll new file mode 100644 index 000000000..6e84cf2ac Binary files /dev/null and b/package/Resources/BinariesNET8/UniversalGL/runtimes/win-x64/native/libHarfBuzzSharp.dll differ diff --git a/package/Resources/BinariesNET8/UniversalGL/runtimes/win-x64/native/steam_api64.dll b/package/Resources/BinariesNET8/UniversalGL/runtimes/win-x64/native/steam_api64.dll new file mode 100644 index 000000000..0224579a1 Binary files /dev/null and b/package/Resources/BinariesNET8/UniversalGL/runtimes/win-x64/native/steam_api64.dll differ diff --git a/package/Resources/BinariesNET8/UniversalGL/runtimes/win-x86/native/libHarfBuzzSharp.dll b/package/Resources/BinariesNET8/UniversalGL/runtimes/win-x86/native/libHarfBuzzSharp.dll new file mode 100644 index 000000000..68b23abb4 Binary files /dev/null and b/package/Resources/BinariesNET8/UniversalGL/runtimes/win-x86/native/libHarfBuzzSharp.dll differ diff --git a/package/Resources/BinariesNET8/Updater/Rampastring.Tools.dll b/package/Resources/BinariesNET8/Updater/Rampastring.Tools.dll index 6fe0fb7ee..276bf9364 100644 Binary files a/package/Resources/BinariesNET8/Updater/Rampastring.Tools.dll and b/package/Resources/BinariesNET8/Updater/Rampastring.Tools.dll differ diff --git a/package/Resources/BinariesNET8/Updater/Rampastring.Tools.pdb b/package/Resources/BinariesNET8/Updater/Rampastring.Tools.pdb index 81d88480a..4be8f06fa 100644 Binary files a/package/Resources/BinariesNET8/Updater/Rampastring.Tools.pdb and b/package/Resources/BinariesNET8/Updater/Rampastring.Tools.pdb differ diff --git a/package/Resources/BinariesNET8/Updater/Rampastring.Tools.xml b/package/Resources/BinariesNET8/Updater/Rampastring.Tools.xml index ac4f89e73..0cc4b8e30 100644 --- a/package/Resources/BinariesNET8/Updater/Rampastring.Tools.xml +++ b/package/Resources/BinariesNET8/Updater/Rampastring.Tools.xml @@ -267,6 +267,14 @@ The first INI file. The second INI file. + + + Gets or sets a value that determines whether reading from or writing to a file + named "desktop.ini" (in any directory) is forbidden. When set to , + any such attempt throws an . + Defaults to . + + Creates a new INI file instance. diff --git a/package/Resources/BinariesNET8/Updater/SecondStageUpdater.deps.json b/package/Resources/BinariesNET8/Updater/SecondStageUpdater.deps.json index 3d402cb15..111ecf346 100644 --- a/package/Resources/BinariesNET8/Updater/SecondStageUpdater.deps.json +++ b/package/Resources/BinariesNET8/Updater/SecondStageUpdater.deps.json @@ -6,7 +6,7 @@ "compilationOptions": {}, "targets": { ".NETCoreApp,Version=v8.0": { - "SecondStageUpdater/2.12.18": { + "SecondStageUpdater/2.13.0": { "dependencies": { "Rampastring.Tools": "1.0.0" }, @@ -25,7 +25,7 @@ } }, "libraries": { - "SecondStageUpdater/2.12.18": { + "SecondStageUpdater/2.13.0": { "type": "project", "serviceable": false, "sha512": "" diff --git a/package/Resources/BinariesNET8/Updater/SecondStageUpdater.dll b/package/Resources/BinariesNET8/Updater/SecondStageUpdater.dll index 1873470de..822d97ba3 100755 Binary files a/package/Resources/BinariesNET8/Updater/SecondStageUpdater.dll and b/package/Resources/BinariesNET8/Updater/SecondStageUpdater.dll differ diff --git a/package/Resources/BinariesNET8/Updater/SecondStageUpdater.pdb b/package/Resources/BinariesNET8/Updater/SecondStageUpdater.pdb index 299cc8c2a..a55e40749 100644 Binary files a/package/Resources/BinariesNET8/Updater/SecondStageUpdater.pdb and b/package/Resources/BinariesNET8/Updater/SecondStageUpdater.pdb differ diff --git a/package/Resources/BinariesNET8/Windows/ClientCore.dll b/package/Resources/BinariesNET8/Windows/ClientCore.dll index f601eff26..424f3ff67 100644 Binary files a/package/Resources/BinariesNET8/Windows/ClientCore.dll and b/package/Resources/BinariesNET8/Windows/ClientCore.dll differ diff --git a/package/Resources/BinariesNET8/Windows/ClientCore.pdb b/package/Resources/BinariesNET8/Windows/ClientCore.pdb index 55fc91882..71e3b5b37 100644 Binary files a/package/Resources/BinariesNET8/Windows/ClientCore.pdb and b/package/Resources/BinariesNET8/Windows/ClientCore.pdb differ diff --git a/package/Resources/BinariesNET8/Windows/ClientGUI.dll b/package/Resources/BinariesNET8/Windows/ClientGUI.dll index f0dff8342..a6776e5c1 100644 Binary files a/package/Resources/BinariesNET8/Windows/ClientGUI.dll and b/package/Resources/BinariesNET8/Windows/ClientGUI.dll differ diff --git a/package/Resources/BinariesNET8/Windows/ClientGUI.pdb b/package/Resources/BinariesNET8/Windows/ClientGUI.pdb index 8b8624307..706e395de 100644 Binary files a/package/Resources/BinariesNET8/Windows/ClientGUI.pdb and b/package/Resources/BinariesNET8/Windows/ClientGUI.pdb differ diff --git a/package/Resources/BinariesNET8/Windows/FontStashSharp.MonoGame.dll b/package/Resources/BinariesNET8/Windows/FontStashSharp.MonoGame.dll new file mode 100644 index 000000000..d075ee17f Binary files /dev/null and b/package/Resources/BinariesNET8/Windows/FontStashSharp.MonoGame.dll differ diff --git a/package/Resources/BinariesNET8/Windows/Rampastring.XNAUI.WindowsDX.dll b/package/Resources/BinariesNET8/Windows/Rampastring.XNAUI.WindowsDX.dll index 247b5e550..60a81647b 100644 Binary files a/package/Resources/BinariesNET8/Windows/Rampastring.XNAUI.WindowsDX.dll and b/package/Resources/BinariesNET8/Windows/Rampastring.XNAUI.WindowsDX.dll differ diff --git a/package/Resources/BinariesNET8/Windows/Rampastring.XNAUI.WindowsDX.pdb b/package/Resources/BinariesNET8/Windows/Rampastring.XNAUI.WindowsDX.pdb index 7d40861e0..725278edd 100644 Binary files a/package/Resources/BinariesNET8/Windows/Rampastring.XNAUI.WindowsDX.pdb and b/package/Resources/BinariesNET8/Windows/Rampastring.XNAUI.WindowsDX.pdb differ diff --git a/package/Resources/BinariesNET8/Windows/Rampastring.XNAUI.WindowsDX.xml b/package/Resources/BinariesNET8/Windows/Rampastring.XNAUI.WindowsDX.xml index 71c93fbd0..69e7dcc33 100644 --- a/package/Resources/BinariesNET8/Windows/Rampastring.XNAUI.WindowsDX.xml +++ b/package/Resources/BinariesNET8/Windows/Rampastring.XNAUI.WindowsDX.xml @@ -171,11 +171,6 @@ Plays this sound if it's enabled. - - - Disposes the sound effect. - - Updates the priority of the sound. Returns true if the sound effect is @@ -184,6 +179,228 @@ Tells how much time has passed since the previous frame. True if the sound effect is still playing, otherwise false. + + + Sets the root directory for the ContentManager with XNA vs MonoGame differences. + + The ContentManager instance. + The new root directory path. + + + + Extension methods for . + + + + + Returns a substring of this string starting at and containing at most + UTF-16 code units, ensuring the result does not end with an orphaned high surrogate. + + The string to slice. + The zero-based start index of the substring. + Maximum number of UTF-16 code units to include in the result. Must be non-negative. + The safe substring. + + + + Manages font loading and rendering for the UI system. + Supports both SpriteFont and TrueType fonts with automatic fallback. + + + + For TrueType fonts, FontManager creates a separate FontSystem for each font index. + Each FontSystem has a primary font (specified via Path) and optional per-font fallback + chain (via Fallback=N pointing to another font index). When a character is not found in + the primary font, it falls back through the chain in order. + + + The Fonts.ini file format supports: + + [TextShaping] - Optional HarfBuzz text shaping configuration + [Fonts] - Font index definitions with Size, Type, optional Path, and optional Fallback + + + + + + + When set before runs, skips the Fonts.ini search and + loads only legacy SpriteFontN.xnb assets. Lets clients offer an opt-out from + TrueType rendering. + + + + + Gets the current text shaping settings. + + + + + Gets the current font rendering settings. + + + + + Checks if text shaping is currently enabled. + + + + + Creates a new FontSystem with current text shaping settings. + + + + + Loads fonts from the first Fonts.ini found in asset search paths. + + + + Loading happens in two phases: + + + Phase 1: Load configuration from the first Fonts.ini: + - [TextShaping] settings + - [Fonts] definitions (type, path, size, fallback) + + + Phase 2: Create font indexes: + - For TrueType fonts: Create a FontSystem with primary font first, then follow the per-font fallback chain + - For SpriteFonts: Load the .xnb file + + + + When non-null, overrides any FontResolutionFactor from [FontRendering] + in Fonts.ini. Used by to keep TTF + glyphs sharp when the render target is upscaled. + + + + + Loads fonts from a specific Fonts.ini file. + + + + + Creates FontIndex entries from a Fonts.ini file. + For each TrueType font, creates a separate FontSystem with the primary font first, + then follows the per-font fallback chain to add additional fonts. + + + + + Creates a TrueType font index with its own FontSystem. + The FontSystem contains the primary font first, then fonts from + the fallback chain (each [FontN] can point to another via Fallback=X). + + + + + Loads a SpriteFont and adds it to the font list. + + + + + Loads legacy SpriteFonts (SpriteFont0, SpriteFont1, etc.) from a search path. + This method appends new fonts to the existing font list instead of replacing it. + + + + + Configuration for FontStashSharp glyph rasterization. + + + + + Horizontal blur kernel size used by FontStashSharp when rasterizing glyphs. + Maps to FontSystemSettings.KernelWidth. Must be non-negative. + + + + + Vertical blur kernel size used by FontStashSharp when rasterizing glyphs. + Maps to FontSystemSettings.KernelHeight. Must be non-negative. + + + + + Multiplier applied to the rasterization size of each glyph. + Values > 1 produce sharper output when text is drawn at scales above 1.0 + at the cost of a larger atlas footprint. + + + + + Width of each FontStashSharp atlas page, in pixels. + + + + + Height of each FontStashSharp atlas page, in pixels. + + + + + How rasterized glyph pixels are produced. + matches a premultiplied-alpha SpriteBatch, + matches AlphaBlend, and + produces hard 1-bit edges for pixel-art fonts. + + + + + Configuration for HarfBuzz text shaping. + Text shaping is required for complex scripts (Arabic, Hebrew, Hindi, etc.) + and proper rendering of emoji sequences and ligatures. + + + + + Enable HarfBuzz text shaping for complex scripts. + When enabled, text will be properly shaped for languages that require it. + + + + + Enable bidirectional text support for mixed LTR/RTL text. + Only applies when Enabled is true. + + + + + Size of the shaped text cache. + Higher values use more memory but reduce shaping overhead for repeated text. + Default: 100 + + + + + Returns the value V to plug into (controlHeight - V) / 2 for + vertical centering. NOT a geometric height: this is top + bottom of the + cap glyph 'H' from the draw origin (i.e. minY + maxY from FontStashSharp's + TextBounds), chosen so the cap-glyph midpoint lands at controlHeight / 2 + independent of descenders. The geometric glyph height would be maxY - minY. + + + + + For TTF fonts, this always returns true because FontStashSharp can dynamically + generate glyphs for any character. If a glyph is not available in the font file, + a replacement glyph (like � or ?) will be rendered instead. + + + + + Returns a sanitized string safe for rendering. It replaces unpaired surrogates + with U+FFFD so FontStashSharp's UTF-16 -> UTF-32 conversion does not throw. + + + + + Replaces unpaired UTF-16 surrogates with U+FFFD. Returns the original + string reference unchanged when the input is already valid (the common case), + to avoid allocations on the rendering hot path. + + The exception that is thrown when the fails to find a matching @@ -369,17 +586,13 @@ Allows the user to close the game form by Alt-F4. - + - Provides static methods for drawing. + Reloads fonts with a new resolution factor matching the given scale ratio, + so TTF glyphs are rasterized at native display quality rather than being + scaled up from the render resolution. - - - Clears all potentially existing loaded fonts and then loads fonts from asset loader directories. - - A XNA/MonoGame ContentManager instance. - Allows direct access to the list of loaded fonts. @@ -387,16 +600,15 @@ - Returns a version of the given string where all characters that don't - appear in the given font have been replaced with question marks. + Returns a version of the given string that the font renderer can safely display without crashing. The string. The index of the font. - Returns a that has had its width limited to a specific number. - Characters that'd cross over the width have been cut. + Returns a string that has had its width limited to a specific number. + Characters that would cross over the width have been cut. The string to limit. The index of the font to use. @@ -664,6 +876,12 @@ The control, of the highest generation, that the mouse cursor is currently positioned on. + + + If specified, the control blocks other controls on the screen + from being interacted with. Defaults to null. + + Sets the rendering (back buffer) resolution of the game. @@ -1125,18 +1343,39 @@ Raised when the mouse cursor enters the control's area. + + + Raised during the tunneling phase when the left mouse button is pressed down. + Fires on ancestors from outermost to innermost before bubbles. + If handled, the bubbling phase is suppressed. + + Raised once when the left mouse button is pressed down while the cursor is inside the control's area. + + + Raised during the tunneling phase when the right mouse button is pressed down. + Fires on ancestors from outermost to innermost before bubbles. + If handled, the bubbling phase is suppressed. + + Raised once when the right mouse button is pressed down while the cursor is inside the control's area. + + + Raised during the tunneling phase when the middle mouse button is pressed down. + Fires on ancestors from outermost to innermost before bubbles. + If handled, the bubbling phase is suppressed. + + Raised once when the middle mouse button is pressed down while the @@ -1158,6 +1397,20 @@ Raised each frame when the mouse cursor is inside the control's area. + + + Raised during the tunneling phase when the scroll wheel is used to scroll vertically. + Fires on ancestors from outermost to innermost before bubbles. + If handled, the bubbling phase is suppressed. + + + + + Raised during the tunneling phase when the scroll wheel is used to scroll horizontally. + Fires on ancestors from outermost to innermost before bubbles. + If handled, the bubbling phase is suppressed. + + Raised when the scroll wheel is used to scroll vertically @@ -1170,6 +1423,13 @@ while the cursor is inside the control. + + + Raised during the tunneling phase when the left mouse button is clicked. + Fires on ancestors from outermost to innermost before bubbles. + If handled, the bubbling phase is suppressed. + + Raised when the left mouse button is clicked (pressed and released) @@ -1182,12 +1442,26 @@ time-frame while the cursor is inside the control's area. + + + Raised during the tunneling phase when the right mouse button is clicked. + Fires on ancestors from outermost to innermost before bubbles. + If handled, the bubbling phase is suppressed. + + Raised when the right mouse button is clicked (pressed and released) while the cursor is inside the control's area. + + + Raised during the tunneling phase when the middle mouse button is clicked. + Fires on ancestors from outermost to innermost before bubbles. + If handled, the bubbling phase is suppressed. + + Raised when the middle mouse button is clicked (pressed and released) @@ -1727,45 +2001,87 @@ Called when the mouse cursor leaves the control's client rectangle. + + + Called during the tunneling phase when the left mouse button is pressed down. + Fires on ancestors from outermost to innermost before . + Set to true to suppress the bubbling phase. + + Called once when the left mouse button is pressed down while the cursor is on the control. + + + Called during the tunneling phase when the right mouse button is pressed down. + Fires on ancestors from outermost to innermost before . + Set to true to suppress the bubbling phase. + + Called once when the right mouse button is pressed down while the cursor is on the control. + + + Called during the tunneling phase when the middle mouse button is pressed down. + Fires on ancestors from outermost to innermost before . + Set to true to suppress the bubbling phase. + + Called once when the middle mouse button is pressed down while the cursor is on the control. + + + Called during the tunneling phase when the left mouse button is clicked. + Fires on ancestors from outermost to innermost before . + Set to true to suppress the bubbling phase. + + - Called when the left mouse button has been + Called when the left mouse button has been clicked on the control's client rectangle. - Called when the left mouse button has been + Called when the left mouse button has been clicked twice on the control's client rectangle. + + + Called during the tunneling phase when the right mouse button is clicked. + Fires on ancestors from outermost to innermost before . + Set to true to suppress the bubbling phase. + + - Called when the right mouse button has been + Called when the right mouse button has been clicked on the control's client rectangle. + + + Called during the tunneling phase when the middle mouse button is clicked. + Fires on ancestors from outermost to innermost before . + Set to true to suppress the bubbling phase. + + - Called when the middle mouse button has been + Called when the middle mouse button has been clicked on the control's client rectangle. @@ -1780,9 +2096,23 @@ client rectangle. + + + Called during the tunneling phase when the scroll wheel has been scrolled vertically. + Fires on ancestors from outermost to innermost before . + Set to true to suppress the bubbling phase. + + + + + Called during the tunneling phase when the scroll wheel has been scrolled horizontally. + Fires on ancestors from outermost to innermost before . + Set to true to suppress the bubbling phase. + + - Called when the scroll wheel has been scrolled on the + Called when the scroll wheel has been scrolled on the control's client rectangle. @@ -1859,6 +2189,41 @@ If set, the drop-down is opened upwards rather than downwards. + + + When the selected item's text is too wide for the closed control, it is always + cut off at the last fully fitting character so it does not visually overrun the + control's bounds. If this property is enabled, an ellipsis ("...") is appended + to indicate that the text has been truncated. + + + + + The width of the open dropdown list. Computed in as the + maximum of and the widest item's content width, so + wide items remain fully visible when the list is expanded. + + + + + Stores the control width used when the dropdown is closed so it can be restored + after the expanded list has temporarily widened the control. Null when no closed + width has been captured yet, so a legitimate of 0 + is preserved instead of being treated as "not captured". + + + + + Ensures the framework-visible control width matches the actual visible dropdown + width while the list is open, and restores the original width when the list closes. + + + + + Current visible width of the control, accounting for whether the dropdown list + is open and may be wider than the closed-state . + + Adds an item into the drop-down. @@ -1898,6 +2263,18 @@ Returns the index of the item that the cursor currently points to. + + + Invalidates the cached display text. + + + + + Gets the display text for the selected item, fitted to the control's bounds so + it does not visually overrun the control. Appends an ellipsis to indicate + truncation when is enabled. + + Draws the drop-down. diff --git a/package/Resources/BinariesNET8/Windows/Ude.NetStandard.dll b/package/Resources/BinariesNET8/Windows/Ude.NetStandard.dll deleted file mode 100644 index 2cb9b2f50..000000000 Binary files a/package/Resources/BinariesNET8/Windows/Ude.NetStandard.dll and /dev/null differ diff --git a/package/Resources/BinariesNET8/Windows/clientdx.deps.json b/package/Resources/BinariesNET8/Windows/clientdx.deps.json index 9589206f1..6e0275384 100644 --- a/package/Resources/BinariesNET8/Windows/clientdx.deps.json +++ b/package/Resources/BinariesNET8/Windows/clientdx.deps.json @@ -6,14 +6,14 @@ "compilationOptions": {}, "targets": { ".NETCoreApp,Version=v8.0": { - "clientdx/2.12.18": { + "clientdx/2.13.0": { "dependencies": { "ClientGUI": "1.0.0", "ClientUpdater": "1.0.0", "DiscordRichPresence": "1.2.1.24", "Facepunch.Steamworks": "2.4.1", "Microsoft.Extensions.Hosting": "8.0.0", - "OpenMcdf": "2.4.1", + "OpenMcdf": "3.1.4", "SixLabors.ImageSharp": "2.1.11", "System.Management": "8.0.0", "lzo.net": "0.0.6", @@ -23,6 +23,14 @@ "clientdx.dll": {} } }, + "Cyotek.Drawing.BitmapFont/2.0.4": { + "runtime": { + "lib/net5.0/Cyotek.Drawing.BitmapFont.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "2.0.4.0" + } + } + }, "DiscordRichPresence/1.2.1.24": { "dependencies": { "Newtonsoft.Json": "13.0.1" @@ -42,6 +50,92 @@ } } }, + "FontStashSharp.Base/1.2.3": { + "runtime": { + "lib/netstandard2.0/FontStashSharp.Base.dll": { + "assemblyVersion": "1.2.3.0", + "fileVersion": "1.2.3.0" + } + } + }, + "FontStashSharp.MonoGame/1.5.5": { + "dependencies": { + "Cyotek.Drawing.BitmapFont": "2.0.4", + "FontStashSharp.Base": "1.2.3", + "FontStashSharp.Rasterizers.StbTrueTypeSharp": "1.2.3", + "StbImageSharp": "2.30.15" + }, + "runtime": { + "lib/netstandard2.0/FontStashSharp.MonoGame.dll": { + "assemblyVersion": "1.5.5.0", + "fileVersion": "1.5.5.0" + } + } + }, + "FontStashSharp.Rasterizers.StbTrueTypeSharp/1.2.3": { + "dependencies": { + "FontStashSharp.Base": "1.2.3", + "StbTrueTypeSharp": "1.26.12" + }, + "runtime": { + "lib/netstandard2.0/FontStashSharp.Rasterizers.StbTrueTypeSharp.dll": { + "assemblyVersion": "1.2.3.0", + "fileVersion": "1.2.3.0" + } + } + }, + "FontStashSharp.TextShapers.HarfBuzz/1.2.3": { + "dependencies": { + "FontStashSharp.Base": "1.2.3", + "HarfBuzzSharp": "8.3.1.2" + }, + "runtime": { + "lib/netstandard2.0/FontStashSharp.TextShapers.HarfBuzz.dll": { + "assemblyVersion": "1.2.3.0", + "fileVersion": "1.2.3.0" + } + } + }, + "HarfBuzzSharp/8.3.1.2": { + "dependencies": { + "HarfBuzzSharp.NativeAssets.Win32": "8.3.1.2", + "HarfBuzzSharp.NativeAssets.macOS": "8.3.1.2" + }, + "runtime": { + "lib/net8.0/HarfBuzzSharp.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "8.3.1.2" + } + } + }, + "HarfBuzzSharp.NativeAssets.macOS/8.3.1.2": { + "runtimeTargets": { + "runtimes/osx/native/libHarfBuzzSharp.dylib": { + "rid": "osx", + "assetType": "native", + "fileVersion": "0.0.0.0" + } + } + }, + "HarfBuzzSharp.NativeAssets.Win32/8.3.1.2": { + "runtimeTargets": { + "runtimes/win-arm64/native/libHarfBuzzSharp.dll": { + "rid": "win-arm64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x64/native/libHarfBuzzSharp.dll": { + "rid": "win-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x86/native/libHarfBuzzSharp.dll": { + "rid": "win-x86", + "assetType": "native", + "fileVersion": "0.0.0.0" + } + } + }, "ImeSharp/1.4.1": { "dependencies": { "TsfSharp": "1.1.0" @@ -548,11 +642,11 @@ } } }, - "OpenMcdf/2.4.1": { + "OpenMcdf/3.1.4": { "runtime": { - "lib/netstandard2.0/OpenMcdf.dll": { - "assemblyVersion": "2.4.1.0", - "fileVersion": "2.4.1.0" + "lib/net8.0/OpenMcdf.dll": { + "assemblyVersion": "3.1.4.0", + "fileVersion": "3.1.4.0" } } }, @@ -695,6 +789,22 @@ } } }, + "StbImageSharp/2.30.15": { + "runtime": { + "lib/netstandard2.0/StbImageSharp.dll": { + "assemblyVersion": "2.30.15.0", + "fileVersion": "2.30.15.0" + } + } + }, + "StbTrueTypeSharp/1.26.12": { + "runtime": { + "lib/netstandard2.0/StbTrueTypeSharp.dll": { + "assemblyVersion": "1.26.12.0", + "fileVersion": "1.26.12.0" + } + } + }, "System.Management/8.0.0": { "runtime": { "lib/net8.0/System.Management.dll": { @@ -749,8 +859,8 @@ }, "runtime": { "ClientCore.dll": { - "assemblyVersion": "2.12.18.0", - "fileVersion": "2.12.18.0" + "assemblyVersion": "2.13.0.0", + "fileVersion": "2.13.0.0" } } }, @@ -762,8 +872,8 @@ }, "runtime": { "ClientGUI.dll": { - "assemblyVersion": "2.12.18.0", - "fileVersion": "2.12.18.0" + "assemblyVersion": "2.13.0.0", + "fileVersion": "2.13.0.0" } } }, @@ -774,8 +884,8 @@ }, "runtime": { "ClientUpdater.dll": { - "assemblyVersion": "2.12.18.0", - "fileVersion": "2.12.18.0" + "assemblyVersion": "2.13.0.0", + "fileVersion": "2.13.0.0" } } }, @@ -789,6 +899,8 @@ }, "Rampastring.XNAUI.WindowsDX/1.0.0": { "dependencies": { + "FontStashSharp.MonoGame": "1.5.5", + "FontStashSharp.TextShapers.HarfBuzz": "1.2.3", "MonoGame.Framework.WindowsDX": "3.8.1.303", "Rampastring.Tools": "1.0.0", "SixLabors.ImageSharp": "2.1.11", @@ -811,11 +923,18 @@ } }, "libraries": { - "clientdx/2.12.18": { + "clientdx/2.13.0": { "type": "project", "serviceable": false, "sha512": "" }, + "Cyotek.Drawing.BitmapFont/2.0.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-iA6WehGVdMUuNbfsQQDq/Bt+mMd/OqHjiMUtKFLIQd/0pyYh4ehT7FEjTxN9/4OXNKQZsp9bAJgltP2nnswUJg==", + "path": "cyotek.drawing.bitmapfont/2.0.4", + "hashPath": "cyotek.drawing.bitmapfont.2.0.4.nupkg.sha512" + }, "DiscordRichPresence/1.2.1.24": { "type": "package", "serviceable": true, @@ -830,6 +949,55 @@ "path": "facepunch.steamworks/2.4.1", "hashPath": "facepunch.steamworks.2.4.1.nupkg.sha512" }, + "FontStashSharp.Base/1.2.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kw8ovakGHz8jCah+H5M7qI8aOvtESF0jQRpcpubXUMsSid86dRO6DoDPlh+Tk/XAW5a3XgzGDgsHfeZTfZTr+Q==", + "path": "fontstashsharp.base/1.2.3", + "hashPath": "fontstashsharp.base.1.2.3.nupkg.sha512" + }, + "FontStashSharp.MonoGame/1.5.5": { + "type": "package", + "serviceable": true, + "sha512": "sha512-UTHcfF2qLr06SWl69BCfDw/cguzGPPzICRuJ8xmh/vKHYya9OgrJXglhKU8GRsUmEpv/hc6gwXd4wICgF8c9Qg==", + "path": "fontstashsharp.monogame/1.5.5", + "hashPath": "fontstashsharp.monogame.1.5.5.nupkg.sha512" + }, + "FontStashSharp.Rasterizers.StbTrueTypeSharp/1.2.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-xjzgWeiaODbW7DR/kI05V7C3CVtDvtB+4TrgX4EKNpRGzxb42vsvXKWrXORQWU2LCLnPPqdBNNSgtRujnpK2ww==", + "path": "fontstashsharp.rasterizers.stbtruetypesharp/1.2.3", + "hashPath": "fontstashsharp.rasterizers.stbtruetypesharp.1.2.3.nupkg.sha512" + }, + "FontStashSharp.TextShapers.HarfBuzz/1.2.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-XNqav6B77iq1JaN+O+vy7bGE2jEhM5ySMMnNZyFBGDPtd5Fi1PWew6DmVqzvqHDksVdAuGzXWmYd82ODIwQb5A==", + "path": "fontstashsharp.textshapers.harfbuzz/1.2.3", + "hashPath": "fontstashsharp.textshapers.harfbuzz.1.2.3.nupkg.sha512" + }, + "HarfBuzzSharp/8.3.1.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-fqZTo17dEIn/u/YZ1A6avsmF8BYoLSvDsHm+uDp38wortckHWZhJ5pMwJW97xTeOZ9/oxqwUQfRMkf6ni9s5Gw==", + "path": "harfbuzzsharp/8.3.1.2", + "hashPath": "harfbuzzsharp.8.3.1.2.nupkg.sha512" + }, + "HarfBuzzSharp.NativeAssets.macOS/8.3.1.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-+0NtlZSQA540z6VpVoajXldvAOuj5D+BWceh70U3YApxcpUKD/5hjdbdzvyhRaTSTCSZNjRxeaWpBpgJ1U1YcQ==", + "path": "harfbuzzsharp.nativeassets.macos/8.3.1.2", + "hashPath": "harfbuzzsharp.nativeassets.macos.8.3.1.2.nupkg.sha512" + }, + "HarfBuzzSharp.NativeAssets.Win32/8.3.1.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-qmYJsYtOPVeLg7NQoKO5fq1oc5mRKzdgxBXWICx0R03epZ1RIsuzgWRFhVNN0br3c+J+9rIQhy0SXdBwVv0ebA==", + "path": "harfbuzzsharp.nativeassets.win32/8.3.1.2", + "hashPath": "harfbuzzsharp.nativeassets.win32.8.3.1.2.nupkg.sha512" + }, "ImeSharp/1.4.1": { "type": "package", "serviceable": true, @@ -1096,12 +1264,12 @@ "path": "newtonsoft.json.bson/1.0.2", "hashPath": "newtonsoft.json.bson.1.0.2.nupkg.sha512" }, - "OpenMcdf/2.4.1": { + "OpenMcdf/3.1.4": { "type": "package", "serviceable": true, - "sha512": "sha512-0XVhI+P6pe80xYntIeF6H4F7AIL4ZolMTI5vkm3QUt9XTnRJht6CNYk1eSfI8YInRble6cw91ypF5llPXzKD/A==", - "path": "openmcdf/2.4.1", - "hashPath": "openmcdf.2.4.1.nupkg.sha512" + "sha512": "sha512-ncchtCh9YKqutHTlUCrr1llXA65ijGOCjXBM0mL1+WaGouApWDEACWbBHGzuYcAvB+rgW6IgO4AKgmZ2v1moNA==", + "path": "openmcdf/3.1.4", + "hashPath": "openmcdf.3.1.4.nupkg.sha512" }, "SharpDX/4.0.1": { "type": "package", @@ -1187,6 +1355,20 @@ "path": "sixlabors.imagesharp/2.1.11", "hashPath": "sixlabors.imagesharp.2.1.11.nupkg.sha512" }, + "StbImageSharp/2.30.15": { + "type": "package", + "serviceable": true, + "sha512": "sha512-7QqbupVhz2kcFUPTgMw4iHR9rYDHGundzzee19Mwmd1typ2Lnv8EVJcLJxlkeBM2+4ex0NwsMtdbGSJctp1XCQ==", + "path": "stbimagesharp/2.30.15", + "hashPath": "stbimagesharp.2.30.15.nupkg.sha512" + }, + "StbTrueTypeSharp/1.26.12": { + "type": "package", + "serviceable": true, + "sha512": "sha512-hCc6/OsfcPa5VsLECcEU2m78WOshBrKwK42nAodSm9Z5wH68f7n66SoiRLCdGCkDaqbWz2TlX4zYHIjogj1HJA==", + "path": "stbtruetypesharp/1.26.12", + "hashPath": "stbtruetypesharp.1.26.12.nupkg.sha512" + }, "System.Management/8.0.0": { "type": "package", "serviceable": true, diff --git a/package/Resources/BinariesNET8/Windows/clientdx.dll b/package/Resources/BinariesNET8/Windows/clientdx.dll index 2e94c14e2..ace03a4db 100644 Binary files a/package/Resources/BinariesNET8/Windows/clientdx.dll and b/package/Resources/BinariesNET8/Windows/clientdx.dll differ diff --git a/package/Resources/BinariesNET8/Windows/clientdx.pdb b/package/Resources/BinariesNET8/Windows/clientdx.pdb index 54aba3d5d..30f72b142 100644 Binary files a/package/Resources/BinariesNET8/Windows/clientdx.pdb and b/package/Resources/BinariesNET8/Windows/clientdx.pdb differ diff --git a/package/Resources/BinariesNET8/Windows/runtimes/win-arm64/native/libHarfBuzzSharp.dll b/package/Resources/BinariesNET8/Windows/runtimes/win-arm64/native/libHarfBuzzSharp.dll new file mode 100644 index 000000000..2d68b66cb Binary files /dev/null and b/package/Resources/BinariesNET8/Windows/runtimes/win-arm64/native/libHarfBuzzSharp.dll differ diff --git a/package/Resources/BinariesNET8/Windows/runtimes/win-x64/native/libHarfBuzzSharp.dll b/package/Resources/BinariesNET8/Windows/runtimes/win-x64/native/libHarfBuzzSharp.dll new file mode 100644 index 000000000..6e84cf2ac Binary files /dev/null and b/package/Resources/BinariesNET8/Windows/runtimes/win-x64/native/libHarfBuzzSharp.dll differ diff --git a/package/Resources/BinariesNET8/Windows/runtimes/win-x64/native/steam_api64.dll b/package/Resources/BinariesNET8/Windows/runtimes/win-x64/native/steam_api64.dll new file mode 100644 index 000000000..0224579a1 Binary files /dev/null and b/package/Resources/BinariesNET8/Windows/runtimes/win-x64/native/steam_api64.dll differ diff --git a/package/Resources/BinariesNET8/Windows/runtimes/win-x86/native/libHarfBuzzSharp.dll b/package/Resources/BinariesNET8/Windows/runtimes/win-x86/native/libHarfBuzzSharp.dll new file mode 100644 index 000000000..68b23abb4 Binary files /dev/null and b/package/Resources/BinariesNET8/Windows/runtimes/win-x86/native/libHarfBuzzSharp.dll differ diff --git a/package/Resources/BinariesNET8/XNA/ClientCore.dll b/package/Resources/BinariesNET8/XNA/ClientCore.dll index 938e34f87..fc44658c1 100644 Binary files a/package/Resources/BinariesNET8/XNA/ClientCore.dll and b/package/Resources/BinariesNET8/XNA/ClientCore.dll differ diff --git a/package/Resources/BinariesNET8/XNA/ClientCore.pdb b/package/Resources/BinariesNET8/XNA/ClientCore.pdb index 6584ddd69..427dc14e7 100644 Binary files a/package/Resources/BinariesNET8/XNA/ClientCore.pdb and b/package/Resources/BinariesNET8/XNA/ClientCore.pdb differ diff --git a/package/Resources/BinariesNET8/XNA/ClientGUI.dll b/package/Resources/BinariesNET8/XNA/ClientGUI.dll index 15fb0c236..77c734eec 100644 Binary files a/package/Resources/BinariesNET8/XNA/ClientGUI.dll and b/package/Resources/BinariesNET8/XNA/ClientGUI.dll differ diff --git a/package/Resources/BinariesNET8/XNA/ClientGUI.pdb b/package/Resources/BinariesNET8/XNA/ClientGUI.pdb index e2582da5a..fdf317fd7 100644 Binary files a/package/Resources/BinariesNET8/XNA/ClientGUI.pdb and b/package/Resources/BinariesNET8/XNA/ClientGUI.pdb differ diff --git a/package/Resources/BinariesNET8/XNA/FontStashSharp.XNA.dll b/package/Resources/BinariesNET8/XNA/FontStashSharp.XNA.dll new file mode 100644 index 000000000..03b34df63 Binary files /dev/null and b/package/Resources/BinariesNET8/XNA/FontStashSharp.XNA.dll differ diff --git a/package/Resources/BinariesNET8/XNA/Rampastring.XNAUI.WindowsXNA.dll b/package/Resources/BinariesNET8/XNA/Rampastring.XNAUI.WindowsXNA.dll index 4c4314d03..df0b3d23d 100644 Binary files a/package/Resources/BinariesNET8/XNA/Rampastring.XNAUI.WindowsXNA.dll and b/package/Resources/BinariesNET8/XNA/Rampastring.XNAUI.WindowsXNA.dll differ diff --git a/package/Resources/BinariesNET8/XNA/Rampastring.XNAUI.WindowsXNA.pdb b/package/Resources/BinariesNET8/XNA/Rampastring.XNAUI.WindowsXNA.pdb index 32afded93..9c10bf466 100644 Binary files a/package/Resources/BinariesNET8/XNA/Rampastring.XNAUI.WindowsXNA.pdb and b/package/Resources/BinariesNET8/XNA/Rampastring.XNAUI.WindowsXNA.pdb differ diff --git a/package/Resources/BinariesNET8/XNA/Rampastring.XNAUI.WindowsXNA.xml b/package/Resources/BinariesNET8/XNA/Rampastring.XNAUI.WindowsXNA.xml index f4949e4c8..7b6ecd13b 100644 --- a/package/Resources/BinariesNET8/XNA/Rampastring.XNAUI.WindowsXNA.xml +++ b/package/Resources/BinariesNET8/XNA/Rampastring.XNAUI.WindowsXNA.xml @@ -171,11 +171,6 @@ Plays this sound if it's enabled. - - - Disposes the sound effect. - - Updates the priority of the sound. Returns true if the sound effect is @@ -184,6 +179,228 @@ Tells how much time has passed since the previous frame. True if the sound effect is still playing, otherwise false. + + + Sets the root directory for the ContentManager with XNA vs MonoGame differences. + + The ContentManager instance. + The new root directory path. + + + + Extension methods for . + + + + + Returns a substring of this string starting at and containing at most + UTF-16 code units, ensuring the result does not end with an orphaned high surrogate. + + The string to slice. + The zero-based start index of the substring. + Maximum number of UTF-16 code units to include in the result. Must be non-negative. + The safe substring. + + + + Manages font loading and rendering for the UI system. + Supports both SpriteFont and TrueType fonts with automatic fallback. + + + + For TrueType fonts, FontManager creates a separate FontSystem for each font index. + Each FontSystem has a primary font (specified via Path) and optional per-font fallback + chain (via Fallback=N pointing to another font index). When a character is not found in + the primary font, it falls back through the chain in order. + + + The Fonts.ini file format supports: + + [TextShaping] - Optional HarfBuzz text shaping configuration + [Fonts] - Font index definitions with Size, Type, optional Path, and optional Fallback + + + + + + + When set before runs, skips the Fonts.ini search and + loads only legacy SpriteFontN.xnb assets. Lets clients offer an opt-out from + TrueType rendering. + + + + + Gets the current text shaping settings. + + + + + Gets the current font rendering settings. + + + + + Checks if text shaping is currently enabled. + + + + + Creates a new FontSystem with current text shaping settings. + + + + + Loads fonts from the first Fonts.ini found in asset search paths. + + + + Loading happens in two phases: + + + Phase 1: Load configuration from the first Fonts.ini: + - [TextShaping] settings + - [Fonts] definitions (type, path, size, fallback) + + + Phase 2: Create font indexes: + - For TrueType fonts: Create a FontSystem with primary font first, then follow the per-font fallback chain + - For SpriteFonts: Load the .xnb file + + + + When non-null, overrides any FontResolutionFactor from [FontRendering] + in Fonts.ini. Used by to keep TTF + glyphs sharp when the render target is upscaled. + + + + + Loads fonts from a specific Fonts.ini file. + + + + + Creates FontIndex entries from a Fonts.ini file. + For each TrueType font, creates a separate FontSystem with the primary font first, + then follows the per-font fallback chain to add additional fonts. + + + + + Creates a TrueType font index with its own FontSystem. + The FontSystem contains the primary font first, then fonts from + the fallback chain (each [FontN] can point to another via Fallback=X). + + + + + Loads a SpriteFont and adds it to the font list. + + + + + Loads legacy SpriteFonts (SpriteFont0, SpriteFont1, etc.) from a search path. + This method appends new fonts to the existing font list instead of replacing it. + + + + + Configuration for FontStashSharp glyph rasterization. + + + + + Horizontal blur kernel size used by FontStashSharp when rasterizing glyphs. + Maps to FontSystemSettings.KernelWidth. Must be non-negative. + + + + + Vertical blur kernel size used by FontStashSharp when rasterizing glyphs. + Maps to FontSystemSettings.KernelHeight. Must be non-negative. + + + + + Multiplier applied to the rasterization size of each glyph. + Values > 1 produce sharper output when text is drawn at scales above 1.0 + at the cost of a larger atlas footprint. + + + + + Width of each FontStashSharp atlas page, in pixels. + + + + + Height of each FontStashSharp atlas page, in pixels. + + + + + How rasterized glyph pixels are produced. + matches a premultiplied-alpha SpriteBatch, + matches AlphaBlend, and + produces hard 1-bit edges for pixel-art fonts. + + + + + Configuration for HarfBuzz text shaping. + Text shaping is required for complex scripts (Arabic, Hebrew, Hindi, etc.) + and proper rendering of emoji sequences and ligatures. + + + + + Enable HarfBuzz text shaping for complex scripts. + When enabled, text will be properly shaped for languages that require it. + + + + + Enable bidirectional text support for mixed LTR/RTL text. + Only applies when Enabled is true. + + + + + Size of the shaped text cache. + Higher values use more memory but reduce shaping overhead for repeated text. + Default: 100 + + + + + Returns the value V to plug into (controlHeight - V) / 2 for + vertical centering. NOT a geometric height: this is top + bottom of the + cap glyph 'H' from the draw origin (i.e. minY + maxY from FontStashSharp's + TextBounds), chosen so the cap-glyph midpoint lands at controlHeight / 2 + independent of descenders. The geometric glyph height would be maxY - minY. + + + + + For TTF fonts, this always returns true because FontStashSharp can dynamically + generate glyphs for any character. If a glyph is not available in the font file, + a replacement glyph (like � or ?) will be rendered instead. + + + + + Returns a sanitized string safe for rendering. It replaces unpaired surrogates + with U+FFFD so FontStashSharp's UTF-16 -> UTF-32 conversion does not throw. + + + + + Replaces unpaired UTF-16 surrogates with U+FFFD. Returns the original + string reference unchanged when the input is already valid (the common case), + to avoid allocations on the rendering hot path. + + The exception that is thrown when the fails to find a matching @@ -388,17 +605,13 @@ Allows the user to close the game form by Alt-F4. - + - Provides static methods for drawing. + Reloads fonts with a new resolution factor matching the given scale ratio, + so TTF glyphs are rasterized at native display quality rather than being + scaled up from the render resolution. - - - Clears all potentially existing loaded fonts and then loads fonts from asset loader directories. - - A XNA/MonoGame ContentManager instance. - Allows direct access to the list of loaded fonts. @@ -406,16 +619,15 @@ - Returns a version of the given string where all characters that don't - appear in the given font have been replaced with question marks. + Returns a version of the given string that the font renderer can safely display without crashing. The string. The index of the font. - Returns a that has had its width limited to a specific number. - Characters that'd cross over the width have been cut. + Returns a string that has had its width limited to a specific number. + Characters that would cross over the width have been cut. The string to limit. The index of the font to use. @@ -683,6 +895,12 @@ The control, of the highest generation, that the mouse cursor is currently positioned on. + + + If specified, the control blocks other controls on the screen + from being interacted with. Defaults to null. + + Sets the rendering (back buffer) resolution of the game. @@ -1144,18 +1362,39 @@ Raised when the mouse cursor enters the control's area. + + + Raised during the tunneling phase when the left mouse button is pressed down. + Fires on ancestors from outermost to innermost before bubbles. + If handled, the bubbling phase is suppressed. + + Raised once when the left mouse button is pressed down while the cursor is inside the control's area. + + + Raised during the tunneling phase when the right mouse button is pressed down. + Fires on ancestors from outermost to innermost before bubbles. + If handled, the bubbling phase is suppressed. + + Raised once when the right mouse button is pressed down while the cursor is inside the control's area. + + + Raised during the tunneling phase when the middle mouse button is pressed down. + Fires on ancestors from outermost to innermost before bubbles. + If handled, the bubbling phase is suppressed. + + Raised once when the middle mouse button is pressed down while the @@ -1177,6 +1416,20 @@ Raised each frame when the mouse cursor is inside the control's area. + + + Raised during the tunneling phase when the scroll wheel is used to scroll vertically. + Fires on ancestors from outermost to innermost before bubbles. + If handled, the bubbling phase is suppressed. + + + + + Raised during the tunneling phase when the scroll wheel is used to scroll horizontally. + Fires on ancestors from outermost to innermost before bubbles. + If handled, the bubbling phase is suppressed. + + Raised when the scroll wheel is used to scroll vertically @@ -1189,6 +1442,13 @@ while the cursor is inside the control. + + + Raised during the tunneling phase when the left mouse button is clicked. + Fires on ancestors from outermost to innermost before bubbles. + If handled, the bubbling phase is suppressed. + + Raised when the left mouse button is clicked (pressed and released) @@ -1201,12 +1461,26 @@ time-frame while the cursor is inside the control's area. + + + Raised during the tunneling phase when the right mouse button is clicked. + Fires on ancestors from outermost to innermost before bubbles. + If handled, the bubbling phase is suppressed. + + Raised when the right mouse button is clicked (pressed and released) while the cursor is inside the control's area. + + + Raised during the tunneling phase when the middle mouse button is clicked. + Fires on ancestors from outermost to innermost before bubbles. + If handled, the bubbling phase is suppressed. + + Raised when the middle mouse button is clicked (pressed and released) @@ -1746,45 +2020,87 @@ Called when the mouse cursor leaves the control's client rectangle. + + + Called during the tunneling phase when the left mouse button is pressed down. + Fires on ancestors from outermost to innermost before . + Set to true to suppress the bubbling phase. + + Called once when the left mouse button is pressed down while the cursor is on the control. + + + Called during the tunneling phase when the right mouse button is pressed down. + Fires on ancestors from outermost to innermost before . + Set to true to suppress the bubbling phase. + + Called once when the right mouse button is pressed down while the cursor is on the control. + + + Called during the tunneling phase when the middle mouse button is pressed down. + Fires on ancestors from outermost to innermost before . + Set to true to suppress the bubbling phase. + + Called once when the middle mouse button is pressed down while the cursor is on the control. + + + Called during the tunneling phase when the left mouse button is clicked. + Fires on ancestors from outermost to innermost before . + Set to true to suppress the bubbling phase. + + - Called when the left mouse button has been + Called when the left mouse button has been clicked on the control's client rectangle. - Called when the left mouse button has been + Called when the left mouse button has been clicked twice on the control's client rectangle. + + + Called during the tunneling phase when the right mouse button is clicked. + Fires on ancestors from outermost to innermost before . + Set to true to suppress the bubbling phase. + + - Called when the right mouse button has been + Called when the right mouse button has been clicked on the control's client rectangle. + + + Called during the tunneling phase when the middle mouse button is clicked. + Fires on ancestors from outermost to innermost before . + Set to true to suppress the bubbling phase. + + - Called when the middle mouse button has been + Called when the middle mouse button has been clicked on the control's client rectangle. @@ -1799,9 +2115,23 @@ client rectangle. + + + Called during the tunneling phase when the scroll wheel has been scrolled vertically. + Fires on ancestors from outermost to innermost before . + Set to true to suppress the bubbling phase. + + + + + Called during the tunneling phase when the scroll wheel has been scrolled horizontally. + Fires on ancestors from outermost to innermost before . + Set to true to suppress the bubbling phase. + + - Called when the scroll wheel has been scrolled on the + Called when the scroll wheel has been scrolled on the control's client rectangle. @@ -1878,6 +2208,41 @@ If set, the drop-down is opened upwards rather than downwards. + + + When the selected item's text is too wide for the closed control, it is always + cut off at the last fully fitting character so it does not visually overrun the + control's bounds. If this property is enabled, an ellipsis ("...") is appended + to indicate that the text has been truncated. + + + + + The width of the open dropdown list. Computed in as the + maximum of and the widest item's content width, so + wide items remain fully visible when the list is expanded. + + + + + Stores the control width used when the dropdown is closed so it can be restored + after the expanded list has temporarily widened the control. Null when no closed + width has been captured yet, so a legitimate of 0 + is preserved instead of being treated as "not captured". + + + + + Ensures the framework-visible control width matches the actual visible dropdown + width while the list is open, and restores the original width when the list closes. + + + + + Current visible width of the control, accounting for whether the dropdown list + is open and may be wider than the closed-state . + + Adds an item into the drop-down. @@ -1917,6 +2282,18 @@ Returns the index of the item that the cursor currently points to. + + + Invalidates the cached display text. + + + + + Gets the display text for the selected item, fitted to the control's bounds so + it does not visually overrun the control. Appends an ellipsis to indicate + truncation when is enabled. + + Draws the drop-down. diff --git a/package/Resources/BinariesNET8/XNA/Ude.NetStandard.dll b/package/Resources/BinariesNET8/XNA/Ude.NetStandard.dll deleted file mode 100644 index 2cb9b2f50..000000000 Binary files a/package/Resources/BinariesNET8/XNA/Ude.NetStandard.dll and /dev/null differ diff --git a/package/Resources/BinariesNET8/XNA/clientxna.deps.json b/package/Resources/BinariesNET8/XNA/clientxna.deps.json index d03e188ba..5401f4c2f 100644 --- a/package/Resources/BinariesNET8/XNA/clientxna.deps.json +++ b/package/Resources/BinariesNET8/XNA/clientxna.deps.json @@ -7,26 +7,31 @@ "targets": { ".NETCoreApp,Version=v8.0": {}, ".NETCoreApp,Version=v8.0/win-x86": { - "clientxna/2.12.18": { + "clientxna/2.13.0": { "dependencies": { "ClientGUI": "1.0.0", "ClientUpdater": "1.0.0", "DiscordRichPresence": "1.2.1.24", "Facepunch.Steamworks": "2.4.1", "Microsoft.Extensions.Hosting": "8.0.0", - "OpenMcdf": "2.4.1", + "OpenMcdf": "3.1.4", "SixLabors.ImageSharp": "2.1.11", "System.Management": "8.0.0", "lzo.net": "0.0.6", - "Microsoft.Xna.Framework": "4.0.0.0", - "Microsoft.Xna.Framework.Game": "4.0.0.0", - "Microsoft.Xna.Framework.Graphics": "4.0.0.0", "Rampastring.XNAUI.WindowsXNA.Reference": "0.1.0.0" }, "runtime": { "clientxna.dll": {} } }, + "Cyotek.Drawing.BitmapFont/2.0.4": { + "runtime": { + "lib/net5.0/Cyotek.Drawing.BitmapFont.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "2.0.4.0" + } + } + }, "DiscordRichPresence/1.2.1.24": { "dependencies": { "Newtonsoft.Json": "13.0.1" @@ -46,6 +51,110 @@ } } }, + "FontStashSharp.Base/1.2.3": { + "runtime": { + "lib/netstandard2.0/FontStashSharp.Base.dll": { + "assemblyVersion": "1.2.3.0", + "fileVersion": "1.2.3.0" + } + } + }, + "FontStashSharp.Rasterizers.StbTrueTypeSharp/1.2.3": { + "dependencies": { + "FontStashSharp.Base": "1.2.3", + "StbTrueTypeSharp": "1.26.12" + }, + "runtime": { + "lib/netstandard2.0/FontStashSharp.Rasterizers.StbTrueTypeSharp.dll": { + "assemblyVersion": "1.2.3.0", + "fileVersion": "1.2.3.0" + } + } + }, + "FontStashSharp.TextShapers.HarfBuzz/1.2.3": { + "dependencies": { + "FontStashSharp.Base": "1.2.3", + "HarfBuzzSharp": "8.3.1.2" + }, + "runtime": { + "lib/netstandard2.0/FontStashSharp.TextShapers.HarfBuzz.dll": { + "assemblyVersion": "1.2.3.0", + "fileVersion": "1.2.3.0" + } + } + }, + "FontStashSharp.XNA/1.5.5": { + "dependencies": { + "Cyotek.Drawing.BitmapFont": "2.0.4", + "FontStashSharp.Base": "1.2.3", + "FontStashSharp.Rasterizers.StbTrueTypeSharp": "1.2.3", + "StbImageSharp": "2.30.15" + }, + "runtime": { + "lib/net48/FontStashSharp.XNA.dll": { + "assemblyVersion": "1.5.5.0", + "fileVersion": "1.5.5.0" + }, + "lib/net48/Microsoft.Xna.Framework.Avatar.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "4.0.30901.0" + }, + "lib/net48/Microsoft.Xna.Framework.Game.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "4.0.30901.0" + }, + "lib/net48/Microsoft.Xna.Framework.GamerServices.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "4.0.30901.0" + }, + "lib/net48/Microsoft.Xna.Framework.Graphics.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "4.0.30901.0" + }, + "lib/net48/Microsoft.Xna.Framework.Input.Touch.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "4.0.30901.0" + }, + "lib/net48/Microsoft.Xna.Framework.Net.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "4.0.30901.0" + }, + "lib/net48/Microsoft.Xna.Framework.Storage.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "4.0.30901.0" + }, + "lib/net48/Microsoft.Xna.Framework.Video.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "4.0.30901.0" + }, + "lib/net48/Microsoft.Xna.Framework.Xact.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "4.0.30901.0" + }, + "lib/net48/Microsoft.Xna.Framework.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "4.0.30901.0" + } + } + }, + "HarfBuzzSharp/8.3.1.2": { + "dependencies": { + "HarfBuzzSharp.NativeAssets.Win32": "8.3.1.2" + }, + "runtime": { + "lib/net8.0/HarfBuzzSharp.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "8.3.1.2" + } + } + }, + "HarfBuzzSharp.NativeAssets.Win32/8.3.1.2": { + "native": { + "runtimes/win-x86/native/libHarfBuzzSharp.dll": { + "fileVersion": "0.0.0.0" + } + } + }, "ImeSharp/1.4.1": { "dependencies": { "TsfSharp": "1.1.0" @@ -454,11 +563,11 @@ } } }, - "OpenMcdf/2.4.1": { + "OpenMcdf/3.1.4": { "runtime": { - "lib/netstandard2.0/OpenMcdf.dll": { - "assemblyVersion": "2.4.1.0", - "fileVersion": "2.4.1.0" + "lib/net8.0/OpenMcdf.dll": { + "assemblyVersion": "3.1.4.0", + "fileVersion": "3.1.4.0" } } }, @@ -489,6 +598,22 @@ } } }, + "StbImageSharp/2.30.15": { + "runtime": { + "lib/netstandard2.0/StbImageSharp.dll": { + "assemblyVersion": "2.30.15.0", + "fileVersion": "2.30.15.0" + } + } + }, + "StbTrueTypeSharp/1.26.12": { + "runtime": { + "lib/netstandard2.0/StbTrueTypeSharp.dll": { + "assemblyVersion": "1.26.12.0", + "fileVersion": "1.26.12.0" + } + } + }, "System.Management/8.0.0": { "runtime": { "runtimes/win/lib/net8.0/System.Management.dll": { @@ -535,8 +660,8 @@ }, "runtime": { "ClientCore.dll": { - "assemblyVersion": "2.12.18.0", - "fileVersion": "2.12.18.0" + "assemblyVersion": "2.13.0.0", + "fileVersion": "2.13.0.0" } } }, @@ -548,8 +673,8 @@ }, "runtime": { "ClientGUI.dll": { - "assemblyVersion": "2.12.18.0", - "fileVersion": "2.12.18.0" + "assemblyVersion": "2.13.0.0", + "fileVersion": "2.13.0.0" } } }, @@ -560,8 +685,8 @@ }, "runtime": { "ClientUpdater.dll": { - "assemblyVersion": "2.12.18.0", - "fileVersion": "2.12.18.0" + "assemblyVersion": "2.13.0.0", + "fileVersion": "2.13.0.0" } } }, @@ -575,6 +700,8 @@ }, "Rampastring.XNAUI.WindowsXNA/1.0.0": { "dependencies": { + "FontStashSharp.TextShapers.HarfBuzz": "1.2.3", + "FontStashSharp.XNA": "1.5.5", "Rampastring.Tools": "1.0.0", "SixLabors.ImageSharp": "2.1.11", "TextCopy": "6.2.1" @@ -585,30 +712,6 @@ } } }, - "Microsoft.Xna.Framework/4.0.0.0": { - "runtime": { - "Microsoft.Xna.Framework.dll": { - "assemblyVersion": "4.0.0.0", - "fileVersion": "4.0.30901.0" - } - } - }, - "Microsoft.Xna.Framework.Game/4.0.0.0": { - "runtime": { - "Microsoft.Xna.Framework.Game.dll": { - "assemblyVersion": "4.0.0.0", - "fileVersion": "4.0.30901.0" - } - } - }, - "Microsoft.Xna.Framework.Graphics/4.0.0.0": { - "runtime": { - "Microsoft.Xna.Framework.Graphics.dll": { - "assemblyVersion": "4.0.0.0", - "fileVersion": "4.0.30901.0" - } - } - }, "Rampastring.XNAUI.WindowsXNA.Reference/0.1.0.0": { "runtime": { "Rampastring.XNAUI.WindowsXNA.dll": { @@ -616,31 +719,22 @@ "fileVersion": "0.1.0.0" } } - }, - "Microsoft.Xna.Framework.GamerServices/4.0.0.0": { - "runtime": { - "Microsoft.Xna.Framework.GamerServices.dll": { - "assemblyVersion": "4.0.0.0", - "fileVersion": "4.0.30901.0" - } - } - }, - "Microsoft.Xna.Framework.Input.Touch/4.0.0.0": { - "runtime": { - "Microsoft.Xna.Framework.Input.Touch.dll": { - "assemblyVersion": "4.0.0.0", - "fileVersion": "4.0.30901.0" - } - } } } }, "libraries": { - "clientxna/2.12.18": { + "clientxna/2.13.0": { "type": "project", "serviceable": false, "sha512": "" }, + "Cyotek.Drawing.BitmapFont/2.0.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-iA6WehGVdMUuNbfsQQDq/Bt+mMd/OqHjiMUtKFLIQd/0pyYh4ehT7FEjTxN9/4OXNKQZsp9bAJgltP2nnswUJg==", + "path": "cyotek.drawing.bitmapfont/2.0.4", + "hashPath": "cyotek.drawing.bitmapfont.2.0.4.nupkg.sha512" + }, "DiscordRichPresence/1.2.1.24": { "type": "package", "serviceable": true, @@ -655,6 +749,48 @@ "path": "facepunch.steamworks/2.4.1", "hashPath": "facepunch.steamworks.2.4.1.nupkg.sha512" }, + "FontStashSharp.Base/1.2.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kw8ovakGHz8jCah+H5M7qI8aOvtESF0jQRpcpubXUMsSid86dRO6DoDPlh+Tk/XAW5a3XgzGDgsHfeZTfZTr+Q==", + "path": "fontstashsharp.base/1.2.3", + "hashPath": "fontstashsharp.base.1.2.3.nupkg.sha512" + }, + "FontStashSharp.Rasterizers.StbTrueTypeSharp/1.2.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-xjzgWeiaODbW7DR/kI05V7C3CVtDvtB+4TrgX4EKNpRGzxb42vsvXKWrXORQWU2LCLnPPqdBNNSgtRujnpK2ww==", + "path": "fontstashsharp.rasterizers.stbtruetypesharp/1.2.3", + "hashPath": "fontstashsharp.rasterizers.stbtruetypesharp.1.2.3.nupkg.sha512" + }, + "FontStashSharp.TextShapers.HarfBuzz/1.2.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-XNqav6B77iq1JaN+O+vy7bGE2jEhM5ySMMnNZyFBGDPtd5Fi1PWew6DmVqzvqHDksVdAuGzXWmYd82ODIwQb5A==", + "path": "fontstashsharp.textshapers.harfbuzz/1.2.3", + "hashPath": "fontstashsharp.textshapers.harfbuzz.1.2.3.nupkg.sha512" + }, + "FontStashSharp.XNA/1.5.5": { + "type": "package", + "serviceable": true, + "sha512": "sha512-2KqbZBjRXHb8zDlOksKjS/e2K+3PzdE+xe/9svasRWSeE4mpRMk42O40axU/B1uGAihCseWbehHm0oROP5Ctrg==", + "path": "fontstashsharp.xna/1.5.5", + "hashPath": "fontstashsharp.xna.1.5.5.nupkg.sha512" + }, + "HarfBuzzSharp/8.3.1.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-fqZTo17dEIn/u/YZ1A6avsmF8BYoLSvDsHm+uDp38wortckHWZhJ5pMwJW97xTeOZ9/oxqwUQfRMkf6ni9s5Gw==", + "path": "harfbuzzsharp/8.3.1.2", + "hashPath": "harfbuzzsharp.8.3.1.2.nupkg.sha512" + }, + "HarfBuzzSharp.NativeAssets.Win32/8.3.1.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-qmYJsYtOPVeLg7NQoKO5fq1oc5mRKzdgxBXWICx0R03epZ1RIsuzgWRFhVNN0br3c+J+9rIQhy0SXdBwVv0ebA==", + "path": "harfbuzzsharp.nativeassets.win32/8.3.1.2", + "hashPath": "harfbuzzsharp.nativeassets.win32.8.3.1.2.nupkg.sha512" + }, "ImeSharp/1.4.1": { "type": "package", "serviceable": true, @@ -879,12 +1015,12 @@ "path": "newtonsoft.json.bson/1.0.2", "hashPath": "newtonsoft.json.bson.1.0.2.nupkg.sha512" }, - "OpenMcdf/2.4.1": { + "OpenMcdf/3.1.4": { "type": "package", "serviceable": true, - "sha512": "sha512-0XVhI+P6pe80xYntIeF6H4F7AIL4ZolMTI5vkm3QUt9XTnRJht6CNYk1eSfI8YInRble6cw91ypF5llPXzKD/A==", - "path": "openmcdf/2.4.1", - "hashPath": "openmcdf.2.4.1.nupkg.sha512" + "sha512": "sha512-ncchtCh9YKqutHTlUCrr1llXA65ijGOCjXBM0mL1+WaGouApWDEACWbBHGzuYcAvB+rgW6IgO4AKgmZ2v1moNA==", + "path": "openmcdf/3.1.4", + "hashPath": "openmcdf.3.1.4.nupkg.sha512" }, "SharpGen.Runtime/2.0.0-beta.9": { "type": "package", @@ -907,6 +1043,20 @@ "path": "sixlabors.imagesharp/2.1.11", "hashPath": "sixlabors.imagesharp.2.1.11.nupkg.sha512" }, + "StbImageSharp/2.30.15": { + "type": "package", + "serviceable": true, + "sha512": "sha512-7QqbupVhz2kcFUPTgMw4iHR9rYDHGundzzee19Mwmd1typ2Lnv8EVJcLJxlkeBM2+4ex0NwsMtdbGSJctp1XCQ==", + "path": "stbimagesharp/2.30.15", + "hashPath": "stbimagesharp.2.30.15.nupkg.sha512" + }, + "StbTrueTypeSharp/1.26.12": { + "type": "package", + "serviceable": true, + "sha512": "sha512-hCc6/OsfcPa5VsLECcEU2m78WOshBrKwK42nAodSm9Z5wH68f7n66SoiRLCdGCkDaqbWz2TlX4zYHIjogj1HJA==", + "path": "stbtruetypesharp/1.26.12", + "hashPath": "stbtruetypesharp.1.26.12.nupkg.sha512" + }, "System.Management/8.0.0": { "type": "package", "serviceable": true, @@ -960,35 +1110,10 @@ "serviceable": false, "sha512": "" }, - "Microsoft.Xna.Framework/4.0.0.0": { - "type": "reference", - "serviceable": false, - "sha512": "" - }, - "Microsoft.Xna.Framework.Game/4.0.0.0": { - "type": "reference", - "serviceable": false, - "sha512": "" - }, - "Microsoft.Xna.Framework.Graphics/4.0.0.0": { - "type": "reference", - "serviceable": false, - "sha512": "" - }, "Rampastring.XNAUI.WindowsXNA.Reference/0.1.0.0": { "type": "reference", "serviceable": false, "sha512": "" - }, - "Microsoft.Xna.Framework.GamerServices/4.0.0.0": { - "type": "reference", - "serviceable": false, - "sha512": "" - }, - "Microsoft.Xna.Framework.Input.Touch/4.0.0.0": { - "type": "reference", - "serviceable": false, - "sha512": "" } } } \ No newline at end of file diff --git a/package/Resources/BinariesNET8/XNA/clientxna.dll b/package/Resources/BinariesNET8/XNA/clientxna.dll index 692827130..fe237718b 100644 Binary files a/package/Resources/BinariesNET8/XNA/clientxna.dll and b/package/Resources/BinariesNET8/XNA/clientxna.dll differ diff --git a/package/Resources/BinariesNET8/XNA/clientxna.pdb b/package/Resources/BinariesNET8/XNA/clientxna.pdb index aff9800ab..635e825cf 100644 Binary files a/package/Resources/BinariesNET8/XNA/clientxna.pdb and b/package/Resources/BinariesNET8/XNA/clientxna.pdb differ diff --git a/package/Resources/BinariesNET8/XNA/libHarfBuzzSharp.dll b/package/Resources/BinariesNET8/XNA/libHarfBuzzSharp.dll new file mode 100644 index 000000000..68b23abb4 Binary files /dev/null and b/package/Resources/BinariesNET8/XNA/libHarfBuzzSharp.dll differ diff --git a/package/Resources/BinariesNET8/XNA/runtimes/win-x64/native/steam_api64.dll b/package/Resources/BinariesNET8/XNA/runtimes/win-x64/native/steam_api64.dll new file mode 100644 index 000000000..0224579a1 Binary files /dev/null and b/package/Resources/BinariesNET8/XNA/runtimes/win-x64/native/steam_api64.dll differ diff --git a/package/Resources/clientdx.exe b/package/Resources/clientdx.exe index 03fa270d4..b08f24f04 100755 Binary files a/package/Resources/clientdx.exe and b/package/Resources/clientdx.exe differ diff --git a/package/Resources/clientdx.exe.config b/package/Resources/clientdx.exe.config index 4a4f8f19b..bdff837dc 100644 --- a/package/Resources/clientdx.exe.config +++ b/package/Resources/clientdx.exe.config @@ -4,6 +4,12 @@ + + + + + + diff --git a/package/Resources/clientdx.pdb b/package/Resources/clientdx.pdb index 97f16544e..f1b8ed655 100644 Binary files a/package/Resources/clientdx.pdb and b/package/Resources/clientdx.pdb differ diff --git a/package/Resources/clientogl.exe b/package/Resources/clientogl.exe index 4c2dd5dfa..3928a49cc 100755 Binary files a/package/Resources/clientogl.exe and b/package/Resources/clientogl.exe differ diff --git a/package/Resources/clientogl.exe.config b/package/Resources/clientogl.exe.config index 4a4f8f19b..bdff837dc 100644 --- a/package/Resources/clientogl.exe.config +++ b/package/Resources/clientogl.exe.config @@ -4,6 +4,12 @@ + + + + + + diff --git a/package/Resources/clientogl.pdb b/package/Resources/clientogl.pdb index 8e495e55a..b8693f71a 100644 Binary files a/package/Resources/clientogl.pdb and b/package/Resources/clientogl.pdb differ diff --git a/package/Resources/clientxna.exe b/package/Resources/clientxna.exe index cc62712f9..acd2672a7 100755 Binary files a/package/Resources/clientxna.exe and b/package/Resources/clientxna.exe differ diff --git a/package/Resources/clientxna.exe.config b/package/Resources/clientxna.exe.config index 4a4f8f19b..bdff837dc 100644 --- a/package/Resources/clientxna.exe.config +++ b/package/Resources/clientxna.exe.config @@ -4,6 +4,12 @@ + + + + + + diff --git a/package/Resources/clientxna.pdb b/package/Resources/clientxna.pdb index 95f01ac1c..c07c15a42 100644 Binary files a/package/Resources/clientxna.pdb and b/package/Resources/clientxna.pdb differ diff --git a/package/updateexec b/package/updateexec index 263376426..7e460d121 100644 --- a/package/updateexec +++ b/package/updateexec @@ -1,4 +1,16 @@ [Delete] +; 2.13.0 (auto-generated entries for removed/renamed files) +package\Resources\Binaries\Windows\Ude.NetStandard.dll +package\Resources\Binaries\XNA\Ude.NetStandard.dll +package\Resources\BinariesNET8\UniversalGL\Ude.NetStandard.dll +package\Resources\BinariesNET8\Windows\Ude.NetStandard.dll +package\Resources\BinariesNET8\XNA\Ude.NetStandard.dll +package\Resources\Binaries\OpenGL\Ude.NetStandard.dll +package\Resources\Binaries\steam_api64.dll +package\Resources\BinariesNET8\steam_api64.dll +package\Resources\BinariesNET8\OpenGL\Ude.NetStandard.dll +; end entries + package\Resources\Binaries\OpenGL\System.Private.Uri.dll package\Resources\Binaries\Windows\System.Private.Uri.dll package\Resources\BinariesNET8\OpenGL\System.Text.Json.dll @@ -602,3 +614,4 @@ Maps\Yuri's Revenge\Survival\4_defend_liberty_v2_dctanxman.png Maps\Yuri's Revenge\CTF Maps\Yuri's Revenge\Demolition do_not_remove_this_line +