Esempio n. 1
0
 public override void OnSave(XDataHolder data)
 {
     base.OnSave(data);
     data.Write(Script.Serialize());
     foreach (var key in PIO.Values)
     {
         data.Write(key.Serialize());
     }
 }
 public override void SaveConfiguration(XDataHolder BlockData)
 {
     if (Machine.Active().GetComponent <TargetScript>().previousTargetDic.ContainsKey(selfIndex))
     {
         BlockData.Write("bmt-" + "CameraTarget", Machine.Active().GetComponent <TargetScript>().previousTargetDic[selfIndex]);
     }
 }
Esempio n. 3
0
        private void SaveConfiguration(MachineInfo Mi)
        {
            BesiegeConsoleController.ShowMessage("On save en");


            BesiegeConsoleController.ShowMessage((Mi == null).ToString());
            if (Mi == null)
            {
                return;
            }

            foreach (var blockinfo in Mi.Blocks)
            {
                if (blockinfo.Guid == BB.Guid)
                {
                    XDataHolder bd = blockinfo.BlockData;

                    try { BlockDataSaveEvent(bd); } catch { }

                    SaveConfiguration(bd);

                    bool flag = (!StatMaster.SavingXML ? false : OptionsMaster.BesiegeConfig.ExcludeDefaultSaveData);

                    foreach (MapperType item in myMapperTypes)
                    {
                        if (!flag)
                        {
                            bd.Write(item.Serialize());
                        }
                    }

                    break;
                }
            }
        }
Esempio n. 4
0
 public override void Apply(XDataHolder input)
 {
     input.Write(_defaultInput);
     foreach (var uiContainer in _containers)
     {
         if (_defaultInput.HasKey(uiContainer.Title))
         {
             uiContainer.Display =
                 _defaultInput.ReadBool(uiContainer.Title);
         }
     }
 }
Esempio n. 5
0
 public void UpdateDataAndUI(Plugin plugin, XDataHolder holder)
 {
     for (int i = 0; i < _plugins.Count; i++)
     {
         if (_plugins[i].Plugin != plugin)
         {
             continue;
         }
         holder.Write(_plugins[i].Input);
         var uiObjects = GetObjects(
             plugin,
             _plugins[i].Input,
             _plugins[i].ValueInfo
             );
         _plugins[i].UIContainer.UIObjects = uiObjects;
     }
 }
Esempio n. 6
0
        internal static void RegisterPlugin(PluginData pluginData)
        {
            if (
                pluginData.Plugin is DisplayManager ||
                _containers.Contains(pluginData.UIContainer)
                )
            {
                return;
            }
            _containers.Add(pluginData.UIContainer);
            _defaultInput.Write(
                pluginData.UIContainer.Title,
                pluginData.UIContainer.Display
                );

            if (_plugin != null)
            {
                PluginManager.Instance.UnRegister(_plugin);
                PluginManager.Instance.Register(_plugin);
            }
        }
