@nativewrappers/redm
Version: 
Native wrappers and utilities for use with RedM.
144 lines (143 loc) • 4.23 kB
JavaScript
var __defProp = Object.defineProperty;
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
import { _N } from "./utils/Native";
class CoreAttribute {
  static {
    __name(this, "CoreAttribute");
  }
  handle;
  attribute;
  constructor(ped, attribute) {
    this.handle = ped.Handle;
    this.attribute = attribute;
  }
  /**
   * This doesn't seem to actually do anything
   * @todo maybe remove unless theres a valid use case
   * @param amount
   * @param makeSound
   */
  enableOverpower(amount, makeSound = false) {
    _N("0x4AF5A4C7B9157D14", this.handle, this.attribute, amount, makeSound);
  }
  get Overpowered() {
    return _N("0x200373A8DF081F22", this.attribute, Citizen.resultAsInteger());
  }
  /**
   * @returns the amount of overpower time left in seconds
   */
  get OverpoweredTimeLeft() {
    return _N("0xB429F58803D285B1", this.handle, this.attribute, Citizen.resultAsInteger());
  }
  /**
   * Returns how full the core is
   */
  get CoreValue() {
    return GetAttributeCoreValue(this.handle, this.attribute);
  }
  set CoreValue(amount) {
    _N("0xC6258F41D86676E0", this.handle, this.attribute, amount);
  }
}
class PedAttribute {
  static {
    __name(this, "PedAttribute");
  }
  handle;
  attribute;
  constructor(ped, attribute) {
    this.handle = ped.Handle;
    this.attribute = attribute;
  }
  /**
   *
   * @param amount the amount of points to add to the attribute
   */
  addPoints(amount) {
    AddAttributePoints(this.handle, this.attribute, amount);
  }
  /**
   * Disables the overpower state on this attribute, see {@link enableOverpower} on how to enable
   */
  disableOverpower() {
    DisableAttributeOverpower(this.handle, this.attribute);
  }
  /**
   *
   * @param amount the amount to overpower this attribute by
   * @param makeSound if activating the overpower should play sound
   */
  enableOverpower(amount, makeSound = false) {
    _N("0xF6A7C08DF2E28B28", this.handle, this.attribute, amount, makeSound);
  }
  /**
   * Gets the amount of attribute points the ped has
   */
  get Points() {
    return GetAttributePoints(this.handle, this.attribute);
  }
  set Points(amount) {
    SetAttributePoints(this.handle, this.attribute, amount);
  }
  get Rank() {
    return GetAttributeRank(this.handle, this.attribute);
  }
  set BaseRank(amount) {
    SetAttributeBaseRank(this.handle, this.attribute, amount);
  }
  get BaseRank() {
    return GetAttributeBaseRank(this.handle, this.attribute);
  }
  set BonusRank(amount) {
    SetAttributeBonusRank(this.handle, this.attribute, amount);
  }
  get BonusRank() {
    return GetAttributeBonusRank(this.handle, this.attribute);
  }
  get MaxRank() {
    return _N("0x704674A0535A471D", this.attribute, Citizen.resultAsInteger());
  }
  get Overpowered() {
    return _N("0x103C2F885ABEB00B", this.attribute, Citizen.resultAsInteger());
  }
}
class Attributes {
  static {
    __name(this, "Attributes");
  }
  pedAttributes = [];
  coreAttributes = [];
  constructor(ped) {
    for (let i = 0; i <= 21; i++) {
      this.pedAttributes[i] = new PedAttribute(ped, i);
    }
    for (let i = 0; i <= 2; i++) {
      this.coreAttributes[i] = new CoreAttribute(ped, i);
    }
  }
  getCore(attribute) {
    if (attribute > 2) throw new RangeError("The max enum for CoreAttribute is 2");
    if (attribute < 0) throw new RangeError("The minimum enum for CoreAttribute is 0");
    return this.coreAttributes[attribute];
  }
  get(attribute) {
    if (attribute > 22) throw new RangeError("The max enum for PedAttribute is 22");
    if (attribute < 0) throw new RangeError("The minimum enum for PedAttribute is 0");
    return this.pedAttributes[attribute];
  }
  set CoreIcon(status) {
    if (status > 15) throw new RangeError("The max enum for StatusEffect is 15");
    if (status < 0) throw new RangeError("The minimum enum for StatusEffect is 0");
    _N("0xA4D3A1C008F250DF", status);
  }
  set PeriodicIcon(status) {
    if (status > 15) throw new RangeError("The max enum for StatusEffect is 15!");
    if (status < 0) throw new RangeError("The minimum enum for StatusEffect is 0");
    _N("0xFB6E111908502871", status);
  }
}
export {
  Attributes,
  CoreAttribute,
  PedAttribute
};