Drivetrain is KomatsuHM400.Assets.Base:
    with Assets.Properties.AngleControl
    with Assets.SignalInterfaces.CommonSignals
    with Assets.SignalInterfaces.AngleControlSignals
    with Assets.SignalInterfaces.DrivetrainSignals

    # Set current payload (added ass additional mass to the dumpbed body)
    payload: 40000*1

    # Steering max and initial angles
    initial_angle:   0.0*(Math.PI/180)
    max_angle:      45.0*(Math.PI/180)

    # Front/rear roll max and initial angles
    initial_roll_angle:  0.0*(Math.PI/180)
    max_roll_angle:     10.0*(Math.PI/180)

    # Set initial and max angle of dump bed
    cargo_bed_connection:
        initial_angle:  0.0*(Math.PI/180)
        max_angle:     70.0*(Math.PI/180)

    drivetrain becomes KomatsuHM400.Assets.Components.DriveTrainKomatsuHM400WithEngineLoss:
        engine.initial_throttle: 0.001
        gear_box.initial_gear: 0

        torque_converter_turbine_torque is DriveTrain.Signals.TorqueConverterTurbineTorqueOutput:
            torque_converter: drivetrain.torque_converter
        torque_converter_pump_torque is DriveTrain.Signals.TorqueConverterPumpTorqueOutput:
            torque_converter: drivetrain.torque_converter

        front_left_actuator becomes DriveTrain.HingeActuator:
            mate_3d: front_axle_connection.left_wheel_connection
        front_right_actuator becomes DriveTrain.HingeActuator:
            mate_3d: front_axle_connection.right_wheel_connection
        mid_left_actuator becomes DriveTrain.HingeActuator:
            mate_3d: rear_axle_connection.left_wheel_connection_1
        mid_right_actuator becomes DriveTrain.HingeActuator:
            mate_3d: rear_axle_connection.right_wheel_connection_1
        rear_left_actuator becomes DriveTrain.HingeActuator:
            mate_3d: rear_axle_connection.left_wheel_connection_2
        rear_right_actuator becomes DriveTrain.HingeActuator:
            mate_3d: rear_axle_connection.right_wheel_connection_2

    # Disable unwanted collisions
    vehicle_part_collisions is Simulation.CollisionGroup:
        systems: [chassis, cargo_bed]
    undercarriage_part_collisions is Simulation.CollisionGroup:
        systems: [front_axle_connection, rear_axle_connection]
    tire_part_collisions is Simulation.CollisionGroup:
        systems: [left_front_wheel, right_front_wheel, left_rear_wheel_1, right_rear_wheel_1, left_rear_wheel_2, right_rear_wheel_2]

    disable_collisions_1 is Simulation.DisableCollisionPair:
        group1: vehicle_part_collisions
        group2: undercarriage_part_collisions
    disable_collisions_2 is Simulation.DisableCollisionPair:
        group1: vehicle_part_collisions
        group2: tire_part_collisions
