public static MyObjectBuilder_CubeGrid ConvertFracturedBlocksToComponents(MyObjectBuilder_CubeGrid gridBuilder) { bool flag = false; using (List <MyObjectBuilder_CubeBlock> .Enumerator enumerator = gridBuilder.CubeBlocks.GetEnumerator()) { while (enumerator.MoveNext()) { if (enumerator.Current is MyObjectBuilder_FracturedBlock) { flag = true; break; } } } if (!flag) { return(gridBuilder); } bool enableSmallToLargeConnections = gridBuilder.EnableSmallToLargeConnections; gridBuilder.EnableSmallToLargeConnections = false; bool createPhysics = gridBuilder.CreatePhysics; gridBuilder.CreatePhysics = true; MyCubeGrid grid = Sandbox.Game.Entities.MyEntities.CreateFromObjectBuilder(gridBuilder, false) as MyCubeGrid; if (grid == null) { return(gridBuilder); } grid.ConvertFracturedBlocksToComponents(); gridBuilder.EnableSmallToLargeConnections = enableSmallToLargeConnections; MyObjectBuilder_CubeGrid objectBuilder = (MyObjectBuilder_CubeGrid)grid.GetObjectBuilder(false); objectBuilder.EnableSmallToLargeConnections = enableSmallToLargeConnections; gridBuilder.CreatePhysics = createPhysics; objectBuilder.CreatePhysics = createPhysics; grid.Close(); Sandbox.Game.Entities.MyEntities.RemapObjectBuilder(objectBuilder); return(objectBuilder); }