initial files
This commit is contained in:
64
kp_liberation.brf_sumava/functions/fn_crateToStorage.sqf
Normal file
64
kp_liberation.brf_sumava/functions/fn_crateToStorage.sqf
Normal file
@@ -0,0 +1,64 @@
|
||||
/*
|
||||
File: fn_crateToStorage.sqf
|
||||
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
|
||||
Date: 2017-03-27
|
||||
Last Update: 2020-04-23
|
||||
License: MIT License - http://www.opensource.org/licenses/MIT
|
||||
|
||||
Description:
|
||||
Attach given crate at storage area.
|
||||
|
||||
Parameter(s):
|
||||
_crate - Crate [OBJECT, defaults to objNull]
|
||||
_storage - Storage [OBJECT, defaults to objNull]
|
||||
_update - Update sector resources [BOOL, defaults to false]
|
||||
|
||||
Returns:
|
||||
Function reached the end [BOOL]
|
||||
*/
|
||||
|
||||
params [
|
||||
["_crate", objNull, [objNull]],
|
||||
["_storage", objNull, [objNull]],
|
||||
["_update", false, [false]]
|
||||
];
|
||||
|
||||
// Validate parameters
|
||||
if (isNull _crate) exitWith {["Null object given"] call BIS_fnc_error; false};
|
||||
|
||||
// Handle return values from nearestObjects of function call in ammobox action manager
|
||||
if (!isNull _storage) then {
|
||||
// Get storage and crate specific values
|
||||
([_storage] call KPLIB_fnc_getStoragePositions) params ["_storage_positions", "_unload_distance"];
|
||||
private _height = [typeOf _crate] call KPLIB_fnc_getCrateHeight;
|
||||
|
||||
// Remove possible cargo from crate
|
||||
[_crate, true] call KPLIB_fnc_clearCargo;
|
||||
|
||||
// Check for enough space in storage
|
||||
private _crates_count = count (attachedObjects _storage);
|
||||
if (_crates_count >= (count _storage_positions)) exitWith {if (!isDedicated) then {[] spawn {hint localize "STR_BOX_CANTSTORE"; sleep 2; hintSilent "";};};};
|
||||
|
||||
// Store crate
|
||||
_crate attachTo [_storage, [(_storage_positions select _crates_count) select 0, (_storage_positions select _crates_count) select 1, _height]];
|
||||
[_crate, false] remoteExec ["enableRopeAttach"];
|
||||
if(KP_liberation_ace) then {[_crate, false, [0, 1.5, 0], 0] remoteExec ["ace_dragging_fnc_setCarryable"];};
|
||||
|
||||
// Update sector resource values, if requested
|
||||
if (_update) then {
|
||||
if ((_storage getVariable ["KP_liberation_storage_type", -1]) == 1) then {
|
||||
recalculate_sectors = true;
|
||||
publicVariable "recalculate_sectors";
|
||||
};
|
||||
};
|
||||
} else {
|
||||
if (!isDedicated) then {
|
||||
[] spawn {
|
||||
hint localize "STR_BOX_CANTSTORE";
|
||||
sleep 2;
|
||||
hintSilent "";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
true
|
||||
Reference in New Issue
Block a user