Esempio n. 1
0
 public Smoke(Program owner, IAirplaneControl airplaneControl)
 {
     this.owner           = owner;
     this.airplaneControl = airplaneControl;
     Bonsai.Utils.Settings.SettingsChanged += new Bonsai.Utils.Settings.SettingsEventHandler(Settings_SettingsChanged);
     particleSystem = new ParticleSystem(owner.TransparentObjectManager);
     UpdateDetail();
     particleSystem.Texture             = new Bonsai.Objects.Textures.TextureBase("data\\smokepuff.png");
     particleSystem.Texture.Transparent = true;
     particleSystem.Emitting            = false;
     particleSystem.Variation           = new Microsoft.DirectX.Vector3(0.05f, 0.05f, 0.05f);
 }
Esempio n. 2
0
 public ControlSurface(AircraftParameters.ControlSurface surfaceDefinition, IAirplaneControl airplaneControl)
 {
     this.surfaceDefinition = surfaceDefinition;
     this.airplaneControl   = airplaneControl;
     if (!string.IsNullOrEmpty(surfaceDefinition.Filename))
     {
         this.Mesh = new XMesh(surfaceDefinition.Filename, airplaneControl.AircraftParameters.FolderName);
     }
     this.Name         = surfaceDefinition.Filename;
     this.Position     = surfaceDefinition.Position;
     this.RotationAxis = surfaceDefinition.RotationAxis;
     if (surfaceDefinition.Scale != 1)
     {
         this.Scale = new Vector3(surfaceDefinition.Scale, surfaceDefinition.Scale, surfaceDefinition.Scale);
     }
     if (surfaceDefinition.Type == AircraftParameters.ControlSurfaceTypeEnum.PropHighRPM ||
         surfaceDefinition.Type == AircraftParameters.ControlSurfaceTypeEnum.RotorHighRPM ||
         surfaceDefinition.Type == AircraftParameters.ControlSurfaceTypeEnum.TailrotorHighRPM)
     {
         Program.Instance.TransparentObjectManager.Objects.Add(this);
         this.Visible = false;
     }
     if (surfaceDefinition.Type == AircraftParameters.ControlSurfaceTypeEnum.Reflective &&
         Effects.Reflection.Enabled)
     {
         InitializeReflectionShader();
         this.Shader = reflectionShader;
     }
     else
     {
         this.Shader = null;
     }
     if (surfaceDefinition.ChildControlSurfaces != null)
     {
         foreach (AircraftParameters.ControlSurface childDef in surfaceDefinition.ChildControlSurfaces)
         {
             ControlSurface childSurface = new ControlSurface(childDef, airplaneControl);
             if (childSurface != null)
             {
                 this.AddChild(childSurface);
             }
         }
     }
 }
Esempio n. 3
0
        public AirplaneModel(IAirplaneControl airplaneControl)
        {
            this.airplaneControl = airplaneControl;
            if (!string.IsNullOrEmpty(airplaneControl.AircraftParameters.FixedMesh))
            {
                this.Mesh = new XMesh(airplaneControl.AircraftParameters.FixedMesh, airplaneControl.AircraftParameters.FolderName);
                XMesh xMesh = (XMesh)(this.Mesh);
                xMesh.ComputeBoundingBox();
            }
            this.Scale    = new Vector3(airplaneControl.AircraftParameters.Scale, airplaneControl.AircraftParameters.Scale, airplaneControl.AircraftParameters.Scale);
            this.Position = new Vector3(0.0f, 10.0f, 0.0f);

            foreach (AircraftParameters.ControlSurface controlSurfaceDef in airplaneControl.AircraftParameters.ControlSurfaces)
            {
                ControlSurface surface = new ControlSurface(controlSurfaceDef, airplaneControl);
                AddChild(surface);
            }

            engineMinFreq = airplaneControl.AircraftParameters.EngineMinFrequency;
            engineMaxFreq = airplaneControl.AircraftParameters.EngineMaxFrequency;
            if (!string.IsNullOrEmpty(airplaneControl.AircraftParameters.EngineSound))
            {
                engineSound = new SoundControllable(airplaneControl.AircraftParameters.EngineSound, airplaneControl.AircraftParameters.FolderName);
            }
            if ((airplaneControl.AircraftParameters.FlightModelType == AircraftParameters.FlightModelTypeEnum.Helicopter) &&
                (airplaneControl.AircraftParameters.RotorSound != null))
            {
                if (!string.IsNullOrEmpty(airplaneControl.AircraftParameters.RotorSound))
                {
                    rotorSound = new SoundControllable(airplaneControl.AircraftParameters.RotorSound, airplaneControl.AircraftParameters.FolderName);
                }
            }

            crashSound = new SoundControllable("data\\crash.wav");

            if (!(airplaneControl is RecordedFlight))
            {
                Birds.ScareCrow = this;
            }
        }