mirror of
https://github.com/tym1116/BH3.git
synced 2025-12-12 22:44:35 +01:00
80 lines
1.2 KiB
C#
80 lines
1.2 KiB
C#
using System.Collections.Generic;
|
|
|
|
namespace MoleMole
|
|
{
|
|
public class AssetList
|
|
{
|
|
public class AssetItem
|
|
{
|
|
public uint _size;
|
|
|
|
public string _name;
|
|
|
|
public AssetItem(uint size, string name)
|
|
{
|
|
_size = size;
|
|
_name = name;
|
|
}
|
|
}
|
|
|
|
public class SizeComparer : IComparer<AssetItem>
|
|
{
|
|
public int Compare(AssetItem x, AssetItem y)
|
|
{
|
|
if (x._size > y._size)
|
|
{
|
|
return -1;
|
|
}
|
|
if (x._size < y._size)
|
|
{
|
|
return 1;
|
|
}
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
private SizeComparer _sizeComparer = new SizeComparer();
|
|
|
|
private List<AssetItem> _list;
|
|
|
|
private int _max = 10;
|
|
|
|
public AssetList(int max = 10)
|
|
{
|
|
_list = new List<AssetItem>();
|
|
_max = max;
|
|
}
|
|
|
|
public void TryAdd(uint size, string name)
|
|
{
|
|
if (_list.Count < _max)
|
|
{
|
|
_list.Add(new AssetItem(size, name));
|
|
return;
|
|
}
|
|
Sort();
|
|
AssetItem assetItem = _list[_list.Count - 1];
|
|
if (size > assetItem._size)
|
|
{
|
|
assetItem._size = size;
|
|
assetItem._name = name;
|
|
}
|
|
}
|
|
|
|
public void Sort()
|
|
{
|
|
_list.Sort(_sizeComparer);
|
|
}
|
|
|
|
public List<AssetItem> GetList()
|
|
{
|
|
return _list;
|
|
}
|
|
|
|
public void Clear()
|
|
{
|
|
_list.Clear();
|
|
}
|
|
}
|
|
}
|