aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
authorUbitUmarov2012-12-07 13:47:58 +0000
committerUbitUmarov2012-12-07 13:47:58 +0000
commit135e0ea853203cbad5790ac9f0b21d67f8828af8 (patch)
tree7b60c85aa16123a109b3afae4618359abd272dd9 /OpenSim/Region
parentavatar collision plane send to viewer is only relative to feet. change (diff)
downloadopensim-SC_OLD-135e0ea853203cbad5790ac9f0b21d67f8828af8.zip
opensim-SC_OLD-135e0ea853203cbad5790ac9f0b21d67f8828af8.tar.gz
opensim-SC_OLD-135e0ea853203cbad5790ac9f0b21d67f8828af8.tar.bz2
opensim-SC_OLD-135e0ea853203cbad5790ac9f0b21d67f8828af8.tar.xz
*TEST* add some avatar skeleton information and use it to calculate avatar
height and bounding box. Change LSL acording.
Diffstat (limited to 'OpenSim/Region')
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs29
1 files changed, 25 insertions, 4 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index 6b63d94..7593395 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -3013,7 +3013,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3013 } 3013 }
3014 3014
3015 bool result = money.ObjectGiveMoney( 3015 bool result = money.ObjectGiveMoney(
3016 m_host.ParentGroup.RootPart.UUID, m_host.ParentGroup.RootPart.OwnerID, toID, amount, UUID.Zero); 3016 m_host.ParentGroup.RootPart.UUID, m_host.ParentGroup.RootPart.OwnerID, toID, amount);
3017 3017
3018 if (result) 3018 if (result)
3019 return 1; 3019 return 1;
@@ -6384,7 +6384,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
6384 } 6384 }
6385 else 6385 else
6386 { 6386 {
6387 agentSize = new LSL_Vector(0.45, 0.6, avatar.Appearance.AvatarHeight); 6387// agentSize = new LSL_Vector(0.45f, 0.6f, avatar.Appearance.AvatarHeight);
6388 Vector3 s = avatar.Appearance.AvatarSize;
6389 agentSize = new LSL_Vector(s.X, s.Y, s.Z);
6388 } 6390 }
6389 return agentSize; 6391 return agentSize;
6390 } 6392 }
@@ -8591,8 +8593,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
8591 // and standing avatar since server 1.36 8593 // and standing avatar since server 1.36
8592 LSL_Vector lower; 8594 LSL_Vector lower;
8593 LSL_Vector upper; 8595 LSL_Vector upper;
8596
8597 Vector3 box = presence.Appearance.AvatarBoxSize * 0.5f;
8598
8594 if (presence.Animator.Animations.ImplicitDefaultAnimation.AnimID 8599 if (presence.Animator.Animations.ImplicitDefaultAnimation.AnimID
8595 == DefaultAvatarAnimations.AnimsUUID["SIT_GROUND_CONSTRAINED"]) 8600 == DefaultAvatarAnimations.AnimsUUID["SIT_GROUND_CONSTRAINED"])
8601/*
8596 { 8602 {
8597 // This is for ground sitting avatars 8603 // This is for ground sitting avatars
8598 float height = presence.Appearance.AvatarHeight / 2.66666667f; 8604 float height = presence.Appearance.AvatarHeight / 2.66666667f;
@@ -8610,6 +8616,18 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
8610 // Adjust to the documented error offsets (see LSL Wiki) 8616 // Adjust to the documented error offsets (see LSL Wiki)
8611 lower += new LSL_Vector(0.05f, 0.05f, 0.05f); 8617 lower += new LSL_Vector(0.05f, 0.05f, 0.05f);
8612 upper -= new LSL_Vector(0.05f, 0.05f, 0.05f); 8618 upper -= new LSL_Vector(0.05f, 0.05f, 0.05f);
8619*/
8620 {
8621 // This is for ground sitting avatars TODO!
8622 lower = new LSL_Vector(-box.X - 0.1125, -box.Y, box.Z * -1.0f);
8623 upper = new LSL_Vector(box.X + 0.1125, box.Y, box.Z * -1.0f);
8624 }
8625 else
8626 {
8627 // This is for standing/flying avatars
8628 lower = new LSL_Vector(-box.X, -box.Y, -box.Z);
8629 upper = new LSL_Vector(box.X, box.Y, box.Z);
8630 }
8613 8631
8614 if (lower.x > upper.x) 8632 if (lower.x > upper.x)
8615 lower.x = upper.x; 8633 lower.x = upper.x;
@@ -12529,7 +12547,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
12529 } 12547 }
12530 12548
12531 bool result = money.ObjectGiveMoney( 12549 bool result = money.ObjectGiveMoney(
12532 m_host.ParentGroup.RootPart.UUID, m_host.ParentGroup.RootPart.OwnerID, toID, amount, txn); 12550 m_host.ParentGroup.RootPart.UUID, m_host.ParentGroup.RootPart.OwnerID, toID, amount);
12533 12551
12534 if (result) 12552 if (result)
12535 { 12553 {
@@ -12931,7 +12949,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
12931 12949
12932 case (int)ScriptBaseClass.PRIM_SIZE: 12950 case (int)ScriptBaseClass.PRIM_SIZE:
12933 // as in llGetAgentSize above 12951 // as in llGetAgentSize above
12934 res.Add(new LSL_Vector(0.45f, 0.6f, avatar.Appearance.AvatarHeight)); 12952// res.Add(new LSL_Vector(0.45f, 0.6f, avatar.Appearance.AvatarHeight));
12953 Vector3 s = avatar.Appearance.AvatarSize;
12954 res.Add(new LSL_Vector(s.X, s.Y, s.Z));
12955
12935 break; 12956 break;
12936 12957
12937 case (int)ScriptBaseClass.PRIM_ROTATION: 12958 case (int)ScriptBaseClass.PRIM_ROTATION: