From 42e413012dbe6819643741499bce37bea795aff1 Mon Sep 17 00:00:00 2001 From: AxeelAnder Date: Wed, 24 Oct 2018 15:56:24 +0800 Subject: [PATCH] added filter: only check when zones contains towers --- TShockAPI/Bouncer.cs | 53 +++++++++++++++++++++++--------------------- 1 file changed, 28 insertions(+), 25 deletions(-) diff --git a/TShockAPI/Bouncer.cs b/TShockAPI/Bouncer.cs index bb9937a6..d38a249f 100644 --- a/TShockAPI/Bouncer.cs +++ b/TShockAPI/Bouncer.cs @@ -1006,32 +1006,35 @@ namespace TShockAPI /// The packet arguments that the event has. internal void OnPlayerZone(object sender, GetDataHandlers.PlayerZoneEventArgs args) { - bool hasSolarTower = false; - bool hasVortexTower = false; - bool hasNebulaTower = false; - bool hasStardustTower = false; - - // May need to optimize - foreach (var npc in Main.npc) + if(args.Zone2[1] || args.Zone2[2] || args.Zone2[3] || args.Zone2[4]) { - if (npc.netID == NPCID.LunarTowerSolar) - hasSolarTower = true; - else if (npc.netID == NPCID.LunarTowerVortex) - hasVortexTower = true; - else if (npc.netID == NPCID.LunarTowerNebula) - hasNebulaTower = true; - else if (npc.netID == NPCID.LunarTowerStardust) - hasStardustTower = true; - } - - if((args.Zone2[1] && !hasSolarTower) - || (args.Zone2[2] && !hasVortexTower) - || (args.Zone2[3] && !hasNebulaTower) - || (args.Zone2[4] && !hasStardustTower) - ) - { - args.Handled = true; - return; + bool hasSolarTower = false; + bool hasVortexTower = false; + bool hasNebulaTower = false; + bool hasStardustTower = false; + + // May need to optimize + foreach (var npc in Main.npc) + { + if (npc.netID == NPCID.LunarTowerSolar) + hasSolarTower = true; + else if (npc.netID == NPCID.LunarTowerVortex) + hasVortexTower = true; + else if (npc.netID == NPCID.LunarTowerNebula) + hasNebulaTower = true; + else if (npc.netID == NPCID.LunarTowerStardust) + hasStardustTower = true; + } + + if ((args.Zone2[1] && !hasSolarTower) + || (args.Zone2[2] && !hasVortexTower) + || (args.Zone2[3] && !hasNebulaTower) + || (args.Zone2[4] && !hasStardustTower) + ) + { + args.Handled = true; + return; + } } }