diff options
number of changes
Diffstat (limited to 'OpenSim')
-rw-r--r-- | OpenSim/OpenSim.Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs | 6 | ||||
-rw-r--r-- | OpenSim/OpenSim.RegionServer/ClientView.API.cs | 198 | ||||
-rw-r--r-- | OpenSim/OpenSim.RegionServer/ClientView.cs | 22 | ||||
-rw-r--r-- | OpenSim/OpenSim.RegionServer/RegionServerBase.cs | 2 | ||||
-rw-r--r-- | OpenSim/OpenSim.RegionServer/VersionInfo.cs | 2 | ||||
-rw-r--r-- | OpenSim/OpenSim.World/Avatar.cs | 40 | ||||
-rw-r--r-- | OpenSim/OpenSim.World/World.cs | 9 | ||||
-rw-r--r-- | OpenSim/OpenSim.World/WorldBase.cs | 8 | ||||
-rw-r--r-- | OpenSim/OpenSim/OpenSimMain.cs | 50 |
9 files changed, 278 insertions, 59 deletions
diff --git a/OpenSim/OpenSim.Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs b/OpenSim/OpenSim.Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs index 54be853..69f5915 100644 --- a/OpenSim/OpenSim.Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs +++ b/OpenSim/OpenSim.Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs | |||
@@ -49,11 +49,7 @@ namespace OpenSim.Physics.BasicPhysicsPlugin | |||
49 | 49 | ||
50 | public PhysicsScene GetScene() | 50 | public PhysicsScene GetScene() |
51 | { | 51 | { |
52 | if(_mScene == null) | 52 | return new BasicScene(); |
53 | { | ||
54 | _mScene = new BasicScene(); | ||
55 | } | ||
56 | return(_mScene); | ||
57 | } | 53 | } |
58 | 54 | ||
59 | public string GetName() | 55 | public string GetName() |
diff --git a/OpenSim/OpenSim.RegionServer/ClientView.API.cs b/OpenSim/OpenSim.RegionServer/ClientView.API.cs index 579928c..55ff8a1 100644 --- a/OpenSim/OpenSim.RegionServer/ClientView.API.cs +++ b/OpenSim/OpenSim.RegionServer/ClientView.API.cs | |||
@@ -3,6 +3,7 @@ using System.Collections.Generic; | |||
3 | using System.Text; | 3 | using System.Text; |
4 | using OpenSim.Framework.Interfaces; | 4 | using OpenSim.Framework.Interfaces; |
5 | using OpenSim.Framework.Inventory; | 5 | using OpenSim.Framework.Inventory; |
6 | using OpenSim.Framework.Types; | ||
6 | using libsecondlife; | 7 | using libsecondlife; |
7 | using libsecondlife.Packets; | 8 | using libsecondlife.Packets; |
8 | 9 | ||
@@ -32,6 +33,8 @@ namespace OpenSim | |||
32 | public event UpdatePrimVector OnUpdatePrimScale; | 33 | public event UpdatePrimVector OnUpdatePrimScale; |
33 | public event StatusChange OnChildAgentStatus; | 34 | public event StatusChange OnChildAgentStatus; |
34 | public event GenericCall2 OnStopMovement; | 35 | public event GenericCall2 OnStopMovement; |
36 | public event NewAvatar OnNewAvatar; | ||
37 | public event GenericCall6 OnRemoveAvatar; | ||
35 | 38 | ||
36 | public LLVector3 StartPos | 39 | public LLVector3 StartPos |
37 | { | 40 | { |
@@ -70,7 +73,7 @@ namespace OpenSim | |||
70 | this.OutPacket(reply); | 73 | this.OutPacket(reply); |
71 | } | 74 | } |
72 | 75 | ||
73 | public void SendAppearance(AvatarWearable[] wearables) | 76 | public void SendWearables(AvatarWearable[] wearables) |
74 | { | 77 | { |
75 | AgentWearablesUpdatePacket aw = new AgentWearablesUpdatePacket(); | 78 | AgentWearablesUpdatePacket aw = new AgentWearablesUpdatePacket(); |
76 | aw.AgentData.AgentID = this.AgentID; | 79 | aw.AgentData.AgentID = this.AgentID; |
@@ -90,6 +93,199 @@ namespace OpenSim | |||
90 | 93 | ||
91 | this.OutPacket(aw); | 94 | this.OutPacket(aw); |
92 | } | 95 | } |
96 | |||
97 | public void SendAppearance(LLUUID agentID, byte[] visualParams, byte[] textureEntry) | ||
98 | { | ||
99 | AvatarAppearancePacket avp = new AvatarAppearancePacket(); | ||
100 | avp.VisualParam = new AvatarAppearancePacket.VisualParamBlock[218]; | ||
101 | avp.ObjectData.TextureEntry = textureEntry; | ||
102 | |||
103 | AvatarAppearancePacket.VisualParamBlock avblock = null; | ||
104 | for (int i = 0; i < 218; i++) | ||
105 | { | ||
106 | avblock = new AvatarAppearancePacket.VisualParamBlock(); | ||
107 | avblock.ParamValue = visualParams[i]; | ||
108 | avp.VisualParam[i] = avblock; | ||
109 | } | ||
110 | |||
111 | avp.Sender.IsTrial = false; | ||
112 | avp.Sender.ID = agentID; | ||
113 | OutPacket(avp); | ||
114 | } | ||
115 | |||
116 | /// <summary> | ||
117 | /// Send the region heightmap to the client | ||
118 | /// </summary> | ||
119 | /// <param name="map">heightmap</param> | ||
120 | public virtual void SendLayerData(float[] map) | ||
121 | { | ||
122 | try | ||
123 | { | ||
124 | int[] patches = new int[4]; | ||
125 | |||
126 | for (int y = 0; y < 16; y++) | ||
127 | { | ||
128 | for (int x = 0; x < 16; x = x + 4) | ||
129 | { | ||
130 | patches[0] = x + 0 + y * 16; | ||
131 | patches[1] = x + 1 + y * 16; | ||
132 | patches[2] = x + 2 + y * 16; | ||
133 | patches[3] = x + 3 + y * 16; | ||
134 | |||
135 | Packet layerpack = TerrainManager.CreateLandPacket(map, patches); | ||
136 | OutPacket(layerpack); | ||
137 | } | ||
138 | } | ||
139 | } | ||
140 | catch (Exception e) | ||
141 | { | ||
142 | OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.MEDIUM, "ClientView API.cs: SendLayerData() - Failed with exception " + e.ToString()); | ||
143 | } | ||
144 | } | ||
145 | |||
146 | /// <summary> | ||
147 | /// Sends a specified patch to a client | ||
148 | /// </summary> | ||
149 | /// <param name="px">Patch coordinate (x) 0..16</param> | ||
150 | /// <param name="py">Patch coordinate (y) 0..16</param> | ||
151 | /// <param name="map">heightmap</param> | ||
152 | public void SendLayerData(int px, int py, float[] map) | ||
153 | { | ||
154 | try | ||
155 | { | ||
156 | int[] patches = new int[1]; | ||
157 | int patchx, patchy; | ||
158 | patchx = px / 16; | ||
159 | patchy = py / 16; | ||
160 | |||
161 | patches[0] = patchx + 0 + patchy * 16; | ||
162 | |||
163 | Packet layerpack = TerrainManager.CreateLandPacket(map, patches); | ||
164 | OutPacket(layerpack); | ||
165 | } | ||
166 | catch (Exception e) | ||
167 | { | ||
168 | OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.MEDIUM, "ClientView API .cs: SendLayerData() - Failed with exception " + e.ToString()); | ||
169 | } | ||
170 | } | ||
171 | |||
172 | public void SendRegionHandshake(RegionInfo regionInfo) | ||
173 | { | ||
174 | OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.VERBOSE, "Avatar.cs:SendRegionHandshake() - Creating empty RegionHandshake packet"); | ||
175 | System.Text.Encoding _enc = System.Text.Encoding.ASCII; | ||
176 | RegionHandshakePacket handshake = new RegionHandshakePacket(); | ||
177 | |||
178 | OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.VERBOSE, "Avatar.cs:SendRegionhandshake() - Filling in RegionHandshake details"); | ||
179 | handshake.RegionInfo.BillableFactor = 0; | ||
180 | handshake.RegionInfo.IsEstateManager = false; | ||
181 | handshake.RegionInfo.TerrainHeightRange00 = regionInfo.TerrainHeightRange00; | ||
182 | handshake.RegionInfo.TerrainHeightRange01 = regionInfo.TerrainHeightRange01; | ||
183 | handshake.RegionInfo.TerrainHeightRange10 = regionInfo.TerrainHeightRange10; | ||
184 | handshake.RegionInfo.TerrainHeightRange11 = regionInfo.TerrainHeightRange11; | ||
185 | handshake.RegionInfo.TerrainStartHeight00 = regionInfo.TerrainStartHeight00; | ||
186 | handshake.RegionInfo.TerrainStartHeight01 = regionInfo.TerrainStartHeight01; | ||
187 | handshake.RegionInfo.TerrainStartHeight10 = regionInfo.TerrainStartHeight10; | ||
188 | handshake.RegionInfo.TerrainStartHeight11 = regionInfo.TerrainStartHeight11; | ||
189 | handshake.RegionInfo.SimAccess = 13; | ||
190 | handshake.RegionInfo.WaterHeight = regionInfo.RegionWaterHeight; | ||
191 | uint regionFlags = 72458694; | ||
192 | if (regionInfo.RegionTerraform) | ||
193 | { | ||
194 | regionFlags -= 64; | ||
195 | } | ||
196 | handshake.RegionInfo.RegionFlags = regionFlags; | ||
197 | handshake.RegionInfo.SimName = _enc.GetBytes(regionInfo.RegionName + "\0"); | ||
198 | handshake.RegionInfo.SimOwner = new LLUUID("00000000-0000-0000-0000-000000000000"); | ||
199 | handshake.RegionInfo.TerrainBase0 = regionInfo.TerrainBase0; | ||
200 | handshake.RegionInfo.TerrainBase1 = regionInfo.TerrainBase1; | ||
201 | handshake.RegionInfo.TerrainBase2 = regionInfo.TerrainBase2; | ||
202 | handshake.RegionInfo.TerrainBase3 = regionInfo.TerrainBase3; | ||
203 | handshake.RegionInfo.TerrainDetail0 = regionInfo.TerrainDetail0; | ||
204 | handshake.RegionInfo.TerrainDetail1 = regionInfo.TerrainDetail1; | ||
205 | handshake.RegionInfo.TerrainDetail2 = regionInfo.TerrainDetail2; | ||
206 | handshake.RegionInfo.TerrainDetail3 = regionInfo.TerrainDetail3; | ||
207 | handshake.RegionInfo.CacheID = new LLUUID("545ec0a5-5751-1026-8a0b-216e38a7ab37"); | ||
208 | |||
209 | OutPacket(handshake); | ||
210 | } | ||
211 | |||
212 | public void SendAvatarData(RegionInfo regionInfo, string firstName, string lastName, LLUUID avatarID, uint avatarLocalID, LLVector3 Pos) | ||
213 | { | ||
214 | System.Text.Encoding _enc = System.Text.Encoding.ASCII; | ||
215 | //send a objectupdate packet with information about the clients avatar | ||
216 | |||
217 | ObjectUpdatePacket objupdate = new ObjectUpdatePacket(); | ||
218 | objupdate.RegionData.RegionHandle = regionInfo.RegionHandle; | ||
219 | objupdate.RegionData.TimeDilation = 64096; | ||
220 | objupdate.ObjectData = new libsecondlife.Packets.ObjectUpdatePacket.ObjectDataBlock[1]; | ||
221 | objupdate.ObjectData[0] = this.CreateDefaultAvatarPacket(); | ||
222 | //give this avatar object a local id and assign the user a name | ||
223 | |||
224 | objupdate.ObjectData[0].ID = avatarLocalID; | ||
225 | objupdate.ObjectData[0].FullID = avatarID; | ||
226 | objupdate.ObjectData[0].NameValue = _enc.GetBytes("FirstName STRING RW SV " + firstName + "\nLastName STRING RW SV " + lastName + " \0"); | ||
227 | libsecondlife.LLVector3 pos2 = new LLVector3((float)Pos.X, (float)Pos.Y, (float)Pos.Z); | ||
228 | byte[] pb = pos2.GetBytes(); | ||
229 | Array.Copy(pb, 0, objupdate.ObjectData[0].ObjectData, 16, pb.Length); | ||
230 | |||
231 | OutPacket(objupdate); | ||
232 | |||
233 | } | ||
234 | |||
235 | protected void SetDefaultPacketValues(ref ObjectUpdatePacket.ObjectDataBlock objdata) | ||
236 | { | ||
237 | objdata.PSBlock = new byte[0]; | ||
238 | objdata.ExtraParams = new byte[1]; | ||
239 | objdata.MediaURL = new byte[0]; | ||
240 | objdata.NameValue = new byte[0]; | ||
241 | objdata.Text = new byte[0]; | ||
242 | objdata.TextColor = new byte[4]; | ||
243 | objdata.JointAxisOrAnchor = new LLVector3(0, 0, 0); | ||
244 | objdata.JointPivot = new LLVector3(0, 0, 0); | ||
245 | objdata.Material = 4; | ||
246 | objdata.TextureAnim = new byte[0]; | ||
247 | objdata.Sound = LLUUID.Zero; | ||
248 | LLObject.TextureEntry ntex = new LLObject.TextureEntry(new LLUUID("00000000-0000-0000-5005-000000000005")); | ||
249 | objdata.TextureEntry = ntex.ToBytes(); | ||
250 | objdata.State = 0; | ||
251 | objdata.Data = new byte[0]; | ||
252 | |||
253 | objdata.ObjectData = new byte[76]; | ||
254 | objdata.ObjectData[15] = 128; | ||
255 | objdata.ObjectData[16] = 63; | ||
256 | objdata.ObjectData[56] = 128; | ||
257 | objdata.ObjectData[61] = 102; | ||
258 | objdata.ObjectData[62] = 40; | ||
259 | objdata.ObjectData[63] = 61; | ||
260 | objdata.ObjectData[64] = 189; | ||
261 | } | ||
262 | |||
263 | protected ObjectUpdatePacket.ObjectDataBlock CreateDefaultAvatarPacket() | ||
264 | { | ||
265 | libsecondlife.Packets.ObjectUpdatePacket.ObjectDataBlock objdata = new ObjectUpdatePacket.ObjectDataBlock(); // new libsecondlife.Packets.ObjectUpdatePacket.ObjectDataBlock(data1, ref i); | ||
266 | |||
267 | SetDefaultPacketValues(ref objdata); | ||
268 | objdata.UpdateFlags = 61 + (9 << 8) + (130 << 16) + (16 << 24); | ||
269 | objdata.PathCurve = 16; | ||
270 | objdata.ProfileCurve = 1; | ||
271 | objdata.PathScaleX = 100; | ||
272 | objdata.PathScaleY = 100; | ||
273 | objdata.ParentID = 0; | ||
274 | objdata.OwnerID = LLUUID.Zero; | ||
275 | objdata.Scale = new LLVector3(1, 1, 1); | ||
276 | objdata.PCode = 47; | ||
277 | System.Text.Encoding enc = System.Text.Encoding.ASCII; | ||
278 | libsecondlife.LLVector3 pos = new LLVector3(objdata.ObjectData, 16); | ||
279 | pos.X = 100f; | ||
280 | objdata.ID = 8880000; | ||
281 | objdata.NameValue = enc.GetBytes("FirstName STRING RW SV Test \nLastName STRING RW SV User \0"); | ||
282 | libsecondlife.LLVector3 pos2 = new LLVector3(100f, 100f, 23f); | ||
283 | //objdata.FullID=user.AgentID; | ||
284 | byte[] pb = pos.GetBytes(); | ||
285 | Array.Copy(pb, 0, objdata.ObjectData, 16, pb.Length); | ||
286 | |||
287 | return objdata; | ||
288 | } | ||
93 | #endregion | 289 | #endregion |
94 | 290 | ||
95 | } | 291 | } |
diff --git a/OpenSim/OpenSim.RegionServer/ClientView.cs b/OpenSim/OpenSim.RegionServer/ClientView.cs index 0419b7a..4d1634c 100644 --- a/OpenSim/OpenSim.RegionServer/ClientView.cs +++ b/OpenSim/OpenSim.RegionServer/ClientView.cs | |||
@@ -52,12 +52,16 @@ namespace OpenSim | |||
52 | /// </summary> | 52 | /// </summary> |
53 | public partial class ClientView : ClientViewBase, IClientAPI | 53 | public partial class ClientView : ClientViewBase, IClientAPI |
54 | { | 54 | { |
55 | public static TerrainManager TerrainManager; | ||
56 | |||
55 | protected static Dictionary<PacketType, PacketMethod> PacketHandlers = new Dictionary<PacketType, PacketMethod>(); //Global/static handlers for all clients | 57 | protected static Dictionary<PacketType, PacketMethod> PacketHandlers = new Dictionary<PacketType, PacketMethod>(); //Global/static handlers for all clients |
56 | protected Dictionary<PacketType, PacketMethod> m_packetHandlers = new Dictionary<PacketType, PacketMethod>(); //local handlers for this instance | 58 | protected Dictionary<PacketType, PacketMethod> m_packetHandlers = new Dictionary<PacketType, PacketMethod>(); //local handlers for this instance |
57 | 59 | ||
58 | public LLUUID AgentID; | 60 | public LLUUID AgentID; |
59 | public LLUUID SessionID; | 61 | public LLUUID SessionID; |
60 | public LLUUID SecureSessionID = LLUUID.Zero; | 62 | public LLUUID SecureSessionID = LLUUID.Zero; |
63 | public string FirstName; | ||
64 | public string LastName; | ||
61 | public bool m_child = false; | 65 | public bool m_child = false; |
62 | private UseCircuitCodePacket cirpack; | 66 | private UseCircuitCodePacket cirpack; |
63 | public Thread ClientThread; | 67 | public Thread ClientThread; |
@@ -112,13 +116,9 @@ namespace OpenSim | |||
112 | { | 116 | { |
113 | OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "SimClient.cs:UpgradeClient() - upgrading child to full agent"); | 117 | OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "SimClient.cs:UpgradeClient() - upgrading child to full agent"); |
114 | this.m_child = false; | 118 | this.m_child = false; |
115 | //this.m_world.RemoveViewerAgent(this); | ||
116 | |||
117 | this.startpos = m_authenticateSessionsHandler.GetPosition(CircuitCode); | 119 | this.startpos = m_authenticateSessionsHandler.GetPosition(CircuitCode); |
118 | m_authenticateSessionsHandler.UpdateAgentChildStatus(CircuitCode, false); | 120 | m_authenticateSessionsHandler.UpdateAgentChildStatus(CircuitCode, false); |
119 | |||
120 | OnChildAgentStatus(this.m_child); | 121 | OnChildAgentStatus(this.m_child); |
121 | //this.InitNewClient(); | ||
122 | } | 122 | } |
123 | 123 | ||
124 | public void DowngradeClient() | 124 | public void DowngradeClient() |
@@ -126,8 +126,7 @@ namespace OpenSim | |||
126 | OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "SimClient.cs:UpgradeClient() - changing full agent to child"); | 126 | OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "SimClient.cs:UpgradeClient() - changing full agent to child"); |
127 | this.m_child = true; | 127 | this.m_child = true; |
128 | OnChildAgentStatus(this.m_child); | 128 | OnChildAgentStatus(this.m_child); |
129 | //this.m_world.RemoveViewerAgent(this); | 129 | |
130 | //this.m_world.AddViewerAgent(this); | ||
131 | } | 130 | } |
132 | 131 | ||
133 | public void KillClient() | 132 | public void KillClient() |
@@ -230,8 +229,8 @@ namespace OpenSim | |||
230 | 229 | ||
231 | protected virtual void InitNewClient() | 230 | protected virtual void InitNewClient() |
232 | { | 231 | { |
233 | OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "OpenSimClient.cs:InitNewClient() - Adding viewer agent to world"); | 232 | OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "OpenSimClient.cs:InitNewClient() - Adding viewer agent to world"); |
234 | // this.ClientAvatar = m_world.AddViewerAgent(this); | 233 | OnNewAvatar(this, this.AgentID, this.m_child); |
235 | } | 234 | } |
236 | 235 | ||
237 | protected virtual void AuthUser() | 236 | protected virtual void AuthUser() |
@@ -251,13 +250,14 @@ namespace OpenSim | |||
251 | this.AgentID = cirpack.CircuitCode.ID; | 250 | this.AgentID = cirpack.CircuitCode.ID; |
252 | this.SessionID = cirpack.CircuitCode.SessionID; | 251 | this.SessionID = cirpack.CircuitCode.SessionID; |
253 | this.CircuitCode = cirpack.CircuitCode.Code; | 252 | this.CircuitCode = cirpack.CircuitCode.Code; |
254 | InitNewClient(); | 253 | this.FirstName = sessionInfo.LoginInfo.First; |
255 | //this.ClientAvatar.firstname = sessionInfo.LoginInfo.First; | 254 | this.LastName = sessionInfo.LoginInfo.Last; |
256 | // this.ClientAvatar.lastname = sessionInfo.LoginInfo.Last; | 255 | |
257 | if (sessionInfo.LoginInfo.SecureSession != LLUUID.Zero) | 256 | if (sessionInfo.LoginInfo.SecureSession != LLUUID.Zero) |
258 | { | 257 | { |
259 | this.SecureSessionID = sessionInfo.LoginInfo.SecureSession; | 258 | this.SecureSessionID = sessionInfo.LoginInfo.SecureSession; |
260 | } | 259 | } |
260 | InitNewClient(); | ||
261 | 261 | ||
262 | ClientLoop(); | 262 | ClientLoop(); |
263 | } | 263 | } |
diff --git a/OpenSim/OpenSim.RegionServer/RegionServerBase.cs b/OpenSim/OpenSim.RegionServer/RegionServerBase.cs index 7f18d34..3b9c6e0 100644 --- a/OpenSim/OpenSim.RegionServer/RegionServerBase.cs +++ b/OpenSim/OpenSim.RegionServer/RegionServerBase.cs | |||
@@ -46,7 +46,7 @@ namespace OpenSim | |||
46 | protected List<RegionInfo> regionData = new List<RegionInfo>(); | 46 | protected List<RegionInfo> regionData = new List<RegionInfo>(); |
47 | protected List<IWorld> m_localWorld = new List<IWorld>(); | 47 | protected List<IWorld> m_localWorld = new List<IWorld>(); |
48 | protected BaseHttpServer httpServer; | 48 | protected BaseHttpServer httpServer; |
49 | protected AuthenticateSessionsBase AuthenticateSessionsHandler; | 49 | protected List<AuthenticateSessionsBase> AuthenticateSessionsHandler = new List<AuthenticateSessionsBase>(); |
50 | 50 | ||
51 | protected ConsoleBase m_console; | 51 | protected ConsoleBase m_console; |
52 | 52 | ||
diff --git a/OpenSim/OpenSim.RegionServer/VersionInfo.cs b/OpenSim/OpenSim.RegionServer/VersionInfo.cs index 38b6685..686024e 100644 --- a/OpenSim/OpenSim.RegionServer/VersionInfo.cs +++ b/OpenSim/OpenSim.RegionServer/VersionInfo.cs | |||
@@ -32,6 +32,6 @@ namespace OpenSim | |||
32 | /// </summary> | 32 | /// </summary> |
33 | public class VersionInfo | 33 | public class VersionInfo |
34 | { | 34 | { |
35 | public static string Version = "0.2, SVN build "; | 35 | public static string Version = "0.3, SVN build "; |
36 | } | 36 | } |
37 | } | 37 | } |
diff --git a/OpenSim/OpenSim.World/Avatar.cs b/OpenSim/OpenSim.World/Avatar.cs index 551283a..77c18bf 100644 --- a/OpenSim/OpenSim.World/Avatar.cs +++ b/OpenSim/OpenSim.World/Avatar.cs | |||
@@ -7,6 +7,7 @@ using libsecondlife.Packets; | |||
7 | using OpenSim.Physics.Manager; | 7 | using OpenSim.Physics.Manager; |
8 | using OpenSim.Framework.Inventory; | 8 | using OpenSim.Framework.Inventory; |
9 | using OpenSim.Framework.Interfaces; | 9 | using OpenSim.Framework.Interfaces; |
10 | using OpenSim.Framework.Types; | ||
10 | using Axiom.MathLib; | 11 | using Axiom.MathLib; |
11 | 12 | ||
12 | namespace OpenSim.world | 13 | namespace OpenSim.world |
@@ -40,13 +41,13 @@ namespace OpenSim.world | |||
40 | public Avatar(IClientAPI TheClient, World world, string regionName, Dictionary<uint, IClientAPI> clientThreads, ulong regionHandle, bool regionTerraform, ushort regionWater) | 41 | public Avatar(IClientAPI TheClient, World world, string regionName, Dictionary<uint, IClientAPI> clientThreads, ulong regionHandle, bool regionTerraform, ushort regionWater) |
41 | { | 42 | { |
42 | m_world = world; | 43 | m_world = world; |
43 | // m_clientThreads = clientThreads; | 44 | // m_clientThreads = clientThreads; |
44 | m_regionName = regionName; | 45 | m_regionName = regionName; |
45 | m_regionHandle = regionHandle; | 46 | m_regionHandle = regionHandle; |
46 | m_regionTerraform = regionTerraform; | 47 | m_regionTerraform = regionTerraform; |
47 | m_regionWaterHeight = regionWater; | 48 | m_regionWaterHeight = regionWater; |
48 | 49 | ||
49 | OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW,"Avatar.cs - Loading details from grid (DUMMY)"); | 50 | OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "Avatar.cs - Loading details from grid (DUMMY)"); |
50 | ControllingClient = TheClient; | 51 | ControllingClient = TheClient; |
51 | localid = 8880000 + (this.m_world._localNumber++); | 52 | localid = 8880000 + (this.m_world._localNumber++); |
52 | Pos = ControllingClient.StartPos; | 53 | Pos = ControllingClient.StartPos; |
@@ -65,6 +66,7 @@ namespace OpenSim.world | |||
65 | 66 | ||
66 | this.avatarAppearanceTexture = new LLObject.TextureEntry(new LLUUID("00000000-0000-0000-5005-000000000005")); | 67 | this.avatarAppearanceTexture = new LLObject.TextureEntry(new LLUUID("00000000-0000-0000-5005-000000000005")); |
67 | 68 | ||
69 | /* | ||
68 | //register for events | 70 | //register for events |
69 | ControllingClient.OnRequestWearables += new GenericCall(this.SendOurAppearance); | 71 | ControllingClient.OnRequestWearables += new GenericCall(this.SendOurAppearance); |
70 | ControllingClient.OnSetAppearance += new SetAppearance(this.SetAppearance); | 72 | ControllingClient.OnSetAppearance += new SetAppearance(this.SetAppearance); |
@@ -74,6 +76,7 @@ namespace OpenSim.world | |||
74 | ControllingClient.OnStartAnim += new StartAnim(this.SendAnimPack); | 76 | ControllingClient.OnStartAnim += new StartAnim(this.SendAnimPack); |
75 | ControllingClient.OnChildAgentStatus += new StatusChange(this.ChildStatusChange); | 77 | ControllingClient.OnChildAgentStatus += new StatusChange(this.ChildStatusChange); |
76 | ControllingClient.OnStopMovement += new GenericCall2(this.StopMovement); | 78 | ControllingClient.OnStopMovement += new GenericCall2(this.StopMovement); |
79 | * */ | ||
77 | } | 80 | } |
78 | 81 | ||
79 | public PhysicsActor PhysActor | 82 | public PhysicsActor PhysActor |
@@ -90,29 +93,29 @@ namespace OpenSim.world | |||
90 | 93 | ||
91 | public void ChildStatusChange(bool status) | 94 | public void ChildStatusChange(bool status) |
92 | { | 95 | { |
93 | 96 | ||
94 | } | 97 | } |
95 | 98 | ||
96 | public override void addForces() | 99 | public override void addForces() |
97 | { | 100 | { |
98 | 101 | ||
99 | } | 102 | } |
100 | 103 | ||
101 | public static void SetupTemplate(string name) | 104 | public static void SetupTemplate(string name) |
102 | { | 105 | { |
103 | 106 | ||
104 | } | 107 | } |
105 | 108 | ||
106 | protected static void SetDefaultPacketValues(ObjectUpdatePacket.ObjectDataBlock objdata) | 109 | protected static void SetDefaultPacketValues(ObjectUpdatePacket.ObjectDataBlock objdata) |
107 | { | 110 | { |
108 | 111 | ||
109 | 112 | ||
110 | 113 | ||
111 | } | 114 | } |
112 | 115 | ||
113 | public void CompleteMovement() | 116 | public void CompleteMovement() |
114 | { | 117 | { |
115 | 118 | ||
116 | } | 119 | } |
117 | 120 | ||
118 | public void HandleAgentUpdate(Packet pack) | 121 | public void HandleAgentUpdate(Packet pack) |
@@ -122,35 +125,36 @@ namespace OpenSim.world | |||
122 | 125 | ||
123 | public void HandleUpdate(AgentUpdatePacket pack) | 126 | public void HandleUpdate(AgentUpdatePacket pack) |
124 | { | 127 | { |
125 | 128 | ||
126 | } | 129 | } |
127 | 130 | ||
128 | //really really should be moved somewhere else (RegionInfo.cs ?) | 131 | //really really should be moved somewhere else (RegionInfo.cs ?) |
129 | public void SendRegionHandshake(World regionInfo) | 132 | public void SendRegionHandshake(World regionInfo) |
130 | { | 133 | { |
131 | 134 | ||
132 | } | 135 | } |
133 | 136 | ||
134 | public static void LoadAnims() | 137 | public static void LoadAnims() |
135 | { | 138 | { |
136 | 139 | ||
137 | } | 140 | } |
138 | 141 | ||
139 | public override void LandRenegerated() | 142 | public override void LandRenegerated() |
140 | { | 143 | { |
141 | 144 | ||
142 | } | 145 | } |
143 | } | ||
144 | 146 | ||
145 | public class NewForce | ||
146 | { | ||
147 | public float X; | ||
148 | public float Y; | ||
149 | public float Z; | ||
150 | 147 | ||
151 | public NewForce() | 148 | public class NewForce |
152 | { | 149 | { |
150 | public float X; | ||
151 | public float Y; | ||
152 | public float Z; | ||
153 | 153 | ||
154 | public NewForce() | ||
155 | { | ||
156 | |||
157 | } | ||
154 | } | 158 | } |
155 | } | 159 | } |
156 | 160 | ||
diff --git a/OpenSim/OpenSim.World/World.cs b/OpenSim/OpenSim.World/World.cs index 2580761..8c8c2a6 100644 --- a/OpenSim/OpenSim.World/World.cs +++ b/OpenSim/OpenSim.World/World.cs | |||
@@ -501,15 +501,14 @@ namespace OpenSim.world | |||
501 | 501 | ||
502 | #region Add/Remove Avatar Methods | 502 | #region Add/Remove Avatar Methods |
503 | 503 | ||
504 | public override bool AddNewAvatar(IClientAPI agentClient, bool child) | 504 | public override void AddNewAvatar(IClientAPI remoteClient, LLUUID agentID, bool child) |
505 | { | 505 | { |
506 | 506 | return ; | |
507 | return false; | ||
508 | } | 507 | } |
509 | 508 | ||
510 | public override bool RemoveAvatar(LLUUID agentID) | 509 | public override void RemoveAvatar(LLUUID agentID) |
511 | { | 510 | { |
512 | return false; | 511 | return ; |
513 | } | 512 | } |
514 | #endregion | 513 | #endregion |
515 | 514 | ||
diff --git a/OpenSim/OpenSim.World/WorldBase.cs b/OpenSim/OpenSim.World/WorldBase.cs index 33952bf..f8a4eda 100644 --- a/OpenSim/OpenSim.World/WorldBase.cs +++ b/OpenSim/OpenSim.World/WorldBase.cs | |||
@@ -137,14 +137,14 @@ namespace OpenSim.world | |||
137 | #endregion | 137 | #endregion |
138 | 138 | ||
139 | #region Add/Remove Agent/Avatar | 139 | #region Add/Remove Agent/Avatar |
140 | public virtual bool AddNewAvatar(IClientAPI remoteClient, bool child) | 140 | public virtual void AddNewAvatar(IClientAPI remoteClient, LLUUID agentID, bool child) |
141 | { | 141 | { |
142 | return false; | 142 | return ; |
143 | } | 143 | } |
144 | 144 | ||
145 | public virtual bool RemoveAvatar(LLUUID agentID) | 145 | public virtual void RemoveAvatar(LLUUID agentID) |
146 | { | 146 | { |
147 | return false; | 147 | return ; |
148 | } | 148 | } |
149 | 149 | ||
150 | #endregion | 150 | #endregion |
diff --git a/OpenSim/OpenSim/OpenSimMain.cs b/OpenSim/OpenSim/OpenSimMain.cs index aa41aeb..22a5799 100644 --- a/OpenSim/OpenSim/OpenSimMain.cs +++ b/OpenSim/OpenSim/OpenSimMain.cs | |||
@@ -96,18 +96,12 @@ namespace OpenSim | |||
96 | if (m_sandbox) | 96 | if (m_sandbox) |
97 | { | 97 | { |
98 | this.SetupLocalGridServers(); | 98 | this.SetupLocalGridServers(); |
99 | //Authenticate Session Handler | ||
100 | AuthenticateSessionsLocal authen = new AuthenticateSessionsLocal(); | ||
101 | this.AuthenticateSessionsHandler = authen; | ||
102 | this.checkServer = new CheckSumServer(12036); | 99 | this.checkServer = new CheckSumServer(12036); |
103 | this.checkServer.ServerListener(); | 100 | this.checkServer.ServerListener(); |
104 | } | 101 | } |
105 | else | 102 | else |
106 | { | 103 | { |
107 | this.SetupRemoteGridServers(); | 104 | this.SetupRemoteGridServers(); |
108 | //Authenticate Session Handler | ||
109 | AuthenticateSessionsRemote authen = new AuthenticateSessionsRemote(); | ||
110 | this.AuthenticateSessionsHandler = authen; | ||
111 | } | 105 | } |
112 | 106 | ||
113 | startuptime = DateTime.Now; | 107 | startuptime = DateTime.Now; |
@@ -129,7 +123,7 @@ namespace OpenSim | |||
129 | { | 123 | { |
130 | loginServer = new LoginServer(regionData[0].IPListenAddr, regionData[0].IPListenPort, regionData[0].RegionLocX, regionData[0].RegionLocY, this.user_accounts); | 124 | loginServer = new LoginServer(regionData[0].IPListenAddr, regionData[0].IPListenPort, regionData[0].RegionLocX, regionData[0].RegionLocY, this.user_accounts); |
131 | loginServer.Startup(); | 125 | loginServer.Startup(); |
132 | loginServer.SetSessionHandler(((AuthenticateSessionsLocal)this.AuthenticateSessionsHandler).AddNewSession); | 126 | loginServer.SetSessionHandler(((AuthenticateSessionsLocal)this.AuthenticateSessionsHandler[0]).AddNewSession); |
133 | 127 | ||
134 | //sandbox mode with loginserver not using accounts | 128 | //sandbox mode with loginserver not using accounts |
135 | httpServer.AddXmlRPCHandler("login_to_simulator", loginServer.XmlRpcLoginMethod); | 129 | httpServer.AddXmlRPCHandler("login_to_simulator", loginServer.XmlRpcLoginMethod); |
@@ -187,18 +181,46 @@ namespace OpenSim | |||
187 | World LocalWorld; | 181 | World LocalWorld; |
188 | UDPServer udpServer; | 182 | UDPServer udpServer; |
189 | RegionInfo regionDat = new RegionInfo(); | 183 | RegionInfo regionDat = new RegionInfo(); |
184 | AuthenticateSessionsBase authenBase; | ||
190 | 185 | ||
191 | string path = Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, "Regions"); | 186 | string path = Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, "Regions"); |
192 | string[] pluginFiles = Directory.GetFiles(path, "*.xml"); | 187 | string[] configFiles = Directory.GetFiles(path, "*.xml"); |
193 | 188 | ||
194 | for (int i = 0; i < pluginFiles.Length; i++) | 189 | if (configFiles.Length == 0) |
195 | { | 190 | { |
196 | regionConfig = new XmlConfig(pluginFiles[i]); | 191 | string path2 = Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, "Regions"); |
192 | string path3 = Path.Combine(path2, "default.xml"); | ||
193 | Console.WriteLine("Creating default region config file"); | ||
194 | //TODO create default region | ||
195 | IGenericConfig defaultConfig = new XmlConfig(path3); | ||
196 | defaultConfig.LoadData(); | ||
197 | defaultConfig.Commit(); | ||
198 | defaultConfig.Close(); | ||
199 | defaultConfig = null; | ||
200 | configFiles = Directory.GetFiles(path, "*.xml"); | ||
201 | } | ||
202 | |||
203 | for (int i = 0; i < configFiles.Length; i++) | ||
204 | { | ||
205 | if (m_sandbox) | ||
206 | { | ||
207 | AuthenticateSessionsLocal authen = new AuthenticateSessionsLocal(); | ||
208 | this.AuthenticateSessionsHandler.Add(authen); | ||
209 | authenBase = authen; | ||
210 | } | ||
211 | else | ||
212 | { | ||
213 | AuthenticateSessionsRemote authen = new AuthenticateSessionsRemote(); | ||
214 | this.AuthenticateSessionsHandler.Add (authen); | ||
215 | authenBase = authen; | ||
216 | } | ||
217 | Console.WriteLine("Loading region config file"); | ||
218 | regionConfig = new XmlConfig(configFiles[i]); | ||
197 | regionConfig.LoadData(); | 219 | regionConfig.LoadData(); |
198 | regionDat.InitConfig(this.m_sandbox, regionConfig); | 220 | regionDat.InitConfig(this.m_sandbox, regionConfig); |
199 | regionConfig.Close(); | 221 | regionConfig.Close(); |
200 | 222 | ||
201 | udpServer = new UDPServer(regionDat.IPListenPort, this.AssetCache, this.InventoryCache, this.m_console, this.AuthenticateSessionsHandler); | 223 | udpServer = new UDPServer(regionDat.IPListenPort, this.AssetCache, this.InventoryCache, this.m_console, authenBase); |
202 | 224 | ||
203 | m_udpServer.Add(udpServer); | 225 | m_udpServer.Add(udpServer); |
204 | this.regionData.Add(regionDat); | 226 | this.regionData.Add(regionDat); |
@@ -223,6 +245,8 @@ namespace OpenSim | |||
223 | LocalWorld.PhysScene = this.physManager.GetPhysicsScene(this.m_physicsEngine); | 245 | LocalWorld.PhysScene = this.physManager.GetPhysicsScene(this.m_physicsEngine); |
224 | LocalWorld.PhysScene.SetTerrain(LocalWorld.Terrain.getHeights1D()); | 246 | LocalWorld.PhysScene.SetTerrain(LocalWorld.Terrain.getHeights1D()); |
225 | LocalWorld.LoadPrimsFromStorage(); | 247 | LocalWorld.LoadPrimsFromStorage(); |
248 | |||
249 | LocalWorld.StartTimer(); | ||
226 | } | 250 | } |
227 | } | 251 | } |
228 | 252 | ||
@@ -234,7 +258,7 @@ namespace OpenSim | |||
234 | { | 258 | { |
235 | 259 | ||
236 | // we are in Grid mode so set a XmlRpc handler to handle "expect_user" calls from the user server | 260 | // we are in Grid mode so set a XmlRpc handler to handle "expect_user" calls from the user server |
237 | httpServer.AddXmlRPCHandler("expect_user", ((AuthenticateSessionsRemote)this.AuthenticateSessionsHandler).ExpectUser); | 261 | httpServer.AddXmlRPCHandler("expect_user", ((AuthenticateSessionsRemote)this.AuthenticateSessionsHandler[0]).ExpectUser); |
238 | 262 | ||
239 | httpServer.AddXmlRPCHandler("agent_crossing", | 263 | httpServer.AddXmlRPCHandler("agent_crossing", |
240 | delegate(XmlRpcRequest request) | 264 | delegate(XmlRpcRequest request) |
@@ -248,7 +272,7 @@ namespace OpenSim | |||
248 | agent_data.circuitcode = circuitcode; | 272 | agent_data.circuitcode = circuitcode; |
249 | agent_data.startpos = new LLVector3(Single.Parse((string)requestData["pos_x"]), Single.Parse((string)requestData["pos_y"]), Single.Parse((string)requestData["pos_z"])); | 273 | agent_data.startpos = new LLVector3(Single.Parse((string)requestData["pos_x"]), Single.Parse((string)requestData["pos_y"]), Single.Parse((string)requestData["pos_z"])); |
250 | 274 | ||
251 | AuthenticateSessionsHandler.UpdateAgentData(agent_data); | 275 | AuthenticateSessionsHandler[0].UpdateAgentData(agent_data); |
252 | 276 | ||
253 | return new XmlRpcResponse(); | 277 | return new XmlRpcResponse(); |
254 | }); | 278 | }); |