module Base
{
	model 90bmwE302Doorfl
	{
		mesh = vehicles/Vehicles_90bmwE30_Body|e30_2door_door_fl,
		shader = damn_vehicle_shader,
		static = FALSE,
		scale = 0.1,
		boneWeight = door_fl_bone 1.0,
	}

	model 90bmwE302Doorfr
	{
		mesh = vehicles/Vehicles_90bmwE30_Body|e30_2door_door_fr,
		shader = damn_vehicle_shader,
		static = FALSE,
		scale = 0.1,
		boneWeight = door_fr_bone 1.0,
	}

	model 90bmwE30CDoorfl
	{
		mesh = vehicles/Vehicles_90bmwE30_Body|e30_cabrio_door_fl,
		shader = damn_vehicle_shader,
		static = FALSE,
		scale = 0.1,
		boneWeight = door_fl_bone 1.0,
	}

	model 90bmwE30CDoorfr
	{
		mesh = vehicles/Vehicles_90bmwE30_Body|e30_cabrio_door_fr,
		shader = damn_vehicle_shader,
		static = FALSE,
		scale = 0.1,
		boneWeight = door_fr_bone 1.0,
	}

	model 90bmwE304Doorfl
	{
		mesh = vehicles/Vehicles_90bmwE30_Body|e30_4door_door_fl,
		shader = damn_vehicle_shader,
		static = FALSE,
		scale = 0.1,
		boneWeight = door_fl_bone 1.0,
	}

	model 90bmwE304Doorfr
	{
		mesh = vehicles/Vehicles_90bmwE30_Body|e30_4door_door_fr,
		shader = damn_vehicle_shader,
		static = FALSE,
		scale = 0.1,
		boneWeight = door_fr_bone 1.0,
	}

	model 90bmwE304Doorrl
	{
		mesh = vehicles/Vehicles_90bmwE30_Body|e30_4door_door_rl,
		shader = damn_vehicle_shader,
		static = FALSE,
		scale = 0.1,
		boneWeight = door_rl_bone 1.0,
	}

	model 90bmwE304Doorrr
	{
		mesh = vehicles/Vehicles_90bmwE30_Body|e30_4door_door_rr,
		shader = damn_vehicle_shader,
		static = FALSE,
		scale = 0.1,
		boneWeight = door_rr_bone 1.0,
	}

	model 90bmwE30TDoorrl
	{
		mesh = vehicles/Vehicles_90bmwE30_Body|e30_touring_door_rl,
		shader = damn_vehicle_shader,
		static = FALSE,
		scale = 0.1,
		boneWeight = door_rl_bone 1.0,
	}

	model 90bmwE30TDoorrr
	{
		mesh = vehicles/Vehicles_90bmwE30_Body|e30_touring_door_rr,
		shader = damn_vehicle_shader,
		static = FALSE,
		scale = 0.1,
		boneWeight = door_rr_bone 1.0,
	}

