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();
        }
Beispiel #2
0
 private void Construct(
     LevelData levelData, SaverBase <LevelStatisticsArray> levelStatisticsSaver,
     LevelTimer levelTimer, SessionData sessionData)
 {
     _sessionData          = sessionData;
     _levelTimer           = levelTimer;
     _levelStatisticsSaver = levelStatisticsSaver;
     _levelData            = levelData;
 }
Beispiel #3
0
 public void RegisterSaver(SaverBase saver)
 {
     using (EnterExclusive())
         _savers.Add(saver);
 }
 public void RegisterSaver(SaverBase sb)
 {
     _multiplexer.RegisterSaver(_channelType, sb);
 }
Beispiel #5
0
 private void Construct(SaverBase <PlayerData> playerDataSaver)
 {
     _playerDataSaver = playerDataSaver;
 }
 private void Construct(SaverBase <LevelStatisticsArray> levelStatisticsSaver, SessionData sessionData)
 {
     _sessionData          = sessionData;
     _levelStatisticsSaver = levelStatisticsSaver;
 }