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

@@ -0,0 +1,129 @@
using System.Collections.Generic;
using System.Linq;
using CitizenFX.Core;
using CitizenFX.Core.Native;
using Nexd.ESX.Client;
namespace TaxiJob.Client.Handler {
public class TaxiMenuHandler {
public static bool MenuOpen = false;
private static ESX.UI.Menu _currentMenu;
public static void OpenMenu() {
var elements = new List<ESX.UI.MenuElement>();
if (JobHandler.InJob) {
elements.Add(new ESX.UI.MenuElement {
label = "Auftrag beenden",
name = "cancel_job"
});
} else if (Game.PlayerPed.CurrentVehicle?.PassengerCount > 0) {
elements.Add(new ESX.UI.MenuElement {
label = "Auftrag starten",
name = "start_job"
});
}
elements.Add(new ESX.UI.MenuElement {
label = Taximeter.Attributes.MeterVisible ? "Taximeter aus" : " Taximeter an",
name = "toggle_taximeter"
});
if (Taximeter.Attributes.MeterVisible) {
elements.AddRange(new [] {
new ESX.UI.MenuElement {
label = Taximeter.Attributes.MeterPause ? "Taximeter fortsetzen" : "Taximeter anhalten",
name = "pause_taximeter"
},
new ESX.UI.MenuElement {
label = "Taximeter zurücksetzen",
name = "reset_taximeter"
}
});
if (!JobHandler.IsNpcJob) {
elements.Add(new ESX.UI.MenuElement {
label = "Tarif ändern",
name = "change_rate"
});
}
}
var menuData = new ESX.UI.MenuData {
align = "top-left",
title = "Taxi",
elements = elements
};
ESX.UI.Menu.CloseAll();
_currentMenu = ESX.UI.Menu.Open("default", API.GetCurrentResourceName(), "taxi_menu", menuData, (dData, dMenu) => {
var data = new ESX.UI.MenuData(dData);
var menu = new ESX.UI.Menu(dMenu);
if (data.current.name == "cancel_job") {
JobHandler.StopJob();
menu.Close();
}
if (data.current.name == "start_job") {
if (!Game.PlayerPed.IsInVehicle(JobHandler.Vehicle)) return;
var passanger = JobHandler.Vehicle.Passengers.First(ped => ped?.Handle != 0);
Taximeter.CurrentClient = API.GetPlayerServerId(API.NetworkGetPlayerIndexFromPed(passanger.Handle));
JobHandler.StartJob();
}
if (data.current.name == "toggle_taximeter") {
Taximeter.Toggle();
OpenMenu();
}
if (data.current.name == "pause_taximeter") {
Taximeter.Pause();
OpenMenu();
}
if (data.current.name == "reset_taximeter") {
Taximeter.Reset(Taximeter.Attributes.MeterVisible);
}
if (data.current.name == "change_rate") {
OpenRateMenu();
}
}, (dData, dMenu) => {
new ESX.UI.Menu(dMenu).Close();
MenuOpen = false;
});
MenuOpen = true;
}
public static void CloseMenu() {
if (!MenuOpen) return;
_currentMenu.Close();
MenuOpen = false;
}
public static void OpenRateMenu() {
var rates = new [] { 10, 15, 20 };
var menuData = new ESX.UI.MenuData {
align = "top-left",
title = "Taxi - Tarif",
elements = rates.Select(rate => new ESX.UI.MenuElement {
label = rate + "$",
name = rate
}).ToList()
};
ESX.UI.Menu.Open("default", API.GetCurrentResourceName(), "taxi_rate_menu", menuData, (dData, dMenu) => {
Taximeter.Attributes.RateAmount = (int)dData.current.name;
Taximeter.Update();
new ESX.UI.Menu(dMenu).Close();
}, (dData, dMenu) => {
new ESX.UI.Menu(dMenu).Close();
});
}
}
}