public static IEnumerable <BlipHandle> GetAllBlips(BlipSprite type) { BlipHandle h = Call <BlipHandle>(GET_FIRST_BLIP_INFO_ID, type); while (Exists(h)) { yield return(h); h = Call <BlipHandle>(GET_NEXT_BLIP_INFO_ID, type); } }
public static BlipColor GetBlipColor(BlipHandle blip) => Call <BlipColor>(GET_BLIP_COLOUR, blip);
public static void Scale(BlipHandle blip, float value) => Call(SET_BLIP_SCALE, blip, value);
public static void Rotation(BlipHandle blip, int value) => Call(SET_BLIP_ROTATION, blip, value);
public static void Position(BlipHandle blip, Vector3 pos) => Call(SET_BLIP_COORDS, blip, pos);
public static Vector3 Position(BlipHandle blip) => Call <Vector3>(GET_BLIP_INFO_ID_COORD, blip);
public static EntHandle GetEntity(BlipHandle blip) => Call <EntHandle>(GET_BLIP_INFO_ID_ENTITY_INDEX, blip);
public static bool TryGetBlip(BlipSprite type, out BlipHandle blip) => (blip = GetAllBlips(type).FirstOrDefault()) != default;
public static void Alpha(BlipHandle blip, int value) => Call(SET_BLIP_ALPHA, blip, value);
public static int Alpha(BlipHandle blip) => Call <int>(GET_BLIP_ALPHA, blip);
public static void Name(BlipHandle blip, string value) { Call(BEGIN_TEXT_COMMAND_SET_BLIP_NAME, PinnedString.STRING); Call(ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME, value); Call(END_TEXT_COMMAND_SET_BLIP_NAME, blip); }
public static void Delete(BlipHandle blip) { unsafe { Call(REMOVE_BLIP, new IntPtr(&blip)); } }
public static void IsFlashing(BlipHandle blip, bool value) => Call(SET_BLIP_FLASHES, blip, value);
public static bool IsFlashing(BlipHandle blip) => Call <bool>(IS_BLIP_FLASHING, blip);
public static void ShowRoute(BlipHandle blip, bool value) => Call(SET_BLIP_ROUTE, blip, value);
public static Color GetColor(BlipHandle blip) => blip == BlipHandle.Invalid ? (default) : GetColor(GetBlipHUDColor(blip));
public static void Priority(BlipHandle blip, int value) => Call(SET_BLIP_PRIORITY, blip, value);
public static void Label(BlipHandle blip, int value) => Call(SHOW_NUMBER_ON_BLIP, blip, value);
public static bool TryGetBlip(BlipHUDColor color, out BlipHandle blip) => (blip = GetAllBlips(BlipSprite.Standard).Where(color).FirstOrDefault()) != default;
public static bool Exists(BlipHandle blip) => Call <bool>(DOES_BLIP_EXIST, blip);