private void AddStandardFields(MySlimBlock sourceBlock, Block block)
        {
            var grid = sourceBlock.CubeGrid;

            block.Id             = sourceBlock.BlockId().ToString();
            block.DefinitionId   = sourceBlock.BlockDefinition.ToDefinitionId();
            block.Position       = grid.GridIntegerToWorld(sourceBlock.Position).ToPlain();
            block.MaxIntegrity   = sourceBlock.MaxIntegrity;
            block.BuildIntegrity = sourceBlock.BuildIntegrity;
            block.Integrity      = sourceBlock.Integrity;
            block.MinPosition    = grid.GridIntegerToWorld(sourceBlock.Min).ToPlain();
            block.MaxPosition    = grid.GridIntegerToWorld(sourceBlock.Max).ToPlain();

            // Note: it does not have to be the same as block.Min - block.Max (because of rotations)
            block.Size = sourceBlock.BlockDefinition.Size.ToPlain();

            block.OrientationForward =
                grid.WorldMatrix.GetDirectionVector(sourceBlock.Orientation.Forward).ToPlain();
            block.OrientationUp = grid.WorldMatrix.GetDirectionVector(sourceBlock.Orientation.Up).ToPlain();
            block.Functional    = sourceBlock.FatBlock?.IsFunctional ?? false;
            block.Working       = sourceBlock.FatBlock?.IsWorking ?? false;
            block.UseObjects    = GetUseObjects(sourceBlock);

            block.GridPosition = sourceBlock.Position.ToPlain();
            block.OwnerId      = sourceBlock.OwnerId.ToString();
            block.BuiltBy      = sourceBlock.BuiltBy.ToString();
        }
 private bool FilterOnlyNew(MySlimBlock block)
 {
     m_newBlockIds.Add(block.BlockId());
     return(!m_previousBlockIds.Contains(block.BlockId()));
 }