public static void DragCar(VehicleContext context, PlayerEntity player) { var vehicles = context.GetGroup(VehicleMatcher.GameObject).GetEntities(); var position = player.position.Value; var minSqrDist = float.MaxValue; VehicleEntity nearestVehicle = null; foreach (var vehicle in vehicles) { if (vehicle.HasAnyPassager() || (vehicle.hasVehicleDrivable && !vehicle.vehicleDrivable.IsDrivable) || !vehicle.IsCar()) { continue; } var sqrDist = (vehicle.GetDynamicData().Position - position).sqrMagnitude; if (sqrDist < minSqrDist) { nearestVehicle = vehicle; minSqrDist = sqrDist; } } if (nearestVehicle != null) { var dragPosition = position + new Vector3(0.0f, 5.0f, 0.0f); var dynamicData = nearestVehicle.GetDynamicData(); dynamicData.Position = dragPosition; var go = nearestVehicle.gameObject.UnityObject.AsGameObject; go.transform.position = dragPosition; } }
public VehicleExecutionSelector(Contexts contexts) { VehicleContext = contexts.vehicle; PlayerContext = contexts.player; _activeVehicleCache = new List <Entity>(); Vehicles = VehicleContext.GetGroup(VehicleMatcher.AllOf(VehicleMatcher.GameObject, VehicleMatcher.Position)); _players = PlayerContext.GetGroup(PlayerMatcher.AllOf(PlayerMatcher.ThirdPersonModel, PlayerMatcher.GamePlay)); _ignorePlayerVehicleCollision = false; SqrPhysicsDistance = 150.0f * 150.0f; }
public static void ShowExplosionRange(VehicleContext context, PlayerEntity player, bool show, float radius) { var vehicles = context.GetGroup(VehicleMatcher.EntityKey).GetEntities(); string smallRangeObject = "test_small_explosion_range"; foreach (var vehicle in vehicles) { var color = Color.red; color.a = 1.0f; var range = GetSphereRange(vehicle, smallRangeObject, color); if (radius > 0) { range.transform.localScale = new Vector3(2 * radius, 2 * radius, 2 * radius); } range.GetComponent <MeshRenderer>().enabled = show; /* color = Color.blue; * color.a = 0.4f; * range = GetSphereRange(vehicle, largeRangeObject, largeRadius, color); * range.GetComponent<MeshRenderer>().enabled = show;*/ } }
public VehicleGameStateUpdateSystem(VehicleContext context, BaseGameHandlerRegister handlerRegister) : base(handlerRegister) { _context = context; _vehicles = context.GetGroup(VehicleMatcher.AllOf(VehicleMatcher.VehicleGameEvent, VehicleMatcher.GameObject)); }
public ClientVehiclePlaybackSystem(PlayerContext playerContext, VehicleContext vehicleContext) { _vehicleContext = vehicleContext; _playerContext = playerContext; _vehicles = vehicleContext.GetGroup(VehicleMatcher.AllOf(VehicleMatcher.GameObject)); }