4 Commits
Author SHA1 Message Date
oskar3123 7598f3a530 WIP 2021-03-17 23:29:49 +01:00
oskar3123 4950376727 Fix AutoLobby visual bug 2019-08-21 07:41:04 +02:00
oskar3123 e94e2ed8e2 Add AutoLobby tab 2019-08-21 07:33:35 +02:00
oskar3123 91b5de363b Update README.md 2019-08-20 22:37:39 +02:00
29 changed files with 2682 additions and 101 deletions
+1
View File
@@ -2,6 +2,7 @@
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:GTAOnlineCasinoHelper"
xmlns:system="clr-namespace:System;assembly=mscorlib"
StartupUri="MainWindow.xaml">
<Application.Resources>
<ResourceDictionary>
Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

@@ -0,0 +1,89 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GTAOnlineCasinoHelper.Classes
{
public class CeoCollection
{
/*public static readonly CeoPlate Z_TYPE_BIGMONEY = new CeoPlate(CeoModel.Z_TYPE, "B1GMON3Y", true);
public static readonly CeoPlate Z_TYPE_KINGPIN = new CeoPlate(CeoModel.Z_TYPE, "K1NGP1N", false);
public static readonly CeoPlate Z_TYPE_CEO = new CeoPlate(CeoModel.Z_TYPE, "CE0", false);
public static readonly CeoPlate ETR_ONE_PRETTY = new CeoPlate(CeoModel.ETR_ONE, "PR3TTY", true);
public static readonly CeoPlate ETR_ONE_BIGBOY = new CeoPlate(CeoModel.ETR_ONE, "B1GB0Y", false);
public static readonly CeoPlate ETR_ONE_MONARCH = new CeoPlate(CeoModel.ETR_ONE, "M0N4RCH", false);
public static readonly CeoPlate EIGHT_ELEVEN_SLICK = new CeoPlate(CeoModel.EIGHT_ELEVEN, "SL1CK", true);
public static readonly CeoPlate EIGHT_ELEVEN_MIDLIFE = new CeoPlate(CeoModel.EIGHT_ELEVEN, "M1DL1F3", false);
public static readonly CeoPlate EIGHT_ELEVEN_REGAL = new CeoPlate(CeoModel.EIGHT_ELEVEN, "R3G4L", false);
public static readonly CeoPlate OSIRIS_SLEEK = new CeoPlate(CeoModel.OSIRIS, "SL33K", true);
public static readonly CeoPlate OSIRIS_OHELLO = new CeoPlate(CeoModel.OSIRIS, "OH3LL0", false);
public static readonly CeoPlate OSIRIS_PHARAOH = new CeoPlate(CeoModel.OSIRIS, "PH4R40H", false);
public static readonly CeoPlate REAPER_DEATH4U = new CeoPlate(CeoModel.REAPER, "D34TH4U", true);
public static readonly CeoPlate REAPER_2FAST4U = new CeoPlate(CeoModel.REAPER, "2FA5T4U", false);
public static readonly CeoPlate REAPER_GRIM = new CeoPlate(CeoModel.REAPER, "GR1M", false);
public static readonly CeoPlate MAMBA_BLKMAMBA = new CeoPlate(CeoModel.MAMBA, "BLKM4MB4", true);
public static readonly CeoPlate MAMBA_OLDBLUE = new CeoPlate(CeoModel.MAMBA, "0LDBLU3", false);
public static readonly CeoPlate MAMBA_VIP = new CeoPlate(CeoModel.MAMBA, "V1P", false);
public static readonly CeoPlate FMJ_CATCHME = new CeoPlate(CeoModel.FMJ, "C4TCHM3", true);
public static readonly CeoPlate FMJ_JOKER = new CeoPlate(CeoModel.FMJ, "J0K3R", false);
public static readonly CeoPlate FMJ_HOT4U = new CeoPlate(CeoModel.FMJ, "H0T4U", false);
public static readonly CeoPlate STIRLING_GT_RALLY = new CeoPlate(CeoModel.STIRLING_GT, "R4LLY", true);
public static readonly CeoPlate STIRLING_GT_MAJESTIC = new CeoPlate(CeoModel.STIRLING_GT, "M4J3ST1C", false);
public static readonly CeoPlate STIRLING_GT_TOURER = new CeoPlate(CeoModel.STIRLING_GT, "T0UR3R", false);
public static readonly CeoPlate X_EIGHTY_PROTO_MAKEBANK = new CeoPlate(CeoModel.X_EIGHTY_PROTO, "M4K3B4NK", true);
public static readonly CeoPlate X_EIGHTY_PROTO_FUTURE = new CeoPlate(CeoModel.X_EIGHTY_PROTO, "FUTUR3", false);
public static readonly CeoPlate X_EIGHTY_PROTO_TURBO = new CeoPlate(CeoModel.X_EIGHTY_PROTO, "TURB0", false);
public static readonly CeoPlate TYRUS_CITRUS = new CeoPlate(CeoModel.TYRUS, "C1TRUS", true);
public static readonly CeoPlate TYRUS_BESTLAP = new CeoPlate(CeoModel.TYRUS, "B35TL4P", false);
public static readonly CeoPlate TYRUS_TREX = new CeoPlate(CeoModel.TYRUS, "TR3X", false);
public static readonly CeoPlate T_TWENTY_DEVIL = new CeoPlate(CeoModel.T_TWENTY, "D3V1L", true);
public static readonly CeoPlate T_TWENTY_CARAMEL = new CeoPlate(CeoModel.T_TWENTY, "CAR4M3L", false);
public static readonly CeoPlate T_TWENTY_TOPSPEED = new CeoPlate(CeoModel.T_TWENTY, "T0PSP33D", false);
public static readonly CeoPlate ROOSEVELT_VALOR_OLDTIMER = new CeoPlate(CeoModel.ROOSEVELT_VALOR, "0LDT1M3R", true);
public static readonly CeoPlate ROOSEVELT_VALOR_LAWLESS = new CeoPlate(CeoModel.ROOSEVELT_VALOR, "L4WLE55", false);
public static readonly CeoPlate ROOSEVELT_VALOR_VALOR = new CeoPlate(CeoModel.ROOSEVELT_VALOR, "V4L0R", false);*/
private readonly CeoModel model;
private readonly string plate;
private readonly bool collection;
private CeoCollection(CeoModel model, string plate, bool collection)
{
this.model = model;
this.plate = plate;
this.collection = collection;
}
public CeoModel GetModel()
{
return model;
}
public string GetPlate()
{
return plate;
}
public bool IsCollection()
{
return collection;
}
public override bool Equals(object obj)
{
return ReferenceEquals(this, obj);
}
public override int GetHashCode()
{
int hashCode = 17;
hashCode = 31 * hashCode + model.GetHashCode();
hashCode = 31 * hashCode + plate.GetHashCode();
hashCode = 31 * hashCode + collection.GetHashCode();
return hashCode;
}
}
}
+78
View File
@@ -0,0 +1,78 @@
using GTAOnlineCasinoHelper.Extensions;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GTAOnlineCasinoHelper.Classes
{
public class CeoModel
{
private static readonly CultureInfo EN_US = CultureInfo.CreateSpecificCulture("en-US");
private static readonly List<CeoModel> CEO_MODELS = new List<CeoModel>();
#region Standard Range
#endregion
#region Mid Range
public static readonly CeoModel COQUETTE_CLASSIC = new CeoModel("Coquette Classic", CeoRange.MID);
public static readonly CeoModel VERLIERER = new CeoModel("Verlierer", CeoRange.MID);
public static readonly CeoModel ZENTORNO = new CeoModel("Zentorno", CeoRange.MID);
public static readonly CeoModel TROPOS_RALLYE = new CeoModel("Tropos Rallye", CeoRange.MID);
public static readonly CeoModel SULTAN_RS = new CeoModel("Sultan RS", CeoRange.MID);
public static readonly CeoModel CHEETAH = new CeoModel("Cheetah", CeoRange.MID);
public static readonly CeoModel SEVEN_SEVENTY = new CeoModel("Seven-70", CeoRange.MID);
public static readonly CeoModel OMNIS = new CeoModel("Omnis", CeoRange.MID);
public static readonly CeoModel ENTITY_XF = new CeoModel("Entity XF", CeoRange.MID);
public static readonly CeoModel COQUETTE_BLACKFIN = new CeoModel("Coquette BlackFin", CeoRange.MID);
#endregion
#region Top Range
public static readonly CeoModel Z_TYPE = new CeoModel("Z-Type", CeoRange.TOP);
public static readonly CeoModel ETR_ONE = new CeoModel("ETR1", CeoRange.TOP);
public static readonly CeoModel EIGHT_ELEVEN = new CeoModel("811", CeoRange.TOP);
public static readonly CeoModel OSIRIS = new CeoModel("Osiris", CeoRange.TOP);
public static readonly CeoModel REAPER = new CeoModel("Reaper", CeoRange.TOP);
public static readonly CeoModel MAMBA = new CeoModel("Mamba", CeoRange.TOP);
public static readonly CeoModel FMJ = new CeoModel("FMJ", CeoRange.TOP);
public static readonly CeoModel STIRLING_GT = new CeoModel("Stirling GT", CeoRange.TOP);
public static readonly CeoModel X_EIGHTY_PROTO = new CeoModel("X80 Proto", CeoRange.TOP);
public static readonly CeoModel TYRUS = new CeoModel("Tyrus", CeoRange.TOP);
public static readonly CeoModel T_TWENTY = new CeoModel("T20", CeoRange.TOP);
public static readonly CeoModel ROOSEVELT_VALOR = new CeoModel("Roosevelt Valor", CeoRange.TOP);
#endregion
public string Name { get; }
public CeoRange Range { get; }
private CeoModel(string name, CeoRange range)
{
Name = name;
Range = range;
CEO_MODELS.Add(this);
}
public static List<CeoModel> GetCeoModels()
{
return CEO_MODELS;
}
public override string ToString()
{
return $"{Name}";
}
public override bool Equals(object obj)
{
return ReferenceEquals(this, obj);
}
public override int GetHashCode()
{
int hashCode = 17;
hashCode = 31 * hashCode + Name.GetHashCode();
hashCode = 31 * hashCode + Range.GetHashCode();
return hashCode;
}
}
}
+133
View File
@@ -0,0 +1,133 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GTAOnlineCasinoHelper.Classes
{
public class CeoPlate
{
private static readonly Dictionary<string, CeoPlate> PLATE_OBJECT_MAP = new Dictionary<string, CeoPlate>();
#region Mid Range
public static readonly CeoPlate COQUETTE_CLASSIC_TOPLESS = new CeoPlate(CeoModel.COQUETTE_CLASSIC, "T0PL3SS", true);
public static readonly CeoPlate COQUETTE_CLASSIC_TOFFEE = new CeoPlate(CeoModel.COQUETTE_CLASSIC, "T0FF33", false);
public static readonly CeoPlate COQUETTE_CLASSIC_CLASSY = new CeoPlate(CeoModel.COQUETTE_CLASSIC, "CL45SY", false);
public static readonly CeoPlate VERLIERER_PRECIOUS = new CeoPlate(CeoModel.VERLIERER, "PR3C1OUS", true);
public static readonly CeoPlate VERLIERER_OUTFRONT = new CeoPlate(CeoModel.VERLIERER, "0UTFR0NT", false);
public static readonly CeoPlate VERLIERER_CURVES = new CeoPlate(CeoModel.VERLIERER, "CURV35", false);
public static readonly CeoPlate ZENTORNO_WINNING = new CeoPlate(CeoModel.ZENTORNO, "W1NN1NG", true);
public static readonly CeoPlate ZENTORNO_OLDNEWS = new CeoPlate(CeoModel.ZENTORNO, "0LDN3W5", false);
public static readonly CeoPlate ZENTORNO_HERO = new CeoPlate(CeoModel.ZENTORNO, "H3R0", false);
public static readonly CeoPlate TROPOS_RALLYE_1985 = new CeoPlate(CeoModel.TROPOS_RALLYE, "1985", true);
public static readonly CeoPlate TROPOS_RALLYE_IMSORAD = new CeoPlate(CeoModel.TROPOS_RALLYE, "1MS0RAD", false);
public static readonly CeoPlate TROPOS_RALLYE_EIGHTIES = new CeoPlate(CeoModel.TROPOS_RALLYE, "31GHT135", false);
public static readonly CeoPlate SULTAN_RS_SNOWFLKE = new CeoPlate(CeoModel.SULTAN_RS, "SN0WFLK3", true);
public static readonly CeoPlate SULTAN_RS_FIDELITY = new CeoPlate(CeoModel.SULTAN_RS, "F1D3L1TY", false);
public static readonly CeoPlate SULTAN_RS_SHOWOFF = new CeoPlate(CeoModel.SULTAN_RS, "5H0W0FF", false);
public static readonly CeoPlate CHEETAH_BUZZED = new CeoPlate(CeoModel.CHEETAH, "BUZZ3D", true);
public static readonly CeoPlate CHEETAH_MIDNIGHT = new CeoPlate(CeoModel.CHEETAH, "M1DN1GHT", false);
public static readonly CeoPlate CHEETAH_BIGCAT = new CeoPlate(CeoModel.CHEETAH, "B1GC4T", false);
public static readonly CeoPlate SEVEN_SEVENTY_ALLOYS = new CeoPlate(CeoModel.SEVEN_SEVENTY, "4LL0Y5", true);
public static readonly CeoPlate SEVEN_SEVENTY_FRUITY = new CeoPlate(CeoModel.SEVEN_SEVENTY, "FRU1TY", false);
public static readonly CeoPlate SEVEN_SEVENTY_SPEEDY = new CeoPlate(CeoModel.SEVEN_SEVENTY, "SP33DY", false);
public static readonly CeoPlate OMNIS_WIDEBOD = new CeoPlate(CeoModel.OMNIS, "W1D3B0D", true);
public static readonly CeoPlate OMNIS_OBEYME = new CeoPlate(CeoModel.OMNIS, "0BEYM3", false);
public static readonly CeoPlate OMNIS_DIRTY = new CeoPlate(CeoModel.OMNIS, "D1RTY", false);
public static readonly CeoPlate ENTITY_XF_OVERFLOD = new CeoPlate(CeoModel.ENTITY_XF, "0V3RFL0D", true);
public static readonly CeoPlate ENTITY_XF_IMLATE = new CeoPlate(CeoModel.ENTITY_XF, "IML4TE", false);
public static readonly CeoPlate ENTITY_XF_WIDEBOY = new CeoPlate(CeoModel.ENTITY_XF, "W1DEB0Y", false);
public static readonly CeoPlate COQUETTE_BLACKFIN_VINTAGE = new CeoPlate(CeoModel.COQUETTE_BLACKFIN, "V1NT4G3", true);
public static readonly CeoPlate COQUETTE_BLACKFIN_WIPEOUT = new CeoPlate(CeoModel.COQUETTE_BLACKFIN, "W1P3OUT", false);
public static readonly CeoPlate COQUETTE_BLACKFIN_BLKFIN = new CeoPlate(CeoModel.COQUETTE_BLACKFIN, "BLKF1N", false);
#endregion
#region Top Range
public static readonly CeoPlate Z_TYPE_BIGMONEY = new CeoPlate(CeoModel.Z_TYPE, "B1GMON3Y", true);
public static readonly CeoPlate Z_TYPE_KINGPIN = new CeoPlate(CeoModel.Z_TYPE, "K1NGP1N", false);
public static readonly CeoPlate Z_TYPE_CEO = new CeoPlate(CeoModel.Z_TYPE, "CE0", false);
public static readonly CeoPlate ETR_ONE_PRETTY = new CeoPlate(CeoModel.ETR_ONE, "PR3TTY", true);
public static readonly CeoPlate ETR_ONE_BIGBOY = new CeoPlate(CeoModel.ETR_ONE, "B1GB0Y", false);
public static readonly CeoPlate ETR_ONE_MONARCH = new CeoPlate(CeoModel.ETR_ONE, "M0N4RCH", false);
public static readonly CeoPlate EIGHT_ELEVEN_SLICK = new CeoPlate(CeoModel.EIGHT_ELEVEN, "SL1CK", true);
public static readonly CeoPlate EIGHT_ELEVEN_MIDLIFE = new CeoPlate(CeoModel.EIGHT_ELEVEN, "M1DL1F3", false);
public static readonly CeoPlate EIGHT_ELEVEN_REGAL = new CeoPlate(CeoModel.EIGHT_ELEVEN, "R3G4L", false);
public static readonly CeoPlate OSIRIS_SLEEK = new CeoPlate(CeoModel.OSIRIS, "SL33K", true);
public static readonly CeoPlate OSIRIS_OHELLO = new CeoPlate(CeoModel.OSIRIS, "OH3LL0", false);
public static readonly CeoPlate OSIRIS_PHARAOH = new CeoPlate(CeoModel.OSIRIS, "PH4R40H", false);
public static readonly CeoPlate REAPER_DEATH4U = new CeoPlate(CeoModel.REAPER, "D34TH4U", true);
public static readonly CeoPlate REAPER_2FAST4U = new CeoPlate(CeoModel.REAPER, "2FA5T4U", false);
public static readonly CeoPlate REAPER_GRIM = new CeoPlate(CeoModel.REAPER, "GR1M", false);
public static readonly CeoPlate MAMBA_BLKMAMBA = new CeoPlate(CeoModel.MAMBA, "BLKM4MB4", true);
public static readonly CeoPlate MAMBA_OLDBLUE = new CeoPlate(CeoModel.MAMBA, "0LDBLU3", false);
public static readonly CeoPlate MAMBA_VIP = new CeoPlate(CeoModel.MAMBA, "V1P", false);
public static readonly CeoPlate FMJ_CATCHME = new CeoPlate(CeoModel.FMJ, "C4TCHM3", true);
public static readonly CeoPlate FMJ_JOKER = new CeoPlate(CeoModel.FMJ, "J0K3R", false);
public static readonly CeoPlate FMJ_HOT4U = new CeoPlate(CeoModel.FMJ, "H0T4U", false);
public static readonly CeoPlate STIRLING_GT_RALLY = new CeoPlate(CeoModel.STIRLING_GT, "R4LLY", true);
public static readonly CeoPlate STIRLING_GT_MAJESTIC = new CeoPlate(CeoModel.STIRLING_GT, "M4J3ST1C", false);
public static readonly CeoPlate STIRLING_GT_TOURER = new CeoPlate(CeoModel.STIRLING_GT, "T0UR3R", false);
public static readonly CeoPlate X_EIGHTY_PROTO_MAKEBANK = new CeoPlate(CeoModel.X_EIGHTY_PROTO, "M4K3B4NK", true);
public static readonly CeoPlate X_EIGHTY_PROTO_FUTURE = new CeoPlate(CeoModel.X_EIGHTY_PROTO, "FUTUR3", false);
public static readonly CeoPlate X_EIGHTY_PROTO_TURBO = new CeoPlate(CeoModel.X_EIGHTY_PROTO, "TURB0", false);
public static readonly CeoPlate TYRUS_CITRUS = new CeoPlate(CeoModel.TYRUS, "C1TRUS", true);
public static readonly CeoPlate TYRUS_BESTLAP = new CeoPlate(CeoModel.TYRUS, "B35TL4P", false);
public static readonly CeoPlate TYRUS_TREX = new CeoPlate(CeoModel.TYRUS, "TR3X", false);
public static readonly CeoPlate T_TWENTY_DEVIL = new CeoPlate(CeoModel.T_TWENTY, "D3V1L", true);
public static readonly CeoPlate T_TWENTY_CARAMEL = new CeoPlate(CeoModel.T_TWENTY, "CAR4M3L", false);
public static readonly CeoPlate T_TWENTY_TOPSPEED = new CeoPlate(CeoModel.T_TWENTY, "T0PSP33D", false);
public static readonly CeoPlate ROOSEVELT_VALOR_OLDTIMER = new CeoPlate(CeoModel.ROOSEVELT_VALOR, "0LDT1M3R", true);
public static readonly CeoPlate ROOSEVELT_VALOR_LAWLESS = new CeoPlate(CeoModel.ROOSEVELT_VALOR, "L4WLE55", false);
public static readonly CeoPlate ROOSEVELT_VALOR_VALOR = new CeoPlate(CeoModel.ROOSEVELT_VALOR, "V4L0R", false);
#endregion
public CeoModel Model { get; }
public string Plate { get; }
public bool IsCollection { get; }
public string FormattedPlate
{
get
{
return $"{Plate}{(IsCollection ? "*" : "")}";
}
}
private CeoPlate(CeoModel model, string plate, bool collection)
{
Model = model;
Plate = plate;
IsCollection = collection;
PLATE_OBJECT_MAP[plate.ToLower()] = this;
}
public override string ToString()
{
return $"{Plate}{(IsCollection ? "*" : "")} ({Model.ToString()})";
}
public override bool Equals(object obj)
{
return ReferenceEquals(this, obj);
}
public override int GetHashCode()
{
int hashCode = 17;
hashCode = 31 * hashCode + Model.GetHashCode();
hashCode = 31 * hashCode + Plate.GetHashCode();
hashCode = 31 * hashCode + IsCollection.GetHashCode();
return hashCode;
}
public static bool TryFind(string plate, out CeoPlate ceoPlate)
{
if (plate.EndsWith("*"))
{
plate = plate.Substring(0, plate.Length - 1);
}
return PLATE_OBJECT_MAP.TryGetValue(plate.ToLower(), out ceoPlate);
}
}
}
+15
View File
@@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GTAOnlineCasinoHelper.Classes
{
public enum CeoRange
{
STANDARD,
MID,
TOP
}
}
@@ -0,0 +1,29 @@
using GTAOnlineCasinoHelper.Classes;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GTAOnlineCasinoHelper.Extensions
{
public static class CeoExtensions
{
public static string GetRangeName(this CeoRange range)
{
switch (range)
{
case CeoRange.STANDARD:
return "Standard Range";
case CeoRange.MID:
return "Mid Range";
case CeoRange.TOP:
return "Top Range";
default:
return null;
}
}
}
}
@@ -0,0 +1,39 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Media.Imaging;
namespace GTAOnlineCasinoHelper.Extensions
{
public static class ImageExtension
{
[DllImport("gdi32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
internal static extern bool DeleteObject(IntPtr value);
public static BitmapSource GetBitmapSource(this Image image)
{
Bitmap bitmap = new Bitmap(image);
IntPtr bmpPt = bitmap.GetHbitmap();
BitmapSource bitmapSource =
System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(
bmpPt,
IntPtr.Zero,
Int32Rect.Empty,
BitmapSizeOptions.FromEmptyOptions());
//freeze bitmapSource and clear memory to avoid memory leaks
bitmapSource.Freeze();
DeleteObject(bmpPt);
return bitmapSource;
}
}
}
@@ -8,7 +8,7 @@
<ProjectGuid>{F73D2AD0-DCCF-41C5-8903-1ED848F2269D}</ProjectGuid>
<OutputType>WinExe</OutputType>
<RootNamespace>GTAOnlineCasinoHelper</RootNamespace>
<AssemblyName>GTAOnlineCasinoHelper</AssemblyName>
<AssemblyName>GTAOnlineHelper</AssemblyName>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
@@ -37,6 +37,9 @@
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>Assets\GTA5.ico</ApplicationIcon>
</PropertyGroup>
<ItemGroup>
<Reference Include="ControlzEx, Version=4.0.0.0, Culture=neutral, PublicKeyToken=69f1c32f803d307e, processorArchitecture=MSIL">
<HintPath>..\packages\ControlzEx.4.0.1\lib\net45\ControlzEx.dll</HintPath>
@@ -60,6 +63,7 @@
<Reference Include="System.ComponentModel.DataAnnotations" />
<Reference Include="System.Configuration" />
<Reference Include="System.Data" />
<Reference Include="System.Drawing" />
<Reference Include="System.Xml" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Core" />
@@ -78,11 +82,23 @@
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</ApplicationDefinition>
<Compile Include="Classes\CeoCollection.cs" />
<Compile Include="Classes\CeoPlate.cs" />
<Compile Include="Classes\CeoModel.cs" />
<Compile Include="Classes\CeoRange.cs" />
<Compile Include="Extensions\CeoExtensions.cs" />
<Compile Include="Extensions\ImageExtension.cs" />
<Compile Include="Views\CeoVehicle\CeoVehicleInventory.xaml.cs">
<DependentUpon>CeoVehicleInventory.xaml</DependentUpon>
</Compile>
<Compile Include="Views\CeoVehicle\CeoVehicleSource.xaml.cs">
<DependentUpon>CeoVehicleSource.xaml</DependentUpon>
</Compile>
<Compile Include="Views\Settings\ThemeView.xaml.cs">
<DependentUpon>ThemeView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\TestTwo.xaml.cs">
<DependentUpon>TestTwo.xaml</DependentUpon>
<Compile Include="Views\AutoLobby.xaml.cs">
<DependentUpon>AutoLobby.xaml</DependentUpon>
</Compile>
<Compile Include="Views\LuckyWheel.xaml.cs">
<DependentUpon>LuckyWheel.xaml</DependentUpon>
@@ -102,10 +118,18 @@
<DependentUpon>MainWindow.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
<Page Include="Views\CeoVehicle\CeoVehicleInventory.xaml">
<Generator>MSBuild:UpdateDesignTimeXaml</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\CeoVehicle\CeoVehicleSource.xaml">
<Generator>MSBuild:UpdateDesignTimeXaml</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\Settings\ThemeView.xaml">
<Generator>MSBuild:UpdateDesignTimeXaml</Generator>
</Page>
<Page Include="Views\TestTwo.xaml">
<Page Include="Views\AutoLobby.xaml">
<Generator>MSBuild:UpdateDesignTimeXaml</Generator>
<SubType>Designer</SubType>
</Page>
@@ -144,6 +168,12 @@
<ItemGroup>
<None Include="App.config" />
</ItemGroup>
<ItemGroup>
<Resource Include="Assets\GTA5.ico" />
</ItemGroup>
<ItemGroup>
<Resource Include="Assets\GTA5.png" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="..\packages\Fody.4.2.1\build\Fody.targets" Condition="Exists('..\packages\Fody.4.2.1\build\Fody.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
+40 -2
View File
@@ -8,7 +8,7 @@
xmlns:local="clr-namespace:GTAOnlineCasinoHelper"
xmlns:Views="clr-namespace:GTAOnlineCasinoHelper.Views"
mc:Ignorable="d"
Title="GTA Online Casino Helper"
Title="GTA Online Helper"
GlowBrush="{DynamicResource MahApps.Brushes.Accent}"
Height="450"
Width="800">
@@ -30,13 +30,51 @@
</Grid.RowDefinitions>
<Controls:MetroAnimatedSingleRowTabControl x:Name="MainTabControl" Grid.Row="0">
<TabItem Header="LuckyWheel">
<TabItem Header="Lucky Wheel">
<ScrollViewer Margin="2"
HorizontalScrollBarVisibility="Auto"
VerticalScrollBarVisibility="Auto">
<Views:LuckyWheel />
</ScrollViewer>
</TabItem>
<TabItem Header="Auto Lobby">
<ScrollViewer Margin="2"
HorizontalScrollBarVisibility="Auto"
VerticalScrollBarVisibility="Auto">
<Views:AutoLobby />
</ScrollViewer>
</TabItem>
<TabItem Header="CEO Vehicle">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Controls:MetroAnimatedSingleRowTabControl x:Name="CeoTabControl" Grid.Row="0">
<TabItem Header="Source">
<ScrollViewer Margin="2"
HorizontalScrollBarVisibility="Auto"
VerticalScrollBarVisibility="Auto">
<Views:CeoVehicleSource />
</ScrollViewer>
</TabItem>
<TabItem Header="Inventory">
<ScrollViewer Margin="2"
HorizontalScrollBarVisibility="Auto"
VerticalScrollBarVisibility="Auto">
<Views:CeoVehicleInventory />
</ScrollViewer>
</TabItem>
<TabItem Header="Sell">
<ScrollViewer Margin="2"
HorizontalScrollBarVisibility="Auto"
VerticalScrollBarVisibility="Auto">
<Views:CeoVehicleSource />
</ScrollViewer>
</TabItem>
</Controls:MetroAnimatedSingleRowTabControl>
</Grid>
</TabItem>
<!--<TabItem Header="TestTwo">
<ScrollViewer Margin="2"
HorizontalScrollBarVisibility="Auto"
+6 -2
View File
@@ -1,4 +1,6 @@
using GTAOnlineCasinoHelper.Windows;
using GTAOnlineCasinoHelper.Extensions;
using GTAOnlineCasinoHelper.Views;
using GTAOnlineCasinoHelper.Windows;
using MahApps.Metro;
using MahApps.Metro.Controls;
using MahApps.Metro.Controls.Dialogs;
@@ -28,11 +30,13 @@ namespace GTAOnlineCasinoHelper
public partial class MainWindow : MetroWindow
{
public static MainWindow Instance { get; set; }
public static CeoVehicleInventory CeoVehicleInventory { get; set; }
public MainWindow()
{
Instance = this;
InitializeComponent();
this.Icon = Properties.Resources.GTA5.GetBitmapSource();
LoadTheme();
}
@@ -51,7 +55,7 @@ namespace GTAOnlineCasinoHelper
ThemeManager.ChangeTheme(Application.Current, baseColor, colorScheme);
}
private async void ButtonSettings_Click(object sender, RoutedEventArgs e)
private void ButtonSettings_Click(object sender, RoutedEventArgs e)
{
new SettingsWindow().Show();
//await this.ShowMessageAsync("Not implemented yet", "Settings has not been implemented yet");
@@ -7,11 +7,11 @@ using System.Windows;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("GTAOnlineCasinoHelper")]
[assembly: AssemblyDescription("GTA Online - Diamond Casino & Resort Helper")]
[assembly: AssemblyTitle("GTA Online Helper")]
[assembly: AssemblyDescription("GTA Online Helper")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("oskar3123")]
[assembly: AssemblyProduct("GTAOnlineCasinoHelper")]
[assembly: AssemblyProduct("GTA Online Helper")]
[assembly: AssemblyCopyright("Copyright © 2019 oskar3123")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
@@ -51,5 +51,5 @@ using System.Windows;
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyVersion("1.2.0.0")]
[assembly: AssemblyFileVersion("1.2.0.0")]
+10
View File
@@ -59,5 +59,15 @@ namespace GTAOnlineCasinoHelper.Properties {
resourceCulture = value;
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap GTA5 {
get {
object obj = ResourceManager.GetObject("GTA5", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
}
}
@@ -117,4 +117,80 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="GTA5" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
eup/AFpYttV3+saAAAAAAElFTkSuQmCC
</value>
</data>
</root>
+11
View File
@@ -58,5 +58,16 @@ namespace GTAOnlineCasinoHelper.Properties {
this["ThemeColorScheme"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
public global::System.Collections.ArrayList Test {
get {
return ((global::System.Collections.ArrayList)(this["Test"]));
}
set {
this["Test"] = value;
}
}
}
}
@@ -11,5 +11,8 @@
<Setting Name="ThemeColorScheme" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="Test" Type="System.Collections.ArrayList" Scope="User">
<Value Profile="(Default)" />
</Setting>
</Settings>
</SettingsFile>
@@ -0,0 +1,87 @@
<?xml version="1.0" encoding="UTF-8"?>
<UserControl x:Class="GTAOnlineCasinoHelper.Views.AutoLobby"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:iconPacks="http://metro.mahapps.com/winfx/xaml/iconpacks"
xmlns:Controls="http://metro.mahapps.com/winfx/xaml/controls"
xmlns:GTAOnlineCasinoHelper="clr-namespace:GTAOnlineCasinoHelper">
<UserControl.Resources>
<Thickness x:Key="ControlMargin">5</Thickness>
</UserControl.Resources>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<StackPanel Grid.Column="0"
Grid.Row="0"
HorizontalAlignment="Center">
<Button x:Name="Button_AutoLobby"
Margin="5"
Content="Auto Solo Lobby"
Click="Button_AutoLobby_Click"/>
<Button x:Name="Button_Suspend"
Margin="5"
Content="Suspend"
Click="Button_Suspend_Click"/>
<Button x:Name="Button_Resume"
Margin="5"
Content="Resume"
Click="Button_Resume_Click"/>
</StackPanel>
<StackPanel Grid.Column="0"
Grid.Row="1"
HorizontalAlignment="Center">
<TextBlock x:Name="TextBlock_Status"
TextAlignment="Center"
Margin="5"
FontSize="32" />
</StackPanel>
<StackPanel Grid.Column="0"
Grid.Row="2"
HorizontalAlignment="Center"
VerticalAlignment="Bottom">
<CheckBox x:Name="CheckBox_OverrideProcessName"
Margin="5"
Content="Override Process Name"
IsChecked="False"
Checked="CheckBox_OverrideProcessName_Checked"
Unchecked="CheckBox_OverrideProcessName_Unchecked" />
<TextBox x:Name="TextBox_ProcessName"
Margin="5"
Visibility="Collapsed"/>
<CheckBox x:Name="CheckBox_OverrideTimeout"
Margin="5"
Content="Override Timeout"
IsChecked="False"
Checked="CheckBox_OverrideTimeout_Checked"
Unchecked="CheckBox_OverrideTimeout_Unchecked" />
<TextBox x:Name="TextBox_TimeoutSeconds"
Margin="5"
Visibility="Collapsed"/>
</StackPanel>
</Grid>
</UserControl>
<!--<ContentView xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="GTAOnlineCasinoHelper.Views.LuckyWheel">
<ContentView.Content>
<StackLayout>
<Label Text="Hello Xamarin.Forms!" />
</StackLayout>
</ContentView.Content>
</ContentView>-->
@@ -0,0 +1,253 @@
using MahApps.Metro.Controls;
using MahApps.Metro.Controls.Dialogs;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
namespace GTAOnlineCasinoHelper.Views
{
public partial class AutoLobby : UserControl
{
[Flags]
public enum ThreadAccess : int
{
TERMINATE = (0x0001),
SUSPEND_RESUME = (0x0002),
GET_CONTEXT = (0x0008),
SET_CONTEXT = (0x0010),
SET_INFORMATION = (0x0020),
QUERY_INFORMATION = (0x0040),
SET_THREAD_TOKEN = (0x0080),
IMPERSONATE = (0x0100),
DIRECT_IMPERSONATION = (0x0200)
}
[DllImport("kernel32.dll")]
static extern IntPtr OpenThread(ThreadAccess dwDesiredAccess, bool bInheritHandle, uint dwThreadId);
[DllImport("kernel32.dll")]
static extern uint SuspendThread(IntPtr hThread);
[DllImport("kernel32.dll")]
static extern int ResumeThread(IntPtr hThread);
[DllImport("kernel32", CharSet = CharSet.Auto, SetLastError = true)]
static extern bool CloseHandle(IntPtr handle);
private const int SECONDS = 8;
private const int TIMER_INTERVAL = 50;
private const string PROCESS_NAME = "GTA5";
private int Seconds
{
get
{
if (CheckBox_OverrideTimeout.IsChecked.HasValue && CheckBox_OverrideTimeout.IsChecked.Value && int.TryParse(TextBox_TimeoutSeconds.Text, out int seconds))
{
return seconds;
}
else
{
return SECONDS;
}
}
}
private string ProcessName
{
get
{
return (CheckBox_OverrideProcessName.IsChecked.HasValue && CheckBox_OverrideProcessName.IsChecked.Value) ? TextBox_ProcessName.Text : PROCESS_NAME;
}
}
private bool IsSuspended
{
get
{
return suspendedProcesses != null && suspendedProcesses.Length > 0;
}
}
private Process[] suspendedProcesses = new Process[0];
private Timer timer;
private DateTimeOffset timestamp = DateTimeOffset.MinValue;
public AutoLobby()
{
this.InitializeComponent();
this.TextBox_ProcessName.Text = PROCESS_NAME;
this.TextBox_TimeoutSeconds.Text = SECONDS.ToString();
this.timer = new Timer(Timer_Tick, this, Timeout.Infinite, TIMER_INTERVAL);
}
private double GetMilliseconds()
{
return DateTime.Now.ToUniversalTime().Subtract(
new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)
).TotalMilliseconds;
}
private void Timer_Tick(object state)
{
Dispatcher.Invoke(() =>
{
if (!IsSuspended)
{
TextBlock_Status.Text = "";
this.timer.Change(Timeout.Infinite, 50);
}
TimeSpan timeSpan = timestamp - DateTimeOffset.Now;
if (timeSpan.TotalMilliseconds < 0)
{
ResumeGTA();
TextBlock_Status.Text = "";
return;
}
TextBlock_Status.Text = $"{timeSpan.TotalSeconds.ToString("F3")}s";
});
}
private void CheckBox_OverrideProcessName_Checked(object sender, RoutedEventArgs e)
{
TextBox_ProcessName.Visibility = Visibility.Visible;
}
private void CheckBox_OverrideProcessName_Unchecked(object sender, RoutedEventArgs e)
{
TextBox_ProcessName.Visibility = Visibility.Collapsed;
}
private void CheckBox_OverrideTimeout_Checked(object sender, RoutedEventArgs e)
{
TextBox_TimeoutSeconds.Visibility = Visibility.Visible;
}
private void CheckBox_OverrideTimeout_Unchecked(object sender, RoutedEventArgs e)
{
TextBox_TimeoutSeconds.Visibility = Visibility.Collapsed;
}
private async void Button_AutoLobby_Click(object sender, RoutedEventArgs e)
{
if (IsSuspended)
{
await MainWindow.Instance.ShowMessageAsync("GTA V is already suspended", $"GTA V ({ProcessName}.exe) is already suspended");
return;
}
if (!SuspendGTA())
{
await MainWindow.Instance.ShowMessageAsync("GTA V is not running", $"GTA V ({ProcessName}.exe) is not running");
return;
}
timestamp = DateTimeOffset.Now + new TimeSpan(0, 0, Seconds);
TextBlock_Status.Text = $"{Seconds}.000s";
timer.Change(TIMER_INTERVAL, TIMER_INTERVAL);
}
private async void Button_Suspend_Click(object sender, RoutedEventArgs e)
{
if (IsSuspended)
{
await MainWindow.Instance.ShowMessageAsync("GTA V is already suspended", $"GTA V ({ProcessName}.exe) is already suspended");
return;
}
if (!SuspendGTA())
{
await MainWindow.Instance.ShowMessageAsync("GTA V is not running", $"GTA V ({ProcessName}.exe) is not running");
return;
}
TextBlock_Status.Text = "Suspended";
}
private async void Button_Resume_Click(object sender, RoutedEventArgs e)
{
if (!IsSuspended)
{
await MainWindow.Instance.ShowMessageAsync("GTA V is not suspended", $"GTA V ({ProcessName}.exe) is not suspended");
return;
}
ResumeGTA();
TextBlock_Status.Text = "";
}
private static void SuspendProcess(int pid)
{
var process = Process.GetProcessById(pid);
if (process.ProcessName == string.Empty)
return;
foreach (ProcessThread pT in process.Threads)
{
IntPtr pOpenThread = OpenThread(ThreadAccess.SUSPEND_RESUME, false, (uint)pT.Id);
if (pOpenThread == IntPtr.Zero)
{
continue;
}
SuspendThread(pOpenThread);
CloseHandle(pOpenThread);
}
}
public static void ResumeProcess(int pid)
{
var process = Process.GetProcessById(pid);
if (process.ProcessName == string.Empty)
return;
foreach (ProcessThread pT in process.Threads)
{
IntPtr pOpenThread = OpenThread(ThreadAccess.SUSPEND_RESUME, false, (uint)pT.Id);
if (pOpenThread == IntPtr.Zero)
{
continue;
}
var suspendCount = 0;
do
{
suspendCount = ResumeThread(pOpenThread);
} while (suspendCount > 0);
CloseHandle(pOpenThread);
}
}
private bool SuspendGTA()
{
suspendedProcesses = Process.GetProcessesByName(ProcessName);
if (suspendedProcesses.Length < 1)
{
return false;
}
foreach (Process process in suspendedProcesses)
{
SuspendProcess(process.Id);
}
//labelState.Text = "Suspended";
return true;
}
private void ResumeGTA()
{
timer.Change(Timeout.Infinite, TIMER_INTERVAL);
foreach (var process in suspendedProcesses)
{
ResumeProcess(process.Id);
}
suspendedProcesses = new Process[0];
TextBlock_Status.Text = "";
}
}
}
@@ -0,0 +1,505 @@
<?xml version="1.0" encoding="UTF-8"?>
<UserControl x:Class="GTAOnlineCasinoHelper.Views.CeoVehicleInventory"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:iconPacks="http://metro.mahapps.com/winfx/xaml/iconpacks"
xmlns:Controls="http://metro.mahapps.com/winfx/xaml/controls"
xmlns:GTAOnlineCasinoHelper="clr-namespace:GTAOnlineCasinoHelper">
<UserControl.Resources>
<Thickness x:Key="ControlMargin">5</Thickness>
</UserControl.Resources>
<Grid Margin="5 0 5 0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid Grid.Column="0"
Grid.Row="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<StackPanel Grid.Column="0"
Grid.ColumnSpan="4"
Grid.Row="0"
HorizontalAlignment="Center"
VerticalAlignment="Bottom">
<TextBlock Text="Z-Type"
FontSize="16" />
</StackPanel>
<!--#region plate0-->
<TextBlock Grid.Column="0"
Grid.Row="1"
HorizontalAlignment="Right"
VerticalAlignment="Center"
Text="{Binding TopPlates[0][0][0].FormattedPlate}" />
<Button DataContext="{Binding TopPlates[0][0][0]}"
Grid.Column="1"
Grid.Row="1"
HorizontalAlignment="Center"
Content="-"
Margin="2"
MinWidth="25"
Click="Button_Remove_Click" />
<TextBlock Grid.Column="2"
Grid.Row="1"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Text="{Binding TopPlateInventory[0][0][0]}" />
<Button DataContext="{Binding TopPlates[0][0][0]}"
Grid.Column="3"
Grid.Row="1"
HorizontalAlignment="Center"
Content="+"
Margin="2"
MinWidth="25"
Click="Button_Add_Click" />
<!--#endregion-->
<!--#region plate1-->
<TextBlock Grid.Column="0"
Grid.Row="2"
HorizontalAlignment="Right"
VerticalAlignment="Center"
Text="{Binding TopPlates[0][0][1].FormattedPlate}" />
<Button DataContext="{Binding TopPlates[0][0][1]}"
Grid.Column="1"
Grid.Row="2"
HorizontalAlignment="Center"
Content="-"
Margin="2"
MinWidth="25"
Click="Button_Remove_Click" />
<TextBlock Grid.Column="2"
Grid.Row="2"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Text="{Binding TopPlateInventory[0][0][1]}" />
<Button DataContext="{Binding TopPlates[0][0][1]}"
Grid.Column="3"
Grid.Row="2"
HorizontalAlignment="Center"
Content="+"
Margin="2"
MinWidth="25"
Click="Button_Add_Click" />
<!--#endregion-->
<!--#region plate2-->
<TextBlock Grid.Column="0"
Grid.Row="3"
HorizontalAlignment="Right"
VerticalAlignment="Center"
Text="{Binding TopPlates[0][0][2].FormattedPlate}" />
<Button DataContext="{Binding TopPlates[0][0][2]}"
Grid.Column="1"
Grid.Row="3"
HorizontalAlignment="Center"
Content="-"
Margin="2"
MinWidth="25"
Click="Button_Remove_Click" />
<TextBlock Grid.Column="2"
Grid.Row="3"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Text="{Binding TopPlateInventory[0][0][2]}" />
<Button DataContext="{Binding TopPlates[0][0][2]}"
Grid.Column="3"
Grid.Row="3"
HorizontalAlignment="Center"
Content="+"
Margin="2"
MinWidth="25"
Click="Button_Add_Click" />
<!--#endregion-->
</Grid>
<Grid Grid.Column="1"
Grid.Row="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<StackPanel Grid.Column="0"
Grid.Row="0"
HorizontalAlignment="Center"
VerticalAlignment="Bottom">
<TextBlock Text="ETR1"
FontSize="16" />
</StackPanel>
<StackPanel Grid.Column="0"
Grid.Row="1"
HorizontalAlignment="Center"
VerticalAlignment="Top"
Orientation="Horizontal">
<Button Content="PR3TTY"
Margin="2" />
<Button Content="B1GB0Y"
Margin="2" />
<Button Content="M0N4RCH"
Margin="2" />
</StackPanel>
</Grid>
<Grid Grid.Column="2"
Grid.Row="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<StackPanel Grid.Column="0"
Grid.Row="0"
HorizontalAlignment="Center"
VerticalAlignment="Bottom">
<TextBlock Text="811"
FontSize="16" />
</StackPanel>
<StackPanel Grid.Column="0"
Grid.Row="1"
HorizontalAlignment="Center"
VerticalAlignment="Top"
Orientation="Horizontal">
<Button Content="SL1CK"
Margin="2" />
<Button Content="M1DL1F3"
Margin="2" />
<Button Content="R3G4L"
Margin="2" />
</StackPanel>
</Grid>
<Grid Grid.Column="3"
Grid.Row="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<StackPanel Grid.Column="0"
Grid.Row="0"
HorizontalAlignment="Center"
VerticalAlignment="Bottom">
<TextBlock Text="Osiris"
FontSize="16" />
</StackPanel>
<StackPanel Grid.Column="0"
Grid.Row="1"
HorizontalAlignment="Center"
VerticalAlignment="Top"
Orientation="Horizontal">
<Button Content="SL33K"
Margin="2"
BorderBrush="#FF66CC66"
Foreground="#FF66CC66"
Controls:ControlsHelper.FocusBorderBrush="#FF66CC66" />
<Button Content="OH3LL0"
Margin="2"
BorderBrush="#FFCC6666"
Foreground="#FFCC6666"
Controls:ControlsHelper.FocusBorderBrush="#FFCC6666" />
<Button Content="PH4R40H"
Margin="2"
BorderBrush="#FFCC6666"
Foreground="#FFCC6666"
Controls:ControlsHelper.FocusBorderBrush="#FFCC6666" />
</StackPanel>
</Grid>
<Grid Grid.Column="0"
Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<StackPanel Grid.Column="0"
Grid.Row="0"
HorizontalAlignment="Center"
VerticalAlignment="Bottom">
<TextBlock Text="Reaper"
FontSize="16" />
</StackPanel>
<StackPanel Grid.Column="0"
Grid.Row="1"
HorizontalAlignment="Center"
VerticalAlignment="Top"
Orientation="Horizontal">
<Button Content="D34TH4U"
Margin="2" />
<Button Content="2FA5T4U"
Margin="2" />
<Button Content="GR1M"
Margin="2" />
</StackPanel>
</Grid>
<Grid Grid.Column="1"
Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<StackPanel Grid.Column="0"
Grid.Row="0"
HorizontalAlignment="Center"
VerticalAlignment="Bottom">
<TextBlock Text="Mamba"
FontSize="16" />
</StackPanel>
<StackPanel Grid.Column="0"
Grid.Row="1"
HorizontalAlignment="Center"
VerticalAlignment="Top"
Orientation="Horizontal">
<Button Content="BLKM4MB4"
Margin="2" />
<Button Content="0LDBLU3"
Margin="2" />
<Button Content="V1P"
Margin="2" />
</StackPanel>
</Grid>
<Grid Grid.Column="2"
Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<StackPanel Grid.Column="0"
Grid.Row="0"
HorizontalAlignment="Center"
VerticalAlignment="Bottom">
<TextBlock Text="FMJ"
FontSize="16" />
</StackPanel>
<StackPanel Grid.Column="0"
Grid.Row="1"
HorizontalAlignment="Center"
VerticalAlignment="Top"
Orientation="Horizontal">
<Button Content="C4TCHM3"
Margin="2" />
<Button Content="J0K3R"
Margin="2" />
<Button Content="H0T4U"
Margin="2" />
</StackPanel>
</Grid>
<Grid Grid.Column="3"
Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<StackPanel Grid.Column="0"
Grid.Row="0"
HorizontalAlignment="Center"
VerticalAlignment="Bottom">
<TextBlock Text="Stirling GT"
FontSize="16" />
</StackPanel>
<StackPanel Grid.Column="0"
Grid.Row="1"
HorizontalAlignment="Center"
VerticalAlignment="Top"
Orientation="Horizontal">
<Button Content="R4LLY"
Margin="2" />
<Button Content="M4J3ST1C"
Margin="2" />
<Button Content="T0UR3R"
Margin="2" />
</StackPanel>
</Grid>
<Grid Grid.Column="0"
Grid.Row="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<StackPanel Grid.Column="0"
Grid.Row="0"
HorizontalAlignment="Center"
VerticalAlignment="Bottom">
<TextBlock Text="X80 Proto"
FontSize="16" />
</StackPanel>
<StackPanel Grid.Column="0"
Grid.Row="1"
HorizontalAlignment="Center"
VerticalAlignment="Top"
Orientation="Horizontal">
<Button Content="M4K3B4NK"
Margin="2"
BorderBrush="#FF66CC66"
Foreground="#FF66CC66"
Controls:ControlsHelper.FocusBorderBrush="#FF66CC66" />
<Button Content="FUTUR3"
Margin="2"
BorderBrush="#FFCC6666"
Foreground="#FFCC6666"
Controls:ControlsHelper.FocusBorderBrush="#FFCC6666" />
<Button Content="TURB0"
Margin="2"
BorderBrush="#FFCC6666"
Foreground="#FFCC6666"
Controls:ControlsHelper.FocusBorderBrush="#FFCC6666" />
</StackPanel>
</Grid>
<Grid Grid.Column="1"
Grid.Row="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<StackPanel Grid.Column="0"
Grid.Row="0"
HorizontalAlignment="Center"
VerticalAlignment="Bottom">
<TextBlock Text="Tyrus"
FontSize="16" />
</StackPanel>
<StackPanel Grid.Column="0"
Grid.Row="1"
HorizontalAlignment="Center"
VerticalAlignment="Top"
Orientation="Horizontal">
<Button Content="C1TRUS"
Margin="2" />
<Button Content="B35TL4P"
Margin="2" />
<Button Content="TR3X"
Margin="2" />
</StackPanel>
</Grid>
<Grid Grid.Column="2"
Grid.Row="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<StackPanel Grid.Column="0"
Grid.Row="0"
HorizontalAlignment="Center"
VerticalAlignment="Bottom">
<TextBlock Text="T20"
FontSize="16" />
</StackPanel>
<StackPanel Grid.Column="0"
Grid.Row="1"
HorizontalAlignment="Center"
VerticalAlignment="Top"
Orientation="Horizontal">
<Button Content="D3V1L"
Margin="2"
BorderBrush="#FF66CC66"
Foreground="#FF66CC66"
Controls:ControlsHelper.FocusBorderBrush="#FF66CC66" />
<Button Content="CAR4M3L"
Margin="2"
BorderBrush="#FFCC6666"
Foreground="#FFCC6666"
Controls:ControlsHelper.FocusBorderBrush="#FFCC6666" />
<Button Content="T0PSP33D"
Margin="2"
BorderBrush="#FFCC6666"
Foreground="#FFCC6666"
Controls:ControlsHelper.FocusBorderBrush="#FFCC6666" />
</StackPanel>
</Grid>
<Grid Grid.Column="3"
Grid.Row="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<StackPanel Grid.Column="0"
Grid.Row="0"
HorizontalAlignment="Center"
VerticalAlignment="Bottom">
<TextBlock Text="Roosevelt Valor"
FontSize="16" />
</StackPanel>
<StackPanel Grid.Column="0"
Grid.Row="1"
HorizontalAlignment="Center"
VerticalAlignment="Top"
Orientation="Horizontal">
<Button Content="0LDT1M3R"
Margin="2"
BorderBrush="#FF66CC66"
Foreground="#FF66CC66"
Controls:ControlsHelper.FocusBorderBrush="#FF66CC66" />
<Button Content="L4WLE55"
Margin="2"
BorderBrush="#FFCC6666"
Foreground="#FFCC6666"
Controls:ControlsHelper.FocusBorderBrush="#FFCC6666" />
<Button Content="V4L0R"
Margin="2"
BorderBrush="#FFCC6666"
Foreground="#FFCC6666"
Controls:ControlsHelper.FocusBorderBrush="#FFCC6666" />
</StackPanel>
</Grid>
</Grid>
</UserControl>
<!--<ContentView xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="GTAOnlineCasinoHelper.Views.LuckyWheel">
<ContentView.Content>
<StackLayout>
<Label Text="Hello Xamarin.Forms!" />
</StackLayout>
</ContentView.Content>
</ContentView>-->
@@ -0,0 +1,327 @@
using GTAOnlineCasinoHelper.Classes;
using MahApps.Metro.Controls;
using MahApps.Metro.Controls.Dialogs;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
namespace GTAOnlineCasinoHelper.Views
{
public partial class CeoVehicleInventory : UserControl, INotifyPropertyChanged
{
private Dictionary<int, Dictionary<int, int[]>> topPlateInventory = new Dictionary<int, Dictionary<int, int[]>>()
{
[0] = new Dictionary<int, int[]>()
{
[0] = new int[] { 0, 0, 0 },
[1] = new int[] { 0, 0, 0 },
[2] = new int[] { 0, 0, 0 }
},
[1] = new Dictionary<int, int[]>()
{
[0] = new int[] { 0, 0, 0 },
[1] = new int[] { 0, 0, 0 },
[2] = new int[] { 0, 0, 0 }
},
[2] = new Dictionary<int, int[]>()
{
[0] = new int[] { 0, 0, 0 },
[1] = new int[] { 0, 0, 0 },
[2] = new int[] { 0, 0, 0 }
},
[3] = new Dictionary<int, int[]>()
{
[0] = new int[] { 0, 0, 0 },
[1] = new int[] { 0, 0, 0 },
[2] = new int[] { 0, 0, 0 }
}
};
public Dictionary<int, Dictionary<int, int[]>> TopPlateInventory
{
get
{
return topPlateInventory;
}
private set
{
topPlateInventory = value;
OnPropertyChanged("TopPlateInventory");
}
}
private Dictionary<int, Dictionary<int, CeoPlate[]>> midPlates = new Dictionary<int, Dictionary<int, CeoPlate[]>>()
{
[0] = new Dictionary<int, CeoPlate[]>()
{
[0] = new CeoPlate[]
{
CeoPlate.COQUETTE_CLASSIC_TOPLESS,
CeoPlate.COQUETTE_CLASSIC_TOFFEE,
CeoPlate.COQUETTE_CLASSIC_CLASSY
},
[1] = new CeoPlate[]
{
CeoPlate.SULTAN_RS_SNOWFLKE,
CeoPlate.SULTAN_RS_FIDELITY,
CeoPlate.SULTAN_RS_SHOWOFF
}
},
[1] = new Dictionary<int, CeoPlate[]>()
{
[0] = new CeoPlate[]
{
CeoPlate.VERLIERER_PRECIOUS,
CeoPlate.VERLIERER_OUTFRONT,
CeoPlate.VERLIERER_CURVES
},
[1] = new CeoPlate[]
{
CeoPlate.CHEETAH_BUZZED,
CeoPlate.CHEETAH_MIDNIGHT,
CeoPlate.CHEETAH_BIGCAT
},
[2] = new CeoPlate[]
{
CeoPlate.ENTITY_XF_OVERFLOD,
CeoPlate.ENTITY_XF_IMLATE,
CeoPlate.ENTITY_XF_WIDEBOY
}
},
[2] = new Dictionary<int, CeoPlate[]>()
{
[0] = new CeoPlate[]
{
CeoPlate.ZENTORNO_WINNING,
CeoPlate.ZENTORNO_OLDNEWS,
CeoPlate.ZENTORNO_HERO
},
[1] = new CeoPlate[]
{
CeoPlate.COQUETTE_BLACKFIN_VINTAGE,
CeoPlate.COQUETTE_BLACKFIN_WIPEOUT,
CeoPlate.COQUETTE_BLACKFIN_BLKFIN
},
[2] = new CeoPlate[]
{
CeoPlate.SULTAN_RS_SNOWFLKE,
CeoPlate.SULTAN_RS_FIDELITY,
CeoPlate.SULTAN_RS_SHOWOFF
}
},
[3] = new Dictionary<int, CeoPlate[]>()
{
[0] = new CeoPlate[]
{
CeoPlate.TROPOS_RALLYE_1985,
CeoPlate.TROPOS_RALLYE_IMSORAD,
CeoPlate.TROPOS_RALLYE_EIGHTIES
},
[1] = new CeoPlate[]
{
CeoPlate.OMNIS_WIDEBOD,
CeoPlate.OMNIS_OBEYME,
CeoPlate.OMNIS_DIRTY
}
}
};
public Dictionary<int, Dictionary<int, CeoPlate[]>> MidPlates
{
get
{
return midPlates;
}
set
{
midPlates = value;
OnPropertyChanged("MidPlates");
}
}
private Dictionary<int, Dictionary<int, CeoPlate[]>> topPlates = new Dictionary<int, Dictionary<int, CeoPlate[]>>()
{
[0] = new Dictionary<int, CeoPlate[]>()
{
[0] = new CeoPlate[]
{
CeoPlate.Z_TYPE_BIGMONEY,
CeoPlate.Z_TYPE_KINGPIN,
CeoPlate.Z_TYPE_CEO
},
[1] = new CeoPlate[]
{
CeoPlate.REAPER_DEATH4U,
CeoPlate.REAPER_2FAST4U,
CeoPlate.REAPER_GRIM
},
[2] = new CeoPlate[]
{
CeoPlate.X_EIGHTY_PROTO_MAKEBANK,
CeoPlate.X_EIGHTY_PROTO_FUTURE,
CeoPlate.X_EIGHTY_PROTO_TURBO
}
},
[1] = new Dictionary<int, CeoPlate[]>()
{
[0] = new CeoPlate[]
{
CeoPlate.ETR_ONE_PRETTY,
CeoPlate.ETR_ONE_BIGBOY,
CeoPlate.ETR_ONE_MONARCH
},
[1] = new CeoPlate[]
{
CeoPlate.MAMBA_BLKMAMBA,
CeoPlate.MAMBA_OLDBLUE,
CeoPlate.MAMBA_VIP
},
[2] = new CeoPlate[]
{
CeoPlate.TYRUS_CITRUS,
CeoPlate.TYRUS_BESTLAP,
CeoPlate.TYRUS_TREX
}
},
[2] = new Dictionary<int, CeoPlate[]>()
{
[0] = new CeoPlate[]
{
CeoPlate.EIGHT_ELEVEN_SLICK,
CeoPlate.EIGHT_ELEVEN_MIDLIFE,
CeoPlate.EIGHT_ELEVEN_REGAL
},
[1] = new CeoPlate[]
{
CeoPlate.FMJ_CATCHME,
CeoPlate.FMJ_JOKER,
CeoPlate.FMJ_HOT4U
},
[2] = new CeoPlate[]
{
CeoPlate.T_TWENTY_DEVIL,
CeoPlate.T_TWENTY_CARAMEL,
CeoPlate.T_TWENTY_TOPSPEED
}
},
[3] = new Dictionary<int, CeoPlate[]>()
{
[0] = new CeoPlate[]
{
CeoPlate.OSIRIS_SLEEK,
CeoPlate.OSIRIS_OHELLO,
CeoPlate.OSIRIS_PHARAOH
},
[1] = new CeoPlate[]
{
CeoPlate.STIRLING_GT_RALLY,
CeoPlate.STIRLING_GT_MAJESTIC,
CeoPlate.STIRLING_GT_TOURER
},
[2] = new CeoPlate[]
{
CeoPlate.ROOSEVELT_VALOR_OLDTIMER,
CeoPlate.ROOSEVELT_VALOR_LAWLESS,
CeoPlate.ROOSEVELT_VALOR_VALOR
}
}
};
public Dictionary<int, Dictionary<int, CeoPlate[]>> TopPlates
{
get
{
return topPlates;
}
set
{
topPlates = value;
OnPropertyChanged("TopPlates");
}
}
public CeoVehicleInventory()
{
this.InitializeComponent();
this.DataContext = this;
MainWindow.CeoVehicleInventory = this;
}
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
private bool GetColRowIndex(object sender, out int col, out int row, out int index)
{
Button button = sender as Button;
if (!(button?.DataContext is CeoPlate plate) || !(button?.Parent is Grid grid))
{
col = 0;
row = 0;
index = 0;
return false;
}
col = Grid.GetColumn(grid);
row = Grid.GetRow(grid);
int tries = 3;
index = 0;
Dictionary<int, Dictionary<int, CeoPlate[]>> dictionary;
if (plate.Model.Range == CeoRange.STANDARD)
{
// TODO add standard range
dictionary = new Dictionary<int, Dictionary<int, CeoPlate[]>>();
}
else if (plate.Model.Range == CeoRange.MID)
{
dictionary = MidPlates;
}
else
{
dictionary = TopPlates;
}
while (tries > 0 && !dictionary[col][row][index].Equals(plate))
{
index++;
tries--;
}
return true;
}
private async void Button_Add_Click(object sender, RoutedEventArgs e)
{
if (!GetColRowIndex(sender, out int col, out int row, out int index))
{
await MainWindow.Instance.ShowMessageAsync("Failed to get plate or grid", "Failed to get plate or grid from button", MessageDialogStyle.Affirmative);
return;
}
TopPlateInventory[col][row][index]++;
OnPropertyChanged("TopPlateInventory");
}
private async void Button_Remove_Click(object sender, RoutedEventArgs e)
{
if (!GetColRowIndex(sender, out int col, out int row, out int index))
{
await MainWindow.Instance.ShowMessageAsync("Failed to get plate or grid", "Failed to get plate or grid from button", MessageDialogStyle.Affirmative);
return;
}
TopPlateInventory[col][row][index]--;
OnPropertyChanged("TopPlateInventory");
}
}
}
@@ -0,0 +1,831 @@
<?xml version="1.0" encoding="UTF-8"?>
<UserControl x:Class="GTAOnlineCasinoHelper.Views.CeoVehicleSource"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:iconPacks="http://metro.mahapps.com/winfx/xaml/iconpacks"
xmlns:Controls="http://metro.mahapps.com/winfx/xaml/controls"
xmlns:GTAOnlineCasinoHelper="clr-namespace:GTAOnlineCasinoHelper">
<UserControl.Resources>
<Thickness x:Key="ControlMargin">5</Thickness>
</UserControl.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Controls:MetroAnimatedSingleRowTabControl Grid.Row="0"
SelectedIndex="1">
<TabItem Header="Mid">
<ScrollViewer HorizontalScrollBarVisibility="Auto"
VerticalScrollBarVisibility="Auto">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid Grid.Column="0"
Grid.Row="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<StackPanel Grid.Column="0"
Grid.Row="0"
HorizontalAlignment="Center"
VerticalAlignment="Bottom">
<TextBlock Text="{Binding MidPlates[0][0][0].Model}"
FontSize="16" />
</StackPanel>
<StackPanel Grid.Column="0"
Grid.Row="1"
HorizontalAlignment="Center"
VerticalAlignment="Top"
Orientation="Horizontal">
<Button Content="{Binding MidPlates[0][0][0].FormattedPlate}"
Margin="2"
Click="Button_Source_Click" />
<Button Content="{Binding MidPlates[0][0][1].FormattedPlate}"
Margin="2"
Click="Button_Source_Click" />
<Button Content="{Binding MidPlates[0][0][2].FormattedPlate}"
Margin="2"
Click="Button_Source_Click" />
</StackPanel>
</Grid>
<Grid Grid.Column="1"
Grid.Row="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<StackPanel Grid.Column="0"
Grid.Row="0"
HorizontalAlignment="Center"
VerticalAlignment="Bottom">
<TextBlock Text="{Binding MidPlates[1][0][0].Model}"
FontSize="16" />
</StackPanel>
<StackPanel Grid.Column="0"
Grid.Row="1"
HorizontalAlignment="Center"
VerticalAlignment="Top"
Orientation="Horizontal">
<Button Content="{Binding MidPlates[1][0][0].FormattedPlate}"
Margin="2"
Click="Button_Source_Click" />
<Button Content="{Binding MidPlates[1][0][1].FormattedPlate}"
Margin="2"
Click="Button_Source_Click" />
<Button Content="{Binding MidPlates[1][0][2].FormattedPlate}"
Margin="2"
Click="Button_Source_Click" />
</StackPanel>
</Grid>
<Grid Grid.Column="2"
Grid.Row="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<StackPanel Grid.Column="0"
Grid.Row="0"
HorizontalAlignment="Center"
VerticalAlignment="Bottom">
<TextBlock Text="{Binding MidPlates[2][0][0].Model}"
FontSize="16" />
</StackPanel>
<StackPanel Grid.Column="0"
Grid.Row="1"
HorizontalAlignment="Center"
VerticalAlignment="Top"
Orientation="Horizontal">
<Button Content="{Binding MidPlates[2][0][0].FormattedPlate}"
Margin="2"
Click="Button_Source_Click" />
<Button Content="{Binding MidPlates[2][0][1].FormattedPlate}"
Margin="2"
Click="Button_Source_Click" />
<Button Content="{Binding MidPlates[2][0][2].FormattedPlate}"
Margin="2"
Click="Button_Source_Click" />
</StackPanel>
</Grid>
<Grid Grid.Column="3"
Grid.Row="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<StackPanel Grid.Column="0"
Grid.Row="0"
HorizontalAlignment="Center"
VerticalAlignment="Bottom">
<TextBlock Text="{Binding MidPlates[3][0][0].Model}"
FontSize="16" />
</StackPanel>
<StackPanel Grid.Column="0"
Grid.Row="1"
HorizontalAlignment="Center"
VerticalAlignment="Top"
Orientation="Horizontal">
<Button Content="{Binding MidPlates[3][0][0].FormattedPlate}"
Margin="2"
Click="Button_Source_Click" />
<Button Content="{Binding MidPlates[3][0][1].FormattedPlate}"
Margin="2"
Click="Button_Source_Click" />
<Button Content="{Binding MidPlates[3][0][2].FormattedPlate}"
Margin="2"
Click="Button_Source_Click" />
</StackPanel>
</Grid>
<Grid Grid.Column="0"
Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<StackPanel Grid.Column="0"
Grid.Row="0"
HorizontalAlignment="Center"
VerticalAlignment="Bottom">
<TextBlock Text="{Binding MidPlates[0][1][0].Model}"
FontSize="16" />
</StackPanel>
<StackPanel Grid.Column="0"
Grid.Row="1"
HorizontalAlignment="Center"
VerticalAlignment="Top"
Orientation="Horizontal">
<Button Content="{Binding MidPlates[0][1][0].FormattedPlate}"
Margin="2"
Click="Button_Source_Click" />
<Button Content="{Binding MidPlates[0][1][1].FormattedPlate}"
Margin="2"
Click="Button_Source_Click" />
<Button Content="{Binding MidPlates[0][1][2].FormattedPlate}"
Margin="2"
Click="Button_Source_Click" />
</StackPanel>
</Grid>
<Grid Grid.Column="1"
Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<StackPanel Grid.Column="0"
Grid.Row="0"
HorizontalAlignment="Center"
VerticalAlignment="Bottom">
<TextBlock Text="{Binding MidPlates[1][1][0].Model}"
FontSize="16" />
</StackPanel>
<StackPanel Grid.Column="0"
Grid.Row="1"
HorizontalAlignment="Center"
VerticalAlignment="Top"
Orientation="Horizontal">
<Button Content="{Binding MidPlates[1][1][0].FormattedPlate}"
Margin="2"
Click="Button_Source_Click" />
<Button Content="{Binding MidPlates[1][1][1].FormattedPlate}"
Margin="2"
Click="Button_Source_Click" />
<Button Content="{Binding MidPlates[1][1][2].FormattedPlate}"
Margin="2"
Click="Button_Source_Click" />
</StackPanel>
</Grid>
<Grid Grid.Column="2"
Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<StackPanel Grid.Column="0"
Grid.Row="0"
HorizontalAlignment="Center"
VerticalAlignment="Bottom">
<TextBlock Text="{Binding MidPlates[2][1][0].Model}"
FontSize="16" />
</StackPanel>
<StackPanel Grid.Column="0"
Grid.Row="1"
HorizontalAlignment="Center"
VerticalAlignment="Top"
Orientation="Horizontal">
<Button Content="{Binding MidPlates[2][1][0].FormattedPlate}"
Margin="2"
Click="Button_Source_Click" />
<Button Content="{Binding MidPlates[2][1][1].FormattedPlate}"
Margin="2"
Click="Button_Source_Click" />
<Button Content="{Binding MidPlates[2][1][2].FormattedPlate}"
Margin="2"
Click="Button_Source_Click" />
</StackPanel>
</Grid>
<Grid Grid.Column="3"
Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<StackPanel Grid.Column="0"
Grid.Row="0"
HorizontalAlignment="Center"
VerticalAlignment="Bottom">
<TextBlock Text="{Binding MidPlates[3][1][0].Model}"
FontSize="16" />
</StackPanel>
<StackPanel Grid.Column="0"
Grid.Row="1"
HorizontalAlignment="Center"
VerticalAlignment="Top"
Orientation="Horizontal">
<Button Content="{Binding MidPlates[3][1][0].FormattedPlate}"
Margin="2"
Click="Button_Source_Click" />
<Button Content="{Binding MidPlates[3][1][1].FormattedPlate}"
Margin="2"
Click="Button_Source_Click" />
<Button Content="{Binding MidPlates[3][1][2].FormattedPlate}"
Margin="2"
Click="Button_Source_Click" />
</StackPanel>
</Grid>
<Grid Grid.Column="1"
Grid.Row="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<StackPanel Grid.Column="0"
Grid.Row="0"
HorizontalAlignment="Center"
VerticalAlignment="Bottom">
<TextBlock Text="{Binding MidPlates[1][2][0].Model}"
FontSize="16" />
</StackPanel>
<StackPanel Grid.Column="0"
Grid.Row="1"
HorizontalAlignment="Center"
VerticalAlignment="Top"
Orientation="Horizontal">
<Button Content="{Binding MidPlates[1][2][0].FormattedPlate}"
Margin="2"
Click="Button_Source_Click" />
<Button Content="{Binding MidPlates[1][2][1].FormattedPlate}"
Margin="2"
Click="Button_Source_Click" />
<Button Content="{Binding MidPlates[1][2][2].FormattedPlate}"
Margin="2"
Click="Button_Source_Click" />
</StackPanel>
</Grid>
<Grid Grid.Column="2"
Grid.Row="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<StackPanel Grid.Column="0"
Grid.Row="0"
HorizontalAlignment="Center"
VerticalAlignment="Bottom">
<TextBlock Text="{Binding MidPlates[2][2][0].Model}"
FontSize="16" />
</StackPanel>
<StackPanel Grid.Column="0"
Grid.Row="1"
HorizontalAlignment="Center"
VerticalAlignment="Top"
Orientation="Horizontal">
<Button Content="{Binding MidPlates[2][2][0].FormattedPlate}"
Margin="2"
Click="Button_Source_Click" />
<Button Content="{Binding MidPlates[2][2][1].FormattedPlate}"
Margin="2"
Click="Button_Source_Click" />
<Button Content="{Binding MidPlates[2][2][2].FormattedPlate}"
Margin="2"
Click="Button_Source_Click" />
</StackPanel>
</Grid>
</Grid>
</ScrollViewer>
</TabItem>
<TabItem Header="Top">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid Grid.Column="0"
Grid.Row="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<StackPanel Grid.Column="0"
Grid.Row="0"
HorizontalAlignment="Center"
VerticalAlignment="Bottom">
<TextBlock Text="{Binding TopPlates[0][0][0].Model}"
FontSize="16" />
</StackPanel>
<StackPanel Grid.Column="0"
Grid.Row="1"
HorizontalAlignment="Center"
VerticalAlignment="Top"
Orientation="Horizontal">
<Button Content="{Binding TopPlates[0][0][0].FormattedPlate}"
Margin="2"
BorderBrush="#FF66CC66"
Foreground="#FF66CC66"
Controls:ControlsHelper.FocusBorderBrush="#FF66CC66"
Click="Button_Source_Click" />
<Button Content="{Binding TopPlates[0][0][1].FormattedPlate}"
Margin="2"
BorderBrush="#FFCC6666"
Foreground="#FFCC6666"
Controls:ControlsHelper.FocusBorderBrush="#FFCC6666"
Click="Button_Source_Click" />
<Button Content="{Binding TopPlates[0][0][2].FormattedPlate}"
Margin="2"
BorderBrush="#FFCC6666"
Foreground="#FFCC6666"
Controls:ControlsHelper.FocusBorderBrush="#FFCC6666"
Click="Button_Source_Click" />
</StackPanel>
</Grid>
<Grid Grid.Column="1"
Grid.Row="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<StackPanel Grid.Column="0"
Grid.Row="0"
HorizontalAlignment="Center"
VerticalAlignment="Bottom">
<TextBlock Text="{Binding TopPlates[1][0][0].Model}"
FontSize="16" />
</StackPanel>
<StackPanel Grid.Column="0"
Grid.Row="1"
HorizontalAlignment="Center"
VerticalAlignment="Top"
Orientation="Horizontal">
<Button Content="{Binding TopPlates[1][0][0].FormattedPlate}"
Margin="2"
Click="Button_Source_Click" />
<Button Content="{Binding TopPlates[1][0][1].FormattedPlate}"
Margin="2"
Click="Button_Source_Click" />
<Button Content="{Binding TopPlates[1][0][2].FormattedPlate}"
Margin="2"
Click="Button_Source_Click" />
</StackPanel>
</Grid>
<Grid Grid.Column="2"
Grid.Row="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<StackPanel Grid.Column="0"
Grid.Row="0"
HorizontalAlignment="Center"
VerticalAlignment="Bottom">
<TextBlock Text="{Binding TopPlates[2][0][0].Model}"
FontSize="16" />
</StackPanel>
<StackPanel Grid.Column="0"
Grid.Row="1"
HorizontalAlignment="Center"
VerticalAlignment="Top"
Orientation="Horizontal">
<Button Content="{Binding TopPlates[2][0][0].FormattedPlate}"
Margin="2"
Click="Button_Source_Click" />
<Button Content="{Binding TopPlates[2][0][1].FormattedPlate}"
Margin="2"
Click="Button_Source_Click" />
<Button Content="{Binding TopPlates[2][0][2].FormattedPlate}"
Margin="2"
Click="Button_Source_Click" />
</StackPanel>
</Grid>
<Grid Grid.Column="3"
Grid.Row="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<StackPanel Grid.Column="0"
Grid.Row="0"
HorizontalAlignment="Center"
VerticalAlignment="Bottom">
<TextBlock Text="{Binding TopPlates[3][0][0].Model}"
FontSize="16" />
</StackPanel>
<StackPanel Grid.Column="0"
Grid.Row="1"
HorizontalAlignment="Center"
VerticalAlignment="Top"
Orientation="Horizontal">
<Button Content="{Binding TopPlates[3][0][0].FormattedPlate}"
Margin="2"
BorderBrush="#FF66CC66"
Foreground="#FF66CC66"
Controls:ControlsHelper.FocusBorderBrush="#FF66CC66"
Click="Button_Source_Click" />
<Button Content="{Binding TopPlates[3][0][1].FormattedPlate}"
Margin="2"
BorderBrush="#FFCC6666"
Foreground="#FFCC6666"
Controls:ControlsHelper.FocusBorderBrush="#FFCC6666"
Click="Button_Source_Click" />
<Button Content="{Binding TopPlates[3][0][2].FormattedPlate}"
Margin="2"
BorderBrush="#FFCC6666"
Foreground="#FFCC6666"
Controls:ControlsHelper.FocusBorderBrush="#FFCC6666"
Click="Button_Source_Click" />
</StackPanel>
</Grid>
<Grid Grid.Column="0"
Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<StackPanel Grid.Column="0"
Grid.Row="0"
HorizontalAlignment="Center"
VerticalAlignment="Bottom">
<TextBlock Text="{Binding TopPlates[0][1][0].Model}"
FontSize="16" />
</StackPanel>
<StackPanel Grid.Column="0"
Grid.Row="1"
HorizontalAlignment="Center"
VerticalAlignment="Top"
Orientation="Horizontal">
<Button Content="{Binding TopPlates[0][1][0].FormattedPlate}"
Margin="2"
Click="Button_Source_Click" />
<Button Content="{Binding TopPlates[0][1][1].FormattedPlate}"
Margin="2"
Click="Button_Source_Click" />
<Button Content="{Binding TopPlates[0][1][2].FormattedPlate}"
Margin="2"
Click="Button_Source_Click" />
</StackPanel>
</Grid>
<Grid Grid.Column="1"
Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<StackPanel Grid.Column="0"
Grid.Row="0"
HorizontalAlignment="Center"
VerticalAlignment="Bottom">
<TextBlock Text="{Binding TopPlates[1][1][0].Model}"
FontSize="16" />
</StackPanel>
<StackPanel Grid.Column="0"
Grid.Row="1"
HorizontalAlignment="Center"
VerticalAlignment="Top"
Orientation="Horizontal">
<Button Content="{Binding TopPlates[1][1][0].FormattedPlate}"
Margin="2"
Click="Button_Source_Click" />
<Button Content="{Binding TopPlates[1][1][1].FormattedPlate}"
Margin="2"
Click="Button_Source_Click" />
<Button Content="{Binding TopPlates[1][1][2].FormattedPlate}"
Margin="2"
Click="Button_Source_Click" />
</StackPanel>
</Grid>
<Grid Grid.Column="2"
Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<StackPanel Grid.Column="0"
Grid.Row="0"
HorizontalAlignment="Center"
VerticalAlignment="Bottom">
<TextBlock Text="{Binding TopPlates[2][1][0].Model}"
FontSize="16" />
</StackPanel>
<StackPanel Grid.Column="0"
Grid.Row="1"
HorizontalAlignment="Center"
VerticalAlignment="Top"
Orientation="Horizontal">
<Button Content="{Binding TopPlates[2][1][0].FormattedPlate}"
Margin="2"
Click="Button_Source_Click" />
<Button Content="{Binding TopPlates[2][1][1].FormattedPlate}"
Margin="2"
Click="Button_Source_Click" />
<Button Content="{Binding TopPlates[2][1][2].FormattedPlate}"
Margin="2"
Click="Button_Source_Click" />
</StackPanel>
</Grid>
<Grid Grid.Column="3"
Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<StackPanel Grid.Column="0"
Grid.Row="0"
HorizontalAlignment="Center"
VerticalAlignment="Bottom">
<TextBlock Text="{Binding TopPlates[3][1][0].Model}"
FontSize="16" />
</StackPanel>
<StackPanel Grid.Column="0"
Grid.Row="1"
HorizontalAlignment="Center"
VerticalAlignment="Top"
Orientation="Horizontal">
<Button Content="{Binding TopPlates[3][1][0].FormattedPlate}"
Margin="2"
Click="Button_Source_Click" />
<Button Content="{Binding TopPlates[3][1][1].FormattedPlate}"
Margin="2"
Click="Button_Source_Click" />
<Button Content="{Binding TopPlates[3][1][2].FormattedPlate}"
Margin="2"
Click="Button_Source_Click" />
</StackPanel>
</Grid>
<Grid Grid.Column="0"
Grid.Row="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<StackPanel Grid.Column="0"
Grid.Row="0"
HorizontalAlignment="Center"
VerticalAlignment="Bottom">
<TextBlock Text="{Binding TopPlates[0][2][0].Model}"
FontSize="16" />
</StackPanel>
<StackPanel Grid.Column="0"
Grid.Row="1"
HorizontalAlignment="Center"
VerticalAlignment="Top"
Orientation="Horizontal">
<Button Content="{Binding TopPlates[0][2][0].FormattedPlate}"
Margin="2"
BorderBrush="#FF66CC66"
Foreground="#FF66CC66"
Controls:ControlsHelper.FocusBorderBrush="#FF66CC66"
Click="Button_Source_Click" />
<Button Content="{Binding TopPlates[0][2][1].FormattedPlate}"
Margin="2"
BorderBrush="#FFCC6666"
Foreground="#FFCC6666"
Controls:ControlsHelper.FocusBorderBrush="#FFCC6666"
Click="Button_Source_Click" />
<Button Content="{Binding TopPlates[0][2][2].FormattedPlate}"
Margin="2"
BorderBrush="#FFCC6666"
Foreground="#FFCC6666"
Controls:ControlsHelper.FocusBorderBrush="#FFCC6666"
Click="Button_Source_Click" />
</StackPanel>
</Grid>
<Grid Grid.Column="1"
Grid.Row="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<StackPanel Grid.Column="0"
Grid.Row="0"
HorizontalAlignment="Center"
VerticalAlignment="Bottom">
<TextBlock Text="{Binding TopPlates[1][2][0].Model}"
FontSize="16" />
</StackPanel>
<StackPanel Grid.Column="0"
Grid.Row="1"
HorizontalAlignment="Center"
VerticalAlignment="Top"
Orientation="Horizontal">
<Button Content="{Binding TopPlates[1][2][0].FormattedPlate}"
Margin="2"
Click="Button_Source_Click" />
<Button Content="{Binding TopPlates[1][2][1].FormattedPlate}"
Margin="2"
Click="Button_Source_Click" />
<Button Content="{Binding TopPlates[1][2][2].FormattedPlate}"
Margin="2"
Click="Button_Source_Click" />
</StackPanel>
</Grid>
<Grid Grid.Column="2"
Grid.Row="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<StackPanel Grid.Column="0"
Grid.Row="0"
HorizontalAlignment="Center"
VerticalAlignment="Bottom">
<TextBlock Text="{Binding TopPlates[2][2][0].Model}"
FontSize="16" />
</StackPanel>
<StackPanel Grid.Column="0"
Grid.Row="1"
HorizontalAlignment="Center"
VerticalAlignment="Top"
Orientation="Horizontal">
<Button Content="{Binding TopPlates[2][2][0].FormattedPlate}"
Margin="2"
BorderBrush="#FF66CC66"
Foreground="#FF66CC66"
Controls:ControlsHelper.FocusBorderBrush="#FF66CC66"
Click="Button_Source_Click" />
<Button Content="{Binding TopPlates[2][2][1].FormattedPlate}"
Margin="2"
BorderBrush="#FFCC6666"
Foreground="#FFCC6666"
Controls:ControlsHelper.FocusBorderBrush="#FFCC6666"
Click="Button_Source_Click" />
<Button Content="{Binding TopPlates[2][2][2].FormattedPlate}"
Margin="2"
BorderBrush="#FFCC6666"
Foreground="#FFCC6666"
Controls:ControlsHelper.FocusBorderBrush="#FFCC6666"
Click="Button_Source_Click" />
</StackPanel>
</Grid>
<Grid Grid.Column="3"
Grid.Row="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<StackPanel Grid.Column="0"
Grid.Row="0"
HorizontalAlignment="Center"
VerticalAlignment="Bottom">
<TextBlock Text="{Binding TopPlates[3][2][0].Model}"
FontSize="16" />
</StackPanel>
<StackPanel Grid.Column="0"
Grid.Row="1"
HorizontalAlignment="Center"
VerticalAlignment="Top"
Orientation="Horizontal">
<Button Content="{Binding TopPlates[3][2][0].FormattedPlate}"
Margin="2"
BorderBrush="#FF66CC66"
Foreground="#FF66CC66"
Controls:ControlsHelper.FocusBorderBrush="#FF66CC66"
Click="Button_Source_Click" />
<Button Content="{Binding TopPlates[3][2][1].FormattedPlate}"
Margin="2"
BorderBrush="#FFCC6666"
Foreground="#FFCC6666"
Controls:ControlsHelper.FocusBorderBrush="#FFCC6666"
Click="Button_Source_Click" />
<Button Content="{Binding TopPlates[3][2][2].FormattedPlate}"
Margin="2"
BorderBrush="#FFCC6666"
Foreground="#FFCC6666"
Controls:ControlsHelper.FocusBorderBrush="#FFCC6666"
Click="Button_Source_Click" />
</StackPanel>
</Grid>
</Grid>
</TabItem>
</Controls:MetroAnimatedSingleRowTabControl>
</Grid>
</UserControl>
<!--<ContentView xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="GTAOnlineCasinoHelper.Views.LuckyWheel">
<ContentView.Content>
<StackLayout>
<Label Text="Hello Xamarin.Forms!" />
</StackLayout>
</ContentView.Content>
</ContentView>-->
@@ -0,0 +1,84 @@
using GTAOnlineCasinoHelper.Classes;
using MahApps.Metro.Controls;
using MahApps.Metro.Controls.Dialogs;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
namespace GTAOnlineCasinoHelper.Views
{
public partial class CeoVehicleSource : UserControl, INotifyPropertyChanged
{
public Dictionary<int, Dictionary<int, CeoPlate[]>> MidPlates
{
get
{
return MainWindow.CeoVehicleInventory.MidPlates;
}
}
public Dictionary<int, Dictionary<int, CeoPlate[]>> TopPlates
{
get
{
return MainWindow.CeoVehicleInventory.TopPlates;
}
}
public CeoVehicleSource()
{
this.InitializeComponent();
this.DataContext = this;
}
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
private async void DoClick(CeoPlate plate)
{
MessageDialogResult result = await MainWindow.Instance.ShowMessageAsync(plate.ToString(), "Did you successfully source the vehicle?", MessageDialogStyle.AffirmativeAndNegativeAndSingleAuxiliary, new MetroDialogSettings()
{
AffirmativeButtonText = "Yes",
NegativeButtonText = "No",
FirstAuxiliaryButtonText = "Cancel",
DefaultButtonFocus = MessageDialogResult.Affirmative
});
if (result != MessageDialogResult.Affirmative && result != MessageDialogResult.Negative)
{
return;
}
}
private async void Button_Source_Click(object sender, RoutedEventArgs e)
{
string content = (sender as Button)?.Content as string;
if (content == null)
{
await MainWindow.Instance.ShowMessageAsync("Failed to get plate", "Failed to parse plate from the button text", MessageDialogStyle.Affirmative);
return;
}
CeoPlate ceoPlate;
if (!CeoPlate.TryFind(content, out ceoPlate))
{
await MainWindow.Instance.ShowMessageAsync("Failed to get plate", "Failed to parse plate from the button text", MessageDialogStyle.Affirmative);
return;
}
DoClick(ceoPlate);
}
}
}
+10 -16
View File
@@ -9,7 +9,7 @@
xmlns:GTAOnlineCasinoHelper="clr-namespace:GTAOnlineCasinoHelper">
<UserControl.Resources>
<Thickness x:Key="ControlMargin">0 5 0 0</Thickness>
<Thickness x:Key="ControlMargin">5</Thickness>
</UserControl.Resources>
<Grid>
@@ -20,41 +20,35 @@
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition />
</Grid.RowDefinitions>
<StackPanel Grid.Column="0"
Grid.Row="0"
HorizontalAlignment="Center">
<CheckBox x:Name="CheckBox_UseTextBoxTimeStamp"
Content="Use Custom TimeStamp"
Margin="5"
Content="Use Custom Timestamp"
IsChecked="False"
Checked="CheckBox_UseTextBoxTimeStamp_Checked"
Unchecked="CheckBox_UseTextBoxTimeStamp_Unchecked" />
<TextBox x:Name="TextBox_TimeStamp"
Margin="5"
Visibility="Collapsed"/>
<Button Content="Add TimeStamp"
<Button Margin="5"
Content="Add Timestamp"
Click="Button_AddTimeStamp"/>
</StackPanel>
<StackPanel Grid.Column="0"
Grid.Row="1"
HorizontalAlignment="Center">
<TextBlock x:Name="TextBlock_TimeStampTextBlock"
Margin="5"
TextAlignment="Center" />
</StackPanel>
<StackPanel Grid.Column="1"
Grid.Row="0"
HorizontalAlignment="Center">
<TextBlock Text="Lucky Wheel Countdown" />
</StackPanel>
<StackPanel Grid.Column="1"
Grid.Row="1"
HorizontalAlignment="Center"
VerticalAlignment="Center">
<TextBlock Text="Lucky Wheel Countdown"
Margin="5" />
<TextBlock x:Name="TextBlock_TimerTextBlock"
Margin="5"
TextAlignment="Center"
Text="Text"
FontSize="32"/>
@@ -78,7 +78,7 @@ namespace GTAOnlineCasinoHelper.Views
else
{
now = DateTimeOffset.Now;
DateTimeOffset then = AddHours(now, 24);
DateTimeOffset then = AddHours(TimeStamp, 24);
if (then > now)
{
await MainWindow.Instance.ShowMessageAsync("Lucky Wheel not ready yet", "You can't spin the wheel yet, to override this add a custom timestamp");
@@ -10,7 +10,7 @@
xmlns:system="clr-namespace:System;assembly=mscorlib">
<UserControl.Resources>
<Thickness x:Key="ControlMargin">0 5 0 0</Thickness>
<Thickness x:Key="ControlMargin">5</Thickness>
</UserControl.Resources>
<Grid>
-40
View File
@@ -1,40 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<UserControl x:Class="GTAOnlineCasinoHelper.Views.TestTwo"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:iconPacks="http://metro.mahapps.com/winfx/xaml/iconpacks"
xmlns:Controls="http://metro.mahapps.com/winfx/xaml/controls"
xmlns:GTAOnlineCasinoHelper="clr-namespace:GTAOnlineCasinoHelper">
<UserControl.Resources>
<Thickness x:Key="ControlMargin">0 5 0 0</Thickness>
</UserControl.Resources>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<StackPanel Grid.Column="0"
Grid.Row="0"
HorizontalAlignment="Center">
<Button Content="Test button"
Click="Button_Click"/>
</StackPanel>
</Grid>
</UserControl>
<!--<ContentView xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="GTAOnlineCasinoHelper.Views.LuckyWheel">
<ContentView.Content>
<StackLayout>
<Label Text="Hello Xamarin.Forms!" />
</StackLayout>
</ContentView.Content>
</ContentView>-->
@@ -1,28 +0,0 @@
using MahApps.Metro.Controls;
using MahApps.Metro.Controls.Dialogs;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
namespace GTAOnlineCasinoHelper.Views
{
public partial class TestTwo : UserControl
{
public TestTwo()
{
this.InitializeComponent();
}
private async void Button_Click(object sender, RoutedEventArgs e)
{
await MainWindow.Instance.ShowMessageAsync("Test", "This is a test");
}
}
}
+12
View File
@@ -1 +1,13 @@
# GTAOnlineCasinoHelper
## Download
[Download from Releases](https://oskar3123.eu/oskar3123/GTAOnlineCasinoHelper/releases)
## Screenshots
![Main Window - LuckyWheel](http://git.oskar3123.eu:8880/screens/1a369870-7296-444d-8bd2-6228cf7bd1ec.png)
![Main Window - AutoLobby](http://git.oskar3123.eu:8880/screens/28009fbd-143d-4cd3-94bf-168e9f38e72c.png)
![Settings Window](http://git.oskar3123.eu:8880/screens/a2bec92b-666f-486d-9b74-77a463860858.png)