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
JavaScript
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(),
};
}
}