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
JavaScript
;
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;