adds drawicon3d wrapper from Hizumi and status for vflag use
This commit is contained in:
54
framework/common/functions/fn_draw3DIconStatus.sqf
Normal file
54
framework/common/functions/fn_draw3DIconStatus.sqf
Normal file
@@ -0,0 +1,54 @@
|
||||
#include "..\script_component.hpp"
|
||||
|
||||
if (!hasInterface) exitWith {};
|
||||
|
||||
params [
|
||||
["_drawTargets", [], [[]]],
|
||||
["_icon", "", [""]],
|
||||
["_text", "", [""]],
|
||||
["_color", [], [[]]]
|
||||
];
|
||||
|
||||
if (count _drawTargets isEqualTo 0) exitWith {};
|
||||
|
||||
_cameraPos = positionCameraToWorld [0,0,0];
|
||||
_cameraPosASL = AGLToASL _cameraPos;
|
||||
|
||||
{
|
||||
_target = _x;
|
||||
_visible = [objNull, "VIEW"] checkVisibility [_cameraPosASL, eyePos _target];
|
||||
|
||||
if ( _visible isEqualTo 0 ) exitWith {};
|
||||
|
||||
_objectPos = (_target modelToWorldVisual (_target selectionPosition "pilot"));
|
||||
_distance = (visiblePosition _target) vectorDiff _cameraPos;
|
||||
|
||||
_scale = 0;
|
||||
_heightOffset = 0;
|
||||
_heightScaling = 0.012;
|
||||
|
||||
if ( _icon isNotEqualTo "") then {
|
||||
_heightOffset = 0.065;
|
||||
_scale = 1;
|
||||
_heightScaling = 0.075;
|
||||
};
|
||||
|
||||
_drawPos = _objectPos vectorAdd [0, 0, (0.18 + _heightOffset) + (vectorMagnitude _distance * _heightScaling)];
|
||||
|
||||
drawIcon3D [
|
||||
_icon,
|
||||
_color,
|
||||
_drawPos,
|
||||
_scale,
|
||||
_scale,
|
||||
0,
|
||||
_text,
|
||||
2,
|
||||
0.025
|
||||
];
|
||||
|
||||
true;
|
||||
} count _drawTargets;
|
||||
|
||||
nil
|
||||
|
||||
Reference in New Issue
Block a user