Archived
Private
Public Access
1
0
This repository has been archived on 2026-02-04. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
ProjectBackup/C#/FiveM/CardealerClient/Objects.cs
2022-09-04 12:45:01 +02:00

164 lines
4.8 KiB
C#

using System;
using System.Dynamic;
using System.Threading.Tasks;
using CitizenFX.Core;
using Nexd.ESX.Client;
namespace CardealerClient {
public class Exhibit {
public int Slot { get; set; }
public Vector4 Location { get; set; }
}
public class VehicleData {
public VehicleProperties Properties { get; }
public string Owner { get; }
public string Description { get; set; }
public int Price { get; set; }
public int Slot { get; }
public int Id { get; }
public int ParkingSpace { get; }
public bool AutoShuffle { get; }
public VehicleData(dynamic data) {
Properties = new VehicleProperties(data.vehicle);
Owner = data.owner;
Price = Convert.ToInt32(data.price);
Slot = Convert.ToInt32(data.slot);
ParkingSpace = Convert.ToInt32(data.parkingspace);
Id = Convert.ToInt32(data.id);
AutoShuffle = Convert.ToInt32(data.shuffle) == 1;
try {
Description = data.description;
}
catch (Exception) {
Description = "Nicht angegeben";
}
}
public void UpdateSlot() {
dynamic data = new ExpandoObject();
data.slot = Slot;
data.parkingspace = ParkingSpace;
data.description = Description;
data.price = Price;
data.owner = Owner;
data.vehicle = Properties.Raw;
data.shuffle = AutoShuffle ? 1 : 0;
BaseScript.TriggerServerEvent("cardealer:updateSlot", data);
}
public void Delete() {
BaseScript.TriggerServerEvent("cardealer:deleteVehicle", Slot);
}
public async Task<bool> PushToExhibit() {
return await CarDealer.ServerCallback("cardealer:pushToExhibit", Id) as bool? ?? false;
}
}
public class SellData {
public int ParkingSpace { get; set; }
public string Description { get; set; }
public int Price { get; set; }
public int Slot { get; set; }
public dynamic CreateDynamic(dynamic vehicle) {
dynamic raw = new ExpandoObject();
raw.parkingspace = ParkingSpace;
raw.description = Description;
raw.price = Price;
raw.slot = Slot;
raw.vehicle = vehicle;
return raw;
}
}
public static class MenuElements {
public static dynamic GetElement_Parkingspace() {
dynamic data = new ExpandoObject();
data.label = "Stellplatztyp wählen";
data.name = "choose_parkingSpace";
data.value = 0;
data.options = new[] { "Ausgestellt", "Katalog" };
data.type = "slider";
return data;
}
public static dynamic GetElement_Description() {
dynamic data = new ExpandoObject();
data.label = "Beschreibung hinzufügen";
data.name = "choose_description";
return data;
}
public static dynamic GetElement_Price() {
dynamic data = new ExpandoObject();
data.label = "Preis wählen";
data.name = "choose_price";
return data;
}
public static dynamic GetElement_Finish() {
dynamic data = new ExpandoObject();
data.label = "Fertig";
data.name = "finish";
return data;
}
public static dynamic GetMenu_DigitalExhibit(string[] cars) {
dynamic menuData = new ExpandoObject();
menuData.title = Config.MenuTitle;
menuData.align = "top-left";
menuData.elements = new dynamic[3];
menuData.elements[0] = GetElement_AllCars(cars);
menuData.elements[1] = GetElement_TestDrive();
menuData.elements[2] = GetElement_Buy();
return menuData;
}
private static dynamic GetElement_AllCars(string[] names) {
dynamic data = new ExpandoObject();
data.label = "Auto";
data.name = "car";
data.value = 0;
data.options = names;
data.type = "slider";
return data;
}
private static dynamic GetElement_TestDrive() {
dynamic data = new ExpandoObject();
data.label = "Probefahrt";
data.name = "testdrive";
return data;
}
private static dynamic GetElement_Buy() {
dynamic data = new ExpandoObject();
data.label = "Kaufen";
data.name = "buy";
return data;
}
}
}