|
@@ -28,16 +28,18 @@ _vehicle setVariable["RD501_mc_nextRefuelUpdate", 0.1, true];
|
|
|
|
|
|
if (!alive _source || {!alive _sink}) then
|
|
|
{
|
|
|
- _vehicle setVariable["RD501_mc_lastRefuelTick", nil, true];
|
|
|
- _vehicle setVariable["RD501_mc_nextRefuelUpdate", nil, true];
|
|
|
+ _source setVariable["RD501_mc_lastRefuelTick", nil, true];
|
|
|
+ _source setVariable["RD501_mc_nextRefuelUpdate", nil, true];
|
|
|
+ _source setVariable["RD501_mc_lastTargetFuelAmount", nil, true];
|
|
|
[_pfID] call CBA_fnc_removePerFrameHandler;
|
|
|
};
|
|
|
|
|
|
if (_source getVariable["RD501_mc_stop_refuel", false]) then
|
|
|
{
|
|
|
hint "Refueling stopped";
|
|
|
- _vehicle setVariable["RD501_mc_lastRefuelTick", nil, true];
|
|
|
- _vehicle setVariable["RD501_mc_nextRefuelUpdate", nil, true];
|
|
|
+ _source setVariable["RD501_mc_lastRefuelTick", nil, true];
|
|
|
+ _source setVariable["RD501_mc_nextRefuelUpdate", nil, true];
|
|
|
+ _source setVariable["RD501_mc_lastTargetFuelAmount", nil, true];
|
|
|
[_pfID] call CBA_fnc_removePerFrameHandler;
|
|
|
};
|
|
|
|
|
@@ -53,6 +55,13 @@ _vehicle setVariable["RD501_mc_nextRefuelUpdate", 0.1, true];
|
|
|
private _target_fuel = (fuel _target) * _maxFuelTarget;
|
|
|
private _source_fuel = (fuel _source) * _maxFuelSource;
|
|
|
|
|
|
+ // if last ticks have not been applied yet, act as if they have
|
|
|
+ private _last_Target_fuel = _target getVariable["RD501_mc_lastTargetFuelAmount", 0];
|
|
|
+ if (_last_target_fuel > _target_fuel) then
|
|
|
+ {
|
|
|
+ _target_fuel = _last_target_fuel;
|
|
|
+ }
|
|
|
+
|
|
|
private _deltaT = _currentTime - (_source getVariable["RD501_mc_lastRefuelTick", 0]);
|
|
|
private _transfer = _rate * _deltaT;
|
|
|
|
|
@@ -65,8 +74,9 @@ _vehicle setVariable["RD501_mc_nextRefuelUpdate", 0.1, true];
|
|
|
{
|
|
|
_target_new_fuel = 1.0;
|
|
|
hint "Refueling complete";
|
|
|
- _vehicle setVariable["RD501_mc_lastRefuelTick", nil, true];
|
|
|
- _vehicle setVariable["RD501_mc_nextRefuelUpdate", nil, true];
|
|
|
+ _source setVariable["RD501_mc_lastRefuelTick", nil, true];
|
|
|
+ _source setVariable["RD501_mc_nextRefuelUpdate", nil, true];
|
|
|
+ _source setVariable["RD501_mc_lastTargetFuelAmount", nil, true];
|
|
|
[_pfID] call CBA_fnc_removePerFrameHandler;
|
|
|
} else
|
|
|
{
|
|
@@ -79,6 +89,7 @@ _vehicle setVariable["RD501_mc_nextRefuelUpdate", 0.1, true];
|
|
|
};
|
|
|
|
|
|
["RD501_mc_set_fuel", _target_new_fuel, _target] call CBA_fnc_targetEvent;
|
|
|
+ _source setVariable["RD501_mc_lastTargetFuelAmount", _target_fuel, true];
|
|
|
|
|
|
_source setFuel _source_new_fuel;
|
|
|
_source setVariable["RD501_mc_lastRefuelTick", _currentTime, true];
|