Set up and integrated HEMTT for easier dev workflow. Adjusted core addon name 'logistics' to 'main'. Fixed several issues caught by HEMTT

This commit is contained in:
Clarky committed 2026-08-29 14:38:47 +10:00
1 parent 00eee092c3
commit 8ef33973bd
61 files changed
+4002 -82

No files matched your search

@@ -0,0 +1,89 @@
#include "..\script_component.hpp"
/*
Author: Clarky
Usage:
[
"CLRK_fnc_VehicleLoaded",
[_target, _caller, _depot]
] call CBA_fnc_serverEvent;
Intended to be run by an event handler call from a vehicle load action from a player on a valid supply vehicle
*/
params ["_vehicle", "_player", "_depot"];
if (!isServer) exitWith {};
if (isNull _vehicle) exitWith {hint "Vehicle ain't exist";};
if (isNull _player) exitWith {hint "Player ain't exist";};
if (isNull _depot) exitWith {hint "Depot ain't exist";};
if !(_vehicle getVariable ["isSupplyVehicle", false]) exitWith {hint "Vehicle ain't supply vehicle";};
private _vehicleCurrentMateriel =
_vehicle getVariable ["currentMateriel", 0];
private _vehicleCurrentOre =
_vehicle getVariable ["currentOre", 0];
private _vehicleMax =
_vehicle getVariable ["maxLoad", 300];
private _transferRate =
_vehicle getVariable ["transferRate", 50];
private _depotCurrent =
_depot getVariable ["currentOre", 0];
private _freeSpace =
_vehicleMax - (_vehicleCurrentMateriel + _vehicleCurrentOre);
if (_freeSpace <= 0) exitWith {
[
"CLRK_ShowMessage",
[1, 0, "Vehicle is already full."],
_player
] call CBA_fnc_targetEvent;
};
if (_depotCurrent <= 0) exitWith {
[
"CLRK_ShowMessage",
[2, 0, "Depot has no Ore available."],
_player
] call CBA_fnc_targetEvent;
};
private _amount =
(_transferRate min _freeSpace)
min _depotCurrent;
_vehicle setVariable [
"currentOre",
_vehicleCurrentOre + _amount,
true
];
_depot setVariable [
"currentOre",
_depotCurrent - _amount,
true
];
[
"CLRK_ShowMessage",
[
0,
0,
format [
"Loaded %1 Ore. Vehicle now contains %2.<br />Current Load: %3/%4.",
_amount,
_vehicleCurrentOre + _amount,
_vehicleCurrentOre + _amount + _vehicleCurrentMateriel,
_vehicleMax
]
],
_player
] call CBA_fnc_targetEvent;