Files
MissionTemplate/functions/resupply/fn_createBox.sqf

99 lines
2.8 KiB
Plaintext

/*
* Author: Hizumi & IndigoFox
*
* Create Mortar resupply box for the 17th Battalion
*
* Arguments:
* 0: Vehicle - <OBJECT>
* 1: Position - <ARRAY>
*
* Return Value:
* Function executed <BOOL>
*
* Example:
* [box] call milsim_fnc_createBox; // create mortar ammo box via init line of editor object
* [objNull, pos] call milsim_fnc_createBox; // create mortar ammo box via zeus module
*
* Public: Yes
*
* Note: For gathering:
formatText ["%1", [
["containerClassname", typeOf cursorObject],
["backpack", (backpackCargo cursorObject) call BIS_fnc_consolidateArray],
["item", (itemCargo cursorObject) call BIS_fnc_consolidateArray],
["magazine", (magazineCargo cursorObject) call BIS_fnc_consolidateArray],
["magazineAmmo", magazinesAmmoCargo cursorObject],
["weapon", (weaponCargo cursorObject) call BIS_fnc_consolidateArray]
]];
*/
params [
["_box", objNull, [objNull]],
["_type", "", [""]],
["_pos", [0,0,0], [[]], 3]
];
if (isNil "milsim_resupply_crateDefinitions") exitWith {
format["Resupply Boxes: milsim_resupply_crateDefinitions is not defined, possibly a bad edit?"] remoteExec ["systemChat", 0];
false;
};
if (_type isEqualTo "") exitWith {
format["Resupply Boxes: [_boxObject, _type, _pos] call milsim_fnc_createBox"] remoteExec ["systemChat", 0];
format["Please use one of the following types for _type:"] remoteExec ["systemChat", 0];
format["%1", (keys milsim_resupply_crateDefinitions)] remoteExec ["systemChat", 0];
false;
};
private _boxData = milsim_resupply_crateDefinitions getOrDefault [_type, createHashMap];
if (count _boxData isEqualTo 0) exitWith {
format["Resupply Boxes: [_boxObject, _type, _pos] call milsim_fnc_createBox"] remoteExec ["systemChat", 0];
format["%1 is not a valid type for _type", _type] remoteExec ["systemChat", 0];
format["Please use one of the following types for _type:"] remoteExec ["systemChat", 0];
format["%1", (keys milsim_resupply_crateDefinitions)] remoteExec ["systemChat", 0];
false;
};
private _boxItems = _boxData getOrDefault ["items", createHashMap];
if (isNull _box) then {
_box = (_boxData get "className") createVehicle _pos;
};
clearBackpackCargoGlobal _box;
clearItemCargoGlobal _box;
clearMagazineCargoGlobal _box;
clearWeaponCargoGlobal _box;
{
_x params ["_class", "_qty"];
_box addBackpackCargoGlobal [_class, _qty]
} foreach (_boxItems getOrDefault ["backpacks", []]);
{
_x params ["_class", "_qty"];
_box addItemCargoGlobal [_class, _qty]
} foreach (_boxItems getOrDefault ["items", []]);
{
_x params ["_class", "_qty"];
_box addMagazineCargoGlobal [_class, _qty]
} foreach (_boxItems getOrDefault ["magazines", []]);
{
_x params ["_class", "_qty"];
_box addWeaponCargoGlobal [_class, _qty]
} foreach (_boxItems getOrDefault ["weapons", []]);
[_box,1] call ace_cargo_fnc_setSize;
true;