Update 07.12.2022
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user