Generated by Rojo 7.3.0.
To install with wally, insert it above wally.toml [dependecies]
Entity = "ernisto/[email protected]"
type inventoryData = { slots: number }
local EquippedItem = Entity.trait('EquippedItem', function(self, tool: Tool)
end)
local Inventory = Entity.trait('Inventory', function(self, player: Player, syncs: inventoryData)
local data = awaitData(player)
self:_applyAttributes(data)
self.items = {}
function self:addItem(item: Tool)
self.items[item] = 'unequipped'
end
function self:removeItem(item: Tool)
self.items[item] = nil
end
function self:equipItem(item: Tool)
assert(self.items[item] == 'unequipped', `item already equipped`)
self.items[item] = EquippedItem.get(item)
end
function self:unequipItem(item: Tool)
assert(self.items[item] == 'equipped', `item already unequipped`)
self.items[item]:unwrap()
self.items[item] = 'unequipped'
end
end)
local function tradeItem(player, item: Tool)
assert(not EquippedItem.find(item), `u cant trade a equipped item`)
local inventory = Inventory.get(player)
inventory:addItem(item)
end