Cannot place a tree on top of a tree

This commit is contained in:
Tim Young 2018-02-23 20:28:02 -06:00
parent ef54588253
commit a41aee0dc4
3 changed files with 37 additions and 1 deletions

View File

@ -502,6 +502,23 @@ namespace EduNetworkBuilder
return null;
}
public bool BlockedByTree(Point NetworkLocation)
{
NetworkDevice tDevice;
foreach (NetworkComponent tItem in NetComponents)
{
if (tItem is NetworkDevice)
{
tDevice = (NetworkDevice)tItem;
if (tDevice.GetNetType() != NetworkComponentType.tree) continue; //We only care about trees
Rectangle myRec = tDevice.GetMyRectangle();
if (myRec.Contains(NetworkLocation))
return true;
}
}
return false;
}
public NetworkLink LinkAtPosition(Point NetworkLocation)
{
NetworkLink tLink;

View File

@ -1487,7 +1487,22 @@ namespace EduNetworkBuilder
NC = myNetwork.AddItem(NetworkComponentType.wrepeater, CenteredLocation);
break;
case "btnTree":
bool CanDo = true;
Point TopLeft = CenteredLocation;
Point TopRight = new Point(TopLeft.X + myNetwork.itemsize, TopLeft.Y);
Point BottomRight = new Point(TopLeft.X + myNetwork.itemsize, TopLeft.Y + myNetwork.itemsize);
Point BottomLeft = new Point(TopLeft.X, TopLeft.Y + myNetwork.itemsize);
if (myNetwork.BlockedByTree(ClickedLocation)) CanDo = false;
if (myNetwork.BlockedByTree(TopLeft)) CanDo = false;
if (myNetwork.BlockedByTree(TopRight)) CanDo = false;
if (myNetwork.BlockedByTree(BottomRight)) CanDo = false;
if (myNetwork.BlockedByTree(BottomLeft)) CanDo = false;
if(CanDo)
NC = myNetwork.AddItem(NetworkComponentType.tree, CenteredLocation);
else
{
lblStatus.Text = NB.Translate("NB_TreePlacementError");
}
break;
}

View File

@ -2033,4 +2033,8 @@
<value>Add a tree to the network to block wireless signals</value>
<comment>NB_BuildBtnTree = Add a tree to the network to block wireless signals</comment>
</data>
<data name="NB_TreePlacementError" xml:space="preserve">
<value>Cannot place a tree on top of a tree.</value>
<comment>NB_TreePlacementError = Cannot place a tree on top of a tree.</comment>
</data>
</root>