From 55044ae4b86448ba86cace5f033a5bebc749b382 Mon Sep 17 00:00:00 2001
From: Tony Bark <35226681+tonytins@users.noreply.github.com>
Date: Wed, 4 Feb 2026 19:17:17 -0500
Subject: [PATCH] Refactored Program.cs
- Introduce ResourceFiles.cs with constants for JSON resource paths.
- Updated Program.cs to use those constants.
- Refactored scene handling to store current scene in a variables.
- Added file existence checks and switch quit handling to sys.Environment.Exit.
- Updated .editorconfig.
---
.editorconfig | 13 +++-
CyberBits.slnx | 7 ++-
CyberBits/FileFetcher.cs | 31 ++++++++--
CyberBits/GlobalUsing.cs | 5 ++
CyberBits/Program.cs | 40 +++++++------
CyberBits/ResourceFiles.cs | 8 +++
CyberBits/project/config.cfg | 1 +
CyberBits/project/data/addons.json | 3 -
CyberBits/project/data/cock.json | 7 ---
CyberBits/project/data/pussy.json | 6 --
CyberBits/project/main.tscn | 80 +++++++++++++++++++------
CyberBits/project/project.godot | 1 +
CyberBits/project/resources/addons.json | 6 ++
CyberBits/project/resources/cock.json | 16 +++++
CyberBits/project/resources/pussy.json | 12 ++++
15 files changed, 172 insertions(+), 64 deletions(-)
create mode 100644 CyberBits/ResourceFiles.cs
create mode 100644 CyberBits/project/config.cfg
delete mode 100644 CyberBits/project/data/addons.json
delete mode 100644 CyberBits/project/data/cock.json
delete mode 100644 CyberBits/project/data/pussy.json
create mode 100644 CyberBits/project/resources/addons.json
create mode 100644 CyberBits/project/resources/cock.json
create mode 100644 CyberBits/project/resources/pussy.json
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