Exemple #1
0
        /// <summary>
        /// Hakee kaikki mäppäykset joihin tämä näppäin on mäpätty
        /// </summary>
        /// <param name="trigger">Minkä triggerin mäppäyksiä etitään</param>
        /// <returns>Listan nimistä joihin tämä näppäin on mäpätty, null jos ei ole mihinkään</returns>
        public List <String> GetMappingNames(ITrigger trigger)
        {
            List <string> names;

            MappingNames.TryGetValue(trigger.TriggerHash(), out names);
            return(names);
        }
Exemple #2
0
        /// <summary>
        /// Mäppää triggerin
        /// </summary>
        /// <param name="mappingName"></param>
        /// <param name="trigger"></param>
        private void MapTrigger(string mappingName, ITrigger trigger)
        {
            List <string> names = GetMappingNames(trigger);

            if (names == null)
            {
                names = new List <string>();
                MappingNames[trigger.TriggerHash()] = names;
            }

            if (!names.Contains(mappingName))
            {
                names.Add(mappingName);
            }
            else
            {
                throw new ArgumentException(
                          String.Format("Trying map {0} twice", mappingName)
                          );
            }
        }
Exemple #3
0
        /// <summary>
        /// Poistaa triggerin kaikki mäppäykset
        /// </summary>
        /// <param name="trigger">Minkä napin mäppäykset poistetaan</param>
        /// <returns>True jos poistettiin, false jos ei (ei ole mäppäyksiä)</returns>
        public bool ClearMappings(ITrigger trigger)
        {
            // jos ei ole mitään niin turha yrittää poistaakkaan
            if (!HasMappings(trigger))
            {
                return(false);
            }

            var names = GetMappingNames(trigger);

            foreach (var name in names)
            {
                Mappings[name].Triggers.Remove(trigger);
                // jos ei ole enää yhtään bindiä niin poistetaan koko mäppäys
                if (Mappings[name].Triggers.Count == 0)
                {
                    Mappings.Remove(name);
                }
            }
            // lopuksi poistetaan viittaukset
            MappingNames.Remove(trigger.TriggerHash());
            return(true);
        }
Exemple #4
0
 /// <summary>
 /// Tarkistaa onko triggeriä mäpätty mihinkään
 /// </summary>
 /// <param name="trigger"></param>
 /// <returns></returns>
 public bool HasMappings(ITrigger trigger)
 {
     return(MappingNames.ContainsKey(trigger.TriggerHash()));
 }