"use strict";

// src/utils/getWeaponNameFromHash.ts
var WEAPON_HASHES = {
  "100416529": "Sniper Rifle",
  "101631238": "Fire Extinguisher",
  "125959754": "Compact Grenade Launcher",
  "126349499": "Snowball",
  "137902532": "Vintage Pistol",
  "171789620": "Combat PDW",
  "177293209": "Heavy Sniper Mk II",
  "205991906": "Heavy Sniper",
  "317205821": "Sweeper Shotgun",
  "324215364": "Micro SMG",
  "419712736": "Pipe Wrench",
  "453432689": "Pistol",
  "487013001": "Pump Shotgun",
  "584646201": "AP Pistol",
  "600439132": "Ball",
  "615608432": "Molotov",
  "736523883": "SMG",
  "741814745": "Sticky Bomb",
  "883325847": "Jerry Can",
  "911657153": "Stun Gun",
  "940833800": "Stone Hatchet",
  "961495388": "Assault Rifle Mk II",
  "984333226": "Heavy Shotgun",
  "1119849093": "Minigun",
  "1141786504": "Golf Club",
  "1198256469": "Unholy Hellbringer",
  "1198879012": "Flare Gun",
  "1233104067": "Flare",
  "1317494643": "Hammer",
  "1432025498": "Pump Shotgun Mk II",
  "1593441988": "Combat Pistol",
  "1627465347": "Gusenberg Sweeper",
  "1649403952": "Compact Rifle",
  "1672152130": "Homing Launcher",
  "1737195953": "Nightstick",
  "1785463520": "Marksman Rifle Mk II",
  "1834241177": "Railgun",
  "2017895192": "Sawed-Off Shotgun",
  "2024373456": "SMG Mk II",
  "2132975508": "Bullpup Rifle",
  "2138347493": "Firework Launcher",
  "2144741730": "Combat MG",
  "2210333304": "Carbine Rifle",
  "2227010557": "Crowbar",
  "2228681469": "Bullpup Rifle Mk II",
  "2285322324": "SNS Pistol Mk II",
  "2343591895": "Flashlight",
  "2460120199": "Antique Cavalry Dagger",
  "2481070269": "Grenade",
  "2484171525": "Pool Cue",
  "2508868239": "Baseball Bat",
  "2526821735": "Special Carbine Mk II",
  "2548703416": "Double-Action Revolver",
  "2578377531": "Pistol .50",
  "2578778090": "Knife",
  "2634544996": "MG",
  "2640438543": "Bullpup Shotgun",
  "2694266206": "BZ Gas",
  "2726580491": "Grenade Launcher",
  "2828843422": "Musket",
  "2874559379": "Proximity Mine",
  "2937143193": "Advanced Rifle",
  "2939590305": "Up-n-Atomizer",
  "2982836145": "RPG",
  "3056410471": "Widowmaker",
  "3125143736": "Pipe Bomb",
  "3173288789": "Mini SMG",
  "3218215474": "SNS Pistol",
  "3219281620": "Pistol Mk II",
  "3220176749": "Assault Rifle",
  "3231910285": "Special Carbine",
  "3520460075": "Service Rifle",
  "3249783761": "Heavy Revolver",
  "3342088282": "Marksman Rifle",
  "3415619887": "Heavy Revolver Mk II",
  "3441901897": "Battle Axe",
  "3523564046": "Heavy Pistol",
  "3638508604": "Knuckle Duster",
  "3675956304": "Machine Pistol",
  "3686625920": "Combat MG Mk II",
  "3696079510": "Marksman Pistol",
  "3713923289": "Machete",
  "3756226112": "Switchblade",
  "3800352039": "Assault Shotgun",
  "4019527611": "Double Barrel Shotgun",
  "4024951519": "Assault SMG",
  "4191993645": "Hatchet",
  "4192643659": "Bottle",
  "4208062921": "Carbine Rifle Mk II",
  "4256991824": "Tear Gas"
};
function getWeaponNameFromHash(hash) {
  const name = WEAPON_HASHES[hash.toString(10)];
  if (name) {
    return name;
  }
  return null;
}

// src/utils/getWeapon.ts
function getWeapon(pedId) {
  const weaponHash = GetSelectedPedWeapon(pedId);
  const hash = getWeaponNameFromHash(weaponHash);
  return hash;
}

// src/utils/getArea.ts
var areaHashes = {
  "2072609373": "Blaine County",
  "-289320599": "Los Santos"
};
function getArea(position) {
  const areaHash = GetHashOfMapAreaAtCoords(...position);
  return areaHashes[areaHash];
}

