module Base
{
    model 92amgeneralM998doorfl
    {
        mesh = vehicles/Vehicles_92amgeneralM998_Body|door_fl,
        shader = damn_vehicle_noreflect_shader,
        static = FALSE,
        scale = 0.1,
        boneWeight = door_fl_bone 1.0,
    }

    model 92amgeneralM998doorfr
    {
        mesh = vehicles/Vehicles_92amgeneralM998_Body|door_fr,
        shader = damn_vehicle_noreflect_shader,
        static = FALSE,
        scale = 0.1,
        boneWeight = door_fr_bone 1.0,
    }

    model 92amgeneralM998doorrl
    {
        mesh = vehicles/Vehicles_92amgeneralM998_Body|door_rl,
        shader = damn_vehicle_noreflect_shader,
        static = FALSE,
        scale = 0.1,
        boneWeight = door_rl_bone 1.0,
    }

    model 92amgeneralM998doorrr
    {
        mesh = vehicles/Vehicles_92amgeneralM998_Body|door_rr,
        shader = damn_vehicle_noreflect_shader,
        static = FALSE,
        scale = 0.1,
        boneWeight = door_rr_bone 1.0,
    }

    template vehicle M998Doors
    {
        part DoorFrontLeft
        {
            model DoorFrontLeft
            {
                file = 92amgeneralM998doorfl,
            }
            itemType = Base.92amgeneralM998FrontDoor,
            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 = 92amgeneralM998doorfr,
            }
            itemType = Base.92amgeneralM998FrontDoor,
            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 = 92amgeneralM998doorrl,
            }
            itemType = Base.92amgeneralM998RearDoor,
            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 = 92amgeneralM998doorrr,
            }
            itemType = Base.92amgeneralM998RearDoor,
            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,
            }
        }
    }
}