	template vehicle BMWE30Doors2
	{

		part DoorFrontLeft
		{
			model DoorFrontLeft
				{
				file = 90bmwE302Doorfl,
				}
				itemType = Base.90bmwE30SedanFrontDoor,
				table uninstall
				{
				requireUninstalled = WindowFrontLeft,
				}
				area = SeatFrontLeft,
				anim ActorOpen
				{
					angle = 0.0 270.0 0.0,
				}
				anim ActorClose
				{
					angle = 0.0 270.0 0.0,
				}

				anim Close
				{
					anim = door_fl_opening,
					reverse = TRUE,
					rate = 1.5,
				}

				anim Open
				{
					anim = door_fl_opening,
					rate = 1.0,
				}

				anim Closed
				{
					anim = door_fl_opening,
					animate = FALSE,
				}

				anim Opened
				{
					anim = door_fl_opening,
					reverse = TRUE,
					animate = FALSE,
				}
				lua
				{
					create = Vehicles.Create.Door,
					init = Vehicles.Init.Door,
					use = Vehicles.Use.Door,
				}
		}

		part DoorFrontRight
		{
			model DoorFrontRight
				{
				file = 90bmwE302Doorfr,
				}
				itemType = Base.90bmwE30SedanFrontDoor,
				table uninstall
				{
				requireUninstalled = WindowFrontRight,
				}
				area = SeatFrontRight,
				anim ActorOpen
				{
					angle = 0.0 90.0 0.0,
				}
				anim ActorClose
				{
					angle = 0.0 90.0 0.0,
				}

				anim Close
				{
					anim = door_fr_opening,
					reverse = TRUE,
					rate = 1.5,
				}

				anim Open
				{
					anim = door_fr_opening,
					rate = 1.0,
				}

				anim Closed
				{
					anim = door_fr_opening,
					animate = FALSE,
				}

				anim Opened
				{
					anim = door_fr_opening,
					reverse = TRUE,
					animate = FALSE,
				}
				lua
				{
					create = Vehicles.Create.Door,
					init = Vehicles.Init.Door,
					use = Vehicles.Use.Door,
				}
		}

		part Door*
		{
			category = door,
			door
			{
				}
				anim Open
				{
					sound = VehicleDoorOpenStandard,
				}
				anim Close
				{
					sound = VehicleDoorCloseStandard,
				}
				anim Lock
				{
					sound = LockVehicleDoorStandard,
				}
				anim Unlock
				{
					sound = UnlockVehicleDoorStandard,
				}
				anim IsLocked
				{
					sound = VehicleDoorIsLockedStandard,
				}
				anim ActorOpen
				{
					anim = Attack_Shove,
					rate = 0.3,
				}
				anim ActorClose
				{
					anim = Attack_Shove,
					rate = 0.3,
				}
				mechanicRequireKey = true,
                durability = 5,
				table install
				{
					items
					{
						item
						{
							tags = Wrench,
							count = 1,
							keep = true,
							equip = primary,
						}
					}
					time = 700,
					skills = Mechanics:4,
					recipes = Intermediate Mechanics,
					test = Vehicles.InstallTest.Default,
					complete = Vehicles.InstallComplete.Door,
				}
				table uninstall
				{
					items
					{
						item
						{
							tags = Wrench,
							count = 1,
							keep = true,
							equip = primary,
						}
					}
					time = 700,
					skills = Mechanics:4,
					recipes = Intermediate Mechanics,
					test = Vehicles.UninstallTest.Default,
					complete = Vehicles.UninstallComplete.Door,
					}
				}
			}

	template vehicle BMWE30Doors2C
	{

		part DoorFrontLeft
		{
			model DoorFrontLeft
				{
				file = 90bmwE30CDoorfl,
				}
				itemType = Base.90bmwE30CabrioFrontDoor,
				table uninstall
				{
				requireUninstalled = WindowFrontLeft,
				}
				area = SeatFrontLeft,
				anim ActorOpen
				{
					angle = 0.0 270.0 0.0,
				}
				anim ActorClose
				{
					angle = 0.0 270.0 0.0,
				}

				anim Close
				{
					anim = door_fl_opening,
					reverse = TRUE,
					rate = 1.5,
				}

				anim Open
				{
					anim = door_fl_opening,
					rate = 1.0,
				}

				anim Closed
				{
					anim = door_fl_opening,
					animate = FALSE,
				}

				anim Opened
				{
					anim = door_fl_opening,
					reverse = TRUE,
					animate = FALSE,
				}
				lua
				{
					create = Vehicles.Create.Door,
					init = Vehicles.Init.Door,
					use = Vehicles.Use.Door,
				}
		}

		part DoorFrontRight
		{
			model DoorFrontRight
				{
				file = 90bmwE30CDoorfr,
				}
				itemType = Base.90bmwE30CabrioFrontDoor,
				table uninstall
				{
				requireUninstalled = WindowFrontRight,
				}
				area = SeatFrontRight,
				anim ActorOpen
				{
					angle = 0.0 90.0 0.0,
				}
				anim ActorClose
				{
					angle = 0.0 90.0 0.0,
				}

				anim Close
				{
					anim = door_fr_opening,
					reverse = TRUE,
					rate = 1.5,
				}

				anim Open
				{
					anim = door_fr_opening,
					rate = 1.0,
				}

				anim Closed
				{
					anim = door_fr_opening,
					animate = FALSE,
				}

				anim Opened
				{
					anim = door_fr_opening,
					reverse = TRUE,
					animate = FALSE,
				}
				lua
				{
					create = Vehicles.Create.Door,
					init = Vehicles.Init.Door,
					use = Vehicles.Use.Door,
				}
		}

		part Door*
		{
			category = door,
			door
			{
				}
				anim Open
				{
					sound = VehicleDoorOpenStandard,
				}
				anim Close
				{
					sound = VehicleDoorCloseStandard,
				}
				anim Lock
				{
					sound = LockVehicleDoorStandard,
				}
				anim Unlock
				{
					sound = UnlockVehicleDoorStandard,
				}
				anim IsLocked
				{
					sound = VehicleDoorIsLockedStandard,
				}
				anim ActorOpen
				{
					anim = Attack_Shove,
					rate = 0.3,
				}
				anim ActorClose
				{
					anim = Attack_Shove,
					rate = 0.3,
				}
				mechanicRequireKey = true,
                durability = 5,
				table install
				{
					items
					{
						item
						{
							tags = Wrench,
							count = 1,
							keep = true,
							equip = primary,
						}
					}
					time = 700,
					skills = Mechanics:4,
					recipes = Intermediate Mechanics,
					test = Vehicles.InstallTest.Default,
					complete = Vehicles.InstallComplete.Door,
				}
				table uninstall
				{
					items
					{
						item
						{
							tags = Wrench,
							count = 1,
							keep = true,
							equip = primary,
						}
					}
					time = 700,
					skills = Mechanics:4,
					recipes = Intermediate Mechanics,
					test = Vehicles.UninstallTest.Default,
					complete = Vehicles.UninstallComplete.Door,
					}
				}
			}

