Files
libremetaverse/libsecondlife/AssetTypes.cs
Latif Khalifa ec5fc8de80 * Renamed AssetType.Object to AssetType.Primitive and AssetObject to AssetPrim to clear up confusion
* Big cleanup of group functions, moving things from MainAvatar to GroupManager, renaming BeginGet* to Request*, and adding new functions and callbacks
* Added an Autopilot function that takes doubles as input (very accurate autopilot)
* Added Settings.CONTINUOUS_AGENT_UPDATES which defaults to true
* Added quotes to the post-build event in VS2005
* Added empty AssetSound and AssetClothing, feel free to fill them in :-)
* Client.Self.*Name are read only properties now

git-svn-id: http://libopenmetaverse.googlecode.com/svn/trunk@1357 52acb1d6-8a22-11de-b505-999d5b087335
2007-08-10 20:16:19 +00:00

185 lines
4.3 KiB
C#

using System;
using System.Text;
namespace libsecondlife
{
public abstract class Asset
{
public byte[] AssetData;
private LLUUID _AssetID;
public LLUUID AssetID
{
get { return _AssetID; }
internal set { _AssetID = value; }
}
public abstract AssetType AssetType
{
get;
}
public Asset() { }
public Asset(byte[] assetData)
{
AssetData = assetData;
}
/// <summary>
/// Regenerates the <code>AssetData</code> byte array from the properties
/// of the derived class.
/// </summary>
public abstract void Encode();
/// <summary>
/// Decodes the AssetData, placing it in appropriate properties of the derived
/// class.
/// </summary>
public abstract void Decode();
}
public class AssetNotecard : Asset
{
public override AssetType AssetType { get { return AssetType.Notecard; } }
public string Text = null;
public AssetNotecard() { }
public AssetNotecard(byte[] assetData)
{
AssetData = assetData;
}
public AssetNotecard(string text)
{
Text = text;
}
public override void Encode()
{
AssetData = Helpers.StringToField(Text);
}
public override void Decode()
{
Text = Helpers.FieldToUTF8String(AssetData);
}
}
public class AssetScriptText : Asset
{
public override AssetType AssetType { get { return AssetType.LSLText; } }
public string Source;
public AssetScriptText() { }
public AssetScriptText(byte[] assetData)
{
AssetData = assetData;
}
public AssetScriptText(string source)
{
Source = source;
}
public override void Encode()
{
AssetData = Helpers.StringToField(Source);
}
public override void Decode()
{
Source = Helpers.FieldToUTF8String(AssetData);
}
}
public class AssetScriptBinary : Asset
{
public override AssetType AssetType { get { return AssetType.LSLBytecode; } }
public byte[] Bytecode;
public AssetScriptBinary() { }
public AssetScriptBinary(byte[] assetData)
{
AssetData = assetData;
Bytecode = assetData;
}
public override void Encode() { AssetData = Bytecode; }
public override void Decode() { Bytecode = AssetData; }
}
/*
public class AssetTexture : Asset
{
public override AssetType AssetType { get { return AssetType.Texture; } }
public Image Image;
public AssetTexture() { }
public AssetTexture(byte[] assetData)
{
AssetData = assetData;
}
public AssetTexture(Image image)
{
Image = image;
}
public override void Encode()
{
AssetData = OpenJPEGNet.OpenJPEG.Encode(Image);
}
public override void Decode()
{
Image = OpenJPEGNet.OpenJPEG.Decode(AssetData);
}
}
*/
public class AssetPrim : Asset
{
public override AssetType AssetType { get { return AssetType.Primitive; } }
public AssetPrim() { }
public override void Encode() { }
public override void Decode() { }
}
public class AssetSound : Asset
{
public override AssetType AssetType { get { return AssetType.Sound; } }
public AssetSound() { }
// TODO: Sometime we could add OGG encoding/decoding?
public override void Encode() { }
public override void Decode() { }
}
public class AssetClothing : Asset
{
public override AssetType AssetType { get { return AssetType.Clothing; } }
public AssetClothing() { }
public override void Encode()
{
}
public override void Decode()
{
}
}
}