From b24157309df9434d42457b266c560a6e55ed6663 Mon Sep 17 00:00:00 2001
From: Tony Bark <35226681+tonytins@users.noreply.github.com>
Date: Wed, 4 Feb 2026 06:43:14 -0500
Subject: [PATCH] =?UTF-8?q?Initial=20source=20commit=20=F0=9F=8E=89?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.editorconfig | 45 ++
.gitignore | 27 +
CyberBits.slnx | 8 +
CyberBits/Bits.cs | 16 +
CyberBits/CyberBits.csproj | 19 +
CyberBits/FileFetcher.cs | 10 +
CyberBits/GlobalUsing.cs | 3 +
CyberBits/Program.cs | 41 ++
CyberBits/project/cock.json | 7 +
CyberBits/project/main.tscn | 59 ++
CyberBits/project/project.godot | 30 +
CyberBits/project/pussy.json | 7 +
CyberBits/project/sprites/cock.jpg | Bin 0 -> 257843 bytes
CyberBits/project/sprites/cock.jpg.import | 40 ++
CyberBits/project/sprites/pussy.jpg | Bin 0 -> 342560 bytes
CyberBits/project/sprites/pussy.jpg.import | 40 ++
Directory.Build.props | 6 +
LICENSE | 625 +++++++++++++++++++++
README.md | 7 +
global.json | 6 +
20 files changed, 996 insertions(+)
create mode 100644 .editorconfig
create mode 100644 .gitignore
create mode 100644 CyberBits.slnx
create mode 100644 CyberBits/Bits.cs
create mode 100644 CyberBits/CyberBits.csproj
create mode 100644 CyberBits/FileFetcher.cs
create mode 100644 CyberBits/GlobalUsing.cs
create mode 100644 CyberBits/Program.cs
create mode 100644 CyberBits/project/cock.json
create mode 100644 CyberBits/project/main.tscn
create mode 100644 CyberBits/project/project.godot
create mode 100644 CyberBits/project/pussy.json
create mode 100644 CyberBits/project/sprites/cock.jpg
create mode 100644 CyberBits/project/sprites/cock.jpg.import
create mode 100644 CyberBits/project/sprites/pussy.jpg
create mode 100644 CyberBits/project/sprites/pussy.jpg.import
create mode 100644 Directory.Build.props
create mode 100644 LICENSE
create mode 100644 README.md
create mode 100644 global.json
diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 0000000..aeff653
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,45 @@
+root = true
+
+# All files
+[*]
+charset = utf-8
+insert_final_newline = true
+trim_trailing_whitespace = true
+
+# Code files
+[*.{cs,csx,vb,vbx}]
+indent_size = 4
+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
+dotnet_naming_rule.async_methods_end_in_async.style = end_in_async
+
+dotnet_naming_symbols.async_methods.applicable_kinds = method
+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
+
+# Formatting
+csharp_new_line_before_open_brace = all
+csharp_indent_case_contents = true
+csharp_space_after_cast = false
+
+# Project files
+[*.{csproj,props,targets}]
+indent_size = 4
+
+# JSON files
+[*.json]
+indent_size = 2
+
+# Godot files
+[*.{tscn,tres,godot}]
+indent_size = 2
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..e1bad4a
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,27 @@
+# .NET build outputs
+bin/
+obj/
+*.dll
+*.exe
+*.pdb
+
+# User-specific files
+*.user
+*.suo
+*.userprefs
+.vs/
+.vscode/
+.idea/
+
+# Godot-specific ignores
+**/.godot/
+**/.import/
+**/export_presets.cfg
+
+# OS-specific
+.DS_Store
+Thumbs.db
+
+# NuGet packages
+*.nupkg
+packages/
diff --git a/CyberBits.slnx b/CyberBits.slnx
new file mode 100644
index 0000000..0b2c74c
--- /dev/null
+++ b/CyberBits.slnx
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/CyberBits/Bits.cs b/CyberBits/Bits.cs
new file mode 100644
index 0000000..a158ca2
--- /dev/null
+++ b/CyberBits/Bits.cs
@@ -0,0 +1,16 @@
+namespace Cyberbits;
+
+using System.Text.Json.Serialization;
+
+public record Bits(
+ [property: JsonPropertyName("image")]
+ string Image,
+ [property: JsonPropertyName("feat")]
+ string Feat,
+ [property: JsonPropertyName("base")]
+ string[] Base,
+ [property: JsonPropertyName("style")]
+ string[] Style,
+ [property: JsonPropertyName("cyberware")]
+ string[] Cyberware
+);
diff --git a/CyberBits/CyberBits.csproj b/CyberBits/CyberBits.csproj
new file mode 100644
index 0000000..306930d
--- /dev/null
+++ b/CyberBits/CyberBits.csproj
@@ -0,0 +1,19 @@
+
+
+
+ Exe
+ net8.0
+ enable
+ false
+ LatestMajor
+
+
+
+
+
+
+
+ ./project
+
+
+
diff --git a/CyberBits/FileFetcher.cs b/CyberBits/FileFetcher.cs
new file mode 100644
index 0000000..05daf5e
--- /dev/null
+++ b/CyberBits/FileFetcher.cs
@@ -0,0 +1,10 @@
+namespace Cyberbits;
+
+public class FileFetcher
+{
+ public static string LoadTextFile(string filename)
+ {
+ using var file = FileAccess.Open($"res://{filename}", FileAccess.ModeFlags.Read);
+ return file.GetAsText();
+ }
+}
\ No newline at end of file
diff --git a/CyberBits/GlobalUsing.cs b/CyberBits/GlobalUsing.cs
new file mode 100644
index 0000000..313f61a
--- /dev/null
+++ b/CyberBits/GlobalUsing.cs
@@ -0,0 +1,3 @@
+global using System;
+global using Godot;
+global using Engine = twodog.Engine;
\ No newline at end of file
diff --git a/CyberBits/Program.cs b/CyberBits/Program.cs
new file mode 100644
index 0000000..6460a2a
--- /dev/null
+++ b/CyberBits/Program.cs
@@ -0,0 +1,41 @@
+using System.Text.Json;
+using Cyberbits;
+
+using var engine = new Engine("Cyberbits", Engine.ResolveProjectDir());
+using var godot = engine.Start();
+
+// Load a scene
+var scene = GD.Load("res://main.tscn");
+engine.Tree.Root.AddChild(scene.Instantiate());
+
+var bitsImage = engine.Tree.CurrentScene.GetNode("BitsImage");
+var bitsSelection = engine.Tree.CurrentScene.GetNode("BitsSelection");
+var unlockedFeat = engine.Tree.CurrentScene.GetNode