diff options
Diffstat (limited to 'OpenSim')
18 files changed, 159 insertions, 108 deletions
diff --git a/OpenSim/Framework/Communications/CommunicationsManager.cs b/OpenSim/Framework/Communications/CommunicationsManager.cs index f90e766..109d027 100644 --- a/OpenSim/Framework/Communications/CommunicationsManager.cs +++ b/OpenSim/Framework/Communications/CommunicationsManager.cs | |||
@@ -31,6 +31,7 @@ using libsecondlife.Packets; | |||
31 | using OpenSim.Framework.Data; | 31 | using OpenSim.Framework.Data; |
32 | using OpenSim.Framework.Interfaces; | 32 | using OpenSim.Framework.Interfaces; |
33 | using OpenSim.Framework.Types; | 33 | using OpenSim.Framework.Types; |
34 | using OpenSim.Framework.Servers; | ||
34 | 35 | ||
35 | namespace OpenSim.Framework.Communications | 36 | namespace OpenSim.Framework.Communications |
36 | { | 37 | { |
@@ -42,7 +43,7 @@ namespace OpenSim.Framework.Communications | |||
42 | public IInterRegionCommunications InterRegion; | 43 | public IInterRegionCommunications InterRegion; |
43 | 44 | ||
44 | public NetworkServersInfo ServersInfo; | 45 | public NetworkServersInfo ServersInfo; |
45 | public CommunicationsManager(NetworkServersInfo serversInfo) | 46 | public CommunicationsManager(NetworkServersInfo serversInfo, BaseHttpServer httpServer) |
46 | { | 47 | { |
47 | ServersInfo = serversInfo; | 48 | ServersInfo = serversInfo; |
48 | } | 49 | } |
diff --git a/OpenSim/Framework/Data/SimProfileData.cs b/OpenSim/Framework/Data/SimProfileData.cs index 9db8574..b920cab 100644 --- a/OpenSim/Framework/Data/SimProfileData.cs +++ b/OpenSim/Framework/Data/SimProfileData.cs | |||
@@ -80,6 +80,10 @@ namespace OpenSim.Framework.Data | |||
80 | public uint serverPort; | 80 | public uint serverPort; |
81 | public string serverURI = ""; | 81 | public string serverURI = ""; |
82 | 82 | ||
83 | public uint httpPort; | ||
84 | public uint remotingPort; | ||
85 | public string httpServerURI = ""; | ||
86 | |||
83 | /// <summary> | 87 | /// <summary> |
84 | /// Set of optional overrides. Can be used to create non-eulicidean spaces. | 88 | /// Set of optional overrides. Can be used to create non-eulicidean spaces. |
85 | /// </summary> | 89 | /// </summary> |
@@ -143,7 +147,10 @@ namespace OpenSim.Framework.Data | |||
143 | simData.regionHandle = Helpers.UIntsToLong((simData.regionLocX * 256), (simData.regionLocY * 256)); | 147 | simData.regionHandle = Helpers.UIntsToLong((simData.regionLocX * 256), (simData.regionLocY * 256)); |
144 | simData.serverIP = (string)responseData["sim_ip"]; | 148 | simData.serverIP = (string)responseData["sim_ip"]; |
145 | simData.serverPort = Convert.ToUInt32((string)responseData["sim_port"]); | 149 | simData.serverPort = Convert.ToUInt32((string)responseData["sim_port"]); |
150 | simData.httpPort = Convert.ToUInt32((string)responseData["http_port"]); | ||
151 | simData.remotingPort = Convert.ToUInt32((string)responseData["remoting_port"]); | ||
146 | simData.serverURI = "http://" + simData.serverIP + ":" + simData.serverPort.ToString() + "/"; | 152 | simData.serverURI = "http://" + simData.serverIP + ":" + simData.serverPort.ToString() + "/"; |
153 | simData.httpServerURI = "http://" + simData.serverIP + ":" + simData.httpPort.ToString() + "/"; | ||
147 | simData.UUID = new LLUUID((string)responseData["region_UUID"]); | 154 | simData.UUID = new LLUUID((string)responseData["region_UUID"]); |
148 | simData.regionName = (string)responseData["region_name"]; | 155 | simData.regionName = (string)responseData["region_name"]; |
149 | 156 | ||
@@ -172,6 +179,9 @@ namespace OpenSim.Framework.Data | |||
172 | simData.regionHandle = Helpers.UIntsToLong((simData.regionLocX * 256), (simData.regionLocY * 256)); | 179 | simData.regionHandle = Helpers.UIntsToLong((simData.regionLocX * 256), (simData.regionLocY * 256)); |
173 | simData.serverIP = (string)responseData["sim_ip"]; | 180 | simData.serverIP = (string)responseData["sim_ip"]; |
174 | simData.serverPort = Convert.ToUInt32((string)responseData["sim_port"]); | 181 | simData.serverPort = Convert.ToUInt32((string)responseData["sim_port"]); |
182 | simData.httpPort = Convert.ToUInt32((string)responseData["http_port"]); | ||
183 | simData.remotingPort = Convert.ToUInt32((string)responseData["remoting_port"]); | ||
184 | simData.httpServerURI = "http://" + simData.serverIP + ":" + simData.httpPort.ToString() + "/"; | ||
175 | simData.serverURI = "http://" + simData.serverIP + ":" + simData.serverPort.ToString() + "/"; | 185 | simData.serverURI = "http://" + simData.serverIP + ":" + simData.serverPort.ToString() + "/"; |
176 | simData.UUID = new LLUUID((string)responseData["region_UUID"]); | 186 | simData.UUID = new LLUUID((string)responseData["region_UUID"]); |
177 | simData.regionName = (string)responseData["region_name"]; | 187 | simData.regionName = (string)responseData["region_name"]; |
diff --git a/OpenSim/Grid/GridServer/GridManager.cs b/OpenSim/Grid/GridServer/GridManager.cs index 06e83f8..6ddb921 100644 --- a/OpenSim/Grid/GridServer/GridManager.cs +++ b/OpenSim/Grid/GridServer/GridManager.cs | |||
@@ -261,12 +261,16 @@ namespace OpenSim.Grid.GridServer | |||
261 | 261 | ||
262 | TheSim.serverIP = (string)requestData["sim_ip"]; | 262 | TheSim.serverIP = (string)requestData["sim_ip"]; |
263 | TheSim.serverPort = Convert.ToUInt32((string)requestData["sim_port"]); | 263 | TheSim.serverPort = Convert.ToUInt32((string)requestData["sim_port"]); |
264 | TheSim.httpPort = Convert.ToUInt32((string)requestData["http_port"]); | ||
265 | TheSim.remotingPort = Convert.ToUInt32((string)requestData["remoting_port"]); | ||
264 | TheSim.regionLocX = Convert.ToUInt32((string)requestData["region_locx"]); | 266 | TheSim.regionLocX = Convert.ToUInt32((string)requestData["region_locx"]); |
265 | TheSim.regionLocY = Convert.ToUInt32((string)requestData["region_locy"]); | 267 | TheSim.regionLocY = Convert.ToUInt32((string)requestData["region_locy"]); |
266 | TheSim.regionLocZ = 0; | 268 | TheSim.regionLocZ = 0; |
267 | 269 | ||
268 | TheSim.regionHandle = Helpers.UIntsToLong((TheSim.regionLocX * 256), (TheSim.regionLocY * 256)); | 270 | TheSim.regionHandle = Helpers.UIntsToLong((TheSim.regionLocX * 256), (TheSim.regionLocY * 256)); |
271 | System.Console.WriteLine("adding region " + TheSim.regionLocX + " , " + TheSim.regionLocY + " , " + TheSim.regionHandle); | ||
269 | TheSim.serverURI = "http://" + TheSim.serverIP + ":" + TheSim.serverPort + "/"; | 272 | TheSim.serverURI = "http://" + TheSim.serverIP + ":" + TheSim.serverPort + "/"; |
273 | TheSim.httpServerURI = "http://" + TheSim.serverIP + ":" + TheSim.httpPort + "/"; | ||
270 | 274 | ||
271 | Console.WriteLine("NEW SIM: " + TheSim.serverURI); | 275 | Console.WriteLine("NEW SIM: " + TheSim.serverURI); |
272 | TheSim.regionName = (string)requestData["sim_name"]; | 276 | TheSim.regionName = (string)requestData["sim_name"]; |
@@ -400,6 +404,8 @@ namespace OpenSim.Grid.GridServer | |||
400 | { | 404 | { |
401 | responseData["sim_ip"] = simData.serverIP; | 405 | responseData["sim_ip"] = simData.serverIP; |
402 | responseData["sim_port"] = simData.serverPort.ToString(); | 406 | responseData["sim_port"] = simData.serverPort.ToString(); |
407 | responseData["http_port"] = simData.httpPort.ToString(); | ||
408 | responseData["remoting_port"] = simData.remotingPort.ToString(); | ||
403 | responseData["region_locx"] = simData.regionLocX.ToString() ; | 409 | responseData["region_locx"] = simData.regionLocX.ToString() ; |
404 | responseData["region_locy"] = simData.regionLocY.ToString(); | 410 | responseData["region_locy"] = simData.regionLocY.ToString(); |
405 | responseData["region_UUID"] = simData.UUID.UUID.ToString(); | 411 | responseData["region_UUID"] = simData.UUID.UUID.ToString(); |
@@ -438,7 +444,7 @@ namespace OpenSim.Grid.GridServer | |||
438 | response.Value = responseData; | 444 | response.Value = responseData; |
439 | IList simProfileList = new ArrayList(); | 445 | IList simProfileList = new ArrayList(); |
440 | 446 | ||
441 | bool fastMode = true; // MySQL Only | 447 | bool fastMode = false; // MySQL Only |
442 | 448 | ||
443 | if (fastMode) | 449 | if (fastMode) |
444 | { | 450 | { |
@@ -449,6 +455,7 @@ namespace OpenSim.Grid.GridServer | |||
449 | Hashtable simProfileBlock = new Hashtable(); | 455 | Hashtable simProfileBlock = new Hashtable(); |
450 | simProfileBlock["x"] = aSim.Value.regionLocX.ToString(); | 456 | simProfileBlock["x"] = aSim.Value.regionLocX.ToString(); |
451 | simProfileBlock["y"] = aSim.Value.regionLocY.ToString(); | 457 | simProfileBlock["y"] = aSim.Value.regionLocY.ToString(); |
458 | System.Console.WriteLine("send neighbour info for " + aSim.Value.regionLocX.ToString() + " , " + aSim.Value.regionLocY.ToString()); | ||
452 | simProfileBlock["name"] = aSim.Value.regionName; | 459 | simProfileBlock["name"] = aSim.Value.regionName; |
453 | simProfileBlock["access"] = 21; | 460 | simProfileBlock["access"] = 21; |
454 | simProfileBlock["region-flags"] = 512; | 461 | simProfileBlock["region-flags"] = 512; |
@@ -470,11 +477,12 @@ namespace OpenSim.Grid.GridServer | |||
470 | else | 477 | else |
471 | { | 478 | { |
472 | SimProfileData simProfile; | 479 | SimProfileData simProfile; |
473 | for (int x = xmin; x < xmax; x++) | 480 | for (int x = xmin; x < xmax+1; x++) |
474 | { | 481 | { |
475 | for (int y = ymin; y < ymax; y++) | 482 | for (int y = ymin; y < ymax+1; y++) |
476 | { | 483 | { |
477 | simProfile = getRegion(Helpers.UIntsToLong((uint)(x * 256), (uint)(y * 256))); | 484 | ulong regHandle = Helpers.UIntsToLong((uint)(x * 256), (uint)(y * 256)); |
485 | simProfile = getRegion(regHandle); | ||
478 | if (simProfile != null) | 486 | if (simProfile != null) |
479 | { | 487 | { |
480 | Hashtable simProfileBlock = new Hashtable(); | 488 | Hashtable simProfileBlock = new Hashtable(); |
diff --git a/OpenSim/Grid/UserServer/UserManager.cs b/OpenSim/Grid/UserServer/UserManager.cs index 7ae7853..04bf64a 100644 --- a/OpenSim/Grid/UserServer/UserManager.cs +++ b/OpenSim/Grid/UserServer/UserManager.cs | |||
@@ -85,9 +85,10 @@ namespace OpenSim.Grid.UserServer | |||
85 | theUser.currentAgent.currentRegion = SimInfo.UUID; | 85 | theUser.currentAgent.currentRegion = SimInfo.UUID; |
86 | theUser.currentAgent.currentHandle = SimInfo.regionHandle; | 86 | theUser.currentAgent.currentHandle = SimInfo.regionHandle; |
87 | 87 | ||
88 | System.Console.WriteLine("sending reply"); | ||
88 | // Send | 89 | // Send |
89 | XmlRpcRequest GridReq = new XmlRpcRequest("expect_user", SendParams); | 90 | XmlRpcRequest GridReq = new XmlRpcRequest("expect_user", SendParams); |
90 | XmlRpcResponse GridResp = GridReq.Send(SimInfo.serverURI, 3000); | 91 | XmlRpcResponse GridResp = GridReq.Send(SimInfo.httpServerURI, 3000); |
91 | } | 92 | } |
92 | } | 93 | } |
93 | } | 94 | } |
diff --git a/OpenSim/Region/Application/OpenSimMain.cs b/OpenSim/Region/Application/OpenSimMain.cs index 949c369..728329e 100644 --- a/OpenSim/Region/Application/OpenSimMain.cs +++ b/OpenSim/Region/Application/OpenSimMain.cs | |||
@@ -93,17 +93,17 @@ namespace OpenSim | |||
93 | 93 | ||
94 | ClientView.TerrainManager = new TerrainManager(new SecondLife()); | 94 | ClientView.TerrainManager = new TerrainManager(new SecondLife()); |
95 | 95 | ||
96 | this.SetupHttpListener(); | ||
97 | |||
96 | if (m_sandbox) | 98 | if (m_sandbox) |
97 | { | 99 | { |
98 | this.SetupLocalGridServers(); | 100 | this.SetupLocalGridServers(); |
99 | // this.checkServer = new CheckSumServer(12036); | 101 | // this.checkServer = new CheckSumServer(12036); |
100 | // this.checkServer.ServerListener(); | 102 | // this.checkServer.ServerListener(); |
101 | this.commsManager = new CommunicationsLocal(this.serversData); | ||
102 | } | 103 | } |
103 | else | 104 | else |
104 | { | 105 | { |
105 | this.SetupRemoteGridServers(); | 106 | this.SetupRemoteGridServers(); |
106 | this.commsManager = new CommunicationsOGS1(this.serversData); | ||
107 | } | 107 | } |
108 | 108 | ||
109 | startuptime = DateTime.Now; | 109 | startuptime = DateTime.Now; |
@@ -111,14 +111,10 @@ namespace OpenSim | |||
111 | this.physManager = new PhysicsManager(); | 111 | this.physManager = new PhysicsManager(); |
112 | this.physManager.LoadPlugins(); | 112 | this.physManager.LoadPlugins(); |
113 | 113 | ||
114 | this.SetupHttpListener(); | ||
115 | |||
116 | this.SetupWorld(); | 114 | this.SetupWorld(); |
117 | 115 | ||
118 | m_log.Verbose("Main.cs:Startup() - Initialising HTTP server"); | 116 | m_log.Verbose("Main.cs:Startup() - Initialising HTTP server"); |
119 | 117 | ||
120 | |||
121 | |||
122 | if (m_sandbox) | 118 | if (m_sandbox) |
123 | { | 119 | { |
124 | httpServer.AddXmlRPCHandler("login_to_simulator", ((CommunicationsLocal)this.commsManager).UserServices.XmlRpcLoginMethod); | 120 | httpServer.AddXmlRPCHandler("login_to_simulator", ((CommunicationsLocal)this.commsManager).UserServices.XmlRpcLoginMethod); |
@@ -143,6 +139,7 @@ namespace OpenSim | |||
143 | { | 139 | { |
144 | AssetCache = new AssetCache("OpenSim.Region.GridInterfaces.Local.dll", this.serversData.AssetURL, this.serversData.AssetSendKey); | 140 | AssetCache = new AssetCache("OpenSim.Region.GridInterfaces.Local.dll", this.serversData.AssetURL, this.serversData.AssetSendKey); |
145 | InventoryCache = new InventoryCache(); | 141 | InventoryCache = new InventoryCache(); |
142 | this.commsManager = new CommunicationsLocal(this.serversData, httpServer); | ||
146 | } | 143 | } |
147 | catch (Exception e) | 144 | catch (Exception e) |
148 | { | 145 | { |
@@ -156,8 +153,9 @@ namespace OpenSim | |||
156 | { | 153 | { |
157 | try | 154 | try |
158 | { | 155 | { |
159 | AssetCache = new AssetCache("OpenSim.Region.GridInterfaces.Remote.dll", this.serversData.AssetURL, this.serversData.AssetSendKey); | 156 | AssetCache = new AssetCache("OpenSim.Region.GridInterfaces.Local.dll", this.serversData.AssetURL, this.serversData.AssetSendKey); |
160 | InventoryCache = new InventoryCache(); | 157 | InventoryCache = new InventoryCache(); |
158 | this.commsManager = new CommunicationsOGS1(this.serversData, httpServer); | ||
161 | } | 159 | } |
162 | catch (Exception e) | 160 | catch (Exception e) |
163 | { | 161 | { |
diff --git a/OpenSim/Region/ClientStack/ClientView.ProcessPackets.cs b/OpenSim/Region/ClientStack/ClientView.ProcessPackets.cs index 982ae50..7d924d0 100644 --- a/OpenSim/Region/ClientStack/ClientView.ProcessPackets.cs +++ b/OpenSim/Region/ClientStack/ClientView.ProcessPackets.cs | |||
@@ -41,7 +41,6 @@ namespace OpenSim.Region.ClientStack | |||
41 | protected override void ProcessInPacket(Packet Pack) | 41 | protected override void ProcessInPacket(Packet Pack) |
42 | { | 42 | { |
43 | ack_pack(Pack); | 43 | ack_pack(Pack); |
44 | debug = true; | ||
45 | if (debug) | 44 | if (debug) |
46 | { | 45 | { |
47 | if (Pack.Type != PacketType.AgentUpdate) | 46 | if (Pack.Type != PacketType.AgentUpdate) |
diff --git a/OpenSim/Region/ClientStack/ClientViewBase.cs b/OpenSim/Region/ClientStack/ClientViewBase.cs index 24c6911..ec7b039 100644 --- a/OpenSim/Region/ClientStack/ClientViewBase.cs +++ b/OpenSim/Region/ClientStack/ClientViewBase.cs | |||
@@ -71,7 +71,8 @@ namespace OpenSim.Region.ClientStack | |||
71 | // Keep track of when this packet was sent out | 71 | // Keep track of when this packet was sent out |
72 | Pack.TickCount = Environment.TickCount; | 72 | Pack.TickCount = Environment.TickCount; |
73 | 73 | ||
74 | Console.WriteLine("OUT: " + Pack.Type.ToString()); | 74 | |
75 | // Console.WriteLine("OUT: " + Pack.Type.ToString()); | ||
75 | 76 | ||
76 | if (!Pack.Header.Resent) | 77 | if (!Pack.Header.Resent) |
77 | { | 78 | { |
diff --git a/OpenSim/Region/Communications/Local/CommunicationsLocal.cs b/OpenSim/Region/Communications/Local/CommunicationsLocal.cs index 5d6ede8..a047843 100644 --- a/OpenSim/Region/Communications/Local/CommunicationsLocal.cs +++ b/OpenSim/Region/Communications/Local/CommunicationsLocal.cs | |||
@@ -27,6 +27,7 @@ | |||
27 | */ | 27 | */ |
28 | using OpenSim.Framework.Communications; | 28 | using OpenSim.Framework.Communications; |
29 | using OpenSim.Framework.Types; | 29 | using OpenSim.Framework.Types; |
30 | using OpenSim.Framework.Servers; | ||
30 | 31 | ||
31 | namespace OpenSim.Region.Communications.Local | 32 | namespace OpenSim.Region.Communications.Local |
32 | { | 33 | { |
@@ -35,8 +36,8 @@ namespace OpenSim.Region.Communications.Local | |||
35 | public LocalBackEndServices SandBoxServices = new LocalBackEndServices(); | 36 | public LocalBackEndServices SandBoxServices = new LocalBackEndServices(); |
36 | public LocalUserServices UserServices; | 37 | public LocalUserServices UserServices; |
37 | 38 | ||
38 | public CommunicationsLocal(NetworkServersInfo serversInfo) | 39 | public CommunicationsLocal(NetworkServersInfo serversInfo, BaseHttpServer httpServer ) |
39 | : base(serversInfo) | 40 | : base(serversInfo, httpServer) |
40 | { | 41 | { |
41 | UserServices = new LocalUserServices(this, serversInfo); | 42 | UserServices = new LocalUserServices(this, serversInfo); |
42 | UserServices.AddPlugin("OpenSim.Framework.Data.DB4o.dll"); | 43 | UserServices.AddPlugin("OpenSim.Framework.Data.DB4o.dll"); |
diff --git a/OpenSim/Region/Communications/OGS1/CommunicationsOGS1.cs b/OpenSim/Region/Communications/OGS1/CommunicationsOGS1.cs index 1118726..cc05845 100644 --- a/OpenSim/Region/Communications/OGS1/CommunicationsOGS1.cs +++ b/OpenSim/Region/Communications/OGS1/CommunicationsOGS1.cs | |||
@@ -1,14 +1,15 @@ | |||
1 | using OpenSim.Framework.Communications; | 1 | using OpenSim.Framework.Communications; |
2 | using OpenSim.Framework.Types; | 2 | using OpenSim.Framework.Types; |
3 | using OpenSim.Framework.Servers; | ||
3 | 4 | ||
4 | namespace OpenSim.Region.Communications.OGS1 | 5 | namespace OpenSim.Region.Communications.OGS1 |
5 | { | 6 | { |
6 | public class CommunicationsOGS1 : CommunicationsManager | 7 | public class CommunicationsOGS1 : CommunicationsManager |
7 | { | 8 | { |
8 | 9 | ||
9 | public CommunicationsOGS1(NetworkServersInfo serversInfo) :base(serversInfo) | 10 | public CommunicationsOGS1(NetworkServersInfo serversInfo, BaseHttpServer httpServer ) :base(serversInfo, httpServer) |
10 | { | 11 | { |
11 | OGS1GridServices gridInterComms = new OGS1GridServices(serversInfo); | 12 | OGS1GridServices gridInterComms = new OGS1GridServices(serversInfo, httpServer); |
12 | GridServer = gridInterComms; | 13 | GridServer = gridInterComms; |
13 | InterRegion = gridInterComms; | 14 | InterRegion = gridInterComms; |
14 | UserServer = new OGS1UserServices(this); | 15 | UserServer = new OGS1UserServices(this); |
diff --git a/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs b/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs index b7d62ed..50a31c6 100644 --- a/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs +++ b/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs | |||
@@ -18,40 +18,50 @@ namespace OpenSim.Region.Communications.OGS1 | |||
18 | public class OGS1GridServices : IGridServices, IInterRegionCommunications | 18 | public class OGS1GridServices : IGridServices, IInterRegionCommunications |
19 | { | 19 | { |
20 | public Dictionary<ulong, RegionCommsListener> listeners = new Dictionary<ulong, RegionCommsListener>(); | 20 | public Dictionary<ulong, RegionCommsListener> listeners = new Dictionary<ulong, RegionCommsListener>(); |
21 | protected Dictionary<ulong, RegionInfo> regions = new Dictionary<ulong, RegionInfo>(); | ||
22 | |||
21 | public BaseHttpServer httpListener; | 23 | public BaseHttpServer httpListener; |
22 | public NetworkServersInfo serversInfo; | 24 | public NetworkServersInfo serversInfo; |
25 | public BaseHttpServer httpServer; | ||
23 | 26 | ||
24 | public OGS1GridServices(NetworkServersInfo servers_info) | 27 | public OGS1GridServices(NetworkServersInfo servers_info, BaseHttpServer httpServe) |
25 | { | 28 | { |
26 | serversInfo = servers_info; | 29 | serversInfo = servers_info; |
30 | httpServer = httpServe; | ||
31 | httpServer.AddXmlRPCHandler("expect_user", this.ExpectUser); | ||
27 | } | 32 | } |
28 | 33 | ||
29 | public RegionCommsListener RegisterRegion(RegionInfo regionInfo) | 34 | public RegionCommsListener RegisterRegion(RegionInfo regionInfo) |
30 | { | 35 | { |
36 | if (!this.regions.ContainsKey((uint)regionInfo.RegionHandle)) | ||
37 | { | ||
38 | this.regions.Add(regionInfo.RegionHandle, regionInfo); | ||
39 | } | ||
40 | |||
31 | Hashtable GridParams = new Hashtable(); | 41 | Hashtable GridParams = new Hashtable(); |
32 | 42 | ||
33 | 43 | ||
34 | // Login / Authentication | 44 | // Login / Authentication |
35 | 45 | ||
36 | GridParams["authkey"] = serversInfo.GridSendKey; | 46 | GridParams["authkey"] = serversInfo.GridSendKey; |
37 | GridParams["UUID"] = regionInfo.SimUUID.ToStringHyphenated(); | 47 | GridParams["UUID"] = regionInfo.SimUUID.ToStringHyphenated(); |
38 | GridParams["sim_ip"] = regionInfo.ExternalHostName; | 48 | GridParams["sim_ip"] = regionInfo.ExternalHostName; |
39 | GridParams["sim_port"] = regionInfo.InternalEndPoint.Port.ToString(); | 49 | GridParams["sim_port"] = regionInfo.InternalEndPoint.Port.ToString(); |
40 | GridParams["region_locx"] = regionInfo.RegionLocX.ToString(); | 50 | GridParams["region_locx"] = regionInfo.RegionLocX.ToString(); |
41 | GridParams["region_locy"] = regionInfo.RegionLocY.ToString(); | 51 | GridParams["region_locy"] = regionInfo.RegionLocY.ToString(); |
42 | GridParams["sim_name"] = regionInfo.RegionName; | 52 | GridParams["sim_name"] = regionInfo.RegionName; |
53 | GridParams["http_port"] = serversInfo.HttpListenerPort.ToString(); | ||
54 | GridParams["remoting_port"] = serversInfo.RemotingListenerPort.ToString(); | ||
43 | 55 | ||
44 | // Package into an XMLRPC Request | 56 | // Package into an XMLRPC Request |
45 | ArrayList SendParams = new ArrayList(); | 57 | ArrayList SendParams = new ArrayList(); |
46 | SendParams.Add(GridParams); | 58 | SendParams.Add(GridParams); |
47 | 59 | ||
48 | |||
49 | |||
50 | // Send Request | 60 | // Send Request |
51 | XmlRpcRequest GridReq = new XmlRpcRequest("simulator_login", SendParams); | 61 | XmlRpcRequest GridReq = new XmlRpcRequest("simulator_login", SendParams); |
52 | XmlRpcResponse GridResp = GridReq.Send(serversInfo.GridURL, 3000); | 62 | XmlRpcResponse GridResp = GridReq.Send(serversInfo.GridURL, 3000); |
53 | Hashtable GridRespData = (Hashtable)GridResp.Value; | 63 | Hashtable GridRespData = (Hashtable)GridResp.Value; |
54 | 64 | ||
55 | Hashtable griddatahash = GridRespData; | 65 | Hashtable griddatahash = GridRespData; |
56 | 66 | ||
57 | // Process Response | 67 | // Process Response |
@@ -60,25 +70,34 @@ namespace OpenSim.Region.Communications.OGS1 | |||
60 | string errorstring = (string)GridRespData["error"]; | 70 | string errorstring = (string)GridRespData["error"]; |
61 | MainLog.Instance.Error("Unable to connect to grid: " + errorstring); | 71 | MainLog.Instance.Error("Unable to connect to grid: " + errorstring); |
62 | return null; | 72 | return null; |
63 | } | ||
64 | |||
65 | if (!this.listeners.ContainsKey(regionInfo.RegionHandle)) | ||
66 | { | ||
67 | MainLog.Instance.Verbose("OGS1 - Registering new HTTP listener on port " + regionInfo.InternalEndPoint.Port.ToString()); | ||
68 | // initialised = true; | ||
69 | httpListener = new BaseHttpServer( regionInfo.InternalEndPoint.Port ); | ||
70 | httpListener.AddXmlRPCHandler("expect_user", this.ExpectUser); | ||
71 | httpListener.Start(); | ||
72 | } | 73 | } |
73 | 74 | ||
75 | /* if (!this.listeners.ContainsKey(regionInfo.RegionHandle)) | ||
76 | { | ||
77 | MainLog.Instance.Verbose("OGS1 - Registering new HTTP listener on port " + regionInfo.InternalEndPoint.Port.ToString()); | ||
78 | // initialised = true; | ||
79 | httpListener = new BaseHttpServer( regionInfo.InternalEndPoint.Port ); | ||
80 | httpListener.AddXmlRPCHandler("expect_user", this.ExpectUser); | ||
81 | httpListener.Start(); | ||
82 | }*/ | ||
83 | |||
74 | // Initialise the background listeners | 84 | // Initialise the background listeners |
75 | listeners[regionInfo.RegionHandle] = new RegionCommsListener(); | 85 | RegionCommsListener regListener = new RegionCommsListener(); |
86 | if (this.listeners.ContainsKey(regionInfo.RegionHandle)) | ||
87 | { | ||
88 | this.listeners.Add(regionInfo.RegionHandle, regListener); | ||
89 | } | ||
90 | else | ||
91 | { | ||
92 | listeners[regionInfo.RegionHandle] = regListener; | ||
93 | } | ||
76 | 94 | ||
77 | return listeners[regionInfo.RegionHandle]; | 95 | return regListener; |
78 | } | 96 | } |
79 | 97 | ||
80 | public List<RegionInfo> RequestNeighbours(RegionInfo regionInfo) | 98 | public List<RegionInfo> RequestNeighbours(RegionInfo regionInfo) |
81 | { | 99 | { |
100 | |||
82 | Hashtable respData = MapBlockQuery((int)regionInfo.RegionLocX - 1, (int)regionInfo.RegionLocY - 1, (int)regionInfo.RegionLocX + 1, (int)regionInfo.RegionLocY + 1); | 101 | Hashtable respData = MapBlockQuery((int)regionInfo.RegionLocX - 1, (int)regionInfo.RegionLocY - 1, (int)regionInfo.RegionLocX + 1, (int)regionInfo.RegionLocY + 1); |
83 | 102 | ||
84 | List<RegionInfo> neighbours = new List<RegionInfo>(); | 103 | List<RegionInfo> neighbours = new List<RegionInfo>(); |
@@ -87,24 +106,28 @@ namespace OpenSim.Region.Communications.OGS1 | |||
87 | { | 106 | { |
88 | foreach (Hashtable n in a) | 107 | foreach (Hashtable n in a) |
89 | { | 108 | { |
90 | string internalIpStr = (string)n["sim_ip"]; | 109 | uint regX = Convert.ToUInt32(n["x"]); |
91 | int port = (int)n["sim_port"]; | 110 | uint regY = Convert.ToUInt32(n["y"]); |
92 | string externalUri = (string)n["sim_uri"]; | 111 | if ((regionInfo.RegionLocX != regX) || (regionInfo.RegionLocY != regY)) |
93 | 112 | { | |
94 | IPEndPoint neighbourInternalEndPoint = new IPEndPoint(IPAddress.Parse(internalIpStr), port); | 113 | string internalIpStr = (string)n["sim_ip"]; |
95 | string neighbourExternalUri = externalUri; | 114 | uint port = Convert.ToUInt32(n["sim_port"]); |
115 | string externalUri = (string)n["sim_uri"]; | ||
96 | 116 | ||
97 | RegionInfo neighbour = new RegionInfo((uint)n["x"], (uint)n["y"], neighbourInternalEndPoint, neighbourExternalUri); | 117 | IPEndPoint neighbourInternalEndPoint = new IPEndPoint(IPAddress.Parse(internalIpStr), (int)port); |
118 | string neighbourExternalUri = externalUri; | ||
119 | RegionInfo neighbour = new RegionInfo(regX, regY, neighbourInternalEndPoint, internalIpStr); | ||
98 | 120 | ||
99 | //OGS1 | 121 | //OGS1 |
100 | //neighbour.RegionHandle = (ulong)n["regionhandle"]; is now calculated locally | 122 | //neighbour.RegionHandle = (ulong)n["regionhandle"]; is now calculated locally |
101 | 123 | ||
102 | neighbour.RegionName = (string)n["name"]; | 124 | neighbour.RegionName = (string)n["name"]; |
103 | 125 | ||
104 | //OGS1+ | 126 | //OGS1+ |
105 | neighbour.SimUUID = (string)n["uuid"]; | 127 | neighbour.SimUUID = (string)n["uuid"]; |
106 | 128 | ||
107 | neighbours.Add(neighbour); | 129 | neighbours.Add(neighbour); |
130 | } | ||
108 | } | 131 | } |
109 | } | 132 | } |
110 | 133 | ||
@@ -113,6 +136,11 @@ namespace OpenSim.Region.Communications.OGS1 | |||
113 | 136 | ||
114 | public RegionInfo RequestNeighbourInfo(ulong regionHandle) | 137 | public RegionInfo RequestNeighbourInfo(ulong regionHandle) |
115 | { | 138 | { |
139 | if (this.regions.ContainsKey(regionHandle)) | ||
140 | { | ||
141 | return this.regions[regionHandle]; | ||
142 | } | ||
143 | //TODO not a region in this instance so ask remote grid server | ||
116 | MainLog.Instance.Warn("Unimplemented - RequestNeighbourInfo()"); | 144 | MainLog.Instance.Warn("Unimplemented - RequestNeighbourInfo()"); |
117 | return null; | 145 | return null; |
118 | } | 146 | } |
@@ -209,7 +237,7 @@ namespace OpenSim.Region.Communications.OGS1 | |||
209 | TcpChannel ch = new TcpChannel(8895); | 237 | TcpChannel ch = new TcpChannel(8895); |
210 | ChannelServices.RegisterChannel(ch, true); | 238 | ChannelServices.RegisterChannel(ch, true); |
211 | 239 | ||
212 | WellKnownServiceTypeEntry wellType = new WellKnownServiceTypeEntry( Type.GetType("OGS1InterRegionRemoting"), "InterRegions", WellKnownObjectMode.Singleton); | 240 | WellKnownServiceTypeEntry wellType = new WellKnownServiceTypeEntry(Type.GetType("OGS1InterRegionRemoting"), "InterRegions", WellKnownObjectMode.Singleton); |
213 | RemotingConfiguration.RegisterWellKnownServiceType(wellType); | 241 | RemotingConfiguration.RegisterWellKnownServiceType(wellType); |
214 | InterRegionSingleton.Instance.OnArrival += this.IncomingArrival; | 242 | InterRegionSingleton.Instance.OnArrival += this.IncomingArrival; |
215 | InterRegionSingleton.Instance.OnChildAgent += this.IncomingChildAgent; | 243 | InterRegionSingleton.Instance.OnChildAgent += this.IncomingChildAgent; |
@@ -225,6 +253,7 @@ namespace OpenSim.Region.Communications.OGS1 | |||
225 | } | 253 | } |
226 | //TODO need to see if we know about where this region is and use .net remoting | 254 | //TODO need to see if we know about where this region is and use .net remoting |
227 | // to inform it. | 255 | // to inform it. |
256 | Console.WriteLine("Inform remote region of child agent not implemented yet"); | ||
228 | return false; | 257 | return false; |
229 | } | 258 | } |
230 | 259 | ||
diff --git a/OpenSim/Region/Communications/OGS1/OGS1UserServices.cs b/OpenSim/Region/Communications/OGS1/OGS1UserServices.cs index 3a3bccb..2bbaf9d 100644 --- a/OpenSim/Region/Communications/OGS1/OGS1UserServices.cs +++ b/OpenSim/Region/Communications/OGS1/OGS1UserServices.cs | |||
@@ -47,7 +47,6 @@ namespace OpenSim.Region.Communications.OGS1 | |||
47 | } | 47 | } |
48 | public UserProfileData GetUserProfile(string name) | 48 | public UserProfileData GetUserProfile(string name) |
49 | { | 49 | { |
50 | |||
51 | //try | 50 | //try |
52 | //{ | 51 | //{ |
53 | Hashtable param = new Hashtable(); | 52 | Hashtable param = new Hashtable(); |
diff --git a/OpenSim/Region/Environment/Scenes/EntityBase.cs b/OpenSim/Region/Environment/Scenes/EntityBase.cs index 6360ae1..65a0395 100644 --- a/OpenSim/Region/Environment/Scenes/EntityBase.cs +++ b/OpenSim/Region/Environment/Scenes/EntityBase.cs | |||
@@ -57,7 +57,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
57 | 57 | ||
58 | protected Quaternion m_rotation = new Quaternion(0,0,1,0); | 58 | protected Quaternion m_rotation = new Quaternion(0,0,1,0); |
59 | 59 | ||
60 | public virtual Quaternion rotation | 60 | public virtual Quaternion Rotation |
61 | { | 61 | { |
62 | get | 62 | get |
63 | { | 63 | { |
@@ -86,7 +86,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
86 | 86 | ||
87 | m_pos = new LLVector3(); | 87 | m_pos = new LLVector3(); |
88 | m_velocity = new LLVector3(); | 88 | m_velocity = new LLVector3(); |
89 | rotation = new Quaternion(); | 89 | Rotation = new Quaternion(); |
90 | m_name = "(basic entity)"; | 90 | m_name = "(basic entity)"; |
91 | children = new List<EntityBase>(); | 91 | children = new List<EntityBase>(); |
92 | } | 92 | } |
diff --git a/OpenSim/Region/Environment/Scenes/Primitive.cs b/OpenSim/Region/Environment/Scenes/Primitive.cs index 05bb1f9..d23a569 100644 --- a/OpenSim/Region/Environment/Scenes/Primitive.cs +++ b/OpenSim/Region/Environment/Scenes/Primitive.cs | |||
@@ -83,7 +83,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
83 | { | 83 | { |
84 | Primitive parentPrim = (Primitive)this.m_Parent; | 84 | Primitive parentPrim = (Primitive)this.m_Parent; |
85 | Axiom.Math.Vector3 offsetPos = new Vector3(this.m_pos.X, this.m_pos.Y, this.m_pos.Z); | 85 | Axiom.Math.Vector3 offsetPos = new Vector3(this.m_pos.X, this.m_pos.Y, this.m_pos.Z); |
86 | offsetPos = parentPrim.rotation * offsetPos; | 86 | offsetPos = parentPrim.Rotation * offsetPos; |
87 | return parentPrim.WorldPos + new LLVector3(offsetPos.x, offsetPos.y, offsetPos.z); | 87 | return parentPrim.WorldPos + new LLVector3(offsetPos.x, offsetPos.y, offsetPos.z); |
88 | } | 88 | } |
89 | else | 89 | else |
@@ -139,7 +139,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
139 | this.m_isRootPrim = isRoot; | 139 | this.m_isRootPrim = isRoot; |
140 | this.m_RootParent = rootObject; | 140 | this.m_RootParent = rootObject; |
141 | this.CreateFromPacket(addPacket, ownerID, localID); | 141 | this.CreateFromPacket(addPacket, ownerID, localID); |
142 | this.rotation = Axiom.Math.Quaternion.Identity; | 142 | this.Rotation = Axiom.Math.Quaternion.Identity; |
143 | } | 143 | } |
144 | 144 | ||
145 | /// <summary> | 145 | /// <summary> |
@@ -169,7 +169,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
169 | dupe.LocalId = newLocalID; | 169 | dupe.LocalId = newLocalID; |
170 | 170 | ||
171 | dupe.Scale = new LLVector3(this.Scale.X, this.Scale.Y, this.Scale.Z); | 171 | dupe.Scale = new LLVector3(this.Scale.X, this.Scale.Y, this.Scale.Z); |
172 | dupe.rotation = new Quaternion(this.rotation.w, this.rotation.x, this.rotation.y, this.rotation.z); | 172 | dupe.Rotation = new Quaternion(this.Rotation.w, this.Rotation.x, this.Rotation.y, this.Rotation.z); |
173 | dupe.Pos = new LLVector3(this.Pos.X, this.Pos.Y, this.Pos.Z); | 173 | dupe.Pos = new LLVector3(this.Pos.X, this.Pos.Y, this.Pos.Z); |
174 | 174 | ||
175 | return dupe; | 175 | return dupe; |
@@ -278,10 +278,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
278 | this.m_RootParent.AddChildToList(this); | 278 | this.m_RootParent.AddChildToList(this); |
279 | this.Pos = oldPos; | 279 | this.Pos = oldPos; |
280 | Axiom.Math.Vector3 axPos = new Axiom.Math.Vector3(this.m_pos.X, m_pos.Y, m_pos.Z); | 280 | Axiom.Math.Vector3 axPos = new Axiom.Math.Vector3(this.m_pos.X, m_pos.Y, m_pos.Z); |
281 | axPos = this.m_Parent.rotation.Inverse() * axPos; | 281 | axPos = this.m_Parent.Rotation.Inverse() * axPos; |
282 | this.m_pos = new LLVector3(axPos.x, axPos.y, axPos.z); | 282 | this.m_pos = new LLVector3(axPos.x, axPos.y, axPos.z); |
283 | Axiom.Math.Quaternion oldRot = new Quaternion(this.rotation.w, this.rotation.x, this.rotation.y, this.rotation.z); | 283 | Axiom.Math.Quaternion oldRot = new Quaternion(this.Rotation.w, this.Rotation.x, this.Rotation.y, this.Rotation.z); |
284 | this.rotation = this.m_Parent.rotation.Inverse() * this.rotation; | 284 | this.Rotation = this.m_Parent.Rotation.Inverse() * this.Rotation; |
285 | this.updateFlag = 1; | 285 | this.updateFlag = 1; |
286 | 286 | ||
287 | foreach (Primitive child in children) | 287 | foreach (Primitive child in children) |
@@ -304,7 +304,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
304 | axOldPos = oldParentRotation * axOldPos; | 304 | axOldPos = oldParentRotation * axOldPos; |
305 | oldPos = new LLVector3(axOldPos.x, axOldPos.y, axOldPos.z); | 305 | oldPos = new LLVector3(axOldPos.x, axOldPos.y, axOldPos.z); |
306 | oldPos += oldParentPosition; | 306 | oldPos += oldParentPosition; |
307 | Axiom.Math.Quaternion oldRot = new Quaternion(this.rotation.w, this.rotation.x, this.rotation.y, this.rotation.z); | 307 | Axiom.Math.Quaternion oldRot = new Quaternion(this.Rotation.w, this.Rotation.x, this.Rotation.y, this.Rotation.z); |
308 | this.m_isRootPrim = false; | 308 | this.m_isRootPrim = false; |
309 | this.m_Parent = newParent; | 309 | this.m_Parent = newParent; |
310 | this.ParentID = newParent.LocalId; | 310 | this.ParentID = newParent.LocalId; |
@@ -313,10 +313,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
313 | this.m_RootParent.AddChildToList(this); | 313 | this.m_RootParent.AddChildToList(this); |
314 | this.Pos = oldPos; | 314 | this.Pos = oldPos; |
315 | Axiom.Math.Vector3 axPos = new Axiom.Math.Vector3(this.m_pos.X, m_pos.Y, m_pos.Z); | 315 | Axiom.Math.Vector3 axPos = new Axiom.Math.Vector3(this.m_pos.X, m_pos.Y, m_pos.Z); |
316 | axPos = this.m_Parent.rotation.Inverse() * axPos; | 316 | axPos = this.m_Parent.Rotation.Inverse() * axPos; |
317 | this.m_pos = new LLVector3(axPos.x, axPos.y, axPos.z); | 317 | this.m_pos = new LLVector3(axPos.x, axPos.y, axPos.z); |
318 | this.rotation = oldParentRotation * this.rotation; | 318 | this.Rotation = oldParentRotation * this.Rotation; |
319 | this.rotation = this.m_Parent.rotation.Inverse()* this.rotation ; | 319 | this.Rotation = this.m_Parent.Rotation.Inverse()* this.Rotation ; |
320 | this.updateFlag = 1; | 320 | this.updateFlag = 1; |
321 | foreach (Primitive child in children) | 321 | foreach (Primitive child in children) |
322 | { | 322 | { |
@@ -401,7 +401,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
401 | LLVector3 oldPos = new LLVector3(Pos.X, Pos.Y, Pos.Z); | 401 | LLVector3 oldPos = new LLVector3(Pos.X, Pos.Y, Pos.Z); |
402 | LLVector3 diff = oldPos - newPos; | 402 | LLVector3 diff = oldPos - newPos; |
403 | Axiom.Math.Vector3 axDiff = new Vector3(diff.X, diff.Y, diff.Z); | 403 | Axiom.Math.Vector3 axDiff = new Vector3(diff.X, diff.Y, diff.Z); |
404 | axDiff = this.rotation.Inverse() * axDiff; | 404 | axDiff = this.Rotation.Inverse() * axDiff; |
405 | diff.X = axDiff.x; | 405 | diff.X = axDiff.x; |
406 | diff.Y = axDiff.y; | 406 | diff.Y = axDiff.y; |
407 | diff.Z = axDiff.z; | 407 | diff.Z = axDiff.z; |
@@ -431,7 +431,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
431 | /// <param name="rot"></param> | 431 | /// <param name="rot"></param> |
432 | public void UpdateGroupRotation(LLQuaternion rot) | 432 | public void UpdateGroupRotation(LLQuaternion rot) |
433 | { | 433 | { |
434 | this.rotation = new Axiom.Math.Quaternion(rot.W, rot.X, rot.Y, rot.Z); | 434 | this.Rotation = new Axiom.Math.Quaternion(rot.W, rot.X, rot.Y, rot.Z); |
435 | this.updateFlag = 2; | 435 | this.updateFlag = 2; |
436 | 436 | ||
437 | } | 437 | } |
@@ -443,7 +443,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
443 | /// <param name="rot"></param> | 443 | /// <param name="rot"></param> |
444 | public void UpdateGroupMouseRotation(LLVector3 pos, LLQuaternion rot) | 444 | public void UpdateGroupMouseRotation(LLVector3 pos, LLQuaternion rot) |
445 | { | 445 | { |
446 | this.rotation = new Axiom.Math.Quaternion(rot.W, rot.X, rot.Y, rot.Z); | 446 | this.Rotation = new Axiom.Math.Quaternion(rot.W, rot.X, rot.Y, rot.Z); |
447 | this.Pos = pos; | 447 | this.Pos = pos; |
448 | this.updateFlag = 2; | 448 | this.updateFlag = 2; |
449 | } | 449 | } |
@@ -456,16 +456,16 @@ namespace OpenSim.Region.Environment.Scenes | |||
456 | { | 456 | { |
457 | //Console.WriteLine("updating single prim rotation"); | 457 | //Console.WriteLine("updating single prim rotation"); |
458 | Axiom.Math.Quaternion axRot = new Axiom.Math.Quaternion(rot.W, rot.X, rot.Y, rot.Z); | 458 | Axiom.Math.Quaternion axRot = new Axiom.Math.Quaternion(rot.W, rot.X, rot.Y, rot.Z); |
459 | Axiom.Math.Quaternion oldParentRot = new Quaternion(this.rotation.w, this.rotation.x, this.rotation.y, this.rotation.z); | 459 | Axiom.Math.Quaternion oldParentRot = new Quaternion(this.Rotation.w, this.Rotation.x, this.Rotation.y, this.Rotation.z); |
460 | this.rotation = axRot; | 460 | this.Rotation = axRot; |
461 | foreach (Primitive prim in this.children) | 461 | foreach (Primitive prim in this.children) |
462 | { | 462 | { |
463 | Axiom.Math.Vector3 axPos = new Vector3(prim.m_pos.X, prim.m_pos.Y, prim.m_pos.Z); | 463 | Axiom.Math.Vector3 axPos = new Vector3(prim.m_pos.X, prim.m_pos.Y, prim.m_pos.Z); |
464 | axPos = oldParentRot * axPos; | 464 | axPos = oldParentRot * axPos; |
465 | axPos = axRot.Inverse() * axPos; | 465 | axPos = axRot.Inverse() * axPos; |
466 | prim.m_pos = new LLVector3(axPos.x, axPos.y, axPos.z); | 466 | prim.m_pos = new LLVector3(axPos.x, axPos.y, axPos.z); |
467 | prim.rotation = oldParentRot * prim.rotation ; | 467 | prim.Rotation = oldParentRot * prim.Rotation ; |
468 | prim.rotation = axRot.Inverse()* prim.rotation; | 468 | prim.Rotation = axRot.Inverse()* prim.Rotation; |
469 | prim.updateFlag = 2; | 469 | prim.updateFlag = 2; |
470 | } | 470 | } |
471 | this.updateFlag = 2; | 471 | this.updateFlag = 2; |
@@ -528,7 +528,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
528 | LLVector3 lPos; | 528 | LLVector3 lPos; |
529 | lPos = this.Pos; | 529 | lPos = this.Pos; |
530 | LLQuaternion lRot; | 530 | LLQuaternion lRot; |
531 | lRot = new LLQuaternion(this.rotation.x, this.rotation.y, this.rotation.z, this.rotation.w); | 531 | lRot = new LLQuaternion(this.Rotation.x, this.Rotation.y, this.Rotation.z, this.Rotation.w); |
532 | 532 | ||
533 | remoteClient.SendPrimitiveToClient(this.m_regionHandle, 64096, this.LocalId, this.m_Shape, lPos, lRot, new LLUUID("00000000-0000-0000-9999-000000000005"), this.m_flags, this.uuid, this.OwnerID, this.Text, this.ParentID); | 533 | remoteClient.SendPrimitiveToClient(this.m_regionHandle, 64096, this.LocalId, this.m_Shape, lPos, lRot, new LLUUID("00000000-0000-0000-9999-000000000005"), this.m_flags, this.uuid, this.OwnerID, this.Text, this.ParentID); |
534 | } | 534 | } |
@@ -571,7 +571,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
571 | Quaternion lRot; | 571 | Quaternion lRot; |
572 | 572 | ||
573 | lPos = this.Pos; | 573 | lPos = this.Pos; |
574 | lRot = this.rotation; | 574 | lRot = this.Rotation; |
575 | 575 | ||
576 | LLQuaternion mRot = new LLQuaternion(lRot.x, lRot.y, lRot.z, lRot.w); | 576 | LLQuaternion mRot = new LLQuaternion(lRot.x, lRot.y, lRot.z, lRot.w); |
577 | RemoteClient.SendPrimTerseUpdate(this.m_regionHandle, 64096, this.LocalId, lPos, mRot); | 577 | RemoteClient.SendPrimTerseUpdate(this.m_regionHandle, 64096, this.LocalId, lPos, mRot); |
diff --git a/OpenSim/Region/Environment/Scenes/PrimitiveOld.cs b/OpenSim/Region/Environment/Scenes/PrimitiveOld.cs index 4933b01..91a4162 100644 --- a/OpenSim/Region/Environment/Scenes/PrimitiveOld.cs +++ b/OpenSim/Region/Environment/Scenes/PrimitiveOld.cs | |||
@@ -445,7 +445,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
445 | else | 445 | else |
446 | { | 446 | { |
447 | lPos = this.Pos; | 447 | lPos = this.Pos; |
448 | lRot = this.rotation; | 448 | lRot = this.Rotation; |
449 | } | 449 | } |
450 | LLQuaternion mRot = new LLQuaternion(lRot.x, lRot.y, lRot.z, lRot.w); | 450 | LLQuaternion mRot = new LLQuaternion(lRot.x, lRot.y, lRot.z, lRot.w); |
451 | RemoteClient.SendPrimTerseUpdate(this.m_regionHandle, 64096, this.LocalId, lPos, mRot); | 451 | RemoteClient.SendPrimTerseUpdate(this.m_regionHandle, 64096, this.LocalId, lPos, mRot); |
diff --git a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs index e64e147..69eaa75 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs | |||
@@ -164,7 +164,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
164 | case 1: // Say | 164 | case 1: // Say |
165 | if ((dis < 30) && (dis > -30)) | 165 | if ((dis < 30) && (dis > -30)) |
166 | { | 166 | { |
167 | Console.WriteLine("sending chat"); | 167 | //Console.WriteLine("sending chat"); |
168 | client.SendChatMessage(message, type, fromPos, fromName, | 168 | client.SendChatMessage(message, type, fromPos, fromName, |
169 | fromAgentID); | 169 | fromAgentID); |
170 | } | 170 | } |
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs index 81c56c4..cd81384 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.cs | |||
@@ -685,15 +685,12 @@ namespace OpenSim.Region.Environment.Scenes | |||
685 | /// </summary> | 685 | /// </summary> |
686 | public void InformClientOfNeighbours(IClientAPI remoteClient) | 686 | public void InformClientOfNeighbours(IClientAPI remoteClient) |
687 | { | 687 | { |
688 | // Console.WriteLine("informing client of neighbouring regions"); | ||
689 | List<RegionInfo> neighbours = this.commsManager.GridServer.RequestNeighbours(this.m_regInfo); | 688 | List<RegionInfo> neighbours = this.commsManager.GridServer.RequestNeighbours(this.m_regInfo); |
690 | 689 | ||
691 | //Console.WriteLine("we have " + neighbours.Count + " neighbouring regions"); | ||
692 | if (neighbours != null) | 690 | if (neighbours != null) |
693 | { | 691 | { |
694 | for (int i = 0; i < neighbours.Count; i++) | 692 | for (int i = 0; i < neighbours.Count; i++) |
695 | { | 693 | { |
696 | // Console.WriteLine("sending neighbours data"); | ||
697 | AgentCircuitData agent = remoteClient.RequestClientInfo(); | 694 | AgentCircuitData agent = remoteClient.RequestClientInfo(); |
698 | agent.BaseFolder = LLUUID.Zero; | 695 | agent.BaseFolder = LLUUID.Zero; |
699 | agent.InventoryFolder = LLUUID.Zero; | 696 | agent.InventoryFolder = LLUUID.Zero; |
diff --git a/OpenSim/Region/Environment/Scenes/ScenePresence.cs b/OpenSim/Region/Environment/Scenes/ScenePresence.cs index b0e7710..7330bc5 100644 --- a/OpenSim/Region/Environment/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Environment/Scenes/ScenePresence.cs | |||
@@ -124,7 +124,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
124 | Wearables = AvatarWearable.DefaultWearables; | 124 | Wearables = AvatarWearable.DefaultWearables; |
125 | Animations = new ScenePresence.AvatarAnimations(); | 125 | Animations = new ScenePresence.AvatarAnimations(); |
126 | Animations.LoadAnims(); | 126 | Animations.LoadAnims(); |
127 | 127 | ||
128 | this.avatarAppearanceTexture = new LLObject.TextureEntry(new LLUUID("00000000-0000-0000-5005-000000000005")); | 128 | this.avatarAppearanceTexture = new LLObject.TextureEntry(new LLUUID("00000000-0000-0000-5005-000000000005")); |
129 | 129 | ||
130 | //register for events | 130 | //register for events |
@@ -160,7 +160,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
160 | { | 160 | { |
161 | this.Velocity = new LLVector3(0, 0, 0); | 161 | this.Velocity = new LLVector3(0, 0, 0); |
162 | this.Pos = new LLVector3(128, 128, 70); | 162 | this.Pos = new LLVector3(128, 128, 70); |
163 | 163 | ||
164 | } | 164 | } |
165 | } | 165 | } |
166 | 166 | ||
@@ -276,25 +276,31 @@ namespace OpenSim.Region.Environment.Scenes | |||
276 | { | 276 | { |
277 | this.AddNewMovement(agent_control_v3, q); | 277 | this.AddNewMovement(agent_control_v3, q); |
278 | } | 278 | } |
279 | UpdateMovementAnimations(update_movementflag); | 279 | UpdateMovementAnimations(update_movementflag); |
280 | } | 280 | } |
281 | 281 | ||
282 | protected void UpdateMovementAnimations(bool update_movementflag) | 282 | protected void UpdateMovementAnimations(bool update_movementflag) |
283 | { | 283 | { |
284 | if (update_movementflag) | 284 | if (update_movementflag) |
285 | { | 285 | { |
286 | if (movementflag != 0) { | 286 | if (movementflag != 0) |
287 | if (this._physActor.Flying) { | 287 | { |
288 | this.SendAnimPack(Animations.AnimsLLUUID["FLY"], 1); | 288 | if (this._physActor.Flying) |
289 | } else { | 289 | { |
290 | this.SendAnimPack(Animations.AnimsLLUUID["WALK"], 1); | 290 | this.SendAnimPack(Animations.AnimsLLUUID["FLY"], 1); |
291 | } | 291 | } |
292 | } else { | 292 | else |
293 | this.SendAnimPack(Animations.AnimsLLUUID["STAND"], 1); | 293 | { |
294 | } | 294 | this.SendAnimPack(Animations.AnimsLLUUID["WALK"], 1); |
295 | } | 295 | } |
296 | 296 | } | |
297 | } | 297 | else |
298 | { | ||
299 | this.SendAnimPack(Animations.AnimsLLUUID["STAND"], 1); | ||
300 | } | ||
301 | } | ||
302 | |||
303 | } | ||
298 | 304 | ||
299 | 305 | ||
300 | protected void AddNewMovement(Vector3 vec, Quaternion rotation) | 306 | protected void AddNewMovement(Vector3 vec, Quaternion rotation) |
@@ -423,13 +429,13 @@ namespace OpenSim.Region.Environment.Scenes | |||
423 | /// <param name="seq"></param> | 429 | /// <param name="seq"></param> |
424 | public void SendAnimPack(LLUUID animID, int seq) | 430 | public void SendAnimPack(LLUUID animID, int seq) |
425 | { | 431 | { |
426 | this.current_anim = animID; | 432 | this.current_anim = animID; |
427 | this.anim_seq = anim_seq; | 433 | this.anim_seq = anim_seq; |
428 | List<ScenePresence> avatars = this.m_world.RequestAvatarList(); | 434 | List<ScenePresence> avatars = this.m_world.RequestAvatarList(); |
429 | for (int i = 0; i < avatars.Count; i++) | 435 | for (int i = 0; i < avatars.Count; i++) |
430 | { | 436 | { |
431 | avatars[i].ControllingClient.SendAnimation(animID, seq, this.ControllingClient.AgentId); | 437 | avatars[i].ControllingClient.SendAnimation(animID, seq, this.ControllingClient.AgentId); |
432 | } | 438 | } |
433 | } | 439 | } |
434 | 440 | ||
435 | /// <summary> | 441 | /// <summary> |
@@ -437,7 +443,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
437 | /// </summary> | 443 | /// </summary> |
438 | public void SendAnimPack() | 444 | public void SendAnimPack() |
439 | { | 445 | { |
440 | this.SendAnimPack(this.current_anim, this.anim_seq); | 446 | this.SendAnimPack(this.current_anim, this.anim_seq); |
441 | } | 447 | } |
442 | #endregion | 448 | #endregion |
443 | 449 | ||
@@ -506,7 +512,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
506 | if (res) | 512 | if (res) |
507 | { | 513 | { |
508 | this.MakeChildAgent(); | 514 | this.MakeChildAgent(); |
509 | this.ControllingClient.CrossRegion(neighbourHandle, newpos, vel, neighbourRegion.InternalEndPoint ); | 515 | this.ControllingClient.CrossRegion(neighbourHandle, newpos, vel, neighbourRegion.InternalEndPoint); |
510 | } | 516 | } |
511 | } | 517 | } |
512 | } | 518 | } |
diff --git a/OpenSim/Region/Examples/SimpleApp/Program.cs b/OpenSim/Region/Examples/SimpleApp/Program.cs index 5cfc769..87e877c 100644 --- a/OpenSim/Region/Examples/SimpleApp/Program.cs +++ b/OpenSim/Region/Examples/SimpleApp/Program.cs | |||
@@ -47,13 +47,13 @@ namespace SimpleApp | |||
47 | udpServer.ServerListener(); | 47 | udpServer.ServerListener(); |
48 | 48 | ||
49 | ClientView.TerrainManager = new TerrainManager(new SecondLife()); | 49 | ClientView.TerrainManager = new TerrainManager(new SecondLife()); |
50 | BaseHttpServer httpServer = new BaseHttpServer(internalEndPoint.Port); | ||
50 | 51 | ||
51 | NetworkServersInfo serverInfo = new NetworkServersInfo(); | 52 | NetworkServersInfo serverInfo = new NetworkServersInfo(); |
52 | CommunicationsLocal communicationsManager = new CommunicationsLocal(serverInfo); | 53 | CommunicationsLocal communicationsManager = new CommunicationsLocal(serverInfo, httpServer); |
53 | 54 | ||
54 | RegionInfo regionInfo = new RegionInfo( 1000, 1000, internalEndPoint, "127.0.0.1" ); | 55 | RegionInfo regionInfo = new RegionInfo( 1000, 1000, internalEndPoint, "127.0.0.1" ); |
55 | 56 | ||
56 | BaseHttpServer httpServer = new BaseHttpServer( internalEndPoint.Port ); | ||
57 | MyWorld world = new MyWorld(packetServer.ClientManager, regionInfo, m_circuitManager, communicationsManager, assetCache, httpServer); | 57 | MyWorld world = new MyWorld(packetServer.ClientManager, regionInfo, m_circuitManager, communicationsManager, assetCache, httpServer); |
58 | world.PhysScene = PhysicsScene.Null; | 58 | world.PhysScene = PhysicsScene.Null; |
59 | udpServer.LocalWorld = world; | 59 | udpServer.LocalWorld = world; |