/// <summary>
        /// Populates the component with the settings defined in the ASL script.
        /// </summary>
        /// 
        public void SetASLSettings(ASLSettings settings)
        {
            this.treeCustomSettings.BeginUpdate();
            this.treeCustomSettings.Nodes.Clear();

            var values = new Dictionary<string, bool>();

            // Store temporary for easier lookup of parent nodes
            var flat = new Dictionary<string, TreeNode>();

            foreach (ASLSetting setting in settings.OrderedSettings)
            {
                var node = new TreeNode(setting.Label) {
                    Tag = setting,
                    Checked = setting.Value
                };

                if (setting.Parent == null)
                {
                    this.treeCustomSettings.Nodes.Add(node);
                }
                else if (flat.ContainsKey(setting.Parent))
                {
                    flat[setting.Parent].Nodes.Add(node);
                    flat[setting.Parent].ContextMenuStrip = this.treeContextMenu;
                }

                flat.Add(setting.Id, node);
                values.Add(setting.Id, setting.Value);
            }

            // Gray out deactivated nodes after all have been added
            foreach (var item in flat) {
                if (!item.Value.Checked)
                {
                    UpdateGrayedOut(item.Value);
                }
            }

            _default_values = values;

            // Update from saved state (from XML or stored between script reloads)
            UpdateNodeCheckedState(_custom_settings_state);

            treeCustomSettings.ExpandAll();
            treeCustomSettings.EndUpdate();

            UpdateCustomSettingsVisibility();
            InitBasicSettings(settings);
        }
        public ASLScript(Methods methods, Dictionary<string, List<ASLState>> states)
        {
            _methods = methods;
            _states = states;

            _settings = new ASLSettings();
            _vars = new ExpandoObject();

            if (!_methods.start.IsEmpty)
                _settings.AddBasicSetting("start");
            if (!_methods.split.IsEmpty)
                _settings.AddBasicSetting("split");
            if (!_methods.reset.IsEmpty)
                _settings.AddBasicSetting("reset");

            _uses_game_time = !_methods.isLoading.IsEmpty || !_methods.gameTime.IsEmpty;
        }
Example #3
0
        public ASLScript(Methods methods, Dictionary <string, List <ASLState> > states)
        {
            _methods = methods;
            _states  = states;

            _settings = new ASLSettings();
            Vars      = new ExpandoObject();

            if (!_methods.start.IsEmpty)
            {
                _settings.AddBasicSetting("start");
            }
            if (!_methods.split.IsEmpty)
            {
                _settings.AddBasicSetting("split");
            }
            if (!_methods.reset.IsEmpty)
            {
                _settings.AddBasicSetting("reset");
            }

            _uses_game_time = !_methods.isLoading.IsEmpty || !_methods.gameTime.IsEmpty;
        }
 public ASLSettingsReader(ASLSettings s)
 {
     _s = s;
 }
 public ASLSettingsBuilder(ASLSettings s)
 {
     _s = s;
 }
Example #6
0
 public ASLSettingsReader(ASLSettings s)
 {
     _s = s;
 }
Example #7
0
 public ASLSettingsBuilder(ASLSettings s)
 {
     _s = s;
 }
        private void InitBasicSettings(ASLSettings settings)
        {
            foreach (var item in _basic_settings)
            {
                string name = item.Key.ToLower();
                CheckBox checkbox = item.Value;

                if (settings.IsBasicSettingPresent(name))
                {
                    ASLSetting setting = settings.BasicSettings[name];
                    checkbox.Enabled = true;
                    checkbox.Tag = setting;
                    var value = true;

                    if (_basic_settings_state.ContainsKey(name))
                        value = _basic_settings_state[name];

                    checkbox.Checked = value;
                    setting.Value = value;
                }
                else
                {
                    checkbox.Tag = null;
                    checkbox.Enabled = false;
                    checkbox.Checked = false;
                }
            }
        }