	template vehicle BMWE30Doors4
	{

		part DoorFrontLeft
		{
			model DoorFrontLeft
				{
				file = 90bmwE304Doorfl,
				}
				itemType = Base.90bmwE30SedanFrontDoor,
				table uninstall
				{
				requireUninstalled = WindowFrontLeft,
				}
				area = SeatFrontLeft,
				anim ActorOpen
				{
					angle = 0.0 270.0 0.0,
				}
				anim ActorClose
				{
					angle = 0.0 270.0 0.0,
				}

				anim Close
				{
					anim = door_fl_opening,
					reverse = TRUE,
					rate = 1.5,
				}

				anim Open
				{
					anim = door_fl_opening,
					rate = 1.0,
				}

				anim Closed
				{
					anim = door_fl_opening,
					animate = FALSE,
				}

				anim Opened
				{
					anim = door_fl_opening,
					reverse = TRUE,
					animate = FALSE,
				}
				lua
				{
					create = Vehicles.Create.Door,
					init = Vehicles.Init.Door,
					use = Vehicles.Use.Door,
				}
		}

		part DoorFrontRight
		{
			model DoorFrontRight
				{
				file = 90bmwE304Doorfr,
				}
				itemType = Base.90bmwE30SedanFrontDoor,
				table uninstall
				{
				requireUninstalled = WindowFrontRight,
				}
				area = SeatFrontRight,
				anim ActorOpen
				{
					angle = 0.0 90.0 0.0,
				}
				anim ActorClose
				{
					angle = 0.0 90.0 0.0,
				}

				anim Close
				{
					anim = door_fr_opening,
					reverse = TRUE,
					rate = 1.5,
				}

				anim Open
				{
					anim = door_fr_opening,
					rate = 1.0,
				}

				anim Closed
				{
					anim = door_fr_opening,
					animate = FALSE,
				}

				anim Opened
				{
					anim = door_fr_opening,
					reverse = TRUE,
					animate = FALSE,
				}
				lua
				{
					create = Vehicles.Create.Door,
					init = Vehicles.Init.Door,
					use = Vehicles.Use.Door,
				}
		}

		part DoorRearLeft
		{
			model DoorRearLeft
				{
				file = 90bmwE304Doorrl,
				}
				itemType = Base.90bmwE30SedanRearDoor,
				table uninstall
				{
				requireUninstalled = WindowRearLeft,
				}
				area = SeatRearLeft,
				anim ActorOpen
				{
					angle = 0.0 270.0 0.0,
				}
				anim ActorClose
				{
					angle = 0.0 270.0 0.0,
				}

				anim Close
				{
					anim = door_rl_opening,
					reverse = TRUE,
					rate = 1.5,
				}

				anim Open
				{
					anim = door_rl_opening,
					rate = 1.0,
				}

				anim Closed
				{
					anim = door_rl_opening,
					animate = FALSE,
				}

				anim Opened
				{
					anim = door_rl_opening,
					reverse = TRUE,
					animate = FALSE,
				}
				lua
				{
					create = Vehicles.Create.Door,
					init = Vehicles.Init.Door,
					use = Vehicles.Use.Door,
				}
		}

		part DoorRearRight
		{
			model DoorRearRight
				{
				file = 90bmwE304Doorrr,
				}
				itemType = Base.90bmwE30SedanRearDoor,
				table uninstall
				{
				requireUninstalled = WindowRearRight,
				}
				area = SeatRearRight,
				anim ActorOpen
				{
					angle = 0.0 90.0 0.0,
				}
				anim ActorClose
				{
					angle = 0.0 90.0 0.0,
				}

				anim Close
				{
					anim = door_rr_opening,
					reverse = TRUE,
					rate = 1.5,
				}

				anim Open
				{
					anim = door_rr_opening,
					rate = 1.0,
				}

				anim Closed
				{
					anim = door_rr_opening,
					animate = FALSE,
				}

				anim Opened
				{
					anim = door_rr_opening,
					reverse = TRUE,
					animate = FALSE,
				}
				lua
				{
					create = Vehicles.Create.Door,
					init = Vehicles.Init.Door,
					use = Vehicles.Use.Door,
				}
		}

		part Door*
		{
			category = door,
			door
			{
				}
				anim Open
				{
					sound = VehicleDoorOpenStandard,
				}
				anim Close
				{
					sound = VehicleDoorCloseStandard,
				}
				anim Lock
				{
					sound = LockVehicleDoorStandard,
				}
				anim Unlock
				{
					sound = UnlockVehicleDoorStandard,
				}
				anim IsLocked
				{
					sound = VehicleDoorIsLockedStandard,
				}
				anim ActorOpen
				{
					anim = Attack_Shove,
					rate = 0.3,
				}
				anim ActorClose
				{
					anim = Attack_Shove,
					rate = 0.3,
				}
				mechanicRequireKey = true,
                durability = 5,
				table install
				{
					items
					{
						item
						{
							tags = Wrench,
							count = 1,
							keep = true,
							equip = primary,
						}
					}
					time = 700,
					skills = Mechanics:4,
					recipes = Intermediate Mechanics,
					test = Vehicles.InstallTest.Default,
					complete = Vehicles.InstallComplete.Door,
				}
				table uninstall
				{
					items
					{
						item
						{
							tags = Wrench,
							count = 1,
							keep = true,
							equip = primary,
						}
					}
					time = 700,
					skills = Mechanics:4,
					recipes = Intermediate Mechanics,
					test = Vehicles.UninstallTest.Default,
					complete = Vehicles.UninstallComplete.Door,
					}
				}
			}

