static void OnCreateFracturePieceMessage(
            [Serialize(MyObjectFlags.Dynamic, DynamicSerializerType = typeof(MyObjectBuilderDynamicSerializer))] MyObjectBuilder_FracturedPiece fracturePiece)
        {
            var fracturedPiece = MyFracturedPiecesManager.Static.GetPieceFromPool(fracturePiece.EntityId, true);

            Debug.Assert(fracturePiece.EntityId != 0, "Fracture piece without ID");
            try
            {
                fracturedPiece.Init(fracturePiece);
                MyEntities.Add(fracturedPiece);
            }
            catch (Exception e)
            {
                MyLog.Default.WriteLine("Cannot add fracture piece: " + e.Message);
                if (fracturedPiece == null)
                {
                    return;
                }

                MyFracturedPiecesManager.Static.RemoveFracturePiece(fracturedPiece, 0, true, false);
                StringBuilder sb = new StringBuilder();
                foreach (var shape in fracturePiece.Shapes)
                {
                    sb.Append(shape.Name).Append(" ");
                }
                Debug.Fail("Recieved fracture piece not added");
                MyLog.Default.WriteLine("Received fracture piece not added, no shape found. Shapes: " + sb.ToString());
            }
        }
Exemple #2
0
        public static void CreateFracturePiece(MyObjectBuilder_FracturedPiece fracturePiece)
        {
            var msg = new CreateFracturePieceMsg();

            msg.FracturePiece = fracturePiece;
            MySession.Static.SyncLayer.SendMessageToAll(ref msg);
        }
 public static void CreateFracturePiece(MyObjectBuilder_FracturedPiece fracturePiece)
 {
     Debug.Assert(Sync.IsServer);
     MyMultiplayer.RaiseStaticEvent(s => MySyncDestructions.OnCreateFracturePieceMessage, fracturePiece);
 }
 public static void CreateFracturePiece(MyObjectBuilder_FracturedPiece fracturePiece)
 {
     Debug.Assert(Sync.IsServer);
     MyMultiplayer.RaiseStaticEvent(s => MySyncDestructions.OnCreateFracturePieceMessage, fracturePiece);
 }
 public static void CreateFracturePiece(MyObjectBuilder_FracturedPiece fracturePiece)
 {
     Debug.Assert(Sync.IsServer);
     var msg = new CreateFracturePieceMsg();
     msg.FracturePiece = fracturePiece;
     MySession.Static.SyncLayer.SendMessageToAll(ref msg);
 }