internal void RegisterSaver(Type channelType, SaverBase saver) { Known(channelType); saver._Aux = _auxilary.ForChannel(channelType); if (!_saversPerChannels.ContainsKey(channelType.FullName)) { _saversPerChannels[channelType.FullName] = new HashSet <SaverBase>(); } var chSavers = _saversPerChannels[channelType.FullName]; if (!chSavers.Contains(saver)) { chSavers.Add(saver); } if (!_saversPerCommandsChannel.ContainsKey(channelType.FullName)) { _saversPerCommandsChannel[channelType.FullName] = new Dictionary <Type, SaverBase>(); } var commandSavers = _saversPerCommandsChannel[channelType.FullName]; foreach (var saverServingCommandType in saver.ServingCommandTypes) { if (commandSavers.ContainsKey(saverServingCommandType)) { throw new TectureException($"Trying to register {saver.GetType().FullName} saver, but there is already runner {commandSavers[saverServingCommandType].GetType().FullName} registered for command '{saverServingCommandType.Name}' "); } commandSavers[saverServingCommandType] = saver; } saver.CallOnRegister(); }
private void Construct( LevelData levelData, SaverBase <LevelStatisticsArray> levelStatisticsSaver, LevelTimer levelTimer, SessionData sessionData) { _sessionData = sessionData; _levelTimer = levelTimer; _levelStatisticsSaver = levelStatisticsSaver; _levelData = levelData; }
public void RegisterSaver(SaverBase saver) { using (EnterExclusive()) _savers.Add(saver); }
public void RegisterSaver(SaverBase sb) { _multiplexer.RegisterSaver(_channelType, sb); }
private void Construct(SaverBase <PlayerData> playerDataSaver) { _playerDataSaver = playerDataSaver; }
private void Construct(SaverBase <LevelStatisticsArray> levelStatisticsSaver, SessionData sessionData) { _sessionData = sessionData; _levelStatisticsSaver = levelStatisticsSaver; }