Files
reallife-gamemode/ReallifeGamemode.Client/Gui/cityhall.ts
2019-05-13 12:51:30 +02:00

75 lines
2.5 KiB
TypeScript

import * as NativeUI from 'NativeUI';
const Menu = NativeUI.Menu;
const UIMenuItem = NativeUI.UIMenuItem;
const UIMenuListItem = NativeUI.UIMenuListItem;
const UIMenuCheckboxItem = NativeUI.UIMenuCheckboxItem;
const BadgeStyle = NativeUI.BadgeStyle;
const Point = NativeUI.Point;
const ItemsCollection = NativeUI.ItemsCollection;
const Color = NativeUI.Color;
import InputHelper from '../inputhelper';
export default function (globalData: GlobalData) {
var keyBound = false;
var menu: NativeUI.Menu = null;
mp.events.add("SERVER:CityHall_ShowHelpText", () => {
mp.game.ui.setTextComponentFormat('STRING');
mp.game.ui.addTextComponentSubstringPlayerName('Drücke ~INPUT_CONTEXT~, um das Stadthallen-Menü zu öffnen');
mp.game.ui.displayHelpTextFromStringLabel(0, true, true, -1);
if (!keyBound) {
keyBound = true;
mp.keys.bind(0x45, false, keyPressHandler);
}
});
mp.events.add("SERVER:CityHall_ClearHelpText", () => {
mp.game.ui.clearHelp(false);
if (keyBound) {
mp.keys.unbind(0x45, false, keyPressHandler);
keyBound = false;
}
});
function keyPressHandler(): void {
if (globalData.InChat || globalData.InMenu) return;
menu = new Menu("Stadthalle", "", new Point(50, 50), null, null);
globalData.InMenu = true;
mp.gui.chat.show(false);
var jobItem = new UIMenuItem("Jobs", "Jobcenter");
menu.AddItem(jobItem);
var jobMenu = new Menu("Jobcenter", "Hartz 4 und der Tag gehoert dir.", new Point(50, 50), null, null);
var groupCreateItem = new UIMenuItem("Gruppe erstellen", "Erstelle eine neue Gruppe");
groupCreateItem.SetRightLabel("~g~50.000$");
menu.AddItem(groupCreateItem);
var cancelItem = new UIMenuItem("Schließen");
cancelItem.BackColor = new Color(213, 0, 0);
cancelItem.HighlightedBackColor = new Color(229, 57, 53);
menu.AddItem(cancelItem);
menu.ItemSelect.on((item: NativeUI.UIMenuItem, index) => {
if (item === groupCreateItem) { // Gruppe
var input = new InputHelper("Wie soll die Gruppe heißen?", globalData);
input.show();
input.getValue((name: string) => {
mp.events.callRemote("CLIENT:CityHall_CreateGroup", name);
menu.Close();
});
}
});
menu.MenuClose.on(() => {
globalData.InMenu = false;
mp.gui.chat.show(true);
});
}
}