Changed 9p and tatlas' to use a separately loaded texture.
This commit is contained in:
@@ -5,22 +5,12 @@ using System.IO;
|
||||
|
||||
namespace RecrownedAthenaeum.Pipeline.NinePatch
|
||||
{
|
||||
[ContentImporter(".9p", DisplayName = "Nine Patch Importer", DefaultProcessor = "NinePatchProcessor")]
|
||||
internal class NinePatchImporter : ContentImporter<NinePatchImporter.Package>
|
||||
[ContentImporter(".9p", DisplayName = "Nine Patch Importer - RecrownedAthenaeum", DefaultProcessor = "NinePatchProcessor")]
|
||||
internal class NinePatchImporter : ContentImporter<NinePatchData>
|
||||
{
|
||||
public override Package Import(string filename, ContentImporterContext context)
|
||||
public override NinePatchData Import(string filename, ContentImporterContext context)
|
||||
{
|
||||
Package package;
|
||||
package.ninePatchData = JsonConvert.DeserializeObject<NinePatchData>(File.ReadAllText(filename));
|
||||
package.textureBytes = File.ReadAllBytes(package.ninePatchData.textureName);
|
||||
|
||||
return package;
|
||||
}
|
||||
|
||||
internal struct Package
|
||||
{
|
||||
internal byte[] textureBytes;
|
||||
internal NinePatchData ninePatchData;
|
||||
return JsonConvert.DeserializeObject<NinePatchData>(File.ReadAllText(filename));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -1,25 +1,19 @@
|
||||
using Microsoft.Xna.Framework.Content.Pipeline;
|
||||
using Newtonsoft.Json;
|
||||
using RecrownedAthenaeum.Data;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
|
||||
namespace RecrownedAthenaeum.Pipeline.NinePatch
|
||||
{
|
||||
[ContentImporter(DisplayName = "Nine Patch - RecrownedAthenaeum")]
|
||||
class NinePatchProcessor : ContentProcessor<NinePatchImporter.Package, NinePatchProcessor.Package>
|
||||
class NinePatchProcessor : ContentProcessor<NinePatchData, NinePatchData>
|
||||
{
|
||||
public override Package Process(NinePatchImporter.Package input, ContentProcessorContext context)
|
||||
public override NinePatchData Process(NinePatchData input, ContentProcessorContext context)
|
||||
{
|
||||
Package package;
|
||||
package.ninePatchDataBytes = Encoding.ASCII.GetBytes(JsonConvert.SerializeObject(input.ninePatchData));
|
||||
package.textureBytes = input.textureBytes;
|
||||
return package;
|
||||
}
|
||||
|
||||
internal struct Package
|
||||
{
|
||||
internal byte[] ninePatchDataBytes;
|
||||
internal byte[] textureBytes;
|
||||
if (Path.GetFileNameWithoutExtension(context.SourceIdentity.SourceFilename) == Path.GetFileNameWithoutExtension(input.textureName)) throw new InvalidContentException("Ninepatch data and texture for the data can't have the same name.");
|
||||
context.AddDependency(input.textureName);
|
||||
return input;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -2,23 +2,25 @@
|
||||
using Microsoft.Xna.Framework.Content.Pipeline.Serialization.Compiler;
|
||||
using Newtonsoft.Json;
|
||||
using RecrownedAthenaeum.Data;
|
||||
using System.IO;
|
||||
|
||||
namespace RecrownedAthenaeum.Pipeline.NinePatch
|
||||
{
|
||||
[ContentTypeWriter]
|
||||
class NinePatchWriter : ContentTypeWriter<NinePatchProcessor.Package>
|
||||
class NinePatchWriter : ContentTypeWriter<NinePatchData>
|
||||
{
|
||||
public override string GetRuntimeReader(TargetPlatform targetPlatform)
|
||||
{
|
||||
return "RecrownedAthenaeum.ContentReaders.NinePatchDataReader, RecrownedAthenaeum";
|
||||
}
|
||||
|
||||
protected override void Write(ContentWriter output, NinePatchProcessor.Package value)
|
||||
protected override void Write(ContentWriter output, NinePatchData value)
|
||||
{
|
||||
output.Write(value.textureBytes.Length);
|
||||
output.Write(value.textureBytes);
|
||||
output.Write(value.ninePatchDataBytes.Length);
|
||||
output.Write(value.ninePatchDataBytes);
|
||||
output.Write(Path.GetFileNameWithoutExtension(value.textureName));
|
||||
output.Write(value.left);
|
||||
output.Write(value.right);
|
||||
output.Write(value.bottom);
|
||||
output.Write(value.top);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -1,25 +1,18 @@
|
||||
using Microsoft.Xna.Framework.Content.Pipeline;
|
||||
using Microsoft.Xna.Framework.Content.Pipeline.Graphics;
|
||||
using Microsoft.Xna.Framework.Content.Pipeline.Processors;
|
||||
using Newtonsoft.Json;
|
||||
using RecrownedAthenaeum.Data;
|
||||
using System.IO;
|
||||
|
||||
namespace RecrownedAthenaeum.Pipeline.TextureAtlas
|
||||
{
|
||||
[ContentImporter(".tatlas", DisplayName = "Texture Atlas Importer", DefaultProcessor = "TextureAtlasProcessor")]
|
||||
internal class TextureAtlasImporter : ContentImporter<TextureAtlasImporter.Package>
|
||||
[ContentImporter(".tatlas", DisplayName = "Texture Atlas Importer - RecrownedAthenaeum", DefaultProcessor = "TextureAtlasProcessor")]
|
||||
internal class TextureAtlasImporter : ContentImporter<TextureAtlasData>
|
||||
{
|
||||
public override Package Import(string filename, ContentImporterContext context)
|
||||
public override TextureAtlasData Import(string filename, ContentImporterContext context)
|
||||
{
|
||||
Package package;
|
||||
package.textureAtlasData = JsonConvert.DeserializeObject<TextureAtlasData>(File.ReadAllText(filename));
|
||||
package.textureBytes = File.ReadAllBytes(package.textureAtlasData.textureName);
|
||||
return package;
|
||||
}
|
||||
|
||||
internal struct Package
|
||||
{
|
||||
internal TextureAtlasData textureAtlasData;
|
||||
internal byte[] textureBytes;
|
||||
return JsonConvert.DeserializeObject<TextureAtlasData>(File.ReadAllText(filename));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -1,24 +1,21 @@
|
||||
using Microsoft.Xna.Framework.Content.Pipeline;
|
||||
using Microsoft.Xna.Framework.Content.Pipeline.Graphics;
|
||||
using Microsoft.Xna.Framework.Content.Pipeline.Processors;
|
||||
using Newtonsoft.Json;
|
||||
using RecrownedAthenaeum.Data;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
|
||||
namespace RecrownedAthenaeum.Pipeline.TextureAtlas
|
||||
{
|
||||
[ContentProcessor(DisplayName = "Texture Atlas - RecrownedAthenaeum")]
|
||||
class TextureAtlasProcessor : ContentProcessor<TextureAtlasImporter.Package, TextureAtlasProcessor.Package>
|
||||
class TextureAtlasProcessor : ContentProcessor<TextureAtlasData, TextureAtlasData>
|
||||
{
|
||||
public override Package Process(TextureAtlasImporter.Package input, ContentProcessorContext context)
|
||||
public override TextureAtlasData Process(TextureAtlasData input, ContentProcessorContext context)
|
||||
{
|
||||
Package package;
|
||||
package.textureBytes = input.textureBytes;
|
||||
package.textureAtlasDataBytes = Encoding.ASCII.GetBytes(JsonConvert.SerializeObject(input.textureAtlasData));
|
||||
return package;
|
||||
}
|
||||
|
||||
internal struct Package
|
||||
{
|
||||
public byte[] textureBytes;
|
||||
public byte[] textureAtlasDataBytes;
|
||||
if (context.SourceIdentity.SourceFilename == input.textureName) throw new InvalidContentException("Texture atlas data and texture file for the atlas can't have the same name.");
|
||||
context.AddDependency(input.textureName);
|
||||
return input;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -1,22 +1,41 @@
|
||||
using Microsoft.Xna.Framework.Content.Pipeline;
|
||||
using Microsoft.Xna.Framework.Content.Pipeline.Serialization.Compiler;
|
||||
using Newtonsoft.Json;
|
||||
using RecrownedAthenaeum.Data;
|
||||
using System.IO;
|
||||
|
||||
namespace RecrownedAthenaeum.Pipeline.TextureAtlas
|
||||
{
|
||||
[ContentTypeWriter]
|
||||
class TextureAtlasWriter : ContentTypeWriter<TextureAtlasProcessor.Package>
|
||||
class TextureAtlasWriter : ContentTypeWriter<TextureAtlasData>
|
||||
{
|
||||
public override string GetRuntimeReader(TargetPlatform targetPlatform)
|
||||
{
|
||||
return "RecrownedAthenaeum.ContentReaders.TextureAtlasDataReader, RecrownedAthenaeum";
|
||||
}
|
||||
|
||||
protected override void Write(ContentWriter output, TextureAtlasProcessor.Package value)
|
||||
protected override void Write(ContentWriter output, TextureAtlasData value)
|
||||
{
|
||||
output.Write(value.textureBytes.Length);
|
||||
output.Write(value.textureBytes);
|
||||
output.Write(value.textureAtlasDataBytes.Length);
|
||||
output.Write(value.textureAtlasDataBytes);
|
||||
output.Write(Path.GetFileNameWithoutExtension(value.textureName));
|
||||
output.Write(value.regions.Length);
|
||||
|
||||
for (int i = 0; i < value.regions.Length; i++)
|
||||
{
|
||||
output.Write(value.regions[i].name);
|
||||
output.Write(value.regions[i].bounds.X);
|
||||
output.Write(value.regions[i].bounds.Y);
|
||||
output.Write(value.regions[i].bounds.Width);
|
||||
output.Write(value.regions[i].bounds.Height);
|
||||
bool hasNPatch = value.regions[i].ninePatchData != null;
|
||||
output.Write(hasNPatch);
|
||||
if (hasNPatch)
|
||||
{
|
||||
output.Write(value.regions[i].ninePatchData.left);
|
||||
output.Write(value.regions[i].ninePatchData.right);
|
||||
output.Write(value.regions[i].ninePatchData.bottom);
|
||||
output.Write(value.regions[i].ninePatchData.top);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user