public LSL_Vector llWind(LSL_Vector offset) { if (!ScriptProtection.CheckThreatLevel(ThreatLevel.None, "LSL", m_host, "LSL", m_itemID)) { return(new LSL_Vector()); } LSL_Vector wind = new LSL_Vector(0, 0, 0); IWindModule module = World.RequestModuleInterface <IWindModule>(); if (module != null) { Vector3 pos = m_host.GetWorldPosition(); int x = (int)(pos.X + offset.x); int y = (int)(pos.Y + offset.y); Vector3 windSpeed = module.WindSpeed(x, y, 0); wind.x = windSpeed.X; wind.y = windSpeed.Y; } return(wind); }
public void AddWindForce(float mass, d.Vector3 AbsolutePosition, ref Vector3 force) { if (!DoPhyWind) return; if (m_windModule == null) m_windModule = m_registry.RequestModuleInterface<IWindModule>(); if (m_windModule == null) return; Vector3 windSpeed = m_windModule.WindSpeed((int) AbsolutePosition.X, (int) AbsolutePosition.Y, (int) AbsolutePosition.Z); force = (windSpeed)/(mass); force /= 20f; //Constant that doesn't make it too windy }