Added vehicle door menu
This commit is contained in:
@@ -1,5 +1,17 @@
|
||||
let menuBrowser = null;
|
||||
|
||||
const NativeUI = require('nativeui');
|
||||
const Menu = NativeUI.Menu;
|
||||
const UIMenuItem = NativeUI.UIMenuItem;
|
||||
const UIMenuListItem = NativeUI.UIMenuListItem;
|
||||
const UIMenuCheckboxItem = NativeUI.UIMenuCheckboxItem;
|
||||
const UIMenuSliderItem = NativeUI.UIMenuSliderItem;
|
||||
const BadgeStyle = NativeUI.BadgeStyle;
|
||||
const Point = NativeUI.Point;
|
||||
const ItemsCollection = NativeUI.ItemsCollection;
|
||||
const Color = NativeUI.Color;
|
||||
const ListItem = NativeUI.ListItem;
|
||||
|
||||
mp.events.add('ToggleVehicleMenu', () => {
|
||||
if (menuBrowser !== null) {
|
||||
menuBrowser.destroy();
|
||||
@@ -24,15 +36,68 @@ mp.events.add('doAction', (action) => {
|
||||
case 8: // Motor
|
||||
mp.events.callRemote("VehicleMenu_ToggleEngine");
|
||||
break;
|
||||
case 5:
|
||||
case 5: // Auf -/ Abschließen
|
||||
mp.events.callRemote("VehicleMenu_LockCar");
|
||||
break;
|
||||
case 3:
|
||||
case 3: // Türen
|
||||
showDoorsMenu();
|
||||
break;
|
||||
}
|
||||
});
|
||||
|
||||
function showDoorsMenu() {
|
||||
mp.gui.chat.show(false);
|
||||
|
||||
var doorMenu = new Menu("Türen", "Türen verwalten", new Point(50, 50));
|
||||
|
||||
doorMenu.AddItem(new UIMenuListItem("Tür", "Welche Tür darf's sein?", new ItemsCollection([
|
||||
" Fahrertür",
|
||||
" Beifahrertür",
|
||||
"Hinten links",
|
||||
"Hinten rechts",
|
||||
"Motorhaube",
|
||||
"Kofferraum"
|
||||
])));
|
||||
|
||||
doorMenu.AddItem(new UIMenuItem("Alle öffnen", "Öffnet alle Türen"));
|
||||
doorMenu.AddItem(new UIMenuItem("Alle schließen", "Schließt alle Türen"));
|
||||
|
||||
doorMenu.ItemSelect.on((item, index) => {
|
||||
if (index === 0) {
|
||||
var doorId = -1;
|
||||
switch (item.SelectedItem.DisplayText) {
|
||||
case " Fahrertür":
|
||||
doorId = 0;
|
||||
break;
|
||||
case " Beifahrertür":
|
||||
doorId = 1;
|
||||
break;
|
||||
case "Hinten links":
|
||||
doorId = 2;
|
||||
break;
|
||||
case "Hinten rechts":
|
||||
doorId = 3;
|
||||
break;
|
||||
case "Motorhaube":
|
||||
doorId = 4;
|
||||
break;
|
||||
case "Kofferraum":
|
||||
doorId = 5;
|
||||
break;
|
||||
}
|
||||
if (doorId !== -1) {
|
||||
mp.events.callRemote("VehicleMenu_ToggleSingleDoor", doorId);
|
||||
}
|
||||
} else if (index === 1) {
|
||||
mp.events.callRemote("VehicleMenu_OpenAllDoors");
|
||||
} else if (index === 2) {
|
||||
mp.events.callRemote("VehicleMenu_CloseAllDoors");
|
||||
}
|
||||
});
|
||||
|
||||
doorMenu.MenuClose.on(() => {
|
||||
mp.gui.chat.show(true);
|
||||
});
|
||||
|
||||
doorMenu.Open();
|
||||
}
|
||||
@@ -88,5 +88,42 @@ namespace reallife_gamemode.Server.Events
|
||||
player.SendNotification(msg);
|
||||
}
|
||||
}
|
||||
|
||||
[RemoteEvent("VehicleMenu_ToggleSingleDoor")]
|
||||
public void VehicleMenuToggleSingleDoorEvent(Client player, int door)
|
||||
{
|
||||
if (!player.IsInVehicle) return;
|
||||
Vehicle veh = player.Vehicle;
|
||||
|
||||
DoorID doorId = (DoorID)door;
|
||||
|
||||
DoorState state = VehicleStreaming.GetDoorState(veh, doorId);
|
||||
|
||||
VehicleStreaming.SetDoorState(veh, doorId, state == DoorState.DoorOpen ? DoorState.DoorClosed : DoorState.DoorOpen);
|
||||
}
|
||||
|
||||
[RemoteEvent("VehicleMenu_OpenAllDoors")]
|
||||
public void VehicleMenuOpenAllDoorsEvent(Client player)
|
||||
{
|
||||
if (!player.IsInVehicle) return;
|
||||
Vehicle veh = player.Vehicle;
|
||||
|
||||
foreach (DoorID doorId in Enum.GetValues(typeof(DoorID)))
|
||||
{
|
||||
VehicleStreaming.SetDoorState(veh, doorId, DoorState.DoorOpen);
|
||||
}
|
||||
}
|
||||
|
||||
[RemoteEvent("VehicleMenu_CloseAllDoors")]
|
||||
public void VehicleMenuCloseAllDoorsEvent(Client player)
|
||||
{
|
||||
if (!player.IsInVehicle) return;
|
||||
Vehicle veh = player.Vehicle;
|
||||
|
||||
foreach (DoorID doorId in Enum.GetValues(typeof(DoorID)))
|
||||
{
|
||||
VehicleStreaming.SetDoorState(veh, doorId, DoorState.DoorClosed);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user