mirror of
https://github.com/aelurum/AssetStudio.git
synced 2025-05-25 05:40:21 -04:00
use list to store objects in their original order
This commit is contained in:
parent
c4270e186d
commit
e1dc54d6d7
@ -244,7 +244,6 @@ namespace AssetStudio
|
|||||||
Progress.Reset();
|
Progress.Reset();
|
||||||
foreach (var assetsFile in assetsFileList)
|
foreach (var assetsFile in assetsFileList)
|
||||||
{
|
{
|
||||||
assetsFile.Objects = new Dictionary<long, Object>(assetsFile.m_Objects.Count);
|
|
||||||
foreach (var objectInfo in assetsFile.m_Objects)
|
foreach (var objectInfo in assetsFile.m_Objects)
|
||||||
{
|
{
|
||||||
var objectReader = new ObjectReader(assetsFile.reader, assetsFile, objectInfo);
|
var objectReader = new ObjectReader(assetsFile.reader, assetsFile, objectInfo);
|
||||||
@ -338,7 +337,7 @@ namespace AssetStudio
|
|||||||
obj = new Object(objectReader);
|
obj = new Object(objectReader);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
assetsFile.Objects.Add(objectInfo.m_PathID, obj);
|
assetsFile.AddObject(obj);
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
@ -362,7 +361,7 @@ namespace AssetStudio
|
|||||||
|
|
||||||
foreach (var assetsFile in assetsFileList)
|
foreach (var assetsFile in assetsFileList)
|
||||||
{
|
{
|
||||||
foreach (var obj in assetsFile.Objects.Values)
|
foreach (var obj in assetsFile.Objects)
|
||||||
{
|
{
|
||||||
if (obj is GameObject m_GameObject)
|
if (obj is GameObject m_GameObject)
|
||||||
{
|
{
|
||||||
|
@ -57,7 +57,7 @@ namespace AssetStudio
|
|||||||
{
|
{
|
||||||
if (TryGetAssetsFile(out var sourceFile))
|
if (TryGetAssetsFile(out var sourceFile))
|
||||||
{
|
{
|
||||||
if (sourceFile.Objects.TryGetValue(m_PathID, out var obj))
|
if (sourceFile.ObjectsDic.TryGetValue(m_PathID, out var obj))
|
||||||
{
|
{
|
||||||
if (obj is T variable)
|
if (obj is T variable)
|
||||||
{
|
{
|
||||||
@ -75,7 +75,7 @@ namespace AssetStudio
|
|||||||
{
|
{
|
||||||
if (TryGetAssetsFile(out var sourceFile))
|
if (TryGetAssetsFile(out var sourceFile))
|
||||||
{
|
{
|
||||||
if (sourceFile.Objects.TryGetValue(m_PathID, out var obj))
|
if (sourceFile.ObjectsDic.TryGetValue(m_PathID, out var obj))
|
||||||
{
|
{
|
||||||
if (obj is T2 variable)
|
if (obj is T2 variable)
|
||||||
{
|
{
|
||||||
|
@ -15,7 +15,8 @@ namespace AssetStudio
|
|||||||
public string fileName;
|
public string fileName;
|
||||||
public int[] version = { 0, 0, 0, 0 };
|
public int[] version = { 0, 0, 0, 0 };
|
||||||
public BuildType buildType;
|
public BuildType buildType;
|
||||||
public Dictionary<long, Object> Objects;
|
public List<Object> Objects;
|
||||||
|
public Dictionary<long, Object> ObjectsDic;
|
||||||
|
|
||||||
public SerializedFileHeader header;
|
public SerializedFileHeader header;
|
||||||
private EndianType m_FileEndianess;
|
private EndianType m_FileEndianess;
|
||||||
@ -100,6 +101,8 @@ namespace AssetStudio
|
|||||||
//ReadObjects
|
//ReadObjects
|
||||||
int objectCount = reader.ReadInt32();
|
int objectCount = reader.ReadInt32();
|
||||||
m_Objects = new List<ObjectInfo>(objectCount);
|
m_Objects = new List<ObjectInfo>(objectCount);
|
||||||
|
Objects = new List<Object>(objectCount);
|
||||||
|
ObjectsDic = new Dictionary<long, Object>(objectCount);
|
||||||
for (int i = 0; i < objectCount; i++)
|
for (int i = 0; i < objectCount; i++)
|
||||||
{
|
{
|
||||||
var objectInfo = new ObjectInfo();
|
var objectInfo = new ObjectInfo();
|
||||||
@ -331,6 +334,12 @@ namespace AssetStudio
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void AddObject(Object obj)
|
||||||
|
{
|
||||||
|
Objects.Add(obj);
|
||||||
|
ObjectsDic.Add(obj.m_PathID, obj);
|
||||||
|
}
|
||||||
|
|
||||||
public static bool IsSerializedFile(EndianBinaryReader reader)
|
public static bool IsSerializedFile(EndianBinaryReader reader)
|
||||||
{
|
{
|
||||||
var fileSize = reader.BaseStream.Length;
|
var fileSize = reader.BaseStream.Length;
|
||||||
|
@ -110,7 +110,7 @@ namespace AssetStudioGUI
|
|||||||
{
|
{
|
||||||
var tempExportableAssets = new List<AssetItem>();
|
var tempExportableAssets = new List<AssetItem>();
|
||||||
Dictionary<long, string> containers = null;
|
Dictionary<long, string> containers = null;
|
||||||
foreach (var asset in assetsFile.Objects.Values)
|
foreach (var asset in assetsFile.Objects)
|
||||||
{
|
{
|
||||||
var assetItem = new AssetItem(asset);
|
var assetItem = new AssetItem(asset);
|
||||||
objectAssetItemDic.Add(asset, assetItem);
|
objectAssetItemDic.Add(asset, assetItem);
|
||||||
@ -230,7 +230,7 @@ namespace AssetStudioGUI
|
|||||||
{
|
{
|
||||||
var fileNode = new GameObjectTreeNode(assetsFile.fileName); //RootNode
|
var fileNode = new GameObjectTreeNode(assetsFile.fileName); //RootNode
|
||||||
|
|
||||||
foreach (var obj in assetsFile.Objects.Values)
|
foreach (var obj in assetsFile.Objects)
|
||||||
{
|
{
|
||||||
if (obj is GameObject m_GameObject)
|
if (obj is GameObject m_GameObject)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user