aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ScriptEngine/Shared/Api
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/ScriptEngine/Shared/Api')
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs22
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs158
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs2
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs46
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs12
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Runtime/ScriptBase.cs4
6 files changed, 132 insertions, 112 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index 3a229c2..76c79da 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -2812,7 +2812,15 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
2812 public void llCollisionFilter(string name, string id, int accept) 2812 public void llCollisionFilter(string name, string id, int accept)
2813 { 2813 {
2814 m_host.AddScriptLPS(1); 2814 m_host.AddScriptLPS(1);
2815 NotImplemented("llCollisionFilter"); 2815 m_host.CollisionFilter.Clear();
2816 if (id != null)
2817 {
2818 m_host.CollisionFilter.Add(accept,id);
2819 }
2820 else
2821 {
2822 m_host.CollisionFilter.Add(accept,name);
2823 }
2816 } 2824 }
2817 2825
2818 public void llTakeControls(int controls, int accept, int pass_on) 2826 public void llTakeControls(int controls, int accept, int pass_on)
@@ -3910,6 +3918,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3910 Util.Clip((float)color.z, 0.0f, 1.0f)); 3918 Util.Clip((float)color.z, 0.0f, 1.0f));
3911 m_host.SetText(text, av3, Util.Clip((float)alpha, 0.0f, 1.0f)); 3919 m_host.SetText(text, av3, Util.Clip((float)alpha, 0.0f, 1.0f));
3912 m_host.ParentGroup.HasGroupChanged = true; 3920 m_host.ParentGroup.HasGroupChanged = true;
3921 m_host.ParentGroup.ScheduleGroupForFullUpdate();
3913 } 3922 }
3914 3923
3915 public LSL_Float llWater(LSL_Vector offset) 3924 public LSL_Float llWater(LSL_Vector offset)
@@ -4333,7 +4342,14 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
4333 public void llPassCollisions(int pass) 4342 public void llPassCollisions(int pass)
4334 { 4343 {
4335 m_host.AddScriptLPS(1); 4344 m_host.AddScriptLPS(1);
4336 NotImplemented("llPassCollisions"); 4345 if (pass == 0)
4346 {
4347 m_host.ParentGroup.PassCollision = false;
4348 }
4349 else
4350 {
4351 m_host.ParentGroup.PassCollision = true;
4352 }
4337 } 4353 }
4338 4354
4339 public LSL_String llGetScriptName() 4355 public LSL_String llGetScriptName()
@@ -7541,7 +7557,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
7541 // makes it more difficult to determine a child prim's actual inworld position). 7557 // makes it more difficult to determine a child prim's actual inworld position).
7542 if (part.ParentID != 0) 7558 if (part.ParentID != 0)
7543 v = ((v - llGetRootPosition()) * llGetRootRotation()) + llGetRootPosition(); 7559 v = ((v - llGetRootPosition()) * llGetRootRotation()) + llGetRootPosition();
7544 res.Add( v ); 7560 res.Add(v);
7545 break; 7561 break;
7546 7562
7547 case (int)ScriptBaseClass.PRIM_SIZE: 7563 case (int)ScriptBaseClass.PRIM_SIZE:
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
index b6fc0a4..a5be251 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
@@ -1952,7 +1952,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1952 1952
1953 return key.ToString(); 1953 return key.ToString();
1954 } 1954 }
1955 1955
1956 /// <summary> 1956 /// <summary>
1957 /// Return information regarding various simulator statistics (sim fps, physics fps, time 1957 /// Return information regarding various simulator statistics (sim fps, physics fps, time
1958 /// dilation, total number of prims, total number of active scripts, script lps, various 1958 /// dilation, total number of prims, total number of active scripts, script lps, various
@@ -1960,19 +1960,19 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1960 /// client's Statistics Bar (Ctrl-Shift-1) 1960 /// client's Statistics Bar (Ctrl-Shift-1)
1961 /// </summary> 1961 /// </summary>
1962 /// <returns>List of floats</returns> 1962 /// <returns>List of floats</returns>
1963 public LSL_List osGetRegionStats() 1963 public LSL_List osGetRegionStats()
1964 { 1964 {
1965 CheckThreatLevel(ThreatLevel.Moderate, "osGetRegionStats"); 1965 CheckThreatLevel(ThreatLevel.Moderate, "osGetRegionStats");
1966 m_host.AddScriptLPS(1); 1966 m_host.AddScriptLPS(1);
1967 LSL_List ret = new LSL_List(); 1967 LSL_List ret = new LSL_List();
1968 float[] stats = World.SimulatorStats; 1968 float[] stats = World.SimulatorStats;
1969 1969
1970 for (int i = 0; i < 21; i++) 1970 for (int i = 0; i < 21; i++)
1971 { 1971 {
1972 ret.Add(new LSL_Float( stats[i] )); 1972 ret.Add(new LSL_Float(stats[i]));
1973 } 1973 }
1974 return ret; 1974 return ret;
1975 } 1975 }
1976 1976
1977 public int osGetSimulatorMemory() 1977 public int osGetSimulatorMemory()
1978 { 1978 {
@@ -1988,81 +1988,81 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1988 return (int)pws; 1988 return (int)pws;
1989 } 1989 }
1990 public void osSetSpeed(string UUID, float SpeedModifier) 1990 public void osSetSpeed(string UUID, float SpeedModifier)
1991 { 1991 {
1992 CheckThreatLevel(ThreatLevel.Moderate, "osSetSpeed"); 1992 CheckThreatLevel(ThreatLevel.Moderate, "osSetSpeed");
1993 m_host.AddScriptLPS(1); 1993 m_host.AddScriptLPS(1);
1994 ScenePresence avatar = World.GetScenePresence(new UUID(UUID)); 1994 ScenePresence avatar = World.GetScenePresence(new UUID(UUID));
1995 avatar.SpeedModifier = SpeedModifier; 1995 avatar.SpeedModifier = SpeedModifier;
1996 } 1996 }
1997 public void osKickAvatar(string FirstName,string SurName,string alert) 1997 public void osKickAvatar(string FirstName,string SurName,string alert)
1998 { 1998 {
1999 CheckThreatLevel(ThreatLevel.Severe, "osKickAvatar"); 1999 CheckThreatLevel(ThreatLevel.Severe, "osKickAvatar");
2000 if (World.Permissions.CanRunConsoleCommand(m_host.OwnerID)) 2000 if (World.Permissions.CanRunConsoleCommand(m_host.OwnerID))
2001 { 2001 {
2002 foreach (ScenePresence presence in World.GetAvatars()) 2002 foreach (ScenePresence presence in World.GetAvatars())
2003 { 2003 {
2004 if ((presence.Firstname == FirstName) && 2004 if ((presence.Firstname == FirstName) &&
2005 presence.Lastname == SurName) 2005 presence.Lastname == SurName)
2006 { 2006 {
2007 // kick client... 2007 // kick client...
2008 if (alert != null) 2008 if (alert != null)
2009 presence.ControllingClient.Kick(alert); 2009 presence.ControllingClient.Kick(alert);
2010 2010
2011 // ...and close on our side 2011 // ...and close on our side
2012 presence.Scene.IncomingCloseAgent(presence.UUID); 2012 presence.Scene.IncomingCloseAgent(presence.UUID);
2013 } 2013 }
2014 } 2014 }
2015 } 2015 }
2016 } 2016 }
2017 public void osCauseDamage(string avatar, double damage) 2017 public void osCauseDamage(string avatar, double damage)
2018 { 2018 {
2019 CheckThreatLevel(ThreatLevel.High, "osCauseDamage"); 2019 CheckThreatLevel(ThreatLevel.High, "osCauseDamage");
2020 m_host.AddScriptLPS(1); 2020 m_host.AddScriptLPS(1);
2021 2021
2022 UUID avatarId = new UUID(avatar); 2022 UUID avatarId = new UUID(avatar);
2023 Vector3 pos = m_host.GetWorldPosition(); 2023 Vector3 pos = m_host.GetWorldPosition();
2024 2024
2025 ScenePresence presence = World.GetScenePresence(avatarId); 2025 ScenePresence presence = World.GetScenePresence(avatarId);
2026 if (presence != null) 2026 if (presence != null)
2027 { 2027 {
2028 LandData land = World.GetLandData((float)pos.X, (float)pos.Y); 2028 LandData land = World.GetLandData((float)pos.X, (float)pos.Y);
2029 if ((land.Flags & (uint)ParcelFlags.AllowDamage) == (uint)ParcelFlags.AllowDamage) 2029 if ((land.Flags & (uint)ParcelFlags.AllowDamage) == (uint)ParcelFlags.AllowDamage)
2030 { 2030 {
2031 float health = presence.Health; 2031 float health = presence.Health;
2032 health -= (float)damage; 2032 health -= (float)damage;
2033 presence.setHealthWithUpdate(health); 2033 presence.setHealthWithUpdate(health);
2034 if (health <= 0) 2034 if (health <= 0)
2035 { 2035 {
2036 float healthliveagain = 100; 2036 float healthliveagain = 100;
2037 presence.ControllingClient.SendAgentAlertMessage("You died!", true); 2037 presence.ControllingClient.SendAgentAlertMessage("You died!", true);
2038 presence.setHealthWithUpdate(healthliveagain); 2038 presence.setHealthWithUpdate(healthliveagain);
2039 presence.Scene.TeleportClientHome(presence.UUID, presence.ControllingClient); 2039 presence.Scene.TeleportClientHome(presence.UUID, presence.ControllingClient);
2040 } 2040 }
2041 } 2041 }
2042 } 2042 }
2043 } 2043 }
2044 public void osCauseHealing(string avatar, double healing) 2044 public void osCauseHealing(string avatar, double healing)
2045 { 2045 {
2046 CheckThreatLevel(ThreatLevel.High, "osCauseHealing"); 2046 CheckThreatLevel(ThreatLevel.High, "osCauseHealing");
2047 m_host.AddScriptLPS(1); 2047 m_host.AddScriptLPS(1);
2048 2048
2049 UUID avatarId = new UUID(avatar); 2049 UUID avatarId = new UUID(avatar);
2050 ScenePresence presence = World.GetScenePresence(avatarId); 2050 ScenePresence presence = World.GetScenePresence(avatarId);
2051 Vector3 pos = m_host.GetWorldPosition(); 2051 Vector3 pos = m_host.GetWorldPosition();
2052 bool result = World.ScriptDanger(m_host.LocalId, new Vector3((float)pos.X, (float)pos.Y, (float)pos.Z)); 2052 bool result = World.ScriptDanger(m_host.LocalId, new Vector3((float)pos.X, (float)pos.Y, (float)pos.Z));
2053 if (result) 2053 if (result)
2054 { 2054 {
2055 if (presence != null) 2055 if (presence != null)
2056 { 2056 {
2057 float health = presence.Health; 2057 float health = presence.Health;
2058 health += (float)healing; 2058 health += (float)healing;
2059 if (health >= 100) 2059 if (health >= 100)
2060 { 2060 {
2061 health = 100; 2061 health = 100;
2062 } 2062 }
2063 presence.setHealthWithUpdate(health); 2063 presence.setHealthWithUpdate(health);
2064 } 2064 }
2065 } 2065 }
2066 } 2066 }
2067 } 2067 }
2068} 2068}
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs
index 5e20f7d..f5921e1 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs
@@ -162,7 +162,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces
162 162
163 key osGetMapTexture(); 163 key osGetMapTexture();
164 key osGetRegionMapTexture(string regionName); 164 key osGetRegionMapTexture(string regionName);
165 LSL_List osGetRegionStats(); 165 LSL_List osGetRegionStats();
166 166
167 int osGetSimulatorMemory(); 167 int osGetSimulatorMemory();
168 void osKickAvatar(string FirstName,string SurName,string alert); 168 void osKickAvatar(string FirstName,string SurName,string alert);
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs
index acff8fb..13b855f 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs
@@ -515,29 +515,29 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
515 public const string TEXTURE_PLYWOOD = "89556747-24cb-43ed-920b-47caed15465f"; 515 public const string TEXTURE_PLYWOOD = "89556747-24cb-43ed-920b-47caed15465f";
516 public const string TEXTURE_TRANSPARENT = "8dcd4a48-2d37-4909-9f78-f7a9eb4ef903"; 516 public const string TEXTURE_TRANSPARENT = "8dcd4a48-2d37-4909-9f78-f7a9eb4ef903";
517 public const string TEXTURE_MEDIA = "8b5fec65-8d8d-9dc5-cda8-8fdf2716e361"; 517 public const string TEXTURE_MEDIA = "8b5fec65-8d8d-9dc5-cda8-8fdf2716e361";
518 518
519 // Constants for osGetRegionStats 519 // Constants for osGetRegionStats
520 public const int STATS_TIME_DILATION = 0; 520 public const int STATS_TIME_DILATION = 0;
521 public const int STATS_SIM_FPS = 1; 521 public const int STATS_SIM_FPS = 1;
522 public const int STATS_PHYSICS_FPS = 2; 522 public const int STATS_PHYSICS_FPS = 2;
523 public const int STATS_AGENT_UPDATES = 3; 523 public const int STATS_AGENT_UPDATES = 3;
524 public const int STATS_ROOT_AGENTS = 4; 524 public const int STATS_ROOT_AGENTS = 4;
525 public const int STATS_CHILD_AGENTS = 5; 525 public const int STATS_CHILD_AGENTS = 5;
526 public const int STATS_TOTAL_PRIMS = 6; 526 public const int STATS_TOTAL_PRIMS = 6;
527 public const int STATS_ACTIVE_PRIMS = 7; 527 public const int STATS_ACTIVE_PRIMS = 7;
528 public const int STATS_FRAME_MS = 8; 528 public const int STATS_FRAME_MS = 8;
529 public const int STATS_NET_MS = 9; 529 public const int STATS_NET_MS = 9;
530 public const int STATS_PHYSICS_MS = 10; 530 public const int STATS_PHYSICS_MS = 10;
531 public const int STATS_IMAGE_MS = 11; 531 public const int STATS_IMAGE_MS = 11;
532 public const int STATS_OTHER_MS = 12; 532 public const int STATS_OTHER_MS = 12;
533 public const int STATS_IN_PACKETS_PER_SECOND = 13; 533 public const int STATS_IN_PACKETS_PER_SECOND = 13;
534 public const int STATS_OUT_PACKETS_PER_SECOND = 14; 534 public const int STATS_OUT_PACKETS_PER_SECOND = 14;
535 public const int STATS_UNACKED_BYTES = 15; 535 public const int STATS_UNACKED_BYTES = 15;
536 public const int STATS_AGENT_MS = 16; 536 public const int STATS_AGENT_MS = 16;
537 public const int STATS_PENDING_DOWNLOADS = 17; 537 public const int STATS_PENDING_DOWNLOADS = 17;
538 public const int STATS_PENDING_UPLOADS = 18; 538 public const int STATS_PENDING_UPLOADS = 18;
539 public const int STATS_ACTIVE_SCRIPTS = 19; 539 public const int STATS_ACTIVE_SCRIPTS = 19;
540 public const int STATS_SCRIPT_LPS = 20; 540 public const int STATS_SCRIPT_LPS = 20;
541 541
542 } 542 }
543} 543}
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs
index 2ec6226..3870af3 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs
@@ -632,11 +632,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
632 { 632 {
633 return m_OSSL_Functions.osGetRegionMapTexture(regionName); 633 return m_OSSL_Functions.osGetRegionMapTexture(regionName);
634 } 634 }
635 635
636 public LSL_List osGetRegionStats() 636 public LSL_List osGetRegionStats()
637 { 637 {
638 return m_OSSL_Functions.osGetRegionStats(); 638 return m_OSSL_Functions.osGetRegionStats();
639 } 639 }
640 640
641 /// <summary> 641 /// <summary>
642 /// Returns the amount of memory in use by the Simulator Daemon. 642 /// Returns the amount of memory in use by the Simulator Daemon.
@@ -649,7 +649,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
649 } 649 }
650 public void osKickAvatar(string FirstName,string SurName,string alert) 650 public void osKickAvatar(string FirstName,string SurName,string alert)
651 { 651 {
652 m_OSSL_Functions.osKickAvatar( FirstName, SurName, alert); 652 m_OSSL_Functions.osKickAvatar(FirstName, SurName, alert);
653 } 653 }
654 public void osSetSpeed(string UUID, float SpeedModifier) 654 public void osSetSpeed(string UUID, float SpeedModifier)
655 { 655 {
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/ScriptBase.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/ScriptBase.cs
index a44abb0..b138da3 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/ScriptBase.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/ScriptBase.cs
@@ -128,6 +128,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
128 m_InitialValues = GetVars(); 128 m_InitialValues = GetVars();
129 } 129 }
130 130
131 public virtual void StateChange(string newState)
132 {
133 }
134
131 public void Close() 135 public void Close()
132 { 136 {
133// m_sponser.Close(); 137// m_sponser.Close();