Archived
Private
Public Access
1
0

Update 07.12.2022

This commit is contained in:
2022-12-07 15:35:41 +01:00
parent 771f58073f
commit 840d7ad42f
288 changed files with 148948 additions and 4346 deletions

View File

@@ -20,7 +20,12 @@ namespace TaxiJob.Client {
public TaxiJob() {
_instance = this;
EventHandlers["onClientResourceStart"] += new Action<string>(OnStart); //esx:playerLoaded
EventHandlers["esx:playerLoaded"] += new Action(OnStart);
EventHandlers["onResourceStop"] += new Action<string>(OnStop);
EventHandlers["taxijob:client:job"] += new Action<Vector3, string>(JobHandler.RequestJob);
EventHandlers["taxijob:client:npc"] += new Action(NpcTaxiHandler.StartNpcJob);
EventHandlers["taxijob:client:sync_meter"] += new Action<ExpandoObject, bool>(Taximeter.Sync);
EventHandlers["taxijob:client:set_passanger"] += new Action<int>(client => Taximeter.CurrentClient = client);
}
public static Task<T> ServerCallback<T>(string name, [Optional] dynamic args) {
@@ -56,11 +61,34 @@ namespace TaxiJob.Client {
return source.Task;
}
public static Task<string> DisplayTextDialog(string placeholder) {
var source = new TaskCompletionSource<string>();
ESX.UI.Menu.Open("dialog", API.GetCurrentResourceName(), "test_dialog", new ESX.UI.MenuData() {
title = placeholder,
type = "default",
align = "center"
}, (dData, dMenu) => {
source.TrySetResult(dData.value as string);
ESX.UI.Menu.Close(new ESX.UI.Menu(dMenu));
}, (dData, dMenu) => {
source.TrySetResult(null);
ESX.UI.Menu.Close(new ESX.UI.Menu(dMenu));
});
return source.Task;
}
public static async Task<string> GeneratePlate() {
var plate = await _instance.Exports["esx_vehicleshop"].GeneratePlate();
return Convert.ToString(plate);
}
public static void SetFuel(Vehicle vehicle, float level) {
_instance.Exports["LegacyFuel"].SetFuel(vehicle.Handle, level);
}
public static void PrintDynamic(dynamic data, string prefix = "") {
foreach (var element in (data as IDictionary<string, object>)) {
Debug.WriteLine($"{prefix}{element.Key}: {element.Value}");
@@ -75,21 +103,32 @@ namespace TaxiJob.Client {
}
}
[Command("taximeter")]
private void OnCommand() {
Taximeter.Attributes.MeterVisible = !Taximeter.Attributes.MeterVisible;
Taximeter.Update();
public static void SetServiceStatus(bool onService) {
TriggerServerEvent("taxijob:server:service", onService);
}
private void OnStart(string resourceName) {
if (API.GetCurrentResourceName() != resourceName) return;
private void OnStart() {
Tick += async () => {
if (ESX.GetPlayerData().job.name != "taxi") return;
if (NpcTaxiHandler.IsCustomer) NpcTaxiHandler.OnTick();
if (Taximeter.Attributes.MeterVisible && !Game.PlayerPed.IsInVehicle()) Taximeter.Reset();
if (ESX.GetPlayerData().job.name != "taxi") {
CloakroomHandler.JobBlip?.Delete();
CloakroomHandler.JobBlip = null;
return;
}
CloakroomHandler.OnTick();
if (!InDuty) return;
JobHandler.OnTick();
};
}
private void OnStop(string resourceName) {
if (API.GetCurrentResourceName() != resourceName) return;
TriggerServerEvent("taxijob:server:accept", false, JobHandler.JobId);
JobHandler.StopJob(false);
SetServiceStatus(false);
}
}
}