mirror of
https://mirror.ghproxy.com/https://github.com/dexyfex/CodeWalker
synced 2026-05-14 11:54:32 +08:00
Moved all GameFiles to CodeWalker.Core
This commit is contained in:
@@ -0,0 +1,93 @@
|
||||
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.GetFileSize() : 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,
|
||||
Gtxd = 16,
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public struct GameFileCacheKey
|
||||
{
|
||||
public uint Hash { get; set; }
|
||||
public GameFileType Type { get; set; }
|
||||
|
||||
public GameFileCacheKey(uint hash, GameFileType type)
|
||||
{
|
||||
Hash = hash;
|
||||
Type = type;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user