49 lines
1.7 KiB
TypeScript
49 lines
1.7 KiB
TypeScript
|
import { inventoryChange } from "../Classes/Incoming/inventoryChange";
|
||
|
import { itemData } from "../Classes/itemData";
|
||
|
import { playerData } from "../Classes/playerData";
|
||
|
|
||
|
export function updateInventory(socket, data){
|
||
|
if(!socket.hasOwnProperty("player")) return;
|
||
|
|
||
|
let buff = Buffer.from(data, 'base64');
|
||
|
let data1 : inventoryChange[] = JSON.parse(buff.toString('utf-8'));
|
||
|
|
||
|
let player : playerData = socket.player
|
||
|
let inventory = player.inventory
|
||
|
|
||
|
data1.forEach(change=>{
|
||
|
switch(change.operation){
|
||
|
case 0: //None
|
||
|
break;
|
||
|
case 1: //ItemAdd
|
||
|
{
|
||
|
let item = itemData.fromChange(change)
|
||
|
inventory.items.push(item)
|
||
|
break;
|
||
|
}
|
||
|
case 2: //ItemAddToStack
|
||
|
{
|
||
|
let itemStack = inventory.items.find(i=>i.id == change.id)
|
||
|
itemStack.count += change.change
|
||
|
break;
|
||
|
}
|
||
|
case 3: //ItemRemove
|
||
|
{
|
||
|
let itemStack = inventory.items.findIndex(i=>i.id == change.id)
|
||
|
inventory.items.splice(itemStack, 1)
|
||
|
break;
|
||
|
}
|
||
|
case 4: //ItemRemoveFromStack
|
||
|
{
|
||
|
let itemStack = inventory.items.find(i=>i.id == change.id)
|
||
|
itemStack.count -= change.change
|
||
|
break;
|
||
|
}
|
||
|
case 5: //EquipmentChange
|
||
|
{
|
||
|
inventory.equipment = change.equipment
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
})
|
||
|
}
|