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); } } } } }
public override void DrawEffects(PlayerDrawInfo drawInfo, ref float r, ref float g, ref float b, ref float a, ref bool fullBright) { //updates visuals for cursed accessories CursedAccessory.Bootlegdust.ForEach(BootlegDust => BootlegDust.Update()); CursedAccessory.Bootlegdust.RemoveAll(BootlegDust => BootlegDust.time <= 0); //updates visuals for blessed accessories BlessedAccessory.Bootlegdust.ForEach(BootlegDust => BootlegDust.Update()); BlessedAccessory.Bootlegdust.RemoveAll(BootlegDust => BootlegDust.time <= 0); BlessedAccessory.Bootlegdust2.ForEach(BootlegDust => BootlegDust.Update()); BlessedAccessory.Bootlegdust2.RemoveAll(BootlegDust => BootlegDust.time <= 0); }