Questionable/QuestPathGenerator/RoslynElements/JumpDestinationExtensions.cs
2024-08-17 21:01:46 +02:00

34 lines
1.5 KiB
C#

using System.Numerics;
using Microsoft.CodeAnalysis.CSharp;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using Questionable.Model.Questing;
using static Microsoft.CodeAnalysis.CSharp.SyntaxFactory;
using static Questionable.QuestPathGenerator.RoslynShortcuts;
namespace Questionable.QuestPathGenerator.RoslynElements;
internal static class JumpDestinationExtensions
{
public static ExpressionSyntax ToExpressionSyntax(this JumpDestination jumpDestination)
{
return ObjectCreationExpression(
IdentifierName(nameof(JumpDestination)))
.WithInitializer(
InitializerExpression(
SyntaxKind.ObjectInitializerExpression,
SeparatedList<ExpressionSyntax>(
SyntaxNodeList(
Assignment<Vector3?>(nameof(JumpDestination.Position), jumpDestination.Position,
null)
.AsSyntaxNodeOrToken(),
Assignment(nameof(JumpDestination.StopDistance), jumpDestination.StopDistance,
null)
.AsSyntaxNodeOrToken(),
Assignment(nameof(JumpDestination.DelaySeconds), jumpDestination.DelaySeconds,
null)
.AsSyntaxNodeOrToken(),
Assignment(nameof(JumpDestination.Type), jumpDestination.Type, default)
.AsSyntaxNodeOrToken()))));
}
}