143 lines
4.7 KiB
TypeScript
143 lines
4.7 KiB
TypeScript
import * as NativeUI from '../../libs/NativeUI';
|
|
|
|
const Menu = NativeUI.Menu;
|
|
const UIMenuItem = NativeUI.UIMenuItem;
|
|
const UIMenuListItem = NativeUI.UIMenuListItem;
|
|
const Point = NativeUI.Point;
|
|
const ItemsCollection = NativeUI.ItemsCollection;
|
|
var screenRes = mp.game.graphics.getScreenResolution(0, 0);
|
|
|
|
export default function vehicleMenu(globalData: IGlobalData) {
|
|
let menuBrowser: BrowserMp = null;
|
|
var lastDriversBrowser: BrowserMp = null;
|
|
|
|
var lastDrivers = null;
|
|
|
|
mp.events.add('lookLastDrivers', (lastDriversParam) => {
|
|
lastDrivers = JSON.parse(lastDriversParam);
|
|
|
|
if (lastDriversBrowser !== null) {
|
|
lastDriversBrowser.destroy();
|
|
lastDriversBrowser = null;
|
|
globalData.InMenu = false;
|
|
mp.gui.cursor.show(false, false);
|
|
mp.gui.chat.activate(true);
|
|
}
|
|
else if (!globalData.InMenu) {
|
|
globalData.InMenu = true;
|
|
lastDriversBrowser = mp.browsers.new('package://assets/vehicle/lastPlayers.html');
|
|
mp.gui.chat.activate(false);
|
|
mp.gui.cursor.show(true, true);
|
|
}
|
|
});
|
|
|
|
mp.events.add("CEF:VehicleLook_Loaded", () => {
|
|
lastDriversBrowser.execute(`setDrivers('${JSON.stringify(lastDrivers)}');`);
|
|
mp.gui.cursor.show(true, true);
|
|
});
|
|
|
|
mp.events.add("removeLookMenu", () => {
|
|
if (lastDriversBrowser == null) {
|
|
return;
|
|
}
|
|
else if (globalData.InMenu) {
|
|
lastDriversBrowser.destroy();
|
|
lastDriversBrowser = null;
|
|
globalData.InMenu = false;
|
|
mp.gui.cursor.show(false, false);
|
|
mp.gui.chat.activate(true);
|
|
}
|
|
});
|
|
|
|
mp.events.add('ToggleVehicleMenu', () => {
|
|
if (globalData.InMenu && menuBrowser !== null) {
|
|
menuBrowser.destroy();
|
|
menuBrowser = null;
|
|
globalData.InMenu = false;
|
|
mp.gui.chat.show(true);
|
|
mp.gui.cursor.show(false, false);
|
|
return;
|
|
} else {
|
|
menuBrowser = mp.browsers.new("package://assets/html/interaction/index.html");
|
|
mp.gui.chat.show(false);
|
|
globalData.InMenu = true;
|
|
mp.gui.cursor.show(true, true);
|
|
}
|
|
});
|
|
|
|
mp.events.add('doAction', (action) => {
|
|
mp.events.call('ToggleVehicleMenu');
|
|
|
|
switch (action) {
|
|
case 8: // Motor
|
|
mp.events.callRemote("VehicleMenu_ToggleEngine");
|
|
break;
|
|
case 5: // Auf -/ Abschließen
|
|
mp.events.callRemote("VehicleMenu_LockCar");
|
|
break;
|
|
case 3: // Türen
|
|
showDoorsMenu();
|
|
break;
|
|
case 7: // Parken
|
|
mp.events.callRemote("CLIENT:VehicleMenu_ParkCar");
|
|
break;
|
|
}
|
|
});
|
|
|
|
function showDoorsMenu() {
|
|
globalData.InMenu = true;
|
|
|
|
var doorMenu = new Menu("Türen", "Türen verwalten", new Point(0, screenRes.y / 3), null, null);
|
|
|
|
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(() => {
|
|
globalData.InMenu = false;
|
|
});
|
|
|
|
doorMenu.Open();
|
|
}
|
|
} |