aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Environment/Scenes/Entity.cs113
-rw-r--r--OpenSim/Region/Environment/Scenes/ScenePresence.cs72
2 files changed, 71 insertions, 114 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Entity.cs b/OpenSim/Region/Environment/Scenes/Entity.cs
deleted file mode 100644
index 49802ac..0000000
--- a/OpenSim/Region/Environment/Scenes/Entity.cs
+++ /dev/null
@@ -1,113 +0,0 @@
1/*
2* Copyright (c) Contributors, http://opensimulator.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 libsecondlife;
30using OpenSim.Region.Physics.Manager;
31
32namespace OpenSim.Region.Environment.Scenes
33{
34 public abstract class Entity : EntityBase //this class (Entity) will be phased out
35 {
36 protected PhysicsActor m_physicsActor;
37
38 /// <summary>
39 ///
40 /// </summary>
41 public override LLVector3 AbsolutePosition
42 {
43 get
44 {
45 if (m_physicsActor != null)
46 {
47 m_pos.X = m_physicsActor.Position.X;
48 m_pos.Y = m_physicsActor.Position.Y;
49 m_pos.Z = m_physicsActor.Position.Z;
50 }
51
52 return m_pos;
53 }
54 set
55 {
56 if (m_physicsActor != null)
57 {
58 try
59 {
60 lock (m_scene.SyncRoot)
61 {
62 m_physicsActor.Position = new PhysicsVector(value.X, value.Y, value.Z);
63 }
64 }
65 catch (Exception e)
66 {
67 Console.WriteLine(e.Message);
68 }
69 }
70
71 m_pos = value;
72 }
73 }
74
75
76 /// <summary>
77 ///
78 /// </summary>
79 public override LLVector3 Velocity
80 {
81 get
82 {
83 if (m_physicsActor != null)
84 {
85 m_velocity.X = m_physicsActor.Velocity.X;
86 m_velocity.Y = m_physicsActor.Velocity.Y;
87 m_velocity.Z = m_physicsActor.Velocity.Z;
88 }
89
90 return m_velocity;
91 }
92 set
93 {
94 if (m_physicsActor != null)
95 {
96 try
97 {
98 lock (m_scene.SyncRoot)
99 {
100 m_physicsActor.Velocity = new PhysicsVector(value.X, value.Y, value.Z);
101 }
102 }
103 catch (Exception e)
104 {
105 Console.WriteLine(e.Message);
106 }
107 }
108
109 m_velocity = value;
110 }
111 }
112 }
113} \ No newline at end of file
diff --git a/OpenSim/Region/Environment/Scenes/ScenePresence.cs b/OpenSim/Region/Environment/Scenes/ScenePresence.cs
index c75136f..c0b9a35 100644
--- a/OpenSim/Region/Environment/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Environment/Scenes/ScenePresence.cs
@@ -38,7 +38,7 @@ using OpenSim.Region.Physics.Manager;
38 38
39namespace OpenSim.Region.Environment.Scenes 39namespace OpenSim.Region.Environment.Scenes
40{ 40{
41 public partial class ScenePresence : Entity 41 public partial class ScenePresence : EntityBase
42 { 42 {
43 public static AvatarAnimations Animations; 43 public static AvatarAnimations Animations;
44 public static byte[] DefaultTexture; 44 public static byte[] DefaultTexture;
@@ -132,11 +132,81 @@ namespace OpenSim.Region.Environment.Scenes
132 } 132 }
133 133
134 private readonly IClientAPI m_controllingClient; 134 private readonly IClientAPI m_controllingClient;
135 protected PhysicsActor m_physicsActor;
136
135 public IClientAPI _ControllingClient 137 public IClientAPI _ControllingClient
136 { 138 {
137 get { return m_controllingClient; } 139 get { return m_controllingClient; }
138 } 140 }
139 141
142 public LLVector3 AbsolutePosition
143 {
144 get
145 {
146 if (m_physicsActor != null)
147 {
148 m_pos.X = m_physicsActor.Position.X;
149 m_pos.Y = m_physicsActor.Position.Y;
150 m_pos.Z = m_physicsActor.Position.Z;
151 }
152
153 return m_pos;
154 }
155 set
156 {
157 if (m_physicsActor != null)
158 {
159 try
160 {
161 lock (m_scene.SyncRoot)
162 {
163 m_physicsActor.Position = new PhysicsVector(value.X, value.Y, value.Z);
164 }
165 }
166 catch (Exception e)
167 {
168 Console.WriteLine(e.Message);
169 }
170 }
171
172 m_pos = value;
173 }
174 }
175
176 public LLVector3 Velocity
177 {
178 get
179 {
180 if (m_physicsActor != null)
181 {
182 m_velocity.X = m_physicsActor.Velocity.X;
183 m_velocity.Y = m_physicsActor.Velocity.Y;
184 m_velocity.Z = m_physicsActor.Velocity.Z;
185 }
186
187 return m_velocity;
188 }
189 set
190 {
191 if (m_physicsActor != null)
192 {
193 try
194 {
195 lock (m_scene.SyncRoot)
196 {
197 m_physicsActor.Velocity = new PhysicsVector(value.X, value.Y, value.Z);
198 }
199 }
200 catch (Exception e)
201 {
202 Console.WriteLine(e.Message);
203 }
204 }
205
206 m_velocity = value;
207 }
208 }
209
140 #endregion 210 #endregion
141 211
142 #region Constructor(s) 212 #region Constructor(s)