/// <summary> /// Post destroy message: destroy sub-objects. /// </summary> /// <param name="obj"></param> /// <param name="msg"></param> /// <param name="packet"></param> /// <param name="reader"></param> /// <returns></returns> protected override Error PostHandleMessage(DestroyMessage msg, ShapeCache cache, int shapeIndex) { PointsComponent pointsComp = cache.GetShapeDataByIndex <PointsComponent>(shapeIndex); if (pointsComp != null) { // Remove from the registered mesh list. List <PointsComponent> parts; if (_registeredParts.TryGetValue(pointsComp.MeshID, out parts)) { // Remove from the list. parts.RemoveAll((PointsComponent cmp) => { return(cmp == pointsComp); }); } pointsComp.Release(); } return(new Error()); }