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); }
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); }