diff --git a/.editorconfig b/.editorconfig index aeff653..a52f493 100644 --- a/.editorconfig +++ b/.editorconfig @@ -13,9 +13,6 @@ indent_style = space # C# files [*.cs] -# Nullable reference types -csharp_nullable_reference_types = enable - # Naming conventions dotnet_naming_rule.async_methods_end_in_async.severity = suggestion dotnet_naming_rule.async_methods_end_in_async.symbols = async_methods @@ -27,6 +24,16 @@ dotnet_naming_symbols.async_methods.required_modifiers = async dotnet_naming_style.end_in_async.required_suffix = Async dotnet_naming_style.end_in_async.capitalization = pascal_case +# Constants are UPPERCASE +dotnet_naming_rule.constants_should_be_upper_case.severity = suggestion +dotnet_naming_rule.constants_should_be_upper_case.symbols = constants +dotnet_naming_rule.constants_should_be_upper_case.style = constant_style + +dotnet_naming_symbols.constants.applicable_kinds = field, local +dotnet_naming_symbols.constants.required_modifiers = const + +dotnet_naming_style.constant_style.capitalization = all_upper + # Formatting csharp_new_line_before_open_brace = all csharp_indent_case_contents = true diff --git a/CyberBits.slnx b/CyberBits.slnx index 0b2c74c..0dc5250 100644 --- a/CyberBits.slnx +++ b/CyberBits.slnx @@ -1,8 +1,9 @@ - - - + + + + diff --git a/CyberBits/FileFetcher.cs b/CyberBits/FileFetcher.cs index 05daf5e..9095a2e 100644 --- a/CyberBits/FileFetcher.cs +++ b/CyberBits/FileFetcher.cs @@ -1,10 +1,31 @@ namespace Cyberbits; -public class FileFetcher +public static class FileFetcher { - public static string LoadTextFile(string filename) + public static string LoadTextFile(string filename, bool userDir = false) { - using var file = FileAccess.Open($"res://{filename}", FileAccess.ModeFlags.Read); - return file.GetAsText(); + var location = "res"; + + if (userDir) + location = "user"; + + using var file = FileAccess.Open($"{location}://{filename}", FileAccess.ModeFlags.Read); + var contents = file.GetAsText(); + + file.Close(); + return contents; } -} \ No newline at end of file + + public static ConfigFile LoadConfig(string filename, bool userDir = false) + { + var config = new ConfigFile(); + +// Load data from a file. + var err = config.Load(LoadTextFile(filename, userDir)); + + if (err != Error.Ok) + sys.Environment.Exit(sys.Environment.ExitCode); + + return config; + } +} diff --git a/CyberBits/GlobalUsing.cs b/CyberBits/GlobalUsing.cs index 5de1e39..58cb42d 100644 --- a/CyberBits/GlobalUsing.cs +++ b/CyberBits/GlobalUsing.cs @@ -1,5 +1,10 @@ +// System global using System; +global using sys = System; global using System.Text.Json; global using System.Text.Json.Serialization; + +// Godot global using Godot; +global using Godot.Collections; global using Engine = twodog.Engine; diff --git a/CyberBits/Program.cs b/CyberBits/Program.cs index 14bd6df..f4addae 100644 --- a/CyberBits/Program.cs +++ b/CyberBits/Program.cs @@ -6,38 +6,40 @@ using var godot = engine.Start(); // Load a scene var scene = GD.Load("res://main.tscn"); engine.Tree.Root.AddChild(scene.Instantiate()); +var load = engine.Tree.CurrentScene; -var bitsImage = engine.Tree.CurrentScene.GetNode("BitsImage"); -var bitsSelection = engine.Tree.CurrentScene.GetNode("BitsSelection"); -var unlockedFeat = engine.Tree.CurrentScene.GetNode