public override BaseEffect Clone() { DefaultEffect.LitVertexColored litVertexColored = new DefaultEffect.LitVertexColored(); litVertexColored.Fullbright = this.Fullbright; litVertexColored.Emissive = this.Emissive; litVertexColored.Specular = this.Specular; litVertexColored.AlphaIsEmissive = this.AlphaIsEmissive; return((BaseEffect)litVertexColored); }
public override void Initialize() { base.Initialize(); NowLoadingHexahedron.Phase = NowLoadingHexahedron.Phases.VectorOutline; TimeSpan timeSpan; NowLoadingHexahedron.SinceTurning = timeSpan = TimeSpan.Zero; NowLoadingHexahedron.SinceWavesStarted = timeSpan; NowLoadingHexahedron.SincePhaseStarted = timeSpan; this.PlayerManager.CanControl = false; this.WarpSound = this.CMProvider.GetForLevel(this.GameState.IsTrialMode ? "trial/ELDERS" : "ELDERS").Load<SoundEffect>("Sounds/Zu/HexaWarpIn"); this.Dot.Hidden = false; this.Dot.Behaviour = DotHost.BehaviourType.ClampToTarget; this.Dot.Target = this.Center; this.Dot.ScalePulsing = 0.0f; this.Dot.Opacity = 0.0f; Waiters.Wait((Func<bool>) (() => this.PlayerManager.Grounded), (Action) (() => { this.WalkTo.Destination = (Func<Vector3>) (() => this.PlayerManager.Position * Vector3.UnitY + this.Center * FezMath.XZMask); this.WalkTo.NextAction = ActionType.Idle; this.PlayerManager.Action = ActionType.WalkingTo; })); this.TimeManager.TimeFactor = this.TimeManager.DefaultTimeFactor; NowLoadingHexahedron loadingHexahedron1 = this; Mesh mesh1 = new Mesh(); Mesh mesh2 = mesh1; DefaultEffect.VertexColored vertexColored1 = new DefaultEffect.VertexColored(); vertexColored1.Fullbright = true; vertexColored1.AlphaIsEmissive = false; DefaultEffect.VertexColored vertexColored2 = vertexColored1; mesh2.Effect = (BaseEffect) vertexColored2; mesh1.DepthWrites = false; mesh1.AlwaysOnTop = true; Mesh mesh3 = mesh1; loadingHexahedron1.Outline = mesh3; this.Outline.AddWireframePolygon(Color.White, new Vector3(0.0f, 0.8660254f, 0.0f), new Vector3(0.7071068f, 0.2886752f, 0.0f), new Vector3(0.7071068f, -0.2886752f, 0.0f), new Vector3(0.0f, -0.8660254f, 0.0f), new Vector3(-0.7071068f, -0.2886752f, 0.0f), new Vector3(-0.7071068f, 0.2886752f, 0.0f), new Vector3(0.0f, 0.8660254f, 0.0f)); this.Outline.Scale = new Vector3(4f); this.Outline.BakeTransform<FezVertexPositionColor>(); Group firstGroup = this.Outline.FirstGroup; firstGroup.Material = new Material(); firstGroup.Enabled = false; for (int index = 0; index < 1024; ++index) this.Outline.CloneGroup(firstGroup); firstGroup.Enabled = true; NowLoadingHexahedron loadingHexahedron2 = this; Mesh mesh4 = new Mesh(); Mesh mesh5 = mesh4; DefaultEffect.VertexColored vertexColored3 = new DefaultEffect.VertexColored(); vertexColored3.Fullbright = true; vertexColored3.AlphaIsEmissive = false; DefaultEffect.VertexColored vertexColored4 = vertexColored3; mesh5.Effect = (BaseEffect) vertexColored4; mesh4.DepthWrites = false; mesh4.AlwaysOnTop = true; mesh4.Material.Opacity = 0.0f; Mesh mesh6 = mesh4; loadingHexahedron2.WireCube = mesh6; this.WireCube.AddWireframeBox(Vector3.One * 4f, Vector3.Zero, Color.White, true); this.WireCube.Rotation = Quaternion.CreateFromAxisAngle(Vector3.Right, (float) Math.Asin(Math.Sqrt(2.0) / Math.Sqrt(3.0))) * Quaternion.CreateFromAxisAngle(Vector3.Up, 0.7853982f); this.WireCube.BakeTransform<FezVertexPositionColor>(); NowLoadingHexahedron loadingHexahedron3 = this; Mesh mesh7 = new Mesh(); Mesh mesh8 = mesh7; DefaultEffect.LitVertexColored litVertexColored1 = new DefaultEffect.LitVertexColored(); litVertexColored1.Fullbright = false; litVertexColored1.AlphaIsEmissive = false; DefaultEffect.LitVertexColored litVertexColored2 = litVertexColored1; mesh8.Effect = (BaseEffect) litVertexColored2; mesh7.AlwaysOnTop = true; mesh7.Material.Opacity = 0.0f; Mesh mesh9 = mesh7; loadingHexahedron3.SolidCube = mesh9; this.SolidCube.AddFlatShadedBox(Vector3.One * 4f, Vector3.Zero, Color.White, true); this.SolidCube.Rotation = Quaternion.CreateFromAxisAngle(Vector3.Right, (float) Math.Asin(Math.Sqrt(2.0) / Math.Sqrt(3.0))) * Quaternion.CreateFromAxisAngle(Vector3.Up, 0.7853982f); this.SolidCube.BakeTransform<VertexPositionNormalColor>(); NowLoadingHexahedron loadingHexahedron4 = this; Mesh mesh10 = new Mesh(); Mesh mesh11 = mesh10; DefaultEffect.Textured textured1 = new DefaultEffect.Textured(); textured1.Fullbright = true; textured1.AlphaIsEmissive = false; DefaultEffect.Textured textured2 = textured1; mesh11.Effect = (BaseEffect) textured2; mesh10.DepthWrites = false; mesh10.Material.Opacity = 0.0f; mesh10.Blending = new BlendingMode?(BlendingMode.Alphablending); mesh10.SamplerState = SamplerState.LinearClamp; Mesh mesh12 = mesh10; loadingHexahedron4.Flare = mesh12; this.Flare.AddFace(Vector3.One * 4f, Vector3.Zero, FaceOrientation.Front, true); this.Flare.Texture = (Dirtyable<Texture>) ((Texture) this.CMProvider.Global.Load<Texture2D>("Other Textures/flare_alpha")); this.Rays = 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 }; for (int index = 0; index < 128; ++index) { float x = 0.75f; float num = 0.0075f; Group group = this.Rays.AddGroup(); group.Geometry = (IIndexedPrimitiveCollection) new IndexedUserPrimitives<FezVertexPositionTexture>(new FezVertexPositionTexture[6] { new FezVertexPositionTexture(new Vector3(0.0f, (float) ((double) num / 2.0 * 0.100000001490116), 0.0f), new Vector2(0.0f, 0.0f)), new FezVertexPositionTexture(new Vector3(x, num / 2f, 0.0f), new Vector2(1f, 0.0f)), new FezVertexPositionTexture(new Vector3(x, (float) ((double) num / 2.0 * 0.100000001490116), 0.0f), new Vector2(1f, 0.45f)), new FezVertexPositionTexture(new Vector3(x, (float) (-(double) num / 2.0 * 0.100000001490116), 0.0f), new Vector2(1f, 0.55f)), new FezVertexPositionTexture(new Vector3(x, (float) (-(double) num / 2.0), 0.0f), new Vector2(1f, 1f)), new FezVertexPositionTexture(new Vector3(0.0f, (float) (-(double) num / 2.0 * 0.100000001490116), 0.0f), new Vector2(0.0f, 1f)) }, new int[12] { 0, 1, 2, 0, 2, 5, 5, 2, 3, 5, 3, 4 }, PrimitiveType.TriangleList); group.Rotation = Quaternion.CreateFromAxisAngle(Vector3.Forward, RandomHelper.Between(0.0, 6.28318548202515)); group.Material = new Material() { Diffuse = new Vector3(0.0f) }; } ServiceHelper.AddComponent((IGameComponent) (this.TheDarkening = new NowLoadingHexahedron.Darkener(this.Game))); this.LevelManager.LevelChanged += new Action(this.Kill); SoundEffectExtensions.Emit(this.WarpSound).Persistent = true; }
private void FillInPlanes() { bool flag = true; Color color; if (this.LevelManager.WaterType == LiquidType.Sewer) color = new Color(32, 70, 49); else if (this.LevelManager.WaterType == LiquidType.Lava) color = Color.Black; else if (this.LevelManager.BlinkingAlpha) { color = Color.Black; } else { flag = false; color = new Color(56, 40, 95); } MenuCube menuCube = this; Mesh mesh1 = new Mesh(); Mesh mesh2 = mesh1; DefaultEffect.LitVertexColored litVertexColored1 = new DefaultEffect.LitVertexColored(); litVertexColored1.Fullbright = flag; DefaultEffect.LitVertexColored litVertexColored2 = litVertexColored1; mesh2.Effect = (BaseEffect) litVertexColored2; mesh1.Material = this.AoInstance.Material; mesh1.Blending = new BlendingMode?(BlendingMode.Alphablending); Mesh mesh3 = mesh1; menuCube.HidingPlanes = mesh3; Vector3 size = this.AoInstance.ArtObject.Size; int fromGroup = 0; foreach (MenuCubeFace face in Util.GetValues<MenuCubeFace>()) { if (face != MenuCubeFace.AntiCubes || this.GameState.SaveData.SecretCubes > 0) { Vector3 vector3_1 = FezMath.Abs(MenuCubeFaceExtensions.GetForward(face)); for (int index = 0; index < MenuCubeFaceExtensions.GetCount(face) && index < 32; ++index) { int num1 = index; if (num1 >= 14) num1 += 2; if (num1 >= 20) num1 += 2; Vector3 vector3_2 = (float) MenuCubeFaceExtensions.GetDepth(face) * MenuCubeFaceExtensions.GetForward(face) / 16f; Vector3 vector3_3 = (float) MenuCubeFaceExtensions.GetSize(face) * (Vector3.One - vector3_1) / 16f; Vector3 vector3_4 = -vector3_2 / 2f + vector3_3 * MenuCubeFaceExtensions.GetRight(face) / 2f; Vector3 vector3_5 = -vector3_2 / 2f + vector3_3 * -MenuCubeFaceExtensions.GetRight(face) / 2f; Vector3 vector3_6 = -vector3_2 / 2f + vector3_3 * Vector3.Up / 2f; Vector3 vector3_7 = -vector3_2 / 2f + vector3_3 * Vector3.Down / 2f; Vector3 vector3_8 = -MenuCubeFaceExtensions.GetForward(face) * (float) MenuCubeFaceExtensions.GetDepth(face) / 32f; Vector3 vector3_9 = Vector3.Up * vector3_3 / 2f; Vector3 vector3_10 = -MenuCubeFaceExtensions.GetForward(face) * (float) MenuCubeFaceExtensions.GetDepth(face) / 32f; Vector3 vector3_11 = Vector3.Up * vector3_3 / 2f; Vector3 vector3_12 = -MenuCubeFaceExtensions.GetRight(face) * vector3_3 / 2f; Vector3 vector3_13 = MenuCubeFaceExtensions.GetForward(face) * (float) MenuCubeFaceExtensions.GetDepth(face) / 32f; Vector3 vector3_14 = -MenuCubeFaceExtensions.GetRight(face) * vector3_3 / 2f; Vector3 vector3_15 = MenuCubeFaceExtensions.GetForward(face) * (float) MenuCubeFaceExtensions.GetDepth(face) / 32f; Group group = this.HidingPlanes.AddGroup(); group.Geometry = (IIndexedPrimitiveCollection) new IndexedUserPrimitives<VertexPositionNormalColor>(new VertexPositionNormalColor[16] { new VertexPositionNormalColor(vector3_4 - vector3_8 + vector3_9, -MenuCubeFaceExtensions.GetRight(face), color), new VertexPositionNormalColor(vector3_4 - vector3_8 - vector3_9, -MenuCubeFaceExtensions.GetRight(face), color), new VertexPositionNormalColor(vector3_4 + vector3_8 + vector3_9, -MenuCubeFaceExtensions.GetRight(face), color), new VertexPositionNormalColor(vector3_4 + vector3_8 - vector3_9, -MenuCubeFaceExtensions.GetRight(face), color), new VertexPositionNormalColor(vector3_5 - vector3_10 + vector3_11, MenuCubeFaceExtensions.GetRight(face), color), new VertexPositionNormalColor(vector3_5 - vector3_10 - vector3_11, MenuCubeFaceExtensions.GetRight(face), color), new VertexPositionNormalColor(vector3_5 + vector3_10 + vector3_11, MenuCubeFaceExtensions.GetRight(face), color), new VertexPositionNormalColor(vector3_5 + vector3_10 - vector3_11, MenuCubeFaceExtensions.GetRight(face), color), new VertexPositionNormalColor(vector3_6 - vector3_12 + vector3_13, Vector3.Down, color), new VertexPositionNormalColor(vector3_6 - vector3_12 - vector3_13, Vector3.Down, color), new VertexPositionNormalColor(vector3_6 + vector3_12 + vector3_13, Vector3.Down, color), new VertexPositionNormalColor(vector3_6 + vector3_12 - vector3_13, Vector3.Down, color), new VertexPositionNormalColor(vector3_7 - vector3_14 + vector3_15, Vector3.Up, color), new VertexPositionNormalColor(vector3_7 - vector3_14 - vector3_15, Vector3.Up, color), new VertexPositionNormalColor(vector3_7 + vector3_14 + vector3_15, Vector3.Up, color), new VertexPositionNormalColor(vector3_7 + vector3_14 - vector3_15, Vector3.Up, color) }, new int[24] { 0, 1, 2, 2, 1, 3, 4, 6, 5, 5, 6, 7, 8, 9, 10, 10, 9, 11, 13, 12, 14, 13, 14, 15 }, PrimitiveType.TriangleList); int num2 = (int) Math.Sqrt((double) MenuCubeFaceExtensions.GetCount(face)); int num3 = num1 % num2; int num4 = num1 / num2; Vector3 vector3_16 = (float) (num3 * MenuCubeFaceExtensions.GetSpacing(face)) / 16f * MenuCubeFaceExtensions.GetRight(face) + (float) (num4 * MenuCubeFaceExtensions.GetSpacing(face)) / 16f * -Vector3.UnitY + size / 2f * (MenuCubeFaceExtensions.GetForward(face) + Vector3.Up - MenuCubeFaceExtensions.GetRight(face)) + MenuCubeFaceExtensions.GetForward(face) * -8f / 16f + (Vector3.Down + MenuCubeFaceExtensions.GetRight(face)) * (float) MenuCubeFaceExtensions.GetOffset(face) / 16f; group.Position = vector3_16; } this.HidingPlanes.CollapseToBufferWithNormal<VertexPositionNormalColor>(fromGroup, this.HidingPlanes.Groups.Count - fromGroup).CustomData = (object) face; ++fromGroup; } } }
public override BaseEffect Clone() { DefaultEffect.LitVertexColored litVertexColored = new DefaultEffect.LitVertexColored(); litVertexColored.Fullbright = this.Fullbright; litVertexColored.Emissive = this.Emissive; litVertexColored.Specular = this.Specular; litVertexColored.AlphaIsEmissive = this.AlphaIsEmissive; return (BaseEffect) litVertexColored; }