mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
f65f6e9b72
Allows cargo objects to be added via classname and reduces simulation/synchronization overhead. Objects become physical upon unloading and cannot be re-made virtual, only scripts can add such virtual objects. Also separates the player feedback from the loading/unloading code and adds a progress bar.
40 lines
954 B
Plaintext
40 lines
954 B
Plaintext
/*
|
|
* Author: Glowbal
|
|
* Check if item can be loaded into other Object.
|
|
*
|
|
* Arguments:
|
|
* 0: Item <OBJECT or STRING>
|
|
* 1: Holder Object (Vehicle) <OBJECT>
|
|
*
|
|
* Return value:
|
|
* Can load in <BOOL>
|
|
*
|
|
* Example:
|
|
* [item, holder] call ace_cargo_fnc_canLoadItemIn
|
|
*
|
|
* Public: No
|
|
*/
|
|
#include "script_component.hpp"
|
|
|
|
params [["_item", "", [objNull,""]], "_vehicle"];
|
|
|
|
if (speed _vehicle > 1 || (((getPos _vehicle) select 2) > 3)) exitWith {false};
|
|
|
|
private ["_itemSize", "_validItem"];
|
|
_itemSize = [_item] call FUNC(getSizeItem);
|
|
|
|
if (typeName _item == "STRING") then {
|
|
_validItem =
|
|
isClass (configFile >> "CfgVehicles" >> _item) &&
|
|
{getNumber (configFile >> "CfgVehicles" >> _item >> QGVAR(canLoad)) == 1};
|
|
} else {
|
|
_validItem =
|
|
(alive _item) &&
|
|
{(_item distance _vehicle) <= MAX_LOAD_DISTANCE};
|
|
};
|
|
|
|
_validItem &&
|
|
{_itemSize > 0} &&
|
|
{alive _vehicle} &&
|
|
{_itemSize <= ([_vehicle] call FUNC(getCargoSpaceLeft))}
|