aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ScriptEngine/Shared/Api/Implementation
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/ScriptEngine/Shared/Api/Implementation')
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs16
1 files changed, 15 insertions, 1 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index 956a500..d410a59 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -953,7 +953,21 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
953 public LSL_Vector llWind(LSL_Vector offset) 953 public LSL_Vector llWind(LSL_Vector offset)
954 { 954 {
955 m_host.AddScriptLPS(1); 955 m_host.AddScriptLPS(1);
956 return new LSL_Vector(); 956 LSL_Vector wind = new LSL_Vector(0, 0, 0);
957 IWindModule module = World.RequestModuleInterface<IWindModule>();
958 if (module != null && module.WindSpeeds != null)
959 {
960 Vector3 pos = m_host.GetWorldPosition();
961 int x = (int)((pos.X + offset.x)/ 16);
962 int y = (int)((pos.Y + offset.y)/ 16);
963 if (x < 0) x = 0;
964 if (x > 15) x = 15;
965 if (y < 0) y = 0;
966 if (y > 15) y = 15;
967 wind.x = module.WindSpeeds[y * 16 + x].X;
968 wind.y = module.WindSpeeds[y * 16 + x].Y;
969 }
970 return wind;
957 } 971 }
958 972
959 public void llSetStatus(int status, int value) 973 public void llSetStatus(int status, int value)