Files
YarikStudio/AssetStudio/ObjectReader.cs
Razmoth 7b0d563de1 Changes:
- temp fix for shader class.
- added new entry.
- more updates to CLI
- fixes #3
- add #4
2023-04-27 23:05:10 +04:00

52 lines
1.6 KiB
C#

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
namespace AssetStudio
{
public class ObjectReader : EndianBinaryReader
{
public SerializedFile assetsFile;
public Game Game;
public long m_PathID;
public long byteStart;
public uint byteSize;
public ClassIDType type;
public SerializedType serializedType;
public BuildTarget platform;
public SerializedFileFormatVersion m_Version;
public int[] version => assetsFile.version;
public BuildType buildType => assetsFile.buildType;
public ObjectReader(EndianBinaryReader reader, SerializedFile assetsFile, ObjectInfo objectInfo, Game game) : base(new SubStream(reader.BaseStream, objectInfo.byteStart, objectInfo.byteSize), reader.Endian)
{
this.assetsFile = assetsFile;
Game = game;
m_PathID = objectInfo.m_PathID;
byteStart = objectInfo.byteStart;
byteSize = objectInfo.byteSize;
if (Enum.IsDefined(typeof(ClassIDType), objectInfo.classID))
{
type = (ClassIDType)objectInfo.classID;
}
else
{
type = ClassIDType.UnknownType;
}
serializedType = objectInfo.serializedType;
platform = assetsFile.m_TargetPlatform;
m_Version = assetsFile.header.m_Version;
}
public bool Match(string hash) => Convert.ToHexString(serializedType.m_OldTypeHash) == hash;
public void Reset()
{
Position = 0;
}
}
}