57 lines
1.7 KiB
Plaintext
57 lines
1.7 KiB
Plaintext
/*
|
|
File: fn_fillStorage.sqf
|
|
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
|
|
Date: 2019-12-03
|
|
Last Update: 2020-05-04
|
|
License: MIT License - http://www.opensource.org/licenses/MIT
|
|
|
|
Description:
|
|
Fills given storage with given amounts of resources.
|
|
|
|
Parameter(s):
|
|
_supply - Amount of supply resource [NUMBER, defaults to 0]
|
|
_ammo - Amount of ammo resource [NUMBER, defaults to 0]
|
|
_fuel - Amount of fuel resource [NUMBER, defaults to 0]
|
|
_storage - Storage object to fill [OBJECT, defaults to objNull]
|
|
_delay - Enable a small delay between crate create and attach to storage [BOOL, defaults to false]
|
|
|
|
Returns:
|
|
Function reached the end [BOOL]
|
|
*/
|
|
|
|
params [
|
|
["_supply", 0, [0]],
|
|
["_ammo", 0, [0]],
|
|
["_fuel", 0, [0]],
|
|
["_storage", objNull, [objNull]],
|
|
["_delay", false, [false]]
|
|
];
|
|
|
|
if (isNull _storage) exitWith {["Null object given"] call BIS_fnc_error; false};
|
|
|
|
// Make sure it's scheduled, if delay is enabled
|
|
if (_delay && {!canSuspend}) exitWith {_this spawn KPLIB_fnc_fillStorage};
|
|
|
|
private _amount = 0;
|
|
private _crate = objNull;
|
|
private _pos = getPos _storage;
|
|
|
|
{
|
|
while {_x > 0} do {
|
|
_amount = 100 min _x;
|
|
_x = _x - _amount;
|
|
|
|
_crate = [
|
|
KPLIB_crates select _forEachIndex,
|
|
_amount,
|
|
_pos
|
|
] call KPLIB_fnc_createCrate;
|
|
|
|
if (_delay) then {sleep 0.1;};
|
|
|
|
[_crate, _storage] call KPLIB_fnc_crateToStorage;
|
|
};
|
|
} forEach [_supply, _ammo, _fuel];
|
|
|
|
true
|