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