Merge branch 'master' into careminster
commit
2084e08ad7
|
@ -120,6 +120,7 @@ what it is today.
|
|||
* tglion
|
||||
* tlaukkan/Tommil (Tommi S. E. Laukkanen, Bubble Cloud)
|
||||
* tyre
|
||||
* VikingErik
|
||||
* Vytek
|
||||
* webmage (IBM)
|
||||
* Xantor
|
||||
|
|
|
@ -29,6 +29,7 @@ using System;
|
|||
using System.IO;
|
||||
using System.Xml.Serialization;
|
||||
using OpenMetaverse;
|
||||
using OpenSim.Framework;
|
||||
using OpenSim.Framework.Servers;
|
||||
using OpenSim.Framework.Servers.HttpServer;
|
||||
using OpenSim.Region.Framework.Interfaces;
|
||||
|
@ -156,8 +157,8 @@ namespace OpenSim.ApplicationPlugins.Rest.Regions
|
|||
Vector3 min, max;
|
||||
try
|
||||
{
|
||||
min = new Vector3((float)Double.Parse(subregion[0]), (float)Double.Parse(subregion[1]), (float)Double.Parse(subregion[2]));
|
||||
max = new Vector3((float)Double.Parse(subregion[3]), (float)Double.Parse(subregion[4]), (float)Double.Parse(subregion[5]));
|
||||
min = new Vector3((float)Double.Parse(subregion[0], Culture.NumberFormatInfo), (float)Double.Parse(subregion[1], Culture.NumberFormatInfo), (float)Double.Parse(subregion[2], Culture.NumberFormatInfo));
|
||||
max = new Vector3((float)Double.Parse(subregion[3], Culture.NumberFormatInfo), (float)Double.Parse(subregion[4], Culture.NumberFormatInfo), (float)Double.Parse(subregion[5], Culture.NumberFormatInfo));
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
|
|
|
@ -218,9 +218,9 @@ namespace OpenSim.Client.Linden
|
|||
{
|
||||
//m_log.Debug("[CLIENT]: Main agent detected");
|
||||
agentData.startpos =
|
||||
new Vector3((float)Convert.ToDecimal((string)requestData["startpos_x"]),
|
||||
(float)Convert.ToDecimal((string)requestData["startpos_y"]),
|
||||
(float)Convert.ToDecimal((string)requestData["startpos_z"]));
|
||||
new Vector3((float)Convert.ToDecimal((string)requestData["startpos_x"], Culture.NumberFormatInfo),
|
||||
(float)Convert.ToDecimal((string)requestData["startpos_y"], Culture.NumberFormatInfo),
|
||||
(float)Convert.ToDecimal((string)requestData["startpos_z"], Culture.NumberFormatInfo));
|
||||
agentData.child = false;
|
||||
}
|
||||
|
||||
|
|
|
@ -622,11 +622,6 @@ namespace OpenSim.Data.MySQL
|
|||
return false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Appearance
|
||||
/// TODO: stubs for now to get us to a compiling state gently
|
||||
/// override
|
||||
/// </summary>
|
||||
public override AvatarAppearance GetUserAppearance(UUID user)
|
||||
{
|
||||
try
|
||||
|
|
|
@ -626,18 +626,42 @@ namespace OpenSim.Data.SQLite
|
|||
{
|
||||
lock (ds)
|
||||
{
|
||||
using (SqliteCommand cmd = new SqliteCommand("delete from land where UUID=:UUID", m_conn))
|
||||
// Can't use blanket SQL statements when using SqlAdapters unless you re-read the data into the adapter
|
||||
// after you're done.
|
||||
// replaced below code with the SqliteAdapter version.
|
||||
//using (SqliteCommand cmd = new SqliteCommand("delete from land where UUID=:UUID", m_conn))
|
||||
//{
|
||||
// cmd.Parameters.Add(new SqliteParameter(":UUID", globalID.ToString()));
|
||||
// cmd.ExecuteNonQuery();
|
||||
//}
|
||||
|
||||
//using (SqliteCommand cmd = new SqliteCommand("delete from landaccesslist where LandUUID=:UUID", m_conn))
|
||||
//{
|
||||
// cmd.Parameters.Add(new SqliteParameter(":UUID", globalID.ToString()));
|
||||
// cmd.ExecuteNonQuery();
|
||||
//}
|
||||
|
||||
DataTable land = ds.Tables["land"];
|
||||
DataTable landaccesslist = ds.Tables["landaccesslist"];
|
||||
DataRow landRow = land.Rows.Find(globalID.ToString());
|
||||
if (landRow != null)
|
||||
{
|
||||
cmd.Parameters.Add(new SqliteParameter(":UUID", globalID.ToString()));
|
||||
cmd.ExecuteNonQuery();
|
||||
land.Rows.Remove(landRow);
|
||||
}
|
||||
List<DataRow> rowsToDelete = new List<DataRow>();
|
||||
foreach (DataRow rowToCheck in landaccesslist.Rows)
|
||||
{
|
||||
if (rowToCheck["LandUUID"].ToString() == globalID.ToString())
|
||||
rowsToDelete.Add(rowToCheck);
|
||||
}
|
||||
for (int iter = 0; iter < rowsToDelete.Count; iter++)
|
||||
{
|
||||
landaccesslist.Rows.Remove(rowsToDelete[iter]);
|
||||
}
|
||||
|
||||
using (SqliteCommand cmd = new SqliteCommand("delete from landaccesslist where LandUUID=:UUID", m_conn))
|
||||
{
|
||||
cmd.Parameters.Add(new SqliteParameter(":UUID", globalID.ToString()));
|
||||
cmd.ExecuteNonQuery();
|
||||
}
|
||||
|
||||
}
|
||||
Commit();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -664,12 +688,27 @@ namespace OpenSim.Data.SQLite
|
|||
}
|
||||
|
||||
// I know this caused someone issues before, but OpenSim is unusable if we leave this stuff around
|
||||
using (SqliteCommand cmd = new SqliteCommand("delete from landaccesslist where LandUUID=:LandUUID", m_conn))
|
||||
{
|
||||
cmd.Parameters.Add(new SqliteParameter(":LandUUID", parcel.LandData.GlobalID.ToString()));
|
||||
cmd.ExecuteNonQuery();
|
||||
}
|
||||
//using (SqliteCommand cmd = new SqliteCommand("delete from landaccesslist where LandUUID=:LandUUID", m_conn))
|
||||
//{
|
||||
// cmd.Parameters.Add(new SqliteParameter(":LandUUID", parcel.LandData.GlobalID.ToString()));
|
||||
// cmd.ExecuteNonQuery();
|
||||
|
||||
// }
|
||||
|
||||
// This is the slower.. but more appropriate thing to do
|
||||
|
||||
// We can't modify the table with direct queries before calling Commit() and re-filling them.
|
||||
List<DataRow> rowsToDelete = new List<DataRow>();
|
||||
foreach (DataRow rowToCheck in landaccesslist.Rows)
|
||||
{
|
||||
if (rowToCheck["LandUUID"].ToString() == parcel.LandData.GlobalID.ToString())
|
||||
rowsToDelete.Add(rowToCheck);
|
||||
}
|
||||
for (int iter = 0; iter < rowsToDelete.Count; iter++)
|
||||
{
|
||||
landaccesslist.Rows.Remove(rowsToDelete[iter]);
|
||||
}
|
||||
rowsToDelete.Clear();
|
||||
foreach (ParcelManager.ParcelAccessEntry entry in parcel.LandData.ParcelAccessList)
|
||||
{
|
||||
DataRow newAccessRow = landaccesslist.NewRow();
|
||||
|
@ -1720,7 +1759,7 @@ namespace OpenSim.Data.SQLite
|
|||
row["terrain_raise_limit"] = settings.TerrainRaiseLimit;
|
||||
row["terrain_lower_limit"] = settings.TerrainLowerLimit;
|
||||
row["use_estate_sun"] = settings.UseEstateSun;
|
||||
row["sandbox"] = settings.Sandbox;
|
||||
row["Sandbox"] = settings.Sandbox; // database uses upper case S for sandbox
|
||||
row["sunvectorx"] = settings.SunVector.X;
|
||||
row["sunvectory"] = settings.SunVector.Y;
|
||||
row["sunvectorz"] = settings.SunVector.Z;
|
||||
|
@ -1822,6 +1861,7 @@ namespace OpenSim.Data.SQLite
|
|||
/// <param name="regionUUID"></param>
|
||||
private void addPrim(SceneObjectPart prim, UUID sceneGroupID, UUID regionUUID)
|
||||
{
|
||||
|
||||
DataTable prims = ds.Tables["prims"];
|
||||
DataTable shapes = ds.Tables["primshapes"];
|
||||
|
||||
|
@ -1970,6 +2010,40 @@ namespace OpenSim.Data.SQLite
|
|||
return cmd;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// create an update command
|
||||
/// </summary>
|
||||
/// <param name="table">table name</param>
|
||||
/// <param name="pk"></param>
|
||||
/// <param name="dt"></param>
|
||||
/// <returns>the created command</returns>
|
||||
private static SqliteCommand createUpdateCommand(string table, string pk1, string pk2, DataTable dt)
|
||||
{
|
||||
string sql = "update " + table + " set ";
|
||||
string subsql = String.Empty;
|
||||
foreach (DataColumn col in dt.Columns)
|
||||
{
|
||||
if (subsql.Length > 0)
|
||||
{
|
||||
// a map function would rock so much here
|
||||
subsql += ", ";
|
||||
}
|
||||
subsql += col.ColumnName + "= :" + col.ColumnName;
|
||||
}
|
||||
sql += subsql;
|
||||
sql += " where " + pk1 + " and " + pk2;
|
||||
SqliteCommand cmd = new SqliteCommand(sql);
|
||||
|
||||
// this provides the binding for all our parameters, so
|
||||
// much less code than it used to be
|
||||
|
||||
foreach (DataColumn col in dt.Columns)
|
||||
{
|
||||
cmd.Parameters.Add(createSqliteParameter(col.ColumnName, col.DataType));
|
||||
}
|
||||
return cmd;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
|
@ -2088,6 +2162,11 @@ namespace OpenSim.Data.SQLite
|
|||
|
||||
da.UpdateCommand = createUpdateCommand("land", "UUID=:UUID", ds.Tables["land"]);
|
||||
da.UpdateCommand.Connection = conn;
|
||||
|
||||
SqliteCommand delete = new SqliteCommand("delete from land where UUID=:UUID");
|
||||
delete.Parameters.Add(createSqliteParameter("UUID", typeof(String)));
|
||||
da.DeleteCommand = delete;
|
||||
da.DeleteCommand.Connection = conn;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -2099,6 +2178,16 @@ namespace OpenSim.Data.SQLite
|
|||
{
|
||||
da.InsertCommand = createInsertCommand("landaccesslist", ds.Tables["landaccesslist"]);
|
||||
da.InsertCommand.Connection = conn;
|
||||
|
||||
da.UpdateCommand = createUpdateCommand("landaccesslist", "LandUUID=:landUUID", "AccessUUID=:AccessUUID", ds.Tables["landaccesslist"]);
|
||||
da.UpdateCommand.Connection = conn;
|
||||
|
||||
SqliteCommand delete = new SqliteCommand("delete from landaccesslist where LandUUID= :LandUUID and AccessUUID= :AccessUUID");
|
||||
delete.Parameters.Add(createSqliteParameter("LandUUID", typeof(String)));
|
||||
delete.Parameters.Add(createSqliteParameter("AccessUUID", typeof(String)));
|
||||
da.DeleteCommand = delete;
|
||||
da.DeleteCommand.Connection = conn;
|
||||
|
||||
}
|
||||
|
||||
private void setupRegionSettingsCommands(SqliteDataAdapter da, SqliteConnection conn)
|
||||
|
|
|
@ -69,9 +69,7 @@ namespace OpenSim.Framework
|
|||
private static UUID HAIR_ASSET = new UUID("d342e6c0-b9d2-11dc-95ff-0800200c9a66");
|
||||
private static UUID HAIR_ITEM = new UUID("d342e6c1-b9d2-11dc-95ff-0800200c9a66");
|
||||
|
||||
public readonly static int VISUALPARAM_COUNT = 218;
|
||||
|
||||
|
||||
public readonly static int VISUALPARAM_COUNT = 218;
|
||||
|
||||
protected UUID m_owner;
|
||||
|
||||
|
@ -346,11 +344,7 @@ namespace OpenSim.Framework
|
|||
}
|
||||
*/
|
||||
|
||||
|
||||
public AvatarAppearance()
|
||||
: this(UUID.Zero)
|
||||
{
|
||||
}
|
||||
public AvatarAppearance() : this(UUID.Zero) {}
|
||||
|
||||
public AvatarAppearance(UUID owner)
|
||||
{
|
||||
|
@ -367,10 +361,8 @@ namespace OpenSim.Framework
|
|||
// This sets Visual Params with *less* weirder values then default. Instead of a ugly alien, it looks like a fat scientist
|
||||
SetDefaultParams(m_visualparams);
|
||||
SetDefaultWearables();
|
||||
m_texture = GetDefaultTexture();
|
||||
|
||||
m_texture = GetDefaultTexture();
|
||||
}
|
||||
|
||||
|
||||
public AvatarAppearance(UUID avatarID, AvatarWearable[] wearables, byte[] visualParams)
|
||||
{
|
||||
|
@ -1481,4 +1473,4 @@ namespace OpenSim.Framework
|
|||
SKIRT_SKIRT_BLUE = 217
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1015,8 +1015,8 @@ namespace OpenSim.Framework.Communications.Services
|
|||
}
|
||||
else
|
||||
{
|
||||
theUser.CurrentAgent.Position = new Vector3(float.Parse(uriMatch.Groups["x"].Value),
|
||||
float.Parse(uriMatch.Groups["y"].Value), float.Parse(uriMatch.Groups["z"].Value));
|
||||
theUser.CurrentAgent.Position = new Vector3(float.Parse(uriMatch.Groups["x"].Value, Culture.NumberFormatInfo),
|
||||
float.Parse(uriMatch.Groups["y"].Value, Culture.NumberFormatInfo), float.Parse(uriMatch.Groups["z"].Value, Culture.NumberFormatInfo));
|
||||
}
|
||||
}
|
||||
response.LookAt = "[r0,r1,r0]";
|
||||
|
|
|
@ -785,7 +785,8 @@ namespace OpenSim.Framework.Communications
|
|||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
m_log.ErrorFormat("[USERSTORAGE]: Unable to find user appearance {0} via {1} ({2})", user.ToString(), plugin.Name, e.ToString());
|
||||
m_log.ErrorFormat(
|
||||
"[USERSTORAGE]: Unable to find user appearance {0} via {1} ({2})", user, plugin.Name, e);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -33,7 +33,7 @@ namespace OpenSim.Framework
|
|||
{
|
||||
public class Culture
|
||||
{
|
||||
private static readonly CultureInfo m_cultureInfo = new CultureInfo("en-US", true);
|
||||
private static readonly CultureInfo m_cultureInfo = new CultureInfo("en-US", false);
|
||||
|
||||
public static NumberFormatInfo NumberFormatInfo
|
||||
{
|
||||
|
|
|
@ -109,7 +109,7 @@ namespace OpenSim.Framework.Serialization.External
|
|||
settings.AgentLimit = int.Parse(xtr.ReadElementContentAsString());
|
||||
break;
|
||||
case "ObjectBonus":
|
||||
settings.ObjectBonus = double.Parse(xtr.ReadElementContentAsString());
|
||||
settings.ObjectBonus = double.Parse(xtr.ReadElementContentAsString(), Culture.NumberFormatInfo);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -134,28 +134,28 @@ namespace OpenSim.Framework.Serialization.External
|
|||
settings.TerrainTexture4 = UUID.Parse(xtr.ReadElementContentAsString());
|
||||
break;
|
||||
case "ElevationLowSW":
|
||||
settings.Elevation1SW = double.Parse(xtr.ReadElementContentAsString());
|
||||
settings.Elevation1SW = double.Parse(xtr.ReadElementContentAsString(), Culture.NumberFormatInfo);
|
||||
break;
|
||||
case "ElevationLowNW":
|
||||
settings.Elevation1NW = double.Parse(xtr.ReadElementContentAsString());
|
||||
settings.Elevation1NW = double.Parse(xtr.ReadElementContentAsString(), Culture.NumberFormatInfo);
|
||||
break;
|
||||
case "ElevationLowSE":
|
||||
settings.Elevation1SE = double.Parse(xtr.ReadElementContentAsString());
|
||||
settings.Elevation1SE = double.Parse(xtr.ReadElementContentAsString(), Culture.NumberFormatInfo);
|
||||
break;
|
||||
case "ElevationLowNE":
|
||||
settings.Elevation1NE = double.Parse(xtr.ReadElementContentAsString());
|
||||
settings.Elevation1NE = double.Parse(xtr.ReadElementContentAsString(), Culture.NumberFormatInfo);
|
||||
break;
|
||||
case "ElevationHighSW":
|
||||
settings.Elevation2SW = double.Parse(xtr.ReadElementContentAsString());
|
||||
settings.Elevation2SW = double.Parse(xtr.ReadElementContentAsString(), Culture.NumberFormatInfo);
|
||||
break;
|
||||
case "ElevationHighNW":
|
||||
settings.Elevation2NW = double.Parse(xtr.ReadElementContentAsString());
|
||||
settings.Elevation2NW = double.Parse(xtr.ReadElementContentAsString(), Culture.NumberFormatInfo);
|
||||
break;
|
||||
case "ElevationHighSE":
|
||||
settings.Elevation2SE = double.Parse(xtr.ReadElementContentAsString());
|
||||
settings.Elevation2SE = double.Parse(xtr.ReadElementContentAsString(), Culture.NumberFormatInfo);
|
||||
break;
|
||||
case "ElevationHighNE":
|
||||
settings.Elevation2NE = double.Parse(xtr.ReadElementContentAsString());
|
||||
settings.Elevation2NE = double.Parse(xtr.ReadElementContentAsString(), Culture.NumberFormatInfo);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -168,13 +168,13 @@ namespace OpenSim.Framework.Serialization.External
|
|||
switch (xtr.Name)
|
||||
{
|
||||
case "WaterHeight":
|
||||
settings.WaterHeight = double.Parse(xtr.ReadElementContentAsString());
|
||||
settings.WaterHeight = double.Parse(xtr.ReadElementContentAsString(), Culture.NumberFormatInfo);
|
||||
break;
|
||||
case "TerrainRaiseLimit":
|
||||
settings.TerrainRaiseLimit = double.Parse(xtr.ReadElementContentAsString());
|
||||
settings.TerrainRaiseLimit = double.Parse(xtr.ReadElementContentAsString(), Culture.NumberFormatInfo);
|
||||
break;
|
||||
case "TerrainLowerLimit":
|
||||
settings.TerrainLowerLimit = double.Parse(xtr.ReadElementContentAsString());
|
||||
settings.TerrainLowerLimit = double.Parse(xtr.ReadElementContentAsString(), Culture.NumberFormatInfo);
|
||||
break;
|
||||
case "UseEstateSun":
|
||||
settings.UseEstateSun = bool.Parse(xtr.ReadElementContentAsString());
|
||||
|
|
|
@ -503,7 +503,7 @@ namespace OpenSim.Grid.UserServer.Modules
|
|||
{
|
||||
try
|
||||
{
|
||||
userProfile.HomeLocationX = (float)Convert.ToDecimal((string)requestData["home_pos_x"]);
|
||||
userProfile.HomeLocationX = (float)Convert.ToDecimal((string)requestData["home_pos_x"], Culture.NumberFormatInfo);
|
||||
}
|
||||
catch (InvalidCastException)
|
||||
{
|
||||
|
@ -514,7 +514,7 @@ namespace OpenSim.Grid.UserServer.Modules
|
|||
{
|
||||
try
|
||||
{
|
||||
userProfile.HomeLocationY = (float)Convert.ToDecimal((string)requestData["home_pos_y"]);
|
||||
userProfile.HomeLocationY = (float)Convert.ToDecimal((string)requestData["home_pos_y"], Culture.NumberFormatInfo);
|
||||
}
|
||||
catch (InvalidCastException)
|
||||
{
|
||||
|
@ -525,7 +525,7 @@ namespace OpenSim.Grid.UserServer.Modules
|
|||
{
|
||||
try
|
||||
{
|
||||
userProfile.HomeLocationZ = (float)Convert.ToDecimal((string)requestData["home_pos_z"]);
|
||||
userProfile.HomeLocationZ = (float)Convert.ToDecimal((string)requestData["home_pos_z"], Culture.NumberFormatInfo);
|
||||
}
|
||||
catch (InvalidCastException)
|
||||
{
|
||||
|
@ -536,7 +536,7 @@ namespace OpenSim.Grid.UserServer.Modules
|
|||
{
|
||||
try
|
||||
{
|
||||
userProfile.HomeLookAtX = (float)Convert.ToDecimal((string)requestData["home_look_x"]);
|
||||
userProfile.HomeLookAtX = (float)Convert.ToDecimal((string)requestData["home_look_x"], Culture.NumberFormatInfo);
|
||||
}
|
||||
catch (InvalidCastException)
|
||||
{
|
||||
|
@ -547,7 +547,7 @@ namespace OpenSim.Grid.UserServer.Modules
|
|||
{
|
||||
try
|
||||
{
|
||||
userProfile.HomeLookAtY = (float)Convert.ToDecimal((string)requestData["home_look_y"]);
|
||||
userProfile.HomeLookAtY = (float)Convert.ToDecimal((string)requestData["home_look_y"], Culture.NumberFormatInfo);
|
||||
}
|
||||
catch (InvalidCastException)
|
||||
{
|
||||
|
@ -558,7 +558,7 @@ namespace OpenSim.Grid.UserServer.Modules
|
|||
{
|
||||
try
|
||||
{
|
||||
userProfile.HomeLookAtZ = (float)Convert.ToDecimal((string)requestData["home_look_z"]);
|
||||
userProfile.HomeLookAtZ = (float)Convert.ToDecimal((string)requestData["home_look_z"], Culture.NumberFormatInfo);
|
||||
}
|
||||
catch (InvalidCastException)
|
||||
{
|
||||
|
@ -634,13 +634,13 @@ namespace OpenSim.Grid.UserServer.Modules
|
|||
UUID RegionID = new UUID((string)requestData["region_uuid"]);
|
||||
ulong regionhandle = (ulong)Convert.ToInt64((string)requestData["region_handle"]);
|
||||
Vector3 position = new Vector3(
|
||||
(float)Convert.ToDecimal((string)requestData["region_pos_x"]),
|
||||
(float)Convert.ToDecimal((string)requestData["region_pos_y"]),
|
||||
(float)Convert.ToDecimal((string)requestData["region_pos_z"]));
|
||||
(float)Convert.ToDecimal((string)requestData["region_pos_x"], Culture.NumberFormatInfo),
|
||||
(float)Convert.ToDecimal((string)requestData["region_pos_y"], Culture.NumberFormatInfo),
|
||||
(float)Convert.ToDecimal((string)requestData["region_pos_z"], Culture.NumberFormatInfo));
|
||||
Vector3 lookat = new Vector3(
|
||||
(float)Convert.ToDecimal((string)requestData["lookat_x"]),
|
||||
(float)Convert.ToDecimal((string)requestData["lookat_y"]),
|
||||
(float)Convert.ToDecimal((string)requestData["lookat_z"]));
|
||||
(float)Convert.ToDecimal((string)requestData["lookat_x"], Culture.NumberFormatInfo),
|
||||
(float)Convert.ToDecimal((string)requestData["lookat_y"], Culture.NumberFormatInfo),
|
||||
(float)Convert.ToDecimal((string)requestData["lookat_z"], Culture.NumberFormatInfo));
|
||||
|
||||
handlerLogOffUser = OnLogOffUser;
|
||||
if (handlerLogOffUser != null)
|
||||
|
|
|
@ -1183,14 +1183,14 @@ namespace OpenSim
|
|||
}
|
||||
if (cmdparams.Length > 4)
|
||||
{
|
||||
loadOffset.X = (float) Convert.ToDecimal(cmdparams[4]);
|
||||
loadOffset.X = (float)Convert.ToDecimal(cmdparams[4], Culture.NumberFormatInfo);
|
||||
if (cmdparams.Length > 5)
|
||||
{
|
||||
loadOffset.Y = (float) Convert.ToDecimal(cmdparams[5]);
|
||||
loadOffset.Y = (float)Convert.ToDecimal(cmdparams[5], Culture.NumberFormatInfo);
|
||||
}
|
||||
if (cmdparams.Length > 6)
|
||||
{
|
||||
loadOffset.Z = (float) Convert.ToDecimal(cmdparams[6]);
|
||||
loadOffset.Z = (float)Convert.ToDecimal(cmdparams[6], Culture.NumberFormatInfo);
|
||||
}
|
||||
MainConsole.Instance.Output(String.Format("loadOffsets <X,Y,Z> = <{0},{1},{2}>",loadOffset.X,loadOffset.Y,loadOffset.Z));
|
||||
}
|
||||
|
|
|
@ -3286,9 +3286,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
|||
awb.ItemID = wearables[i].ItemID;
|
||||
aw.WearableData[i] = awb;
|
||||
|
||||
// m_log.DebugFormat(
|
||||
// "[APPEARANCE]: Sending wearable item/asset {0} {1} (index {2}) for {3}",
|
||||
// awb.ItemID, awb.AssetID, i, Name);
|
||||
// m_log.DebugFormat(
|
||||
// "[APPEARANCE]: Sending wearable item/asset {0} {1} (index {2}) for {3}",
|
||||
// awb.ItemID, awb.AssetID, i, Name);
|
||||
}
|
||||
|
||||
OutPacket(aw, ThrottleOutPacketType.Task);
|
||||
|
@ -8294,8 +8294,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
|||
{
|
||||
OnSetEstateFlagsRequest(convertParamStringToBool(messagePacket.ParamList[0].Parameter), convertParamStringToBool(messagePacket.ParamList[1].Parameter),
|
||||
convertParamStringToBool(messagePacket.ParamList[2].Parameter), !convertParamStringToBool(messagePacket.ParamList[3].Parameter),
|
||||
Convert.ToInt16(Convert.ToDecimal(Utils.BytesToString(messagePacket.ParamList[4].Parameter))),
|
||||
(float)Convert.ToDecimal(Utils.BytesToString(messagePacket.ParamList[5].Parameter)),
|
||||
Convert.ToInt16(Convert.ToDecimal(Utils.BytesToString(messagePacket.ParamList[4].Parameter), Culture.NumberFormatInfo)),
|
||||
(float)Convert.ToDecimal(Utils.BytesToString(messagePacket.ParamList[5].Parameter), Culture.NumberFormatInfo),
|
||||
Convert.ToInt16(Utils.BytesToString(messagePacket.ParamList[6].Parameter)),
|
||||
convertParamStringToBool(messagePacket.ParamList[7].Parameter), convertParamStringToBool(messagePacket.ParamList[8].Parameter));
|
||||
}
|
||||
|
@ -8343,8 +8343,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
|||
if (splitField.Length == 3)
|
||||
{
|
||||
Int16 corner = Convert.ToInt16(splitField[0]);
|
||||
float lowValue = (float)Convert.ToDecimal(splitField[1]);
|
||||
float highValue = (float)Convert.ToDecimal(splitField[2]);
|
||||
float lowValue = (float)Convert.ToDecimal(splitField[1], Culture.NumberFormatInfo);
|
||||
float highValue = (float)Convert.ToDecimal(splitField[2], Culture.NumberFormatInfo);
|
||||
|
||||
OnSetEstateTerrainTextureHeights(this, corner, lowValue, highValue);
|
||||
}
|
||||
|
@ -8367,19 +8367,19 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
|||
{
|
||||
string tmp = Utils.BytesToString(messagePacket.ParamList[0].Parameter);
|
||||
if (!tmp.Contains(".")) tmp += ".00";
|
||||
float WaterHeight = (float)Convert.ToDecimal(tmp);
|
||||
float WaterHeight = (float)Convert.ToDecimal(tmp, Culture.NumberFormatInfo);
|
||||
tmp = Utils.BytesToString(messagePacket.ParamList[1].Parameter);
|
||||
if (!tmp.Contains(".")) tmp += ".00";
|
||||
float TerrainRaiseLimit = (float)Convert.ToDecimal(tmp);
|
||||
float TerrainRaiseLimit = (float)Convert.ToDecimal(tmp, Culture.NumberFormatInfo);
|
||||
tmp = Utils.BytesToString(messagePacket.ParamList[2].Parameter);
|
||||
if (!tmp.Contains(".")) tmp += ".00";
|
||||
float TerrainLowerLimit = (float)Convert.ToDecimal(tmp);
|
||||
float TerrainLowerLimit = (float)Convert.ToDecimal(tmp, Culture.NumberFormatInfo);
|
||||
bool UseEstateSun = convertParamStringToBool(messagePacket.ParamList[3].Parameter);
|
||||
bool UseFixedSun = convertParamStringToBool(messagePacket.ParamList[4].Parameter);
|
||||
float SunHour = (float)Convert.ToDecimal(Utils.BytesToString(messagePacket.ParamList[5].Parameter));
|
||||
float SunHour = (float)Convert.ToDecimal(Utils.BytesToString(messagePacket.ParamList[5].Parameter), Culture.NumberFormatInfo);
|
||||
bool UseGlobal = convertParamStringToBool(messagePacket.ParamList[6].Parameter);
|
||||
bool EstateFixedSun = convertParamStringToBool(messagePacket.ParamList[7].Parameter);
|
||||
float EstateSunHour = (float)Convert.ToDecimal(Utils.BytesToString(messagePacket.ParamList[8].Parameter));
|
||||
float EstateSunHour = (float)Convert.ToDecimal(Utils.BytesToString(messagePacket.ParamList[8].Parameter), Culture.NumberFormatInfo);
|
||||
|
||||
OnSetRegionTerrainSettings(WaterHeight, TerrainRaiseLimit, TerrainLowerLimit, UseEstateSun, UseFixedSun, SunHour, UseGlobal, EstateFixedSun, EstateSunHour);
|
||||
|
||||
|
@ -13911,8 +13911,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
|||
{
|
||||
OnSetEstateFlagsRequest(convertParamStringToBool(messagePacket.ParamList[0].Parameter), convertParamStringToBool(messagePacket.ParamList[1].Parameter),
|
||||
convertParamStringToBool(messagePacket.ParamList[2].Parameter), !convertParamStringToBool(messagePacket.ParamList[3].Parameter),
|
||||
Convert.ToInt16(Convert.ToDecimal(Utils.BytesToString(messagePacket.ParamList[4].Parameter))),
|
||||
(float)Convert.ToDecimal(Utils.BytesToString(messagePacket.ParamList[5].Parameter)),
|
||||
Convert.ToInt16(Convert.ToDecimal(Utils.BytesToString(messagePacket.ParamList[4].Parameter), Culture.NumberFormatInfo)),
|
||||
(float)Convert.ToDecimal(Utils.BytesToString(messagePacket.ParamList[5].Parameter), Culture.NumberFormatInfo),
|
||||
Convert.ToInt16(Utils.BytesToString(messagePacket.ParamList[6].Parameter)),
|
||||
convertParamStringToBool(messagePacket.ParamList[7].Parameter), convertParamStringToBool(messagePacket.ParamList[8].Parameter));
|
||||
}
|
||||
|
@ -13960,8 +13960,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
|||
if (splitField.Length == 3)
|
||||
{
|
||||
Int16 corner = Convert.ToInt16(splitField[0]);
|
||||
float lowValue = (float)Convert.ToDecimal(splitField[1]);
|
||||
float highValue = (float)Convert.ToDecimal(splitField[2]);
|
||||
float lowValue = (float)Convert.ToDecimal(splitField[1], Culture.NumberFormatInfo);
|
||||
float highValue = (float)Convert.ToDecimal(splitField[2], Culture.NumberFormatInfo);
|
||||
|
||||
OnSetEstateTerrainTextureHeights(this, corner, lowValue, highValue);
|
||||
}
|
||||
|
@ -13984,19 +13984,19 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
|||
{
|
||||
string tmp = Utils.BytesToString(messagePacket.ParamList[0].Parameter);
|
||||
if (!tmp.Contains(".")) tmp += ".00";
|
||||
float WaterHeight = (float)Convert.ToDecimal(tmp);
|
||||
float WaterHeight = (float)Convert.ToDecimal(tmp, Culture.NumberFormatInfo);
|
||||
tmp = Utils.BytesToString(messagePacket.ParamList[1].Parameter);
|
||||
if (!tmp.Contains(".")) tmp += ".00";
|
||||
float TerrainRaiseLimit = (float)Convert.ToDecimal(tmp);
|
||||
float TerrainRaiseLimit = (float)Convert.ToDecimal(tmp, Culture.NumberFormatInfo);
|
||||
tmp = Utils.BytesToString(messagePacket.ParamList[2].Parameter);
|
||||
if (!tmp.Contains(".")) tmp += ".00";
|
||||
float TerrainLowerLimit = (float)Convert.ToDecimal(tmp);
|
||||
float TerrainLowerLimit = (float)Convert.ToDecimal(tmp, Culture.NumberFormatInfo);
|
||||
bool UseEstateSun = convertParamStringToBool(messagePacket.ParamList[3].Parameter);
|
||||
bool UseFixedSun = convertParamStringToBool(messagePacket.ParamList[4].Parameter);
|
||||
float SunHour = (float)Convert.ToDecimal(Utils.BytesToString(messagePacket.ParamList[5].Parameter));
|
||||
float SunHour = (float)Convert.ToDecimal(Utils.BytesToString(messagePacket.ParamList[5].Parameter), Culture.NumberFormatInfo);
|
||||
bool UseGlobal = convertParamStringToBool(messagePacket.ParamList[6].Parameter);
|
||||
bool EstateFixedSun = convertParamStringToBool(messagePacket.ParamList[7].Parameter);
|
||||
float EstateSunHour = (float)Convert.ToDecimal(Utils.BytesToString(messagePacket.ParamList[8].Parameter));
|
||||
float EstateSunHour = (float)Convert.ToDecimal(Utils.BytesToString(messagePacket.ParamList[8].Parameter), Culture.NumberFormatInfo);
|
||||
|
||||
OnSetRegionTerrainSettings(WaterHeight, TerrainRaiseLimit, TerrainLowerLimit, UseEstateSun, UseFixedSun, SunHour, UseGlobal, EstateFixedSun, EstateSunHour);
|
||||
|
||||
|
|
|
@ -673,13 +673,13 @@ namespace OpenSim.Region.Communications.OGS1
|
|||
else
|
||||
userData.HomeRegionID = UUID.Zero;
|
||||
userData.HomeLocation =
|
||||
new Vector3((float)Convert.ToDecimal((string)data["home_coordinates_x"]),
|
||||
(float)Convert.ToDecimal((string)data["home_coordinates_y"]),
|
||||
(float)Convert.ToDecimal((string)data["home_coordinates_z"]));
|
||||
new Vector3((float)Convert.ToDecimal((string)data["home_coordinates_x"], Culture.NumberFormatInfo),
|
||||
(float)Convert.ToDecimal((string)data["home_coordinates_y"], Culture.NumberFormatInfo),
|
||||
(float)Convert.ToDecimal((string)data["home_coordinates_z"], Culture.NumberFormatInfo));
|
||||
userData.HomeLookAt =
|
||||
new Vector3((float)Convert.ToDecimal((string)data["home_look_x"]),
|
||||
(float)Convert.ToDecimal((string)data["home_look_y"]),
|
||||
(float)Convert.ToDecimal((string)data["home_look_z"]));
|
||||
new Vector3((float)Convert.ToDecimal((string)data["home_look_x"], Culture.NumberFormatInfo),
|
||||
(float)Convert.ToDecimal((string)data["home_look_y"], Culture.NumberFormatInfo),
|
||||
(float)Convert.ToDecimal((string)data["home_look_z"], Culture.NumberFormatInfo));
|
||||
if (data.Contains("user_flags"))
|
||||
userData.UserFlags = Convert.ToInt32((string)data["user_flags"]);
|
||||
if (data.Contains("god_level"))
|
||||
|
|
|
@ -1,226 +0,0 @@
|
|||
/*
|
||||
* Copyright (c) Contributors, http://opensimulator.org/
|
||||
* See CONTRIBUTORS.TXT for a full list of copyright holders.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* * Neither the name of the OpenSimulator Project nor the
|
||||
* names of its contributors may be used to endorse or promote products
|
||||
* derived from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
|
||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
//using System.Reflection;
|
||||
//using log4net;
|
||||
|
||||
namespace OpenSim.Region.CoreModules.Agent.AssetTransaction
|
||||
{
|
||||
/*
|
||||
public class AgentAssetTransactionsManager
|
||||
{
|
||||
//private static readonly ILog m_log
|
||||
// = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
||||
|
||||
/// <summary>
|
||||
/// Each agent has its own singleton collection of transactions
|
||||
/// </summary>
|
||||
private Dictionary<UUID, AgentAssetTransactions> AgentTransactions =
|
||||
new Dictionary<UUID, AgentAssetTransactions>();
|
||||
|
||||
/// <summary>
|
||||
/// Should we dump uploaded assets to the filesystem?
|
||||
/// </summary>
|
||||
private bool m_dumpAssetsToFile;
|
||||
|
||||
public Scene MyScene;
|
||||
|
||||
public AgentAssetTransactionsManager(Scene scene, bool dumpAssetsToFile)
|
||||
{
|
||||
MyScene = scene;
|
||||
m_dumpAssetsToFile = dumpAssetsToFile;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get the collection of asset transactions for the given user. If one does not already exist, it
|
||||
/// is created.
|
||||
/// </summary>
|
||||
/// <param name="userID"></param>
|
||||
/// <returns></returns>
|
||||
private AgentAssetTransactions GetUserTransactions(UUID userID)
|
||||
{
|
||||
lock (AgentTransactions)
|
||||
{
|
||||
if (!AgentTransactions.ContainsKey(userID))
|
||||
{
|
||||
AgentAssetTransactions transactions = null;
|
||||
//= new AgentAssetTransactions(userID, this, m_dumpAssetsToFile);
|
||||
AgentTransactions.Add(userID, transactions);
|
||||
}
|
||||
|
||||
return AgentTransactions[userID];
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Remove the given agent asset transactions. This should be called when a client is departing
|
||||
/// from a scene (and hence won't be making any more transactions here).
|
||||
/// </summary>
|
||||
/// <param name="userID"></param>
|
||||
public void RemoveAgentAssetTransactions(UUID userID)
|
||||
{
|
||||
// m_log.DebugFormat("Removing agent asset transactions structure for agent {0}", userID);
|
||||
|
||||
lock (AgentTransactions)
|
||||
{
|
||||
AgentTransactions.Remove(userID);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Create an inventory item from data that has been received through a transaction.
|
||||
///
|
||||
/// This is called when new clothing or body parts are created. It may also be called in other
|
||||
/// situations.
|
||||
/// </summary>
|
||||
/// <param name="remoteClient"></param>
|
||||
/// <param name="transactionID"></param>
|
||||
/// <param name="folderID"></param>
|
||||
/// <param name="callbackID"></param>
|
||||
/// <param name="description"></param>
|
||||
/// <param name="name"></param>
|
||||
/// <param name="invType"></param>
|
||||
/// <param name="type"></param>
|
||||
/// <param name="wearableType"></param>
|
||||
/// <param name="nextOwnerMask"></param>
|
||||
public void HandleItemCreationFromTransaction(IClientAPI remoteClient, UUID transactionID, UUID folderID,
|
||||
uint callbackID, string description, string name, sbyte invType,
|
||||
sbyte type, byte wearableType, uint nextOwnerMask)
|
||||
{
|
||||
// m_log.DebugFormat(
|
||||
// "[TRANSACTIONS MANAGER] Called HandleItemCreationFromTransaction with item {0}", name);
|
||||
|
||||
AgentAssetTransactions transactions = GetUserTransactions(remoteClient.AgentId);
|
||||
|
||||
transactions.RequestCreateInventoryItem(
|
||||
remoteClient, transactionID, folderID, callbackID, description,
|
||||
name, invType, type, wearableType, nextOwnerMask);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Update an inventory item with data that has been received through a transaction.
|
||||
///
|
||||
/// This is called when clothing or body parts are updated (for instance, with new textures or
|
||||
/// colours). It may also be called in other situations.
|
||||
/// </summary>
|
||||
/// <param name="remoteClient"></param>
|
||||
/// <param name="transactionID"></param>
|
||||
/// <param name="item"></param>
|
||||
public void HandleItemUpdateFromTransaction(IClientAPI remoteClient, UUID transactionID,
|
||||
InventoryItemBase item)
|
||||
{
|
||||
// m_log.DebugFormat(
|
||||
// "[TRANSACTIONS MANAGER] Called HandleItemUpdateFromTransaction with item {0}",
|
||||
// item.Name);
|
||||
|
||||
AgentAssetTransactions transactions = GetUserTransactions(remoteClient.AgentId);
|
||||
|
||||
transactions.RequestUpdateInventoryItem(remoteClient, transactionID, item);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Update a task inventory item with data that has been received through a transaction.
|
||||
///
|
||||
/// This is currently called when, for instance, a notecard in a prim is saved. The data is sent
|
||||
/// up through a single AssetUploadRequest. A subsequent UpdateTaskInventory then references the transaction
|
||||
/// and comes through this method.
|
||||
/// </summary>
|
||||
/// <param name="remoteClient"></param>
|
||||
/// <param name="transactionID"></param>
|
||||
/// <param name="item"></param>
|
||||
public void HandleTaskItemUpdateFromTransaction(
|
||||
IClientAPI remoteClient, SceneObjectPart part, UUID transactionID, TaskInventoryItem item)
|
||||
{
|
||||
// m_log.DebugFormat(
|
||||
// "[TRANSACTIONS MANAGER] Called HandleTaskItemUpdateFromTransaction with item {0}",
|
||||
// item.Name);
|
||||
|
||||
AgentAssetTransactions transactions = GetUserTransactions(remoteClient.AgentId);
|
||||
|
||||
transactions.RequestUpdateTaskInventoryItem(remoteClient, part, transactionID, item);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Request that a client (agent) begin an asset transfer.
|
||||
/// </summary>
|
||||
/// <param name="remoteClient"></param>
|
||||
/// <param name="assetID"></param>
|
||||
/// <param name="transaction"></param>
|
||||
/// <param name="type"></param>
|
||||
/// <param name="data"></param></param>
|
||||
/// <param name="tempFile"></param>
|
||||
public void HandleUDPUploadRequest(IClientAPI remoteClient, UUID assetID, UUID transaction, sbyte type,
|
||||
byte[] data, bool storeLocal, bool tempFile)
|
||||
{
|
||||
//m_log.Debug("HandleUDPUploadRequest - assetID: " + assetID.ToString() + " transaction: " + transaction.ToString() + " type: " + type.ToString() + " storelocal: " + storeLocal + " tempFile: " + tempFile);
|
||||
if (((AssetType)type == AssetType.Texture ||
|
||||
(AssetType)type == AssetType.Sound ||
|
||||
(AssetType)type == AssetType.TextureTGA ||
|
||||
(AssetType)type == AssetType.Animation) &&
|
||||
tempFile == false)
|
||||
{
|
||||
Scene scene = (Scene)remoteClient.Scene;
|
||||
IMoneyModule mm = scene.RequestModuleInterface<IMoneyModule>();
|
||||
|
||||
if (mm != null)
|
||||
{
|
||||
if (!mm.UploadCovered(remoteClient))
|
||||
{
|
||||
remoteClient.SendAgentAlertMessage("Unable to upload asset. Insufficient funds.", false);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//m_log.Debug("asset upload of " + assetID);
|
||||
AgentAssetTransactions transactions = GetUserTransactions(remoteClient.AgentId);
|
||||
|
||||
AssetXferUploader uploader = transactions.RequestXferUploader(transaction);
|
||||
if (uploader != null)
|
||||
{
|
||||
uploader.Initialise(remoteClient, assetID, transaction, type, data, storeLocal, tempFile);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handle asset transfer data packets received in response to the asset upload request in
|
||||
/// HandleUDPUploadRequest()
|
||||
/// </summary>
|
||||
/// <param name="remoteClient"></param>
|
||||
/// <param name="xferID"></param>
|
||||
/// <param name="packetID"></param>
|
||||
/// <param name="data"></param>
|
||||
public void HandleXfer(IClientAPI remoteClient, ulong xferID, uint packetID, byte[] data)
|
||||
{
|
||||
//m_log.Debug("xferID: " + xferID + " packetID: " + packetID + " data!");
|
||||
AgentAssetTransactions transactions = GetUserTransactions(remoteClient.AgentId);
|
||||
|
||||
transactions.HandleXfer(xferID, packetID, data);
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
|
@ -27,6 +27,8 @@
|
|||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Reflection;
|
||||
using log4net;
|
||||
using Nini.Config;
|
||||
using OpenMetaverse;
|
||||
using OpenSim.Framework;
|
||||
|
@ -37,6 +39,8 @@ namespace OpenSim.Region.CoreModules.Agent.AssetTransaction
|
|||
{
|
||||
public class AssetTransactionModule : IRegionModule, IAgentAssetTransactions
|
||||
{
|
||||
// private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
||||
|
||||
private readonly Dictionary<UUID, Scene> RegisteredScenes = new Dictionary<UUID, Scene>();
|
||||
private bool m_dumpAssetsToFile = false;
|
||||
private Scene m_scene = null;
|
||||
|
@ -226,7 +230,8 @@ namespace OpenSim.Region.CoreModules.Agent.AssetTransaction
|
|||
public void HandleUDPUploadRequest(IClientAPI remoteClient, UUID assetID, UUID transaction, sbyte type,
|
||||
byte[] data, bool storeLocal, bool tempFile)
|
||||
{
|
||||
//m_log.Debug("HandleUDPUploadRequest - assetID: " + assetID.ToString() + " transaction: " + transaction.ToString() + " type: " + type.ToString() + " storelocal: " + storeLocal + " tempFile: " + tempFile);
|
||||
// m_log.Debug("HandleUDPUploadRequest - assetID: " + assetID.ToString() + " transaction: " + transaction.ToString() + " type: " + type.ToString() + " storelocal: " + storeLocal + " tempFile: " + tempFile);
|
||||
|
||||
if (((AssetType)type == AssetType.Texture ||
|
||||
(AssetType)type == AssetType.Sound ||
|
||||
(AssetType)type == AssetType.TextureTGA ||
|
||||
|
@ -246,7 +251,6 @@ namespace OpenSim.Region.CoreModules.Agent.AssetTransaction
|
|||
}
|
||||
}
|
||||
|
||||
//m_log.Debug("asset upload of " + assetID);
|
||||
AgentAssetTransactions transactions = GetUserTransactions(remoteClient.AgentId);
|
||||
|
||||
AssetXferUploader uploader = transactions.RequestXferUploader(transaction);
|
||||
|
|
|
@ -154,7 +154,8 @@ namespace OpenSim.Region.CoreModules.Agent.AssetTransaction
|
|||
m_userTransactions.Manager.MyScene.AssetService.Store(m_asset);
|
||||
}
|
||||
|
||||
m_log.DebugFormat("[ASSET TRANSACTIONS]: Uploaded asset data for transaction {0}", TransactionID);
|
||||
m_log.DebugFormat(
|
||||
"[ASSET TRANSACTIONS]: Uploaded asset {0} for transaction {1}", m_asset.FullID, TransactionID);
|
||||
|
||||
if (m_dumpAssetToFile)
|
||||
{
|
||||
|
|
|
@ -91,6 +91,8 @@ namespace OpenSim.Region.CoreModules.Asset
|
|||
/// </example>
|
||||
public class CenomeMemoryAssetCache : IImprovedAssetCache, ISharedRegionModule
|
||||
{
|
||||
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
||||
|
||||
/// <summary>
|
||||
/// Cache's default maximal asset count.
|
||||
/// </summary>
|
||||
|
@ -115,12 +117,7 @@ namespace OpenSim.Region.CoreModules.Asset
|
|||
/// Asset's default expiration time in the cache.
|
||||
/// </summary>
|
||||
public static readonly TimeSpan DefaultExpirationTime = TimeSpan.FromMinutes(30.0);
|
||||
|
||||
/// <summary>
|
||||
/// Log manager instance.
|
||||
/// </summary>
|
||||
private static readonly ILog Log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Cache object.
|
||||
/// </summary>
|
||||
|
@ -170,7 +167,7 @@ namespace OpenSim.Region.CoreModules.Asset
|
|||
{
|
||||
if (maximalSize <= 0 || maximalCount <= 0)
|
||||
{
|
||||
//Log.Debug("[ASSET CACHE]: Cenome asset cache is not enabled.");
|
||||
//m_log.Debug("[ASSET CACHE]: Cenome asset cache is not enabled.");
|
||||
m_enabled = false;
|
||||
return;
|
||||
}
|
||||
|
@ -186,7 +183,7 @@ namespace OpenSim.Region.CoreModules.Asset
|
|||
CnmSynchronizedCache<string, AssetBase>.Synchronized(new CnmMemoryCache<string, AssetBase>(
|
||||
maximalSize, maximalCount, expirationTime));
|
||||
m_enabled = true;
|
||||
Log.DebugFormat(
|
||||
m_log.DebugFormat(
|
||||
"[ASSET CACHE]: Cenome asset cache enabled (MaxSize = {0} bytes, MaxCount = {1}, ExpirationTime = {2})",
|
||||
maximalSize,
|
||||
maximalCount,
|
||||
|
@ -205,6 +202,8 @@ namespace OpenSim.Region.CoreModules.Asset
|
|||
{
|
||||
if (asset != null)
|
||||
{
|
||||
// m_log.DebugFormat("[CENOME ASSET CACHE]: Caching asset {0}", asset.ID);
|
||||
|
||||
long size = asset.Data != null ? asset.Data.Length : 1;
|
||||
m_cache.Set(asset.ID, asset, size);
|
||||
m_cachedCount++;
|
||||
|
@ -255,7 +254,7 @@ namespace OpenSim.Region.CoreModules.Asset
|
|||
|
||||
if (m_getCount == m_debugEpoch)
|
||||
{
|
||||
Log.DebugFormat(
|
||||
m_log.DebugFormat(
|
||||
"[ASSET CACHE]: Cached = {0}, Get = {1}, Hits = {2}%, Size = {3} bytes, Avg. A. Size = {4} bytes",
|
||||
m_cachedCount,
|
||||
m_getCount,
|
||||
|
@ -267,6 +266,9 @@ namespace OpenSim.Region.CoreModules.Asset
|
|||
m_cachedCount = 0;
|
||||
}
|
||||
|
||||
// if (null == assetBase)
|
||||
// m_log.DebugFormat("[CENOME ASSET CACHE]: Asset {0} not in cache", id);
|
||||
|
||||
return assetBase;
|
||||
}
|
||||
|
||||
|
@ -325,12 +327,11 @@ namespace OpenSim.Region.CoreModules.Asset
|
|||
return;
|
||||
|
||||
string name = moduleConfig.GetString("AssetCaching");
|
||||
//Log.DebugFormat("[XXX] name = {0} (this module's name: {1}", name, Name);
|
||||
//m_log.DebugFormat("[XXX] name = {0} (this module's name: {1}", name, Name);
|
||||
|
||||
if (name != Name)
|
||||
return;
|
||||
|
||||
// This module is used
|
||||
return;
|
||||
|
||||
long maxSize = DefaultMaxSize;
|
||||
int maxCount = DefaultMaxCount;
|
||||
TimeSpan expirationTime = DefaultExpirationTime;
|
||||
|
|
|
@ -147,7 +147,7 @@ namespace OpenSim.Region.CoreModules.Framework.InterfaceCommander
|
|||
m_args[i].ArgumentValue = Int32.Parse(arg.ToString());
|
||||
break;
|
||||
case "Double":
|
||||
m_args[i].ArgumentValue = Double.Parse(arg.ToString());
|
||||
m_args[i].ArgumentValue = Double.Parse(arg.ToString(), OpenSim.Framework.Culture.NumberFormatInfo);
|
||||
break;
|
||||
case "Boolean":
|
||||
m_args[i].ArgumentValue = Boolean.Parse(arg.ToString());
|
||||
|
|
|
@ -38,12 +38,9 @@ using OpenSim.Services.Interfaces;
|
|||
|
||||
namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Asset
|
||||
{
|
||||
public class LocalAssetServicesConnector :
|
||||
ISharedRegionModule, IAssetService
|
||||
public class LocalAssetServicesConnector : ISharedRegionModule, IAssetService
|
||||
{
|
||||
private static readonly ILog m_log =
|
||||
LogManager.GetLogger(
|
||||
MethodBase.GetCurrentMethod().DeclaringType);
|
||||
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
||||
|
||||
private IImprovedAssetCache m_Cache = null;
|
||||
|
||||
|
@ -72,7 +69,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Asset
|
|||
IConfig assetConfig = source.Configs["AssetService"];
|
||||
if (assetConfig == null)
|
||||
{
|
||||
m_log.Error("[ASSET CONNECTOR]: AssetService missing from OpenSim.ini");
|
||||
m_log.Error("[LOCAL ASSET SERVICES CONNECTOR]: AssetService missing from OpenSim.ini");
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -81,22 +78,20 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Asset
|
|||
|
||||
if (serviceDll == String.Empty)
|
||||
{
|
||||
m_log.Error("[ASSET CONNECTOR]: No LocalServiceModule named in section AssetService");
|
||||
m_log.Error("[LOCAL ASSET SERVICES CONNECTOR]: No LocalServiceModule named in section AssetService");
|
||||
return;
|
||||
}
|
||||
|
||||
Object[] args = new Object[] { source };
|
||||
m_AssetService =
|
||||
ServerUtils.LoadPlugin<IAssetService>(serviceDll,
|
||||
args);
|
||||
m_AssetService = ServerUtils.LoadPlugin<IAssetService>(serviceDll, args);
|
||||
|
||||
if (m_AssetService == null)
|
||||
{
|
||||
m_log.Error("[ASSET CONNECTOR]: Can't load asset service");
|
||||
m_log.Error("[LOCAL ASSET SERVICES CONNECTOR]: Can't load asset service");
|
||||
return;
|
||||
}
|
||||
m_Enabled = true;
|
||||
m_log.Info("[ASSET CONNECTOR]: Local asset connector enabled");
|
||||
m_log.Info("[LOCAL ASSET SERVICES CONNECTOR]: Local asset connector enabled");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -134,11 +129,11 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Asset
|
|||
m_Cache = null;
|
||||
}
|
||||
|
||||
m_log.InfoFormat("[ASSET CONNECTOR]: Enabled local assets for region {0}", scene.RegionInfo.RegionName);
|
||||
m_log.InfoFormat("[LOCAL ASSET SERVICES CONNECTOR]: Enabled local assets for region {0}", scene.RegionInfo.RegionName);
|
||||
|
||||
if (m_Cache != null)
|
||||
{
|
||||
m_log.InfoFormat("[ASSET CONNECTOR]: Enabled asset caching for region {0}", scene.RegionInfo.RegionName);
|
||||
m_log.InfoFormat("[LOCAL ASSET SERVICES CONNECTOR]: Enabled asset caching for region {0}", scene.RegionInfo.RegionName);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -151,6 +146,8 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Asset
|
|||
|
||||
public AssetBase Get(string id)
|
||||
{
|
||||
// m_log.DebugFormat("[LOCAL ASSET SERVICES CONNECTOR]: Synchronously requesting asset {0}", id);
|
||||
|
||||
AssetBase asset = null;
|
||||
if (m_Cache != null)
|
||||
asset = m_Cache.Get(id);
|
||||
|
@ -160,7 +157,11 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Asset
|
|||
asset = m_AssetService.Get(id);
|
||||
if ((m_Cache != null) && (asset != null))
|
||||
m_Cache.Cache(asset);
|
||||
|
||||
// if (null == asset)
|
||||
// m_log.WarnFormat("[LOCAL ASSET SERVICES CONNECTOR]: Could not synchronously find asset with id {0}", id);
|
||||
}
|
||||
|
||||
return asset;
|
||||
}
|
||||
|
||||
|
@ -204,15 +205,17 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Asset
|
|||
|
||||
public bool Get(string id, Object sender, AssetRetrieved handler)
|
||||
{
|
||||
AssetBase asset = null;
|
||||
|
||||
// m_log.DebugFormat("[LOCAL ASSET SERVICES CONNECTOR]: Asynchronously requesting asset {0}", id);
|
||||
|
||||
if (m_Cache != null)
|
||||
m_Cache.Get(id);
|
||||
|
||||
if (asset != null)
|
||||
{
|
||||
Util.FireAndForget(delegate { handler(id, sender, asset); });
|
||||
return true;
|
||||
AssetBase asset = m_Cache.Get(id);
|
||||
|
||||
if (asset != null)
|
||||
{
|
||||
Util.FireAndForget(delegate { handler(id, sender, asset); });
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return m_AssetService.Get(id, sender, delegate (string assetID, Object s, AssetBase a)
|
||||
|
@ -220,6 +223,9 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Asset
|
|||
if ((a != null) && (m_Cache != null))
|
||||
m_Cache.Cache(a);
|
||||
|
||||
// if (null == a)
|
||||
// m_log.WarnFormat("[LOCAL ASSET SERVICES CONNECTOR]: Could not asynchronously find asset with id {0}", id);
|
||||
|
||||
Util.FireAndForget(delegate { handler(assetID, s, a); });
|
||||
});
|
||||
}
|
||||
|
|
|
@ -73,7 +73,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
|
|||
IConfig inventoryConfig = source.Configs["InventoryService"];
|
||||
if (inventoryConfig == null)
|
||||
{
|
||||
m_log.Error("[INVENTORY CONNECTOR]: InventoryService missing from OpenSim.ini");
|
||||
m_log.Error("[LOCAL INVENTORY SERVICES CONNECTOR]: InventoryService missing from OpenSim.ini");
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -81,18 +81,18 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
|
|||
|
||||
if (serviceDll == String.Empty)
|
||||
{
|
||||
m_log.Error("[INVENTORY CONNECTOR]: No LocalServiceModule named in section InventoryService");
|
||||
m_log.Error("[LOCAL INVENTORY SERVICES CONNECTOR]: No LocalServiceModule named in section InventoryService");
|
||||
return;
|
||||
}
|
||||
|
||||
Object[] args = new Object[] { source };
|
||||
m_log.DebugFormat("[INVENTORY CONNECTOR]: Service dll = {0}", serviceDll);
|
||||
m_log.DebugFormat("[LOCAL INVENTORY SERVICES CONNECTOR]: Service dll = {0}", serviceDll);
|
||||
|
||||
m_InventoryService = ServerUtils.LoadPlugin<IInventoryService>(serviceDll, args);
|
||||
|
||||
if (m_InventoryService == null)
|
||||
{
|
||||
m_log.Error("[INVENTORY CONNECTOR]: Can't load inventory service");
|
||||
m_log.Error("[LOCAL INVENTORY SERVICES CONNECTOR]: Can't load inventory service");
|
||||
//return;
|
||||
throw new Exception("Unable to proceed. Please make sure your ini files in config-include are updated according to .example's");
|
||||
}
|
||||
|
@ -111,7 +111,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
|
|||
Init(source);
|
||||
|
||||
m_Enabled = true;
|
||||
m_log.Info("[INVENTORY CONNECTOR]: Local inventory connector enabled");
|
||||
m_log.Info("[LOCAL INVENTORY SERVICES CONNECTOR]: Local inventory connector enabled");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -138,7 +138,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
|
|||
}
|
||||
|
||||
// m_log.DebugFormat(
|
||||
// "[INVENTORY CONNECTOR]: Registering IInventoryService to scene {0}", scene.RegionInfo.RegionName);
|
||||
// "[LOCAL INVENTORY SERVICES CONNECTOR]: Registering IInventoryService to scene {0}", scene.RegionInfo.RegionName);
|
||||
|
||||
scene.RegisterModuleInterface<IInventoryService>(this);
|
||||
m_cache.AddRegion(scene);
|
||||
|
@ -158,7 +158,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
|
|||
return;
|
||||
|
||||
m_log.InfoFormat(
|
||||
"[INVENTORY CONNECTOR]: Enabled local invnetory for region {0}", scene.RegionInfo.RegionName);
|
||||
"[LOCAL INVENTORY SERVICES CONNECTOR]: Enabled local inventory for region {0}", scene.RegionInfo.RegionName);
|
||||
}
|
||||
|
||||
#region IInventoryService
|
||||
|
@ -213,7 +213,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
|
|||
return folders;
|
||||
}
|
||||
}
|
||||
m_log.WarnFormat("[INVENTORY CONNECTOR]: System folders for {0} not found", userID);
|
||||
m_log.WarnFormat("[LOCAL INVENTORY SERVICES CONNECTOR]: System folders for {0} not found", userID);
|
||||
return new Dictionary<AssetType, InventoryFolderBase>();
|
||||
}
|
||||
|
||||
|
@ -312,7 +312,14 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
|
|||
|
||||
public override InventoryItemBase GetItem(InventoryItemBase item)
|
||||
{
|
||||
return m_InventoryService.GetItem(item);
|
||||
// m_log.DebugFormat("[LOCAL INVENTORY SERVICES CONNECTOR]: Requesting inventory item {0}", item.ID);
|
||||
|
||||
item = m_InventoryService.GetItem(item);
|
||||
|
||||
if (null == item)
|
||||
m_log.ErrorFormat("[LOCAL INVENTORY SERVICES CONNECTOR]: Could not find item with id {0}");
|
||||
|
||||
return item;
|
||||
}
|
||||
|
||||
public override InventoryFolderBase GetFolder(InventoryFolderBase folder)
|
||||
|
|
|
@ -974,8 +974,8 @@ namespace OpenSim.Region.CoreModules.World.Estate
|
|||
if (y == -1 || m_scene.RegionInfo.RegionLocY == y)
|
||||
{
|
||||
int corner = int.Parse(num);
|
||||
float lowValue = float.Parse(min);
|
||||
float highValue = float.Parse(max);
|
||||
float lowValue = float.Parse(min, Culture.NumberFormatInfo);
|
||||
float highValue = float.Parse(max, Culture.NumberFormatInfo);
|
||||
|
||||
m_log.Debug("[ESTATEMODULE] Setting terrain heights " + m_scene.RegionInfo.RegionName +
|
||||
string.Format(" (C{0}, {1}-{2}", corner, lowValue, highValue));
|
||||
|
|
|
@ -3147,7 +3147,6 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
m_log.DebugFormat("[APPEARANCE]: Appearance not found in {0}, returning default", RegionInfo.RegionName);
|
||||
appearance = new AvatarAppearance(client.AgentId);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
|
@ -2701,6 +2701,8 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
/// </summary>
|
||||
public void SendWearables()
|
||||
{
|
||||
m_log.DebugFormat("[SCENE]: Received request for wearables of {0}", Name);
|
||||
|
||||
ControllingClient.SendWearables(m_appearance.Wearables, m_appearance.Serial++);
|
||||
}
|
||||
|
||||
|
|
|
@ -104,9 +104,9 @@ namespace OpenSim.Region.OptionalModules.World.TreePopulator
|
|||
this.m_name = field[1].Trim();
|
||||
this.m_frozen = (copsedef[0] == 'F');
|
||||
this.m_tree_quantity = int.Parse(field[2]);
|
||||
this.m_treeline_high = float.Parse(field[3]);
|
||||
this.m_treeline_low = float.Parse(field[4]);
|
||||
this.m_range = double.Parse(field[5]);
|
||||
this.m_treeline_high = float.Parse(field[3], Culture.NumberFormatInfo);
|
||||
this.m_treeline_low = float.Parse(field[4], Culture.NumberFormatInfo);
|
||||
this.m_range = double.Parse(field[5], Culture.NumberFormatInfo);
|
||||
this.m_tree_type = (Tree) Enum.Parse(typeof(Tree),field[6]);
|
||||
this.m_seed_point = Vector3.Parse(field[7]);
|
||||
this.m_initial_scale = Vector3.Parse(field[8]);
|
||||
|
|
|
@ -389,7 +389,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance
|
|||
break;
|
||||
case "MinEventDelay":
|
||||
double minEventDelay = 0.0;
|
||||
double.TryParse(part.InnerText, out minEventDelay);
|
||||
double.TryParse(part.InnerText, NumberStyles.Float, Culture.NumberFormatInfo, out minEventDelay);
|
||||
instance.MinEventDelay = minEventDelay;
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -72,9 +72,9 @@ namespace OpenSim.Region.ScriptEngine.Shared
|
|||
return;
|
||||
}
|
||||
bool res;
|
||||
res = Double.TryParse(tmps[0], out x);
|
||||
res = res & Double.TryParse(tmps[1], out y);
|
||||
res = res & Double.TryParse(tmps[2], out z);
|
||||
res = Double.TryParse(tmps[0], NumberStyles.Float, Culture.NumberFormatInfo, out x);
|
||||
res = res & Double.TryParse(tmps[1], NumberStyles.Float, Culture.NumberFormatInfo, out y);
|
||||
res = res & Double.TryParse(tmps[2], NumberStyles.Float, Culture.NumberFormatInfo, out z);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
@ -309,10 +309,10 @@ namespace OpenSim.Region.ScriptEngine.Shared
|
|||
return;
|
||||
}
|
||||
bool res;
|
||||
res = Double.TryParse(tmps[0], NumberStyles.Float, Culture.FormatProvider, out x);
|
||||
res = res & Double.TryParse(tmps[1], NumberStyles.Float, Culture.FormatProvider, out y);
|
||||
res = res & Double.TryParse(tmps[2], NumberStyles.Float, Culture.FormatProvider, out z);
|
||||
res = res & Double.TryParse(tmps[3], NumberStyles.Float, Culture.FormatProvider, out s);
|
||||
res = Double.TryParse(tmps[0], NumberStyles.Float, Culture.NumberFormatInfo, out x);
|
||||
res = res & Double.TryParse(tmps[1], NumberStyles.Float, Culture.NumberFormatInfo, out y);
|
||||
res = res & Double.TryParse(tmps[2], NumberStyles.Float, Culture.NumberFormatInfo, out z);
|
||||
res = res & Double.TryParse(tmps[3], NumberStyles.Float, Culture.NumberFormatInfo, out s);
|
||||
if (x == 0 && y == 0 && z == 0 && s == 0)
|
||||
s = 1;
|
||||
}
|
||||
|
@ -1015,7 +1015,7 @@ namespace OpenSim.Region.ScriptEngine.Shared
|
|||
double entry;
|
||||
for (int i = 0; i < Data.Length; i++)
|
||||
{
|
||||
if (double.TryParse(Data[i].ToString(), out entry))
|
||||
if (double.TryParse(Data[i].ToString(), NumberStyles.Float, Culture.NumberFormatInfo, out entry))
|
||||
{
|
||||
if (entry < minimum) minimum = entry;
|
||||
}
|
||||
|
@ -1029,7 +1029,7 @@ namespace OpenSim.Region.ScriptEngine.Shared
|
|||
double entry;
|
||||
for (int i = 0; i < Data.Length; i++)
|
||||
{
|
||||
if (double.TryParse(Data[i].ToString(), out entry))
|
||||
if (double.TryParse(Data[i].ToString(), NumberStyles.Float, Culture.NumberFormatInfo, out entry))
|
||||
{
|
||||
if (entry > maximum) maximum = entry;
|
||||
}
|
||||
|
@ -1048,7 +1048,7 @@ namespace OpenSim.Region.ScriptEngine.Shared
|
|||
double entry;
|
||||
for (int i = 0; i < Data.Length; i++)
|
||||
{
|
||||
if (double.TryParse(Data[i].ToString(), out entry))
|
||||
if (double.TryParse(Data[i].ToString(), NumberStyles.Float, Culture.NumberFormatInfo, out entry))
|
||||
{
|
||||
count++;
|
||||
}
|
||||
|
@ -1062,7 +1062,7 @@ namespace OpenSim.Region.ScriptEngine.Shared
|
|||
double entry;
|
||||
for (int i = 0; i < src.Data.Length - 1; i++)
|
||||
{
|
||||
if (double.TryParse(src.Data[i].ToString(), out entry))
|
||||
if (double.TryParse(src.Data[i].ToString(), NumberStyles.Float, Culture.NumberFormatInfo, out entry))
|
||||
{
|
||||
ret.Add(entry);
|
||||
}
|
||||
|
@ -1076,7 +1076,7 @@ namespace OpenSim.Region.ScriptEngine.Shared
|
|||
double entry;
|
||||
for (int i = 0; i < Data.Length; i++)
|
||||
{
|
||||
if (double.TryParse(Data[i].ToString(), out entry))
|
||||
if (double.TryParse(Data[i].ToString(), NumberStyles.Float, Culture.NumberFormatInfo, out entry))
|
||||
{
|
||||
sum = sum + entry;
|
||||
}
|
||||
|
@ -1090,7 +1090,7 @@ namespace OpenSim.Region.ScriptEngine.Shared
|
|||
double entry;
|
||||
for (int i = 0; i < Data.Length; i++)
|
||||
{
|
||||
if (double.TryParse(Data[i].ToString(), out entry))
|
||||
if (double.TryParse(Data[i].ToString(), NumberStyles.Float, Culture.NumberFormatInfo, out entry))
|
||||
{
|
||||
sum = sum + Math.Pow(entry, 2);
|
||||
}
|
||||
|
@ -1213,11 +1213,11 @@ namespace OpenSim.Region.ScriptEngine.Shared
|
|||
{
|
||||
double a;
|
||||
double b;
|
||||
if (!double.TryParse(x.ToString(), out a))
|
||||
if (!double.TryParse(x.ToString(), NumberStyles.Float, Culture.NumberFormatInfo, out a))
|
||||
{
|
||||
a = 0.0;
|
||||
}
|
||||
if (!double.TryParse(y.ToString(), out b))
|
||||
if (!double.TryParse(y.ToString(), NumberStyles.Float, Culture.NumberFormatInfo, out b))
|
||||
{
|
||||
b = 0.0;
|
||||
}
|
||||
|
@ -1857,7 +1857,7 @@ namespace OpenSim.Region.ScriptEngine.Shared
|
|||
else
|
||||
if (v.EndsWith("."))
|
||||
v = v + "0";
|
||||
this.value = double.Parse(v, System.Globalization.NumberStyles.Float, Culture.FormatProvider);
|
||||
this.value = double.Parse(v, System.Globalization.NumberStyles.Float, Culture.NumberFormatInfo);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
|
|
@ -132,9 +132,9 @@ namespace OpenSim.Server.Handlers.Grid
|
|||
userData.SurName = (string)requestData["lastname"];
|
||||
userData.ID = new UUID((string)requestData["agent_id"]);
|
||||
UUID sessionID = new UUID((string)requestData["session_id"]);
|
||||
userData.HomeLocation = new Vector3((float)Convert.ToDecimal((string)requestData["startpos_x"]),
|
||||
(float)Convert.ToDecimal((string)requestData["startpos_y"]),
|
||||
(float)Convert.ToDecimal((string)requestData["startpos_z"]));
|
||||
userData.HomeLocation = new Vector3((float)Convert.ToDecimal((string)requestData["startpos_x"], Culture.NumberFormatInfo),
|
||||
(float)Convert.ToDecimal((string)requestData["startpos_y"], Culture.NumberFormatInfo),
|
||||
(float)Convert.ToDecimal((string)requestData["startpos_z"], Culture.NumberFormatInfo));
|
||||
|
||||
userData.UserServerURI = (string)requestData["userserver_id"];
|
||||
userData.UserAssetURI = (string)requestData["assetserver_id"];
|
||||
|
|
|
@ -76,17 +76,19 @@ namespace OpenSim.Services.AssetService
|
|||
});
|
||||
}
|
||||
|
||||
m_log.Info("[ASSET CONNECTOR]: Local asset service enabled");
|
||||
m_log.Info("[ASSET SERVICE]: Local asset service enabled");
|
||||
}
|
||||
}
|
||||
|
||||
public AssetBase Get(string id)
|
||||
{
|
||||
//m_log.DebugFormat("[ASSET SERVICE]: Get asset {0}", id);
|
||||
{
|
||||
UUID assetID;
|
||||
|
||||
if (!UUID.TryParse(id, out assetID))
|
||||
{
|
||||
m_log.WarnFormat("[ASSET SERVICE]: Could not parse requested sset id {0}", id);
|
||||
return null;
|
||||
}
|
||||
|
||||
return m_Database.GetAsset(assetID);
|
||||
}
|
||||
|
|
|
@ -93,7 +93,7 @@ namespace OpenSim.Services.Connectors
|
|||
}
|
||||
|
||||
public AssetBase Get(string id)
|
||||
{
|
||||
{
|
||||
string uri = m_ServerURI + "/assets/" + id;
|
||||
|
||||
AssetBase asset = null;
|
||||
|
|
|
@ -1,3 +1,30 @@
|
|||
/*
|
||||
* Copyright (c) Contributors, http://opensimulator.org/
|
||||
* See CONTRIBUTORS.TXT for a full list of copyright holders.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* * Neither the name of the OpenSimulator Project nor the
|
||||
* names of its contributors may be used to endorse or promote products
|
||||
* derived from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
|
||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
|
@ -7,7 +34,7 @@ using System.Xml;
|
|||
using log4net;
|
||||
using Nini.Config;
|
||||
|
||||
namespace Careminster
|
||||
namespace OpenSim.Tools.Configger
|
||||
{
|
||||
/// <summary>
|
||||
/// Loads the Configuration files into nIni
|
||||
|
|
|
@ -1,7 +1,34 @@
|
|||
/*
|
||||
* Copyright (c) Contributors, http://opensimulator.org/
|
||||
* See CONTRIBUTORS.TXT for a full list of copyright holders.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* * Neither the name of the OpenSimulator Project nor the
|
||||
* names of its contributors may be used to endorse or promote products
|
||||
* derived from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
|
||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
using Nini.Config;
|
||||
using System;
|
||||
|
||||
namespace Careminster
|
||||
namespace OpenSim.Tools.Configger
|
||||
{
|
||||
public class Configger
|
||||
{
|
||||
|
|
|
@ -1,3 +1,30 @@
|
|||
/*
|
||||
* Copyright (c) Contributors, http://opensimulator.org/
|
||||
* See CONTRIBUTORS.TXT for a full list of copyright holders.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* * Neither the name of the OpenSimulator Project nor the
|
||||
* names of its contributors may be used to endorse or promote products
|
||||
* derived from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
|
||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
|
@ -13,7 +40,7 @@ using System.Threading;
|
|||
using log4net;
|
||||
using Nini.Config;
|
||||
|
||||
namespace Careminster
|
||||
namespace OpenSim.Tools.Configger
|
||||
{
|
||||
public static class Util
|
||||
{
|
||||
|
|
|
@ -2930,6 +2930,7 @@
|
|||
|
||||
<ReferencePath>../../../bin/</ReferencePath>
|
||||
<Reference name="System"/>
|
||||
<Reference name="System.Xml"/>
|
||||
<Reference name="Nini.dll"/>
|
||||
<Reference name="log4net.dll"/>
|
||||
|
||||
|
|
Loading…
Reference in New Issue