public TranslatedImage(string fileName, byte[] data, ITranslatedImageSource source) { _source = source; FileName = fileName; Data = data; }
public TranslatedImage(string fileName, byte[] data, ITranslatedImageSource source) { _source = source; FileName = fileName; Data = data; ImageFormat = Formats[Path.GetExtension(fileName)]; }
private void RegisterTranslatedImage(string fileName, string key, byte[] data, ITranslatedImageSource source) { _translatedImages[key] = new TranslatedImage(fileName, data, Settings.CacheTexturesInMemory ? null : source); }
private void RegisterImageFromStream(string fullFileName, ITranslatedImageSource source) { try { var fileName = Path.GetFileNameWithoutExtension(fullFileName); var startHash = fileName.LastIndexOf("["); var endHash = fileName.LastIndexOf("]"); if (endHash > -1 && startHash > -1 && endHash > startHash) { var takeFrom = startHash + 1; // load based on whether or not the key is image hashed var parts = fileName.Substring(takeFrom, endHash - takeFrom).Split('-'); string key; string originalHash; if (parts.Length == 1) { key = parts[0]; originalHash = parts[0]; } else if (parts.Length == 2) { key = parts[0]; originalHash = parts[1]; } else { XuaLogger.AutoTranslator.Warn($"Image not loaded (unknown hash): {fullFileName}."); return; } var data = source.GetData(); var currentHash = HashHelper.Compute(data); var isModified = StringComparer.InvariantCultureIgnoreCase.Compare(originalHash, currentHash) != 0; _keyToFileName[key] = fullFileName; // only load images that someone has modified! if (Settings.LoadUnmodifiedTextures || isModified) { RegisterTranslatedImage(fullFileName, key, data, source); if (!Settings.EnableSilentMode) { XuaLogger.AutoTranslator.Debug($"Image loaded: {fullFileName}."); } } else { RegisterUntranslatedImage(key); XuaLogger.AutoTranslator.Warn($"Image not loaded (unmodified): {fullFileName}."); } } else { XuaLogger.AutoTranslator.Warn($"Image not loaded (no hash): {fullFileName}."); } } catch (Exception e) { XuaLogger.AutoTranslator.Error(e, "An error occurred while loading texture file: " + fullFileName); } }