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; 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) public NetworkLink LinkAtPosition(Point NetworkLocation)
{ {
NetworkLink tLink; NetworkLink tLink;

View File

@ -1487,7 +1487,22 @@ namespace EduNetworkBuilder
NC = myNetwork.AddItem(NetworkComponentType.wrepeater, CenteredLocation); NC = myNetwork.AddItem(NetworkComponentType.wrepeater, CenteredLocation);
break; break;
case "btnTree": case "btnTree":
NC = myNetwork.AddItem(NetworkComponentType.tree, CenteredLocation); 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; break;
} }

View File

@ -2033,4 +2033,8 @@
<value>Add a tree to the network to block wireless signals</value> <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> <comment>NB_BuildBtnTree = Add a tree to the network to block wireless signals</comment>
</data> </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> </root>