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); }
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); } } } }
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; } }