Changed Regions to a tile selection by hitting it. Makes everything a ton more accurate.

This commit is contained in:
Twitchy 2011-08-08 22:11:17 +12:00
parent 8d2a90cee3
commit 88b9a85b5c
3 changed files with 42 additions and 13 deletions

View file

@ -1683,25 +1683,19 @@ namespace TShockAPI
{
if (args.Parameters[1] == "1")
{
args.Player.TempArea.X = args.Player.TileX;
args.Player.TempArea.Y = args.Player.TileY;
args.Player.SendMessage("Set Temp Point 1", Color.Yellow);
if (!args.Player.AwaitingTemp2)
args.Player.AwaitingTemp1 = true;
else
args.Player.SendMessage("Awaiting you to Set Point 2", Color.Yellow);
}
else if (args.Parameters[1] == "2")
{
if (args.Player.TempArea.X != 0)
{
if (args.Player.TileX > args.Player.TempArea.X && args.Player.TileY > args.Player.TempArea.Y)
{
args.Player.TempArea.Width = args.Player.TileX - args.Player.TempArea.X;
args.Player.TempArea.Height = (args.Player.TileY + 3) - args.Player.TempArea.Y;
args.Player.SendMessage("Set Temp Point 2", Color.Yellow);
}
if (!args.Player.AwaitingTemp1)
args.Player.AwaitingTemp2 = true;
else
{
args.Player.SendMessage("Point 2 must be below and right of Point 1", Color.Yellow);
args.Player.SendMessage("Use /region clear to start again", Color.Yellow);
}
args.Player.SendMessage("Awaiting you to Set Point 1", Color.Yellow);
}
else
{
@ -1785,6 +1779,8 @@ namespace TShockAPI
{
args.Player.TempArea = Rectangle.Empty;
args.Player.SendMessage("Cleared temp area", Color.Yellow);
args.Player.AwaitingTemp1 = false;
args.Player.AwaitingTemp2 = false;
break;
}
case "allow":

View file

@ -256,6 +256,37 @@ namespace TShockAPI
int x = args.Data.ReadInt32();
int y = args.Data.ReadInt32();
byte tiletype = args.Data.ReadInt8();
if (args.Player.AwaitingTemp1)
{
args.Player.TempArea.X = x;
args.Player.TempArea.Y = y;
args.Player.SendMessage("Set Temp Point 1", Color.Yellow);
args.Player.SendTileSquare(x, y);
args.Player.AwaitingTemp1 = false;
return true;
}
if (args.Player.AwaitingTemp2)
{
if (x > args.Player.TempArea.X && y > args.Player.TempArea.Y)
{
args.Player.TempArea.Width = x - args.Player.TempArea.X;
args.Player.TempArea.Height = y - args.Player.TempArea.Y;
args.Player.SendMessage("Set Temp Point 2", Color.Yellow);
args.Player.SendTileSquare(x, y);
args.Player.AwaitingTemp2 = false;
}
else
{
args.Player.SendMessage("Point 2 must be below and right of Point 1", Color.Yellow);
args.Player.SendMessage("Use /region clear to start again", Color.Yellow);
args.Player.SendTileSquare(x, y);
args.Player.AwaitingTemp2 = false;
}
return true;
}
if (!args.Player.Group.HasPermission("canbuild"))
{
if (!args.Player.HasBeenSpammedWithBuildMessage)

View file

@ -39,6 +39,8 @@ namespace TShockAPI
public int Index { get; protected set; }
public DateTime LastPvpChange { get; protected set; }
public Rectangle TempArea;
public bool AwaitingTemp1 { get; set; }
public bool AwaitingTemp2 { get; set; }
public DateTime LastExplosive { get; set; }
public DateTime LastTileChangeNotify { get; set; }
public bool InitSpawn;