UNPKG

rock-mod

Version:

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

181 lines (180 loc) 5.48 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CCMPPlayer = void 0; const CCMPEntity_1 = require("../entity/CCMPEntity"); const shared_1 = require("../../../../shared"); const Vectors_1 = require("../../../../shared/common/utils/math/Vectors"); const Math_1 = require("../../../../shared/common/utils/math/Math"); const RockMod_1 = require("../../../RockMod"); const notImplemented = (name) => { throw new Error(`Not implemented yet: ${name}`); }; class CCMPPlayer extends CCMPEntity_1.CCMPEntity { _ccmpPlayer; get id() { return this._ccmpPlayer.id; } get type() { return shared_1.BaseObjectType.Player; } get isExists() { return ccmp.players.getById(this._ccmpPlayer.id) !== null; } get position() { const p = this._ccmpPlayer.position; if (!p) return new Vectors_1.Vector3D(0, 0, 0); return new Vectors_1.Vector3D(p.x, p.y, p.z); } get dimension() { return this._ccmpPlayer.dimension; } get model() { return this._ccmpPlayer.model; } // CCMP exposes only heading; pitch/roll (x/y components) are silently dropped on setRotation. get rotation() { return new Vectors_1.Vector3D(0, 0, this._ccmpPlayer.heading); } get name() { return this._ccmpPlayer.name; } get socialClub() { return this._ccmpPlayer.socialClub; } get heading() { return this._ccmpPlayer.heading; } get health() { return this._ccmpPlayer.health; } get armour() { return this._ccmpPlayer.armour; } get isDead() { return this._ccmpPlayer.health <= 0; } get ip() { return notImplemented("CCMPPlayer.ip"); } get serial() { return notImplemented("CCMPPlayer.serial"); } get vehicle() { const ccmpVehicle = this._ccmpPlayer.vehicle; if (!ccmpVehicle) return null; return RockMod_1.RockMod.instance.vehicles.findByID(ccmpVehicle.id); } get seat() { return this._ccmpPlayer.seat; } get weapon() { return this._ccmpPlayer.currentWeapon; } get weaponAmmo() { return this._ccmpPlayer.ammo; } get ccmpMeta() { return this._ccmpPlayer; } get eyeColor() { return notImplemented("CCMPPlayer.eyeColor"); } get streamedPlayers() { return notImplemented("CCMPPlayer.streamedPlayers"); } constructor(options) { super(); this._ccmpPlayer = options.ccmpPlayer; } destroy() { notImplemented("CCMPPlayer.destroy"); } setPosition(value) { this._ccmpPlayer.teleport(value.x, value.y, value.z); } setDimension(value) { this._ccmpPlayer.dimension = value; } setModel(value) { // CCMP runtime accepts a string and JOAATs server-side via op_set_player_model. this._ccmpPlayer.model = value; } setRotation(value) { this._ccmpPlayer.heading = value.z; } emitEvent(eventName, ...args) { return RockMod_1.RockMod.instance.net.events.emitClient(this, eventName, ...args); } emitRPC(rpcName, ...args) { return RockMod_1.RockMod.instance.net.rpc.emitClient(this, rpcName, ...args); } spawn(_position) { notImplemented("CCMPPlayer.spawn"); } setName(name) { this._ccmpPlayer.name = name; } setHeading(value) { this._ccmpPlayer.heading = value; } setHealth(value) { this._ccmpPlayer.health = (0, Math_1.MathClamp)(value, 0, 100); } setArmour(value) { this._ccmpPlayer.armour = (0, Math_1.MathClamp)(value, 0, 100); } setWeaponAmmo(weapon, ammo) { this._ccmpPlayer.setWeaponAmmo(RockMod_1.RockMod.instance.utils.hash(weapon), ammo); } giveWeapon(weapon, ammo) { this._ccmpPlayer.giveWeapon(RockMod_1.RockMod.instance.utils.hash(weapon), ammo); } removeWeapon(weapon) { this._ccmpPlayer.removeWeapon(RockMod_1.RockMod.instance.utils.hash(weapon)); } enableVoiceTo(_player) { notImplemented("CCMPPlayer.enableVoiceTo"); } disableVoiceTo(_player) { notImplemented("CCMPPlayer.disableVoiceTo"); } putIntoVehicle(vehicle, seat) { this._ccmpPlayer.putIntoVehicle(vehicle.id, seat); } ejectFromVehicle() { this._ccmpPlayer.removeFromVehicle(); } setCustomization(_data) { notImplemented("CCMPPlayer.setCustomization"); } setHeadOverlay(_overlayID, _index, _opacity, _firstColor, _secondColor) { notImplemented("CCMPPlayer.setHeadOverlay"); } setEyeColor(_colorID) { notImplemented("CCMPPlayer.setEyeColor"); } setProp(_propID, _drawableID, _textureID) { notImplemented("CCMPPlayer.setProp"); } setClothes(_componentID, _drawableID, _textureID, _paletteID) { notImplemented("CCMPPlayer.setClothes"); } setHairColor(_colorID, _highlightColorID) { notImplemented("CCMPPlayer.setHairColor"); } kick(reason) { this._ccmpPlayer.kick(reason ?? ""); } playAnimation(dictionary, name, speed, flag) { this._ccmpPlayer.playAnimation(dictionary, name, speed, flag); } stopAnimation() { this._ccmpPlayer.stopAnimation(); } removeFromVehicle() { this._ccmpPlayer.removeFromVehicle(); } } exports.CCMPPlayer = CCMPPlayer;