diff options
Diffstat (limited to 'OpenSim/Region/Physics/Manager')
-rw-r--r-- | OpenSim/Region/Physics/Manager/PhysicsActor.cs | 35 |
1 files changed, 30 insertions, 5 deletions
diff --git a/OpenSim/Region/Physics/Manager/PhysicsActor.cs b/OpenSim/Region/Physics/Manager/PhysicsActor.cs index f48f129..046c285 100644 --- a/OpenSim/Region/Physics/Manager/PhysicsActor.cs +++ b/OpenSim/Region/Physics/Manager/PhysicsActor.cs | |||
@@ -51,9 +51,9 @@ namespace OpenSim.Region.Physics.Manager | |||
51 | public int m_colliderType; | 51 | public int m_colliderType; |
52 | public int m_GenericStartEnd; | 52 | public int m_GenericStartEnd; |
53 | //public uint m_LocalID; | 53 | //public uint m_LocalID; |
54 | public List<uint> m_objCollisionList; | 54 | public Dictionary<uint,float> m_objCollisionList = new Dictionary<uint,float>(); |
55 | 55 | ||
56 | public CollisionEventUpdate(uint localID, int colliderType, int GenericStartEnd, List<uint> objCollisionList) | 56 | public CollisionEventUpdate(uint localID, int colliderType, int GenericStartEnd, Dictionary<uint, float> objCollisionList) |
57 | { | 57 | { |
58 | m_colliderType = colliderType; | 58 | m_colliderType = colliderType; |
59 | m_GenericStartEnd = GenericStartEnd; | 59 | m_GenericStartEnd = GenericStartEnd; |
@@ -64,7 +64,8 @@ namespace OpenSim.Region.Physics.Manager | |||
64 | { | 64 | { |
65 | m_colliderType = (int) ActorTypes.Unknown; | 65 | m_colliderType = (int) ActorTypes.Unknown; |
66 | m_GenericStartEnd = 1; | 66 | m_GenericStartEnd = 1; |
67 | m_objCollisionList = null; | 67 | // m_objCollisionList = null; |
68 | m_objCollisionList = new Dictionary<uint, float>(); | ||
68 | } | 69 | } |
69 | 70 | ||
70 | public int collidertype | 71 | public int collidertype |
@@ -79,9 +80,17 @@ namespace OpenSim.Region.Physics.Manager | |||
79 | set { m_GenericStartEnd = value; } | 80 | set { m_GenericStartEnd = value; } |
80 | } | 81 | } |
81 | 82 | ||
82 | public void addCollider(uint localID) | 83 | public void addCollider(uint localID, float depth) |
83 | { | 84 | { |
84 | m_objCollisionList.Add(localID); | 85 | if (!m_objCollisionList.ContainsKey(localID)) |
86 | { | ||
87 | m_objCollisionList.Add(localID, depth); | ||
88 | } | ||
89 | else | ||
90 | { | ||
91 | if (m_objCollisionList[localID] < depth) | ||
92 | m_objCollisionList[localID] = depth; | ||
93 | } | ||
85 | } | 94 | } |
86 | } | 95 | } |
87 | 96 | ||
@@ -189,6 +198,9 @@ namespace OpenSim.Region.Physics.Manager | |||
189 | 198 | ||
190 | public abstract void AddForce(PhysicsVector force); | 199 | public abstract void AddForce(PhysicsVector force); |
191 | public abstract void SetMomentum(PhysicsVector momentum); | 200 | public abstract void SetMomentum(PhysicsVector momentum); |
201 | public abstract void SubscribeEvents(int ms); | ||
202 | public abstract void UnSubscribeEvents(); | ||
203 | public abstract bool SubscribedEvents(); | ||
192 | } | 204 | } |
193 | 205 | ||
194 | public class NullPhysicsActor : PhysicsActor | 206 | public class NullPhysicsActor : PhysicsActor |
@@ -370,5 +382,18 @@ namespace OpenSim.Region.Physics.Manager | |||
370 | public override void SetMomentum(PhysicsVector momentum) | 382 | public override void SetMomentum(PhysicsVector momentum) |
371 | { | 383 | { |
372 | } | 384 | } |
385 | |||
386 | public override void SubscribeEvents(int ms) | ||
387 | { | ||
388 | |||
389 | } | ||
390 | public override void UnSubscribeEvents() | ||
391 | { | ||
392 | |||
393 | } | ||
394 | public override bool SubscribedEvents() | ||
395 | { | ||
396 | return false; | ||
397 | } | ||
373 | } | 398 | } |
374 | } | 399 | } |