// Decompiled with JetBrains decompiler // Type: Terraria.GameContent.AssetSourceController // Assembly: Terraria, Version=1.4.0.5, Culture=neutral, PublicKeyToken=null // MVID: 67F9E73E-0A81-4937-A22C-5515CD405A83 // Assembly location: C:\Users\mikeyisbaeyt\Downloads\depotdownloader-2.4.5\depots\105601\6707058\Terraria.exe using ReLogic.Content; using ReLogic.Content.Sources; using System; using System.Collections.Generic; using System.Linq; using Terraria.IO; namespace Terraria.GameContent { public class AssetSourceController { private readonly List _staticSources; private readonly IAssetRepository _assetRepository; public event Action OnResourcePackChange; public ResourcePackList ActiveResourcePackList { get; private set; } public AssetSourceController( IAssetRepository assetRepository, IEnumerable staticSources) { this._assetRepository = assetRepository; this._staticSources = staticSources.ToList(); this.UseResourcePacks(new ResourcePackList()); } public void Refresh() { foreach (ResourcePack allPack in this.ActiveResourcePackList.AllPacks) allPack.Refresh(); this.UseResourcePacks(this.ActiveResourcePackList); } public void UseResourcePacks(ResourcePackList resourcePacks) { if (this.OnResourcePackChange != null) this.OnResourcePackChange(resourcePacks); this.ActiveResourcePackList = resourcePacks; List icontentSourceList = new List(resourcePacks.EnabledPacks.OrderBy((Func) (pack => pack.SortingOrder)).Select((Func) (pack => pack.GetContentSource()))); icontentSourceList.AddRange((IEnumerable) this._staticSources); foreach (IContentSource icontentSource in icontentSourceList) icontentSource.ClearRejections(); this._assetRepository.SetSources((IEnumerable) icontentSourceList, (AssetRequestMode) 1); } } }