mirror of
https://github.com/aelurum/AssetStudio.git
synced 2025-06-03 00:58:13 -04:00
Some improvements
This commit is contained in:
parent
a3c92ddb8f
commit
674c634c2c
@ -621,9 +621,8 @@ namespace AssetStudio
|
|||||||
public GenericBinding FindBinding(int index)
|
public GenericBinding FindBinding(int index)
|
||||||
{
|
{
|
||||||
int curves = 0;
|
int curves = 0;
|
||||||
for (int i = 0; i < genericBindings.Count; i++)
|
foreach (var b in genericBindings)
|
||||||
{
|
{
|
||||||
GenericBinding b = genericBindings[i];
|
|
||||||
curves += b.attribute == 2 ? 4 : b.attribute <= 4 ? 3 : 1;
|
curves += b.attribute == 2 ? 4 : b.attribute <= 4 ? 3 : 1;
|
||||||
if (curves > index)
|
if (curves > index)
|
||||||
{
|
{
|
||||||
@ -633,17 +632,6 @@ namespace AssetStudio
|
|||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public GenericBinding FindBinding(uint path, uint attribute)
|
|
||||||
{
|
|
||||||
return genericBindings.Find
|
|
||||||
(
|
|
||||||
delegate (GenericBinding b)
|
|
||||||
{
|
|
||||||
return b.path == path && b.attribute == attribute;
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public class AnimationClip
|
public class AnimationClip
|
||||||
|
@ -40,13 +40,6 @@ namespace AssetStudio
|
|||||||
var sourceFile = preloadData.sourceFile;
|
var sourceFile = preloadData.sourceFile;
|
||||||
var reader = preloadData.InitReader();
|
var reader = preloadData.InitReader();
|
||||||
|
|
||||||
if (sourceFile.platform == -2)
|
|
||||||
{
|
|
||||||
uint m_ObjectHideFlags = reader.ReadUInt32();
|
|
||||||
PPtr m_PrefabParentObject = sourceFile.ReadPPtr();
|
|
||||||
PPtr m_PrefabInternal = sourceFile.ReadPPtr();
|
|
||||||
}
|
|
||||||
|
|
||||||
m_Name = reader.ReadAlignedString();
|
m_Name = reader.ReadAlignedString();
|
||||||
version5 = sourceFile.version[0] >= 5;
|
version5 = sourceFile.version[0] >= 5;
|
||||||
if (sourceFile.version[0] < 5)
|
if (sourceFile.version[0] < 5)
|
||||||
|
@ -15,13 +15,6 @@ namespace AssetStudio
|
|||||||
var sourceFile = preloadData.sourceFile;
|
var sourceFile = preloadData.sourceFile;
|
||||||
var reader = preloadData.InitReader();
|
var reader = preloadData.InitReader();
|
||||||
|
|
||||||
if (sourceFile.platform == -2)
|
|
||||||
{
|
|
||||||
uint m_ObjectHideFlags = reader.ReadUInt32();
|
|
||||||
PPtr m_PrefabParentObject = sourceFile.ReadPPtr();
|
|
||||||
PPtr m_PrefabInternal = sourceFile.ReadPPtr();
|
|
||||||
}
|
|
||||||
|
|
||||||
m_Name = reader.ReadAlignedString();
|
m_Name = reader.ReadAlignedString();
|
||||||
|
|
||||||
if (readSwitch)
|
if (readSwitch)
|
||||||
|
@ -33,13 +33,6 @@ namespace AssetStudio
|
|||||||
|
|
||||||
uniqueID = preloadData.uniqueID;
|
uniqueID = preloadData.uniqueID;
|
||||||
|
|
||||||
if (sourceFile.platform == -2)
|
|
||||||
{
|
|
||||||
uint m_ObjectHideFlags = reader.ReadUInt32();
|
|
||||||
PPtr m_PrefabParentObject = sourceFile.ReadPPtr();
|
|
||||||
PPtr m_PrefabInternal = sourceFile.ReadPPtr();
|
|
||||||
}
|
|
||||||
|
|
||||||
int m_Component_size = reader.ReadInt32();
|
int m_Component_size = reader.ReadInt32();
|
||||||
for (int j = 0; j < m_Component_size; j++)
|
for (int j = 0; j < m_Component_size; j++)
|
||||||
{
|
{
|
||||||
|
@ -40,13 +40,6 @@ namespace AssetStudio
|
|||||||
var sourceFile = preloadData.sourceFile;
|
var sourceFile = preloadData.sourceFile;
|
||||||
var reader = preloadData.InitReader();
|
var reader = preloadData.InitReader();
|
||||||
|
|
||||||
if (sourceFile.platform == -2)
|
|
||||||
{
|
|
||||||
uint m_ObjectHideFlags = reader.ReadUInt32();
|
|
||||||
PPtr m_PrefabParentObject = sourceFile.ReadPPtr();
|
|
||||||
PPtr m_PrefabInternal = sourceFile.ReadPPtr();
|
|
||||||
}
|
|
||||||
|
|
||||||
m_Name = reader.ReadAlignedString();
|
m_Name = reader.ReadAlignedString();
|
||||||
m_Shader = sourceFile.ReadPPtr();
|
m_Shader = sourceFile.ReadPPtr();
|
||||||
|
|
||||||
|
@ -16,13 +16,6 @@ namespace AssetStudio
|
|||||||
var sourceFile = preloadData.sourceFile;
|
var sourceFile = preloadData.sourceFile;
|
||||||
var reader = preloadData.InitReader();
|
var reader = preloadData.InitReader();
|
||||||
|
|
||||||
if (sourceFile.platform == -2)
|
|
||||||
{
|
|
||||||
uint m_ObjectHideFlags = reader.ReadUInt32();
|
|
||||||
PPtr m_PrefabParentObject = sourceFile.ReadPPtr();
|
|
||||||
PPtr m_PrefabInternal = sourceFile.ReadPPtr();
|
|
||||||
}
|
|
||||||
|
|
||||||
m_GameObject = sourceFile.ReadPPtr();
|
m_GameObject = sourceFile.ReadPPtr();
|
||||||
m_Mesh = sourceFile.ReadPPtr();
|
m_Mesh = sourceFile.ReadPPtr();
|
||||||
}
|
}
|
||||||
|
@ -22,13 +22,6 @@ namespace AssetStudio
|
|||||||
var sourceFile = preloadData.sourceFile;
|
var sourceFile = preloadData.sourceFile;
|
||||||
var reader = preloadData.InitReader();
|
var reader = preloadData.InitReader();
|
||||||
|
|
||||||
if (sourceFile.platform == -2)
|
|
||||||
{
|
|
||||||
uint m_ObjectHideFlags = reader.ReadUInt32();
|
|
||||||
PPtr m_PrefabParentObject = sourceFile.ReadPPtr();
|
|
||||||
PPtr m_PrefabInternal = sourceFile.ReadPPtr();
|
|
||||||
}
|
|
||||||
|
|
||||||
m_GameObject = sourceFile.ReadPPtr();
|
m_GameObject = sourceFile.ReadPPtr();
|
||||||
|
|
||||||
if (sourceFile.version[0] < 5)
|
if (sourceFile.version[0] < 5)
|
||||||
|
@ -18,13 +18,6 @@ namespace AssetStudio
|
|||||||
var sourceFile = preloadData.sourceFile;
|
var sourceFile = preloadData.sourceFile;
|
||||||
var reader = preloadData.InitReader();
|
var reader = preloadData.InitReader();
|
||||||
|
|
||||||
if (sourceFile.platform == -2)
|
|
||||||
{
|
|
||||||
uint m_ObjectHideFlags = reader.ReadUInt32();
|
|
||||||
PPtr m_PrefabParentObject = sourceFile.ReadPPtr();
|
|
||||||
PPtr m_PrefabInternal = sourceFile.ReadPPtr();
|
|
||||||
}
|
|
||||||
|
|
||||||
m_Name = reader.ReadAlignedString();
|
m_Name = reader.ReadAlignedString();
|
||||||
|
|
||||||
if (readSwitch)
|
if (readSwitch)
|
||||||
|
@ -17,13 +17,6 @@ namespace AssetStudio
|
|||||||
var version = preloadData.sourceFile.version;
|
var version = preloadData.sourceFile.version;
|
||||||
var reader = preloadData.InitReader();
|
var reader = preloadData.InitReader();
|
||||||
|
|
||||||
if (sourceFile.platform == -2)
|
|
||||||
{
|
|
||||||
uint m_ObjectHideFlags = reader.ReadUInt32();
|
|
||||||
PPtr m_PrefabParentObject = sourceFile.ReadPPtr();
|
|
||||||
PPtr m_PrefabInternal = sourceFile.ReadPPtr();
|
|
||||||
}
|
|
||||||
|
|
||||||
m_GameObject = sourceFile.ReadPPtr();
|
m_GameObject = sourceFile.ReadPPtr();
|
||||||
if (sourceFile.version[0] < 5)
|
if (sourceFile.version[0] < 5)
|
||||||
{
|
{
|
||||||
|
@ -16,13 +16,6 @@ namespace AssetStudio
|
|||||||
var sourceFile = preloadData.sourceFile;
|
var sourceFile = preloadData.sourceFile;
|
||||||
var reader = preloadData.InitReader();
|
var reader = preloadData.InitReader();
|
||||||
|
|
||||||
if (sourceFile.platform == -2)
|
|
||||||
{
|
|
||||||
uint m_ObjectHideFlags = reader.ReadUInt32();
|
|
||||||
PPtr m_PrefabParentObject = sourceFile.ReadPPtr();
|
|
||||||
PPtr m_PrefabInternal = sourceFile.ReadPPtr();
|
|
||||||
}
|
|
||||||
|
|
||||||
m_Name = reader.ReadAlignedString();
|
m_Name = reader.ReadAlignedString();
|
||||||
|
|
||||||
if (readSwitch)
|
if (readSwitch)
|
||||||
|
@ -45,13 +45,6 @@ namespace AssetStudio
|
|||||||
var reader = preloadData.InitReader();
|
var reader = preloadData.InitReader();
|
||||||
var version = sourceFile.version;
|
var version = sourceFile.version;
|
||||||
|
|
||||||
if (sourceFile.platform == -2)
|
|
||||||
{
|
|
||||||
uint m_ObjectHideFlags = reader.ReadUInt32();
|
|
||||||
PPtr m_PrefabParentObject = sourceFile.ReadPPtr();
|
|
||||||
PPtr m_PrefabInternal = sourceFile.ReadPPtr();
|
|
||||||
}
|
|
||||||
|
|
||||||
m_Name = reader.ReadAlignedString();
|
m_Name = reader.ReadAlignedString();
|
||||||
if (version[0] > 2017 || (version[0] == 2017 && version[1] >= 3))//2017.3 and up
|
if (version[0] > 2017 || (version[0] == 2017 && version[1] >= 3))//2017.3 and up
|
||||||
{
|
{
|
||||||
|
@ -19,13 +19,6 @@ namespace AssetStudio
|
|||||||
var sourceFile = preloadData.sourceFile;
|
var sourceFile = preloadData.sourceFile;
|
||||||
var reader = preloadData.InitReader();
|
var reader = preloadData.InitReader();
|
||||||
|
|
||||||
if (sourceFile.platform == -2)
|
|
||||||
{
|
|
||||||
uint m_ObjectHideFlags = reader.ReadUInt32();
|
|
||||||
PPtr m_PrefabParentObject = sourceFile.ReadPPtr();
|
|
||||||
PPtr m_PrefabInternal = sourceFile.ReadPPtr();
|
|
||||||
}
|
|
||||||
|
|
||||||
m_GameObject = sourceFile.ReadPPtr();
|
m_GameObject = sourceFile.ReadPPtr();
|
||||||
m_LocalRotation = new[] { reader.ReadSingle(), reader.ReadSingle(), reader.ReadSingle(), reader.ReadSingle() };
|
m_LocalRotation = new[] { reader.ReadSingle(), reader.ReadSingle(), reader.ReadSingle(), reader.ReadSingle() };
|
||||||
m_LocalPosition = new[] { reader.ReadSingle(), reader.ReadSingle(), reader.ReadSingle() };
|
m_LocalPosition = new[] { reader.ReadSingle(), reader.ReadSingle(), reader.ReadSingle() };
|
||||||
|
@ -967,9 +967,9 @@ namespace AssetStudio
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
lineSplit = ob.Length;
|
lineSplit = ob.Length;
|
||||||
for (int i = 0; i < m_Mesh.m_materialIDs.Count; i++)
|
foreach (var m_materialID in m_Mesh.m_materialIDs)
|
||||||
{
|
{
|
||||||
ob.AppendFormat("{0},", m_Mesh.m_materialIDs[i]);
|
ob.AppendFormat("{0},", m_materialID);
|
||||||
|
|
||||||
if (ob.Length - lineSplit > 2000)
|
if (ob.Length - lineSplit > 2000)
|
||||||
{
|
{
|
||||||
|
@ -213,8 +213,6 @@ namespace AssetStudio
|
|||||||
{
|
{
|
||||||
var submesh = mesh.m_SubMeshes[i];
|
var submesh = mesh.m_SubMeshes[i];
|
||||||
var iSubmesh = new ImportedSubmesh();
|
var iSubmesh = new ImportedSubmesh();
|
||||||
iSubmesh.Index = i;
|
|
||||||
iSubmesh.Visible = true;
|
|
||||||
Material mat = null;
|
Material mat = null;
|
||||||
if (i < meshR.m_Materials.Length)
|
if (i < meshR.m_Materials.Length)
|
||||||
{
|
{
|
||||||
@ -867,9 +865,9 @@ namespace AssetStudio
|
|||||||
|
|
||||||
private static ImportedVertex GetSourceVertex(List<ImportedSubmesh> submeshList, int morphVertIndex)
|
private static ImportedVertex GetSourceVertex(List<ImportedSubmesh> submeshList, int morphVertIndex)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < submeshList.Count; i++)
|
foreach (var submesh in submeshList)
|
||||||
{
|
{
|
||||||
List<ImportedVertex> vertList = submeshList[i].VertexList;
|
var vertList = submesh.VertexList;
|
||||||
if (morphVertIndex < vertList.Count)
|
if (morphVertIndex < vertList.Count)
|
||||||
{
|
{
|
||||||
return vertList[morphVertIndex];
|
return vertList[morphVertIndex];
|
||||||
|
@ -414,12 +414,10 @@ namespace AssetStudio
|
|||||||
ProgressBarPerformStep();
|
ProgressBarPerformStep();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (fileNode.Nodes.Count > 0)
|
||||||
if (fileNode.Nodes.Count == 0)
|
|
||||||
{
|
{
|
||||||
fileNode.Text += " (no children)";
|
fileNodes.Add(fileNode);
|
||||||
}
|
}
|
||||||
fileNodes.Add(fileNode);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (File.Exists(mainPath + "\\materials.json"))
|
if (File.Exists(mainPath + "\\materials.json"))
|
||||||
|
@ -19,7 +19,6 @@ namespace AssetStudio
|
|||||||
{
|
{
|
||||||
public string Name { get; set; }
|
public string Name { get; set; }
|
||||||
public Matrix Matrix { get; set; }
|
public Matrix Matrix { get; set; }
|
||||||
|
|
||||||
public dynamic Parent { get; set; }
|
public dynamic Parent { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -35,9 +34,6 @@ namespace AssetStudio
|
|||||||
public List<ImportedVertex> VertexList { get; set; }
|
public List<ImportedVertex> VertexList { get; set; }
|
||||||
public List<ImportedFace> FaceList { get; set; }
|
public List<ImportedFace> FaceList { get; set; }
|
||||||
public string Material { get; set; }
|
public string Material { get; set; }
|
||||||
public int Index { get; set; }
|
|
||||||
public bool WorldCoords { get; set; }
|
|
||||||
public bool Visible { get; set; }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public class ImportedVertex
|
public class ImportedVertex
|
||||||
|
@ -5,67 +5,61 @@ using System.IO;
|
|||||||
|
|
||||||
namespace AssetStudio
|
namespace AssetStudio
|
||||||
{
|
{
|
||||||
public interface IObjChild
|
public interface IObjChild
|
||||||
{
|
{
|
||||||
dynamic Parent { get; set; }
|
dynamic Parent { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public abstract class ObjChildren<T> : IEnumerable<T> where T : IObjChild
|
public abstract class ObjChildren<T> : IEnumerable<T> where T : IObjChild
|
||||||
{
|
{
|
||||||
protected List<T> children;
|
protected List<T> children;
|
||||||
|
|
||||||
public T this[int i]
|
public T this[int i] => children[i];
|
||||||
{
|
|
||||||
get { return (T)children[i]; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public int Count
|
public int Count => children.Count;
|
||||||
{
|
|
||||||
get { return children.Count; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public void InitChildren(int count)
|
public void InitChildren(int count)
|
||||||
{
|
{
|
||||||
children = new List<T>(count);
|
children = new List<T>(count);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void AddChild(T obj)
|
public void AddChild(T obj)
|
||||||
{
|
{
|
||||||
children.Add(obj);
|
children.Add(obj);
|
||||||
obj.Parent = this;
|
obj.Parent = this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void InsertChild(int i, T obj)
|
public void InsertChild(int i, T obj)
|
||||||
{
|
{
|
||||||
children.Insert(i, obj);
|
children.Insert(i, obj);
|
||||||
obj.Parent = this;
|
obj.Parent = this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void RemoveChild(T obj)
|
public void RemoveChild(T obj)
|
||||||
{
|
{
|
||||||
obj.Parent = null;
|
obj.Parent = null;
|
||||||
children.Remove(obj);
|
children.Remove(obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void RemoveChild(int i)
|
public void RemoveChild(int i)
|
||||||
{
|
{
|
||||||
children[i].Parent = null;
|
children[i].Parent = null;
|
||||||
children.RemoveAt(i);
|
children.RemoveAt(i);
|
||||||
}
|
}
|
||||||
|
|
||||||
public int IndexOf(T obj)
|
public int IndexOf(T obj)
|
||||||
{
|
{
|
||||||
return children.IndexOf(obj);
|
return children.IndexOf(obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
public IEnumerator<T> GetEnumerator()
|
public IEnumerator<T> GetEnumerator()
|
||||||
{
|
{
|
||||||
return children.GetEnumerator();
|
return children.GetEnumerator();
|
||||||
}
|
}
|
||||||
|
|
||||||
IEnumerator IEnumerable.GetEnumerator()
|
IEnumerator IEnumerable.GetEnumerator()
|
||||||
{
|
{
|
||||||
return GetEnumerator();
|
return GetEnumerator();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user