Update svn properties.
parent
e80dcfa9f6
commit
5c310efb79
|
@ -1,56 +1,56 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
|
||||
<class name="OpenSim.Framework.RegionSettings, OpenSim.Framework" table="RegionSettings" lazy="false">
|
||||
<id name="RegionUUID" column="RegionId" type="OpenSim.Data.NHibernate.UUIDUserType, OpenSim.Data.NHibernate">
|
||||
<generator class="assigned" />
|
||||
</id>
|
||||
|
||||
<property name="BlockTerraform" type="System.Boolean" />
|
||||
<property name="BlockFly" type="System.Boolean" />
|
||||
<property name="AllowDamage" type="System.Boolean" />
|
||||
<property name="RestrictPushing" type="System.Boolean" />
|
||||
<property name="AllowLandResell" type="System.Boolean" />
|
||||
<property name="AllowLandJoinDivide" type="System.Boolean" />
|
||||
<property name="BlockShowInSearch" type="System.Boolean" />
|
||||
|
||||
<property name="AgentLimit" type="System.Int32" />
|
||||
<property name="ObjectBonus" type="System.Double" />
|
||||
<property name="Maturity" type="System.Int32" />
|
||||
|
||||
<property name="DisableScripts" type="System.Boolean" />
|
||||
<property name="DisableCollisions" type="System.Boolean" />
|
||||
<property name="DisablePhysics" type="System.Boolean" />
|
||||
|
||||
<property name="TerrainTexture1" type="OpenSim.Data.NHibernate.UUIDUserType, OpenSim.Data.NHibernate" />
|
||||
<property name="TerrainTexture2" type="OpenSim.Data.NHibernate.UUIDUserType, OpenSim.Data.NHibernate" />
|
||||
<property name="TerrainTexture3" type="OpenSim.Data.NHibernate.UUIDUserType, OpenSim.Data.NHibernate" />
|
||||
<property name="TerrainTexture4" type="OpenSim.Data.NHibernate.UUIDUserType, OpenSim.Data.NHibernate" />
|
||||
|
||||
<property name="Elevation1NW" type="System.Double" />
|
||||
<property name="Elevation2NW" type="System.Double" />
|
||||
<property name="Elevation1NE" type="System.Double" />
|
||||
<property name="Elevation2NE" type="System.Double" />
|
||||
<property name="Elevation1SE" type="System.Double" />
|
||||
<property name="Elevation2SE" type="System.Double" />
|
||||
<property name="Elevation1SW" type="System.Double" />
|
||||
<property name="Elevation2SW" type="System.Double" />
|
||||
|
||||
<property name="WaterHeight" type="System.Double" />
|
||||
<property name="TerrainRaiseLimit" type="System.Double" />
|
||||
<property name="TerrainLowerLimit" type="System.Double" />
|
||||
|
||||
<property name="UseEstateSun" type="System.Boolean" />
|
||||
<property name="Sandbox" type="System.Boolean" />
|
||||
|
||||
<property name="SunVector" type="OpenSim.Data.NHibernate.Vector3UserType, OpenSim.Data.NHibernate" >
|
||||
<column name="SunVectorX" />
|
||||
<column name="SunVectorY" />
|
||||
<column name="SunVectorZ" />
|
||||
</property>
|
||||
|
||||
<property name="FixedSun" type="System.Boolean" />
|
||||
<property name="SunPosition" type="System.Double" />
|
||||
<property name="Covenant" type="OpenSim.Data.NHibernate.UUIDUserType, OpenSim.Data.NHibernate" />
|
||||
|
||||
</class>
|
||||
</hibernate-mapping>
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
|
||||
<class name="OpenSim.Framework.RegionSettings, OpenSim.Framework" table="RegionSettings" lazy="false">
|
||||
<id name="RegionUUID" column="RegionId" type="OpenSim.Data.NHibernate.UUIDUserType, OpenSim.Data.NHibernate">
|
||||
<generator class="assigned" />
|
||||
</id>
|
||||
|
||||
<property name="BlockTerraform" type="System.Boolean" />
|
||||
<property name="BlockFly" type="System.Boolean" />
|
||||
<property name="AllowDamage" type="System.Boolean" />
|
||||
<property name="RestrictPushing" type="System.Boolean" />
|
||||
<property name="AllowLandResell" type="System.Boolean" />
|
||||
<property name="AllowLandJoinDivide" type="System.Boolean" />
|
||||
<property name="BlockShowInSearch" type="System.Boolean" />
|
||||
|
||||
<property name="AgentLimit" type="System.Int32" />
|
||||
<property name="ObjectBonus" type="System.Double" />
|
||||
<property name="Maturity" type="System.Int32" />
|
||||
|
||||
<property name="DisableScripts" type="System.Boolean" />
|
||||
<property name="DisableCollisions" type="System.Boolean" />
|
||||
<property name="DisablePhysics" type="System.Boolean" />
|
||||
|
||||
<property name="TerrainTexture1" type="OpenSim.Data.NHibernate.UUIDUserType, OpenSim.Data.NHibernate" />
|
||||
<property name="TerrainTexture2" type="OpenSim.Data.NHibernate.UUIDUserType, OpenSim.Data.NHibernate" />
|
||||
<property name="TerrainTexture3" type="OpenSim.Data.NHibernate.UUIDUserType, OpenSim.Data.NHibernate" />
|
||||
<property name="TerrainTexture4" type="OpenSim.Data.NHibernate.UUIDUserType, OpenSim.Data.NHibernate" />
|
||||
|
||||
<property name="Elevation1NW" type="System.Double" />
|
||||
<property name="Elevation2NW" type="System.Double" />
|
||||
<property name="Elevation1NE" type="System.Double" />
|
||||
<property name="Elevation2NE" type="System.Double" />
|
||||
<property name="Elevation1SE" type="System.Double" />
|
||||
<property name="Elevation2SE" type="System.Double" />
|
||||
<property name="Elevation1SW" type="System.Double" />
|
||||
<property name="Elevation2SW" type="System.Double" />
|
||||
|
||||
<property name="WaterHeight" type="System.Double" />
|
||||
<property name="TerrainRaiseLimit" type="System.Double" />
|
||||
<property name="TerrainLowerLimit" type="System.Double" />
|
||||
|
||||
<property name="UseEstateSun" type="System.Boolean" />
|
||||
<property name="Sandbox" type="System.Boolean" />
|
||||
|
||||
<property name="SunVector" type="OpenSim.Data.NHibernate.Vector3UserType, OpenSim.Data.NHibernate" >
|
||||
<column name="SunVectorX" />
|
||||
<column name="SunVectorY" />
|
||||
<column name="SunVectorZ" />
|
||||
</property>
|
||||
|
||||
<property name="FixedSun" type="System.Boolean" />
|
||||
<property name="SunPosition" type="System.Double" />
|
||||
<property name="Covenant" type="OpenSim.Data.NHibernate.UUIDUserType, OpenSim.Data.NHibernate" />
|
||||
|
||||
</class>
|
||||
</hibernate-mapping>
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
|
||||
<class name="OpenSim.Data.NHibernate.UserFriend, OpenSim.Data.NHibernate" table="UserFriends" lazy="false">
|
||||
<id name="UserFriendID" type="OpenSim.Data.NHibernate.UUIDUserType, OpenSim.Data.NHibernate">
|
||||
<generator class="assigned" />
|
||||
</id>
|
||||
<property name="OwnerID" type="OpenSim.Data.NHibernate.UUIDUserType, OpenSim.Data.NHibernate" />
|
||||
<property name="FriendID" type="OpenSim.Data.NHibernate.UUIDUserType, OpenSim.Data.NHibernate" />
|
||||
<property name="FriendPermissions" type="OpenSim.Data.NHibernate.UInt32Type, OpenSim.Data.NHibernate" />
|
||||
</class>
|
||||
</hibernate-mapping>
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
|
||||
<class name="OpenSim.Data.NHibernate.UserFriend, OpenSim.Data.NHibernate" table="UserFriends" lazy="false">
|
||||
<id name="UserFriendID" type="OpenSim.Data.NHibernate.UUIDUserType, OpenSim.Data.NHibernate">
|
||||
<generator class="assigned" />
|
||||
</id>
|
||||
<property name="OwnerID" type="OpenSim.Data.NHibernate.UUIDUserType, OpenSim.Data.NHibernate" />
|
||||
<property name="FriendID" type="OpenSim.Data.NHibernate.UUIDUserType, OpenSim.Data.NHibernate" />
|
||||
<property name="FriendPermissions" type="OpenSim.Data.NHibernate.UInt32Type, OpenSim.Data.NHibernate" />
|
||||
</class>
|
||||
</hibernate-mapping>
|
||||
|
|
|
@ -1,328 +1,328 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.IO;
|
||||
using System.Text.RegularExpressions;
|
||||
using OpenMetaverse;
|
||||
|
||||
namespace OpenSim.Framework
|
||||
{
|
||||
public class WearableItem
|
||||
{
|
||||
public string WearableName = "";
|
||||
public WearableType WearType = WearableType.Invalid;
|
||||
|
||||
public string ItemInfo = "Created Wearable";
|
||||
|
||||
public SortedList<int, VisualSetting> VisualSettings = new SortedList<int, VisualSetting>();
|
||||
// public LLObject.TextureEntry TextureEntry = null;
|
||||
//public byte[] TextureEntry = null;
|
||||
|
||||
public List<string> TextureStrings = new List<string>();
|
||||
|
||||
//permissions
|
||||
public uint BaseMask = 0;
|
||||
public uint OwnerMask = 0;
|
||||
public uint GroupMask = 0;
|
||||
public uint EveryoneMask = 0;
|
||||
public uint NextOwnerMask = 0;
|
||||
|
||||
public UUID CreatorID = UUID.Zero;
|
||||
public UUID OwnerID = UUID.Zero;
|
||||
public UUID LastOwnerID = UUID.Zero;
|
||||
public UUID GroupID = UUID.Zero;
|
||||
|
||||
//sale
|
||||
public string SaleType = "not";
|
||||
public int SalePrice = 10;
|
||||
|
||||
private string BuildString = "";
|
||||
|
||||
|
||||
public WearableItem(string wearableName, WearableType type)
|
||||
{
|
||||
WearableName = wearableName;
|
||||
WearType = type;
|
||||
}
|
||||
|
||||
public WearableItem(string wearableName)
|
||||
{
|
||||
WearableName = wearableName;
|
||||
WearType = ConvertNameToType(WearableName);
|
||||
}
|
||||
|
||||
public WearableItem(WearableType type)
|
||||
{
|
||||
WearType = type;
|
||||
WearableName = Enum.GetName(typeof(WearableType), type).ToLower();
|
||||
}
|
||||
|
||||
public WearableItem()
|
||||
{
|
||||
}
|
||||
|
||||
public void AddVisualSetting(VisualSetting setting)
|
||||
{
|
||||
if (!VisualSettings.ContainsKey(setting.VisualParam.ParamID))
|
||||
{
|
||||
VisualSettings.Add(setting.VisualParam.ParamID, setting);
|
||||
}
|
||||
}
|
||||
|
||||
public bool TryGetSetting(string paramName, out VisualSetting paramSetting)
|
||||
{
|
||||
foreach (VisualSetting setting in VisualSettings.Values)
|
||||
{
|
||||
if (setting.VisualParam.Name == paramName)
|
||||
{
|
||||
paramSetting = setting;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
paramSetting = null;
|
||||
return false;
|
||||
}
|
||||
|
||||
public bool SetParamValue(string paramName, float value)
|
||||
{
|
||||
VisualSetting paramSetting;
|
||||
if (TryGetSetting(paramName, out paramSetting))
|
||||
{
|
||||
if ((value >= paramSetting.VisualParam.MinValue) && (value <= paramSetting.VisualParam.MaxValue))
|
||||
{
|
||||
paramSetting.Value = value;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public void RandomiseValues()
|
||||
{
|
||||
foreach (VisualSetting setting in VisualSettings.Values)
|
||||
{
|
||||
//int randNum = Util.RandomClass.Next(0, 1000);
|
||||
float range = setting.VisualParam.MaxValue - setting.VisualParam.MinValue;
|
||||
// float val =((float) randNum )/ ((float)(1000.0f / range));
|
||||
float val = (float)OpenSim.Framework.Util.RandomClass.NextDouble() * range * 0.2f;
|
||||
setting.Value = setting.VisualParam.MinValue + (range / 2) + val;
|
||||
}
|
||||
}
|
||||
|
||||
public WearableType ConvertNameToType(string name)
|
||||
{
|
||||
return (WearableType)Enum.Parse(typeof(WearableType), name, true);
|
||||
}
|
||||
|
||||
public string ToAssetFormat()
|
||||
{
|
||||
BuildString = "LLWearable version 22\n";
|
||||
BuildString += "New Item \n";
|
||||
BuildString += ItemInfo + "\n";
|
||||
|
||||
|
||||
AddSectionStart("permissions");
|
||||
AddTabbedNameValueLine("base_mask", BaseMask.ToString("00000000"));
|
||||
AddTabbedNameValueLine("owner_mask", OwnerMask.ToString("00000000"));
|
||||
AddTabbedNameValueLine("group_mask", GroupMask.ToString("00000000"));
|
||||
AddTabbedNameValueLine("everyone_mask", EveryoneMask.ToString("00000000"));
|
||||
AddTabbedNameValueLine("next_owner_mask", NextOwnerMask.ToString("00000000"));
|
||||
AddTabbedNameValueLine("creator_id", CreatorID.ToString());
|
||||
AddTabbedNameValueLine("owner_id", OwnerID.ToString());
|
||||
AddTabbedNameValueLine("last_owner_id", LastOwnerID.ToString());
|
||||
AddTabbedNameValueLine("group_id", GroupID.ToString());
|
||||
AddSectionEnd();
|
||||
|
||||
AddSectionStart("sale_info");
|
||||
AddTabbedNameValueLine("sale_type", SaleType.ToString());
|
||||
AddTabbedNameValueLine("sale_price", SalePrice.ToString());
|
||||
AddSectionEnd();
|
||||
|
||||
AddNameValueLine("type", ((byte)WearType).ToString());
|
||||
AddNameValueLine("parameters", VisualSettings.Count.ToString());
|
||||
|
||||
foreach (KeyValuePair<int, VisualSetting> kp in VisualSettings)
|
||||
{
|
||||
AddNameValueLine(kp.Key.ToString(), kp.Value.Value.ToString(CultureInfo.InvariantCulture));
|
||||
}
|
||||
if (TextureStrings.Count == 0)
|
||||
{
|
||||
AddNameValueLine("textures", "0"); //todo output texture entry
|
||||
}
|
||||
else
|
||||
{
|
||||
AddNameValueLine("textures", TextureStrings.Count.ToString());
|
||||
for (int i = 0; i < TextureStrings.Count; i++)
|
||||
{
|
||||
BuildString += TextureStrings[i] + "\n";
|
||||
}
|
||||
BuildString += "\n";
|
||||
|
||||
}
|
||||
|
||||
return BuildString;
|
||||
}
|
||||
|
||||
public void SaveToFile(string fileName)
|
||||
{
|
||||
File.WriteAllText(fileName, this.ToAssetFormat());
|
||||
}
|
||||
|
||||
public void AddSectionStart(string sectionName)
|
||||
{
|
||||
BuildString += "\t" + sectionName + " 0\n";
|
||||
BuildString += "\t{\n";
|
||||
}
|
||||
|
||||
public void AddSectionEnd()
|
||||
{
|
||||
BuildString += "\t}\n";
|
||||
}
|
||||
|
||||
private void AddTabbedNameValueLine(string name, string value)
|
||||
{
|
||||
BuildString += "\t\t";
|
||||
BuildString += name + "\t";
|
||||
BuildString += value + "\n";
|
||||
}
|
||||
|
||||
private void AddNameValueLine(string name, string value)
|
||||
{
|
||||
// BuildString += "\t\t";
|
||||
BuildString += name + " ";
|
||||
BuildString += value + "\n";
|
||||
}
|
||||
|
||||
#region Static Methods
|
||||
public static List<VisualParam> FindParamsForWearable(string wearableName)
|
||||
{
|
||||
List<VisualParam> wearableParams = new List<VisualParam>();
|
||||
foreach (VisualParam param in VisualParams.Params.Values)
|
||||
{
|
||||
if (param.Wearable == wearableName)
|
||||
{
|
||||
wearableParams.Add(param);
|
||||
}
|
||||
}
|
||||
|
||||
return wearableParams;
|
||||
}
|
||||
|
||||
public static WearableItem Create(string wearableTypeName)
|
||||
{
|
||||
WearableItem wearableItem = new WearableItem(wearableTypeName);
|
||||
List<VisualParam> typeParams = FindParamsForWearable(wearableTypeName);
|
||||
foreach (VisualParam param in typeParams)
|
||||
{
|
||||
wearableItem.AddVisualSetting(new VisualSetting(param));
|
||||
}
|
||||
return wearableItem;
|
||||
}
|
||||
|
||||
public static WearableItem CreateFromAsset(string assetData)
|
||||
{
|
||||
UUID creatorID = UUID.Zero;
|
||||
UUID ownerID = UUID.Zero;
|
||||
UUID lastOwnerID = UUID.Zero;
|
||||
UUID groupID = UUID.Zero;
|
||||
|
||||
char[] newlineDelimiter = { '\n' };
|
||||
string[] lines = assetData.Split(newlineDelimiter);
|
||||
|
||||
WearableItem wearableObject = null;
|
||||
Regex r = new Regex("[\t ]+");
|
||||
bool reachedParams = false;
|
||||
bool reachedTextures = false;
|
||||
foreach (string line in lines)
|
||||
{
|
||||
string trimLine = line.Trim();
|
||||
// Console.WriteLine("line : " + trimLine);
|
||||
|
||||
string[] splitLine = r.Split(trimLine);
|
||||
if (splitLine.Length > 1)
|
||||
{
|
||||
switch (splitLine[0])
|
||||
{
|
||||
case "textures":
|
||||
reachedParams = false;
|
||||
reachedTextures = true;
|
||||
break;
|
||||
|
||||
case "type":
|
||||
string wearableTypeName = Enum.GetName(typeof(WearableType), (WearableType)Convert.ToInt32(splitLine[1]));
|
||||
wearableObject = Create(wearableTypeName.ToLower());
|
||||
break;
|
||||
|
||||
case "parameters":
|
||||
reachedParams = true;
|
||||
break;
|
||||
|
||||
case "creator_id":
|
||||
creatorID = new UUID(splitLine[1]);
|
||||
break;
|
||||
|
||||
case "owner_id":
|
||||
ownerID = new UUID(splitLine[1]);
|
||||
break;
|
||||
|
||||
case "last_owner_id":
|
||||
lastOwnerID = new UUID(splitLine[1]);
|
||||
break;
|
||||
|
||||
case "group_id":
|
||||
groupID = new UUID(splitLine[1]);
|
||||
break;
|
||||
|
||||
default:
|
||||
if ((wearableObject != null) && (reachedParams))
|
||||
{
|
||||
int id = Convert.ToInt32(splitLine[0]);
|
||||
if (wearableObject.VisualSettings.ContainsKey(id))
|
||||
{
|
||||
|
||||
wearableObject.VisualSettings[id].Value = Convert.ToSingle(splitLine[1], CultureInfo.InvariantCulture);
|
||||
}
|
||||
}
|
||||
else if ((wearableObject != null) && (reachedTextures))
|
||||
{
|
||||
wearableObject.TextureStrings.Add(line);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (wearableObject != null)
|
||||
{
|
||||
wearableObject.CreatorID = creatorID;
|
||||
wearableObject.OwnerID = ownerID;
|
||||
wearableObject.LastOwnerID = lastOwnerID;
|
||||
wearableObject.GroupID = groupID;
|
||||
}
|
||||
|
||||
return wearableObject;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Nested Class
|
||||
public class VisualSetting
|
||||
{
|
||||
public VisualParam VisualParam;
|
||||
public float Value = 0;
|
||||
|
||||
public VisualSetting(VisualParam param, float value)
|
||||
{
|
||||
VisualParam = param;
|
||||
Value = value;
|
||||
}
|
||||
|
||||
public VisualSetting(VisualParam param)
|
||||
{
|
||||
VisualParam = param;
|
||||
Value = param.DefaultValue;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.IO;
|
||||
using System.Text.RegularExpressions;
|
||||
using OpenMetaverse;
|
||||
|
||||
namespace OpenSim.Framework
|
||||
{
|
||||
public class WearableItem
|
||||
{
|
||||
public string WearableName = "";
|
||||
public WearableType WearType = WearableType.Invalid;
|
||||
|
||||
public string ItemInfo = "Created Wearable";
|
||||
|
||||
public SortedList<int, VisualSetting> VisualSettings = new SortedList<int, VisualSetting>();
|
||||
// public LLObject.TextureEntry TextureEntry = null;
|
||||
//public byte[] TextureEntry = null;
|
||||
|
||||
public List<string> TextureStrings = new List<string>();
|
||||
|
||||
//permissions
|
||||
public uint BaseMask = 0;
|
||||
public uint OwnerMask = 0;
|
||||
public uint GroupMask = 0;
|
||||
public uint EveryoneMask = 0;
|
||||
public uint NextOwnerMask = 0;
|
||||
|
||||
public UUID CreatorID = UUID.Zero;
|
||||
public UUID OwnerID = UUID.Zero;
|
||||
public UUID LastOwnerID = UUID.Zero;
|
||||
public UUID GroupID = UUID.Zero;
|
||||
|
||||
//sale
|
||||
public string SaleType = "not";
|
||||
public int SalePrice = 10;
|
||||
|
||||
private string BuildString = "";
|
||||
|
||||
|
||||
public WearableItem(string wearableName, WearableType type)
|
||||
{
|
||||
WearableName = wearableName;
|
||||
WearType = type;
|
||||
}
|
||||
|
||||
public WearableItem(string wearableName)
|
||||
{
|
||||
WearableName = wearableName;
|
||||
WearType = ConvertNameToType(WearableName);
|
||||
}
|
||||
|
||||
public WearableItem(WearableType type)
|
||||
{
|
||||
WearType = type;
|
||||
WearableName = Enum.GetName(typeof(WearableType), type).ToLower();
|
||||
}
|
||||
|
||||
public WearableItem()
|
||||
{
|
||||
}
|
||||
|
||||
public void AddVisualSetting(VisualSetting setting)
|
||||
{
|
||||
if (!VisualSettings.ContainsKey(setting.VisualParam.ParamID))
|
||||
{
|
||||
VisualSettings.Add(setting.VisualParam.ParamID, setting);
|
||||
}
|
||||
}
|
||||
|
||||
public bool TryGetSetting(string paramName, out VisualSetting paramSetting)
|
||||
{
|
||||
foreach (VisualSetting setting in VisualSettings.Values)
|
||||
{
|
||||
if (setting.VisualParam.Name == paramName)
|
||||
{
|
||||
paramSetting = setting;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
paramSetting = null;
|
||||
return false;
|
||||
}
|
||||
|
||||
public bool SetParamValue(string paramName, float value)
|
||||
{
|
||||
VisualSetting paramSetting;
|
||||
if (TryGetSetting(paramName, out paramSetting))
|
||||
{
|
||||
if ((value >= paramSetting.VisualParam.MinValue) && (value <= paramSetting.VisualParam.MaxValue))
|
||||
{
|
||||
paramSetting.Value = value;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public void RandomiseValues()
|
||||
{
|
||||
foreach (VisualSetting setting in VisualSettings.Values)
|
||||
{
|
||||
//int randNum = Util.RandomClass.Next(0, 1000);
|
||||
float range = setting.VisualParam.MaxValue - setting.VisualParam.MinValue;
|
||||
// float val =((float) randNum )/ ((float)(1000.0f / range));
|
||||
float val = (float)OpenSim.Framework.Util.RandomClass.NextDouble() * range * 0.2f;
|
||||
setting.Value = setting.VisualParam.MinValue + (range / 2) + val;
|
||||
}
|
||||
}
|
||||
|
||||
public WearableType ConvertNameToType(string name)
|
||||
{
|
||||
return (WearableType)Enum.Parse(typeof(WearableType), name, true);
|
||||
}
|
||||
|
||||
public string ToAssetFormat()
|
||||
{
|
||||
BuildString = "LLWearable version 22\n";
|
||||
BuildString += "New Item \n";
|
||||
BuildString += ItemInfo + "\n";
|
||||
|
||||
|
||||
AddSectionStart("permissions");
|
||||
AddTabbedNameValueLine("base_mask", BaseMask.ToString("00000000"));
|
||||
AddTabbedNameValueLine("owner_mask", OwnerMask.ToString("00000000"));
|
||||
AddTabbedNameValueLine("group_mask", GroupMask.ToString("00000000"));
|
||||
AddTabbedNameValueLine("everyone_mask", EveryoneMask.ToString("00000000"));
|
||||
AddTabbedNameValueLine("next_owner_mask", NextOwnerMask.ToString("00000000"));
|
||||
AddTabbedNameValueLine("creator_id", CreatorID.ToString());
|
||||
AddTabbedNameValueLine("owner_id", OwnerID.ToString());
|
||||
AddTabbedNameValueLine("last_owner_id", LastOwnerID.ToString());
|
||||
AddTabbedNameValueLine("group_id", GroupID.ToString());
|
||||
AddSectionEnd();
|
||||
|
||||
AddSectionStart("sale_info");
|
||||
AddTabbedNameValueLine("sale_type", SaleType.ToString());
|
||||
AddTabbedNameValueLine("sale_price", SalePrice.ToString());
|
||||
AddSectionEnd();
|
||||
|
||||
AddNameValueLine("type", ((byte)WearType).ToString());
|
||||
AddNameValueLine("parameters", VisualSettings.Count.ToString());
|
||||
|
||||
foreach (KeyValuePair<int, VisualSetting> kp in VisualSettings)
|
||||
{
|
||||
AddNameValueLine(kp.Key.ToString(), kp.Value.Value.ToString(CultureInfo.InvariantCulture));
|
||||
}
|
||||
if (TextureStrings.Count == 0)
|
||||
{
|
||||
AddNameValueLine("textures", "0"); //todo output texture entry
|
||||
}
|
||||
else
|
||||
{
|
||||
AddNameValueLine("textures", TextureStrings.Count.ToString());
|
||||
for (int i = 0; i < TextureStrings.Count; i++)
|
||||
{
|
||||
BuildString += TextureStrings[i] + "\n";
|
||||
}
|
||||
BuildString += "\n";
|
||||
|
||||
}
|
||||
|
||||
return BuildString;
|
||||
}
|
||||
|
||||
public void SaveToFile(string fileName)
|
||||
{
|
||||
File.WriteAllText(fileName, this.ToAssetFormat());
|
||||
}
|
||||
|
||||
public void AddSectionStart(string sectionName)
|
||||
{
|
||||
BuildString += "\t" + sectionName + " 0\n";
|
||||
BuildString += "\t{\n";
|
||||
}
|
||||
|
||||
public void AddSectionEnd()
|
||||
{
|
||||
BuildString += "\t}\n";
|
||||
}
|
||||
|
||||
private void AddTabbedNameValueLine(string name, string value)
|
||||
{
|
||||
BuildString += "\t\t";
|
||||
BuildString += name + "\t";
|
||||
BuildString += value + "\n";
|
||||
}
|
||||
|
||||
private void AddNameValueLine(string name, string value)
|
||||
{
|
||||
// BuildString += "\t\t";
|
||||
BuildString += name + " ";
|
||||
BuildString += value + "\n";
|
||||
}
|
||||
|
||||
#region Static Methods
|
||||
public static List<VisualParam> FindParamsForWearable(string wearableName)
|
||||
{
|
||||
List<VisualParam> wearableParams = new List<VisualParam>();
|
||||
foreach (VisualParam param in VisualParams.Params.Values)
|
||||
{
|
||||
if (param.Wearable == wearableName)
|
||||
{
|
||||
wearableParams.Add(param);
|
||||
}
|
||||
}
|
||||
|
||||
return wearableParams;
|
||||
}
|
||||
|
||||
public static WearableItem Create(string wearableTypeName)
|
||||
{
|
||||
WearableItem wearableItem = new WearableItem(wearableTypeName);
|
||||
List<VisualParam> typeParams = FindParamsForWearable(wearableTypeName);
|
||||
foreach (VisualParam param in typeParams)
|
||||
{
|
||||
wearableItem.AddVisualSetting(new VisualSetting(param));
|
||||
}
|
||||
return wearableItem;
|
||||
}
|
||||
|
||||
public static WearableItem CreateFromAsset(string assetData)
|
||||
{
|
||||
UUID creatorID = UUID.Zero;
|
||||
UUID ownerID = UUID.Zero;
|
||||
UUID lastOwnerID = UUID.Zero;
|
||||
UUID groupID = UUID.Zero;
|
||||
|
||||
char[] newlineDelimiter = { '\n' };
|
||||
string[] lines = assetData.Split(newlineDelimiter);
|
||||
|
||||
WearableItem wearableObject = null;
|
||||
Regex r = new Regex("[\t ]+");
|
||||
bool reachedParams = false;
|
||||
bool reachedTextures = false;
|
||||
foreach (string line in lines)
|
||||
{
|
||||
string trimLine = line.Trim();
|
||||
// Console.WriteLine("line : " + trimLine);
|
||||
|
||||
string[] splitLine = r.Split(trimLine);
|
||||
if (splitLine.Length > 1)
|
||||
{
|
||||
switch (splitLine[0])
|
||||
{
|
||||
case "textures":
|
||||
reachedParams = false;
|
||||
reachedTextures = true;
|
||||
break;
|
||||
|
||||
case "type":
|
||||
string wearableTypeName = Enum.GetName(typeof(WearableType), (WearableType)Convert.ToInt32(splitLine[1]));
|
||||
wearableObject = Create(wearableTypeName.ToLower());
|
||||
break;
|
||||
|
||||
case "parameters":
|
||||
reachedParams = true;
|
||||
break;
|
||||
|
||||
case "creator_id":
|
||||
creatorID = new UUID(splitLine[1]);
|
||||
break;
|
||||
|
||||
case "owner_id":
|
||||
ownerID = new UUID(splitLine[1]);
|
||||
break;
|
||||
|
||||
case "last_owner_id":
|
||||
lastOwnerID = new UUID(splitLine[1]);
|
||||
break;
|
||||
|
||||
case "group_id":
|
||||
groupID = new UUID(splitLine[1]);
|
||||
break;
|
||||
|
||||
default:
|
||||
if ((wearableObject != null) && (reachedParams))
|
||||
{
|
||||
int id = Convert.ToInt32(splitLine[0]);
|
||||
if (wearableObject.VisualSettings.ContainsKey(id))
|
||||
{
|
||||
|
||||
wearableObject.VisualSettings[id].Value = Convert.ToSingle(splitLine[1], CultureInfo.InvariantCulture);
|
||||
}
|
||||
}
|
||||
else if ((wearableObject != null) && (reachedTextures))
|
||||
{
|
||||
wearableObject.TextureStrings.Add(line);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (wearableObject != null)
|
||||
{
|
||||
wearableObject.CreatorID = creatorID;
|
||||
wearableObject.OwnerID = ownerID;
|
||||
wearableObject.LastOwnerID = lastOwnerID;
|
||||
wearableObject.GroupID = groupID;
|
||||
}
|
||||
|
||||
return wearableObject;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Nested Class
|
||||
public class VisualSetting
|
||||
{
|
||||
public VisualParam VisualParam;
|
||||
public float Value = 0;
|
||||
|
||||
public VisualSetting(VisualParam param, float value)
|
||||
{
|
||||
VisualParam = param;
|
||||
Value = value;
|
||||
}
|
||||
|
||||
public VisualSetting(VisualParam param)
|
||||
{
|
||||
VisualParam = param;
|
||||
Value = param.DefaultValue;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue