87 lines
3.3 KiB
C#
Raw Normal View History

#region Using Statements
2011-10-31 05:36:24 +00:00
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.Content.Pipeline.Serialization;
using Microsoft.Xna.Framework.Content.Pipeline.Serialization.Compiler;
#endregion // Using Statements
// This file is part of the ANX.Framework created by the
// "ANX.Framework developer group" and released under the Ms-PL license.
// For details see: http://anxframework.codeplex.com/license
2011-10-31 05:36:24 +00:00
namespace ANX.Framework.TestCenter.ContentPipeline.Helper
{
public class ContentWithSharedResource
{
public class SharedResource
{
public int Value { get; set; }
}
public SharedResource ResourceA { get; set; }
public SharedResource ResourceB { get; set; }
}
public class ContentWithSharedResourceWriter : ContentTypeWriter<ContentWithSharedResource>
{
protected override void Write(ContentWriter output, ContentWithSharedResource value)
{
output.WriteSharedResource<ContentWithSharedResource.SharedResource>(value.ResourceA);
output.WriteSharedResource<ContentWithSharedResource.SharedResource>(value.ResourceB);
}
public override string GetRuntimeReader(Microsoft.Xna.Framework.Content.Pipeline.TargetPlatform targetPlatform)
{
return typeof(ContentWithSharedResourceReader).AssemblyQualifiedName;
}
}
public class SharedResourceWriter : ContentTypeWriter<ContentWithSharedResource.SharedResource>
{
protected override void Write(ContentWriter output, ContentWithSharedResource.SharedResource value)
{
output.Write(value.Value);
}
public override string GetRuntimeReader(Microsoft.Xna.Framework.Content.Pipeline.TargetPlatform targetPlatform)
{
return typeof(SharedResourceReader).AssemblyQualifiedName;
}
}
// The reader must be in the ANX Namespace
public class ContentWithSharedResourceReader : ANX.Framework.Content.ContentTypeReader<ContentWithSharedResource>
{
protected override ContentWithSharedResource Read(ANX.Framework.Content.ContentReader input, ContentWithSharedResource existingInstance)
{
existingInstance = new ContentWithSharedResource();
input.ReadSharedResource<ContentWithSharedResource.SharedResource>((value) => {
existingInstance.ResourceA = value;
});
input.ReadSharedResource<ContentWithSharedResource.SharedResource>((value) =>
{
existingInstance.ResourceB = value;
});
return existingInstance;
}
}
public class SharedResourceReader : ANX.Framework.Content.ContentTypeReader<ContentWithSharedResource.SharedResource>
{
protected override ContentWithSharedResource.SharedResource
Read(ANX.Framework.Content.ContentReader input, ContentWithSharedResource.SharedResource existingInstance)
{
existingInstance = new ContentWithSharedResource.SharedResource();
existingInstance.Value = input.ReadInt32();
return existingInstance;
}
}
}