diff --git a/.editorconfig b/.editorconfig
index a52bb32..3e6adb7 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -43,20 +43,6 @@ dotnet_naming_rule.consts_must_be_all_caps.severity = warning
dotnet_naming_rule.consts_must_be_all_caps.symbols = const_fields
dotnet_naming_rule.consts_must_be_all_caps.style = all_caps
-
-# Turn off the naming style that enforces an underscore prefix for private fields
-dotnet_naming_style.underscore_prefix_style.capitalization = camel_case
-dotnet_naming_style.underscore_prefix_style.required_prefix = _
-
-# Remove the rule that ties the naming style to private fields
-dotnet_naming_rule.private_fields_underscore_rule.severity = none
-dotnet_naming_rule.private_fields_underscore_rule.symbols = private_fields
-dotnet_naming_rule.private_fields_underscore_rule.style = underscore_prefix_style
-
-# Symbol group for private fields (so the rule can be disabled)
-dotnet_naming_symbols.private_fields.applicable_kinds = field
-dotnet_naming_symbols.private_fields.applicable_accessibilities = private
-
# Formatting
csharp_new_line_before_open_brace = all
csharp_indent_case_contents = true
diff --git a/CyberBits/Assets/game_die.png b/CyberBits/Assets/game_die.png
deleted file mode 100644
index 0f4404b..0000000
Binary files a/CyberBits/Assets/game_die.png and /dev/null differ
diff --git a/CyberBits/Bits.cs b/CyberBits/Bits.cs
new file mode 100644
index 0000000..930eed5
--- /dev/null
+++ b/CyberBits/Bits.cs
@@ -0,0 +1,17 @@
+namespace CyberBits;
+
+public record Bits(
+ [property: JsonPropertyName("image")]
+ string Image,
+ [property: JsonPropertyName("feat")]
+ string Feat,
+ [property: JsonPropertyName("model")]
+ string[] Model,
+ [property: JsonPropertyName("style")]
+ string[] Style
+ );
+
+public record Addon(
+ [property: JsonPropertyName("cyberware")]
+ string[] Cyberware
+);
diff --git a/CyberBits/CyberBits.csproj b/CyberBits/CyberBits.csproj
index 1ed5516..c4b89b3 100644
--- a/CyberBits/CyberBits.csproj
+++ b/CyberBits/CyberBits.csproj
@@ -3,21 +3,14 @@
WinExe
net10.0
enable
- LatestMajor
app.manifest
true
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
+
+
+
diff --git a/CyberBits/Data/cock.json b/CyberBits/Data/cock.json
deleted file mode 100644
index 345a28f..0000000
--- a/CyberBits/Data/cock.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
- "image": "avares://CyberBits/Assets/cock.jpg",
- "feat": "Aim Piss",
- "model": [
- "Au Natural",
- "Les Americaines",
- "La Grand Chungus",
- "Veini Vici",
- "Das Banane",
- "The Ace Custom"
- ],
- "extra": [
- "Hairy",
- "Dangly",
- "Asymmetrical",
- "Bulbous",
- "Doubled",
- "Wrinkly",
- "Cyber"
- ]
-}
diff --git a/CyberBits/Data/pussy.json b/CyberBits/Data/pussy.json
deleted file mode 100644
index ab57ac3..0000000
--- a/CyberBits/Data/pussy.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "image": "avares://CyberBits/Assets/pussy.jpg",
- "feat": "Boom of the Mother Godness",
- "model": [
- "The Shy Sharon",
- "The Proud Priscilla",
- "The Matronly Miriam",
- "The Stretchy Sandra",
- "The Outer Olivia"
- ],
- "extra": [
- "Huge",
- "Hooded",
- "Bright",
- "Shifted",
- "Hard",
- "Expansive",
- "Cyber"
- ]
-}
diff --git a/CyberBits/Data/universal.json b/CyberBits/Data/universal.json
deleted file mode 100644
index 0a0b6e3..0000000
--- a/CyberBits/Data/universal.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "aesthetic": [
- "Bioware",
- "Cyberware",
- "Roboware",
- "Holoware"
- ],
- "cyberware": [
- "Piercings",
- "Datajack",
- "Censor Field",
- "Laser Sight",
- "AI-Controlled Booster Module",
- "Second Bladder",
- "Map Hack",
- "Monowire Blade",
- "Projectile Launcher"
- ],
- "pubes": [
- "The Baldie",
- "The Peach",
- "The Landing Strip",
- "The Peek-a-Boo",
- "The Rectangle",
- "The Bar Code",
- "The Heart",
- "The Lighting Bolt",
- "The Neat Triangle",
- "The Forest",
- "The Jungle",
- "The Breath of the Wild"
- ],
- "butt":
- [
- "Big",
- "Round",
- "Firm"
- ]
-}
diff --git a/CyberBits/DataFiles.cs b/CyberBits/DataFiles.cs
deleted file mode 100644
index 5bb1277..0000000
--- a/CyberBits/DataFiles.cs
+++ /dev/null
@@ -1,8 +0,0 @@
-namespace CyberBits;
-
-public struct DataFiles
-{
- public const string COCK_JSON = "/Data/cock.json";
- public const string PUSSY_JSON = "Data/pussy.json";
- public const string UNIVERSAL_JSON = "Data/universal.json";
-}
diff --git a/CyberBits/Genitals.cs b/CyberBits/Genitals.cs
deleted file mode 100644
index 5a91bb0..0000000
--- a/CyberBits/Genitals.cs
+++ /dev/null
@@ -1,33 +0,0 @@
-using CommunityToolkit.Mvvm.ComponentModel;
-
-namespace CyberBits;
-
-public enum Genitals
-{
- COCK,
- PUSSY
-}
-
-public record GenitalModel(
- [property: JsonPropertyName("image")]
- string Image,
- [property: JsonPropertyName("feat")]
- string Feat,
- [property: JsonPropertyName("model")]
- string[] Model,
- [property: JsonPropertyName("aesthetic")]
- string[] Aesthetic,
- [property: JsonPropertyName("extra")]
- string[] Extra // Balls or Clits
- );
-
-public record UniversalModel(
- [property: JsonPropertyName("aesthetic")]
- string[] Aesthetic,
- [property: JsonPropertyName("cyberware")]
- string[] Cyberware,
- [property: JsonPropertyName("pubes")]
- string[] Pubes,
- [property: JsonPropertyName("butt")]
- string[] Butt
-);
diff --git a/CyberBits/ImageHelper.cs b/CyberBits/ImageHelper.cs
index 06781f5..808204b 100644
--- a/CyberBits/ImageHelper.cs
+++ b/CyberBits/ImageHelper.cs
@@ -16,7 +16,7 @@ public static class ImageHelper
return new Bitmap(AssetLoader.Open(resourceUri));
}
- public static async Task LoadFromWebAsync(Uri url)
+ public static async Task LoadFromWeb(Uri url)
{
try
{
diff --git a/CyberBits/ResourceFiles.cs b/CyberBits/ResourceFiles.cs
new file mode 100644
index 0000000..09d3c03
--- /dev/null
+++ b/CyberBits/ResourceFiles.cs
@@ -0,0 +1,8 @@
+namespace CyberBits;
+
+public struct ResourceFiles
+{
+ public const string COCK_JSON = "Resources/cock.json";
+ public const string PUSSY_JSON = "Resources/pussy.json";
+ public const string ADDONS_JSON = "Resources/addons.json";
+}
diff --git a/CyberBits/Resources/addons.json b/CyberBits/Resources/addons.json
new file mode 100644
index 0000000..3f038b0
--- /dev/null
+++ b/CyberBits/Resources/addons.json
@@ -0,0 +1,6 @@
+{
+ "cyberware": [
+ "Piercings",
+ "Datajack"
+ ]
+}
diff --git a/CyberBits/Resources/cock.json b/CyberBits/Resources/cock.json
new file mode 100644
index 0000000..b11d20b
--- /dev/null
+++ b/CyberBits/Resources/cock.json
@@ -0,0 +1,16 @@
+{
+ "image": "avares://CyberBits/Assets/cock.jpg",
+ "feat": "Aim Piss",
+ "model": [
+ "Au Natural",
+ "Les Americaines"
+ ],
+ "style": [
+ "Bioware",
+ "Cyberware"
+ ],
+ "cyberware": [
+ "Piercings",
+ "Datajack"
+ ]
+}
diff --git a/CyberBits/Resources/pussy.json b/CyberBits/Resources/pussy.json
new file mode 100644
index 0000000..3608721
--- /dev/null
+++ b/CyberBits/Resources/pussy.json
@@ -0,0 +1,12 @@
+{
+ "image": "avares://CyberBits/Assets/pussy.jpg",
+ "feat": "Boom of the Mother Godness",
+ "model": [
+ "Au Natural",
+ "Les Americaines"
+ ],
+ "style": [
+ "Bioware",
+ "Cyberware"
+ ]
+}
diff --git a/CyberBits/ViewModels/ViewModelBase.cs b/CyberBits/ViewModels/ViewModelBase.cs
index 732a5ea..73d0d35 100644
--- a/CyberBits/ViewModels/ViewModelBase.cs
+++ b/CyberBits/ViewModels/ViewModelBase.cs
@@ -1,89 +1,35 @@
-using System;
-using System.Collections.ObjectModel;
+using System.Collections.ObjectModel;
using CommunityToolkit.Mvvm.ComponentModel;
namespace CyberBits.ViewModels;
public partial class ViewModelBase : ObservableObject
{
- public Genitals[] GenitalOptions { get; } = Enum.GetValues();
+ public ObservableCollection Genitals { get; } = ["Cock", "Pussy"];
- public ObservableCollection ModelsList { get; } =
+ public ObservableCollection Models { get; } =
[
"Au Natural",
- "Les Americaines",
- "La Grand Chungus",
- "Veini Vici",
- "Das Banane",
- "The Ace Custom"
+ "Les Americaines"
];
- public ObservableCollection AestheticsList { get; } =
+ public ObservableCollection Styles { get; } =
[
"Bioware",
- "Cyberware",
- "Roboware",
- "Holoware"
+ "Cyberware"
];
- public ObservableCollection CyberwareList { get; } =
+ public ObservableCollection Cyberware { get; } =
[
"Piercings",
- "Datajack",
- "Censor Field",
- "Laser Sight",
- "AI-Controlled Booster Module",
- "Second Bladder",
- "Map Hack",
- "Monowire Blade",
- "Projectile Launcher"
+ "Datajack"
];
- public ObservableCollection PubesList { get; } =
- [
- "The Baldie",
- "The Peach",
- "The Landing Strip",
- "The Peek-a-Boo",
- "The Rectangle",
- "The Bar Code",
- "The Heart",
- "The Lighting Bolt",
- "The Neat Triangle",
- "The Forest",
- "The Jungle",
- "The Breath of the Wild"
- ];
-
- public ObservableCollection ExtrasList { get; } =
- [
- "Hairy",
- "Dangly",
- "Asymmetrical",
- "Bulbous",
- "Doubled",
- "Wrinkly",
- "Cyber"
- ];
-
- public ObservableCollection ButtsList { get; } =
- [
- "Big",
- "Round",
- "Firm"
- ];
-
- [ObservableProperty] private Genitals _selectedBits = Genitals.COCK;
+ [ObservableProperty] private string? _selectedBits;
[ObservableProperty] private string? _selectedModels;
- [ObservableProperty] private string? _selectedAesthetics;
+ [ObservableProperty] private string? _selectedStyles;
[ObservableProperty] private string? _selectedCyberware;
-
- [ObservableProperty] private string? _selectedPubes;
-
- [ObservableProperty] private string? _selectedExtras;
-
- [ObservableProperty] private string? _selectedButt;
}
diff --git a/CyberBits/Views/MainWindow.axaml b/CyberBits/Views/MainWindow.axaml
index d03aad9..ee68ff6 100644
--- a/CyberBits/Views/MainWindow.axaml
+++ b/CyberBits/Views/MainWindow.axaml
@@ -3,8 +3,8 @@
xmlns:vm="using:CyberBits.ViewModels"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- mc:Ignorable="d" d:DesignWidth="700" d:DesignHeight="520"
- Width="700" Height="520" CanResize="False"
+ mc:Ignorable="d" d:DesignWidth="720" d:DesignHeight="430"
+ Width="720" Height="430" CanResize="False"
ExtendClientAreaToDecorationsHint="True"
x:Class="CyberBits.Views.MainWindow"
x:DataType="vm:MainWindowViewModel"
@@ -25,72 +25,39 @@
Text="CyberBits" >
-
+
-
+
-
+
+
-
-
-
-
-
-
+
-
-
-
-
-
-
+
+
+
diff --git a/CyberBits/Views/MainWindow.axaml.cs b/CyberBits/Views/MainWindow.axaml.cs
index 50032c7..3569087 100644
--- a/CyberBits/Views/MainWindow.axaml.cs
+++ b/CyberBits/Views/MainWindow.axaml.cs
@@ -1,77 +1,29 @@
using System;
-using System.IO;
-using System.Reflection;
-using System.Text.Json;
using Avalonia.Controls;
namespace CyberBits.Views;
public partial class MainWindow : Window
{
- string? AppPath => Path.GetDirectoryName(Assembly.GetAssembly(typeof(MainWindow))?.Location);
-
public MainWindow()
{
InitializeComponent();
- try
- {
- var univieralFile = File.ReadAllText($"{AppPath}//{DataFiles.UNIVERSAL_JSON}");
- var univieralData = JsonSerializer.Deserialize(univieralFile);
-
- PubesItems.ItemsSource = univieralData?.Pubes;
- CyberwareItems.ItemsSource = univieralData?.Cyberware;
- AestheticsItems.ItemsSource = univieralData?.Aesthetic;
- ButtOptions.ItemsSource = univieralData?.Butt;
- }
- catch (Exception e)
- {
- Console.WriteLine(e);
- throw;
- }
-
-#if DEBUG
- VersionBox.Text = $"{AppConsts.VERSION}-{ThisAssembly.Git.Commit}";
-#else
- VersionBox.Text = AppConsts.VERSION;
-#endif
-
- }
-
- void GenitalSwap(string image, string data)
- {
-
- try
- {
- var genitalFile = File.ReadAllText($"{AppPath}//{data}");
- var genitalData = JsonSerializer.Deserialize(genitalFile);
- var genitalImage = ImageHelper.LoadFromResource(new Uri(image));
-
- BitsImage.Source = genitalImage;
- ModelItems.ItemsSource = genitalData?.Model;
- ExtraItems.ItemsSource = genitalData?.Extra;
- }
- catch (Exception e)
- {
- Console.WriteLine(e);
- throw;
- }
+ VersionBox.Text = $"v{AppConsts.VERSION}";
}
private void SelectedBitsControl_OnSelectionChanged(object? sender, SelectionChangedEventArgs e)
{
- var appPath = Path.GetDirectoryName(Assembly.GetAssembly(typeof(MainWindow))?.Location);
-
switch (BitSelection.SelectionBoxItem)
{
- case Genitals.PUSSY:
- GenitalSwap("avares://CyberBits/Assets/pussy.jpg", DataFiles.PUSSY_JSON);
- ExtrasText.Text = "Clits";
+ case "Pussy":
+ var pussy = ImageHelper.LoadFromResource(new Uri("avares://CyberBits/Assets/pussy.jpg"));
+ BitsImage.Source = pussy;
break;
- case Genitals.COCK:
- GenitalSwap("avares://CyberBits/Assets/cock.jpg", DataFiles.COCK_JSON);
- ExtrasText.Text = "Balls";
+ case "Cock":
+ var cock = ImageHelper.LoadFromResource(new Uri("avares://CyberBits/Assets/cock.jpg"));
+ BitsImage.Source = cock;
break;
}
}