mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/PCK-Studio.git
synced 2026-07-07 19:18:18 +00:00
PckFileDataExtensions - Added GetTexture extension
This commit is contained in:
@@ -16,6 +16,29 @@ namespace PckStudio.Extensions
|
||||
{
|
||||
private const string MipMap = "MipMapLevel";
|
||||
|
||||
internal static Image GetTexture(this PckFile.FileData file)
|
||||
{
|
||||
if (file.Filetype != PckFile.FileData.FileType.SkinFile &&
|
||||
file.Filetype != PckFile.FileData.FileType.CapeFile &&
|
||||
file.Filetype != PckFile.FileData.FileType.TextureFile)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
Image image = null;
|
||||
using (var stream = new MemoryStream(file.Data))
|
||||
{
|
||||
try
|
||||
{
|
||||
image = Image.FromStream(stream);
|
||||
}
|
||||
catch(Exception ex)
|
||||
{
|
||||
Debug.WriteLine(ex.Message);
|
||||
}
|
||||
}
|
||||
return image;
|
||||
}
|
||||
|
||||
internal static void SetData(this PckFile.FileData file, IDataFormatWriter writer)
|
||||
{
|
||||
using (var stream = new MemoryStream())
|
||||
@@ -31,7 +54,7 @@ namespace PckStudio.Extensions
|
||||
file.Filetype != PckFile.FileData.FileType.CapeFile &&
|
||||
file.Filetype != PckFile.FileData.FileType.TextureFile)
|
||||
{
|
||||
Debug.WriteLine($"{file.Filename} is can't contain image data");
|
||||
Debug.WriteLine($"{file.Filename} can't contain image data");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -80,8 +80,7 @@ namespace PckStudio.Forms.Editor
|
||||
currentAnimation = new Animation(Array.Empty<Image>());
|
||||
if (animationFile is not null && animationFile.Size > 0)
|
||||
{
|
||||
using MemoryStream textureMem = new MemoryStream(animationFile.Data);
|
||||
var texture = new Bitmap(textureMem);
|
||||
var texture = animationFile.GetTexture();
|
||||
var frameTextures = texture.Split(ImageLayoutDirection.Vertical);
|
||||
currentAnimation = animationFile.Properties.HasProperty("ANIM")
|
||||
? new Animation(frameTextures, animationFile.Properties.GetPropertyValue("ANIM"))
|
||||
|
||||
@@ -370,9 +370,7 @@ namespace PckStudio
|
||||
|
||||
if (file.Filename == "res/terrain.png" || file.Filename == "res/items.png")
|
||||
{
|
||||
using var ms = new MemoryStream(file.Data);
|
||||
|
||||
var img = Image.FromStream(ms);
|
||||
var img = file.GetTexture();
|
||||
var res = img.Width / 16; // texture count on X axes
|
||||
var size = new Size(res, res);
|
||||
var viewer = new TextureAtlasEditor(currentPCK, file.Filename, img, size);
|
||||
@@ -395,7 +393,6 @@ namespace PckStudio
|
||||
BuildMainTreeView();
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -439,14 +436,10 @@ namespace PckStudio
|
||||
return;
|
||||
}
|
||||
|
||||
using(var ms = new MemoryStream(file.Data))
|
||||
{
|
||||
var img = Image.FromStream(ms);
|
||||
var skinViewer = new SkinPreview(img, file.Properties.GetPropertyValue("ANIM", SkinANIM.FromString));
|
||||
var img = file.GetTexture();
|
||||
using var skinViewer = new SkinPreview(img, file.Properties.GetPropertyValue("ANIM", SkinANIM.FromString));
|
||||
skinViewer.ShowDialog(this);
|
||||
skinViewer.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
public void HandleModelsFile(PckFile.FileData file)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user