mirror of
https://github.com/esx-framework/esx_core.git
synced 2026-08-29 17:28:53 +00:00
108 lines
2.0 KiB
JavaScript
108 lines
2.0 KiB
JavaScript
(() => {
|
|
|
|
ESX = {};
|
|
ESX.HUDElements = [];
|
|
|
|
ESX.setHUDDisplay = function (opacity) {
|
|
$('#hud').css('opacity', opacity);
|
|
};
|
|
|
|
ESX.insertHUDElement = function (name, index, priority, html, data) {
|
|
ESX.HUDElements.push({
|
|
name: name,
|
|
index: index,
|
|
priority: priority,
|
|
html: html,
|
|
data: data
|
|
});
|
|
|
|
ESX.HUDElements.sort((a, b) => {
|
|
return a.index - b.index || b.priority - a.priority;
|
|
});
|
|
};
|
|
|
|
ESX.updateHUDElement = function (name, data) {
|
|
|
|
for (let i = 0; i < ESX.HUDElements.length; i++) {
|
|
if (ESX.HUDElements[i].name == name) {
|
|
ESX.HUDElements[i].data = data;
|
|
}
|
|
}
|
|
|
|
ESX.refreshHUD();
|
|
};
|
|
|
|
ESX.deleteHUDElement = function (name) {
|
|
for (let i = 0; i < ESX.HUDElements.length; i++) {
|
|
if (ESX.HUDElements[i].name == name) {
|
|
ESX.HUDElements.splice(i, 1);
|
|
}
|
|
}
|
|
|
|
ESX.refreshHUD();
|
|
};
|
|
|
|
ESX.refreshHUD = function () {
|
|
$('#hud').html('');
|
|
|
|
for (let i = 0; i < ESX.HUDElements.length; i++) {
|
|
let html = Mustache.render(ESX.HUDElements[i].html, ESX.HUDElements[i].data);
|
|
$('#hud').append(html);
|
|
}
|
|
};
|
|
|
|
ESX.inventoryNotification = function (add, item, count) {
|
|
let notif = '';
|
|
|
|
if (add) {
|
|
notif += '+';
|
|
} else {
|
|
notif += '-';
|
|
}
|
|
|
|
notif += count + ' ' + item.label;
|
|
|
|
let elem = $('<div>' + notif + '</div>');
|
|
|
|
$('#inventory_notifications').append(elem);
|
|
|
|
$(elem).delay(3000).fadeOut(1000, function () {
|
|
elem.remove();
|
|
});
|
|
};
|
|
|
|
window.onData = (data) => {
|
|
switch (data.action) {
|
|
case 'setHUDDisplay': {
|
|
ESX.setHUDDisplay(data.opacity);
|
|
break;
|
|
}
|
|
|
|
case 'insertHUDElement': {
|
|
ESX.insertHUDElement(data.name, data.index, data.priority, data.html, data.data);
|
|
break;
|
|
}
|
|
|
|
case 'updateHUDElement': {
|
|
ESX.updateHUDElement(data.name, data.data);
|
|
break;
|
|
}
|
|
|
|
case 'deleteHUDElement': {
|
|
ESX.deleteHUDElement(data.name);
|
|
break;
|
|
}
|
|
|
|
case 'inventoryNotification': {
|
|
ESX.inventoryNotification(data.add, data.item, data.count);
|
|
}
|
|
}
|
|
};
|
|
|
|
window.onload = function (e) {
|
|
window.addEventListener('message', (event) => {
|
|
onData(event.data);
|
|
});
|
|
};
|
|
|
|
})(); |