UNPKG

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
/* 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"); } }