CInventory::TakeRequirements

From King Arthur's Gold Wiki
Jump to: navigation, search

Removes the requirements specified in the given CBitStream from this inventory.


This essentially calls TakeRequirementsCombined just for this inventory (passing null for the other inventory argument).

The requirements will only be removed if they exist in the inventory to begin with.

If the requirement's type was a blob and the quantity was 0, then all blobs of that type will be removed.

The requirements parameter is the CBitStream you're reading the requirements from.

void TakeRequirements(CBitStream@ requirements)

Example from Entities/Characters/Scripts/BuilderInventory.as:

case Builder::make_workshop:
{   		
  CBitStream reqs, missing;
  AddRequirement( reqs, "blob", "mat_stone", "Stones", 10 );
  if (this.hasRequirements( reqs, missing ))
  {
    // if server
    this.TakeRequirements( reqs );    CBlob @shopBlob = CreateBlob( "genericblock", "Entities/Workshops/Base/WorkshopWAR.cfg", 0, this.getBlob().getPosition() );
    this.getBlob().Pickup( shopBlob, false );
  }
  else
  {
    print("doesn't meet requirements");
  }
}

Object method of: CInventory