aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/OpenSim.Region/World/Entities/Avatar.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/OpenSim.Region/World/Entities/Avatar.cs')
-rw-r--r--OpenSim/OpenSim.Region/World/Entities/Avatar.cs225
1 files changed, 225 insertions, 0 deletions
diff --git a/OpenSim/OpenSim.Region/World/Entities/Avatar.cs b/OpenSim/OpenSim.Region/World/Entities/Avatar.cs
new file mode 100644
index 0000000..c88e0cc
--- /dev/null
+++ b/OpenSim/OpenSim.Region/World/Entities/Avatar.cs
@@ -0,0 +1,225 @@
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.IO;
31using System.Text;
32using libsecondlife;
33using libsecondlife.Packets;
34using OpenSim.Physics.Manager;
35using OpenSim.Framework.Inventory;
36using OpenSim.Framework.Interfaces;
37using OpenSim.Framework.Types;
38using Axiom.MathLib;
39
40namespace OpenSim.Region
41{
42 public partial class Avatar : Entity
43 {
44 public static bool PhysicsEngineFlying = false;
45 public static AvatarAnimations Animations;
46 public string firstname;
47 public string lastname;
48 public IClientAPI ControllingClient;
49 public LLUUID current_anim;
50 public int anim_seq;
51 private static libsecondlife.Packets.ObjectUpdatePacket.ObjectDataBlock AvatarTemplate;
52 private bool updateflag = false;
53 private byte movementflag = 0;
54 private List<NewForce> forcesList = new List<NewForce>();
55 private short _updateCount = 0;
56 private Axiom.MathLib.Quaternion bodyRot;
57 private LLObject.TextureEntry avatarAppearanceTexture = null;
58 private byte[] visualParams;
59 private AvatarWearable[] Wearables;
60 private LLVector3 positionLastFrame = new LLVector3(0, 0, 0);
61 private ulong m_regionHandle;
62 private Dictionary<uint, IClientAPI> m_clientThreads;
63 private bool childAvatar = false;
64
65 protected RegionInfo m_regionInfo;
66 /// <summary>
67 ///
68 /// </summary>
69 /// <param name="theClient"></param>
70 /// <param name="world"></param>
71 /// <param name="clientThreads"></param>
72 /// <param name="regionDat"></param>
73 public Avatar(IClientAPI theClient, World world, Dictionary<uint, IClientAPI> clientThreads, RegionInfo reginfo)
74 {
75
76 m_world = world;
77 m_clientThreads = clientThreads;
78 this.uuid = theClient.AgentId;
79
80 m_regionInfo = reginfo;
81 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "Avatar.cs - Loading details from grid (DUMMY)");
82 ControllingClient = theClient;
83 this.firstname = ControllingClient.FirstName;
84 this.lastname = ControllingClient.LastName;
85 localid = this.m_world.NextLocalId;
86 Pos = ControllingClient.StartPos;
87 visualParams = new byte[218];
88 for (int i = 0; i < 218; i++)
89 {
90 visualParams[i] = 100;
91 }
92
93 Wearables = AvatarWearable.DefaultWearables;
94
95 this.avatarAppearanceTexture = new LLObject.TextureEntry(new LLUUID("00000000-0000-0000-5005-000000000005"));
96
97 //register for events
98 ControllingClient.OnRequestWearables += new GenericCall(this.SendOurAppearance);
99 //ControllingClient.OnSetAppearance += new SetAppearance(this.SetAppearance);
100 ControllingClient.OnCompleteMovementToRegion += new GenericCall2(this.CompleteMovement);
101 ControllingClient.OnCompleteMovementToRegion += new GenericCall2(this.SendInitialPosition);
102 /* ControllingClient.OnAgentUpdate += new GenericCall3(this.HandleAgentUpdate);
103 ControllingClient.OnStartAnim += new StartAnim(this.SendAnimPack);
104 ControllingClient.OnChildAgentStatus += new StatusChange(this.ChildStatusChange);
105 ControllingClient.OnStopMovement += new GenericCall2(this.StopMovement);
106 */
107 }
108
109 /// <summary>
110 ///
111 /// </summary>
112 public PhysicsActor PhysActor
113 {
114 set
115 {
116 this._physActor = value;
117 }
118 get
119 {
120 return _physActor;
121 }
122 }
123
124 /// <summary>
125 ///
126 /// </summary>
127 /// <param name="status"></param>
128 public void ChildStatusChange(bool status)
129 {
130
131 }
132
133 /// <summary>
134 ///
135 /// </summary>
136 public override void addForces()
137 {
138
139 }
140
141 /// <summary>
142 /// likely to removed very soon
143 /// </summary>
144 /// <param name="name"></param>
145 public static void SetupTemplate(string name)
146 {
147
148 }
149
150 /// <summary>
151 /// likely to removed very soon
152 /// </summary>
153 /// <param name="objdata"></param>
154 protected static void SetDefaultPacketValues(ObjectUpdatePacket.ObjectDataBlock objdata)
155 {
156
157
158
159 }
160
161 /// <summary>
162 ///
163 /// </summary>
164 public void CompleteMovement()
165 {
166 this.ControllingClient.MoveAgentIntoRegion(m_regionInfo);
167 }
168
169 /// <summary>
170 ///
171 /// </summary>
172 /// <param name="pack"></param>
173 public void HandleAgentUpdate(Packet pack)
174 {
175 this.HandleUpdate((AgentUpdatePacket)pack);
176 }
177
178 /// <summary>
179 ///
180 /// </summary>
181 /// <param name="pack"></param>
182 public void HandleUpdate(AgentUpdatePacket pack)
183 {
184
185 }
186
187 /// <summary>
188 ///
189 /// </summary>
190 public void SendRegionHandshake()
191 {
192
193 }
194
195 /// <summary>
196 ///
197 /// </summary>
198 public static void LoadAnims()
199 {
200
201 }
202
203 /// <summary>
204 ///
205 /// </summary>
206 public override void LandRenegerated()
207 {
208
209 }
210
211
212 public class NewForce
213 {
214 public float X;
215 public float Y;
216 public float Z;
217
218 public NewForce()
219 {
220
221 }
222 }
223 }
224
225}