Пример #1
0
        protected MKey AddKey(string displayName, string key, List <KeyCode> keys)
        {
            MKey mKey = new MKey(displayName, key, keys[0]);

            foreach (KeyCode k in keys)
            {
                mKey.AddOrReplaceKey(keys.IndexOf(k), k);
            }

            myMapperTypes.Add(mKey);

            BlockPropertiseChangedEvent += () =>
            {
                keys.Clear();
                for (int i = 0; i < mKey.KeysCount; i++)
                {
                    keys.Add(mKey.GetKey(i));
                }
            };

            mKey.KeysChanged += () =>
            {
                keys.Clear();
                for (int i = 0; i < mKey.KeysCount; i++)
                {
                    keys.Add(mKey.GetKey(i));
                }
            };

            return(mKey);
        }
        public override void DisplayInMapper(bool value)
        {
            base.DisplayInMapper(value);

            var _value  = value && GuidedRocketToggle.IsActive;                                        //for guided rocket
            var _value1 = _value && SettingMenu.Value == 1;                                            //Radar setting
            var _value2 = _value1 && (RadarTypeMenu.Value == (int)RadarScript.RadarTypes.ActiveRadar); //for active radar
            var _value3 = _value && SettingMenu.Value == 0;                                            //Rocket setting guided
            var _value4 = (GuidedRocketToggle.IsActive ? _value3 : value);
            var _value5 = (Enhancement.IsActive ? _value4 : true);

            GuidedRocketToggle.DisplayInMapper = value;

            //Display when guided is ON
            SettingMenu.DisplayInMapper = _value;

            //Display when radar setting is selected
            SPTeamKey.DisplayInMapper     = _value1 && (!StatMaster.isMP || Playerlist.Players.Count == 1);
            RadarTypeMenu.DisplayInMapper = _value1;
            //PredictionSlider.DisplayInMapper = _value1;
            TorqueSlider.DisplayInMapper     = _value1;
            GuideDelaySlider.DisplayInMapper = _value1;

            //Display for active Radar only
            ManualOverrideKey.DisplayInMapper = _value2;
            ShowRadarToggle.DisplayInMapper   = _value2;
            ActiveGuideRocketSearchAngleSlider.DisplayInMapper = _value2;
            LockTargetKey.DisplayInMapper         = _value2;
            ShowPredictionToggle.DisplayInMapper  = _value2;
            ProjectileSpeedSlider.DisplayInMapper = _value2 && ShowPredictionToggle.IsActive;
            DragSlider.DisplayInMapper            = /*_value2 && ShowPredictionToggle.IsActive*/ false;

            //Display for rocket setting
            StabilityToggle.DisplayInMapper          = _value3;
            ImpactFuzeToggle.DisplayInMapper         = _value3;
            ProximityFuzeToggle.DisplayInMapper      = _value3;
            ProximityFuzeRangeSlider.DisplayInMapper = _value3 && ProximityFuzeToggle.IsActive;

            //Display for guided OFF & rocket setting when guided ON
            AutoEjectToggle.DisplayInMapper     = _value4 && GroupFireKey.GetKey(0) != KeyCode.None;
            GroupFireKey.DisplayInMapper        = _value4;
            GroupFireRateSlider.DisplayInMapper = _value4 && GroupFireKey.GetKey(0) != KeyCode.None;
            NoSmokeToggle.DisplayInMapper       = _value4;
            HighExploToggle.DisplayInMapper     = _value4;

            //Display for BE off & rocket setting when guided ON
            rocket.LaunchKey.DisplayInMapper    = _value5;
            rocket.DelaySlider.DisplayInMapper  = _value5;
            rocket.ChargeSlider.DisplayInMapper = _value5;
            rocket.PowerSlider.DisplayInMapper  = _value5;

            //Tried to hide colour slider, but failed.
            //try { rocket.ColourSlider.DisplayInMapper = _value5; }
            //catch (System.Exception) { }
        }
Пример #3
0
        public override MKey AddKey(MKey key)
        {
            key = base.AddKey(ExtendKey(key, key.GetKey(0)));
            var keyIdx = MapperTypes.IndexOf(key);

            return(key);
        }
Пример #4
0
 public IEnumerable <MappedKeyItem> GetMKeys(MKey key)
 {
     // Unified interface to get all Int codes from any Key and ExtKey
     if (key is MExtKey mk)
     {
         //for (int i = 0; i < key.KeysCount; ++i)
         //    yield return mk.ResolveKey(i);
         foreach (var k in mk.ResolveKeys())
         {
             yield return(k);
         }
     }
     else
     {
         if (key.useMessage)
         {
             for (int i = 0; i < key.message.Length; ++i)
             {
                 yield return(new MappedKeyItem(key.message[i]));
             }
         }
         else
         {
             for (int i = 0; i < key.KeysCount; ++i)
             {
                 yield return(new MappedKeyItem(key.GetKey(i)));
             }
         }
     }
 }
Пример #5
0
 public IEnumerable <uint> GetMKeys(MKey key)
 {
     // Unified interface to get all Int codes from any Key and ExtKey
     if (key is MExtKey mk)
     {
         for (int i = 0; i < key.KeysCount; ++i)
         {
             yield return(mk.ResolveKey(i));
         }
     }
     else
     {
         for (int i = 0; i < key.KeysCount; ++i)
         {
             yield return((uint)key.GetKey(i));
         }
     }
 }
Пример #6
0
        public bool IsNativeHeld(MKey key)
        {
            // If a key is pressed on hardware keyboard
            bool result = false;

            if (!key.Ignored)
            {
                for (int i = 0; i < key.KeysCount; i++)
                {
                    if (KeyInput.IsHeld(key.GetKey(i)))
                    {
                        result = true;
                        break;
                    }
                }
            }
            return(result);
        }
Пример #7
0
 public override MKey AddKey(MKey key)
 {
     key = base.AddKey(ExtendKey(key, key.GetKey(0)));
     return(key);
 }