Finish Inventory-Frontend

This commit is contained in:
VegaZ
2018-12-08 23:00:34 +01:00
parent 0e69501aec
commit 7361289dc9

View File

@@ -44,17 +44,7 @@ var dragItem = null;
var oldDragSlot; var oldDragSlot;
var actFreeSlot; var actFreeSlot;
var bufferItem = []; var bufferItem = [];
var stackToItem;
var slots = [20];
for (var s = 1; s <= slots.length; s++) {
for (var slY = 0.35; slY <= 0.8; slY += 0.15) {
for (var slX = 0.3775; slX <= 0.6655; slX += 0.082) {
items[s] = [ slX, slY ];
}
}
}
mp.events.add("showInventory", (invWeight, itemArr) => { mp.events.add("showInventory", (invWeight, itemArr) => {
if (show === false) { if (show === false) {
@@ -83,6 +73,13 @@ mp.events.add("render", () => {
// outline: true, // outline: true,
//}); //});
//mp.game.graphics.drawText("~r~drag: " + dragItem + "~s~... ~b~hover:" + hoverItem + "~y~....FREESLOT: " + isMouseOverFreeSlot(pos[0], pos[1]) + "..." + isItemOverSameItem(pos[0], pos[1]), [0.5, 0.02], {
// font: 0,
// color: [255, 255, 255, 185],
// scale: [0.3, 0.3],
// outline: true,
//});
mp.game.graphics.set2dLayer(1); mp.game.graphics.set2dLayer(1);
//INVENTARHINTERGRUND //INVENTARHINTERGRUND
mp.game.graphics.drawRect(rxC, ryC, 0.45, 0.7, 255, 255, 255, 200); mp.game.graphics.drawRect(rxC, ryC, 0.45, 0.7, 255, 255, 255, 200);
@@ -156,7 +153,7 @@ mp.events.add("render", () => {
//WENN MOUSE DOWN //WENN MOUSE DOWN
if (mouseLDown && dragItem !== null || mouseRDown && dragItem !== null) { if (mouseLDown && dragItem !== null || mouseRDown && dragItem !== null) {
if (isMouseOverFreeSlot(pos[0], pos[1])) { if (isMouseOverFreeSlot(pos[0], pos[1]) || isItemOverSameItem(pos[0], pos[1])) {
mp.game.graphics.drawSprite("itemimages", items[dragItem][0].toLowerCase(), 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 { } else {
mp.game.graphics.drawSprite("itemimages", items[dragItem][0].toLowerCase(), 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);
@@ -168,6 +165,8 @@ mp.events.add("render", () => {
function isMouseOverItem(cX, cY) { function isMouseOverItem(cX, cY) {
if (dragItem === null) {
var x = cX / screenX; var x = cX / screenX;
var y = cY / screenY; var y = cY / screenY;
var a; var a;
@@ -191,6 +190,7 @@ function isMouseOverItem(cX, cY) {
} }
} }
} }
}
function isMouseOverFreeSlot(cX2, cY2) { function isMouseOverFreeSlot(cX2, cY2) {
@@ -223,7 +223,9 @@ function isMouseOverFreeSlot(cX2, cY2) {
} }
} }
function isMouseOverSameItemType(cX2, cY2) { function isItemOverSameItem(cX2, cY2) {
if (dragItem !== null) {
var x = cX2 / screenX; var x = cX2 / screenX;
var y = cY2 / screenY; var y = cY2 / screenY;
@@ -240,17 +242,15 @@ function isMouseOverSameItemType(cX2, cY2) {
if (c < sizeMul / 2) { if (c < sizeMul / 2) {
for (i = 0; i < items.length; i++) { for (i = 0; i < items.length; i++) {
if (parseInt(items[i][4]) === invSlot) { if (items[dragItem][0] === items[i][0] && parseInt(items[i][4]) === invSlot) {
isItemOnSlot++; stackToItem = i;
}
}
if (isItemOnSlot === 0) {
actFreeSlot = s + 1;
return true; return true;
} }
} }
} }
} }
}
}
mp.events.add('click', (x, y, upOrDown, leftOrRight, relativeX, relativeY, worldPosition, hitEntity) => { mp.events.add('click', (x, y, upOrDown, leftOrRight, relativeX, relativeY, worldPosition, hitEntity) => {
@@ -260,7 +260,7 @@ mp.events.add('click', (x, y, upOrDown, leftOrRight, relativeX, relativeY, world
if (show) { if (show) {
//LINKE MAUSTASTE //LINKE MAUSTASTE
//RUNTER //RUNTER
if (upOrDown === "down" && leftOrRight === "left" && mouseLDown === false) { if (upOrDown === "down" && leftOrRight === "left" && mouseLDown === false && mouseRDown === false) {
mouseLDown = true; mouseLDown = true;
@@ -282,6 +282,12 @@ mp.events.add('click', (x, y, upOrDown, leftOrRight, relativeX, relativeY, world
oldDragSlot = null; oldDragSlot = null;
dragItem = null; dragItem = null;
hoverItem = null; hoverItem = null;
} else if (isItemOverSameItem(x, y)) {
var newAmount = parseInt(items[stackToItem][3]) + parseInt(items[dragItem][3]);
items[stackToItem][3] = newAmount.toString();
items.splice(dragItem, 1);
dragItem = null;
hoverItem = null;
} else { } else {
items[dragItem][4] = oldDragSlot; items[dragItem][4] = oldDragSlot;
dragItem = null; dragItem = null;
@@ -292,12 +298,13 @@ mp.events.add('click', (x, y, upOrDown, leftOrRight, relativeX, relativeY, world
//RECHTE MAUSTASTE //RECHTE MAUSTASTE
//RUNTER //RUNTER
if (upOrDown === "down" && leftOrRight === "right" && mouseRDown === false) { if (upOrDown === "down" && leftOrRight === "right" && mouseLDown === false && mouseRDown === false) {
mouseRDown = true; mouseRDown = true;
if (isMouseOverItem(x, y) && dragItem === null) { if (isMouseOverItem(x, y) && dragItem === null) {
dragItem = hoverItem; dragItem = hoverItem;
oldDragSlot = items[hoverItem][4];
bufferItem = [items[hoverItem][0], items[hoverItem][1], items[hoverItem][2], items[hoverItem][3], items[hoverItem][4]] bufferItem = [items[hoverItem][0], items[hoverItem][1], items[hoverItem][2], items[hoverItem][3], items[hoverItem][4]]
items[hoverItem][3]--; items[hoverItem][3]--;
} }
@@ -310,15 +317,21 @@ mp.events.add('click', (x, y, upOrDown, leftOrRight, relativeX, relativeY, world
if (dragItem !== null) { if (dragItem !== null) {
if (isMouseOverFreeSlot(x, y)) { if (isMouseOverFreeSlot(x, y)) {
items.push([items[dragItem][0], items[dragItem][1], items[dragItem][2], "1", actFreeSlot.toString()]);
if (items[hoverItem][3] === "0") { items.push([items[dragItem][0], items[dragItem][1], items[dragItem][2], "1", actFreeSlot.toString()]);
items.splice(items.indexOf(items[hoverItem]), 1); if (items[hoverItem][3] === 0) {
items.splice(hoverItem, 1);
} }
dragItem = null; dragItem = null;
hoverItem = null; hoverItem = null;
} else if (isItemOverSameItem(x, y)) {
items[stackToItem][3]++;
items.splice(hoverItem, 1);
bufferItem = null;
dragItem = null;
hoverItem = null;
} else { } else {
items.push(bufferItem); items[hoverItem][3]++;
bufferItem = null; bufferItem = null;
dragItem = null; dragItem = null;
hoverItem = null; hoverItem = null;