private void constructItem()
        {
            List <Tuple <resource.resourceTypes, int> > costs = new List <Tuple <resource.resourceTypes, int> >();

            foreach (constructionItem item in items)
            {
                if (item.selected)
                {
                    costs = item.cost;

                    foreach (Tuple <resource.resourceTypes, int> cost in costs)
                    {
                        if (!playerInv.contains(cost.Item1, cost.Item2))
                        {
                            //do nothing
                            return;
                        }
                    }

                    foreach (Tuple <resource.resourceTypes, int> cost in costs)
                    {
                        playerInv.decreaseResource(cost.Item1, cost.Item2);
                    }

                    if (item.appearsInInventory)
                    {
                        playerInv.addToInventory(item.type, 1);
                    }
                    else if (item.appearsOnMap)
                    {
                        Vector2 location = new Vector2();
                        location.X = currPlayer.getCurrentPos().X + currPlayer.getTexture().Width + currMap.getViewport().X;
                        location.Y = currPlayer.getCurrentPos().Y + currPlayer.getTexture().Height + currMap.getViewport().Y;
                        //add spike pits and trees to the world.
                        if (item.type == resource.resourceTypes.Tree)
                        {
                            currMap.addTree(location);
                        }
                        else if (item.type == resource.resourceTypes.SpikePit)
                        {
                            currMap.addTrapToMap(location);
                        }
                    }

                    break;
                }
            }
        }