anchor.diff:        end;
   
       end;
  -
     end;
   
     // figure out required component...
  
positive.code:   getPrice             (item: IInterface): integer;                               // gets item value, in invalid/not determined cases will return 0
    getMainMaterial      (itemRecord: IInterface): IInterface;                      // will try to figure out right material for provided item record
  
    calcAmountOfMainMaterial(itemRecord: IInterface): Integer;                      // calculates amount of matireal needed to craft an item
  
    makeTemperable       (itemRecord: IInterface): IInterface;                      // creates new COBJ record to make item Temperable
    makeCraftable        (itemRecord: IInterface): IInterface;                      // creates new COBJ record to make item Craftable at workbenches
  }
  
  
  
negative.code: 
    // return created tempering recipe, just in case
    Result := recipeCraft;
  end;
  
  function makeBreakdown(item: IInterface): IInterface;
  var
    recipe, recipeItems, material: IInterface;
    itemSignature: string;
  begin
    itemSignature := Signature(item);
    // filter selected records, which are not valid
    if not ((itemSignature = 'WEAP') or (itemSignature = 'ARMO')) then
      Exit;
  
    // create COBJ record
    recipe := createRecord(GetFile(item), 'COBJ');
    // set EditorID for recipe
    SetElementEditValues(recipe, 'EDID', 'Breakdown' + GetElementEditValues(item, 'EDID'));
    // add reference to the smelter keyword
    SetElementEditValues(recipe, 'BNAM', GetEditValue(getRecordByFormID('000A5CCE')));
  
    // add required items list
    Add(recipe, 'items', true);
    // get reference to required items list inside recipe
    recipeItems := ElementByPath(recipe, 'items');
    addItem(recipeItems, item, 1);
    // remove nil record in items requirements, if any
    removeInvalidEntries(recipe);
  
    addHasItemCondition(recipe, item);
  
    // figure out returning component...
    material := getMainMaterial(item);
  
    if not Assigned(material) then begin
      AddMessage('WARNING: resulting component was not specified for - ' + Name(recipe));
    end else begin
      SetElementEditValues(recipe, 'CNAM', Name(material));
    end;
  
    SetElementEditValues(recipe, 'NAM1', calcAmountOfMainMaterial(item));
  
    Result := recipe;
  end;
  
  // shalow way to recognize item as Jewelry
  