public ThrowingSimulationSystem(
     Contexts contexts,
     ICompensationWorldFactory compensationWorldFactory,
     ThrowingHitHandler hitHandler)
 {
     _contexts                 = contexts;
     _layerMask                = UnityLayers.SceneCollidableLayerMask | UnityLayerManager.GetLayerIndex(EUnityLayerName.UI);//BulletLayers.GetBulletLayer();
     _moveSimulator            = new ThrowingMoveSimulator(20, contexts.player);
     _compensationWorldFactory = compensationWorldFactory;
     _throwingHitHandler       = hitHandler;
     //all throwings
     _throwings = _contexts.throwing.GetGroup(ThrowingMatcher.AllOf(ThrowingMatcher.ThrowingData));
     //all vehicles
     _vehicles = _contexts.vehicle.GetGroup(VehicleMatcher.AllOf(VehicleMatcher.GameObject));
     //all players
     _players = _contexts.player.GetGroup(PlayerMatcher.AllOf(PlayerMatcher.FirstPersonModel, PlayerMatcher.ThirdPersonModel));
 }