mirror of
https://github.com/aelurum/AssetStudio.git
synced 2025-05-27 22:00:23 -04:00
Fix bug with some avg sprites
- Changed face sprite detection method. We can't rely on the "IsWholeBody" flag
This commit is contained in:
parent
9632e88115
commit
e30b9e9e89
@ -93,17 +93,19 @@ namespace Arknights
|
|||||||
Alias = curSpriteData.Alias;
|
Alias = curSpriteData.Alias;
|
||||||
IsWholeBodySprite = curSpriteData.IsWholeBody;
|
IsWholeBodySprite = curSpriteData.IsWholeBody;
|
||||||
|
|
||||||
if (spriteHubData.FaceSize.X > 0 && spriteHubData.FaceSize.Y > 0)
|
if (spriteHubData.FaceSize.X > 0 && spriteHubData.FaceSize.Y > 0) //If face data exist
|
||||||
{
|
{
|
||||||
var fullTexSpriteData = spriteHubData.Sprites.Last(); //Last sprite item in the list usually contains PathID of Sprite with full texture
|
var fullTexSpriteData = spriteHubData.Sprites.Last(); //Last sprite item in the list usually contains PathID of Sprite with full texture
|
||||||
if (IsWholeBodySprite || curSpriteData.Equals(fullTexSpriteData))
|
|
||||||
|
var curSprite = (Sprite)assetItem.Asset;
|
||||||
|
IsFaceSprite = curSprite.m_Rect.width <= 256 && curSprite.m_Rect.height <= 256 && curSprite.m_PathID != fullTexSpriteData.Sprite.m_PathID;
|
||||||
|
|
||||||
|
var curSpriteAlphaID = curSpriteData.AlphaTex.m_PathID;
|
||||||
|
var curSpriteAlphaTex = (Texture2D)Studio.loadedAssetsList.Find(x => x.m_PathID == curSpriteAlphaID)?.Asset;
|
||||||
|
if (curSpriteAlphaTex != null)
|
||||||
{
|
{
|
||||||
fullTexSpriteData = curSpriteData;
|
FaceSpriteAlphaTexture = IsFaceSprite ? curSpriteAlphaTex : null;
|
||||||
}
|
fullTexSpriteData = IsFaceSprite ? fullTexSpriteData : curSpriteData;
|
||||||
else
|
|
||||||
{
|
|
||||||
var faceAlphaID = curSpriteData.AlphaTex.m_PathID;
|
|
||||||
FaceSpriteAlphaTexture = (Texture2D)Studio.loadedAssetsList.Find(x => x.m_PathID == faceAlphaID)?.Asset;
|
|
||||||
}
|
}
|
||||||
var fullTexSpriteID = fullTexSpriteData.Sprite.m_PathID;
|
var fullTexSpriteID = fullTexSpriteData.Sprite.m_PathID;
|
||||||
var fullTexAlphaID = fullTexSpriteData.AlphaTex.m_PathID;
|
var fullTexAlphaID = fullTexSpriteData.AlphaTex.m_PathID;
|
||||||
@ -113,7 +115,6 @@ namespace Arknights
|
|||||||
FullAlphaTexture = (Texture2D)Studio.loadedAssetsList.Find(x => x.m_PathID == fullTexAlphaID)?.Asset;
|
FullAlphaTexture = (Texture2D)Studio.loadedAssetsList.Find(x => x.m_PathID == fullTexAlphaID)?.Asset;
|
||||||
FacePos = new Point((int)Math.Round(spriteHubData.FacePos.X), (int)Math.Round(spriteHubData.FacePos.Y));
|
FacePos = new Point((int)Math.Round(spriteHubData.FacePos.X), (int)Math.Round(spriteHubData.FacePos.Y));
|
||||||
FaceSize = new Size((int)Math.Round(spriteHubData.FaceSize.X), (int)Math.Round(spriteHubData.FaceSize.Y));
|
FaceSize = new Size((int)Math.Round(spriteHubData.FaceSize.X), (int)Math.Round(spriteHubData.FaceSize.Y));
|
||||||
IsFaceSprite = assetItem.m_PathID != fullTexSpriteID;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -93,17 +93,19 @@ namespace Arknights
|
|||||||
Alias = curSpriteData.Alias;
|
Alias = curSpriteData.Alias;
|
||||||
IsWholeBodySprite = curSpriteData.IsWholeBody;
|
IsWholeBodySprite = curSpriteData.IsWholeBody;
|
||||||
|
|
||||||
if (spriteHubData.FaceSize.X > 0 && spriteHubData.FaceSize.Y > 0)
|
if (spriteHubData.FaceSize.X > 0 && spriteHubData.FaceSize.Y > 0) //If face data exist
|
||||||
{
|
{
|
||||||
var fullTexSpriteData = spriteHubData.Sprites.Last(); //Last sprite item in the list usually contains PathID of Sprite with full texture
|
var fullTexSpriteData = spriteHubData.Sprites.Last(); //Last sprite item in the list usually contains PathID of Sprite with full texture
|
||||||
if (IsWholeBodySprite || curSpriteData.Equals(fullTexSpriteData))
|
|
||||||
|
var curSprite = (Sprite)assetItem.Asset;
|
||||||
|
IsFaceSprite = curSprite.m_Rect.width <= 256 && curSprite.m_Rect.height <= 256 && curSprite.m_PathID != fullTexSpriteData.Sprite.m_PathID;
|
||||||
|
|
||||||
|
var curSpriteAlphaID = curSpriteData.AlphaTex.m_PathID;
|
||||||
|
var curSpriteAlphaTex = (Texture2D)Studio.exportableAssets.Find(x => x.m_PathID == curSpriteAlphaID)?.Asset;
|
||||||
|
if (curSpriteAlphaTex != null)
|
||||||
{
|
{
|
||||||
fullTexSpriteData = curSpriteData;
|
FaceSpriteAlphaTexture = IsFaceSprite ? curSpriteAlphaTex : null;
|
||||||
}
|
fullTexSpriteData = IsFaceSprite ? fullTexSpriteData : curSpriteData;
|
||||||
else
|
|
||||||
{
|
|
||||||
var faceAlphaID = curSpriteData.AlphaTex.m_PathID;
|
|
||||||
FaceSpriteAlphaTexture = (Texture2D)Studio.exportableAssets.Find(x => x.m_PathID == faceAlphaID)?.Asset;
|
|
||||||
}
|
}
|
||||||
var fullTexSpriteID = fullTexSpriteData.Sprite.m_PathID;
|
var fullTexSpriteID = fullTexSpriteData.Sprite.m_PathID;
|
||||||
var fullTexAlphaID = fullTexSpriteData.AlphaTex.m_PathID;
|
var fullTexAlphaID = fullTexSpriteData.AlphaTex.m_PathID;
|
||||||
@ -113,7 +115,6 @@ namespace Arknights
|
|||||||
FullAlphaTexture = (Texture2D)Studio.exportableAssets.Find(x => x.m_PathID == fullTexAlphaID)?.Asset;
|
FullAlphaTexture = (Texture2D)Studio.exportableAssets.Find(x => x.m_PathID == fullTexAlphaID)?.Asset;
|
||||||
FacePos = new Point((int)Math.Round(spriteHubData.FacePos.X), (int)Math.Round(spriteHubData.FacePos.Y));
|
FacePos = new Point((int)Math.Round(spriteHubData.FacePos.X), (int)Math.Round(spriteHubData.FacePos.Y));
|
||||||
FaceSize = new Size((int)Math.Round(spriteHubData.FaceSize.X), (int)Math.Round(spriteHubData.FaceSize.Y));
|
FaceSize = new Size((int)Math.Round(spriteHubData.FaceSize.X), (int)Math.Round(spriteHubData.FaceSize.Y));
|
||||||
IsFaceSprite = assetItem.m_PathID != fullTexSpriteID;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user