Finish Inventory-Frontend
This commit is contained in:
@@ -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);
|
||||||
@@ -155,8 +152,8 @@ 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,24 +165,27 @@ mp.events.add("render", () => {
|
|||||||
|
|
||||||
function isMouseOverItem(cX, cY) {
|
function isMouseOverItem(cX, cY) {
|
||||||
|
|
||||||
var x = cX / screenX;
|
if (dragItem === null) {
|
||||||
var y = cY / screenY;
|
|
||||||
var a;
|
|
||||||
var b;
|
|
||||||
var c;
|
|
||||||
|
|
||||||
for (var s = 0; s < 20; s++) {
|
var x = cX / screenX;
|
||||||
a = grid[s][0] - x;
|
var y = cY / screenY;
|
||||||
b = grid[s][1] - y;
|
var a;
|
||||||
c = Math.sqrt(a * a + b * b);
|
var b;
|
||||||
|
var c;
|
||||||
|
|
||||||
var invSlot = (s + 1);
|
for (var s = 0; s < 20; s++) {
|
||||||
|
a = grid[s][0] - x;
|
||||||
|
b = grid[s][1] - y;
|
||||||
|
c = Math.sqrt(a * a + b * b);
|
||||||
|
|
||||||
if (c < sizeMul / 2) {
|
var invSlot = (s + 1);
|
||||||
for (i = 0; i < items.length; i++) {
|
|
||||||
if (parseInt(items[i][4]) === invSlot) {
|
if (c < sizeMul / 2) {
|
||||||
hoverItem = i;
|
for (i = 0; i < items.length; i++) {
|
||||||
return true;
|
if (parseInt(items[i][4]) === invSlot) {
|
||||||
|
hoverItem = i;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -223,31 +223,31 @@ function isMouseOverFreeSlot(cX2, cY2) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function isMouseOverSameItemType(cX2, cY2) {
|
function isItemOverSameItem(cX2, cY2) {
|
||||||
|
|
||||||
var x = cX2 / screenX;
|
if (dragItem !== null) {
|
||||||
var y = cY2 / screenY;
|
|
||||||
var a;
|
|
||||||
var b;
|
|
||||||
var c;
|
|
||||||
|
|
||||||
for (var s = 0; s < 20; s++) {
|
var x = cX2 / screenX;
|
||||||
a = grid[s][0] - x;
|
var y = cY2 / screenY;
|
||||||
b = grid[s][1] - y;
|
var a;
|
||||||
c = Math.sqrt(a * a + b * b);
|
var b;
|
||||||
|
var c;
|
||||||
|
|
||||||
var invSlot = (s + 1);
|
for (var s = 0; s < 20; s++) {
|
||||||
|
a = grid[s][0] - x;
|
||||||
|
b = grid[s][1] - y;
|
||||||
|
c = Math.sqrt(a * a + b * b);
|
||||||
|
|
||||||
if (c < sizeMul / 2) {
|
var invSlot = (s + 1);
|
||||||
for (i = 0; i < items.length; i++) {
|
|
||||||
if (parseInt(items[i][4]) === invSlot) {
|
if (c < sizeMul / 2) {
|
||||||
isItemOnSlot++;
|
for (i = 0; i < items.length; i++) {
|
||||||
|
if (items[dragItem][0] === items[i][0] && parseInt(items[i][4]) === invSlot) {
|
||||||
|
stackToItem = i;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (isItemOnSlot === 0) {
|
|
||||||
actFreeSlot = s + 1;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user