Merge remote-tracking branch 'tbc/fix/paint-rejects' into general-devel

This commit is contained in:
Lucas Nicodemus 2022-10-07 20:40:17 -07:00
commit ae578ce184
No known key found for this signature in database
2 changed files with 11 additions and 9 deletions

View file

@ -3584,6 +3584,12 @@ namespace TShockAPI
return false;
}
private static bool HasPaintSprayerAbilities(Item item)
=> item is not null && item.stack > 0 && (
item.type == ItemID.PaintSprayer ||
item.type == ItemID.ArchitectGizmoPack ||
item.type == ItemID.HandOfCreation);
private static bool HandlePaintTile(GetDataHandlerArgs args)
{
var x = args.Data.ReadInt16();
@ -3600,11 +3606,6 @@ namespace TShockAPI
return true;
}
bool hasPaintSprayerAbilities(Item item) =>
item != null
&& item.stack > 0
&& (item.type == ItemID.PaintSprayer || item.type == ItemID.ArchitectGizmoPack);
// Not selecting paintbrush or paint scraper or the spectre versions? Hacking.
if (args.Player.SelectedItem.type != ItemID.PaintRoller &&
args.Player.SelectedItem.type != ItemID.PaintScraper &&
@ -3612,8 +3613,8 @@ namespace TShockAPI
args.Player.SelectedItem.type != ItemID.SpectrePaintRoller &&
args.Player.SelectedItem.type != ItemID.SpectrePaintScraper &&
args.Player.SelectedItem.type != ItemID.SpectrePaintbrush &&
!args.Player.Accessories.Any(hasPaintSprayerAbilities) &&
!args.Player.Inventory.Any(hasPaintSprayerAbilities))
!args.Player.Accessories.Any(HasPaintSprayerAbilities) &&
!args.Player.Inventory.Any(HasPaintSprayerAbilities))
{
TShock.Log.ConsoleDebug("GetDataHandlers / HandlePaintTile rejected select consistency {0}", args.Player.Name);
args.Player.SendData(PacketTypes.PaintTile, "", x, y, Main.tile[x, y].color());
@ -3659,8 +3660,8 @@ namespace TShockAPI
args.Player.SelectedItem.type != ItemID.SpectrePaintRoller &&
args.Player.SelectedItem.type != ItemID.SpectrePaintScraper &&
args.Player.SelectedItem.type != ItemID.SpectrePaintbrush &&
!args.Player.Accessories.Any(i => i != null && i.stack > 0 &&
(i.type == ItemID.PaintSprayer || i.type == ItemID.ArchitectGizmoPack)))
!args.Player.Accessories.Any(HasPaintSprayerAbilities) &&
!args.Player.Inventory.Any(HasPaintSprayerAbilities))
{
TShock.Log.ConsoleDebug("GetDataHandlers / HandlePaintWall rejected selector consistency {0}", args.Player.Name);
args.Player.SendData(PacketTypes.PaintWall, "", x, y, Main.tile[x, y].wallColor());