private void DrawVitricBackground(On.Terraria.Main.orig_DrawBackgroundBlackFill orig, Main self) { orig(self); if (Main.gameMenu || Main.dedServ) { return; } Player player = null; if (Main.playerLoaded) { player = Main.LocalPlayer; } if (player != null && StarlightWorld.VitricBiome.Intersects(new Rectangle((int)Main.screenPosition.X / 16, (int)Main.screenPosition.Y / 16, Main.screenWidth / 16, Main.screenHeight / 16))) { Vector2 basepoint = (StarlightWorld.VitricBiome != null) ? StarlightWorld.VitricBiome.TopLeft() * 16 + new Vector2(-2000, 0) : Vector2.Zero; DrawLayer(basepoint, GetTexture("StarlightRiver/Assets/Backgrounds/Glass5"), 0, 300); //the background DrawLayer(basepoint, GetTexture("StarlightRiver/Assets/Backgrounds/Glass1"), 6, 170, new Color(150, 175, 190)); //the back sand DrawLayer(basepoint, GetTexture("StarlightRiver/Assets/Backgrounds/Glass1"), 6.5f, 400, new Color(120, 150, 170), true); //the back sand on top Main.spriteBatch.End(); Main.spriteBatch.Begin(default, default, SamplerState.PointClamp, default, default, default, Main.GameViewMatrix.ZoomMatrix);
private void Main_DrawBackgroundBlackFill(On.Terraria.Main.orig_DrawBackgroundBlackFill orig, Main self) { if (!TBAR.TimeSkipManager.IsTimeSkipped) { orig.Invoke(self); } }
private void drawVitricBackground(On.Terraria.Main.orig_DrawBackgroundBlackFill orig, Terraria.Main self) { orig(self); Player player = Main.LocalPlayer; VitricBackgroundDust.ForEach(BootlegDust => BootlegDust.Update()); VitricBackgroundDust.RemoveAll(BootlegDust => BootlegDust.time <= 0); VitricForegroundDust.ForEach(BootlegDust => BootlegDust.Update()); VitricForegroundDust.RemoveAll(BootlegDust => BootlegDust.time <= 0); if (Main.playerLoaded && player.GetModPlayer <BiomeHandler>().ZoneGlass) { Vector2 basepoint = (LegendWorld.vitricTopLeft != null) ? LegendWorld.vitricTopLeft * 16 + new Vector2(-2000, 1000) : Vector2.Zero; for (int k = 5; k >= 0; k--) { drawLayer(basepoint, ModContent.GetTexture("StarlightRiver/Backgrounds/Glass" + k), k + 1); if (k == 5) { VitricBackgroundDust.ForEach(BootlegDust => BootlegDust.Draw(Main.spriteBatch)); } if (k == 2) { VitricForegroundDust.ForEach(BootlegDust => BootlegDust.Draw(Main.spriteBatch)); } } for (int k = (int)(player.position.X - basepoint.X) - (int)(Main.screenWidth * 1.5f); k <= (int)(player.position.X - basepoint.X) + (int)(Main.screenWidth * 1.5f); k += 30) { if (Main.rand.Next(500) == 0) { BootlegDust dus = new VitricDust(ModContent.GetTexture("StarlightRiver/GUI/Light"), basepoint + new Vector2(-2000, 1000), k, 1.5f, 0.3f, 0.1f); VitricBackgroundDust.Add(dus); } if (Main.rand.Next(400) == 0) { BootlegDust dus2 = new VitricDust(ModContent.GetTexture("StarlightRiver/GUI/Light"), basepoint + new Vector2(-2000, 1000), k, 2.25f, 1f, 0.4f); VitricForegroundDust.Add(dus2); } } for (int i = -2 + (int)(player.position.X - Main.screenWidth / 2) / 16; i <= 2 + (int)(player.position.X + Main.screenWidth / 2) / 16; i++) { for (int j = -2 + (int)(player.position.Y - Main.screenHeight) / 16; j <= 2 + (int)(player.position.Y + Main.screenHeight) / 16; j++) { if (Lighting.Brightness(i, j) == 0 || ((Main.tile[i, j].active() && Main.tile[i, j].collisionType == 1) || Main.tile[i, j].wall != 0)) { Color color = Color.Black * (1 - Lighting.Brightness(i, j) * 2); Main.spriteBatch.Draw(Main.blackTileTexture, new Vector2(i * 16, j * 16) - Main.screenPosition, color); } else if (i % 4 == 0 && j % 4 == 0 && Main.tile[i, j].wall == 0) { Lighting.AddLight(new Vector2(i * 16, j * 16), new Vector3(0.3f, 0.35f, 0.4f) * 2.1f); } } } } }
private void DrawVitricBackground(On.Terraria.Main.orig_DrawBackgroundBlackFill orig, Main self) { orig(self); if (Main.gameMenu || Main.dedServ) { return; } Player player = Main.LocalPlayer; if (player != null && StarlightWorld.VitricBiome.Intersects(Helper.ScreenTiles)) { Vector2 basepoint = (StarlightWorld.VitricBiome != null) ? StarlightWorld.VitricBiome.TopLeft() * 16 + new Vector2(-2000, 0) : Vector2.Zero; Main.spriteBatch.End(); Main.spriteBatch.Begin(default, default, SamplerState.PointClamp, default, default, default, Main.GameViewMatrix.ZoomMatrix);
private void DrawVitricBackground(On.Terraria.Main.orig_DrawBackgroundBlackFill orig, Main self) { orig(self); if (Main.gameMenu) { return; } Player player = null; if (Main.playerLoaded) { player = Main.LocalPlayer; } if (player != null && StarlightWorld.VitricBiome.Intersects(new Rectangle((int)Main.screenPosition.X / 16, (int)Main.screenPosition.Y / 16, Main.screenWidth / 16, Main.screenHeight / 16))) { Vector2 basepoint = (StarlightWorld.VitricBiome != null) ? StarlightWorld.VitricBiome.TopLeft() * 16 + new Vector2(-2000, 0) : Vector2.Zero; DrawLayer(basepoint, ModContent.GetTexture("StarlightRiver/Backgrounds/Glass5"), 0, 300); //the background DrawLayer(basepoint, ModContent.GetTexture("StarlightRiver/Backgrounds/Glass1"), 5, 170, new Color(150, 175, 190)); //the back sand DrawLayer(basepoint, ModContent.GetTexture("StarlightRiver/Backgrounds/Glass1"), 5.5f, 400, new Color(120, 150, 170), true); //the back sand on top BackgroundParticles.DrawParticles(Main.spriteBatch); for (int k = 4; k >= 0; k--) { int off = 140 + (440 - k * 110); if (k == 4) { off = 400; } DrawLayer(basepoint, ModContent.GetTexture("StarlightRiver/Backgrounds/Glass" + k), k + 1, off); //the crystal layers and front sand if (k == 0) { DrawLayer(basepoint, ModContent.GetTexture("StarlightRiver/Backgrounds/Glass1"), 0.5f, 100, new Color(180, 220, 235), true); //the sand on top } if (k == 2) { ForegroundParticles.DrawParticles(Main.spriteBatch); } } int screenCenterX = (int)(Main.screenPosition.X + Main.screenWidth / 2); for (int k = (int)(screenCenterX - basepoint.X) - (int)(Main.screenWidth * 1.5f); k <= (int)(screenCenterX - basepoint.X) + (int)(Main.screenWidth * 1.5f); k += 30) { Vector2 spawnPos = basepoint + new Vector2(2000 + Main.rand.Next(8000), 1800); if (Main.rand.Next(1200) == 0) { BackgroundParticles.AddParticle(new Particle(new Vector2(0, basepoint.Y + 1550), new Vector2(0, Main.rand.NextFloat(-1.6f, -0.6f)), 0, 0, Color.White, 1800, spawnPos)); } if (Main.rand.Next(1000) == 0) { ForegroundParticles.AddParticle(new Particle(new Vector2(0, basepoint.Y + 1550), new Vector2(0, Main.rand.NextFloat(-1.6f, -0.6f)), 0, 0, Color.White, 1800, spawnPos)); } } DrawTilingBackground(); DrawBlack(); } }