diff --git a/.gitmodules b/.gitmodules
index d83f9c8b7..0534efb84 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -6,7 +6,7 @@
url = https://github.com/Space-Wizards-Federation/SpaceWizards.Lidgren.Network
[submodule "XamlX"]
path = XamlX
- url = https://github.com/Space-Wizards-Federation/XamlX
+ url = https://github.com/Space-Wizards-Federation/XamlX.git
[submodule "Robust.LoaderApi"]
path = Robust.LoaderApi
url = https://github.com/Space-Wizards-Federation/Robust.LoaderApi.git
diff --git a/Directory.Packages.props b/Directory.Packages.props
index 69000ce26..9ac450737 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -16,6 +16,7 @@
+
@@ -39,6 +40,7 @@
+
@@ -79,6 +81,7 @@
+
diff --git a/MSBuild/XamlIL.targets b/MSBuild/XamlIL.targets
index c489b3e4b..9f0969ed1 100644
--- a/MSBuild/XamlIL.targets
+++ b/MSBuild/XamlIL.targets
@@ -29,7 +29,7 @@
Release
$(RobustInjectorsConfiguration)_$(RuntimeIdentifier)
$(RobustInjectorsConfiguration.ToLower())
- $(MSBuildThisFileDirectory)\..\Robust.Client.Injectors\bin\$(RobustInjectorsConfiguration)\netstandard2.0\Robust.Client.Injectors.dll
+ $(MSBuildThisFileDirectory)\..\Robust.Client.Injectors\bin\$(RobustInjectorsConfiguration)\net10.0\Robust.Client.Injectors.dll
$(MSBuildThisFileDirectory)\..\..\artifacts\bin\Robust.Client.Injectors\$(RobustInjectorsConfiguration)\Robust.Client.Injectors.dll
diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md
index a2c17daad..d9bc21fd0 100644
--- a/RELEASE-NOTES.md
+++ b/RELEASE-NOTES.md
@@ -35,7 +35,18 @@ END TEMPLATE-->
### Breaking changes
-*None yet*
+- XamlX has been upgraded, and has a new style class syntax.
+ The syntax for multiple style classes has changed from:
+ ```xaml
+
+ Hello
+ World
+
+ ```
+ to
+ ```xaml
+
+ ```
### New features
diff --git a/Robust.Client.Injectors/Robust.Client.Injectors.csproj b/Robust.Client.Injectors/Robust.Client.Injectors.csproj
index 9a4a33ce9..ce195f601 100644
--- a/Robust.Client.Injectors/Robust.Client.Injectors.csproj
+++ b/Robust.Client.Injectors/Robust.Client.Injectors.csproj
@@ -1,18 +1,8 @@
-
- netstandard2.0
+ net10.0
true
8.0
enable
diff --git a/Robust.Client.NameGenerator/InvalidXamlRootTypeException.cs b/Robust.Client.NameGenerator/InvalidXamlRootTypeException.cs
index e3daf4b0b..2e39641b9 100644
--- a/Robust.Client.NameGenerator/InvalidXamlRootTypeException.cs
+++ b/Robust.Client.NameGenerator/InvalidXamlRootTypeException.cs
@@ -6,10 +6,10 @@ namespace Robust.Client.NameGenerator
public class InvalidXamlRootTypeException : Exception
{
public readonly INamedTypeSymbol ExpectedType;
- public readonly INamedTypeSymbol ExpectedBaseType;
+ public readonly INamedTypeSymbol? ExpectedBaseType;
public readonly INamedTypeSymbol Actual;
- public InvalidXamlRootTypeException(INamedTypeSymbol actual, INamedTypeSymbol expectedType, INamedTypeSymbol expectedBaseType)
+ public InvalidXamlRootTypeException(INamedTypeSymbol actual, INamedTypeSymbol expectedType, INamedTypeSymbol? expectedBaseType)
{
Actual = actual;
ExpectedType = expectedType;
diff --git a/Robust.Client.NameGenerator/Robust.Client.NameGenerator.csproj b/Robust.Client.NameGenerator/Robust.Client.NameGenerator.csproj
index f7fa741d8..5dea68f11 100644
--- a/Robust.Client.NameGenerator/Robust.Client.NameGenerator.csproj
+++ b/Robust.Client.NameGenerator/Robust.Client.NameGenerator.csproj
@@ -5,13 +5,15 @@
+
+
-
- disable
+ enable
+ nullable
diff --git a/Robust.Client.NameGenerator/RoslynTypeSystem.cs b/Robust.Client.NameGenerator/RoslynTypeSystem.cs
index 1d6af521b..6f733bf76 100644
--- a/Robust.Client.NameGenerator/RoslynTypeSystem.cs
+++ b/Robust.Client.NameGenerator/RoslynTypeSystem.cs
@@ -1,13 +1,11 @@
-using System.Collections.Generic;
-using System.Linq;
-using Microsoft.CodeAnalysis;
+using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp;
using XamlX.TypeSystem;
namespace Robust.Client.NameGenerator
{
///
- /// Taken from https://github.com/AvaloniaUI/Avalonia.NameGenerator/blob/ecc9677a23de5cbc90af07ccac14e31c0da41d6a/src/Avalonia.NameGenerator/Infrastructure/RoslynTypeSystem.cs
+ /// Taken from https://github.com/AvaloniaUI/Avalonia/blob/9d28762f1439e58e9764d104223b73eef93b26b5/src/tools/Avalonia.Generators/Compiler/RoslynTypeSystem.cs
///
public class RoslynTypeSystem : IXamlTypeSystem
{
@@ -27,11 +25,11 @@ public RoslynTypeSystem(CSharpCompilation compilation)
_assemblies.AddRange(assemblySymbols);
}
- public IReadOnlyList Assemblies => _assemblies;
+ public IEnumerable Assemblies => _assemblies;
public IXamlAssembly FindAssembly(string substring) => _assemblies[0];
- public IXamlType FindType(string name)
+ public IXamlType? FindType(string name)
{
foreach (var assembly in _assemblies)
{
@@ -43,7 +41,7 @@ public IXamlType FindType(string name)
return null;
}
- public IXamlType FindType(string name, string assembly)
+ public IXamlType? FindType(string name, string assembly)
{
foreach (var assemblyInstance in _assemblies)
{
@@ -73,7 +71,7 @@ other is RoslynAssembly roslynAssembly &&
.Select(data => new RoslynAttribute(data, this))
.ToList();
- public IXamlType FindType(string fullName)
+ public IXamlType? FindType(string fullName)
{
var type = _symbol.GetTypeByMetadataName(fullName);
return type is null ? null : new RoslynType(type, this);
@@ -95,14 +93,14 @@ public bool Equals(IXamlCustomAttribute other) =>
other is RoslynAttribute attribute &&
_data == attribute._data;
- public IXamlType Type => new RoslynType(_data.AttributeClass, _assembly);
+ public IXamlType Type => new RoslynType(_data.AttributeClass!, _assembly);
- public List