AI 7
This commit is contained in:
parent
a8bb5f90e5
commit
44ab3f31d8
@ -1,6 +1,7 @@
|
|||||||
let inventoryPage = 0;
|
let inventoryPage = 0;
|
||||||
const slotsPerPage = 32;
|
const slotsPerPage = 32;
|
||||||
let inventoryItems = [];
|
let inventoryItems = [];
|
||||||
|
let totalInventoryPages = 1;
|
||||||
|
|
||||||
export async function loadWohnhaus() {
|
export async function loadWohnhaus() {
|
||||||
const ui = document.querySelector(".building-ui");
|
const ui = document.querySelector(".building-ui");
|
||||||
@ -76,7 +77,9 @@ export async function loadWohnhaus() {
|
|||||||
================================ */
|
================================ */
|
||||||
|
|
||||||
function updateAvatarOverlay(slotName, iconSrc) {
|
function updateAvatarOverlay(slotName, iconSrc) {
|
||||||
const overlay = document.querySelector(`.avatar-overlay[data-slot="${slotName}"]`);
|
const overlay = document.querySelector(
|
||||||
|
`.avatar-overlay[data-slot="${slotName}"]`,
|
||||||
|
);
|
||||||
if (!overlay) return;
|
if (!overlay) return;
|
||||||
|
|
||||||
const img = overlay.querySelector("img");
|
const img = overlay.querySelector("img");
|
||||||
@ -86,7 +89,9 @@ function updateAvatarOverlay(slotName, iconSrc) {
|
|||||||
overlay.classList.add("visible");
|
overlay.classList.add("visible");
|
||||||
} else {
|
} else {
|
||||||
overlay.classList.remove("visible");
|
overlay.classList.remove("visible");
|
||||||
setTimeout(() => { img.src = ""; }, 250);
|
setTimeout(() => {
|
||||||
|
img.src = "";
|
||||||
|
}, 250);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -96,7 +101,11 @@ function updateAvatarOverlay(slotName, iconSrc) {
|
|||||||
|
|
||||||
async function loadInventory() {
|
async function loadInventory() {
|
||||||
const res = await fetch("/api/inventory");
|
const res = await fetch("/api/inventory");
|
||||||
inventoryItems = await res.json();
|
const data = await res.json();
|
||||||
|
|
||||||
|
inventoryItems = data.items;
|
||||||
|
totalInventoryPages = data.totalPages;
|
||||||
|
|
||||||
renderInventory();
|
renderInventory();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -131,9 +140,8 @@ function renderInventory() {
|
|||||||
|
|
||||||
grid.innerHTML = html;
|
grid.innerHTML = html;
|
||||||
|
|
||||||
const totalPages = Math.max(1, Math.ceil(inventoryItems.length / slotsPerPage));
|
|
||||||
document.getElementById("inventory-page").innerText =
|
document.getElementById("inventory-page").innerText =
|
||||||
"Seite " + (inventoryPage + 1) + " / " + totalPages;
|
"Seite " + (inventoryPage + 1) + " / " + totalInventoryPages;
|
||||||
|
|
||||||
initDrag();
|
initDrag();
|
||||||
}
|
}
|
||||||
@ -151,8 +159,7 @@ function initInventoryButtons() {
|
|||||||
};
|
};
|
||||||
|
|
||||||
document.getElementById("inv-right").onclick = () => {
|
document.getElementById("inv-right").onclick = () => {
|
||||||
const totalPages = Math.max(1, Math.ceil(inventoryItems.length / slotsPerPage));
|
if (inventoryPage < totalInventoryPages - 1) {
|
||||||
if (inventoryPage < totalPages - 1) {
|
|
||||||
inventoryPage++;
|
inventoryPage++;
|
||||||
renderInventory();
|
renderInventory();
|
||||||
}
|
}
|
||||||
@ -239,13 +246,17 @@ function initDrop() {
|
|||||||
let icon;
|
let icon;
|
||||||
|
|
||||||
if (source === "inventory") {
|
if (source === "inventory") {
|
||||||
const inventoryItem = document.querySelector('.inventory-slot[data-id="' + itemId + '"]');
|
const inventoryItem = document.querySelector(
|
||||||
|
'.inventory-slot[data-id="' + itemId + '"]',
|
||||||
|
);
|
||||||
if (!inventoryItem) return;
|
if (!inventoryItem) return;
|
||||||
icon = inventoryItem.querySelector("img").src;
|
icon = inventoryItem.querySelector("img").src;
|
||||||
inventoryItem.classList.add("empty");
|
inventoryItem.classList.add("empty");
|
||||||
inventoryItem.innerHTML = "";
|
inventoryItem.innerHTML = "";
|
||||||
} else {
|
} else {
|
||||||
const slotItem = document.querySelector('.slot[data-slot="' + itemSlot + '"] img');
|
const slotItem = document.querySelector(
|
||||||
|
'.slot[data-slot="' + itemSlot + '"] img',
|
||||||
|
);
|
||||||
if (!slotItem) return;
|
if (!slotItem) return;
|
||||||
icon = slotItem.src;
|
icon = slotItem.src;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -24,7 +24,16 @@ WHERE user_inventory.user_id=?
|
|||||||
[userId],
|
[userId],
|
||||||
);
|
);
|
||||||
|
|
||||||
res.json(items);
|
// Gekaufte Seiten laden
|
||||||
|
const [ownedPages] = await db.query(
|
||||||
|
`SELECT COUNT(*) as total FROM user_inventory_pages WHERE user_id = ?`,
|
||||||
|
[userId],
|
||||||
|
);
|
||||||
|
|
||||||
|
// Seite 1 ist immer kostenlos
|
||||||
|
const totalPages = Math.max(1, ownedPages[0].total);
|
||||||
|
|
||||||
|
res.json({ items, totalPages });
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error("Inventory Fehler:", err);
|
console.error("Inventory Fehler:", err);
|
||||||
res.status(500).json({ error: "DB Fehler" });
|
res.status(500).json({ error: "DB Fehler" });
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user