Esempio n. 1
0
 public void SetPageUrl(string currentUrlWithQueryString)
 {
     if (!currentUrlWithQueryString.Contains("?"))
     {
         PageUrl = currentUrlWithQueryString + "?p=" + Page;
     }
     else
     {
         if (rgx.Match(currentUrlWithQueryString).Success)
         {
             PageUrl = rgx.Replace(currentUrlWithQueryString, ("p=" + Page));
         }
         else
         {
             PageUrl = currentUrlWithQueryString + ("&p=" + Page);
         }
     }
     if (NextPage >= 1)
     {
         NextPageUrl = rgx.Replace(PageUrl, ("p=" + NextPage.ToString()));
     }
     if (PrevPage >= 1)
     {
         PrevPageUrl = rgx.Replace(PageUrl, ("p=" + PrevPage.ToString()));
     }
     PageUrlTemplate = rgx.Replace(PageUrl, ("p={{page}}"));
 }
 private void BeforeRender()
 {
     if (loading)
     {
         return;
     }
     if (screenBuffer == null || screenBuffer.IsDisposed)
     {
         screenBuffer = VirtualContent.CreateRenderTarget("WaveDash-Buffer", ScreenWidth, ScreenHeight, true, true, 0);
     }
     if (prevPageBuffer == null || prevPageBuffer.IsDisposed)
     {
         prevPageBuffer = VirtualContent.CreateRenderTarget("WaveDash-Screen1", ScreenWidth, ScreenHeight, false, true, 0);
     }
     if (currPageBuffer == null || currPageBuffer.IsDisposed)
     {
         currPageBuffer = VirtualContent.CreateRenderTarget("WaveDash-Screen2", ScreenWidth, ScreenHeight, false, true, 0);
     }
     if (pageTurning && PrevPage != null)
     {
         Engine.Graphics.GraphicsDevice.SetRenderTarget(prevPageBuffer);
         Engine.Graphics.GraphicsDevice.Clear(PrevPage.ClearColor);
         Draw.SpriteBatch.Begin();
         PrevPage.Render();
         Draw.SpriteBatch.End();
     }
     if (CurrPage != null)
     {
         Engine.Graphics.GraphicsDevice.SetRenderTarget(currPageBuffer);
         Engine.Graphics.GraphicsDevice.Clear(CurrPage.ClearColor);
         Draw.SpriteBatch.Begin();
         CurrPage.Render();
         Draw.SpriteBatch.End();
     }
     Engine.Graphics.GraphicsDevice.SetRenderTarget(screenBuffer);
     Engine.Graphics.GraphicsDevice.Clear(Color.Black);
     if (pageTurning)
     {
         if (CurrPage.Transition == WallbouncePresentationPage.Transitions.ScaleIn)
         {
             Draw.SpriteBatch.Begin();
             Draw.SpriteBatch.Draw(prevPageBuffer, Vector2.Zero, Color.White);
             Vector2 scale = Vector2.One * pageEase;
             Draw.SpriteBatch.Draw(currPageBuffer, ScaleInPoint, new Rectangle?(currPageBuffer.Bounds), Color.White, 0f, ScaleInPoint, scale, SpriteEffects.None, 0f);
             Draw.SpriteBatch.End();
             return;
         }
         if (CurrPage.Transition == WallbouncePresentationPage.Transitions.FadeIn)
         {
             Draw.SpriteBatch.Begin();
             Draw.SpriteBatch.Draw(prevPageBuffer, Vector2.Zero, Color.White);
             Draw.SpriteBatch.Draw(currPageBuffer, Vector2.Zero, Color.White * pageEase);
             Draw.SpriteBatch.End();
             return;
         }
         if (CurrPage.Transition == WallbouncePresentationPage.Transitions.Rotate3D)
         {
             float num = -1.57079637f * pageEase;
             RenderQuad(prevPageBuffer, pageEase, num);
             RenderQuad(currPageBuffer, pageEase, 1.57079637f + num);
             return;
         }
         if (CurrPage.Transition == WallbouncePresentationPage.Transitions.Blocky)
         {
             Draw.SpriteBatch.Begin();
             Draw.SpriteBatch.Draw(prevPageBuffer, Vector2.Zero, Color.White);
             uint num2 = 1u;
             int  num3 = ScreenWidth / 60;
             for (int i = 0; i < ScreenWidth; i += num3)
             {
                 for (int j = 0; j < ScreenHeight; j += num3)
                 {
                     if (WaveDashPresentation.PseudoRandRange(ref num2, 0f, 1f) <= pageEase)
                     {
                         Draw.SpriteBatch.Draw(currPageBuffer, new Rectangle(i, j, num3, num3), new Rectangle?(new Rectangle(i, j, num3, num3)), Color.White);
                     }
                 }
             }
             Draw.SpriteBatch.End();
             return;
         }
         if (CurrPage.Transition == WallbouncePresentationPage.Transitions.Spiral)
         {
             Draw.SpriteBatch.Begin();
             Draw.SpriteBatch.Draw(prevPageBuffer, Vector2.Zero, Color.White);
             Vector2 scale2   = Vector2.One * pageEase;
             float   rotation = (1f - pageEase) * 12f;
             Draw.SpriteBatch.Draw(currPageBuffer, Celeste.Celeste.TargetCenter, new Rectangle?(currPageBuffer.Bounds), Color.White, rotation, Celeste.Celeste.TargetCenter, scale2, SpriteEffects.None, 0f);
             Draw.SpriteBatch.End();
             return;
         }
     }
     else
     {
         Draw.SpriteBatch.Begin();
         Draw.SpriteBatch.Draw(currPageBuffer, Vector2.Zero, Color.White);
         Draw.SpriteBatch.End();
     }
 }