public GameService(
     GameConfigurations configurations,
     GameHandler gameHandler)
 {
     _configurations = configurations;
     _gameHandler    = gameHandler;
 }
示例#2
0
 public RoomHandler(
     IGameData gameData,
     SnakeGenerator charGenerator,
     GameConfigurations configurations) : base(gameData.Room, configurations.RoomConfiguration)
 {
     _charGenerator = charGenerator;
 }
示例#3
0
        public GameHub(
            GameHandler gameHandler,
            GameConfigurations configurations

            )
        {
            _gameHandler    = gameHandler;
            _configurations = configurations;
        }
示例#4
0
 /// <summary>
 /// Loads the game configurations from file.
 /// </summary>
 public void LoadGameConfigs()
 {
     if (File.Exists(Application.persistentDataPath + gameConfigsFile) == true)
     {
         BinaryFormatter bf   = new BinaryFormatter();
         FileStream      file = File.Open(Application.persistentDataPath + gameConfigsFile, FileMode.Open);
         configs = (GameConfigurations)bf.Deserialize(file);
         file.Close();
     }
 }
示例#5
0
        /// <summary>
        ///     Builds the ConverterSettings object given by the xml element (XElement)
        /// </summary>
        /// <typeparam name="T">The type of object to create. In this case, it'll be ConverterSettings</typeparam>
        /// <param name="element">The xml node to generate the ConverterSettings object from</param>
        /// <returns>The generated convertersettings object</returns>
        protected override T OnBuildElement <T>(XElement element)
        {
            var name                     = XElementHelper.ReadStringValue(element, "name");
            var friendlyName             = XElementHelper.ReadStringValue(element, "friendlyName");
            var defaultConfigurationFile = XElementHelper.ReadStringValue(element, "defaultConfigurationFile");
            var additionalInformation    = XElementHelper.ReadStringValue(element, "informationText", false);

            // Build game configuration models
            var sourceGameName = XElementHelper.ReadStringValue(element, "sourceGame");
            var targetGameName = XElementHelper.ReadStringValue(element, "targetGame");
            var sourceGame     = GameConfigurations.FirstOrDefault(g => g.Name.Equals(sourceGameName));
            var targetGame     = GameConfigurations.FirstOrDefault(g => g.Name.Equals(targetGameName));

            var requiredFolders = RequiredFolderFactory.BuildConfiguration <IRequiredFolder>(element);
            var requiredFiles   = RequiredFileFactory.BuildConfiguration <IRequiredFile>(element);

            var errorMessage = "Could not find game configuration for {0}. Could not find game in " +
                               AbsoluteGameConfigurationPath + " with name {1}. ";

            // Build preference categories
            var categories = PreferenceCategoryFactory.BuildModels <IPreferenceCategory>(defaultConfigurationFile);

            if (sourceGame == null)
            {
                EventAggregator.PublishOnUIThread(
                    new LogEntry(string.Format(errorMessage, "source game", sourceGameName), LogEntrySeverity.Error,
                                 LogEntrySource.UI, AbsoluteGameConfigurationPath));
            }

            if (targetGame == null)
            {
                EventAggregator.PublishOnUIThread(
                    new LogEntry(string.Format(errorMessage, "target game", targetGameName), LogEntrySeverity.Error,
                                 LogEntrySource.UI, AbsoluteGameConfigurationPath));
            }

            var settings = new ConverterSettings(EventAggregator)
            {
                Name                     = name,
                FriendlyName             = friendlyName,
                DefaultConfigurationFile = Path.Combine(Environment.CurrentDirectory, defaultConfigurationFile),
                SourceGame               = sourceGame,
                TargetGame               = targetGame,
                Categories               = categories,
                AdditionalInformation    = additionalInformation
            };

            requiredFolders.ForEach(f => settings.RequiredItems.Add(f));
            requiredFiles.ForEach(f => settings.RequiredItems.Add(f));

            return(settings as T);
        }
