コード例 #1
0
ファイル: ABSaveMap.cs プロジェクト: ABCo-Src/ABSave
        internal VersionInfo GetVersionInfo(Converter converter, uint version)
        {
            // Try to get the version if it already exists.
            VersionInfo?existing = VersionCacheHandler.GetVersionOrAddNull(converter, version);

            if (existing != null)
            {
                return(existing);
            }

            // If it doesn't, generate it.
            MapGenerator?gen = GetGenerator();
            VersionInfo? res = VersionCacheHandler.AddNewVersion(converter, version, gen);

            ReleaseGenerator(gen);
            return(res);
        }
コード例 #2
0
ファイル: MapGenerator.cs プロジェクト: ABCo-Src/ABSave
        internal Converter UseConverter(Converter converter, int id, Type type)
        {
            // Remove it from the cache.
            _converterCache[id] = null;

            // Apply the converter
            ApplyItem(converter, type);

            // Call the user initialization
            converter._highestVersion = converter.Initialize(new InitializeInfo(type, this));

            // Setup the backing information for the converter.
            converter._allInheritanceAttributes =
                InheritanceHandler.GetInheritanceAttributes(type, ref converter._highestVersion);

            VersionCacheHandler.SetupVersionCacheOnItem(converter, this);
            return(converter);
        }