public boolean canMove(int direction)
    {
        Grid<GridActor> gr = getGrid();
        if (gr == null)
            return false;
        Location loc = getLocation();
        Location next = loc.getAdjacentLocation(direction);
        if (!gr.isValid(next))
            return false;
        GridActor neighbor = gr.get(next);
        return (neighbor == null) || (neighbor instanceof Item) 
            || (neighbor instanceof OpenDoor);
        // ok to move into empty location or onto item
        // not ok to move onto any other actor
    }