UNPKG

rock-mod

Version:

Rock-Mod is a powerful framework designed for creating and managing mods for Grand Theft Auto (GTA) games.

106 lines (105 loc) 3.86 kB
export class RockMod { static async create(options) { if (this._instance) { throw new Error("RockMod already created"); } const managersFactory = await this._initManagersFactory(options); this._instance = new RockMod(managersFactory); return this._instance; } static get instance() { if (!this._instance) { throw new Error("RockMod is not created"); } return this._instance; } static async _initManagersFactory(options) { const { multiplayer } = options; switch (multiplayer) { case "RageMP": { const { RageManagersFactory } = await import("./factories/ragemp/RageManagersFactory"); return new RageManagersFactory(); } case "CCMP": { const { CCMPManagersFactory } = await import("./factories/ccmp/CCMPManagersFactory"); return new CCMPManagersFactory(); } case "AltV": case "Mock": { throw new Error("This multiplayer type is not implemented yet on client side"); } } } get net() { return this._net; } get blips() { return this._blips; } get colshapes() { return this._colshapes; } get markers() { return this._markers; } get objects() { return this._objects; } get peds() { return this._peds; } get players() { return this._players; } get utils() { return this._utils; } get vehicles() { return this._vehicles; } get cameras() { return this._cameras; } get game() { return this._game; } get console() { return this._console; } constructor(managersFactory) { this._net = managersFactory.createNetManager(); this._blips = managersFactory.createBlipsManager(); this._colshapes = managersFactory.createColshapesManager(); this._markers = managersFactory.createMarkersManager(); this._objects = managersFactory.createObjectsManager(); this._peds = managersFactory.createPedsManager(); this._players = managersFactory.createPlayersManager(); this._utils = managersFactory.createUtilsManager(); this._vehicles = managersFactory.createVehiclesManager(); this._cameras = managersFactory.createCameraManager(); this._console = managersFactory.createConsoleManager(); this._game = { browser: managersFactory.createBrowserManager(), chat: managersFactory.createChatManager(), cursor: managersFactory.createCursorManager(), gui: managersFactory.createGuiManager(), raycasting: managersFactory.createRaycastingManager(), voiceChat: managersFactory.createVoiceChatManager(), storage: managersFactory.createStorageManager(), graphics: managersFactory.createGraphicsManager(), native: managersFactory.createNativeManager(), streaming: managersFactory.createStreamingManager(), localPlayer: managersFactory.createLocalPlayerManager(), controls: managersFactory.createControlsManager(), keys: managersFactory.createKeysManager(), gameplay: managersFactory.createGameplayManager(), camera: managersFactory.createGameCameraManager(), ui: managersFactory.createUiManager(), nametags: managersFactory.createNametagsManager(), pathfind: managersFactory.createPathfindManager(), zone: managersFactory.createZoneManager(), weapon: managersFactory.createWeaponManager(), object: managersFactory.createGameObjectManager(), }; } }