Exemplo n.º 1
0
            public override bool DebugDraw()
            {
                if (!MyDebugDrawSettings.DEBUG_DRAW_MOUNT_POINTS || m_block.MountPoints == null)
                {
                    return(true);
                }
                //var cube = BoundingBox.CreateInvalid();
                //for (int i = 0; i < m_block.OriginalBlocks.Count; i++)
                //{
                //    var b = m_block.OriginalBlocks[i];
                //    Matrix m2;
                //    m_block.Orientations[i].GetMatrix(out m2);
                //    var size = new Vector3(MyDefinitionManager.Static.GetCubeBlockDefinition(b).Size);
                //    var bb2 = new BoundingBox(-size / 2, size / 2);
                //    cube = cube.Include(bb2.Transform(m2));
                //}

                //var obb = new MyOrientedBoundingBoxD(m_block.WorldMatrix.Translation, cube.HalfExtents * m_block.CubeGrid.GridSize, Quaternion.CreateFromRotationMatrix(m_block.WorldMatrix));
                //VRageRender.MyRenderProxy.DebugDrawOBB(obb, Color.Red, 0.05f, false, false);

                MatrixD m = m_block.CubeGrid.PositionComp.WorldMatrix;

                m.Translation = m_block.CubeGrid.GridIntegerToWorld(m_block.Position);
                MyCubeBuilder.DrawMountPoints(m_block.CubeGrid.GridSize, m_block.BlockDefinition, m, m_block.MountPoints.ToArray());
                return(true);
            }
        private void DebugDrawMountPoints(MySlimBlock block)
        {
            if (block.FatBlock is MyCompoundCubeBlock)
            {
                MyCompoundCubeBlock compoundBlock = block.FatBlock as MyCompoundCubeBlock;
                foreach (MySlimBlock componentBlock in compoundBlock.GetBlocks())
                {
                    DebugDrawMountPoints(componentBlock);
                }
            }
            else
            {
                Matrix blockMatrix;
                block.GetLocalMatrix(out blockMatrix);
                MatrixD blockWorldMatrix = blockMatrix * m_cubeGrid.WorldMatrix;

                if (MyFakes.ENABLE_FRACTURE_COMPONENT && block.FatBlock != null && block.FatBlock.Components.Has <MyFractureComponentBase>())
                {
                    var fractureComponent = block.GetFractureComponent();
                    if (fractureComponent != null)
                    {
                        MyCubeBuilder.DrawMountPoints(m_cubeGrid.GridSize, block.BlockDefinition, blockWorldMatrix, fractureComponent.MountPoints.GetInternalArray());
                    }
                }
                else
                {
                    MyCubeBuilder.DrawMountPoints(m_cubeGrid.GridSize, block.BlockDefinition, ref blockWorldMatrix);
                }
            }
        }
Exemplo n.º 3
0
 private void DebugDrawMountPoints(MySlimBlock block)
 {
     if (block.FatBlock is MyCompoundCubeBlock)
     {
         foreach (MySlimBlock block2 in (block.FatBlock as MyCompoundCubeBlock).GetBlocks())
         {
             this.DebugDrawMountPoints(block2);
         }
     }
     else
     {
         Matrix matrix;
         block.GetLocalMatrix(out matrix);
         MatrixD drawMatrix = matrix * this.m_cubeGrid.WorldMatrix;
         if ((!MyFakes.ENABLE_FRACTURE_COMPONENT || (block.FatBlock == null)) || !block.FatBlock.Components.Has <MyFractureComponentBase>())
         {
             MyCubeBuilder.DrawMountPoints(this.m_cubeGrid.GridSize, block.BlockDefinition, ref drawMatrix);
         }
         else
         {
             MyFractureComponentCubeBlock fractureComponent = block.GetFractureComponent();
             if (fractureComponent != null)
             {
                 MyCubeBuilder.DrawMountPoints(this.m_cubeGrid.GridSize, block.BlockDefinition, drawMatrix, fractureComponent.MountPoints.GetInternalArray <MyCubeBlockDefinition.MountPoint>());
             }
         }
     }
 }
            public override void DebugDraw()
            {
                if (!MyDebugDrawSettings.DEBUG_DRAW_MOUNT_POINTS || !m_block.Components.Has <MyFractureComponentBase>())
                {
                    return;
                }

                MyFractureComponentCubeBlock component = m_block.GetFractureComponent();

                if (component != null)
                {
                    MatrixD m = m_block.CubeGrid.PositionComp.WorldMatrix;
                    m.Translation = m_block.CubeGrid.GridIntegerToWorld(m_block.Position);
                    MyCubeBuilder.DrawMountPoints(m_block.CubeGrid.GridSize, m_block.BlockDefinition, m, component.MountPoints.ToArray());
                }
            }
Exemplo n.º 5
0
 private void DebugDrawMountPoints(MySlimBlock block)
 {
     if (block.FatBlock is MyCompoundCubeBlock)
     {
         MyCompoundCubeBlock compoundBlock = block.FatBlock as MyCompoundCubeBlock;
         foreach (MySlimBlock componentBlock in compoundBlock.GetBlocks())
         {
             DebugDrawMountPoints(componentBlock);
         }
     }
     else
     {
         MatrixD blockWorldMatrix = m_cubeGrid.WorldMatrix;
         Matrix  blockMatrix;
         block.Orientation.GetMatrix(out blockMatrix);
         blockWorldMatrix            *= blockMatrix;
         blockWorldMatrix.Translation = m_cubeGrid.GridIntegerToWorld(block.Position);
         MyCubeBuilder.DrawMountPoints(m_cubeGrid.GridSize, block.BlockDefinition, ref blockWorldMatrix);
     }
 }