AssetStudio/AssetStudio/Classes/Object.cs

62 lines
1.7 KiB
C#
Raw Normal View History

2018-09-26 17:15:37 +00:00
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace AssetStudio
{
2018-11-21 07:37:56 +00:00
public class Object
2018-09-26 17:15:37 +00:00
{
2018-11-21 07:37:56 +00:00
public SerializedFile assetsFile;
2018-11-07 21:00:53 +00:00
public ObjectReader reader;
2018-11-21 07:37:56 +00:00
public long m_PathID;
2018-09-26 17:15:37 +00:00
public int[] version;
2018-11-18 22:48:06 +00:00
protected BuildType buildType;
2018-11-07 21:00:53 +00:00
public BuildTarget platform;
2018-11-21 07:37:56 +00:00
public ClassIDType type;
public SerializedType serializedType;
public uint byteSize;
2018-09-26 17:15:37 +00:00
2018-11-21 07:37:56 +00:00
public Object(ObjectReader reader)
2018-09-26 17:15:37 +00:00
{
2018-11-07 21:00:53 +00:00
this.reader = reader;
reader.Reset();
2018-11-21 07:37:56 +00:00
assetsFile = reader.assetsFile;
type = reader.type;
m_PathID = reader.m_PathID;
2018-11-07 21:00:53 +00:00
version = reader.version;
buildType = reader.buildType;
platform = reader.platform;
2018-11-21 07:37:56 +00:00
serializedType = reader.serializedType;
byteSize = reader.byteSize;
2018-09-26 17:15:37 +00:00
if (platform == BuildTarget.NoTarget)
{
var m_ObjectHideFlags = reader.ReadUInt32();
}
}
2018-11-21 07:37:56 +00:00
protected bool HasStructMember(string name)
{
return serializedType?.m_Nodes != null && serializedType.m_Nodes.Any(x => x.m_Name == name);
}
public string Dump()
{
if (serializedType?.m_Nodes != null)
{
var sb = new StringBuilder();
TypeTreeHelper.ReadTypeString(sb, serializedType.m_Nodes, reader);
return sb.ToString();
}
return null;
}
public byte[] GetRawData()
{
reader.Reset();
return reader.ReadBytes((int)byteSize);
}
2018-09-26 17:15:37 +00:00
}
}