public override void Encode()
{
const string NL = "\n";
StringBuilder data = new StringBuilder("LLWearable version 22\n");
data.Append(Name); data.Append(NL); data.Append(NL);
data.Append("\tpermissions 0\n\t{\n");
data.Append("\t\tbase_mask\t"); data.Append(Utils.UIntToHexString((uint)Permissions.BaseMask)); data.Append(NL);
data.Append("\t\towner_mask\t"); data.Append(Utils.UIntToHexString((uint)Permissions.OwnerMask)); data.Append(NL);
data.Append("\t\tgroup_mask\t"); data.Append(Utils.UIntToHexString((uint)Permissions.GroupMask)); data.Append(NL);
data.Append("\t\teveryone_mask\t"); data.Append(Utils.UIntToHexString((uint)Permissions.EveryoneMask)); data.Append(NL);
data.Append("\t\tnext_owner_mask\t"); data.Append(Utils.UIntToHexString((uint)Permissions.NextOwnerMask)); data.Append(NL);
data.Append("\t\tcreator_id\t"); data.Append(Creator.ToString()); data.Append(NL);
data.Append("\t\towner_id\t"); data.Append(Owner.ToString()); data.Append(NL);
data.Append("\t\tlast_owner_id\t"); data.Append(LastOwner.ToString()); data.Append(NL);
data.Append("\t\tgroup_id\t"); data.Append(Group.ToString()); data.Append(NL);
if (GroupOwned) data.Append("\t\tgroup_owned\t1\n");
data.Append("\t}\n");
data.Append("\tsale_info\t0\n");
data.Append("\t{\n");
data.Append("\t\tsale_type\t"); data.Append(InventoryManager.SaleTypeToString(ForSale)); data.Append(NL);
data.Append("\t\tsale_price\t"); data.Append(SalePrice); data.Append(NL);
data.Append("\t}\n");
data.Append("type "); data.Append((int)WearableType); data.Append(NL);
data.Append("parameters "); data.Append(Params.Count); data.Append(NL);
foreach (KeyValuePair<int, float> param in Params)
{
data.Append(param.Key); data.Append(" "); data.Append(Helpers.FloatToTerseString(param.Value)); data.Append(NL);
}
data.Append("textures "); data.Append(Textures.Count); data.Append(NL);
foreach (KeyValuePair<AppearanceManager.TextureIndex, UUID> texture in Textures)
{
data.Append(texture.Key); data.Append(" "); data.Append(texture.Value.ToString()); data.Append(NL);
}
AssetData = Utils.StringToBytes(data.ToString());
}