Update source gen
authorLiza Carvelli <liza@carvel.li>
Mon, 23 Sep 2024 18:32:54 +0000 (20:32 +0200)
committerLiza Carvelli <liza@carvel.li>
Mon, 23 Sep 2024 18:32:54 +0000 (20:32 +0200)
QuestPathGenerator/RoslynElements/PurchaseMenuExtensions.cs [new file with mode: 0644]
QuestPathGenerator/RoslynShortcuts.cs

diff --git a/QuestPathGenerator/RoslynElements/PurchaseMenuExtensions.cs b/QuestPathGenerator/RoslynElements/PurchaseMenuExtensions.cs
new file mode 100644 (file)
index 0000000..251e64c
--- /dev/null
@@ -0,0 +1,28 @@
+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 PurchaseMenuExtensions
+{
+    public static ExpressionSyntax ToExpressionSyntax(this PurchaseMenu purchaseMenu)
+    {
+        PurchaseMenu emptyMenu = new();
+        return ObjectCreationExpression(
+                IdentifierName(nameof(PurchaseMenu)))
+            .WithInitializer(
+                InitializerExpression(
+                    SyntaxKind.ObjectInitializerExpression,
+                    SeparatedList<ExpressionSyntax>(
+                        SyntaxNodeList(
+                            Assignment(nameof(PurchaseMenu.ExcelSheet), purchaseMenu.ExcelSheet,
+                                    emptyMenu.ExcelSheet)
+                                .AsSyntaxNodeOrToken(),
+                            Assignment(nameof(PurchaseMenu.Key), purchaseMenu.Key,
+                                    emptyMenu.Key)
+                                .AsSyntaxNodeOrToken()))));
+    }
+}
index cc146a0b14c07134c2dd8285b90501379a54e21d..4147e47baaaee78b91daffb3430c8467f766e662 100644 (file)
@@ -57,6 +57,7 @@ public static class RoslynShortcuts
                 DialogueChoice dialogueChoice => dialogueChoice.ToExpressionSyntax(),
                 JumpDestination jumpDestination => jumpDestination.ToExpressionSyntax(),
                 ExcelRef excelRef => excelRef.ToExpressionSyntax(),
+                PurchaseMenu purchaseMenu => purchaseMenu.ToExpressionSyntax(),
                 ComplexCombatData complexCombatData => complexCombatData.ToExpressionSyntax(),
                 QuestWorkValue questWorkValue => questWorkValue.ToExpressionSyntax(),
                 List<QuestWorkValue> list => list.ToExpressionSyntax(), // TODO fix in AssignmentList