Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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
        }