function handler.on_create_object_reader(bs)
local read = BitStreamIO.bs_read
local data = {materials = {}, materialText = {}}
local objectId = read.int16(bs)
data.modelId = read.int32(bs)
data.position = read.vector3d(bs)
data.rotation = read.vector3d(bs)
data.drawDistance = read.float(bs)
data.noCameraCol = read.bool8(bs)
data.attachToVehicleId = read.int16(bs)
data.attachToObjectId = read.int16(bs)
if data.attachToVehicleId ~= 65535 or data.attachToPlayerId ~= 65535 then
data.attachOffsets = read.vector3d(bs)
data.attachRotation = read.vector3d(bs)
data.syncRotation = read.bool8(bs)
end
data.texturesCount = read.int8(bs)
local materialType
while raknetBitStreamGetNumberOfUnreadBits(bs) > 0 do
materialType = read.int8(bs)
if materialType == MATERIAL_TYPE.TEXTURE then
table.insert(data.materials, read_object_material(bs))
elseif materialType == MATERIAL_TYPE.TEXT then
table.insert(data.materialText, read_object_material_text(bs))
end
end
data.materials_text = data.materialText
return {objectId, data}
end