using System;
using System.Collections;
using System.Collections.Generic;
using BITKit.WorldNode;
using UnityEngine;

namespace Net.Project.B.WorldNode
{
    [Serializable]
    public class UnityVehicleNode : IWorldNode
    {
        public Rigidbody rigidbody;

        public GameObject seatObject;
        
        public WheelCollider[] steeringWheelColliders;
        public WheelCollider[] driveWheelColliders;
        public WheelCollider[] handBrakeWheelColliders;

        public WheelCollider[] wheels;
        public Transform[] wheelMeshes;

        public Transform steeringWheel;

        public bool allowAckermannSteering;
        
        public float maxForwardSpeed = 100f; // 100f default
        public float maxReverseSpeed = 30f; // 30f default
        public float horsePower = 1000f; // 100f0 default
        public float brakePower = 2000f; // 2000f default
        public float handbrakeForce = 3000f; // 3000f default
        public float maxSteerAngle = 30f; // 30f default
        public float steeringSpeed = 5f; // 0.5f default
        public float stopThreshold = 1f; // 1f default. At what speed car will make a full stop
        public float decelerationSpeed = 0.5f; // 0.5f default
        
        public int Id { get; set; }
        public object WorldObject { get; set; }
    }
}

