protected override void OnCollision(EntityId targetEntityId, Vec3 hitPos, Vec3 dir, short materialId, Vec3 contactNormal) { if (!Destroyed && targetEntityId != 0) { var breakageParams = new BreakageParameters(); breakageParams.type = BreakageType.Destroy; breakageParams.fParticleLifeTime = 7.0f; breakageParams.bMaterialEffects = true; breakageParams.nGenericCount = 0; breakageParams.bForceEntity = false; breakageParams.bOnlyHelperPieces = false; breakageParams.fExplodeImpulse = 10.0f; breakageParams.vHitImpulse = dir; breakageParams.vHitPoint = hitPos; Physics.Break(breakageParams); SetSlotFlags(GetSlotFlags() | EntitySlotFlags.Render); Destroyed = true; } }
public void Break(BreakageParameters breakageParams) { NativeEntityMethods.BreakIntoPieces(Owner.GetIEntity(), 0, 0, breakageParams); }
internal static extern void BreakIntoPieces(IntPtr ptr, int slot, int piecesSlot, BreakageParameters breakageParams);
public void Break(BreakageParameters breakageParams) { EntityInterop.BreakIntoPieces(Owner.EntityHandle, 0, 0, breakageParams); }
extern internal static void BreakIntoPieces(IntPtr ptr, int slot, int piecesSlot, BreakageParameters breakageParams);
public static extern void BreakIntoPieces(IntPtr ptr, int slot, int piecesSlot, BreakageParameters breakageParams);