private static void DustEdgesOnRender(On.Celeste.DustEdges.orig_Render orig, DustEdges self) { Vector2?origCameraPosition = null; Camera camera = self.SceneAs <Level>()?.Camera; if (Settings.CenterCamera && savedCameraPosition != null && camera != null) { origCameraPosition = camera.Position; camera.Position = savedCameraPosition.Value; } orig(self); if (origCameraPosition != null) { camera.Position = origCameraPosition.Value; } }
private static void onDustEdgesBeforeRender(On.Celeste.DustEdges.orig_BeforeRender orig, DustEdges self) { orig(self); // draw our image in ""substractive"" mode over the resort dust layer. float shift = (Engine.Scene.TimeActive * speed) % image.Width; Draw.SpriteBatch.Begin(SpriteSortMode.Deferred, substractive, SamplerState.PointClamp, DepthStencilState.None, RasterizerState.CullNone, null, Matrix.Identity); for (float offset = -shift; offset < 320; offset += image.Width) { Draw.SpriteBatch.Draw(image.Texture.Texture, new Vector2(offset, 0), Color.White); } Draw.SpriteBatch.End(); }
private static void DustEdgesOnBeforeRender(On.Celeste.DustEdges.orig_BeforeRender orig, DustEdges self) { CenterTheCamera(() => orig(self)); }