rock-mod
Version:
Rock-Mod is a powerful framework designed for creating and managing mods for Grand Theft Auto (GTA) games.
110 lines (109 loc) • 3.16 kB
JavaScript
/* eslint-disable @typescript-eslint/no-unused-vars */
import { BaseObjectType } from "../../../../shared/entities";
import { RGBA, Vector3D } from "../../../../shared/common/utils";
const notImplemented = (memberName) => {
throw new Error(`CCMPMarker.${memberName}: not implemented`);
};
export class CCMPMarker {
constructor(_ccmpMarker, _onDestroy = () => { }) {
this._ccmpMarker = _ccmpMarker;
this._onDestroy = _onDestroy;
this._destroyed = false;
}
get id() {
return this._ccmpMarker.id;
}
get remoteId() {
return this._ccmpMarker.remoteId;
}
get type() {
return BaseObjectType.Marker;
}
get isExists() {
return !this._destroyed && this._ccmpMarker.isExists;
}
get handle() {
return 0;
}
destroy() {
if (this._destroyed)
return;
this._destroyed = true;
this._ccmpMarker.destroy();
this._onDestroy(this);
}
get position() {
const { x, y, z } = this._ccmpMarker.position;
return new Vector3D(x, y, z);
}
get dimension() {
return this._ccmpMarker.dimension;
}
setPosition(_value) {
notImplemented("setPosition");
}
setDimension(_value) {
notImplemented("setDimension");
}
setCoords(_xPos, _yPos, _zPos, _xAxis, _yAxis, _zAxis, _clearArea) {
notImplemented("setCoords");
}
get markerType() {
return this._ccmpMarker.markerType;
}
get visible() {
return this._ccmpMarker.visible;
}
get rotation() {
const { x, y, z } = this._ccmpMarker.rotation;
return new Vector3D(x, y, z);
}
getVariable(name) {
const remoteId = this.remoteId;
if (remoteId === null) {
return null;
}
const value = ccmp.entities.getStreamSyncedMeta(ccmp.entities.ENTITY_TYPE.Marker, remoteId, name);
return value === undefined ? null : value;
}
getSyncedMeta(key) {
const remoteId = this.remoteId;
if (remoteId === null) {
return undefined;
}
return ccmp.entities.getStreamSyncedMeta(ccmp.entities.ENTITY_TYPE.Marker, remoteId, key);
}
hasSyncedMeta(key) {
const remoteId = this.remoteId;
if (remoteId === null) {
return false;
}
return ccmp.entities.hasStreamSyncedMeta(ccmp.entities.ENTITY_TYPE.Marker, remoteId, key);
}
getSyncedMetaKeys() {
const remoteId = this.remoteId;
if (remoteId === null) {
return [];
}
return ccmp.entities.getStreamSyncedMetaKeys(ccmp.entities.ENTITY_TYPE.Marker, remoteId);
}
setVisible(_value) {
notImplemented("setVisible");
}
setRotation(_value) {
notImplemented("setRotation");
}
get scale() {
return this._ccmpMarker.scale;
}
setScale(_value) {
notImplemented("setScale");
}
get color() {
const { r, g, b, a } = this._ccmpMarker.color;
return new RGBA(r, g, b, a);
}
setColor(_value) {
notImplemented("setColor");
}
}