示例#6
0
        /// <summary>
        ///     Builds the ConverterSettings object given by the xml element (XElement)
        /// </summary>
        /// <typeparam name="T">The type of object to create. In this case, it'll be ConverterSettings</typeparam>
        /// <param name="element">The xml node to generate the ConverterSettings object from</param>
        /// <returns>The generated convertersettings object</returns>
        protected override T OnBuildElement <T>(XElement element)
        {
            var name                     = XElementHelper.ReadStringValue(element, "name");
            var friendlyName             = XElementHelper.ReadStringValue(element, "friendlyName");
            var defaultConfigurationFile = XElementHelper.ReadStringValue(element, "defaultConfigurationFile");
            //var converterExeName = XElementHelper.ReadStringValue(element, "converterExeName");
            //var userConfigurationFile = XElementHelper.ReadStringValue(element, "userConfigurationFile");
            var additionalInformation = XElementHelper.ReadStringValue(element, "informationText", false);

            // Build game configuration models
            var sourceGameName = XElementHelper.ReadStringValue(element, "sourceGame");
            var targetGameName = XElementHelper.ReadStringValue(element, "targetGame");
            var sourceGame     = GameConfigurations.FirstOrDefault(g => g.Name.Equals(sourceGameName));
            var targetGame     = GameConfigurations.FirstOrDefault(g => g.Name.Equals(targetGameName));

            var requiredFolders = RequiredFolderFactory.BuildConfiguration <IRequiredFolder>(element);
            var requiredFiles   = RequiredFileFactory.BuildConfiguration <IRequiredFile>(element);

            // Native export directory.
            //var nativeExportDirectory = XElementHelper.ReadStringValue(element, "nativeParadoxExportDirectory", false);
            //var nativeParadoxExportDirectoryLocationTypeAsString = XElementHelper.ReadStringValue(element, "nativeParadoxExportDirectoryLocationType", false);
            //var nativeParadoxExportDirectoryLocationType = nativeParadoxExportDirectoryLocationTypeAsString.Equals(RelativeFolderLocationRoot.SteamFolder.ToString()) ? RelativeFolderLocationRoot.SteamFolder : RelativeFolderLocationRoot.WindowsUsersFolder;
            //string nativeExportDirectoryTag = XElementHelper.ReadStringValue(element, "nativeParadoxExportDirectoryTag", false);

            //string nativeExportDirectoryAbsolutePath = string.Empty;
            //if (nativeParadoxExportDirectoryLocationType.Equals(RelativeFolderLocationRoot.WindowsUsersFolder))
            //{
            //    nativeExportDirectoryAbsolutePath = DirectoryHelper.GetUsersFolder() + XElementHelper.ReadStringValue(element, "nativeParadoxExportDirectory", false);
            //}
            //else
            //{
            //    //HACK: This is bad, and needs fixing.
            //    throw new NotSupportedException("The native export directory cannot be a steam subfolder.");
            //}

            var errorMessage = "Could not find game configuration for {0}. Could not find game in " +
                               AbsoluteGameConfigurationPath + " with name {1}. ";

            // Build preference categories
            var categories = PreferenceCategoryFactory.BuildModels <IPreferenceCategory>(defaultConfigurationFile);

            if (sourceGame == null)
            {
                EventAggregator.PublishOnUIThread(
                    new LogEntry(string.Format(errorMessage, "source game", sourceGameName), LogEntrySeverity.Error,
                                 LogEntrySource.UI, AbsoluteGameConfigurationPath));
            }

            if (targetGame == null)
            {
                EventAggregator.PublishOnUIThread(
                    new LogEntry(string.Format(errorMessage, "target game", targetGameName), LogEntrySeverity.Error,
                                 LogEntrySource.UI, AbsoluteGameConfigurationPath));
            }

            //var relativeConverterPath = XElementHelper.ReadStringValue(element, "subfolderName");

            var settings = new ConverterSettings(EventAggregator)
            {
                Name                     = name,
                FriendlyName             = friendlyName,
                DefaultConfigurationFile = Path.Combine(Environment.CurrentDirectory, defaultConfigurationFile),
                //ConverterExeName = converterExeName,
                SourceGame = sourceGame,
                TargetGame = targetGame,
                //AbsoluteConverterPath = Path.Combine(Environment.CurrentDirectory, relativeConverterPath),

                /*NativeParadoxExportDirectoryTag = nativeExportDirectoryTag,
                 * NativeParadoxExportDirectory = nativeExportDirectoryAbsolutePath,*/
                //UserConfigurationFile = userConfigurationFile
                Categories            = categories,
                AdditionalInformation = additionalInformation
            };

            requiredFolders.ForEach(f => settings.RequiredItems.Add(f));
            requiredFiles.ForEach(f => settings.RequiredItems.Add(f));

            return(settings as T);
        }
示例#7
0
 public GameHandler(IGameContext gameContext, GameConfigurations configurations, SnakeGenerator charGenerator)
 {
     _configurations = configurations;
     _charGenerator  = charGenerator;
     _gameContext    = gameContext;
 }
 void Awake()
 {
     _instance = this;
     LoadConfigs();
 }