This commit is contained in:
Cay 2026-03-13 18:26:04 +00:00
parent 9200a14118
commit b4ab9030fb

View File

@ -61,8 +61,8 @@ export async function loadWohnhaus() {
await loadEquipment(); await loadEquipment();
initDrag(); initDrag();
initDrop();
initSlotDrag(); initSlotDrag();
initDrop();
initInventoryDrop(); initInventoryDrop();
} }
@ -81,11 +81,11 @@ async function loadEquipment() {
const label = slot.querySelector(".slot-label"); const label = slot.querySelector(".slot-label");
slot.innerHTML = ` slot.innerHTML = `
<img src="${item.icon}" <img src="${item.icon}"
draggable="true" draggable="true"
data-id="${item.item_id}" data-id="${item.item_id}"
data-level="${item.item_level_id}"> data-level="${item.item_level_id}">
`; `;
if (label) slot.appendChild(label); if (label) slot.appendChild(label);
@ -176,21 +176,28 @@ function initDrop() {
if (!itemSlot || itemSlot !== targetSlot) return; if (!itemSlot || itemSlot !== targetSlot) return;
const icon = /* Icon bestimmen */
source === "inventory"
? document.querySelector(
'.inventory-slot[data-id="' + itemId + '"] img',
).src
: document.querySelector('.slot[data-slot="' + itemSlot + '"] img')
.src;
/* Inventar Item entfernen */ let icon;
if (source === "inventory") { if (source === "inventory") {
const inventoryItem = document.querySelector( const inventoryItem = document.querySelector(
'.inventory-slot[data-id="' + itemId + '"]', '.inventory-slot[data-id="' + itemId + '"]',
); );
if (inventoryItem) inventoryItem.remove();
if (!inventoryItem) return;
icon = inventoryItem.querySelector("img").src;
inventoryItem.remove();
} else {
const slotItem = document.querySelector(
'.slot[data-slot="' + itemSlot + '"] img',
);
if (!slotItem) return;
icon = slotItem.src;
} }
/* vorhandenes Item zurück ins Inventar */ /* vorhandenes Item zurück ins Inventar */
@ -201,12 +208,13 @@ function initDrop() {
const grid = document.getElementById("inventory-grid"); const grid = document.getElementById("inventory-grid");
const newItem = document.createElement("div"); const newItem = document.createElement("div");
newItem.classList.add("inventory-slot"); newItem.classList.add("inventory-slot");
newItem.setAttribute("draggable", "true"); newItem.setAttribute("draggable", "true");
newItem.dataset.id = existing.dataset.id; newItem.dataset.id = existing.dataset.id;
newItem.dataset.level = existing.dataset.level; newItem.dataset.level = existing.dataset.level;
newItem.dataset.slot = slot.dataset.slot; newItem.dataset.slot = targetSlot;
newItem.innerHTML = `<img src="${existing.src}">`; newItem.innerHTML = `<img src="${existing.src}">`;
@ -248,15 +256,18 @@ function initInventoryDrop() {
grid.addEventListener("drop", (e) => { grid.addEventListener("drop", (e) => {
e.preventDefault(); e.preventDefault();
const itemId = e.dataTransfer.getData("itemId");
const itemLevel = e.dataTransfer.getData("itemLevel");
const slotName = e.dataTransfer.getData("slot");
const source = e.dataTransfer.getData("source"); const source = e.dataTransfer.getData("source");
if (source !== "slot") return; if (source !== "slot") return;
const itemId = e.dataTransfer.getData("itemId");
const itemLevel = e.dataTransfer.getData("itemLevel");
const slotName = e.dataTransfer.getData("slot");
const slot = document.querySelector('.slot[data-slot="' + slotName + '"]'); const slot = document.querySelector('.slot[data-slot="' + slotName + '"]');
const img = slot.querySelector("img"); const img = slot.querySelector("img");
if (!img) return; if (!img) return;
const newItem = document.createElement("div"); const newItem = document.createElement("div");
@ -272,9 +283,12 @@ function initInventoryDrop() {
grid.appendChild(newItem); grid.appendChild(newItem);
/* Slot leeren */
const label = slot.querySelector(".slot-label"); const label = slot.querySelector(".slot-label");
slot.innerHTML = ""; slot.innerHTML = "";
if (label) slot.appendChild(label); if (label) slot.appendChild(label);
slot.classList.remove("has-item"); slot.classList.remove("has-item");