Browse Source

modding #1928

tags/v0.11.0
Shaun 2 years ago
parent
commit
a2d0aac5a2
1 changed files with 32 additions and 40 deletions
  1. +32
    -40
      src/server/clientComponents/inventory.js

+ 32
- 40
src/server/clientComponents/inventory.js View File

@@ -11,52 +11,44 @@ define([
init: function (blueprint) {
events.emit('onGetItems', this.items);
},
extend: function (blueprint) {
let rerender = false;

if (blueprint.destroyItems) {
rerender = true;
events.emit('onDestroyItems', blueprint.destroyItems, this.items);
extend: function ({ destroyItems, getItems }) {
const { items } = this;

let rerenderNeeded = false;

if (destroyItems) {
rerenderNeeded = true;
events.emit('onDestroyItems', destroyItems, this.items);
}

if (blueprint.getItems) {
let items = this.items;
let newItems = blueprint.getItems || [];
let nLen = newItems.length;

for (let i = 0; i < nLen; i++) {
let nItem = newItems[i];
let nId = nItem.id;

let findItem = items.find(f => f.id === nId);
if (findItem) {
if (!rerender) {
rerender = (
(findItem.pos !== nItem.pos) ||
(findItem.eq !== nItem.eq) ||
(findItem.active !== nItem.active) ||
(findItem.quickSlot !== nItem.quickSlot) ||
(findItem.quantity !== nItem.quantity)
);
}

for (let p in findItem)
delete findItem[p];

$.extend(true, findItem, nItem);

newItems.splice(i, 1);
i--;
nLen--;
} else {
rerender = true;
nItem.isNew = true;
if (getItems) {
getItems.forEach(g => {
const findItem = items.find(i => i.id === g.id);

if (!findItem) {
rerenderNeeded = true;
g.isNew = true;

items.push(g);

return;
}

if (!rerenderNeeded) {
rerenderNeeded = (
findItem.pos !== g.pos ||
findItem.eq !== g.eq ||
findItem.active !== g.active ||
findItem.quickSlot !== g.quickSlot ||
findItem.quantity !== g.quantity
);
}
}

this.items.push.apply(this.items, blueprint.getItems || []);
Object.assign(findItem, g);
});

events.emit('onGetItems', this.items, rerender, blueprint.getItems);
events.emit('onGetItems', this.items, rerenderNeeded, getItems);
}
},



Loading…
Cancel
Save