public void RestoreSaveData(ISaveData state) //receive SaveData class and set variables { var saveData = (TestEntitySaveData)state; health = saveData.health; transform.position = new Vector2(saveData.x, saveData.y); }
private static Dictionary <UInt64, T> GetProperty <T>(ISaveData obj, string name) { var type = ((TypeDataAttribute)obj.GetType().GetCustomAttributes(typeof(TypeDataAttribute), false)[0]).Type; IBase @base = null; switch (type) { case FileTypes.Level: @base = SaveLevelData; break; case FileTypes.User: @base = SaveUserData; break; } var typebase = @base.GetType(); var property = typebase.GetProperty(name); if (property == null) { throw new Exception("Отсутвует поле сохранения"); } Dictionary <UInt64, T> pairs = (Dictionary <UInt64, T>)property.GetValue(@base); return(pairs); }
public LiteNetManagerServer(Server server, ISaveData worldData) { if (server?.ActiveConfig == null || worldData == null) { throw new ArgumentNullException(); } m_Config = server.ActiveConfig; if (m_Config.WanAddress == null && m_Config.LanAddress == null) { throw new InvalidServerConfiguration( $"Invalid server configuration {m_Server}. Unable to attach NetAdapter."); } m_Server = server; if (m_Config.WanAddress != null) { m_wanManager = CreateNetManager(worldData); } if (m_Config.LanAddress != null) { m_lanManager = CreateNetManager(worldData); } m_SinceLastDiscovery = TimeSpan.Zero; m_SinceLastKeepAlive = TimeSpan.Zero; }
private NetManager CreateNetManager(ISaveData worldData) { return(new NetManager(new LiteNetListenerServer(m_Server, worldData)) { DisconnectTimeout = (int)m_Config.DisconnectTimeout.TotalMilliseconds }); }
public RabbitMQMessageQueueClient(ISaveData saveData, string connectString, string queueName, ILogger logger) { _saveData = saveData; _connectString = connectString; _queueName = queueName; _logger = logger; }
public static void SaveData(ISaveData saveData) { var saveBckpPath = SaveFile + Guid.NewGuid() + ".bckp"; try { Directory.CreateDirectory(SaveFolder); if (File.Exists(SaveFile)) { File.Move(SaveFile, saveBckpPath); } var binaryFormatter = new BinaryFormatter(); using (var fileStream = new FileStream(SaveFile, FileMode.Create, FileAccess.Write, FileShare.Read)) binaryFormatter.Serialize(fileStream, saveData); File.Delete(saveBckpPath); } catch (Exception) { if (File.Exists(saveBckpPath)) { File.Move(saveBckpPath, SaveFile); } } }
public NATSMessageQueueClient(ISaveData saveData, string connectString, string queueName, ILogger logger) { _logger = logger; _saveData = saveData; _connectionString = connectString; _queueName = queueName; }
public Monitor() { try { InitializeComponent(); Factory objFactory = new Factory(); _exceptionHandler = objFactory.GetExceptionHandler(); _saveData = objFactory.GetSaveData(); _dataStore = objFactory.GetDataStore(); _materialSkinManager = MaterialSkinManager.Instance; _materialSkinManager.AddFormToManage(this); _materialSkinManager.Theme = MaterialSkinManager.Themes.LIGHT; _csLight = _materialSkinManager.ColorScheme; _csDark = new ColorScheme(Primary.BlueGrey800, Primary.BlueGrey900, Primary.BlueGrey500, Accent.LightBlue200, TextShade.WHITE); notifyIcon.ContextMenuStrip = cmMenu; _objfgHook = new FGHook(_dataStore); _dataStore.PropertyChanged += _objDataStore_PropertyChanged; _3SecTimer.Interval = 3000; _3SecTimer.AutoReset = false; _3SecTimer.Elapsed += ClearMessageTimer_Elapsed; AppStatus = Constants.Running; } catch (Exception ex) { DisposeHook(); _exceptionHandler.HandleException(ex); } }
public static void SetValue <T>(ISaveData obj, T value, [CallerMemberName] string name = "") { var pairs = GetProperty <T>(obj, name); pairs[obj.ID] = value; Save(); }
public ConsumerHostServices(IConfiguration configuration, ISaveData saveData, IHostApplicationLifetime appLifetime, ILogger <ConsumerHostServices> logger) { _logger = logger; _appLifetime = appLifetime; IFactoryClient factory = new FactoryClient(configuration, saveData, _logger); _client = factory.CreateMessageQueue(configuration["MessageQueue:Type"]); }
public SaveDataException( ISaveData saveData, Exception innerException ) : base( GetMessage(saveData), innerException ) { }
public override void Save (ISaveData data) { for (int axis = 0; axis < 4; axis++) { data ["P8_" + axis] = P8 [axis]; data ["I8_" + axis] = I8 [axis]; data ["D8_" + axis] = D8 [axis]; } base.Save (data); }
public void Save(ISaveData data) { for (int axis = 0; axis < 4; axis++) { data ["EXP_" + axis] = exp [axis]; data ["MIN_" + axis] = min [axis]; data ["MAX_" + axis] = max [axis]; } }
public SaveDataException( ISaveData saveData, string message, Exception innerException ) : base( GetMessage(saveData, message), innerException ) { }
public static void ClearAll() { AssemblyInspector = null; Connection = null; DataPopulation = null; DataType = null; DataSave = null; ObjectProperties = null; ClassProperties = null; }
public static void SaveFrom(ISaveData instance) { if (instance != null) { if (!Directory.Exists(_folder)) { Directory.CreateDirectory(_folder); } var fileName = AddOrChangeFileName(instance.SaveTag()); File.WriteAllBytes(GetPath(fileName), AESUtils.AESEncrypt(instance.SaveAsJson())); } }
public override void LoadSaved (ISaveData data) { base.LoadSaved (data); for (int n = 0; n < 4; n ++) { if (data.HasKey ("P8_" + n)) P8 [n] = data.GetValue <byte> ("P8_" + n); if (data.HasKey ("I8_" + n)) I8 [n] = data.GetValue <byte> ("I8_" + n); if (data.HasKey ("D8_" + n)) D8 [n] = data.GetValue <byte> ("D8_" + n); } }
public override void Save (ISaveData data) { for (int axis = 0; axis < 4; axis++) { data ["P8_" + axis] = P8 [axis]; data ["I8_" + axis] = I8 [axis]; data ["D8_" + axis] = D8 [axis]; } data ["rates_" + Constants.YAW] = rates [Constants.YAW]; base.Save (data); }
public override void Save (ISaveData data) { for (int axis = 0; axis < 4; axis++) { data ["P8_" + axis] = P8 [axis]; data ["I8_" + axis] = I8 [axis]; data ["D8_" + axis] = D8 [axis]; } for (int n = 0; n < 3; n ++) { data ["rates_" + n] = rates [n]; } base.Save (data); }
public static T GetValue <T>(ISaveData obj, T defaultvalue, [CallerMemberName] string name = "") { var pairs = GetProperty <T>(obj, name); if (pairs.ContainsKey(obj.ID)) { return(pairs[obj.ID]); } else { return(defaultvalue); } }
// 指定特定存档对象,将其替代原有对象(如果有的话),并从文件读取到这个对象 public static void LoadTo(ISaveData instance) { var saveTag = instance.SaveTag(); if (_fileNames.ContainsKey(saveTag)) { var path = GetPath(_fileNames[saveTag]); if (File.Exists(path)) { instance.LoadFromJson(AESUtils.AESDecrypt(File.ReadAllBytes(path))); } } }
public override void Save (ISaveData data) { for (int n = 0; n < 3; n ++) { data ["P_f_" + n] = P_f [n]; data ["I_f_" + n] = I_f [n]; data ["D_f_" + n] = D_f [n]; data ["rates_" + n] = rates [n]; } data ["rates_3"] = H_sensitivity; data ["force_0"] = H_level; data ["force_1"] = A_level; base.Save (data); }
public static void Save(Type type) { ISaveData instance = null; for (int i = 0; i < _saveDatas.Count; ++i) { if (_saveDatas[i].GetType() == type) { instance = _saveDatas[i]; break; } } Save(instance); }
public override void LoadSaved (ISaveData data) { base.LoadSaved (data); for (int n = 0; n < 4; n ++) { if (data.HasKey ("P8_" + n)) P8 [n] = data.GetValue <byte> ("P8_" + n); if (data.HasKey ("I8_" + n)) I8 [n] = data.GetValue <byte> ("I8_" + n); if (data.HasKey ("D8_" + n)) D8 [n] = data.GetValue <byte> ("D8_" + n); } if (data.HasKey ("rates_" + Constants.YAW)) rates [Constants.YAW] = data.GetValue <byte> ("rates_" + Constants.YAW); }
public static void TrySetData <TSavable, TSaveData>(TSavable[] savables, List <TSaveData> dataList, bool checkID) where TSavable : ISavable where TSaveData : ISaveData { if (savables.Length == 0 || dataList.Count == 0 || savables.Length != dataList.Count) { Debug.LogWarning(string.Format ("Savables: {0}. Data list count: {1}.", savables.Length, dataList.Count)); return; } else if (savables[0].GetSaveDataType() != typeof(TSaveData)) { Debug.LogError(string.Format ("Incompatible save data types: {0} and {1}", savables[0].GetSaveDataType(), typeof(TSaveData))); return; } for (int i = 0; i < dataList.Count; i++) { TSavable savable = savables[i]; ISaveData data = dataList[i]; if (checkID) { savable = savables.FirstOrDefault (sav => sav.ID == data.ID); if (savable != null) { savable.SetData(data); } } else { savable.SetData(data); } } }
public ConnectionClient( INetworkConnection network, IGameStatePersistence persistence, ISaveData worldData) : base(network, persistence) { m_WorldData = worldData; m_StateMachine = new StateMachine <EConnectionState, ETrigger>(EConnectionState.Disconnected); m_StateMachine.Configure(EConnectionState.Disconnected) .Permit(ETrigger.TryJoinServer, EConnectionState.ClientJoinRequesting); StateMachine <EConnectionState, ETrigger> .TriggerWithParameters <EDisconnectReason> disconnectTrigger = m_StateMachine.SetTriggerParameters <EDisconnectReason>(ETrigger.Disconnect); m_StateMachine.Configure(EConnectionState.Disconnecting) .OnEntryFrom(disconnectTrigger, closeConnection) .Permit(ETrigger.Disconnected, EConnectionState.Disconnected); m_StateMachine.Configure(EConnectionState.ClientJoinRequesting) .OnEntry(sendClientHello) .Permit(ETrigger.Disconnect, EConnectionState.Disconnecting) .PermitIf( ETrigger.ServerAcceptedJoinRequest, EConnectionState.ClientAwaitingWorldData, () => m_WorldData.RequiresInitialWorldData) .PermitIf( ETrigger.ServerAcceptedJoinRequest, EConnectionState.ClientPlaying, () => !m_WorldData.RequiresInitialWorldData); m_StateMachine.Configure(EConnectionState.ClientAwaitingWorldData) .OnEntry(sendClientRequestInitialWorldData) .Permit(ETrigger.Disconnect, EConnectionState.Disconnecting) .Permit( ETrigger.InitialWorldDataReceived, EConnectionState.ClientPlaying); m_StateMachine.Configure(EConnectionState.ClientPlaying) .OnEntry(onConnected) .Permit(ETrigger.Disconnect, EConnectionState.Disconnecting); Dispatcher.RegisterPacketHandlers(this); }
/// <summary> /// Formats the <see cref="BrandonException.Message"/> /// </summary> /// <param name="saveData"></param> /// <param name="message"></param> /// <returns></returns> private static string GetMessage( ISaveData saveData = null, string message = "Something went wrong with save data management!" ) { var lines = new List <string>() { message }; if (saveData != null) { lines.Add($"{nameof(saveData.Nickname)}: {saveData.Nickname}"); lines.Add($"{saveData.GetType()}:\n{saveData}"); } return(lines.JoinString("\n")); }
public ConnectionServer( INetworkConnection network, IGameStatePersistence persistence, ISaveData worldData) : base(network, persistence) { m_WorldData = worldData; m_StateMachine = new StateMachine <EConnectionState, ETrigger>(EConnectionState.Disconnected); m_StateMachine.Configure(EConnectionState.Disconnected) .Permit(ETrigger.WaitForClient, EConnectionState.ServerAwaitingClient); StateMachine <EConnectionState, ETrigger> .TriggerWithParameters <EDisconnectReason> disconnectTrigger = m_StateMachine.SetTriggerParameters <EDisconnectReason>(ETrigger.Disconnect); m_StateMachine.Configure(EConnectionState.Disconnecting) .OnEntryFrom(disconnectTrigger, closeConnection) .Permit(ETrigger.Disconnected, EConnectionState.Disconnected); m_StateMachine.Configure(EConnectionState.ServerAwaitingClient) .Permit(ETrigger.Disconnect, EConnectionState.Disconnecting) .Permit(ETrigger.ClientInfoVerified, EConnectionState.ServerJoining); m_StateMachine.Configure(EConnectionState.ServerJoining) .OnEntry(SendJoinRequestAccepted) .Permit(ETrigger.Disconnect, EConnectionState.Disconnecting) .Permit( ETrigger.ClientRequestedWorldData, EConnectionState.ServerSendingWorldData) .Permit(ETrigger.ClientJoined, EConnectionState.ServerPlaying); m_StateMachine.Configure(EConnectionState.ServerSendingWorldData) .OnEntry(SendInitialWorldData) .Permit(ETrigger.Disconnect, EConnectionState.Disconnecting) .Permit(ETrigger.ClientJoined, EConnectionState.ServerPlaying); m_StateMachine.Configure(EConnectionState.ServerPlaying) .OnEntry(onConnected) .Permit(ETrigger.Disconnect, EConnectionState.Disconnecting); Dispatcher.RegisterPacketHandlers(this); }
/// <summary> /// Save all of nodes to a physical file/Database/..... /// </summary> /// <param name="FileName">filename which include fullpathDataBase connection /......</param> /// <returns>Operation is sucessful,return true otherwise false</returns> public bool Save(string FileName) { lock (Lockobject) { SaveObject = ObjectBuildFactory <ISaveData <int> > .Instance(SystemConfiguration.SaveDataClassName); if (SaveObject != null) { SaveObject.SetSaveObject(RBTree); } } if (SaveObject != null) { return(SaveObject.Save(FileName)); } else { return(false); } }
public void LoadSaved(ISaveData data) { for (int n = 0; n < 4; n++) { if (data.HasKey("EXP_" + n)) { exp[n] = data.GetValue <float> ("EXP_" + n); } if (data.HasKey("MIN_" + n)) { min[n] = data.GetValue <float> ("MIN_" + n); } if (data.HasKey("MAX_" + n)) { max[n] = data.GetValue <float> ("MAX_" + n); } mid [n] = (min [n] + max [n]) / 2f; inputScale[n] = (max [n] - min [n]) / 2f; } ; }