コード例 #1
0
        /// <summary>
        /// Loads characters from the default save file location
        /// </summary>
        public IEnumerable <CharacterModel> LoadCharacters(IEnumerable <BackgroundModel> backgrounds, IEnumerable <ClassModel> classes, IEnumerable <ConditionModel> conditions, IEnumerable <FeatModel> feats,
                                                           IEnumerable <ItemModel> items, IEnumerable <LanguageModel> languages, IEnumerable <MonsterModel> monsters, IEnumerable <RaceModel> races, IEnumerable <SpellModel> spells)
        {
            List <CharacterModel> characters = new List <CharacterModel>();

            string path = Path.Combine(_saveDataFolder, _characterSaveFileName);

            if (File.Exists(path))
            {
                ICharacterPersister characterPersister = null;

                byte[] characterBytes = File.ReadAllBytes(path);
                int    version        = BitConverter.ToInt32(characterBytes.Take(4).ToArray(), 0);
                if (version == 1)
                {
                    characterPersister = DependencyResolver.Resolve <Version1.CharacterPersister>();
                }
                else if (version == 2)
                {
                    characterPersister = DependencyResolver.Resolve <Version2.CharacterPersister>();
                }

                if (characterPersister != null)
                {
                    characters = characterPersister.GetCharacters(characterBytes, backgrounds, classes, conditions, feats, items, languages, monsters, races, spells).ToList();
                }
            }

            return(characters);
        }
コード例 #2
0
        /// <summary>
        /// Gets character bytes
        /// </summary>
        public byte[] GetCharacterBytes(CharacterModel character)
        {
            byte[] characterBytes = null;
            ICharacterPersister characterPersister = DependencyResolver.Resolve <Version2.CharacterPersister>();

            characterBytes = characterPersister.GetBytes(new CharacterModel[] { character });
            return(characterBytes);
        }
コード例 #3
0
        /// <summary>
        /// Saves characters to the default save file location
        /// </summary>
        public void SaveCharacters(IEnumerable <CharacterModel> characters)
        {
            string path = Path.Combine(_saveDataFolder, _characterSaveFileName);

            ICharacterPersister characterPersister = DependencyResolver.Resolve <Version2.CharacterPersister>();

            byte[] characterBytes = characterPersister.GetBytes(characters);
            File.WriteAllBytes(path, characterBytes);
        }
コード例 #4
0
        /// <summary>
        /// Gets a character from the byte array using selected resources
        /// </summary>
        public CharacterModel GetCharacter(byte[] characterBytes, IEnumerable <BackgroundModel> backgrounds, IEnumerable <ClassModel> classes, IEnumerable <ConditionModel> conditions, IEnumerable <FeatModel> feats,
                                           IEnumerable <ItemModel> items, IEnumerable <LanguageModel> languages, IEnumerable <MonsterModel> monsters, IEnumerable <RaceModel> races, IEnumerable <SpellModel> spells)
        {
            CharacterModel character = null;

            ICharacterPersister characterPersister = null;
            int version = BitConverter.ToInt32(characterBytes.Take(4).ToArray(), 0);

            if (version == 1)
            {
                characterPersister = DependencyResolver.Resolve <Version1.CharacterPersister>();
            }
            else if (version == 2)
            {
                characterPersister = DependencyResolver.Resolve <Version2.CharacterPersister>();
            }

            if (characterPersister != null)
            {
                character = characterPersister.GetCharacters(characterBytes, backgrounds, classes, conditions, feats, items, languages, monsters, races, spells).First();
            }

            return(character);
        }