// src/utils/getZone.ts
var areaHashes2 = {
  [GetHashKey("AIRP")]: "Los Santos International Airport",
  [GetHashKey("ALAMO")]: "Alamo Sea",
  [GetHashKey("ALTA")]: "Alta",
  [GetHashKey("ARMYB")]: "Fort Zancudo",
  [GetHashKey("BANHAMC")]: "Banham Canyon Dr",
  [GetHashKey("BANNING")]: "Banning",
  [GetHashKey("BEACH")]: "Vespucci Beach",
  [GetHashKey("BHAMCA")]: "Banham Canyon",
  [GetHashKey("BRADP")]: "Braddock Pass",
  [GetHashKey("BRADT")]: "Braddock Tunnel",
  [GetHashKey("BURTON")]: "Burton",
  [GetHashKey("CALAFB")]: "Calafia Bridge",
  [GetHashKey("CANNY")]: "Raton Canyon",
  [GetHashKey("CCREAK")]: "Cassidy Creek",
  [GetHashKey("CHAMH")]: "Chamberlain Hills",
  [GetHashKey("CHIL")]: "Vinewood Hills",
  [GetHashKey("CHU")]: "Chumash",
  [GetHashKey("CMSW")]: "Chiliad Mountain State Wilderness",
  [GetHashKey("CYPRE")]: "Cypress Flats",
  [GetHashKey("DAVIS")]: "Davis",
  [GetHashKey("DELBE")]: "Del Perro Beach",
  [GetHashKey("DELPE")]: "Del Perro",
  [GetHashKey("DELSOL")]: "La Puerta",
  [GetHashKey("DESRT")]: "Grand Senora Desert",
  [GetHashKey("DOWNT")]: "Downtown",
  [GetHashKey("DTVINE")]: "Downtown Vinewood",
  [GetHashKey("EAST_V")]: "East Vinewood",
  [GetHashKey("EBURO")]: "El Burro Heights",
  [GetHashKey("ELGORL")]: "El Gordo Lighthouse",
  [GetHashKey("ELYSIAN")]: "Elysian Island",
  [GetHashKey("GALFISH")]: "Galilee",
  [GetHashKey("GOLF")]: "GWC and Golfing Society",
  [GetHashKey("GRAPES")]: "Grapeseed",
  [GetHashKey("GREATC")]: "Great Chaparral",
  [GetHashKey("HARMO")]: "Harmony",
  [GetHashKey("HAWICK")]: "Hawick",
  [GetHashKey("HORS")]: "Vinewood Racetrack",
  [GetHashKey("HUMLAB")]: "Humane Labs and Research",
  [GetHashKey("JAIL")]: "Bolingbroke Penitentiary",
  [GetHashKey("KOREAT")]: "Little Seoul",
  [GetHashKey("LACT")]: "Land Act Reservoir",
  [GetHashKey("LAGO")]: "Lago Zancudo",
  [GetHashKey("LDAM")]: "Land Act Dam",
  [GetHashKey("LEGSQU")]: "Legion Square",
  [GetHashKey("LMESA")]: "La Mesa",
  [GetHashKey("LOSPUER")]: "La Puerta",
  [GetHashKey("MIRR")]: "Mirror Park",
  [GetHashKey("MORN")]: "Morningwood",
  [GetHashKey("MOVIE")]: "Richards Majestic",
  [GetHashKey("MTCHIL")]: "Mount Chiliad",
  [GetHashKey("MTGORDO")]: "Mount Gordo",
  [GetHashKey("MTJOSE")]: "Mount Josiah",
  [GetHashKey("MURRI")]: "Murrieta Heights",
  [GetHashKey("NCHU")]: "North Chumash",
  [GetHashKey("NOOSE")]: "N.O.O.S.E",
  [GetHashKey("OCEANA")]: "Pacific Ocean",
  [GetHashKey("PALCOV")]: "Paleto Cove",
  [GetHashKey("PALETO")]: "Paleto Bay",
  [GetHashKey("PALFOR")]: "Paleto Forest",
  [GetHashKey("PALHIGH")]: "Palomino Highlands",
  [GetHashKey("PALMPOW")]: "Palmer-Taylor Power Station",
  [GetHashKey("PBLUFF")]: "Pacific Bluffs",
  [GetHashKey("PBOX")]: "Pillbox Hill",
  [GetHashKey("PROCOB")]: "Procopio Beach",
  [GetHashKey("RANCHO")]: "Rancho",
  [GetHashKey("RGLEN")]: "Richman Glen",
  [GetHashKey("RICHM")]: "Richman",
  [GetHashKey("ROCKF")]: "Rockford Hills",
  [GetHashKey("RTRAK")]: "Redwood Lights Track",
  [GetHashKey("SANAND")]: "San Andreas",
  [GetHashKey("SANCHIA")]: "San Chianski Mountain Range",
  [GetHashKey("SANDY")]: "Sandy Shores",
  [GetHashKey("SKID")]: "Mission Row",
  [GetHashKey("SLAB")]: "Stab City",
  [GetHashKey("STAD")]: "Maze Bank Arena",
  [GetHashKey("STRAW")]: "Strawberry",
  [GetHashKey("TATAMO")]: "Tataviam Mountains",
  [GetHashKey("TERMINA")]: "Terminal",
  [GetHashKey("TEXTI")]: "Textile City",
  [GetHashKey("TONGVAH")]: "Tongva Hills",
  [GetHashKey("TONGVAV")]: "Tongva Valley",
  [GetHashKey("VCANA")]: "Vespucci Canals",
  [GetHashKey("VESP")]: "Vespucci",
  [GetHashKey("VINE")]: "Vinewood",
  [GetHashKey("WINDF")]: "Ron Alternates Wind Farm",
  [GetHashKey("WVINE")]: "West Vinewood",
  [GetHashKey("ZANCUDO")]: "Zancudo River",
  [GetHashKey("ZP_ORT")]: "Port of South Los Santos",
  [GetHashKey("ZQ_UAR")]: "Davis Quartz"
};
function getZone(position) {
  const areaHash = GetHashKey(GetNameOfZone(...position));
  return areaHashes2[areaHash];
}

