void FixVehicleParams(SceneObjectPart part)
{
part.PhysActor.VehicleType = part.VehicleType;
// OSD o = part.GetComponentState("VehicleParameters");
foreach (OSD param in part.VehicleFlags)
{
part.PhysActor.VehicleFlags(param.AsInteger(), false);
}
foreach (KeyValuePair<string, OSD> param in part.VehicleParameters)
{
if (param.Value.Type == OSDType.Real)
part.PhysActor.VehicleFloatParam(int.Parse(param.Key), (float) param.Value.AsReal());
else if (param.Value.Type == OSDType.Array)
{
OSDArray a = (OSDArray) param.Value;
if (a.Count == 3)
part.PhysActor.VehicleVectorParam(int.Parse(param.Key), param.Value.AsVector3());
else
part.PhysActor.VehicleRotationParam(int.Parse(param.Key), param.Value.AsQuaternion());
}
}
}