/// <summary> /// Sets up all correctly configured PlayerPed /// </summary> private void SetupPlayerPeds() { foreach (UserIndex player in userIndices) { if (bool.Parse(PlayerSettings.GetValue(player, EnabledKey, false.ToString()))) { string guid = PlayerSettings.GetValue(player, ControllerKey, ""); foreach (InputManager input in InputManager.GetAvailableInputManagers()) { if (input.DeviceGuid.Equals(guid)) { InputManager manager = input; if (input is DirectInputManager) { manager = DirectInputManager.LoadConfig(((DirectInputManager)input).device, GetIniFile()); } PedHash characterHash = PlayerSettings.GetEnumValue <PedHash>(player, CharacterHashKey, PedHash.Trevor.ToString()); BlipSprite blipSprite = PlayerSettings.GetEnumValue <BlipSprite>(player, BlipSpriteKey, BlipSprite.Standard.ToString()); BlipColor blipColor = PlayerSettings.GetEnumValue <BlipColor>(player, BlipColorKey, BlipColor.Green.ToString()); PlayerPed playerPed = new PlayerPed(player, characterHash, blipSprite, blipColor, player1, manager); playerPeds.Add(playerPed); break; } } } } }
/// <summary> /// Constructs a new UIMenuListItem with automatic handling of selected value /// </summary> /// <typeparam name="TEnum">The type of the enum</typeparam> /// <param name="player">The </param> /// <param name="text">The menu item text</param> /// <param name="description">The menu item description</param> /// <param name="settingsKey">The settings key</param> /// <param name="defaultValue">The initial selected value</param> /// <returns>A fully working UIMenuListItem with automatic saving</returns> private UIMenuListItem ConstructSettingsListItem <TEnum>(UserIndex player, string text, string description, string settingsKey, TEnum defaultValue) { List <dynamic> items = GetDynamicEnumList <TEnum>(); TEnum value = PlayerSettings.GetEnumValue <TEnum>(player, settingsKey, defaultValue.ToString()); UIMenuListItem menuItem = new UIMenuListItem(text, items, items.IndexOf(value.ToString()), description); menuItem.OnListChanged += (s, i) => { if (s.Enabled) { TEnum selectedItem = Enum.Parse(typeof(TEnum), s.IndexToItem(s.Index)); PlayerSettings.SetValue(player, settingsKey, selectedItem.ToString()); } }; return(menuItem); }