예제 #1
0
    /// <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;
                    }
                }
            }
        }
    }
예제 #2
0
    /// <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);
    }