importonly class VehicleStartedMountingEvent extends Event
{
	import var slotID : CName;
	import var animationSlotName : CName;
	import var isMounting : Bool;
	import var character : weak< GameObject >;
	import var instant : Bool;
}

importonly class VehicleFinishedMountingEvent extends Event
{
	import var slotID : CName;
	import var isMounting : Bool;
	import var character : weak< GameObject >;
}

importonly class VehicleWaterEvent extends Event
{
	import var isInWater : Bool;
}

importonly class VehicleFlippedOverEvent extends Event
{
	import var isFlippedOver : Bool;
}

importonly class VehicleRepairEvent extends Event
{
}

importonly class VehicleDetachPartEvent extends Event
{
	import var partName : CName;
}

importonly class HasVehicleBeenFlippedOverForSomeTimeEvent extends Event
{
}

importonly class VehicleGridDestructionEvent extends Event
{
	import var state : Float[ 16 ];
	import var rawChange : Float[ 16 ];
	import var desiredChange : Float[ 16 ];
	import var damageMultiplier : Float;
	import var impactPoint : Vector3;
	import var otherVehicle : weak< GameObject >;
	import var rammedOtherVehicle : Bool;
	import var otherVehicleRammed : Bool;
}

importonly class VehicleOnPartDetachedEvent extends Event
{
	import var partName : CName;
}

importonly class VehicleGlassDestructionEvent extends Event
{
	import var glassName : CName;
}

importonly class VehicleReadyToParkEvent extends Event
{
}

importonly class VehicleParkedEvent extends Event
{
	import var park : Bool;
}

importonly class VehicleRemoteControlEvent extends ActionEvent
{
	import var remoteControl : Bool;
	import var shouldUnseatPassengers : Bool;
	import var shouldModifyInteractionState : Bool;
	import var isDistanceDisconnect : Bool;
}

importonly class VehicleForceBrakesQuickhackEvent extends ActionEvent
{
	import var alarmDuration : Float;
	import var active : Bool;
}

importonly class VehicleAccelerateQuickhackEvent extends ActionEvent
{
	import var active : Bool;
}

importonly class VehicleExplodeEvent extends Event
{
}

importonly class VehicleNotifyPassengersOfCollision extends Event
{
	import var hitDirection : Vector4;
	import var instigator : weak< GameObject >;
}

importonly class VehicleMountedWeaponShootEvent extends Event
{
	import var weaponID : TweakDBID;
	import var slotID : TweakDBID;
}

importonly class VehicleRemoteControlCameraToggleEvent extends Event
{
}

importonly class SummonStartedEvent extends Event
{
	import var state : vehicleSummonState;
}

importonly class SummonFinishedEvent extends Event
{
	import var state : vehicleSummonState;
}

importonly class StealVehicleEvent extends Event
{
}

importonly class JoinTrafficVehicleEvent extends Event
{
}

importonly class VehicleChaseTargetEvent extends Event
{
	import var inProgress : Bool;
}

importonly class VehicleStuckEvent extends Event
{
}

importonly class VehicleBumpEvent extends Event
{
	import var impactVelocityChange : Float;
	import var isInTraffic : Bool;
	import var hitVehicle : weak< VehicleObject >;
	import var hitNormal : Vector3;
}

importonly class VehicleUnableToStartPanicDriving extends Event
{
	import var forceExitVehicle : Bool;
}

importonly class VehicleToggleBrokenTireEvent extends Event
{
	import var tireIndex : Uint32;
	import var toggle : Bool;
}

import class VehicleTirePuncturedEvent extends Event
{
	public import const function GetInstigator() : weak< GameObject >;
	public import const function GetPuncturedTire() : weak< GameObject >;
	public import const function GetPuncturePosition() : Vector4;
}

importonly class AIVehicleDisabledEvent extends Event
{
	import var reason : vehicleDisabledReason;
}

class VehicleStartedUnmountingEvent extends Event
{
	var slotID : CName;
	var isMounting : Bool;
	var character : weak< GameObject >;
}

class TriggerVehicleRemoteControlEvent extends Event
{
	var enable : Bool;
	var shouldUnseatPassengers : Bool;
	var shouldModifyInteractionState : Bool;
}

importonly class VehicleQuestNodeSetVehicleRemoteControlled extends Event
{
	import var enable : Bool;
	import var shouldUnseatPassengers : Bool;
	import var shouldModifyInteractionState : Bool;
}

