aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/OpenSim.Region/Scenes/ScenePresence.Update.cs
diff options
context:
space:
mode:
authorMW2007-06-20 17:32:21 +0000
committerMW2007-06-20 17:32:21 +0000
commit3e484d1aaf6d2d893f258e7372003de9bf5e8bdb (patch)
tree78eba8a9c1e77748d73d77e9f366021235a738b8 /OpenSim/OpenSim.Region/Scenes/ScenePresence.Update.cs
parent* and done the same for OGS.. (diff)
downloadopensim-SC_OLD-3e484d1aaf6d2d893f258e7372003de9bf5e8bdb.zip
opensim-SC_OLD-3e484d1aaf6d2d893f258e7372003de9bf5e8bdb.tar.gz
opensim-SC_OLD-3e484d1aaf6d2d893f258e7372003de9bf5e8bdb.tar.bz2
opensim-SC_OLD-3e484d1aaf6d2d893f258e7372003de9bf5e8bdb.tar.xz
Renamed Avatar to ScenePresence to avoid clash with libsl Avatar class.
Added ThirdPartyLicenses folder containing the licenses for the various third party libraries we use. Plus some other small changes.
Diffstat (limited to 'OpenSim/OpenSim.Region/Scenes/ScenePresence.Update.cs')
-rw-r--r--OpenSim/OpenSim.Region/Scenes/ScenePresence.Update.cs224
1 files changed, 224 insertions, 0 deletions
diff --git a/OpenSim/OpenSim.Region/Scenes/ScenePresence.Update.cs b/OpenSim/OpenSim.Region/Scenes/ScenePresence.Update.cs
new file mode 100644
index 0000000..3885c0d
--- /dev/null
+++ b/OpenSim/OpenSim.Region/Scenes/ScenePresence.Update.cs
@@ -0,0 +1,224 @@
1/*
2* Copyright (c) Contributors, http://www.openmetaverse.org/
3* See CONTRIBUTORS.TXT for a full list of copyright holders.
4*
5* Redistribution and use in source and binary forms, with or without
6* modification, are permitted provided that the following conditions are met:
7* * Redistributions of source code must retain the above copyright
8* notice, this list of conditions and the following disclaimer.
9* * Redistributions in binary form must reproduce the above copyright
10* notice, this list of conditions and the following disclaimer in the
11* documentation and/or other materials provided with the distribution.
12* * Neither the name of the OpenSim Project nor the
13* names of its contributors may be used to endorse or promote products
14* derived from this software without specific prior written permission.
15*
16* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
17* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26*
27*/
28using System;
29using System.Collections.Generic;
30using System.Text;
31using libsecondlife;
32using libsecondlife.Packets;
33using OpenSim.Physics.Manager;
34using OpenSim.Framework.Interfaces;
35using OpenSim.Framework.Types;
36
37namespace OpenSim.Region.Scenes
38{
39 partial class ScenePresence
40 {
41 /// <summary>
42 ///
43 /// </summary>
44 public override void update()
45 {
46 if (this.childAvatar == false)
47 {
48 if (this.newForce)
49 {
50 this.SendTerseUpdateToALLClients();
51 _updateCount = 0;
52 }
53 else if (movementflag != 0)
54 {
55 _updateCount++;
56 if (_updateCount > 3)
57 {
58 this.SendTerseUpdateToALLClients();
59 _updateCount = 0;
60 }
61 }
62
63 this.CheckForBorderCrossing();
64 }
65 }
66
67 /// <summary>
68 ///
69 /// </summary>
70 /// <param name="remoteAvatar"></param>
71 public void SendUpdateToOtherClient(ScenePresence remoteAvatar)
72 {
73
74 }
75
76 /// <summary>
77 ///
78 /// </summary>
79 /// <returns></returns>
80 public ObjectUpdatePacket CreateUpdatePacket()
81 {
82 return null;
83 }
84
85 /// <summary>
86 ///
87 /// </summary>
88 public void SendInitialPosition()
89 {
90 this.ControllingClient.SendAvatarData(m_regionInfo.RegionHandle, this.firstname, this.lastname, this.uuid, this.LocalId, this.Pos);
91 }
92
93 /// <summary>
94 ///
95 /// </summary>
96 public void SendOurAppearance()
97 {
98
99 }
100
101 /// <summary>
102 ///
103 /// </summary>
104 /// <param name="OurClient"></param>
105 public void SendOurAppearance(IClientAPI OurClient)
106 {
107 this.ControllingClient.SendWearables(this.Wearables);
108 }
109
110 /// <summary>
111 ///
112 /// </summary>
113 /// <param name="avatarInfo"></param>
114 public void SendAppearanceToOtherAgent(ScenePresence avatarInfo)
115 {
116
117 }
118
119 /// <summary>
120 ///
121 /// </summary>
122 /// <param name="texture"></param>
123 /// <param name="visualParam"></param>
124 public void SetAppearance(byte[] texture, AgentSetAppearancePacket.VisualParamBlock[] visualParam)
125 {
126
127 }
128
129 /// <summary>
130 ///
131 /// </summary>
132 public void StopMovement()
133 {
134
135 }
136
137 /// <summary>
138 ///
139 /// </summary>
140 /// <param name="animID"></param>
141 /// <param name="seq"></param>
142 public void SendAnimPack(LLUUID animID, int seq)
143 {
144
145
146 }
147
148 /// <summary>
149 ///
150 /// </summary>
151 public void SendAnimPack()
152 {
153
154 }
155
156 /// <summary>
157 ///
158 /// </summary>
159 protected void CheckForBorderCrossing()
160 {
161 LLVector3 pos2 = this.Pos;
162 LLVector3 vel = this.Velocity;
163
164 float timeStep = 0.2f;
165 pos2.X = pos2.X + (vel.X * timeStep);
166 pos2.Y = pos2.Y + (vel.Y * timeStep);
167 pos2.Z = pos2.Z + (vel.Z * timeStep);
168
169 if ((pos2.X < 0) || (pos2.X > 256))
170 {
171 this.CrossToNewRegion();
172 }
173
174 if ((pos2.Y < 0) || (pos2.Y > 256))
175 {
176 this.CrossToNewRegion();
177 }
178 }
179
180 /// <summary>
181 ///
182 /// </summary>
183 protected void CrossToNewRegion()
184 {
185 LLVector3 pos = this.Pos;
186 LLVector3 newpos = new LLVector3(pos.X, pos.Y, pos.Z);
187 uint neighbourx = this.m_regionInfo.RegionLocX;
188 uint neighboury = this.m_regionInfo.RegionLocY;
189
190 if (pos.X < 2)
191 {
192 neighbourx -= 1;
193 newpos.X = 254;
194 }
195 if (pos.X > 253)
196 {
197 neighbourx += 1;
198 newpos.X = 1;
199 }
200 if (pos.Y < 2)
201 {
202 neighboury -= 1;
203 newpos.Y = 254;
204 }
205 if (pos.Y > 253)
206 {
207 neighboury += 1;
208 newpos.Y = 1;
209 }
210
211 LLVector3 vel = this.velocity;
212 ulong neighbourHandle = Helpers.UIntsToLong((uint)(neighbourx * 256), (uint)(neighboury* 256));
213 RegionInfo neighbourRegion = this.m_world.RequestNeighbouringRegionInfo(neighbourHandle);
214 if (neighbourRegion != null)
215 {
216 this.m_world.InformNeighbourOfCrossing(neighbourHandle, this.ControllingClient.AgentId, newpos);
217 this.DownGradeAvatar();
218 this.ControllingClient.CrossRegion(neighbourHandle, newpos, vel, System.Net.IPAddress.Parse(neighbourRegion.IPListenAddr), (ushort)neighbourRegion.IPListenPort);
219
220 }
221 }
222
223 }
224}