From b90ab599319b74b5da4cb8cd03d1659f0acbee35 Mon Sep 17 00:00:00 2001 From: VegaZ Date: Sat, 8 Dec 2018 17:22:49 +0100 Subject: [PATCH] Add Custom Images, DragNDrop --- Client/Gui/Inventory/inventory.js | 68 ++++++++++++++++++++++++------- 1 file changed, 54 insertions(+), 14 deletions(-) diff --git a/Client/Gui/Inventory/inventory.js b/Client/Gui/Inventory/inventory.js index f18d39cd..52cfaf4d 100644 --- a/Client/Gui/Inventory/inventory.js +++ b/Client/Gui/Inventory/inventory.js @@ -37,11 +37,13 @@ grid[17] = [0.5015, 0.755] grid[18] = [0.5835, 0.755] grid[19] = [0.6655, 0.755] -var mouseDown = false; +var mouseLDown = false; +var mouseRDown = false; var hoverItem; var dragItem = null; var oldDragSlot; var actFreeSlot; +var bufferItem = []; var slots = [20]; @@ -61,11 +63,12 @@ mp.events.add("showInventory", (invWeight, itemArr) => { inventoryWeight = invWeight; items = itemArr; show = true; - mp.game.graphics.requestStreamedTextureDict("ItemImages", true); + mp.game.graphics.requestStreamedTextureDict("itemimages", true); } else { mp.gui.chat.activate(true); mp.gui.cursor.show(false, false); show = false; + mp.game.graphics.setStreamedTextureDictAsNoLongerNeeded("itemimages"); } }); @@ -73,7 +76,7 @@ mp.events.add("render", () => { if (show === true) { var pos = mp.gui.cursor.position; //DEBUG 2D-SCREEN-KOORDINATEN - //mp.game.graphics.drawText("~r~X: " + pos[0] + " ~g~Y: " + pos[1] + "~s~ ---~b~" + parseFloat(pos[0] / screenX).toFixed(3) + " ~y~" + parseFloat(pos[1] / screenY).toFixed(3) + " " + mouseDown, [pos[0] / screenX, (pos[1] / screenY) - 0.02], { + //mp.game.graphics.drawText("~r~X: " + pos[0] + " ~g~Y: " + pos[1] + "~s~ ---~b~" + parseFloat(pos[0] / screenX).toFixed(3) + " ~y~" + parseFloat(pos[1] / screenY).toFixed(3) + " " + mouseLDown, [pos[0] / screenX, (pos[1] / screenY) - 0.02], { // font: 0, // color: [255, 255, 255, 185], // scale: [0.3, 0.3], @@ -109,7 +112,7 @@ mp.events.add("render", () => { //SPRITES + ITEMANZAHL for (var currentItem = 0; currentItem < items.length; currentItem++) { if (items[currentItem][4] !== "null") { - mp.game.graphics.drawSprite("ItemImages", items[currentItem][0], grid[parseInt(items[currentItem][4] - 1)][0], grid[parseInt(items[currentItem][4] - 1)][1], rWidth / 8, rWidth / 5, 0, 255, 255, 255, 255); + mp.game.graphics.drawSprite("itemimages", items[currentItem][0].toLowerCase(), grid[parseInt(items[currentItem][4] - 1)][0], grid[parseInt(items[currentItem][4] - 1)][1], rWidth / 8, rWidth / 5, 0, 255, 255, 255, 255); mp.game.graphics.drawText("(~y~" + items[currentItem][3] + "~s~)", [grid[parseInt(items[currentItem][4] - 1)][0] + (sizeMul / 2) - 0.008, grid[parseInt(items[currentItem][4] - 1)][1] + 0.05], { font: 0, color: [255, 255, 255, 255], @@ -121,7 +124,7 @@ mp.events.add("render", () => { mp.game.graphics.set2dLayer(4); //WENN MAUS ÜBER ITEM - if (isMouseOverItem(pos[0], pos[1])) { + if (isMouseOverItem(pos[0], pos[1]) && dragItem === null) { mp.game.graphics.drawRect(pos[0] / screenX, pos[1] / screenY + 0.055, 0.14, 0.08, 0, 0, 0, 220); var hoverItemP = [items[hoverItem][0], items[hoverItem][1], items[hoverItem][2], items[hoverItem][3]]; @@ -152,11 +155,11 @@ mp.events.add("render", () => { } //WENN MOUSE DOWN - if (mouseDown && dragItem !== null) { + if (mouseLDown && dragItem !== null || mouseRDown && dragItem !== null ) { if (isMouseOverFreeSlot(pos[0], pos[1])) { - mp.game.graphics.drawSprite("Mprpsymbol", "rp", pos[0] / screenX, pos[1] / screenY, rWidth / 8, rWidth / 5, 0, 100, 255, 100, 255); + mp.game.graphics.drawSprite("itemimages", items[dragItem][0].toLowerCase(), pos[0] / screenX, pos[1] / screenY, rWidth / 8, rWidth / 5, 0, 100, 255, 100, 255); } else { - mp.game.graphics.drawSprite("Mprpsymbol", "rp", pos[0] / screenX, pos[1] / screenY, rWidth / 8, rWidth / 5, 0, 255, 100, 100, 255); + mp.game.graphics.drawSprite("itemimages", items[dragItem][0].toLowerCase(), pos[0] / screenX, pos[1] / screenY, rWidth / 8, rWidth / 5, 0, 255, 100, 100, 255); } } @@ -213,7 +216,7 @@ function isMouseOverFreeSlot(cX2, cY2) { } } if (isItemOnSlot === 0) { - actFreeSlot = s; + actFreeSlot = s + 1; return true; } } @@ -226,9 +229,11 @@ mp.events.add('click', (x, y, upOrDown, leftOrRight, relativeX, relativeY, world var cY = y / screenY; if (show) { - if (upOrDown === "down" && leftOrRight === "left" && mouseDown === false) { + //LINKE MAUSTASTE + //RUNTER + if (upOrDown === "down" && leftOrRight === "left" && mouseLDown === false) { - mouseDown = true; + mouseLDown = true; if (isMouseOverItem(x, y) && dragItem === null) { dragItem = hoverItem; @@ -237,12 +242,13 @@ mp.events.add('click', (x, y, upOrDown, leftOrRight, relativeX, relativeY, world } } - if (upOrDown === "up" && leftOrRight === "left" && mouseDown === true) { + //HOCH + if (upOrDown === "up" && leftOrRight === "left" && mouseLDown === true) { - mouseDown = false; + mouseLDown = false; if (isMouseOverFreeSlot(x, y) && dragItem !== null) { - items[dragItem][4] = actFreeSlot + 1; + items[dragItem][4] = actFreeSlot; oldDragSlot = null; dragItem = null; } else { @@ -252,6 +258,40 @@ mp.events.add('click', (x, y, upOrDown, leftOrRight, relativeX, relativeY, world } } } + + //RECHTE MAUSTASTE + //RUNTER + if (upOrDown === "down" && leftOrRight === "right" && mouseRDown === false) { + + mouseRDown = true; + + if (isMouseOverItem(x, y) && dragItem === null) { + dragItem = hoverItem; + items[hoverItem][3]--; + if (items[hoverItem][3] === "0") { + bufferItem = [items[hoverItem][0], items[hoverItem][1], items[hoverItem][2], items[hoverItem][3], items[hoverItem][4]] + items.splice(items.indexOf(items[hoverItem]), 1); + } + } + } + + //HOCH + if (upOrDown === "up" && leftOrRight === "right" && mouseRDown === true) { + + mouseRDown = false; + + if (isMouseOverFreeSlot(x, y) && dragItem !== null) { + + items.push([items[dragItem][0], items[dragItem][1], items[dragItem][2], "1", actFreeSlot.toString()]); + dragItem = null; + } else { + if (dragItem !== null) { + items.push(bufferItem); + bufferItem = null; + dragItem = null; + } + } + } } });