From 3c6521caffb9f1f8cfd9b072acf73b330614a17f Mon Sep 17 00:00:00 2001 From: SGKoishi Date: Sun, 20 Nov 2022 12:24:45 -0800 Subject: [PATCH] Fix Digging Molecart and Bomb Fish blocked --- TShockAPI/Bouncer.cs | 22 +++++++++++----------- docs/changelog.md | 2 +- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/TShockAPI/Bouncer.cs b/TShockAPI/Bouncer.cs index 8d3d7636..e809c7ad 100644 --- a/TShockAPI/Bouncer.cs +++ b/TShockAPI/Bouncer.cs @@ -674,12 +674,10 @@ namespace TShockAPI } } - if (action == EditAction.KillTile && !Main.tileCut[tile.type] && !breakableTiles.Contains(tile.type)) + if (action == EditAction.KillTile && !Main.tileCut[tile.type] && !breakableTiles.Contains(tile.type) && args.Player.RecentFuse == 0) { - // TPlayer.mount.Type 8 => Drill Containment Unit. - // If the tile is an axe tile and they aren't selecting an axe, they're hacking. - if (Main.tileAxe[tile.type] && ((args.Player.TPlayer.mount.Type != 8 && selectedItem.axe == 0) && !ItemID.Sets.Explosives[selectedItem.netID] && args.Player.RecentFuse == 0)) + if (Main.tileAxe[tile.type] && ((args.Player.TPlayer.mount.Type != MountID.Drill && selectedItem.axe == 0) && !ItemID.Sets.Explosives[selectedItem.netID])) { TShock.Log.ConsoleDebug(GetString("Bouncer / OnTileEdit rejected from (axe) {0} {1} {2}", args.Player.Name, action, editData)); args.Player.SendTileSquareCentered(tileX, tileY, 4); @@ -687,7 +685,7 @@ namespace TShockAPI return; } // If the tile is a hammer tile and they aren't selecting a hammer, they're hacking. - else if (Main.tileHammer[tile.type] && ((args.Player.TPlayer.mount.Type != 8 && selectedItem.hammer == 0) && !ItemID.Sets.Explosives[selectedItem.netID] && args.Player.RecentFuse == 0)) + else if (Main.tileHammer[tile.type] && ((args.Player.TPlayer.mount.Type != MountID.Drill && selectedItem.hammer == 0) && !ItemID.Sets.Explosives[selectedItem.netID])) { TShock.Log.ConsoleDebug(GetString("Bouncer / OnTileEdit rejected from (hammer) {0} {1} {2}", args.Player.Name, action, editData)); args.Player.SendTileSquareCentered(tileX, tileY, 4); @@ -699,11 +697,12 @@ namespace TShockAPI // also add an exception for snake coils, they can be removed when the player places a new one or after x amount of time // If the tile is part of the breakable when placing set, it might be getting broken by a placement. else if (tile.type != TileID.ItemFrame && tile.type != TileID.MysticSnakeRope - && !Main.tileAxe[tile.type] && !Main.tileHammer[tile.type] && tile.wall == 0 && - args.Player.TPlayer.mount.Type != MountID.Drill && selectedItem.pick == 0 && - selectedItem.type != ItemID.GravediggerShovel && - !ItemID.Sets.Explosives[selectedItem.netID] && args.Player.RecentFuse == 0 - && !TileID.Sets.BreakableWhenPlacing[tile.type]) + && !ItemID.Sets.Explosives[selectedItem.netID] + && !TileID.Sets.BreakableWhenPlacing[tile.type] + && !Main.tileAxe[tile.type] && !Main.tileHammer[tile.type] && tile.wall == 0 + && selectedItem.pick == 0 && selectedItem.type != ItemID.GravediggerShovel + && args.Player.TPlayer.mount.Type != MountID.Drill + && args.Player.TPlayer.mount.Type != MountID.DiggingMoleMinecart) { TShock.Log.ConsoleDebug(GetString("Bouncer / OnTileEdit rejected from (pick) {0} {1} {2}", args.Player.Name, action, editData)); @@ -764,7 +763,7 @@ namespace TShockAPI if ((action == EditAction.PlaceTile || action == EditAction.ReplaceTile) && editData != selectedItem.createTile) { /// These would get caught up in the below check because Terraria does not set their createTile field. - if (selectedItem.netID != ItemID.IceRod && selectedItem.netID != ItemID.DirtBomb && selectedItem.netID != ItemID.StickyBomb) + if (selectedItem.netID != ItemID.IceRod && selectedItem.netID != ItemID.DirtBomb && selectedItem.netID != ItemID.StickyBomb && (args.Player.TPlayer.mount.Type != MountID.DiggingMoleMinecart || editData != TileID.MinecartTrack)) { TShock.Log.ConsoleDebug(GetString("Bouncer / OnTileEdit rejected from tile placement not matching selected item createTile {0} {1} {2} selectedItemID:{3} createTile:{4}", args.Player.Name, action, editData, selectedItem.netID, selectedItem.createTile)); args.Player.SendTileSquareCentered(tileX, tileY, 4); @@ -1333,6 +1332,7 @@ namespace TShockAPI || type == ProjectileID.Dynamite || type == ProjectileID.StickyBomb || type == ProjectileID.StickyDynamite + || type == ProjectileID.BombFish || type == ProjectileID.ScarabBomb || type == ProjectileID.DirtBomb)) { diff --git a/docs/changelog.md b/docs/changelog.md index ac38bf0b..bc2cf8be 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -78,7 +78,7 @@ Use past tense when adding new entries; sign your name off when you add or chang * If there is no section called "Upcoming changes" below this line, please add one with `## Upcoming changes` as the first line, and then a bulleted item directly after with the first change. --> ## Upcoming changes -* Your changes could be here! +* Allowed Digging Molecart and bomb fish to break tiles and place tracks (@sgkoishi) ## TShock 5.1.2 * Added support for Terraria 1.4.4.8.1 via OTAPI 3.1.19. (@SignatureBeef)