Difference between revisions of "CInventory::TakeRequirements"

From King Arthur's Gold Wiki
Jump to: navigation, search
(Created page with "<onlyinclude> Removes the requirements specified in the given CBitStream this inventory. </onlyinclude> This essentially calls TakeRequirementsCombined just for this inv...")
 
 
Line 1: Line 1:
 
<onlyinclude>
 
<onlyinclude>
Removes the requirements specified in the given [[CBitStream]] this inventory.
+
Removes the requirements specified in the given [[CBitStream]] from this inventory.
 
</onlyinclude>
 
</onlyinclude>
  

Latest revision as of 22:16, 19 August 2012

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