Example #1
0
 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);
 }
Example #2
0
 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;
 }
Example #3
0
 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;
     }
   }
 }
Example #4
0
 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;
 }