using System;
using RecrownedGTK.Graphics.UI.SkinSystem.Definitions;
using OpenTK.Graphics;
using RecrownedGTK.Types;
namespace RecrownedGTK.Data
{
///
/// Data transfer object for game skins.
///
public class SkinData
{
///
/// Holds metadata.
///
public class Metadata
{
///
/// Author name.
///
public string author;
///
/// Description of skin.
///
public string description;
///
/// Name of skin.
///
public string skinName;
}
///
/// The metadata for the skin file.
///
public Metadata metadata;
///
/// The name of the atlas with extension.
///
public string nameOfTextureAtlas;
///
/// Name of the region or file designating the cursor. If there is an extension, will check for file first then texture atlas. Otherwise, will just check region.
///
public string cursorTextureName;
///
/// The color data containing the name of the color, and red, green, and blue values for the color.
///
public ColorData[] colors;
///
/// The skin definitions containing a name for the definition, and the definition itself.
///
public DefinitionData[] definitions;
///
/// Color data for data transfer.
///
public struct ColorData
{
///
/// Name of color to be referenced by.
///
public string name;
///
/// RGBA data of this color.
///
public byte r, g, b, a;
///
/// Sets values for data.
///
/// the name to be referenced by.
/// The color value represents.
public ColorData(string name, Color4 color)
{
this.name = name;
r = color.GetRedAsByte();
g = color.GetGreenAsByte();
b = color.GetBlueAsByte();
a = color.GetAlphaAsByte();
}
}
///
/// Definition data for data transfer.
///
public struct DefinitionData
{
///
/// Name of definition to be referenced by.
///
public string name;
///
/// The skin definition data.
///
public SkinDefinitionData skin;
///
/// Sets values for data.
///
/// The name to be referenced by.
/// The skin data.
public DefinitionData(string name, SkinDefinitionData skinDefinitionData)
{
this.name = name;
skin = skinDefinitionData;
}
}
}
}