private void TryInitialize() { this.Rings = (ArtObjectInstance[])null; if (this.TrialRaysMesh != null) { this.TrialRaysMesh.Dispose(); } if (this.TrialFlareMesh != null) { this.TrialFlareMesh.Dispose(); } this.TrialRaysMesh = this.TrialFlareMesh = (Mesh)null; this.TrialTimeAccumulator = this.SinceStarted = 0.0f; this.SpinSpeed = 0.0f; if (this.maskRenderer != null) { ServiceHelper.RemoveComponent <StargateHost.MaskRenderer>(this.maskRenderer); this.maskRenderer = (StargateHost.MaskRenderer)null; } this.Enabled = this.Visible = this.LevelManager.Name == "STARGATE"; if (!this.Enabled) { return; } this.TrialRaysMesh = new Mesh() { Effect = (BaseEffect) new DefaultEffect.Textured(), Texture = (Dirtyable <Texture>)((Texture)this.CMProvider.Global.Load <Texture2D>("Other Textures/smooth_ray")), Blending = new BlendingMode?(BlendingMode.Additive), SamplerState = SamplerState.AnisotropicClamp, DepthWrites = false, AlwaysOnTop = true }; this.TrialFlareMesh = new Mesh() { Effect = (BaseEffect) new DefaultEffect.Textured(), Texture = (Dirtyable <Texture>)((Texture)this.CMProvider.Global.Load <Texture2D>("Other Textures/flare_alpha")), Blending = new BlendingMode?(BlendingMode.Alphablending), SamplerState = SamplerState.AnisotropicClamp, DepthWrites = false, AlwaysOnTop = true }; this.TrialFlareMesh.AddFace(Vector3.One, Vector3.Zero, FaceOrientation.Right, true); this.Rings = new ArtObjectInstance[4] { this.LevelManager.ArtObjects[5], this.LevelManager.ArtObjects[6], this.LevelManager.ArtObjects[7], this.LevelManager.ArtObjects[8] }; foreach (ArtObjectInstance artObjectInstance in this.Rings) { artObjectInstance.Material = new Material(); } ServiceHelper.AddComponent((IGameComponent)(this.maskRenderer = new StargateHost.MaskRenderer(this.Game))); this.maskRenderer.Center = this.Rings[0].Position; if (this.GameState.SaveData.ThisLevel.InactiveArtObjects.Contains(0)) { this.Enabled = false; this.LevelManager.Scripts[4].Disabled = false; this.LevelManager.Scripts[5].Disabled = false; foreach (ArtObjectInstance aoInstance in this.Rings) { this.LevelManager.RemoveArtObject(aoInstance); } } else { this.LevelManager.Scripts[4].Disabled = true; this.LevelManager.Scripts[5].Disabled = true; this.maskRenderer.Visible = false; } }
private void TryInitialize() { this.Rings = (ArtObjectInstance[]) null; if (this.TrialRaysMesh != null) this.TrialRaysMesh.Dispose(); if (this.TrialFlareMesh != null) this.TrialFlareMesh.Dispose(); this.TrialRaysMesh = this.TrialFlareMesh = (Mesh) null; this.TrialTimeAccumulator = this.SinceStarted = 0.0f; this.SpinSpeed = 0.0f; if (this.maskRenderer != null) { ServiceHelper.RemoveComponent<StargateHost.MaskRenderer>(this.maskRenderer); this.maskRenderer = (StargateHost.MaskRenderer) null; } this.Enabled = this.Visible = this.LevelManager.Name == "STARGATE"; if (!this.Enabled) return; this.TrialRaysMesh = new Mesh() { Effect = (BaseEffect) new DefaultEffect.Textured(), Texture = (Dirtyable<Texture>) ((Texture) this.CMProvider.Global.Load<Texture2D>("Other Textures/smooth_ray")), Blending = new BlendingMode?(BlendingMode.Additive), SamplerState = SamplerState.AnisotropicClamp, DepthWrites = false, AlwaysOnTop = true }; this.TrialFlareMesh = new Mesh() { Effect = (BaseEffect) new DefaultEffect.Textured(), Texture = (Dirtyable<Texture>) ((Texture) this.CMProvider.Global.Load<Texture2D>("Other Textures/flare_alpha")), Blending = new BlendingMode?(BlendingMode.Alphablending), SamplerState = SamplerState.AnisotropicClamp, DepthWrites = false, AlwaysOnTop = true }; this.TrialFlareMesh.AddFace(Vector3.One, Vector3.Zero, FaceOrientation.Right, true); this.Rings = new ArtObjectInstance[4] { this.LevelManager.ArtObjects[5], this.LevelManager.ArtObjects[6], this.LevelManager.ArtObjects[7], this.LevelManager.ArtObjects[8] }; foreach (ArtObjectInstance artObjectInstance in this.Rings) artObjectInstance.Material = new Material(); ServiceHelper.AddComponent((IGameComponent) (this.maskRenderer = new StargateHost.MaskRenderer(this.Game))); this.maskRenderer.Center = this.Rings[0].Position; if (this.GameState.SaveData.ThisLevel.InactiveArtObjects.Contains(0)) { this.Enabled = false; this.LevelManager.Scripts[4].Disabled = false; this.LevelManager.Scripts[5].Disabled = false; foreach (ArtObjectInstance aoInstance in this.Rings) this.LevelManager.RemoveArtObject(aoInstance); } else { this.LevelManager.Scripts[4].Disabled = true; this.LevelManager.Scripts[5].Disabled = true; this.maskRenderer.Visible = false; } }