Exemple #1
0
        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);
        }