用户:
卑微OIer查看:14 回复:16 评论:14 创建时间:2022-03-08T18:06:27
const item = {
'wood': {
type: 'things',
weight: 1,
maxPile: 32,
},
'meat': {
type: 'things',
weight: 1,
maxPile: 16,
},
'fur': {
type: 'things',
weight: 1,
maxPile: 32,
}
}
world.onPlayerJoin(({ entity }) => {
Object.assign(entity, {
capacity: 60,
bag: [],
eqinp: ['none', 'none', 'none', 'none'],
bagLength() {
let count = 0;
for (let i = 0; i < this.bag.length; i++)
count += item[this.spliceItem(this.bag[i])[0]].weight * this.spliceItem(this.bag[i])[1];
return count;
},
spliceItem(item) {
var it = 0, returnName = "", returnNumber = 0;
while (item[it] != '*') returnName += item[it], it += 1;
for (it += 1; it < item.length; it++)returnNumber = returnNumber * 10 + parseInt(item[it]);
return [returnName, returnNumber];
},
append(things) {
if (this.bagLength() + item[things].weight > this.capacity) return false;
for (let i = 0; i < this.bag.length; i++) {
let element = this.bag[i], op = this.spliceItem(element);
if (op[0] == things && op[1] < item[things].maxPile) {
this.bag[i] = op[0] + '*' + String(op[1] + 1);
return true;
}
}
this.bag.push(things + '*1');
this.bag.sort();
return true;
},
remove(things) {
for (let i = 0; i < this.bag.length; i++) {
let op = this.spliceItem(this.bag[i]);
if (op[0] == things) {
if (op[1] > 1) this.bag[i] = op[0] + '*' + String(op[1] - 1);
else this.bag.splice(i, 1);
return true;
}
}
return false;
},
})
})bagLength() {
let count = 0;
this.bag.forEach((e)=> count += item[spliceItem(e)[0]].weight * spliceItem(e)[1];
return count;
},
spliceItem(item) {
return [item.slice(0,item.indexOf("*")),item.slice(a.indexOf("*")+1)]
},
//这样会简便点()()()点赞1
评论