diff --git a/OpenGridServices.ServerConsole/OpenGridServices.ServerConsole.csproj b/OpenGridServices.ServerConsole/OpenGridServices.ServerConsole.csproj
index 49e3306c36..0cabeb069c 100644
--- a/OpenGridServices.ServerConsole/OpenGridServices.ServerConsole.csproj
+++ b/OpenGridServices.ServerConsole/OpenGridServices.ServerConsole.csproj
@@ -1,4 +1,4 @@
-
+
Local
8.0.50727
@@ -6,7 +6,8 @@
{7DC4E7C8-89A4-4A8D-9617-3DF262990663}
Debug
AnyCPU
-
+
+
OpenGridServices.ServerConsole
@@ -15,9 +16,11 @@
IE50
false
Library
-
+
+
OpenGridServices.ServerConsole
-
+
+
@@ -28,7 +31,8 @@
TRACE;DEBUG
-
+
+
True
4096
False
@@ -37,7 +41,8 @@
False
False
4
-
+
+
False
@@ -46,7 +51,8 @@
TRACE
-
+
+
False
4096
True
@@ -55,25 +61,22 @@
False
False
4
-
+
+
-
+
System.dll
False
-
+
System.Data.dll
False
-
+
System.Xml.dll
False
-
- ..\bin\OpenSim.Framework.dll
- False
-
@@ -85,6 +88,12 @@
Code
+
+
+ {26E437F6-BA50-44CD-BB44-E911E25CA88C}
+ OpenSim.Framework
+
+
@@ -92,4 +101,4 @@
-
+
\ No newline at end of file
diff --git a/OpenSim.RegionServer/CAPS/SimHttp.cs b/OpenSim.RegionServer/CAPS/SimHttp.cs
index 77c6bb877a..c3f4801655 100644
--- a/OpenSim.RegionServer/CAPS/SimHttp.cs
+++ b/OpenSim.RegionServer/CAPS/SimHttp.cs
@@ -119,84 +119,89 @@ namespace OpenSim.CAPS
private string ParseREST(string requestBody, string requestURL, string requestMethod)
{
string responseString = "";
- switch (requestURL)
+ try
{
- case "/Admin/Accounts":
- if (requestMethod == "GET")
- {
- responseString = "
Account management
";
- responseString += "
";
- responseString += " Create New Account
";
- responseString += NewAccountForm;
- }
- break;
- case "/Admin/Clients":
- if (requestMethod == "GET")
- {
- responseString = " Listing connected Clients
" ;
- OpenSim.world.Avatar TempAv;
- foreach (libsecondlife.LLUUID UUID in OpenSimRoot.Instance.LocalWorld.Entities.Keys)
+ switch (requestURL)
+ {
+ case "/Admin/Accounts":
+ if (requestMethod == "GET")
{
- if (OpenSimRoot.Instance.LocalWorld.Entities[UUID].ToString() == "OpenSim.world.Avatar")
+ responseString = " Account management
";
+ responseString += "
";
+ responseString += " Create New Account
";
+ responseString += NewAccountForm;
+ }
+ break;
+ case "/Admin/Clients":
+ if (requestMethod == "GET")
+ {
+ responseString = " Listing connected Clients
";
+ OpenSim.world.Avatar TempAv;
+ foreach (libsecondlife.LLUUID UUID in OpenSimRoot.Instance.LocalWorld.Entities.Keys)
{
- TempAv = (OpenSim.world.Avatar)OpenSimRoot.Instance.LocalWorld.Entities[UUID];
- responseString += "";
- responseString += String.Format("{0,-16}{1,-16}{2,-25}{3,-25}{4,-16},{5,-16}", TempAv.firstname, TempAv.lastname, UUID, TempAv.ControllingClient.SessionID, TempAv.ControllingClient.CircuitCode, TempAv.ControllingClient.userEP.ToString());
- responseString += "
";
+ if (OpenSimRoot.Instance.LocalWorld.Entities[UUID].ToString() == "OpenSim.world.Avatar")
+ {
+ TempAv = (OpenSim.world.Avatar)OpenSimRoot.Instance.LocalWorld.Entities[UUID];
+ responseString += "";
+ responseString += String.Format("{0,-16}{1,-16}{2,-25}{3,-25}{4,-16},{5,-16}", TempAv.firstname, TempAv.lastname, UUID, TempAv.ControllingClient.SessionID, TempAv.ControllingClient.CircuitCode, TempAv.ControllingClient.userEP.ToString());
+ responseString += "
";
+ }
}
}
- }
- break;
- case "/Admin/NewAccount":
- if (requestMethod == "POST")
- {
- string[] comp = new string[10];
- string[] passw = new string[3];
- string delimStr = "&";
- char[] delimiter = delimStr.ToCharArray();
- string delimStr2 = "=";
- char[] delimiter2 = delimStr2.ToCharArray();
+ break;
+ case "/Admin/NewAccount":
+ if (requestMethod == "POST")
+ {
+ string[] comp = new string[10];
+ string[] passw = new string[3];
+ string delimStr = "&";
+ char[] delimiter = delimStr.ToCharArray();
+ string delimStr2 = "=";
+ char[] delimiter2 = delimStr2.ToCharArray();
- //Console.WriteLine(requestBody);
- comp = requestBody.Split(delimiter);
- passw = comp[3].Split(delimiter2);
- if (passw[1] == passWord)
- {
- responseString = " New Account created
";
+ //Console.WriteLine(requestBody);
+ comp = requestBody.Split(delimiter);
+ passw = comp[3].Split(delimiter2);
+ if (passw[1] == passWord)
+ {
+ responseString = " New Account created
";
+ }
+ else
+ {
+ responseString = " Admin password is incorrect, please login with the correct password
";
+ responseString += "
" + LoginForm;
+ }
}
- else
+ break;
+ case "/Admin/Login":
+ if (requestMethod == "POST")
{
- responseString = " Admin password is incorrect, please login with the correct password
";
- responseString += "
" + LoginForm;
+ // Console.WriteLine(requestBody);
+ if (requestBody == passWord)
+ {
+ responseString = " Login Successful
";
+ }
+ else
+ {
+ responseString = " Password Error
";
+ responseString += " Please Login with the correct password
";
+ responseString += "
" + LoginForm;
+ }
}
-
-
- }
- break;
- case "/Admin/Login":
- if (requestMethod == "POST")
- {
- Console.WriteLine(requestBody);
- if (requestBody == passWord)
+ break;
+ case "/Admin/Welcome":
+ if (requestMethod == "GET")
{
- responseString = " Login Successful
";
- }
- else
- {
- responseString = " PassWord Error
";
- responseString += " Please Login with the correct password
";
- responseString += "
" + LoginForm;
- }
- }
- break;
- case "/Admin/Welcome":
- if (requestMethod == "GET")
- {
- responseString = "Welcome to the OpenSim Admin Page";
- responseString += "
" + LoginForm;
+ responseString = "Welcome to the OpenSim Admin Page";
+ responseString += "
" + LoginForm;
- }
- break;
+ }
+ break;
+ }
+ }
+ catch (Exception e)
+ {
+ Console.WriteLine(e.ToString());
}
return responseString;
@@ -210,7 +215,7 @@ namespace OpenSim.CAPS
public void HandleRequest(Object stateinfo)
{
- // Console.WriteLine("new http incoming");
+ // Console.WriteLine("new http incoming");
HttpListenerContext context = (HttpListenerContext)stateinfo;
HttpListenerRequest request = context.Request;
@@ -265,7 +270,7 @@ namespace OpenSim.CAPS
response.AddHeader("Content-type", "text/html");
}
break;
-
+
}
byte[] buffer = System.Text.Encoding.UTF8.GetBytes(responseString);
diff --git a/OpenSim.RegionServer/SimClient.cs b/OpenSim.RegionServer/SimClient.cs
index 811e8b8c08..ef82d98949 100644
--- a/OpenSim.RegionServer/SimClient.cs
+++ b/OpenSim.RegionServer/SimClient.cs
@@ -124,6 +124,15 @@ namespace OpenSim
}
OpenSimRoot.Instance.LocalWorld.GetInitialPrims(this);
break;
+ case PacketType.AgentIsNowWearing:
+ AgentIsNowWearingPacket wear = (AgentIsNowWearingPacket)Pack;
+ //Console.WriteLine(Pack.ToString());
+ break;
+ case PacketType.AgentSetAppearance:
+ AgentSetAppearancePacket appear = (AgentSetAppearancePacket)Pack;
+ // Console.WriteLine(appear.ToString());
+ this.ClientAvatar.SetAppearance(appear);
+ break;
case PacketType.ObjectAdd:
OpenSimRoot.Instance.LocalWorld.AddNewPrim((ObjectAddPacket)Pack, this);
break;
@@ -279,7 +288,7 @@ namespace OpenSim
break;
case PacketType.AssetUploadRequest:
- //this.debug = true;
+ this.debug = true;
AssetUploadRequestPacket request = (AssetUploadRequestPacket)Pack;
// Console.WriteLine(Pack.ToString());
// if (request.AssetBlock.Type == 0)
@@ -318,7 +327,6 @@ namespace OpenSim
OpenSimRoot.Instance.InventoryCache.FetchInventoryDescendents(this, Fetch);
break;
case PacketType.UpdateInventoryItem:
- /*
UpdateInventoryItemPacket update = (UpdateInventoryItemPacket)Pack;
for (int i = 0; i < update.InventoryData.Length; i++)
{
@@ -338,7 +346,7 @@ namespace OpenSim
}
}
}
- }*/
+ }
break;
case PacketType.ViewerEffect:
ViewerEffectPacket viewer = (ViewerEffectPacket)Pack;
diff --git a/OpenSim.RegionServer/world/Avatar.cs b/OpenSim.RegionServer/world/Avatar.cs
index c8a4539cd9..75f2cff948 100644
--- a/OpenSim.RegionServer/world/Avatar.cs
+++ b/OpenSim.RegionServer/world/Avatar.cs
@@ -5,6 +5,7 @@ using System.Text;
using libsecondlife;
using libsecondlife.Packets;
using OpenSim.Physics.Manager;
+using OpenSim.Framework.Inventory;
using Axiom.MathLib;
namespace OpenSim.world
@@ -25,6 +26,9 @@ namespace OpenSim.world
private List forcesList = new List();
private short _updateCount = 0;
private Axiom.MathLib.Quaternion bodyRot;
+ private LLObject.TextureEntry avatarAppearanceTexture = null;
+ private byte[] visualParams;
+ private AvatarWearable[] Wearables;
private LLVector3 positionLastFrame = new LLVector3(0, 0, 0);
public Avatar(SimClient TheClient)
@@ -34,6 +38,21 @@ namespace OpenSim.world
localid = 8880000 + (OpenSimRoot.Instance.LocalWorld._localNumber++);
position = new LLVector3(100.0f, 100.0f, 30.0f);
position.Z = OpenSimRoot.Instance.LocalWorld.LandMap[(int)position.Y * 256 + (int)position.X] + 1;
+ visualParams = new byte[218];
+ for (int i = 0; i < 218; i++)
+ {
+ visualParams[i] = 100;
+ }
+ Wearables = new AvatarWearable[13]; //should be 13 of these
+ for (int i = 0; i < 13; i++)
+ {
+ Wearables[i] = new AvatarWearable();
+ }
+ this.Wearables[0].AssetID = new LLUUID("66c41e39-38f9-f75a-024e-585989bfab73");
+ this.Wearables[0].ItemID = LLUUID.Random();
+
+ this.avatarAppearanceTexture = new LLObject.TextureEntry(new LLUUID("00000000-0000-0000-5005-000000000005"));
+
}
public PhysicsActor PhysActor
@@ -97,7 +116,6 @@ namespace OpenSim.world
_updateCount++;
if (((!PhysicsEngineFlying) && (_updateCount > 3)) || (PhysicsEngineFlying) && (_updateCount > 0))
{
- //Console.WriteLine("been a while since update so have one");
//It has been a while since last update was sent so lets send one.
ImprovedTerseObjectUpdatePacket.ObjectDataBlock terseBlock = CreateTerseBlock();
ImprovedTerseObjectUpdatePacket terse = new ImprovedTerseObjectUpdatePacket();
@@ -119,6 +137,7 @@ namespace OpenSim.world
}
}
+ this.positionLastFrame = pos2;
}
public static void SetupTemplate(string name)
@@ -204,18 +223,13 @@ namespace OpenSim.world
aw.AgentData.SessionID = ControllingClient.SessionID;
aw.WearableData = new AgentWearablesUpdatePacket.WearableDataBlock[13];
- AgentWearablesUpdatePacket.WearableDataBlock awb = new AgentWearablesUpdatePacket.WearableDataBlock();
- awb.WearableType = (byte)0;
- awb.AssetID = new LLUUID("66c41e39-38f9-f75a-024e-585989bfab73");
- awb.ItemID = LLUUID.Random();
- aw.WearableData[0] = awb;
-
- for (int i = 1; i < 13; i++)
+ AgentWearablesUpdatePacket.WearableDataBlock awb;
+ for (int i = 0; i < 13; i++)
{
awb = new AgentWearablesUpdatePacket.WearableDataBlock();
awb.WearableType = (byte)i;
- awb.AssetID = new LLUUID("00000000-0000-0000-0000-000000000000");
- awb.ItemID = new LLUUID("00000000-0000-0000-0000-000000000000");
+ awb.AssetID = this.Wearables[i].AssetID;
+ awb.ItemID = this.Wearables[i].ItemID;
aw.WearableData[i] = awb;
}
@@ -253,14 +267,15 @@ namespace OpenSim.world
avp.VisualParam = new AvatarAppearancePacket.VisualParamBlock[218];
//avp.ObjectData.TextureEntry=this.avatar_template.TextureEntry;// br.ReadBytes((int)numBytes);
- LLObject.TextureEntry ntex = new LLObject.TextureEntry(new LLUUID("00000000-0000-0000-0000-000000000005"));
- avp.ObjectData.TextureEntry = ntex.ToBytes();
+ //LLObject.TextureEntry ntex = new LLObject.TextureEntry(new LLUUID("00000000-0000-0000-0000-000000000005"));
+ //avp.ObjectData.TextureEntry = ntex.ToBytes();
+ avp.ObjectData.TextureEntry = this.avatarAppearanceTexture.ToBytes();
AvatarAppearancePacket.VisualParamBlock avblock = null;
for (int i = 0; i < 218; i++)
{
avblock = new AvatarAppearancePacket.VisualParamBlock();
- avblock.ParamValue = (byte)100;
+ avblock.ParamValue = visualParams[i];
avp.VisualParam[i] = avblock;
}
@@ -269,6 +284,24 @@ namespace OpenSim.world
userInfo.OutPacket(avp);
}
+ public void SetAppearance(AgentSetAppearancePacket appear)
+ {
+ LLObject.TextureEntry tex = new LLObject.TextureEntry(appear.ObjectData.TextureEntry, 0, appear.ObjectData.TextureEntry.Length);
+ this.avatarAppearanceTexture = tex;
+ for (int i = 0; i < appear.VisualParam.Length; i++)
+ {
+ this.visualParams[i] = appear.VisualParam[i].ParamValue;
+ }
+
+ foreach (SimClient client in OpenSimRoot.Instance.ClientThreads.Values)
+ {
+ if (client.AgentID != ControllingClient.AgentID)
+ {
+ SendAppearanceToOtherAgent(client);
+ }
+ }
+ }
+
public void HandleUpdate(AgentUpdatePacket pack)
{
@@ -479,7 +512,7 @@ namespace OpenSim.world
int i = 0;
ImprovedTerseObjectUpdatePacket.ObjectDataBlock dat = new ImprovedTerseObjectUpdatePacket.ObjectDataBlock();
- dat.TextureEntry = AvatarTemplate.TextureEntry;
+ dat.TextureEntry = new byte[0];// AvatarTemplate.TextureEntry;
libsecondlife.LLVector3 pos2 = new LLVector3(this._physActor.Position.X, this._physActor.Position.Y, this._physActor.Position.Z);
uint ID = this.localid;
diff --git a/OpenSim/RegionServer.cs b/OpenSim/RegionServer.cs
index 725a7cf12a..d6d0af9245 100644
--- a/OpenSim/RegionServer.cs
+++ b/OpenSim/RegionServer.cs
@@ -40,11 +40,11 @@ namespace OpenSim
OpenSim.world.Avatar.PhysicsEngineFlying = true;
}
if (args[i] == "-ode")
- {
- sim._physicsEngine = "OpenDynamicsEngine";
- OpenSim.world.Avatar.PhysicsEngineFlying = true;
- }
- }
+ {
+ sim._physicsEngine = "OpenDynamicsEngine";
+ OpenSim.world.Avatar.PhysicsEngineFlying = true;
+ }
+ }
OpenSimRoot.Instance.GridServers = new Grid();