public static void LoadSettings()
        {
            ConfigNode fileNode = ConfigNode.Load(BDArmorySettings.settingsConfigURL);

            if (!fileNode.HasNode("BDAInputSettings"))
            {
                fileNode.AddNode("BDAInputSettings");
            }

            ConfigNode cfg = fileNode.GetNode("BDAInputSettings");

            FieldInfo[] fields = typeof(BDInputSettingsFields).GetFields();
            for (int i = 0; i < fields.Length; i++)
            {
                string fieldName = fields[i].Name;
                if (!cfg.HasValue(fieldName))
                {
                    continue;
                }
                BDInputInfo orig   = (BDInputInfo)fields[i].GetValue(null);
                BDInputInfo loaded = new BDInputInfo(cfg.GetValue(fieldName), orig.description);
                fields[i].SetValue(null, loaded);
            }

            fileNode.Save(BDArmorySettings.settingsConfigURL);
        }
        public static void LoadSettings(ConfigNode fileNode)
        {
            if(!fileNode.HasNode("BDAInputSettings"))
            {
                fileNode.AddNode("BDAInputSettings");
            }

            ConfigNode cfg = fileNode.GetNode("BDAInputSettings");

            FieldInfo[] fields = typeof(BDInputSettingsFields).GetFields();
            for(int i = 0; i < fields.Length; i++)
            {
                string fieldName = fields[i].Name;
                if(cfg.HasValue(fieldName))
                {
                    BDInputInfo orig = (BDInputInfo)fields[i].GetValue(null);
                    BDInputInfo loaded = new BDInputInfo(cfg.GetValue(fieldName), orig.description);
                    fields[i].SetValue(null, loaded);
                }
            }
        }
Exemple #3
0
 public static bool GetKeyDown(BDInputInfo input)
 {
     return(input.inputString != string.Empty && Input.GetKeyDown(input.inputString));
 }
Exemple #4
0
		public static bool GetKeyDown(BDInputInfo input)
		{
			return input.inputString != string.Empty && Input.GetKeyDown(input.inputString);
		}
        void InputSettingsLine(string fieldName, int id, ref float line)
        {
            GUI.Box(SLineRect(line), GUIContent.none);
            string label = string.Empty;
            if(BDKeyBinder.IsRecordingID(id))
            {
                string recordedInput;
                if(BDKeyBinder.current.AcquireInputString(out recordedInput))
                {
                    BDInputInfo orig = (BDInputInfo)typeof(BDInputSettingsFields).GetField(fieldName).GetValue(null);
                    BDInputInfo recorded = new BDInputInfo(recordedInput, orig.description);
                    typeof(BDInputSettingsFields).GetField(fieldName).SetValue(null, recorded);
                }

                label = "      Press a key or button.";
            }
            else
            {
                BDInputInfo inputInfo = new BDInputInfo();
                try
                {
                    inputInfo = (BDInputInfo)typeof(BDInputSettingsFields).GetField(fieldName).GetValue(null);

                }
                catch(NullReferenceException)
                {
                    Debug.Log("Reflection failed to find input info of field: " + fieldName);
                    editKeys = false;
                    return;
                }
                label = " "+inputInfo.description+" : "+inputInfo.inputString;

                if(GUI.Button(SSetKeyRect(line), "Set Key"))
                {
                    BDKeyBinder.BindKey(id);
                }
                if(GUI.Button(SClearKeyRect(line), "Clear"))
                {
                    typeof(BDInputSettingsFields).GetField(fieldName).SetValue(null, new BDInputInfo(inputInfo.description));
                }
            }
            GUI.Label(SLeftRect(line), label);
            line++;
        }