protected IEnumerator Build(Vector3Int i_pos)
    {
        if ((inventory.Get_Item_Quantity() >= 1) && (vision.Is_Pos_Seen(i_pos)) && (memory.Check_Pos(i_pos) == 0))
        {
            Block_Interactable temp_block = vision.Grab_Seen_Interactable(i_pos);

            while (!vision.Is_Pos_Seen(i_pos))
            {
                Look_At_Point(i_pos);
                yield return(null);
            }
        }
        else
        {
            does_wall_build = false;
            next_state      = Check_Priorities();
            yield break;
        }

        Build_Wall(i_pos);

        does_wall_build = false;
        next_state      = Check_Priorities();
        yield return(null);
    }