// src/utils/getLocation.ts
function getLocation(pos) {
  const [lastStreet] = GetStreetNameAtCoord(...pos);
  const streetName = GetStreetNameFromHashKey(lastStreet);
  const zone = getZone(pos);
  const area = getArea(pos);
  const location = `${streetName}, ${zone} (${area})`;
  return location;
}

// src/utils/getVehicle.ts
function getVehicle(pedId) {
  const vehicle = GetVehiclePedIsIn(pedId, false);
  if (vehicle === 0) {
    return {};
  }
  const licensePlate = GetVehicleNumberPlateText(vehicle);
  const hasSirenEnabled = isSirenEnabled(vehicle);
  let vehicleName = GetLabelText(GetDisplayNameFromVehicleModel(GetEntityModel(vehicle)));
  if (vehicleName === "NULL") {
    vehicleName = GetDisplayNameFromVehicleModel(GetEntityModel(vehicle));
  }
  return { licensePlate, vehicle: vehicleName, hasSirenEnabled };
}
function isSirenEnabled(vehicle) {
  const sirenEnabledValue = IsVehicleSirenOn(vehicle) || IsVehicleSirenAudioOn(vehicle) || IsVehicleSirenSoundOn(vehicle);
  if (typeof sirenEnabledValue === "number") {
    return sirenEnabledValue === 1;
  }
  return sirenEnabledValue;
}

// src/utils/getIcon.ts
function getIcon(pedId) {
  if (!IsPedInAnyVehicle(pedId, false))
    return 6;
  const vehicle = GetVehiclePedIsIn(pedId, false);
  if (vehicle === 0) {
    return 6;
  }
  const vehicleModel = GetEntityModel(vehicle);
  if (isPoliceVehicle(vehicle))
    return 56;
  if (isTowTruck(vehicleModel))
    return 68;
  if (IsThisModelAHeli(vehicleModel))
    return 64;
  return 225;
}
function isPoliceVehicle(vehicle) {
  const vehicleClass = GetVehicleClass(vehicle);
  return vehicleClass === 18;
}
function isTowTruck(vehicleModel) {
  const hashes = [GetHashKey("towtruck"), GetHashKey("towtruck2")];
  return hashes.includes(vehicleModel);
}

// integration/client/client.ts
var firstSpawn = true;
onNet("playerDropped" /* CFXPlayerDropped */, () => {
  if (firstSpawn) {
    emitPlayerData();
    firstSpawn = false;
  }
});
setInterval(() => {
  emitPlayerData();
}, 500);
function emitPlayerData() {
  const [playerX, playerY, playerZ] = GetEntityCoords(PlayerPedId(), false);
  const vehicle = getVehicle(PlayerPedId());
  const weapon = getWeapon(PlayerPedId());
  const location = getLocation([playerX, playerY, playerZ]);
  const icon = getIcon(PlayerPedId());
  emitNet("sna-live-map-player-spawned" /* PlayerSpawned */, {
    playerId: PlayerPedId(),
    name: GetPlayerName(PlayerId()),
    location,
    pos: { x: playerX, y: playerY, z: playerZ },
    weapon,
    icon,
    ...vehicle
  });
}
onNet("smartmotorways:syncSignsClient", (signId) => {
  emitNet("sna-live-map-sign-smart-motorways" /* SyncSmartMotorwaysSigns */, signId);
});