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())); }