	template vehicle BMWE30Doors4T
	{

		part DoorFrontLeft
		{
			model DoorFrontLeft
				{
				file = 90bmwE304Doorfl,
				}
				itemType = Base.90bmwE30SedanFrontDoor,
				table uninstall
				{
				requireUninstalled = WindowFrontLeft,
				}
				area = SeatFrontLeft,
				anim ActorOpen
				{
					angle = 0.0 270.0 0.0,
				}
				anim ActorClose
				{
					angle = 0.0 270.0 0.0,
				}

				anim Close
				{
					anim = door_fl_opening,
					reverse = TRUE,
					rate = 1.5,
				}

				anim Open
				{
					anim = door_fl_opening,
					rate = 1.0,
				}

				anim Closed
				{
					anim = door_fl_opening,
					animate = FALSE,
				}

				anim Opened
				{
					anim = door_fl_opening,
					reverse = TRUE,
					animate = FALSE,
				}
				lua
				{
					create = Vehicles.Create.Door,
					init = Vehicles.Init.Door,
					use = Vehicles.Use.Door,
				}
		}

		part DoorFrontRight
		{
			model DoorFrontRight
				{
				file = 90bmwE304Doorfr,
				}
				itemType = Base.90bmwE30SedanFrontDoor,
				table uninstall
				{
				requireUninstalled = WindowFrontRight,
				}
				area = SeatFrontRight,
				anim ActorOpen
				{
					angle = 0.0 90.0 0.0,
				}
				anim ActorClose
				{
					angle = 0.0 90.0 0.0,
				}

				anim Close
				{
					anim = door_fr_opening,
					reverse = TRUE,
					rate = 1.5,
				}

				anim Open
				{
					anim = door_fr_opening,
					rate = 1.0,
				}

				anim Closed
				{
					anim = door_fr_opening,
					animate = FALSE,
				}

				anim Opened
				{
					anim = door_fr_opening,
					reverse = TRUE,
					animate = FALSE,
				}
				lua
				{
					create = Vehicles.Create.Door,
					init = Vehicles.Init.Door,
					use = Vehicles.Use.Door,
				}
		}

		part DoorRearLeft
		{
			model DoorRearLeft
				{
				file = 90bmwE30TDoorrl,
				}
				itemType = Base.90bmwE30TouringRearDoor,
				table uninstall
				{
				requireUninstalled = WindowRearLeft,
				}
				area = SeatRearLeft,
				anim ActorOpen
				{
					angle = 0.0 270.0 0.0,
				}
				anim ActorClose
				{
					angle = 0.0 270.0 0.0,
				}

				anim Close
				{
					anim = door_rl_opening,
					reverse = TRUE,
					rate = 1.5,
				}

				anim Open
				{
					anim = door_rl_opening,
					rate = 1.0,
				}

				anim Closed
				{
					anim = door_rl_opening,
					animate = FALSE,
				}

				anim Opened
				{
					anim = door_rl_opening,
					reverse = TRUE,
					animate = FALSE,
				}
				lua
				{
					create = Vehicles.Create.Door,
					init = Vehicles.Init.Door,
					use = Vehicles.Use.Door,
				}
		}

		part DoorRearRight
		{
			model DoorRearRight
				{
				file = 90bmwE30TDoorrr,
				}
				itemType = Base.90bmwE30TouringRearDoor,
				table uninstall
				{
				requireUninstalled = WindowRearRight,
				}
				area = SeatRearRight,
				anim ActorOpen
				{
					angle = 0.0 90.0 0.0,
				}
				anim ActorClose
				{
					angle = 0.0 90.0 0.0,
				}

				anim Close
				{
					anim = door_rr_opening,
					reverse = TRUE,
					rate = 1.5,
				}

				anim Open
				{
					anim = door_rr_opening,
					rate = 1.0,
				}

				anim Closed
				{
					anim = door_rr_opening,
					animate = FALSE,
				}

				anim Opened
				{
					anim = door_rr_opening,
					reverse = TRUE,
					animate = FALSE,
				}
				lua
				{
					create = Vehicles.Create.Door,
					init = Vehicles.Init.Door,
					use = Vehicles.Use.Door,
				}
		}

		part Door*
		{
			category = door,
			door
			{
				}
				anim Open
				{
					sound = VehicleDoorOpenStandard,
				}
				anim Close
				{
					sound = VehicleDoorCloseStandard,
				}
				anim Lock
				{
					sound = LockVehicleDoorStandard,
				}
				anim Unlock
				{
					sound = UnlockVehicleDoorStandard,
				}
				anim IsLocked
				{
					sound = VehicleDoorIsLockedStandard,
				}
				anim ActorOpen
				{
					anim = Attack_Shove,
					rate = 0.3,
				}
				anim ActorClose
				{
					anim = Attack_Shove,
					rate = 0.3,
				}
				mechanicRequireKey = true,
                durability = 5,
				table install
				{
					items
					{
						item
						{
							tags = Wrench,
							count = 1,
							keep = true,
							equip = primary,
						}
					}
					time = 700,
					skills = Mechanics:4,
					recipes = Intermediate Mechanics,
					test = Vehicles.InstallTest.Default,
					complete = Vehicles.InstallComplete.Door,
				}
				table uninstall
				{
					items
					{
						item
						{
							tags = Wrench,
							count = 1,
							keep = true,
							equip = primary,
						}
					}
					time = 700,
					skills = Mechanics:4,
					recipes = Intermediate Mechanics,
					test = Vehicles.UninstallTest.Default,
					complete = Vehicles.UninstallComplete.Door,
					}
				}
			}
	}