Esempio n. 7
0
        private UIObject[] GetObjects(
            Plugin plugin,
            XDataHolder input,
            ValueInfo valueInfo
            )
        {
            ///Create UI elements for each input
            var uiObjects = new List <UIObject>();

            foreach (var data in input.ReadAll())
            {
                switch (data.Type)
                {
                case "Single":
                    uiObjects.Add(new UIObject(data.Key));
                    uiObjects.Add(
                        new UIObject(
                            data.RawValue,
                            null,
                            (single) =>
                    {
                        input.Write(data.Key, (float)single);
                        valueInfo.ValueChanged = true;
                    },
                            true
                            )
                        );
                    break;

                case "Integer":
                    uiObjects.Add(new UIObject(data.Key));
                    uiObjects.Add(
                        new UIObject(
                            (float)(int)data.RawValue,
                            null,
                            (single) =>
                    {
                        input.Write(data.Key, (int)(float)single);
                        valueInfo.ValueChanged = true;
                    },
                            true
                            )
                        );
                    break;

                case "Vector3":
                    void Put(object single, int i)
                    {
                        var v3 = input.ReadVector3(data.Key);

                        v3[i] = (float)single;
                        input.Write(data.Key, v3);
                        valueInfo.ValueChanged = true;
                    }

                    uiObjects.Add(new UIObject(data.Key));
                    uiObjects.Add(
                        new UIObject(
                            ((Vector3)data.RawValue).x,
                            null,
                            f => Put(f, 0)
                            )
                        );
                    uiObjects.Add(
                        new UIObject(
                            ((Vector3)data.RawValue).y,
                            null,
                            f => Put(f, 1)
                            )
                        );
                    uiObjects.Add(
                        new UIObject(
                            ((Vector3)data.RawValue).z,
                            null,
                            f => Put(f, 2),
                            true
                            )
                        );
                    break;

                case "Boolean":
                    uiObjects.Add(new UIObject(data.Key));
                    uiObjects.Add(
                        new UIObject(
                            data.RawValue,
                            null,
                            (boolean) =>
                    {
                        input.Write(data.Key, (bool)boolean);
                        valueInfo.ValueChanged = true;
                    },
                            true
                            )
                        );
                    break;
                }
            }

            if (uiObjects.Count > 0)
            {
                var lastObj = uiObjects[uiObjects.Count - 1];
                lastObj.NewLine = true;
                uiObjects[uiObjects.Count - 1] = lastObj;
            }

            ///Create global UI elements
            ApplyRule applyRule =
                (ApplyRule)((int)plugin.ApplyRule % (int)ApplyRule.NoEnable);


            if (applyRule == ApplyRule.OnApply)
            {
                uiObjects.Add(
                    new UIObject(
                        null,
                        "Apply",
                        (b) =>
                {
                    valueInfo.WasApplied |=
                        b is bool?(bool)b: false;
                }
                        )
                    );
            }

            if ((plugin.ApplyRule & ApplyRule.NoEnable) == ApplyRule.Disabled)
            {
                uiObjects.Add(
                    new UIObject(
                        "Enabled:"
                        )
                    );
                uiObjects.Add(
                    new UIObject(
                        plugin.Enabled,
                        null,
                        (b) =>
                {
                    plugin.Enabled = b is bool
                                     ?(bool)b
                                     : plugin.Enabled;
                    valueInfo.ValueChanged = true;
                    valueInfo.WasApplied   = true;
                },
                        true
                        )
                    );
            }

            return(uiObjects.ToArray());
        }
 public void Add(string key, object data)
 {
     _xDataHolder.Write(key, data);
 }
        public static Configuration FormatXDataToConfig(Configuration config = null)
        {
            XDataHolder xDataHolder = Modding.Configuration.GetData();
            bool        reWrite     = true;
            bool        needWrite   = false;

            if (config == null)
            {
                reWrite   = false;
                needWrite = true;
                config    = new Configuration();
            }

            for (int i = 0; i < Propertises.Count; i++)
            {
                var value = Propertises[i];

                if (value is Propertise <int> )
                {
                    value = getValue(value as Propertise <int>);
                }
                else if (value is Propertise <bool> )
                {
                    value = getValue(value as Propertise <bool>);
                }
                else if (value is Propertise <float> )
                {
                    value = getValue(value as Propertise <float>);
                }
                else if (value is Propertise <string> )
                {
                    value = getValue(value as Propertise <string>);
                }
                else if (value is Propertise <Vector3> )
                {
                    value = getValue(value as Propertise <Vector3>);
                }
                Propertises[i] = value;
            }

            if (needWrite)
            {
                Modding.Configuration.Save();
            }

            return(config);

            Propertise <T> getValue <T>(Propertise <T> propertise)
            {
                var key          = propertise.Key;
                var defaultValue = propertise.Value;

                if (xDataHolder.HasKey(key) && !reWrite)
                {
                    defaultValue = (T)Convert.ChangeType(typeSpecialAction[typeof(T)](xDataHolder, key), typeof(T));
                }
                else
                {
                    xDataHolder.Write(key, defaultValue);
                    needWrite = true;
                }

                return(new Propertise <T>(key, defaultValue));
            }
        }
Esempio n. 10
0
        public override void OnSave(XDataHolder stream)
        {
            SaveMapperValues(stream);

            stream.Write("bmt-automatron-actions", SerializeActions());
        }