public void Clear() { CDNIndex?.Clear(); CDNIndex = null; foreach (var stream in DataStreams) { stream.Value.Dispose(); } DataStreams.Clear(); Encoding?.Clear(); Encoding = null; Install?.Clear(); Install = null; LocalIndex?.Clear(); LocalIndex = null; Root?.Clear(); Root = null; Download?.Clear(); Download = null; }
public void Clear() { CDNIndex?.Clear(); CDNIndex = null; foreach (var stream in DataStreams) { stream.Value.Dispose(); } DataStreams.Clear(); EncodingHandler?.Clear(); EncodingHandler = null; InstallHandler?.Clear(); InstallHandler = null; LocalIndex?.Clear(); LocalIndex = null; RootHandler?.Clear(); RootHandler = null; DownloadHandler?.Clear(); DownloadHandler = null; }
protected override Stream GetLocalDataStream(MD5Hash key) { IndexEntry idxInfo = LocalIndex.GetIndexInfo(key); if (idxInfo == null) { Logger.WriteLine("Local index missing: {0}", key.ToHexString()); } return(GetLocalDataStreamInternal(idxInfo, key)); }
protected override Stream GetLocalDataStream(MD5Hash key) { IndexEntry idxInfo = LocalIndex.GetIndexInfo(key); if (idxInfo == null) { Debug.Log($"Local index missing: {key.ToHexString()}"); } return(GetLocalDataStreamInternal(idxInfo, key)); }
protected override Stream GetLocalDataStream(MD5Hash key) { IndexEntry idxInfo; if (LocalIndex != null) { idxInfo = LocalIndex.GetIndexInfo(key); } else { LocalIndexData.TryGetValue(key, out idxInfo); } return(GetLocalDataStreamInternal(idxInfo, key)); }
internal void Render(int renderLevel) { //create renderer if (unitRenderer == null) { unitRenderer = PlanetGenerator.CreateRenderer(); string name = LocalIndex.ToString(); Unit tmp = Parent; while (tmp != null && tmp.Parent != null) { name = tmp.LocalIndex + " - " + name; tmp = tmp.Parent; } unitRenderer.name = name; } //generate noise now if (CalcLevel == -1) { Surface.CreateTerrainSurfacePoints(cfg, ZoomLevel); } else if (PlanetConfig.PointLog - CalcLevel < renderLevel) { Surface.CreateTerrainSurfacePoints(cfg, ZoomLevel); } //render if (unitRenderer.RenderLevel == -1) { unitRenderer.Render(this, renderLevel); } else if (renderLevel > unitRenderer.RenderLevel) { unitRenderer.Render(this, renderLevel); } }
public void Clear() { CDNIndex.Clear(); CDNIndex = null; foreach (var stream in DataStreams) { stream.Value.Close(); } DataStreams.Clear(); EncodingHandler.Clear(); EncodingHandler = null; if (InstallHandler != null) { InstallHandler.Clear(); InstallHandler = null; } if (LocalIndex != null) { LocalIndex.Clear(); LocalIndex = null; } RootHandler.Clear(); RootHandler = null; if (DownloadHandler != null) { DownloadHandler.Clear(); DownloadHandler = null; } }
protected override Stream GetLocalDataStream(MD5Hash key) { IndexEntry idxInfo = LocalIndex.GetIndexInfo(key); return(GetLocalDataStreamInternal(idxInfo, key)); }
private CASCHandlerLite(CASCConfig config, LocaleFlags locale, BackgroundWorkerEx worker) : base(config, worker) { if (config.GameType != CASCGameType.WoW) { throw new Exception("Unsupported game " + config.BuildUID); } Logger.WriteLine("CASCHandlerLite: loading encoding data..."); EncodingHandler EncodingHandler; using (var _ = new PerfCounter("new EncodingHandler()")) { using (var fs = OpenEncodingFile(this)) EncodingHandler = new EncodingHandler(fs, worker); } Logger.WriteLine("CASCHandlerLite: loaded {0} encoding data", EncodingHandler.Count); Logger.WriteLine("CASCHandlerLite: loading root data..."); WowRootHandler RootHandler; using (var _ = new PerfCounter("new RootHandler()")) { using (var fs = OpenRootFile(EncodingHandler, this)) RootHandler = new WowRootHandler(fs, worker); } Logger.WriteLine("CASCHandlerLite: loaded {0} root data", RootHandler.Count); RootHandler.SetFlags(locale, ContentFlags.None, false); CDNIndexData = new Dictionary <MD5Hash, IndexEntry>(comparer); if (LocalIndex != null) { LocalIndexData = new Dictionary <MD5Hash, IndexEntry>(comparer); } RootEntry rootEntry; foreach (var entry in RootHandler.GetAllEntries()) { rootEntry = entry.Value; if ((rootEntry.LocaleFlags == locale || (rootEntry.LocaleFlags & locale) != LocaleFlags.None) && (rootEntry.ContentFlags & ContentFlags.LowViolence) == ContentFlags.None) { if (EncodingHandler.GetEntry(rootEntry.MD5, out EncodingEntry enc)) { if (!HashToKey.ContainsKey(entry.Key)) { HashToKey.Add(entry.Key, enc.Key); FileDataIdToHash.Add(RootHandler.GetFileDataIdByHash(entry.Key), entry.Key); if (LocalIndex != null) { IndexEntry iLocal = LocalIndex.GetIndexInfo(enc.Key); if (iLocal != null && !LocalIndexData.ContainsKey(enc.Key)) { LocalIndexData.Add(enc.Key, iLocal); } } IndexEntry iCDN = CDNIndex.GetIndexInfo(enc.Key); if (iCDN != null && !CDNIndexData.ContainsKey(enc.Key)) { CDNIndexData.Add(enc.Key, iCDN); } } } } } CDNIndex.Clear(); //CDNIndex = null; LocalIndex?.Clear(); LocalIndex = null; RootHandler.Clear(); RootHandler = null; EncodingHandler.Clear(); EncodingHandler = null; GC.Collect(); Logger.WriteLine("CASCHandlerLite: loaded {0} files", HashToKey.Count); }
public string ToShortString() { return(Reference.ToShortString() + (LocalIndex != null ? "#" + LocalIndex.ToString() : "")); }
public override int GetHashCode() { return((((IsPinned.GetHashCode() * 397) ^ LocalIndex.GetHashCode()) * 397) ^ LocalType.GetHashCode()); }