mirror of
https://github.com/AlexMacocian/MonoGame.Extended.git
synced 2026-07-26 00:45:20 +00:00
* 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
47 lines
1.6 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|