mirror of
https://mirror.ghproxy.com/https://github.com/dexyfex/CodeWalker
synced 2024-08-21 01:19:21 +08:00
75 lines
1.8 KiB
C#
75 lines
1.8 KiB
C#
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.Linq;
|
|||
|
using System.Text;
|
|||
|
using System.Threading.Tasks;
|
|||
|
|
|||
|
namespace CodeWalker.GameFiles
|
|||
|
{
|
|||
|
public abstract class GameFile : Cacheable<GameFileCacheKey>
|
|||
|
{
|
|||
|
public volatile bool Loaded = false;
|
|||
|
public volatile bool LoadQueued = false;
|
|||
|
public RpfFileEntry RpfFileEntry { get; set; }
|
|||
|
public string Name { get; set; }
|
|||
|
public string FilePath { get; set; } //used by the project form.
|
|||
|
public GameFileType Type { get; set; }
|
|||
|
|
|||
|
|
|||
|
|
|||
|
public GameFile(RpfFileEntry entry, GameFileType type)
|
|||
|
{
|
|||
|
RpfFileEntry = entry;
|
|||
|
Type = type;
|
|||
|
MemoryUsage = (entry != null) ? entry.FileSize : 0;
|
|||
|
if (entry is RpfResourceFileEntry)
|
|||
|
{
|
|||
|
var resent = entry as RpfResourceFileEntry;
|
|||
|
var newuse = resent.SystemSize + resent.GraphicsSize;
|
|||
|
MemoryUsage = newuse;
|
|||
|
}
|
|||
|
else if (entry is RpfBinaryFileEntry)
|
|||
|
{
|
|||
|
var binent = entry as RpfBinaryFileEntry;
|
|||
|
var newuse = binent.FileUncompressedSize;
|
|||
|
if (newuse > MemoryUsage)
|
|||
|
{
|
|||
|
MemoryUsage = newuse;
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public override string ToString()
|
|||
|
{
|
|||
|
return (string.IsNullOrEmpty(Name)) ? JenkIndex.GetString(Key.Hash) : Name;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
public enum GameFileType : int
|
|||
|
{
|
|||
|
Ydd = 0,
|
|||
|
Ydr = 1,
|
|||
|
Yft = 2,
|
|||
|
Ymap = 3,
|
|||
|
Ymf = 4,
|
|||
|
Ymt = 5,
|
|||
|
Ytd = 6,
|
|||
|
Ytyp = 7,
|
|||
|
Ybn = 8,
|
|||
|
Ycd = 9,
|
|||
|
Ypt = 10,
|
|||
|
Ynd = 11,
|
|||
|
Ynv = 12,
|
|||
|
Rel = 13,
|
|||
|
Ywr = 14,
|
|||
|
Yvr = 15,
|
|||
|
}
|
|||
|
|
|||
|
}
|