mirror of
https://github.com/aelurum/AssetStudio.git
synced 2025-05-27 22:00:23 -04:00
Add Texture2DArray loading via typetree
This commit is contained in:
parent
bc9380b8be
commit
045f6c0ff4
@ -572,7 +572,9 @@ namespace AssetStudio
|
|||||||
: new Texture2D(objectReader, TypeTreeHelper.ReadType(objectReader.serializedType.m_Type, objectReader));
|
: new Texture2D(objectReader, TypeTreeHelper.ReadType(objectReader.serializedType.m_Type, objectReader));
|
||||||
break;
|
break;
|
||||||
case ClassIDType.Texture2DArray:
|
case ClassIDType.Texture2DArray:
|
||||||
obj = new Texture2DArray(objectReader);
|
obj = objectReader.serializedType?.m_Type == null
|
||||||
|
? new Texture2DArray(objectReader)
|
||||||
|
: new Texture2DArray(objectReader, TypeTreeHelper.ReadType(objectReader.serializedType.m_Type, objectReader));
|
||||||
break;
|
break;
|
||||||
case ClassIDType.Transform:
|
case ClassIDType.Transform:
|
||||||
obj = new Transform(objectReader);
|
obj = new Transform(objectReader);
|
||||||
|
@ -1,4 +1,6 @@
|
|||||||
using System.Collections.Generic;
|
using Newtonsoft.Json;
|
||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
namespace AssetStudio
|
namespace AssetStudio
|
||||||
{
|
{
|
||||||
@ -16,6 +18,8 @@ namespace AssetStudio
|
|||||||
public StreamingInfo m_StreamData;
|
public StreamingInfo m_StreamData;
|
||||||
public List<Texture2D> TextureList;
|
public List<Texture2D> TextureList;
|
||||||
|
|
||||||
|
public Texture2DArray() { }
|
||||||
|
|
||||||
public Texture2DArray(ObjectReader reader) : base(reader)
|
public Texture2DArray(ObjectReader reader) : base(reader)
|
||||||
{
|
{
|
||||||
m_ColorSpace = reader.ReadInt32();
|
m_ColorSpace = reader.ReadInt32();
|
||||||
@ -39,14 +43,29 @@ namespace AssetStudio
|
|||||||
m_StreamData = new StreamingInfo(reader);
|
m_StreamData = new StreamingInfo(reader);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(m_StreamData?.path))
|
image_data = !string.IsNullOrEmpty(m_StreamData?.path)
|
||||||
{
|
? new ResourceReader(m_StreamData.path, assetsFile, m_StreamData.offset, (int)m_StreamData.size)
|
||||||
image_data = new ResourceReader(m_StreamData.path, assetsFile, m_StreamData.offset, (int)m_StreamData.size);
|
: new ResourceReader(reader, reader.BaseStream.Position, image_data_size);
|
||||||
}
|
|
||||||
else
|
TextureList = new List<Texture2D>();
|
||||||
{
|
}
|
||||||
image_data = new ResourceReader(reader, reader.BaseStream.Position, image_data_size);
|
|
||||||
}
|
public Texture2DArray(ObjectReader reader, IDictionary typeDict) : base(reader)
|
||||||
|
{
|
||||||
|
var parsedTex2dArray = JsonConvert.DeserializeObject<Texture2DArray>(JsonConvert.SerializeObject(typeDict));
|
||||||
|
m_Width = parsedTex2dArray.m_Width;
|
||||||
|
m_Height = parsedTex2dArray.m_Height;
|
||||||
|
m_Depth = parsedTex2dArray.m_Depth;
|
||||||
|
m_Format = parsedTex2dArray.m_Format;
|
||||||
|
m_MipCount = parsedTex2dArray.m_MipCount;
|
||||||
|
m_DataSize = parsedTex2dArray.m_DataSize;
|
||||||
|
m_TextureSettings = parsedTex2dArray.m_TextureSettings;
|
||||||
|
m_StreamData = parsedTex2dArray.m_StreamData;
|
||||||
|
|
||||||
|
image_data = !string.IsNullOrEmpty(m_StreamData?.path)
|
||||||
|
? new ResourceReader(m_StreamData.path, assetsFile, m_StreamData.offset, m_StreamData.size)
|
||||||
|
: new ResourceReader(reader, parsedTex2dArray.image_data.Offset, parsedTex2dArray.image_data.Size);
|
||||||
|
typeDict.Clear();
|
||||||
|
|
||||||
TextureList = new List<Texture2D>();
|
TextureList = new List<Texture2D>();
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user