using System.Collections.Generic; using Godot; public class FileHandler() { public static void CreateScriptDirectory() { DirAccess.MakeDirRecursiveAbsolute("user://scripts"); } public static void SaveProgram(string filename, string content) { CreateScriptDirectory(); string path = $"user://scripts/{filename}.dsl"; FileAccess file = FileAccess.Open(path, FileAccess.ModeFlags.Write); file.StoreString(content); } public static List LoadProgramNames() { CreateScriptDirectory(); List programs = new List(); DirAccess dir = DirAccess.Open("user://scripts"); if (dir == null) return programs; dir.ListDirBegin(); while (true) { string fileName = dir.GetNext(); if (fileName == "") break; if (!dir.CurrentIsDir() && fileName.EndsWith(".dsl")) { programs.Add(fileName.Replace(".dsl", "")); } } dir.ListDirEnd(); return programs; } public static string LoadProgram(string name) { CreateScriptDirectory(); string path = $"user://scripts/{name}.dsl"; if (!FileAccess.FileExists(path)) return ""; FileAccess file = FileAccess.Open(path, FileAccess.ModeFlags.Read); return file.GetAsText(); } }