private static bool TryLoadNewTexture(string section, U::UnityEngine.Texture2D texture2D, string path, ref Texture2DOverrideData overrideData, bool flip = false) { U::UnityEngine.Texture2D texture2D1; bool flag; object dataLock = Texture2DOverride.DataLock; Monitor.Enter(dataLock); try { if (!Texture2DOverride.LoadTextureData(path, out texture2D1)) { flag = false; } else { if (flip) { texture2D1 = Texture2DOverride.FlipTextureY(texture2D1); } texture2D1.name = texture2D.name; texture2D1.anisoLevel = texture2D.anisoLevel; texture2D1.filterMode = texture2D.filterMode; texture2D1.mipMapBias = texture2D.mipMapBias; texture2D1.wrapMode = texture2D.wrapMode; overrideData = new Texture2DOverrideData(texture2D, path, texture2D1); Texture2DOverride.loaded.Add(texture2D.GetInstanceID(), new Texture2DCacheData(section, overrideData)); flag = true; } } finally { Monitor.Exit(dataLock); } return(flag); }
protected Texture2D GetTexture() { if (base.GetType() != typeof(Sprite)) { return(null); } Texture2D textured = ((Sprite)this)._get_texture(); try { if (textured == null) { return(textured); } if (this.overrideData.OriginalTexture2D != null) { return(this.overrideData.OverrideTexture2D); } Texture2DOverride.LoadTexture2D(((Sprite)this).name, textured, out this.overrideData); if (this.overrideData.OverrideTexture2D != null) { textured = this.overrideData.OverrideTexture2D; } } catch (Exception exception) { IniSettings.Error("SpriteOverride:\n" + exception.ToString()); } return(textured); }
static Texture2DOverride() { Texture2DOverride.DataLock = new object(); Texture2DOverride.unused = new Dictionary <int, DateTime>(); Texture2DOverride.loaded = new Dictionary <int, Texture2DCacheData>(); Texture2DOverride.WriterLock = new object(); Texture2DOverride.MAINFOLDERKEY = "sMainFolder"; Texture2DOverride.Load(); TimeSpan timeSpan = TimeSpan.FromSeconds(15); Texture2DOverride.timer = new System.Timers.Timer(timeSpan.TotalMilliseconds) { AutoReset = true }; Texture2DOverride.timer.Elapsed += new ElapsedEventHandler(Texture2DOverride.timer_Elapsed); Texture2DOverride.timer.Start(); Texture2DOverride.writerdata = new List <Texture2DDumpData>(); timeSpan = TimeSpan.FromSeconds(15); Texture2DOverride.writertimer = new System.Timers.Timer(timeSpan.TotalMilliseconds) { AutoReset = false }; Texture2DOverride.writertimer.Elapsed += new ElapsedEventHandler(Texture2DOverride.WriterTimerElapsed); IniSettings.LanguageDirChanged += new Action <string>((string value) => Texture2DOverride.Load()); IniSettings.ProcessPathDirChanged += new Action <string>((string value) => Texture2DOverride.Load()); }
private static void WatcherNotice(object sender, FileSystemEventArgs e) { if (Texture2DOverride.lastraisedfile == e.FullPath && DateTime.Now < Texture2DOverride.lastraisedtime) { return; } Texture2DOverride.lastraisedfile = e.FullPath; Texture2DOverride.lastraisedtime = DateTime.Now.AddSeconds(1); Texture2DOverride.Load(); }
protected override void OnDestroy() { if (base.GetType() == typeof(RawImage)) { ThreadPool.QueueUserWorkItem(delegate(object x) { if (this.overrideData.OriginalTexture2D != null) { Texture2DOverride.UnloadTexture2D(ref this.overrideData); } }); } base.OnDestroy(); }
private static void WriterTimerElapsed(object sender, ElapsedEventArgs e) { object writerLock = Texture2DOverride.WriterLock; Monitor.Enter(writerLock); try { Texture2DOverride.StopWatchTextFiles(); try { if (!Directory.Exists(Texture2DOverride.TranslationImageIniFileDir)) { Directory.CreateDirectory(Texture2DOverride.TranslationImageIniFileDir); } if (!File.Exists(Texture2DOverride.TranslationImageIniFilePath)) { Texture2DOverride.LoadMainIniFile(); } if (!Directory.Exists(Texture2DOverride.TranslationImageDir)) { Directory.CreateDirectory(Texture2DOverride.TranslationImageDir); } foreach (Texture2DDumpData writerdatum in Texture2DOverride.writerdata) { Texture2DOverride.mainini.WriteValue(writerdatum.Section, "sPath", writerdatum.Path); if (writerdatum.Format != TextureFormat.DXT1 && writerdatum.Format != TextureFormat.DXT5) { continue; } Texture2DOverride.mainini.WriteValue(writerdatum.Section, "bFlipTexture", true); } } catch (Exception exception) { IniSettings.Error(string.Concat("DumpTexture2D:\n", exception.ToString())); } Texture2DOverride.writerdata.Clear(); Texture2DOverride.WatchTextFiles(); } finally { Monitor.Exit(writerLock); } }
protected void Swap(ref Texture value) { if (base.GetType() == typeof(Material)) { try { if (value == null) { if (this.overrideData.OriginalTexture2D != null) { Texture2DOverride.UnloadTexture2D(ref this.overrideData); } } else { Texture2D textured = value as Texture2D; if (textured != null) { if (this.overrideData.OriginalTexture2D != null) { int instanceID = textured.GetInstanceID(); if ((this.overrideData.InstanceID == instanceID) || (this.overrideData.OverrideID == instanceID)) { value = this.overrideData.OverrideTexture2D; return; } Texture2DOverride.UnloadTexture2D(ref this.overrideData); } Texture2DOverride.LoadTexture2D(((Material)this).name, textured, out this.overrideData); if (this.overrideData.OverrideTexture2D != null) { value = this.overrideData.OverrideTexture2D; } } } } catch (Exception exception) { IniSettings.Error("MaterialOverride:\n" + exception.ToString()); } } }
private void SetOurOverrideTexture(ref U::UnityEngine.Texture value) { if (base.GetType() == typeof(RawImage)) { try { if (value == null) { if (this.overrideData.OriginalTexture2D != null) { Texture2DOverride.UnloadTexture2D(ref this.overrideData); } } else { U::UnityEngine.Texture2D textured = value as U::UnityEngine.Texture2D; if (textured != null) { if (this.overrideData.OriginalTexture2D != null) { int instanceID = textured.GetInstanceID(); if ((this.overrideData.InstanceID == instanceID) || (this.overrideData.OverrideID == instanceID)) { value = this.overrideData.OverrideTexture2D; return; } Texture2DOverride.UnloadTexture2D(ref this.overrideData); } Texture2DOverride.LoadTexture2D(((RawImage)this).name, textured, out this.overrideData); if (this.overrideData.OverrideTexture2D != null) { value = this.overrideData.OverrideTexture2D; } } } } catch (Exception exception) { IniSettings.Error("RawImageOverride:\n" + exception.ToString()); } } }
protected static void Swap(ref Texture2D texture) { try { if (texture == null) { if (overrideData.OriginalTexture2D != null) { Texture2DOverride.UnloadTexture2D(ref overrideData); } } else { if (overrideData.OriginalTexture2D != null) { int instanceID = texture.GetInstanceID(); if (overrideData.InstanceID == instanceID) { texture = overrideData.OverrideTextureCache; return; } Texture2DOverride.UnloadTexture2D(ref overrideData); } Texture2DOverride.LoadTexture2D(texture.name, texture, out overrideData); if (overrideData.OverrideTexture2D != null) { if ((texture.width != overrideData.OverrideTexture2D.width) || (texture.height != overrideData.OverrideTexture2D.height)) { texture.Resize(overrideData.OverrideTexture2D.width, overrideData.OverrideTexture2D.height); } texture.SetPixels32(overrideData.OverrideTexture2D.GetPixels32()); texture.Apply(); overrideData.OverrideTextureCache = texture; } } } catch (Exception exception) { IniSettings.Error("CursorOverride:\n" + exception.ToString()); } }
internal static void LoadTexture2D(string objectName, U::UnityEngine.Texture2D texture2D, out Texture2DOverrideData overrideData) { string str; Texture2DData texture2DDatum; string texturePath; overrideData = new Texture2DOverrideData(); try { if (!string.IsNullOrEmpty(texture2D.name)) { if (string.IsNullOrEmpty(objectName)) { objectName = string.Empty; } str = (string.IsNullOrEmpty(objectName) || objectName == texture2D.name ? texture2D.name : string.Format("{0}:{1}", objectName, texture2D.name)); str = Texture2DOverride.Encode(str); if (!Texture2DOverride.inidata.TryGetValue(str, out texture2DDatum)) { if (Texture2DOverride.TryLoadCacheTexture(texture2D, ref overrideData)) { texturePath = overrideData.TexturePath; } else if (!Texture2DOverride.uniqueimagesdata.TryGetValue(texture2D.name, out texturePath)) { texturePath = texture2D.name; } else { bool flag = false; string lower = Path.GetExtension(texturePath).ToLower(); if (lower == ".dds" || lower == ".psd") { flag = true; } Texture2DOverride.TryLoadNewTexture(str, texture2D, texturePath, ref overrideData, flag); } Texture2DOverride.inidata.Add(str, new Texture2DData(texturePath, false)); if (IniSettings.FindImage) { object writerLock = Texture2DOverride.WriterLock; Monitor.Enter(writerLock); try { Texture2DOverride.writerdata.Add(new Texture2DDumpData(str, texturePath, texture2D.format)); Texture2DOverride.writertimer.Start(); } finally { Monitor.Exit(writerLock); } } } else if (texture2DDatum.Exists && !Texture2DOverride.TryLoadCacheTexture(texture2D, ref overrideData)) { bool flag1 = false; string lower1 = Path.GetExtension(texture2DDatum.Path).ToLower(); if (lower1 == ".dds" || lower1 == ".psd") { flag1 = true; } Texture2DOverride.TryLoadNewTexture(str, texture2D, texture2DDatum.Path, ref overrideData, flag1); } } } catch (Exception exception) { IniSettings.Error(string.Concat("LoadTexture2D:\n", exception.ToString())); } }
private static void Load() { Texture2DCacheData texture2DCacheDatum; object dataLock = Texture2DOverride.DataLock; Monitor.Enter(dataLock); try { Texture2DOverride.StopWatchTextFiles(); Dictionary <int, Texture2DCacheData> nums = new Dictionary <int, Texture2DCacheData>(Texture2DOverride.loaded); Texture2DOverride.unused.Clear(); Texture2DOverride.loaded.Clear(); Texture2DOverride.LoadMainIniFile(); Texture2DOverride.inidata = Texture2DOverride.ParseIniData(Texture2DOverride.mainini); Texture2DOverride.uniqueimagesdata = Texture2DOverride.GetUniqueImageFiles(Texture2DOverride.TranslationImageDir); if (Texture2DOverride.GlobalTranslationImageIniFilePath != Texture2DOverride.TranslationImageDir) { Dictionary <string, Texture2DData> strs = Texture2DOverride.ParseIniData(new IniFile(Texture2DOverride.GlobalTranslationImageIniFilePath)); foreach (KeyValuePair <string, Texture2DData> keyValuePair in strs) { if (Texture2DOverride.inidata.ContainsKey(keyValuePair.Key)) { continue; } Texture2DOverride.inidata.Add(keyValuePair.Key, keyValuePair.Value); } strs.Clear(); strs = null; Dictionary <string, string> uniqueImageFiles = Texture2DOverride.GetUniqueImageFiles(Texture2DOverride.GlobalTranslationImageDir); foreach (KeyValuePair <string, string> uniqueImageFile in uniqueImageFiles) { if (Texture2DOverride.uniqueimagesdata.ContainsKey(uniqueImageFile.Key)) { continue; } Texture2DOverride.uniqueimagesdata.Add(uniqueImageFile.Key, uniqueImageFile.Value); } uniqueImageFiles.Clear(); uniqueImageFiles = null; } Texture2DOverride.WatchTextFiles(); foreach (KeyValuePair <int, Texture2DCacheData> num in nums) { Texture2DOverrideData overrideData = num.Value.OverrideData; Texture2DOverride.LoadTexture2D(num.Value.ObjectName, overrideData.OriginalTexture2D, out overrideData); if (!Texture2DOverride.loaded.TryGetValue(overrideData.InstanceID, out texture2DCacheDatum)) { continue; } texture2DCacheDatum.IncreaseAmount(num.Value.Count); } if (IniSettings.DebugMode || IniSettings.FindImage) { int count = Texture2DOverride.inidata.Count; IniSettings.Log(string.Concat("ImageSettingsLoaded: ", count.ToString())); } } finally { Monitor.Exit(dataLock); } }