rock-mod
Version:
Rock-Mod is a powerful framework designed for creating and managing mods for Grand Theft Auto (GTA) games.
81 lines (80 loc) • 2.96 kB
JavaScript
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
export class RockMod {
static create(options) {
return __awaiter(this, void 0, void 0, function* () {
if (this._instance) {
throw new Error("RockMod already created");
}
const managersFactory = yield 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 _initManagersFactory(options) {
return __awaiter(this, void 0, void 0, function* () {
const { multiplayer } = options;
switch (multiplayer) {
case "RageMP": {
const { RageManagersFactory } = yield import("./factories/ragemp/RageManagersFactory");
return new RageManagersFactory();
}
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;
}
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._net);
this._utils = managersFactory.createUtilsManager();
this._vehicles = managersFactory.createVehiclesManager();
}
}