#include "..\script_component.hpp"

/*
 * File: fnc_initFEconomyStore.sqf
 * Author: IDSolutions
 * Date: 2025-12-20
 * Last Update: 2026-01-03
 * Public: No
 *
 * Description:
 *     No description added yet.
 *
 * Parameter(s):
 *     N/A
 *
 * Returns:
 *     Something [BOOL]
 *
 * Example(s):
 *     [parameter] call forge_x_component_fnc_myFunction
 */

#pragma hemtt ignore_variables ["_self"]
GVAR(FEconomyStore) = createHashMapObject [[
    ["#type", "IFuelEconomy"],
    ["#create", {
        GVAR(FuelCost) = 5;
        GVAR(FuelRegistry) = createHashMap;

        ["INFO", "Fuel Store Initialized!", nil, nil] call EFUNC(common,log);
    }],
    ["start", {
        params ["_source", "_target", "_unit"];

        private _index = netId _target;
        private _uid = getPlayerUID _unit;

        GVAR(FuelRegistry) set [_index, _uid];
        SETVAR(_target,liters,0);
    }],
    ["stop", {
        params ["_source", "_target"];

        private _index = netId _target;
        private _uid = GVAR(FuelRegistry) get _index;
        private _player = [_uid] call EFUNC(common,getPlayer);

        private _totalLiters = GETVAR(_target,liters,0);
        private _totalCost = _totalLiters * 5;
        private _formattedTotalCost = _totalCost toFixed 2;
        private _formattedTotalLiters = _totalLiters toFixed 2;

        [CRPC(notifications,recieveNotification), ["info", "Refueling", format ["Refueling complete: %1L<br />Total Cost: $%2", _formattedTotalLiters, _formattedTotalCost]], _player] call CFUNC(targetEvent);
        GVAR(FuelRegistry) deleteAt _index;
    }]
]];

SETMVAR(FORGE_FEconomyStore,GVAR(FEconomyStore));
GVAR(FEconomyStore)
