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]); } }
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; } } }
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); } } }
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; } }
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); } }
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)); } }
public override void OnSave(XDataHolder stream) { SaveMapperValues(stream); stream.Write("bmt-automatron-actions", SerializeActions()); }