protected IEnumerator Extract_Ore(Vector3Int i_pos)
    {
        Block_Interactable temp_block = vision.Grab_Seen_Interactable(i_pos);

        if (memory.Check_Pos(i_pos) != 3)
        {
            does_copper_find = false;
            next_state       = Check_Priorities();
            yield break;
        }

        while (temp_block == null)
        {
            Look_At_Point(i_pos);
            temp_block = vision.Grab_Seen_Interactable(i_pos);
            yield return(null);
        }

        inventory.Set_Target(temp_block.Get_Inventory());
        inventory.Take_Item("Copper Ore", 1);
        does_copper_find = false;

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