/**
 * @overview Life of German Reallife - Login index.js
 * @author VegaZ, hydrant
 * @copyright (c) 2008 - 2018 Life of German
 **/

import { IGame } from './game';
import RageGame from './core/rage-mp/game';


var inMenu: boolean = false;

let globalData: IGlobalData = {
    InTuning: false,
    HideGui: false,
    InChat: false,
    LoggedIn: false, 

    get InMenu(): boolean {
        return inMenu;
    },
    set InMenu(value: boolean) {
        inMenu = value;

        mp.gui.chat.show(!value);
    }
};

const game: IGame = new RageGame();
export default game;
export {
    globalData as GlobalData
}

game.events.onPlayerCommand((cmd) => {
    game.events.callServer("Command", cmd.split(' '));
});

mp.game.vehicle.defaultEngineBehaviour = false;

require('./Gui/house');

import vehicleEntering from './vehiclesync/entering';
vehicleEntering(globalData);

import wanteds from './Gui/wanteds';
wanteds(globalData);

import playerBlips from './Gui/blips';
playerBlips();

import jobMain from './Jobs/main';
jobMain(globalData);

import cityHall from './Gui/cityhall';
cityHall(globalData);

import adminSpeed from './admin/aspeed';
adminSpeed();

import voice from './Voice/main';
voice(globalData);

import handMoney from './Gui/handmoney'
handMoney(globalData);

import business from './Business/main';
business(globalData);

import cardealer from './Business/cardealer';
cardealer(globalData);

import charCreator from './CharCreator/main';
charCreator(globalData);

import coloredHeadLights from './coloredhlights/index';
coloredHeadLights();

import doorManager from './DoorManager/doormanager';
doorManager();

import factionManagement from './FactionManagement/main';
factionManagement();

import deathScreen from './Gui/deathscreen';
deathScreen();

import Infobox from './Gui/infobox';
Infobox(globalData);

import nametags from './Gui/nametags';
nametags();

import playerList from './Gui/playerlist';
playerList(globalData);

import license from './Gui/licenses';
license(globalData);

import vehicleMenu from './Gui/vehiclemenu/main';
vehicleMenu(globalData);

require('./Gui/interiors');

import factionInteraction from './Interaction/factioninteraction';
factionInteraction(globalData);

import drivingSchoolList from './Interaction/drivingschool';
drivingSchoolList(globalData);

import elevatorList from './Interaction/elevator';
elevatorList(globalData);

import worldInteraction from './Interaction/worldinteraction';
worldInteraction();

import playerInteraction from './Interaction/playerinteraction';
playerInteraction(globalData);

import interactionMenu from './Interaction/interactionmenu';
interactionMenu(globalData);

import inventory from './inventory/inventory';
inventory(globalData);

import Login from './Login/main';
Login(globalData);

import dutyCloth from './Player/dutycloth';
dutyCloth(globalData);

import weaponList from './Player/weaponlist';
weaponList(globalData);

import jailList from './Player/criminalrelease';
jailList(globalData);

import keys from './Player/keys';
keys(globalData);

import quitHandler from './Player/quit';
quitHandler();

import freeCam from './Player/freecam';
freeCam();

import saveManager from './Save/main';
saveManager();

import speedometer from './Speedometer';
speedometer(globalData);

import tuning from './Tuning/main';
tuning(globalData);

import tuningSync from './Tuning/sync';
tuningSync();

import sirenSilence from './Tuning/sirensilence';
sirenSilence();

import waypointUtil from './util/waypoint';
waypointUtil();

require('./vehiclesync/vehiclesync');

import smoothThrottle from './vehiclesync/smoothtrottle';
smoothThrottle();

import vehicleIndicators from './vehiclesync/vehicleindicators';
vehicleIndicators();

import vehicleDoor from './vehiclesync/door';
vehicleDoor();

import freeze from './util/freeze';
freeze();

import ped from './util/ped';
ped();

import reportList from './Player/reportmenu';
reportList(globalData);

import checkpointHandle from './util/checkpoint';
checkpointHandle(globalData);

import busRouteList from './Jobs/BusRouteSelect';
busRouteList(globalData);

import drivingSchoolHandle from './util/drivingschool';
drivingSchoolHandle(globalData);

import notificationUtil from './util/notification';
notificationUtil();

import planeSchoolHandle from './util/planeschool';
planeSchoolHandle(globalData);

import PilotRouteList from './Jobs/PilotRouteSelect';
PilotRouteList(globalData);

import weapondamageUtil from './util/weapondamage';
weapondamageUtil();

import soundUtil from './util/sound';
soundUtil();

import clotheShopList from './Interaction/clothes/ClotheShop';
clotheShopList(globalData);

import FriseurShopList from './Interaction/friseur/friseur';
FriseurShopList(globalData);

import itemShopList from './Interaction/ItemShop';
itemShopList(globalData);

import taximeterInput from './Gui/taximeter';
taximeterInput(globalData);

import refuseCollector from './Jobs/RefuseCollector';
refuseCollector();

import PedCreator from './Ped/PedCreator';
PedCreator();


import attachmentManager from './util/attachmentMngr';
attachmentManager(game);

import relativeVector from './util/relativevector';
relativeVector();

import bankMenuHandle from './Interaction/bankmenu';
import InputHelper from './inputhelper';
bankMenuHandle(globalData);


import ahelp from './Gui/ahelp';
ahelp(globalData);

import Introduction from './Gui/introduction';
Introduction(globalData);


import userhelp from './Gui/userhelp';
userhelp(globalData);

import drivingschool from './Gui/drivingschool';
drivingschool(globalData);

import gangwarHandle from './util/Gangwar';
gangwarHandle(globalData);

require('./Gui/policedepartment');
require('./Gui/helptext');

interface VehicleData {
    EngineState: boolean;
    Locked: boolean;
}

export {
    VehicleData
}


