Track nbt entries
This commit is contained in:
parent
df93ccf801
commit
3f3dd111c1
storage
@ -49,6 +49,10 @@ function ItemGroup:getEnchantments()
|
|||||||
return self:_getIdentityStack():getEnchantments()
|
return self:_getIdentityStack():getEnchantments()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function ItemGroup:getNBT()
|
||||||
|
return self:_getIdentityStack():getNBT()
|
||||||
|
end
|
||||||
|
|
||||||
function ItemGroup:_getIdentityStack()
|
function ItemGroup:_getIdentityStack()
|
||||||
return self[1]
|
return self[1]
|
||||||
end
|
end
|
||||||
|
@ -19,6 +19,7 @@ function ItemStack:fromDetail(inv, detail, slot)
|
|||||||
obj.maxCount = detail.maxCount
|
obj.maxCount = detail.maxCount
|
||||||
obj.enchantments = detail.enchantments
|
obj.enchantments = detail.enchantments
|
||||||
obj.displayName = detail.displayName
|
obj.displayName = detail.displayName
|
||||||
|
obj.nbt = detail.nbt
|
||||||
end
|
end
|
||||||
|
|
||||||
setmetatable(obj, self)
|
setmetatable(obj, self)
|
||||||
@ -37,7 +38,8 @@ function ItemStack:clone(withSlot)
|
|||||||
count = self.count,
|
count = self.count,
|
||||||
maxCount = self.maxCount,
|
maxCount = self.maxCount,
|
||||||
enchantments = self.enchantments,
|
enchantments = self.enchantments,
|
||||||
displayName = self.displayName
|
displayName = self.displayName,
|
||||||
|
nbt = self.nbt
|
||||||
}
|
}
|
||||||
|
|
||||||
setmetatable(obj, self)
|
setmetatable(obj, self)
|
||||||
@ -52,7 +54,7 @@ function ItemStack:toSerializable()
|
|||||||
maxCount = self.maxCount
|
maxCount = self.maxCount
|
||||||
}
|
}
|
||||||
|
|
||||||
if self.count ~= nil then
|
if not self:isEmpty() then
|
||||||
-- Not empty
|
-- Not empty
|
||||||
ser.name = self.name
|
ser.name = self.name
|
||||||
ser.damage = self.damage
|
ser.damage = self.damage
|
||||||
@ -60,6 +62,7 @@ function ItemStack:toSerializable()
|
|||||||
ser.count = self.count
|
ser.count = self.count
|
||||||
ser.enchantments = self.enchantments
|
ser.enchantments = self.enchantments
|
||||||
ser.displayName = self.displayName
|
ser.displayName = self.displayName
|
||||||
|
ser.nbt = self.nbt
|
||||||
end
|
end
|
||||||
|
|
||||||
return ser
|
return ser
|
||||||
@ -106,6 +109,10 @@ function ItemStack:getInventory()
|
|||||||
return self.inv
|
return self.inv
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function ItemStack:getNBT()
|
||||||
|
return self.nbt
|
||||||
|
end
|
||||||
|
|
||||||
function ItemStack:isEmpty()
|
function ItemStack:isEmpty()
|
||||||
return self.count == nil or self.count == 0
|
return self.count == nil or self.count == 0
|
||||||
end
|
end
|
||||||
@ -134,7 +141,7 @@ function ItemStack:getSimpleName()
|
|||||||
|
|
||||||
return simpleName
|
return simpleName
|
||||||
end
|
end
|
||||||
|
|
||||||
return Inventory.getSimpleName(self:getInventory()).."["..(self:getSlot() or "NO_SLOT").."]"
|
return Inventory.getSimpleName(self:getInventory()).."["..(self:getSlot() or "NO_SLOT").."]"
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -163,6 +170,7 @@ function ItemStack:_modify(countDelta, stack)
|
|||||||
self.maxCount = nil
|
self.maxCount = nil
|
||||||
self.enchantments = nil
|
self.enchantments = nil
|
||||||
self.displayName = nil
|
self.displayName = nil
|
||||||
|
self.nbt = nil
|
||||||
else
|
else
|
||||||
-- If stack is empty, copy stack data from source
|
-- If stack is empty, copy stack data from source
|
||||||
if self:isEmpty() then
|
if self:isEmpty() then
|
||||||
@ -173,6 +181,7 @@ function ItemStack:_modify(countDelta, stack)
|
|||||||
self.maxCount = stack.maxCount
|
self.maxCount = stack.maxCount
|
||||||
self.enchantments = stack.enchantments
|
self.enchantments = stack.enchantments
|
||||||
self.displayName = stack.displayName
|
self.displayName = stack.displayName
|
||||||
|
self.nbt = stack.nbt
|
||||||
end
|
end
|
||||||
|
|
||||||
self.count = newCount
|
self.count = newCount
|
||||||
@ -243,6 +252,7 @@ function ItemStack:canTransfer(stack)
|
|||||||
self.damage == stack.damage and
|
self.damage == stack.damage and
|
||||||
self.maxDamage == stack.maxDamage and
|
self.maxDamage == stack.maxDamage and
|
||||||
self.displayName == stack.displayName and
|
self.displayName == stack.displayName and
|
||||||
|
self.nbt == stack.nbt and
|
||||||
objEquals(self.enchantments, stack.enchantments))
|
objEquals(self.enchantments, stack.enchantments))
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -272,6 +282,7 @@ function ItemStack:matches(query)
|
|||||||
queryField(query.maxDamage, self.maxDamage) and
|
queryField(query.maxDamage, self.maxDamage) and
|
||||||
queryField(query.enchantments, self.enchantments) and
|
queryField(query.enchantments, self.enchantments) and
|
||||||
queryField(query.maxCount, self.maxCount) and
|
queryField(query.maxCount, self.maxCount) and
|
||||||
|
queryField(query.nbt, self.nbt) and
|
||||||
queryField(query.displayName, self.displayName)
|
queryField(query.displayName, self.displayName)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user