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; } }