public ExtractedResource ExtractResource(float amount)
{
ExtractedResource rv = new ExtractedResource();
rv.type = resourceType;
rv.amount = 0.0f;
rv.isDrained = resourceDrained;
if(!associatedExtractor || resourceLevel <= 0.0f) {
return rv;
}
// extracts an amount of resource
resourceLevel -= amount;
// Check if we actually have enough resources
if(resourceLevel <= 0.0f) {
// We tried to extract more than available
amount += resourceLevel; // Adjust the amount extracted
resourceLevel = 0.0f; // Clean the site
resourceDrained = true;
}
rv.isDrained = resourceDrained;
rv.amount = amount;
return rv;
}