public override void _Ready()
    {
        gameController = GetParent() as GameController;
        cellHighlight  = GetNode <CellHighlight>("Cell Highlight");
        camera2D       = GetTree().GetRoot().GetNode("World").FindNode("Camera2D") as Camera2D;
        GD.Print("Cam:" + camera2D.GetOffset().x);
        // get_tree().get_root().get_node("myRootNode").find_node("desiredNode")
        worldGrid    = GetTree().GetRoot().GetNode("World").FindNode("WorldGrid") as TileMap;
        uiController = GetTree().GetRoot().GetNode("World").FindNode("UIController") as UIController;

        shootHighlight   = FindNode("ShootHighlight") as Node2D;
        mortarHighlight  = FindNode("MortarHighlight") as Node2D;
        shotgunHighlight = FindNode("ShotgunHighlight") as Node2D;

        shootHighlight.SetModulate(new Color(1, 1, 1, .5f));
        mortarHighlight.SetModulate(new Color(1, 1, 1, .5f));
        shotgunHighlight.SetModulate(new Color(1, 1, 1, .5f));
    }
    public override void _UnhandledInput(InputEvent @event)
    {
        InputEventMouseButton e = @event as InputEventMouseButton;

        if (e != null)
        {
            if (e.IsActionPressed("mouse_left"))
            {
                if (cellHighlight.IsCellVacant())
                {
                    gameController.PlaceTower(curTower, gridPos);
                    ChangeSelectedTower("");
                }
                else
                {
                    //SELECT TOWER
                    // uiController.SetTower(null);
                    gameController.SellTower(cellHighlight.GetCurTower());
                }
            }
        }

        InputEventMouseMotion eM = @event as InputEventMouseMotion;

        if (eM != null)
        {
            uiController.SetTower(cellHighlight.GetCurTower());
            // if (!cellHighlight.IsCellVacant()) {

            //     uiController.SetTower(cellHighlight.GetCurTower());
            // } else {
            //     uiController.Set();
            //     // GD.Print(cellHighlight.GetCurTower(), "empty");
            // }


            mousePos = eM.GlobalPosition - new Vector2(camera2D.GetOffset().x, 0);
        }
    }