public bool Remove(ushort blockId, bool merged = false) { MySlimBlock block; if (m_mapIdToBlock.TryGetValue(blockId, out block)) { m_mapIdToBlock.Remove(blockId); m_blocks.Remove(block); Debug.Assert(m_mapIdToBlock.Count == m_blocks.Count); if (!merged) { if (block.IsMultiBlockPart) { CubeGrid.RemoveMultiBlockInfo(block); } block.FatBlock.OnRemovedFromScene(this); block.FatBlock.Close(); } if (block.FatBlock.Hierarchy.Parent == Hierarchy) { block.FatBlock.Hierarchy.Parent = null; } if (!merged) { CubeGrid.UpdateBlockNeighbours(SlimBlock); } RefreshTemplates(); return(true); } Debug.Fail("Cannot remove block from compound"); return(false); }