* 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
185 lines
4.3 KiB
C#
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()
|
|
{
|
|
}
|
|
}
|
|
}
|