Files
MonoGame.Extended/source/MonoGame.Extended.Content.Pipeline/TextureAtlases/TexturePackerWriter.cs
T
Nikos KastellanosandGitHub 2bbdc38b51 Kni.Extended (#892)
* KNI projects

* update actions

fixes MSBUILD : error MSB1011: Specify which project or solution file to
use because this folder contains more than one project or solution file.

* remove test for issue #633

* build tests

* KNI TypeReaders

* KNI/XNA compatible code

* GetRuntimeReader from runtime types

* remove MockGameWindow
2024-06-23 22:38:20 -04:00

47 lines
1.6 KiB
C#

using System.Diagnostics;
using System.IO;
using Microsoft.Xna.Framework.Content.Pipeline;
using Microsoft.Xna.Framework.Content.Pipeline.Serialization.Compiler;
using MonoGame.Extended.Graphics;
namespace MonoGame.Extended.Content.Pipeline.TextureAtlases
{
[ContentTypeWriter]
public class TexturePackerWriter : ContentTypeWriter<TexturePackerProcessorResult>
{
protected override void Write(ContentWriter writer, TexturePackerProcessorResult result)
{
var data = result.Data;
var metadata = data.Metadata;
var assetName = Path.GetFileNameWithoutExtension(metadata.Image);
Debug.Assert(assetName != null, "assetName != null");
writer.Write(assetName);
writer.Write(data.Regions.Count);
foreach (var region in data.Regions)
{
var regionName = Path.ChangeExtension(region.Filename, null);
Debug.Assert(regionName != null, "regionName != null");
writer.Write(regionName);
writer.Write(region.Frame.X);
writer.Write(region.Frame.Y);
writer.Write(region.Frame.Width);
writer.Write(region.Frame.Height);
}
}
public override string GetRuntimeType(TargetPlatform targetPlatform)
{
return typeof(Texture2DAtlas).AssemblyQualifiedName;
}
public override string GetRuntimeReader(TargetPlatform targetPlatform)
{
return typeof(ContentReaders.Texture2DAtlasReader).AssemblyQualifiedName;
}
}
}