internal static void setSkinTextureCache(string skin, string filename, CustomKnightTexture texture) { if (!skinTextureCache.ContainsKey(skin)) { skinTextureCache[skin] = new Dictionary <string, CustomKnightTexture>(); } skinTextureCache[skin][filename] = texture; }
private static void DestroyObjects() { foreach (KeyValuePair <string, Skinable> pair in SkinManager.Skinables) { CustomKnightTexture texture = pair.Value.ckTex; if (texture.tex != null) { GameObject.Destroy(texture.tex); } } LoadComplete = false; }
internal static void LoadSprites() { LoadComplete = false; if (SkinManager.CurrentSkin == null) { SkinManager.CurrentSkin = SkinManager.GetDefaultSkin(); } if (SkinManager.CurrentSkin.shouldCache()) { TextureCache.recentSkins.Add(SkinManager.CurrentSkin.GetId()); } foreach (KeyValuePair <string, Skinable> kvp in SkinManager.Skinables) { kvp.Value.prepare(); CustomKnightTexture texture = kvp.Value.ckTex; if (TextureCache.skinTextureCache.TryGetValue(SkinManager.CurrentSkin.GetId(), out var skinCache) && skinCache.TryGetValue(texture.fileName, out var cachedTex)) { texture.tex = cachedTex.tex; texture.missing = cachedTex.missing; continue; } texture.missing = !SkinManager.CurrentSkin.Exists(texture.fileName); if (!texture.missing) { texture.tex = SkinManager.CurrentSkin.GetTexture(texture.fileName); if (SkinManager.CurrentSkin.shouldCache()) { TextureCache.setSkinTextureCache(SkinManager.CurrentSkin.GetId(), texture.fileName, new CustomKnightTexture(texture.fileName, texture.missing, texture.defaultTex, texture.tex)); } } else { texture.tex = null; } } TextureCache.trimTextureCache(); SetSkin(SkinManager.Skinables); LoadComplete = true; }