Liquid objects: Adjusted producer

liquid_container
Mark 2016-02-16 18:14:32 +01:00
parent fb627f3024
commit bd0923d057
1 changed files with 14 additions and 3 deletions

View File

@ -621,7 +621,7 @@ public func CheckLiquids(id product, bool remove)
if (this->~IsLiquidContainer()) PushBack(liq_containers, this);
for (var liq_container in liq_containers)
{
var val = liq_container->RemoveLiquid(liquid, need - extracted);
var val = liq_container->RemoveLiquid(liquid, need - extracted, this);
extracted += val[1];
if (extracted >= need)
return true;
@ -629,8 +629,19 @@ public func CheckLiquids(id product, bool remove)
for (var liq_object in FindObjects(Find_Container(this), Find_Func("IsLiquid")))
{
if (liq_object->~IsLiquid() != liquid) continue;
extracted += liq_object->~GetLiquidAmount();
liq_object->RemoveObject();
var val = liq_object->~RemoveLiquid(liquid, need - extracted, this);
if (val)
{
extracted += val[1];
}
else
{
extracted += liq_object->~GetLiquidAmount();
liq_object->RemoveObject();
}
if (extracted >= need)
break;
}