Skip to content
This repository was archived by the owner on Jan 21, 2023. It is now read-only.

Commit e1dc54d

Browse files
committed
use list to store objects in their original order
1 parent c4270e1 commit e1dc54d

File tree

4 files changed

+16
-8
lines changed

4 files changed

+16
-8
lines changed

AssetStudio/AssetsManager.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,6 @@ private void ReadAssets()
244244
Progress.Reset();
245245
foreach (var assetsFile in assetsFileList)
246246
{
247-
assetsFile.Objects = new Dictionary<long, Object>(assetsFile.m_Objects.Count);
248247
foreach (var objectInfo in assetsFile.m_Objects)
249248
{
250249
var objectReader = new ObjectReader(assetsFile.reader, assetsFile, objectInfo);
@@ -338,7 +337,7 @@ private void ReadAssets()
338337
obj = new Object(objectReader);
339338
break;
340339
}
341-
assetsFile.Objects.Add(objectInfo.m_PathID, obj);
340+
assetsFile.AddObject(obj);
342341
}
343342
catch (Exception e)
344343
{
@@ -362,7 +361,7 @@ private void ProcessAssets()
362361

363362
foreach (var assetsFile in assetsFileList)
364363
{
365-
foreach (var obj in assetsFile.Objects.Values)
364+
foreach (var obj in assetsFile.Objects)
366365
{
367366
if (obj is GameObject m_GameObject)
368367
{

AssetStudio/Classes/PPtr.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ public bool TryGet(out T result)
5757
{
5858
if (TryGetAssetsFile(out var sourceFile))
5959
{
60-
if (sourceFile.Objects.TryGetValue(m_PathID, out var obj))
60+
if (sourceFile.ObjectsDic.TryGetValue(m_PathID, out var obj))
6161
{
6262
if (obj is T variable)
6363
{
@@ -75,7 +75,7 @@ public bool TryGet<T2>(out T2 result) where T2 : Object
7575
{
7676
if (TryGetAssetsFile(out var sourceFile))
7777
{
78-
if (sourceFile.Objects.TryGetValue(m_PathID, out var obj))
78+
if (sourceFile.ObjectsDic.TryGetValue(m_PathID, out var obj))
7979
{
8080
if (obj is T2 variable)
8181
{

AssetStudio/SerializedFile.cs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ public class SerializedFile
1515
public string fileName;
1616
public int[] version = { 0, 0, 0, 0 };
1717
public BuildType buildType;
18-
public Dictionary<long, Object> Objects;
18+
public List<Object> Objects;
19+
public Dictionary<long, Object> ObjectsDic;
1920

2021
public SerializedFileHeader header;
2122
private EndianType m_FileEndianess;
@@ -100,6 +101,8 @@ public SerializedFile(AssetsManager assetsManager, string fullName, EndianBinary
100101
//ReadObjects
101102
int objectCount = reader.ReadInt32();
102103
m_Objects = new List<ObjectInfo>(objectCount);
104+
Objects = new List<Object>(objectCount);
105+
ObjectsDic = new Dictionary<long, Object>(objectCount);
103106
for (int i = 0; i < objectCount; i++)
104107
{
105108
var objectInfo = new ObjectInfo();
@@ -331,6 +334,12 @@ string ReadString(BinaryReader stringBufferReader, uint value)
331334
}
332335
}
333336

337+
public void AddObject(Object obj)
338+
{
339+
Objects.Add(obj);
340+
ObjectsDic.Add(obj.m_PathID, obj);
341+
}
342+
334343
public static bool IsSerializedFile(EndianBinaryReader reader)
335344
{
336345
var fileSize = reader.BaseStream.Length;

AssetStudioGUI/Studio.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ public static (string, List<TreeNode>) BuildAssetData()
110110
{
111111
var tempExportableAssets = new List<AssetItem>();
112112
Dictionary<long, string> containers = null;
113-
foreach (var asset in assetsFile.Objects.Values)
113+
foreach (var asset in assetsFile.Objects)
114114
{
115115
var assetItem = new AssetItem(asset);
116116
objectAssetItemDic.Add(asset, assetItem);
@@ -230,7 +230,7 @@ public static (string, List<TreeNode>) BuildAssetData()
230230
{
231231
var fileNode = new GameObjectTreeNode(assetsFile.fileName); //RootNode
232232

233-
foreach (var obj in assetsFile.Objects.Values)
233+
foreach (var obj in assetsFile.Objects)
234234
{
235235
if (obj is GameObject m_GameObject)
236236
{

0 commit comments

Comments
 (0)